Apprendimento per rinforzo da feedback umano: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 23: | Riga 23: | ||
** 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 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 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 | ** 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)]] | |||
Versione delle 15:21, 4 mar 2024
Pronunciato Ar-El-Eic-Ef.
Tecnica usata per meglio allineare l'output di un Modello di Linguaggio con le intenzioni e le preferenze degli utenti.
Esempio
Si immagini di voler effettuare il fine-tuning di un modello di linguaggio sul task di "summarization", per cui si preparano le coppie
{testo, riassunto}
Alcuni riassunti possono essere egualmente corretti, ma si vuole registrare la preferenza. Meglio il riassunti 1 o il riassunto 2?
RHFL: {input text, summary 1, summary 2, human preference}
Come Funziona
- 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
- Si parte dal modello di Base, per esempio Llama. Esempio: "summarize the following text:...."
- 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)
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.