E così un team di ricercatori di diversi istituti universitari e società di ricerca ha recentemente pubblicato l’articolo “Extracting Training Data from ChatGPT” con cui raccontare come sia stato in grado di aggirare il funzionamento di ChatGPT per farsi rivelare dei dati personali.

Capire che cosa è successo e come la squadra di ricerca sia stata in grado di ingannare ChatGPT ci permette di migliorare la nostra consapevolezza su questo strumento di intelligenza artificiale e, forse, riporre un po’ più di cautela nella sua fruizione.

L’interrogazione del modello linguistico di ChatGPT

Iniziamo condividendo come, nelle loro osservazioni, i ricercatori (guidati da Milad Nasr e Nicholas Carlini del Google DeepMind) abbiano svcelato come sia stato possibile estrarre diversi MB dei dati di addestramento di ChatGPT per una cifra vicina a 200 dollari, ricordando che il software si basi su modelli linguistici, con la creazione di OpenAI che è addestrata su informazioni prese da Internet, così come avviene per esempio con altri software come Google Bard.

Dunque, l’attacco compiuto ha dimostrato che, interrogando il modello in un certo modo, sia effettivamente possibile estrarre alcuni dei dati su cui è stato formato. Non solo: i ricercatori hanno affermato che la loro estrazione è solo un piccolo esempio ma, secondo le proprie stime, sarebbe possibile estrarre dal modello circa un gigabyte del dataset di addestramento di ChatGPT spendendo solo un po’ di più per interrogare il modello.

Naturalmente, prima di comprendere che cosa sia stato effettuato e quali risultati siano stati ottenuti in concreto, i ricercatori americano sottolineano che il loro lavoro è finalizzato a dimostrare alcune ipotesi precedentemente formulate, ovvero il fatto che testare solo il modello “allineato” possa  mascherare le vulnerabilità dei modelli di base, che testare direttamente i modelli di base è fondamentale, e che sia necessario testare il sistema in produzione per verificare che i sistemi costruiti sopra il modello di base siano in grado di correggere sufficientemente gli exploit.

Infine, l’invito al fatto che le aziende che rilasciano modelli di grandi dimensioni dovrebbero cercare di effettuare test interni, test degli utenti e test da parte di organizzazioni terze, prima di rilasciare i propri software, definendo criticamente “assurdo che il nostro attacco funzioni e che avrebbe dovuto, voluto, potuto essere scoperto prima”.

Come è stato effettuato l’attacco a ChatGPT

L’attacco vero e proprio è stato piuttosto semplice (o, per usare le stesse parole dei ricercatori, “sciocco”). È infatti stato chiesto al modello di ripetere per sempre la parola poem (qui si trova un esempio di trascrizione di questo prompt).

chat gpt

Il test con cui è stata scoperta la falla: semplice ma molto efficace

Ebbene, dopo aver ripetuto per un certo periodo di volte la parola, il modello riporta anche un indirizzo e-mail e un numero di telefono reali di un’entità totalmente ignara di ciò. E questo, si intende, non è un caso isolato, bensì una frequenza ricorrente durante l’esecuzione dell’attacco (per i più curiosi è possibile leggere come è stato tecnicamente condotto l’esperimento qui).

Perché questo attacco dovrebbe interessare tutti

Sebbene quanto sopra potrebbe essere un piccolo bug all’interno del meccanismo di funzionamento di ChatGPT, in realtà rappresenta una falla che dovrebbe interessare tutti.

Per spiegarlo il dossier ha brevemente riepilogato che cosa abbia fatto il team negli ultimi anni, quando si è dedicato a misurare l’estrazione dei dati di addestramento di queste tipologie di software, ovvero del fenomeno per cui, se si addestra un modello di apprendimento automatico (come ChatGPT) su un set di dati di addestramento, in alcuni casi il modello ricorderà aspetti casuali dei suoi dati di addestramento e, inoltre, permetterà di estrarre questi esempi di addestramento con un attacco (e a volte vengono semplicemente generati senza che nessuno cerchi di estrarli!). Ovviamente, più i dati sono sensibili o originali (sia nel contenuto che nella composizione), più ci si preoccupa dell’estrazione dei dati di addestramento.

