Apprendimento per rinforzo da feedback umano: differenze tra le versioni

Da Wiki AI.
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
Pronunciato Ar-El-Eic-Ef.
= RLHF (Reinforcement Learning from Human Feedback) =


Tecnica usata per meglio allineare l'output di un Modello di Linguaggio con le intenzioni e le preferenze degli utenti.  
Pronunciato Ar-El-Eic-Ef, RLHF è una tecnica avanzata per allineare gli output di un Modello di Linguaggio (Language Model, LM) alle intenzioni e alle preferenze degli utenti. Questo metodo è particolarmente utile per affinare i modelli di linguaggio su compiti specifici, come il riassunto di testi, garantendo che gli output siano non solo accurati ma anche allineati con le preferenze umane.


== Esempio ==
== Esempio Pratico ==
Si immagini di voler effettuare il [[fine-tuning]] di un modello di linguaggio sul task di "summarization", per cui si preparano le coppie  
Consideriamo il processo di ''fine-tuning'' di un modello di linguaggio per il compito di ''summarization''. Prepariamo delle coppie di esempi nel formato:


{testo, riassunto}
: {testo originale, riassunto proposto}


Alcuni riassunti possono essere egualmente corretti, ma si vuole registrare la preferenza. Meglio il riassunti 1 o il riassunto 2?
Supponendo che per lo stesso testo si generino diversi riassunti validi, si introduce la necessità di determinare quale riassunto sia preferito. In questo contesto, RLHF opera attraverso un formato specifico:


RHFL: {input text, summary 1, summary 2, human preference}
: RLHF: {testo di input, riassunto 1, riassunto 2, preferenza umana}


== Meccanismo di Funzionamento ==
Il processo di RLHF si articola in diverse fasi chiave:


== Come Funziona ==
* '''Preparazione del Dataset di Preferenze''': Si inizia con la creazione di un dataset basato sulle preferenze, registrando le scelte preferenziali tra diverse opzioni di output fornite dal modello.
* Si parte da un dataset di "preferenze"
* Si fa un [[allenamento supervisionato]] di un modello di reward
* Si esegue RL in loop fra il modello di reward e il modello LLM


* '''Allenamento Supervisionato del Modello di Reward''': Si procede con l'allenamento di un modello di reward, anch'esso un modello di linguaggio, utilizzando il dataset di preferenze. Questo modello è addestrato per predire la preferenza umana tra coppie di output generati in risposta allo stesso prompt.


* Si parte dal modello di Base, per esempio [[Llama]]. Esempio: "summarize the following text:...."
* '''Reinforcement Learning (RL) in Loop''': Si utilizza il modello di reward in un ciclo di RL per il fine-tuning del modello di linguaggio principale. L'obiettivo è massimizzare il ''reward'' (premio) indicato dal modello di reward, ottimizzando così gli output del modello di linguaggio per riflettere le preferenze umane.
** Si fa generare al modello molteplici output: summary 1, summary 2, etc.
** Si fa annotare a un annotatore umano quale sia il suo output preferito. Questa parte è molto importante perché, a seconda dei valori ai quali si vuole allineare il modello, bisognerà fornire delle regole agli annotatori umani {prompt, candidate 1, candidate 2}
* Si allena un modello di reward ([[Reward Model]]), che normalmente è un altro modello di linguaggio:
** Si prende il dataset di preferenze creato in precedenza, che per ogni prompt indica quali delle due candidati ha vinto. Si crea in pratica un modello di regressione per ogni prompt
** L'obiettivo del training del modello di reward è minimizzare la funzione di perdita
* Si usa il modello di RL in un loop per il fine tuning del modello di linguaggio, per massimizzare il reward. Si utilizza quindi un nuovo dataset di soli prompt {prompt 1},{prompt 2},{prompt 3},{prompt 4}, ecc. Il modello RL intraprende un azione sull'ambiente cambiandone lo stato e riceve un reward. L'obiettivo è massimizzare il reward. In questo contesto:
** la policy è il Modello di Linguaggio stesso.
** lo stato corrente é ciò che è nel contesto (prompt e testo generato)
** le azioni sono "generare token"
** ogni volta che l'LM genera del testo, ottine un reward dal modello di reward che indica quanto il testo sia allineato, usando il metodo standard [[Proximal Policy Optimization (PPO)]]


