The Challenge
An enterprise AI team is fine-tuning a customer service LLM using 18 months of support ticket data. The dataset contains 240,000 JSON records with customer names, email addresses, account numbers, product serial numbers, and free-text descriptions that include PII. The EU AI Act (Art. 10, effective August 2026) requires data governance practices ensuring training data is free of unnecessary personal data for high-risk AI applications. Uploading the dataset to a cloud anonymization service would itself create a GDPR violation — the data must stay within the company's EU data center.
The Solution
The ML engineering team installs anonym.plus on a workstation within the EU data center. They split the 240K record dataset into 120 JSONL files of 2,000 records each (avg 25 MB per file). Using Batch mode with 5 parallel workers, they process all 120 files over approximately 90 minutes. A custom preset uses: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, IBAN_CODE, IP_ADDRESS, CREDIT_CARD, and a custom entity for product serial numbers (regex: SN-[A-Z0-9]{10}). Replace operator ensures irreversible anonymization. Processing history is exported as CSV for Art. 11 technical documentation.
The Results
- 240,000 records anonymized — 6 PII categories + 1 custom entity processed in 90 minutes
- Anonymized dataset exits GDPR scope — no lawful basis required for training, no data subject rights apply
- EU AI Act Art. 10 data governance requirement met — documented in technical file
- Training data never left the EU data center — full data residency maintained
- No DPA required with the training infrastructure provider — anonymized data only
- Processing history CSV provides audit trail for Art. 11 technical documentation
Who This Is For
Training-data anonymization isn't a single team's problem — it touches whoever owns the corpus, whoever has to prove it's compliant, and whoever has to run it at scale.
ML / AI Engineers
Need to fine-tune on real support tickets, chat transcripts, or CRM exports, but the raw corpus is full of names, emails, and account numbers that can't go anywhere near a third-party service before they're stripped out.
DPOs & AI Compliance Leads
Need documented proof — for the Art. 10/Art. 11 technical file — that training data was processed to remove personal data, without signing a new data-processing agreement with an external anonymization vendor.
Data Engineering / MLOps Leads
Own nightly or weekly retraining pipelines with hundreds of thousands of JSONL/CSV records and need anonymization that keeps pace with the pipeline instead of adding a per-record API bill and a new upload step.
Founders & CTOs Building GPAI Models
Sourcing training corpora from historical logs or internal archives and need a defensible, documented basis for that data before general-purpose AI model (GPAI) obligations under the EU AI Act — applicable since 2 August 2025 — come under scrutiny.
Why This Matters
Personal data that makes it into a training corpus doesn't stay a one-time incident — it becomes a liability baked into the model for as long as it's deployed. The numbers behind that risk are well documented:
Average global cost of a data breach in 2024 — a record high and a 10% year-over-year increase.
Maximum administrative fine for non-compliance with EU AI Act operator obligations — including the Article 10 data-governance duties that apply to training datasets for high-risk AI systems.
Combined GDPR fines issued against Clearview AI by the Italian, Greek, and French data-protection authorities for building a facial-recognition training dataset from scraped personal images without a lawful basis.
A training corpus that still contains personal data isn't just a compliance gap — it's a liability that ships with the model.
Training Data Formats Supported
- JSON / JSONL — instruction tuning datasets, chat conversations, annotation files (30 MB per file)
- CSV — tabular training data, labeled examples, evaluation sets (30 MB)
- TXT — pretraining corpora, raw document collections (50 MB)
- XLSX — human-annotated datasets, scoring sheets (20 MB / 100K rows)
- PDF / DOCX — document classification corpora, knowledge base documents
For datasets larger than per-file limits, split into chunks and process with Batch mode. Up to 20 files processed simultaneously with the Pro plan.
On-Device vs. Cloud vs. Manual: How the Approaches Compare
Every approach to preparing training data eventually has to answer the same four questions: where does the corpus go, how fast can it move at scale, what documentation does it leave behind, and what does it cost.
| Approach | Data Egress | Speed at Scale | Compliance Documentation | Cost |
|---|---|---|---|---|
| anonym.plus (on-device) | Zero — the corpus never leaves the machine | Batch mode with parallel workers; no per-record network round-trip | Processing-history export supports the Art. 10/11 technical file | One-time license |
| Cloud anonymization API | Full corpus transits third-party servers; creates a new processor relationship | Bounded by API rate limits and upload bandwidth | Requires a DPA with the vendor; adds a data flow to document | Per-record / per-token billing that scales with corpus size |
| Manual redaction (scripts/spreadsheets) | No vendor exposure, but slow and inconsistent at scale | Impractical past small samples — hours per thousand records | No consistent audit trail; entity coverage depends on the script | Engineering time, repeated every retraining cycle |
| No anonymization | N/A | N/A | Fails Art. 10 data-governance requirements | Exposure to Art. 99 fines and breach-response costs |
Why Offline Anonymization Wins for Training Data
A training corpus is the asset the entire model depends on — which is exactly why it shouldn't take a detour through anyone else's servers on its way to being cleaned up.
- No new copy, no new processor. Routing a corpus through a cloud anonymization step — even briefly — creates a second copy of the data and a new data-processing relationship before anonymization has even happened. Processing on-device skips that step entirely.
- Built for corpus scale. Fine-tuning and GPAI training sets run from hundreds of thousands to millions of records. Local batch mode with parallel workers scales to that volume without upload bandwidth limits or per-record API latency.
- Nothing to intercept. The NLP pipeline (Presidio + spaCy) runs fully on-device; entity detection never requires a live connection to a hosted model, and no outbound network calls occur at all — by design, verifiable yourself by running the pipeline fully air-gapped.
- Predictable cost at retraining cadence. A one-time license replaces recurring per-record or per-token cloud billing, which matters when the same corpus gets re-anonymized every time it's refreshed for the next training run.
- Coverage beyond the standard PII set. anonym.plus detects 340+ entity types, including structured identifiers — IBANs, serial numbers, custom regex patterns — common in the operational and support data that ends up in fine-tuning corpora.
EU AI Act Art. 10 Documentation
General-purpose AI model (GPAI) obligations under the EU AI Act have applied since 2 August 2025; the Article 10 data-governance duties below apply to training data for high-risk AI systems from 2 August 2026. After anonymizing training data, document the following in the AI system's technical file (Art. 11):
- Data governance practice: PII removed from training data using anonym.plus [version], Replace operator, GDPR Compliance preset
- Entity types detected and removed: [list from processing history export]
- Processing date and dataset version: [timestamp from history]
- Residual risk assessment: Replace operator produces true anonymization (GDPR Recital 26); re-identification not possible from output data
- Data residency: Processing performed locally on EU infrastructure; no data transferred outside the data center
Read the full EU AI Act guide. EU AI Act Art. 10 compliance →
Important Considerations
- Model performance impact: Anonymization removes or replaces identifiable information, which may affect model training if personal names or specific identifiers are semantically relevant to the task. Test anonymized datasets against baseline performance metrics to ensure acceptable model accuracy.
- Context-dependent anonymization: The "Replace" operator produces labels like <PERSON> and <EMAIL>. For certain NLP tasks (sentiment analysis, topic modeling), these generic labels may be sufficient. For tasks requiring entity context (named entity recognition training), consider pseudonymization with reversible encryption instead.
- Not a substitute for data quality: Anonymization addresses privacy compliance but does not fix underlying data quality issues (duplicates, inconsistencies, missing values). Implement data cleaning and validation before anonymization for optimal training outcomes.
Frequently Asked Questions
How do I remove PII from AI training data for GDPR and EU AI Act compliance?
Load training files (JSON, CSV, TXT, XLSX) into anonym.plus. Select the GDPR Compliance preset or configure entity types. Choose Replace operator for permanent anonymization. Process in Batch mode for large datasets. Anonymized output exits GDPR scope and meets EU AI Act Art. 10 data governance requirements.
Does anonym.plus process JSONL format training datasets?
Yes. JSON and JSONL files (30 MB) are supported. anonym.plus parses text fields and replaces detected PII with labels. Structure is preserved — the JSONL file remains valid for training pipelines after anonymization.