Risorse/Addestramento del modello/Metodi di addestramento

Metodo

Tuning delle preferenze (DPO)

La Direct Preference Optimization addestra un modello su coppie di risposte, una migliore e una peggiore, in modo che impari a preferire la tipologia migliore, senza il modello di ricompensa e il ciclo di apprendimento per rinforzo necessari nel classico RLHF.

Capitolo 7Lettura di 6 min5 riferimenti

Cos'è

Molte delle caratteristiche richieste a un modello sono più facili da giudicare che da descrivere. Quale tra due risposte è più chiara, più specifica, più in linea con il brand o meno incline a inventare una funzionalità? Un revisore può rispondere in pochi secondi, anche quando nessuna delle due risposte è perfetta. Il preference tuning trasforma questi giudizi in dati di addestramento: ogni record è una coppia, un prompt con una risposta preferita e una non preferita.

La Direct Preference Optimization (DPO), introdotta da Rafailov e colleghi nel 2023, è il metodo più utilizzato per l'addestramento su tali coppie. Il sottotitolo del loro articolo ne riassume l'idea: “il Vostro modello linguistico è segretamente un reward model”.

userCome posso reimpostare la mia password?
preferitaApra Impostazioni → Sicurezza e scelga Reimposta password. Riceverà un link via email valido per 30 minuti.
non preferitaContatti l'assistenza per reimpostare la password.
Probabilità che il modello trovi ciascuna risposta
preferita
non preferita
riferimento (stato iniziale congelato)dopo la DPO
La DPO confronta il modello addestrato (linea continua) con una copia congelata del suo stato iniziale (contorno). Spinge la risposta preferita verso l'alto e quella non preferita verso il basso, rispetto a tale riferimento, mai in termini assoluti.

Da dove deriva: RLHF

Per comprendere cosa semplifichi la DPO, partiamo dal reinforcement learning from human feedback (RLHF), la formula alla base di InstructGPT e della prima ondata di assistenti chat. Dopo il pre-addestramento, prevede tre fasi:

  1. Fine-tuning supervisionato sulle dimostrazioni, per ottenere un modello che risponda nel formato corretto.
  2. Addestramento di un modello di ricompensa: una rete separata che legge un prompt e una risposta e produce un punteggio, calibrata in modo che le risposte preferite ottengano un punteggio superiore rispetto a quelle non preferite.
  3. Apprendimento per rinforzo, solitamente PPO: il modello scrive le risposte, il modello di ricompensa le valuta e il modello viene aggiornato per ottenere punteggi più alti, con una penalità se si discosta troppo dal modello supervisionato.

Funziona: nell'articolo su InstructGPT, gli utenti hanno preferito gli output di un modello da 1,3 miliardi di parametri addestrato in questo modo rispetto a quelli di GPT-3 da 175 miliardi di parametri. Tuttavia, è un processo oneroso. La fase di rinforzo genera testo all'interno del ciclo di addestramento, mantiene contemporaneamente in memoria diversi modelli ed è sensibile alle proprie configurazioni.

RLHF classico · due fasi aggiuntive
coppie di preferenze→addestramento di un modello di ricompensarisposta → punteggio→Ciclo RL (PPO)scrittura · valutazione · aggiornamento · penalità KL→modello ottimizzato

Diversi modelli in gioco contemporaneamente (il modello in fase di addestramento, il suo riferimento, il modello di ricompensa e un modello di valore) e il testo viene generato all'interno del ciclo di addestramento. Potente, ma lento e sensibile alle impostazioni.

DPO · una fase
coppie di preferenze+riferimento congelatoil modello di partenza→una loss in stile classificazione−log σ(β × margine)→modello ottimizzato

Nessun modello di ricompensa e nessun campionamento durante l'addestramento. Viene eseguito come un processo supervisionato sulle coppie, il che lo rende più economico e molto più stabile.

Stessi dati, stesso obiettivo, meccanismi diversi. Il classico RLHF addestra un modello di ricompensa separato, quindi esegue un ciclo di apprendimento per rinforzo che genera e valuta il testo. DPO unisce entrambi in un'unica loss calcolata direttamente sulle coppie.