### Dettagli Tecnici ###
1. Partendo da un modello base, ad esempio [[Llama]], si generano molteplici output per lo stesso prompt.
2. Un annotatore umano valuta gli output generati, indicando la sua preferenza. Questo passaggio è cruciale per garantire che il modello sia allineato con i valori e le preferenze desiderati.
3. Si allena un ''Modello di Reward'' utilizzando i dati raccolti, configurandolo per minimizzare la funzione di perdita e predire accuratamente le preferenze umane.
4. Il fine-tuning del modello di linguaggio avviene attraverso un loop di RL, impiegando la tecnica [[Proximal Policy Optimization (PPO)]] per ottimizzare le scelte del modello in base al feedback ricevuto.


RLHF è particolarmente efficace in scenari dove non esiste una risposta univocamente ''corretta'', ma è desiderabile orientare le risposte del modello di linguaggio secondo determinate preferenze o valori.


== Risorse Aggiuntive ==
=== Tutorial ===
* [https://learn.deeplearning.ai/courses/reinforcement-learning-from-human-feedback/lesson/1/introduction Tutorial su Deeplearning.ai]


 
=== Pubblicazioni Scientifiche ===
 
* [https://arxiv.org/abs/1706.03741 Deep Reinforcement Learning from Human Preferences]
E' utilizzato per risolvere problemi in cui non esiste veramente una risposta "corretta", ma si vuole orientare il tipo di risposte dal Modello di Linguaggio.
* [https://arxiv.org/abs/2203.02155 Training language models to follow instructions with human feedback]
 
 
 
=== Tuning Llama ===
 
 
 
=== Links ===
 
==== Tutorials ====
 
[https://learn.deeplearning.ai/courses/reinforcement-learning-from-human-feedback/lesson/1/introduction Tutorial su Deeplearning.ai]
 
==== Papers ====
 
[https://arxiv.org/abs/1706.03741 Deep Reinforcement Learning from Human Preferences]
[https://arxiv.org/abs/2203.02155 Training language models to follow instructions with human feedback]

Versione delle 15:26, 4 mar 2024

RLHF (Reinforcement Learning from Human Feedback)

Pronunciato Ar-El-Eic-Ef, RLHF è una tecnica avanzata per allineare gli output di un Modello di Linguaggio (Language Model, LM) alle intenzioni e alle preferenze degli utenti. Questo metodo è particolarmente utile per affinare i modelli di linguaggio su compiti specifici, come il riassunto di testi, garantendo che gli output siano non solo accurati ma anche allineati con le preferenze umane.

Esempio Pratico

Consideriamo il processo di fine-tuning di un modello di linguaggio per il compito di summarization. Prepariamo delle coppie di esempi nel formato:

{testo originale, riassunto proposto}

Supponendo che per lo stesso testo si generino diversi riassunti validi, si introduce la necessità di determinare quale riassunto sia preferito. In questo contesto, RLHF opera attraverso un formato specifico:

RLHF: {testo di input, riassunto 1, riassunto 2, preferenza umana}

Meccanismo di Funzionamento

Il processo di RLHF si articola in diverse fasi chiave:

  • Preparazione del Dataset di Preferenze: Si inizia con la creazione di un dataset basato sulle preferenze, registrando le scelte preferenziali tra diverse opzioni di output fornite dal modello.
  • Allenamento Supervisionato del Modello di Reward: Si procede con l'allenamento di un modello di reward, anch'esso un modello di linguaggio, utilizzando il dataset di preferenze. Questo modello è addestrato per predire la preferenza umana tra coppie di output generati in risposta allo stesso prompt.
  • Reinforcement Learning (RL) in Loop: Si utilizza il modello di reward in un ciclo di RL per il fine-tuning del modello di linguaggio principale. L'obiettivo è massimizzare il reward (premio) indicato dal modello di reward, ottimizzando così gli output del modello di linguaggio per riflettere le preferenze umane.
      1. Dettagli Tecnici ###

1. Partendo da un modello base, ad esempio Llama, si generano molteplici output per lo stesso prompt. 2. Un annotatore umano valuta gli output generati, indicando la sua preferenza. Questo passaggio è cruciale per garantire che il modello sia allineato con i valori e le preferenze desiderati. 3. Si allena un Modello di Reward utilizzando i dati raccolti, configurandolo per minimizzare la funzione di perdita e predire accuratamente le preferenze umane. 4. Il fine-tuning del modello di linguaggio avviene attraverso un loop di RL, impiegando la tecnica Proximal Policy Optimization (PPO) per ottimizzare le scelte del modello in base al feedback ricevuto.

RLHF è particolarmente efficace in scenari dove non esiste una risposta univocamente corretta, ma è desiderabile orientare le risposte del modello di linguaggio secondo determinate preferenze o valori.

Risorse Aggiuntive

Tutorial

Pubblicazioni Scientifiche