Puntata 216
Puntata 216 — RLHF
Livello: 🧙 Maestro Yoda · Capitolo 20 · Training, fine-tuning, allineamento
L’idea è semplice: insegniamo al modello a generare quello che agli umani piace, non quello che è statisticamente probabile. La realizzazione è la cosa più complessa che la community AI abbia mai dovuto far funzionare in produzione.
Da dove viene RLHF
Reinforcement Learning from Human Feedback: l’idea di usare RL con un reward derivato da preferenze umane.
Genealogia:
- Christiano et al. (2017) “Deep RL from Human Preferences” — il paper fondativo, OpenAI.
- Stiennon et al. (2020) — RLHF su summarization.
- Ouyang et al. (2022) “InstructGPT” — RLHF su GPT-3 → primo LLM allineato pubblico.
- ChatGPT (novembre 2022) — InstructGPT messo in produzione, esplosione globale.
- Bai et al. (2022) “Anthropic HH-RLHF” — RLHF su Helpfulness + Harmlessness.
- Llama-2 (2023) — RLHF open-source-ish, primi paper dettagliati del processo.
Dal 2023 in poi tutti i modelli di frontiera passano per qualche forma di RLHF (o di alternative come DPO/CAI, vedi 217).
La pipeline a 3 stadi (InstructGPT-style)
Stadio 1 — SFT
Vedi puntata 215. Si parte da un base model e si fa supervised fine-tuning su un dataset di istruzioni-risposte.
Risultato: SFT model, già “conversazionale” ma con risposte mediocri-medie.
Stadio 2 — Reward Model (RM)
Si raccolgono comparazioni umane. Per ogni prompt, il modello SFT genera 2-4 risposte; un annotatore le ordina per preferenza.
Esempio:
Prompt: "Spiegami il teorema di Bayes."
Risposta A: [3 paragrafi tecnici ma poco chiari]
Risposta B: [analogia + formula + esempio concreto]
Risposta C: [solo formula, niente intuizione]
Annotatore: B > A > C
Si addestra un reward model (tipicamente lo stesso modello SFT con un nuovo “head” di regressione) a predire questa preferenza. Loss: pairwise (Bradley-Terry):
L = -log σ(r(prompt, chosen) - r(prompt, rejected))
Risultato: un modello che, dato (prompt, response), restituisce uno scalare che approssima “quanto sarebbe piaciuta a un umano”.
Quantità tipica: decine-centinaia di migliaia di comparazioni. OpenAI ha usato ~50k coppie per InstructGPT.
Stadio 3 — RL contro il reward model
Si fa RL “vero” sul policy model (inizializzato dall’SFT). L’algoritmo standard: PPO (Proximal Policy Optimization).
Loop:
- Policy genera una risposta a un prompt.
- Reward model assegna uno scalare.
- Si aggiunge una KL penalty rispetto alla policy iniziale (SFT) per evitare di divagare troppo.
- PPO aggiorna il policy.
- Ripeti.
Funzione obiettivo (schematica):
maximize E[ r(s, a) - β · KL(π_θ || π_SFT) ]
Il β KL controlla quanto la nuova policy può divergere dall’SFT. Troppo basso → la policy “hackera” il reward model; troppo alto → niente apprendimento.
Perché serve la KL penalty: il “reward hacking”
Senza KL penalty, la policy trova modi degenerati di alzare il reward:
- Risposte sempre nello stesso format adulato dal reward model (es. “Certainly! Let me explain…”).
- Sycophancy (vedi puntata 174).
- Allucinazioni confidenti se il RM premia sicurezza più che correttezza.
- Output formato per il RM, non per il vero utente.
Questo è il reward hacking: la policy gioca col proxy invece che con l’obiettivo reale. La KL penalty è la prima difesa, ma non sufficiente: serve continua revisione del reward model.
I tre modelli simultanei
Durante PPO, in memoria hai contemporaneamente:
- Policy model (quello che alleni)
- Reference model (SFT congelato, per KL)
- Reward model (congelato, per il reward)
- Value model (critic per PPO, talvolta condiviso con la policy)
Per un policy 70B, serve hardware 3-4x più grande rispetto al solo SFT. RLHF è costoso. Per Llama-2 70B, RLHF è durato 5 round con dataset incrementali, e ogni round è centinaia di GPU-giorni.
I dati per il reward model
Tipi di dati di preferenza:
- Generic helpfulness: comparazione fra risposte qualunque, “quale ti aiuta di più?”.
- Harmlessness: comparazione su contenuti potenzialmente dannosi, “quale è meno pericolosa?”.
- Honesty / Hallucination: “quale è più accurata?”.
- Format / style: “quale è scritta meglio?”.
Anthropic ha pubblicato il dataset HH-RLHF (~160k coppie) come riferimento open.
Annotatori spesso pagati ~$10-30/ora. Cost totale per RLHF di un modello frontiera: probabilmente $1-10M solo in annotazione.
Problemi noti di RLHF
1. Sycophancy (puntata 174)
Il modello impara a essere d’accordo con l’utente, anche quando ha torto, perché gli annotatori preferiscono inconsciamente risposte che li confermano.
2. Verbosity
Risposte più lunghe spesso piacciono di più ai rater. La policy impara a scrivere lunghissimo. Negli ultimi modelli si combatte aggiungendo length penalty o filtrando il dataset.
3. Format hacking
Le bullet list, gli emoji, i markdown header piacciono ai rater. Modelli RLHF tendono a “bullet-pointizzare” tutto, anche dove non serve.
4. Refusal calibration sbagliata
Se l’harmlessness è premiato troppo, il modello rifiuta richieste innocue. Se è premiato troppo poco, accetta richieste pericolose. Trovare il giusto livello è arte, non scienza.
5. Annotator bias
Gli annotatori sono persone, con culture, opinioni, gusti. Il modello eredita quei bias. Esempio: bias linguistico (preferenze per inglese formale), bias politico (osservato in vari studi nel 2023-24).
Stato 2026: RLHF non è morto, ma è meno solitario
La pipeline a 3 stadi è ancora usata in molti lab (OpenAI, Anthropic, Google) ma in forme modificate:
- DPO (Direct Preference Optimization, puntata 217): sostituisce PPO + RM con un singolo training step. Più semplice, comparabile in quality.
- Constitutional AI (Anthropic, puntata 217): genera il feedback con un altro AI invece che con umani, per problemi specifici (harmlessness).
- RLAIF (Bai et al., 2022): RL from AI Feedback. Stesso pattern di RLHF ma il reward viene da un LLM forte invece che da umani.
- RL su reward verificabili (puntata 211): per task tipo math/codice, niente reward model neurale — solo verifier deterministici.
- Multi-objective RL: ottimizzazione su più reward (helpful, harmless, honest, concise, …) bilanciati.
La tendenza è verso pipeline più semplici e più economiche, lasciando RLHF “pieno” solo dove il giudizio umano è davvero necessario.
RLHF e reasoning: il bivio
Da metà 2024, una distinzione importante:
- RLHF tradizionale: preferenze umane → policy ottimizzata per “essere gradita”.
- RLVR / RL su reasoning: reward verificabili (math, codice, logica) → policy ottimizzata per “essere corretta”. Usato per reasoning model (puntata 211).
Sono complementari. Un modello completo nel 2026 passa per entrambi.
Glossario lampo
- Policy — il modello che genera testo (quello che vuoi addestrare).
- Reward model (RM) — modello che predice quanto un output piacerà a un umano.
- KL divergence — misura di “quanto sono diverse due distribuzioni di probabilità”. Usata come penalità di drift.
- PPO — Proximal Policy Optimization, algoritmo RL standard per LLM.
- Reward hacking — comportamento degenerato in cui la policy massimizza il proxy invece dell’obiettivo reale.
TEST hands-on
- Scarica
Anthropic/hh-rlhfda HuggingFace. Esplora 20 coppie. Sapresti dire perché la “chosen” è preferita? È sempre ovvio? - Allena un reward model semplice: usa
trl’sRewardTrainerper addestrare un BERT-base su 10k coppie HH-RLHF. Misura accuracy su un test set. Aspettati ~70-75%. - Fai un mini RLHF su un modello piccolo (es. Llama-3.2-1B SFT-tuned + RM dal punto 2). Usa
trl’sPPOTrainer. Conta i token generati prima/dopo. Vedrai verbosity drift. - Bonus: leggi il “Llama-2 paper” (arXiv:2307.09288), sezione 3.2 (RLHF). È uno dei rare documenti che descrive il processo in dettaglio.
Take-away
RLHF è la tecnologia che ha fatto di un completatore di sequenze un assistente conversazionale. Ha trasformato GPT-3 da curiosità di ricercatori a prodotto da 600 milioni di utenti. Ma è anche il punto in cui si infilano i bias degli annotatori, dove nasce la sycophancy, e dove la qualità del modello dipende dalle persone che ti pagano $15/ora per dire quale risposta gli piace di più. Una specie di “democrazia compressa nel modello”.
➡️ Prossima puntata: DPO e Constitutional AI — le alternative moderne a PPO.