Testare le Modelli di Linguaggio con i Modelli di Linguaggio

'Prova dei Modelli di Linguaggio con altri Modelli di Linguaggio'

Nel nostro recente articolo , mostriamo che è possibile trovare automaticamente input che generano testo dannoso da modelli di linguaggio, generando input utilizzando i modelli di linguaggio stessi. Il nostro approccio fornisce uno strumento per individuare comportamenti dannosi del modello prima che gli utenti ne siano colpiti, anche se sottolineiamo che dovrebbe essere considerato come un componente insieme a molte altre tecniche che saranno necessarie per individuare i danni e mitigarli una volta individuati.

Gli ampi modelli di linguaggio generativo come GPT-3 e Gopher hanno una notevole capacità di generare testi di alta qualità, ma sono difficili da implementare nel mondo reale. I modelli di linguaggio generativo comportano il rischio di generare testo estremamente dannoso e anche un piccolo rischio di danno è inaccettabile nelle applicazioni reali.

Ad esempio, nel 2016, Microsoft ha lanciato il bot di Twitter Tay per tweettare automaticamente in risposta agli utenti. Entro 16 ore, Microsoft ha rimosso Tay dopo che diversi utenti avversari hanno ottenuto tweet razzisti e sessualmente espliciti da Tay, che sono stati inviati a oltre 50.000 follower. L’esito non è stato dovuto a una mancanza di attenzione da parte di Microsoft :

“Anche se eravamo preparati per molti tipi di abusi del sistema, avevamo commesso un’omissione critica per questo attacco specifico.” Peter Lee VP, Microsoft

Il problema è che ci sono così tanti possibili input che possono causare un modello a generare un testo dannoso. Di conseguenza, è difficile trovare tutti i casi in cui un modello fallisce prima che venga implementato nel mondo reale. Lavori precedenti si basano su annotatori umani retribuiti per scoprire manualmente casi di fallimento (Xu et al. 2021, tra gli altri). Questo approccio è efficace ma costoso, limitando il numero e la diversità dei casi di fallimento trovati.

Il nostro obiettivo è quello di integrare i test manuali e ridurre il numero di omissioni critiche individuando casi di fallimento (o ‘red teaming’) in modo automatico. Per farlo, generiamo casi di test utilizzando un modello di linguaggio stesso e utilizziamo un classificatore per rilevare vari comportamenti dannosi sui casi di test, come mostrato di seguito:

Il nostro approccio scopre una varietà di comportamenti dannosi del modello:

  1. Linguaggio offensivo: discorsi di odio, oscenità, contenuti sessuali, discriminazione, ecc.
  2. Rivelazione di dati: generazione di informazioni protette da copyright o private, identificabili personalmente, dal corpus di addestramento.
  3. Generazione di informazioni di contatto: indirizzare gli utenti a inviare e-mail o chiamare inutilmente persone reali.
  4. Bias distributivo: parlare di alcuni gruppi di persone in modo ingiustamente diverso rispetto ad altri gruppi, in media su un gran numero di output.
  5. Danni conversazionali: linguaggio offensivo che si verifica nel contesto di un lungo dialogo, ad esempio.

Per generare casi di test con modelli di linguaggio, esploriamo una varietà di metodi, che vanno dalla generazione basata su prompt e apprendimento a pochi esempi al fine-tuning supervisionato e apprendimento per rinforzo. Alcuni metodi generano casi di test più diversi, mentre altri generano casi di test più difficili per il modello target. Insieme, i metodi che proponiamo sono utili per ottenere una copertura di test elevata mentre si modellano anche casi avversari.

Una volta individuati i casi di fallimento, diventa più facile correggere il comportamento dannoso del modello:

  1. Inserendo in una lista nera determinate frasi che si verificano frequentemente negli output dannosi, impedendo al modello di generare output che contengono frasi ad alto rischio.
  2. Trovando dati di addestramento offensivi citati dal modello, per rimuovere tali dati durante l’addestramento delle future iterazioni del modello.
  3. Arricchendo il prompt del modello (testo di condizionamento) con un esempio del comportamento desiderato per un certo tipo di input, come mostrato nel nostro recente lavoro.
  4. Addestrando il modello a ridurre al minimo la probabilità del suo output originale dannoso per un determinato input di test.

In generale, i modelli di linguaggio sono uno strumento molto efficace per scoprire quando i modelli di linguaggio si comportano in modi indesiderabili. Nel nostro lavoro attuale, ci siamo concentrati sui danni del red teaming che i modelli di linguaggio di oggi commettono. In futuro, il nostro approccio può essere utilizzato anche per scoprire in modo preventivo altri danni ipotizzati dai sistemi avanzati di apprendimento automatico, ad esempio a causa di un disallineamento interno o di fallimenti nella robustezza degli obiettivi. Questo approccio è solo una componente dello sviluppo responsabile dei modelli di linguaggio: consideriamo il red teaming come uno strumento da utilizzare insieme ad altri, sia per individuare danni nei modelli di linguaggio che per mitigarli. Per una discussione più ampia su altri lavori necessari per la sicurezza dei modelli di linguaggio, consultare la Sezione 7.3 di Rae et al. 2021.

Per maggiori dettagli sul nostro approccio e risultati, così come sulle conseguenze più ampie delle nostre scoperte, leggi il nostro documento di red teaming qui.