Come funziona il DPO

Sia il reward model del RLHF che la DPO si basano sullo stesso modello di scelta umana, il modello di Bradley-Terry. Questo stabilisce che se due risposte hanno punteggi di qualità nascosti, la probabilità che una persona preferisca la prima è la sigmoide della differenza tra i punteggi:

Il modello di preferenza di Bradley–Terry
P(A preferred over B) = σ(r_A − r_B) = 1 / (1 + e^−(r_A − r_B))

r_A − r_B = 0  →  0.50
r_A − r_B = 1  →  0.73
r_A − r_B = 2  →  0.88

Contano solo le differenze: aggiungendo lo stesso valore a entrambi i punteggi, la probabilità non cambia. Un divario pari a 0 equivale al lancio di una moneta; un divario di 2 significa che la prima risposta vince l'88% delle volte.

La fase di rinforzo del RLHF massimizza la ricompensa pagando al contempo una penalità, ponderata da β, per l'allontanamento da un modello di riferimento (la penalità è la divergenza KL tra i due). Gli autori della DPO hanno dimostrato che questo obiettivo ha una soluzione esatta: il miglior modello possibile è il riferimento riponderato per l'esponenziale della ricompensa ÷ β. Invertendo la prospettiva, ogni modello definisce una ricompensa implicita: β moltiplicato per il logaritmo di quanto ritenga più probabile una risposta rispetto al riferimento. Inserendo questo concetto nel modello di Bradley-Terry, le parti difficili da calcolare si annullano, lasciando una loss che richiede solo quattro numeri per coppia:

La loss DPO per una singola coppia
loss = −ln σ( β × [ (log π(chosen)   − log π_ref(chosen))
                  − (log π(rejected) − log π_ref(rejected)) ] )

implicit reward of an answer  =  β × (log π(answer) − log π_ref(answer))
  • log π(chosen) e log π(rejected): la probabilità che il modello in fase di addestramento generi l'intera risposta, calcolata come somma delle log-probabilità dei suoi token.
  • log π_ref(…): gli stessi valori dal modello di riferimento, una copia congelata del modello così com'era all'inizio dell'addestramento.
  • β: quanto il modello è vincolato a tale riferimento. Un valore più basso gli consente di discostarsi maggiormente.
  • σ: la sigmoide. Il suo output si interpreta come “la probabilità che la ricompensa implicita del modello concordi con la preferenza umana”. La loss è il suo logaritmo negativo, quindi è elevata quando il modello è in disaccordo e vicina a 0 quando concorda chiaramente.

L'addestramento riduce la loss aumentando la probabilità della risposta scelta rispetto al riferimento, diminuendo quella della risposta scartata, o entrambe le cose. Il gradiente pondera inoltre ciascuna coppia in base a quanto il modello sia attualmente in errore: le coppie già classificate correttamente con un ampio margine contribuiscono in minima parte, mentre le coppie classificate in modo errato contribuiscono maggiormente. L'articolo segnala che senza questa ponderazione il modello può degenerare.

Una coppia, una loss
  1. Log-probabilità del modello: scelta −42.0, scartata −51.0. Del modello di riferimento: scelta −45.0, scartata −50.0.
  2. Log-rapporti rispetto al riferimento: scelta −42.0 − (−45.0) = +3.0; scartata −51.0 − (−50.0) = −1.0.
  3. Margine: 3.0 − (−1.0) = 4.0. Moltiplicato per β = 0.1 dà 0.4. Suddivise allo stesso modo, le ricompense implicite sono +0.30 per la scelta e −0.10 per la scartata.
  4. σ(0.4) ≈ 0.60, quindi la loss è −ln 0.60 ≈ 0.51, in calo rispetto allo 0.69 iniziale, quando entrambi i log-rapporti erano 0.

