By · Last updated 2026-05-27

Torna al BlogTecnico

Anonimizzazione dei dati di addestramento ML conforme al GDPR

Il GDPR limita l'uso dei dati personali per l'addestramento ML oltre la finalità originaria della raccolta. I data scientist che si affidano a script Python ad hoc creano rischi di conformità difficili da gestire.

May 27, 20267 min di lettura
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

Uno script non basta

Ogni team di data science ha scritto qualcosa di simile a questo:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}', '[EMAIL]', text)

Questo sostituisce gli indirizzi email. Solo quello. Il dataset contiene ancora nomi, numeri di telefono e ID medici. Fallirà comunque un audit GDPR.

Il divario tra "ho anonimizzato le email" e "questo dataset è conforme al GDPR" è enorme. I team lo sottovalutano continuamente.

Perché il GDPR limita l'uso dei dati per l'addestramento ML

L'articolo 5(1)(b) del GDPR è la regola chiave. Si chiama principio di limitazione delle finalità. I dati personali possono essere utilizzati solo per lo scopo per cui sono stati raccolti.

Gli ordini dei clienti sono stati raccolti per l'evasione degli ordini. Non per addestrare un modello di raccomandazione. Le cartelle cliniche sono state raccolte per il trattamento sanitario. Non per addestrare un modello di previsione dei ricoveri. Le risposte ai sondaggi sono state raccolte per il feedback sui prodotti. Non per addestrare un classificatore di sentiment.

Per usare quei dati nell'addestramento ML, un team ha bisogno di una di queste tre cose:

  1. Il consenso esplicito di ogni persona per la finalità ML — difficile da ottenere, spesso impossibile retroattivamente
  2. Una valutazione del legittimo interesse che dimostri la compatibilità dell'uso ML — giuridicamente incerto, dipende dall'autorità di controllo
  3. L'anonimizzazione — sostituire o rimuovere i dettagli personali affinché il dataset non sia più personale ai sensi del GDPR

L'anonimizzazione corretta offre la maggiore certezza giuridica. La sfida è farlo bene ogni volta.

Il problema degli script occasionali

I team che scrivono un nuovo script Python per ogni dataset creano problemi cumulativi.

Copertura incompleta. Uno script costruito per uno schema specifico manca i nuovi campi. Una colonna di note cliniche aggiunta sei mesi fa? Non è nella regex. Un campo per il secondo nome? Lo script gestisce solo i pattern di nome e cognome.

Nessuna coerenza. Il Dataset A è stato elaborato con script_v1. Il Dataset B con script_v3. Il Dataset C da un altro membro del team. Il set di addestramento unificato ha tre metodi diversi applicati. Il DPO non può certificarlo.

Nessuna traccia di audit. Lo script è stato eseguito. Cosa ha modificato? Quali entità sono state trovate? Senza registrazioni dell'elaborazione, la conformità è impossibile. Quando un ispettore dell'autorità di controllo chiede "come sa che questo set di addestramento è pulito?", la risposta "abbiamo eseguito uno script Python" non basta.

Obsolescenza dei pattern. Le regex che funzionavano nel 2023 non intercettano i nuovi formati di identificatori del 2024. Gli script non si aggiornano da soli.

Una procedura guidata per l'elaborazione batch

Un team di AI sanitaria deve anonimizzare 8.000 cartelle cliniche. Il team statunitense necessita di accesso da un ufficio europeo. Si applica Schrems II — i dati di origine UE non possono essere trasferiti all'infrastruttura statunitense senza adeguate garanzie.

Approccio tradizionale: Un ingegnere dei dati scrive uno script personalizzato. Due o tre giorni di sviluppo. Uno o due giorni di revisione da parte del DPO. Un giorno di iterazioni. Totale: da quattro a sei giorni. Il progetto ML slitta.

Approccio con elaborazione batch:

  1. Esportare gli 8.000 record in CSV
  2. Caricare per l'elaborazione batch
  3. Impostare i tipi di entità: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION
  4. Scegliere il metodo: Replace (sostituisce con valori sintetici realistici per preservare la struttura)
  5. Elaborazione: 45 minuti per 8.000 record
  6. Scaricare il CSV pulito
  7. Il DPO esamina i metadati di elaborazione — entità trovate per record, metodi applicati: 2 ore
  8. Il DPO approva. Il trasferimento procede.

Tempo totale: 45 minuti più 2 ore di revisione del DPO. Invece di quattro o sei giorni.

Consulta la guida sull'addestramento per l'EU AI Act per come questi stessi passaggi soddisfano gli obblighi dell'Articolo 10.

Replace vs. Redact per l'uso ML

Il metodo di anonimizzazione è importante per la qualità del modello.

Redact sostituisce i dati personali con un token come [REDACTED]. Funziona per i modelli di rilevamento dei dati personali. Per altri compiti — sentiment, classificazione, raccomandazione — è dannoso. Il modello impara che [REDACTED] è un token speciale. Non riesce ad apprendere dalla distribuzione naturale di nomi e valori.

Replace scambia "Mario Rossi" con "David Chen." Scambia "mrossi@azienda.it" con "dchen@synthetic.com." La struttura rimane intatta. La posizione delle entità, i pattern di co-occorrenza, il flusso delle frasi — tutto preservato. Il modello apprende da un contesto realistico.

Per i set di addestramento ML, Replace è la scelta giusta. Il modello non impara i valori falsi. Impara i pattern attorno a essi. Questo è ciò che conta.

Schrems II e i trasferimenti transfrontalieri

La sentenza Schrems II (CGUE, 2020) ha invalidato lo scudo UE-USA per la privacy. I dati di origine UE non possono essere trasferiti all'infrastruttura ML statunitense — AWS US-East, GCP US-Central — senza adeguate garanzie di trasferimento.

Le tre garanzie principali sono:

  • Clausole contrattuali standard con una valutazione d'impatto del trasferimento
  • Norme vincolanti d'impresa per i trasferimenti all'interno di un gruppo aziendale
  • Deroga per i dati anonimizzati — i file correttamente anonimizzati non sono più personali ai sensi del GDPR e sono esenti dalle regole sul trasferimento

Per i team che utilizzano l'infrastruttura statunitense con dati di origine UE, una corretta anonimizzazione elimina il problema Schrems II. Il dataset pulito non è personale. Può circolare liberamente.

Questo è uno dei vantaggi pratici più significativi dell'anonimizzazione batch. Va oltre la conformità al GDPR: elimina del tutto le frizioni transfrontaliere.

Per ulteriori informazioni sulle restrizioni ai trasferimenti, consulta la guida alla limitazione delle finalità GDPR.

Cosa fornire al DPO

Quando si sottopone un set di addestramento pulito all'approvazione del DPO, includere questi cinque elementi:

  1. Descrizione della fonte. Qual era il dataset originale? Qual era la finalità della raccolta? Quali categorie di dati personali conteneva?
  2. Configurazione dell'anonimizzazione. Quali tipi di entità sono stati rilevati e sostituiti? Quale metodo è stato applicato?
  3. Metadati di elaborazione. Conteggio delle entità per record, punteggi di confidenza, numero totale di record elaborati.
  4. Valutazione del rischio residuo. Qual è la probabilità che un individuo possa essere reidentificato? Per l'anonimizzazione con metodo Replace con oltre 285 tipi di entità su testo strutturato, questa probabilità è molto bassa.
  5. Uso previsto. Quale modello verrà addestrato? Qual è la finalità dell'addestramento?

L'elaborazione batch fornisce automaticamente i punti 2 e 3. I punti 1, 4 e 5 provengono dal data scientist.

Consulta l'API batch di anonym.legal per informazioni su come i metadati di elaborazione vengono restituiti con ogni job.

I benefici ottenuti

I set ML conformi al GDPR sono realizzabili senza script personalizzati, senza ritardi di più giorni e senza perdere qualità nel modello.

Il metodo Replace mantiene le proprietà del linguaggio naturale che contano per l'addestramento NLP. Rimuove i dettagli personali che creano rischi GDPR.

45 minuti di elaborazione batch fanno la differenza tra una revisione di conformità in ritardo e un'approvazione agevole da parte del DPO.

Fonti

Pronto a proteggere i tuoi dati?

Inizia ad anonimizzare i PII con oltre 285 tipi di entità in 48 lingue.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.