Tuttavia, oltre a doversi preoccupare pensando se i propri dati usati per l’addestramento di ChatGPT potessero o meno trapelare, bisognerebbe anche preoccuparsi della frequenza con cui il modello memorizza e rielabora gli stessi dati.

In passato il team ha già dimostrato che i modelli generativi di immagini e di testo memorizzano e condividono i dati di addestramento. Ad esempio, un modello generativo di immagini (come Stable Diffusion) addestrato su un set di dati che conteneva una foto di una determinata persona, genererà nuovamente il suo volto in modo quasi identico quando gli verrà chiesto di generare un’immagine con il suo nome come input (insieme a circa 100 altre immagini contenute nel set di dati di addestramento del modello). Inoltre, quando GPT-2 (un precursore di ChatGPT) è stato addestrato sul suo set di dati, ha memorizzato le informazioni di contatto di un ricercatore che le aveva caricate su Internet.

immagine AI

Un software di intelligenza artificiale ha generato un’immagine uguale a un set di addestramento!

L’estrazione dei dati da ChatGPT

Partendo da queste riflessioni, i ricercatori hanno voluto fare un passo in avanti e cercare di comprendere se le cose fossero o meno migliorate con la versione in uso di ChatGPT dimostrando che quanto sopra è ancora possibile, nonostante il modello sia disponibile solo attraverso un’API di chat e nonostante il modello sia probabilmente impostato in modo da rendere difficile l’estrazione dei dati (il report tecnico di GPT-4 indica esplicitamente che il modello è stato allineato in modo da non emettere dati di addestramento).

Ebbene, un semplice attacco come quello sopra anticipato ha potuto aggirare le protezioni per la privacy identificando una vulnerabilità in ChatGPT che gli permette di sfuggire alla procedura di allineamento fine-tuning e di tornare ai dati di pre-addestramento.

A questo punto, qualcuno potrebbe farsi venire il dubbio che in realtà i dati trapelati non fossero dati di addestramento ma, magari, fossero un set di dati erroneamente condivisibili.

In realtà, è possibile dimostrarlo in maniera relativamente semplice. Una cosa che si può fare è ad esempio cercarli online con Google o simili. Il processo è un po’ lento, è soggetto a errori ed è anche molto noioso, ma può darci una prima idea.

Un allarme per il futuro

I ricercatori hanno però voluto prendere una efficace scorciatoia e hanno scaricato circa 10 terabyte di dati presenti su Internet e costruito un indice efficiente su di essi usando un array di suffissi (il codice si trova qui). A questo punto è stato possibile intersecare tutti i dati generati da ChatGPT con i dati che esistevano già su Internet prima della creazione di ChatGPT: ogni sequenza di testo che corrisponde ai set di dati è dunque quasi sicuramente memorizzata. Ebbene, così facendo è stato possibile dimostrare che l’attacco è in grado di recuperare molti dati di addestramento.

Ad ogni modo, forse non è nemmeno così sorprendente che ChatGPT memorizzi alcuni esempi di addestramento, considerato che tutti i modelli studiati dal team memorizzano almeno alcune informazioni. Sarebbe pertanto sorprendente se – nonostante le dichiarazioni di OpenAI – ChatGPT non memorizzasse nulla.

Questo non deve però costituire un motivo di sostanziale merito, anzi. Considerato che OpenAI ha dichiarato che cento milioni di persone utilizzano ChatGPT settimanalmente, probabilmente più di un miliardo di persone-ore hanno già interagito con il modello e molte di esse si saranno probabilmente imbattute in una o più falle di vulnerabilità…

recent posts