Cosa significa nella pratica

  • Più economico e stabile del RLHF. Nessun reward model da addestrare e nessun testo generato durante l'addestramento. Viene eseguito come un processo supervisionato sulle coppie, affiancato da una copia congelata del modello di partenza.
  • Offline. Apprende da un set fisso di coppie. Non è necessario che le risposte provengano dal modello in fase di addestramento, ma le coppie simili a ciò che scrive effettivamente gli insegnano di più.
  • Relativo, non assoluto. Amplia il divario tra le risposte. La ricerca ha scoperto che la probabilità stessa della risposta scelta spesso diminuisce durante l'addestramento (“likelihood displacement”), a patto che quella della risposta scartata diminuisca più rapidamente.
  • Non può aggiungere conoscenza. La DPO riclassifica i comportamenti che il modello è già in grado di produrre. Se nessuna delle due risposte è qualcosa che il modello potrebbe scrivere, c'è poco da imparare; per questo motivo, di norma segue il fine-tuning supervisionato.

Formati dei dati

I provider nominano i campi in modo diverso, ma ogni formato memorizza i medesimi tre elementi: il prompt, la risposta migliore e la risposta peggiore. Un formato in hosting:

Formato in hosting: input, preferred_output, non_preferred_output
{
  "input": {"messages": [
    {"role": "system", "content": "You are Scalata's support assistant."},
    {"role": "user", "content": "How do I reset my password?"}
  ]},
  "preferred_output": [
    {"role": "assistant", "content": "Open Settings → Security and choose Reset password. You'll get an email link valid for 30 minutes."}
  ],
  "non_preferred_output": [
    {"role": "assistant", "content": "Please contact support to reset your password."}
  ]
}

I trainer open-source come Hugging Face TRL utilizzano prompt, chosen e rejected, e accettano l'intera conversazione precedente come prompt:

Formato open-source: prompt, chosen, rejected
{"prompt": [
   {"role": "user", "content": "I uploaded a CSV yesterday."},
   {"role": "assistant", "content": "Thanks — it's in Local Storage."},
   {"role": "user", "content": "Can I use it in a dashboard?"}],
 "chosen":   [{"role": "assistant", "content": "Yes: open Dashboards → Add widget → pick the file."}],
 "rejected": [{"role": "assistant", "content": "Maybe."}]}

Alcune implementazioni in hosting si addestrano su un solo turno, pertanto i turni precedenti devono essere integrati nell'ultimo messaggio dell'utente come contesto. Altre mantengono la conversazione come messaggi separati.

Errori comuni

  • Eseguire la DPO su un modello di base standard che non conosce il Vostro prodotto. Entrambe le risposte in ciascuna coppia sono spesso ugualmente prive di informazioni, offrendo quindi uno scarso segnale.
  • “Sicuro ma errato”: con poche coppie il modello copia lo stile delle risposte preferite (nomi specifici, passaggi numerati, maggiore lunghezza) senza possedere la conoscenza sottostante, inventando i dettagli.
  • Coppie le cui risposte differiscono solo nella formulazione. Il modello apprende il rumore, oppure deduce che la lunghezza è il criterio preferito.
  • Considerare una loss DPO in diminuzione come prova di risposte migliori. Questo indica solo che il modello separa le Vostre coppie; solo una valutazione può dimostrare se le risposte siano effettivamente migliorate.
  • Troppe epoche o un tasso di apprendimento troppo elevato. Il preference tuning richiede solitamente 1–2 epoche e un tasso di apprendimento inferiore rispetto al training supervisionato.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01Direct Preference Optimization: Your Language Model is Secretly a Reward ModelRafailov et al., 2023 · arXiv · arxiv.orgL'articolo originale: la derivazione dal RLHF, la loss e gli esperimenti rispetto alla PPO.
  2. 02Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: la pipeline RLHF a tre fasi che la DPO semplifica.
  3. 03Deep reinforcement learning from human preferencesChristiano et al., 2017 · arXiv · arxiv.orgL'articolo che ha introdotto l'apprendimento di una ricompensa dai confronti umani, inizialmente per i giochi e la robotica.
  4. 04Bradley–Terry modelWikipedia · en.wikipedia.orgIl modello statistico dei confronti a coppie alla base sia dei modelli di ricompensa sia della DPO.
  5. 05DPO TrainerHugging Face TRL docs · huggingface.coUn'implementazione open-source ampiamente utilizzata: formato dei dati, varianti della loss e metriche registrate.

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite