Cosa rende utile un agente di dialogo?

'Importanza dell'agente di dialogo'

Le tecniche dietro ChatGPT: RLHF, IFT, CoT, Red teaming e altro

Questo articolo è stato tradotto in cinese semplificato 简体中文.

Qualche settimana fa, è emerso ChatGPT e ha lanciato il dibattito pubblico su una serie di acronimi oscuri: RLHF, SFT, IFT, CoT e altro, tutti attribuiti al successo di ChatGPT. Cosa significano questi acronimi oscuri e perché sono così importanti? Abbiamo esaminato tutti i documenti importanti su questi argomenti per categorizzare questi lavori, riassumere le conclusioni su ciò che è stato fatto e condividere ciò che resta da dimostrare.

Iniziamo esaminando il panorama degli agenti conversazionali basati su modelli di linguaggio. ChatGPT non è il primo, infatti molte organizzazioni hanno pubblicato i loro agenti di dialogo basati su modelli di linguaggio prima di OpenAI, tra cui il BlenderBot di Meta, LaMDA di Google, Sparrow di DeepMind e l’Assistente di Anthropic (uno sviluppo continuo di questo agente senza attribuzione perfetta è anche conosciuto come Claude). Alcuni gruppi hanno anche annunciato i loro piani per costruire un chatbot open-source e condiviso pubblicamente una roadmap (Open Assistant di LAION); altri sicuramente lo stanno facendo e non lo hanno annunciato.

La tabella seguente confronta questi chatbot AI in base ai dettagli del loro accesso pubblico, dei dati di addestramento, dell’architettura del modello e delle direzioni di valutazione. ChatGPT non è documentato, quindi condividiamo invece dettagli su InstructGPT, che è un modello addestrato con istruzioni di OpenAI che si ritiene abbia servito come base di ChatGPT.

Osserviamo che nonostante ci siano molte differenze nei dati di addestramento, nel modello e nel fine-tuning, ci sono anche alcune somiglianze. Un obiettivo comune per tutti i chatbot sopra citati è il seguire le istruzioni, cioè seguire le istruzioni specificate dall’utente. Ad esempio, istruire ChatGPT a scrivere una poesia sul fine-tuning.

Da testo di previsione a seguire le istruzioni

Di solito, l’obiettivo del modello di base di modellazione del linguaggio non è sufficiente per imparare a seguire le indicazioni dell’utente in modo utile. I creatori del modello utilizzano il fine-tuning delle istruzioni (IFT) che prevede il fine-tuning del modello di base su dimostrazioni di istruzioni scritte su un insieme molto vario di compiti, oltre ai compiti NLP classici come sentimento, classificazione del testo, riassunto, ecc. Queste dimostrazioni di istruzioni sono composte da tre componenti principali: l’istruzione, gli input e gli output. Gli input sono opzionali, alcuni compiti richiedono solo istruzioni come la generazione a domanda aperta come nell’esempio sopra con ChatGPT. Un input e un output, quando presenti, formano un’istanza. Può esserci più di un’istanza di input e output per una data istruzione. Vedere di seguito alcuni esempi (tratti da [Wang et al., ’22]).

I dati per IFT di solito sono una raccolta di istruzioni scritte dall’uomo e istanze di istruzioni create utilizzando un modello di linguaggio. Per la creazione, il modello viene sollecitato (come nella figura sopra) in un contesto di few-shot con esempi e gli viene chiesto di generare nuove istruzioni, input e output. In ogni round, il modello viene sollecitato con campioni scelti sia dall’uomo che generati dal modello. La quantità di contributi umani e del modello alla creazione del dataset è uno spettro; vedere la figura qui sotto.

Da un lato, c’è il dataset IFT generato interamente dal modello, come le Istruzioni Innaturali (Honovich et al., ’22), e dall’altro c’è un grande sforzo comunitario di istruzioni realizzate manualmente, come le Istruzioni Supernaturali (Wang et al., ’22). Tra questi due estremi ci sono lavori che utilizzano un piccolo set di dati di base di alta qualità seguito da una creazione di dataset usando il bootstrapping, come l’autoistruzione (Wang et al., ’22). Un altro modo di creare un dataset per IFT è prendere i dataset NLP di alta qualità generati dalla folla su vari compiti (inclusa la sollecitazione) e utilizzare uno schema unificato o modelli diversi per trasformarli in istruzioni. Questa linea di lavoro include il T0 (Sanh et al., ’22), il dataset di istruzioni naturali (Mishra et al., ’22), il FLAN LM (Wei et al., ’22) e l’OPT-IML (Iyer et al., ’22).

Seguire le istruzioni in modo sicuro

Tuttavia, i modelli di linguaggio addestrati con il fine-tuning delle istruzioni potrebbero non sempre generare risposte utili e sicure. Esempi di questo tipo di comportamento includono essere evasivi dando sempre una risposta non utile come “Mi dispiace, non capisco.” o generare una risposta non sicura agli input dell’utente su un argomento sensibile. Per alleviare tali comportamenti, gli sviluppatori del modello utilizzano il Fine-tuning supervisionato (SFT), ovvero il fine-tuning del modello di linguaggio di base su dati umani etichettati di alta qualità per utilità e innocuità. Ad esempio, vedere la tabella qui sotto tratta dal documento Sparrow (Appendice F).

