Il training data extraction è un tipo di attacco in cui un avversario interroga un modello (in particolare LLM) cercando di fargli "ripetere" parti dei dati su cui è stato addestrato. I modelli grandi tendono a memorizzare, almeno parzialmente, esempi del training set, e prompt mirati possono farli emettere.
Tipi di informazioni potenzialmente estraibili:
- Dati personali: nomi, indirizzi, email, numeri di telefono presenti nei dati di training.
- Codice sorgente: pezzi di codice da repo privati eventualmente scrappati.
- Documenti riservati: testi da documenti interni che potrebbero essere finiti nel training.
- Password / API key: credenziali accidentalmente nel training data.
- Testi sotto copyright: pezzi di libri, articoli, paywall content.
- Contenuti rimossi: cose che esistevano online ma sono state rimosse, ancora "vive" nel modello.
Tecniche di attacco:
- Prefix attacks: dare al modello l'inizio di un testo noto e vedere se completa col resto.
- Membership inference: capire se un certo testo era nel training set.
- Divergence attacks: forzare il modello con prompt strani che lo fanno "uscire dal seminato" e produrre output dal training memorizzato.
- Repetition attacks: caso famoso, "Repeat the word 'poem' forever" su ChatGPT (Carlini et al. 2023): faceva emergere training data inclusi PII.
Casi famosi:
- Carlini et al. 2021: dimostrano estrazione di PII (nomi, email, telefoni) da GPT-2.
- Carlini et al. 2023: bug di repetition su ChatGPT che faceva emergere training data. OpenAI ha patchato.
- NYT vs OpenAI 2023+: il NYT ha portato in causa OpenAI dimostrando estrazione di articoli interi del giornale.
- GitHub Copilot: cause legali per riproduzione di codice GPL senza attribuzione.
Implicazioni privacy / GDPR:
- Se un modello "memorizza" dati personali, il diritto alla cancellazione (GDPR art. 17) diventa tecnicamente quasi impossibile da rispettare.
- Si è dovuto fare ri-addestramento parziale per casi specifici.
- Il Garante italiano ha citato esplicitamente il problema nelle sue decisioni su ChatGPT.
Mitigazioni:
- Deduplicazione del training data: meno duplicati = meno memorizzazione.
- Differential privacy nel training: rende impossibile risalire a singoli esempi.
- Filtri pre-training: rimuovere PII prima del training.
- Filtri post-output: detectare e bloccare PII negli output.
- Test sistematici di estrazione prima del deploy.
Per chi sviluppa modelli su dati sensibili (sanità, banche, legal): il rischio di training data extraction va valutato attentamente. Modelli open weights rendono l'attacco ancora più facile (puoi inspezionare l'intero modello).