SFT e IFT sono strettamente collegati. L’ottimizzazione delle istruzioni può essere considerata come un sottoinsieme del fine-tuning supervisionato. Nella recente letteratura, la fase di SFT è spesso utilizzata per argomenti di sicurezza, anziché per argomenti specifici delle istruzioni, che vengono affrontati dopo l’IFT. In futuro, questa tassonomia e delineazione dovrebbero evolvere in casi d’uso e metodologie più chiare.

La LaMDA di Google è anche sottoposta a fine-tuning su un dataset di dialogo con annotazioni di sicurezza basate su un insieme di regole (Appendice A). Queste regole sono di solito predefinite e sviluppate dagli autori del modello e comprendono un’ampia gamma di argomenti, tra cui danni, discriminazione, disinformazione.

Fine-tuning dei modelli

D’altra parte, InstructGPT di Open AI, Sparrow di DeepMind e Constitutional AI di Anthropic utilizzano annotazioni umane di preferenze in un setup chiamato apprendimento per rinforzo da feedback umano (RLHF). In RLHF, un insieme di risposte del modello viene classificato in base al feedback umano (ad esempio, scegliendo un breve testo che è preferito rispetto a un altro). Successivamente, viene addestrato un modello di preferenze su queste risposte annotate per restituire una ricompensa scalare all’ottimizzatore RL. Infine, l’agente di dialogo viene addestrato a simulare il modello di preferenze tramite apprendimento per rinforzo. Per ulteriori dettagli, consultare il nostro post precedente su RLHF.

La prompting di catena di pensiero (CoT) (Wei et al., ’22) è un caso speciale di dimostrazione delle istruzioni che genera un output elicitando un ragionamento passo-passo dall’agente di dialogo. I modelli sottoposti a fine-tuning con CoT utilizzano dataset di istruzioni con annotazioni umane di ragionamento passo-passo. È l’origine della famosa prompt, **************************pensiamo passo dopo passo************************** . L’esempio sottostante è tratto da Chung et al., ’22 . Il colore arancione evidenzia l’istruzione, il colore rosa mostra l’input e l’output, e il colore blu rappresenta il ragionamento CoT.

I modelli sottoposti a fine-tuning con CoT hanno dimostrato di ottenere migliori risultati in compiti che richiedono ragionamento di buon senso, aritmetica e ragionamento simbolico, come mostrato da Chung et al., ’22 .

Il fine-tuning con CoT ha dimostrato anche di essere molto efficace per la sicurezza (a volte anche migliore di RLHF) senza che il modello si mostri evasivo e generi risposte come “Mi dispiace, non posso rispondere a questa domanda”, per stimoli sensibili, come mostrato da Bai et al., ’22 . Per ulteriori esempi, consultare l’Appendice D del loro articolo.

Cose da ricordare:

  1. Hai solo bisogno di una piccolissima frazione di dati per il fine-tuning delle istruzioni (dell’ordine di poche centinaia) rispetto ai dati di pre-training.
  2. Il fine-tuning supervisionato utilizza annotazioni umane per rendere le uscite del modello più sicure e utili.
  3. Il fine-tuning con CoT migliora le prestazioni del modello nei compiti che richiedono ragionamento passo-passo e lo rende meno evasivo su argomenti sensibili.

Prossimi passi per gli agenti di dialogo

Questo blog riassume molti dei lavori esistenti su ciò che rende un agente di dialogo utile. Tuttavia, ci sono ancora molte domande aperte da esplorare. Ne elenchiamo alcune qui di seguito.

  1. Quanto è importante l’apprendimento per rinforzo nell’apprendimento da feedback umano? Possiamo ottenere le prestazioni di RLHF addestrando su dati di qualità superiore in IFT o SFT?
  2. Come si confronta SFT+RLHF come in Sparrow con l’uso solo di SFT come in LaMDA per la sicurezza?
  3. Quanto è necessario il pre-training, dato che abbiamo IFT, SFT, CoT e RLHF? Quali sono i compromessi? Quali sono i migliori modelli di base che le persone dovrebbero utilizzare (sia quelli disponibili pubblicamente che non)?
  4. Molti dei modelli citati in questo articolo sono stati attentamente progettati con il “red-teaming”, in cui gli ingegneri cercano specificamente modalità di fallimento e influenzano la formazione futura (prompt e metodi) in base ai problemi rilevati. Come possiamo registrare sistematicamente gli effetti di questi metodi e riprodurli?

P.S.: Fateci sapere se trovate informazioni mancanti o errate in questo blog.

****************Citazione****************

Rajani et al., "What Makes a Dialog Agent Useful?", Hugging Face Blog, 2023.

Citazione BibTeX:

@article{rajani2023ift,
  author = {Rajani, Nazneen and Lambert, Nathan and Sanh, Victor and Wolf, Thomas},
  title = {What Makes a Dialog Agent Useful?},
  journal = {Hugging Face Blog},
  year = {2023},
  note = {https://huggingface.co/blog/dialog-agents},
}