Come interagiscono le impostazioni
Un'esecuzione di rinforzo ripete un ciclo: campionare le risposte, valutarle, confrontarle, aggiornare. Ogni impostazione agisce in un punto di quel ciclo, quindi la maggior parte dei problemi in un'esecuzione può essere ricondotta a una di esse.
- 01Campionamentoil modello scrive N risposte per ogni prompt⚙ risposte per prompt · lunghezza massima della risposta
- 02Valutazioneil valutatore assegna a ogni risposta un valore da 0 a 1⚙ valutatore · modello giudice
- 03Confrontoogni punteggio rispetto alla media del suo gruppo⚙ nulla da impostare: il gruppo è la baseline
- 04Aggiornamentoun piccolo passo verso le risposte sopra la media⚙ learning rate · KL β
Le impostazioni
Ciò che trasforma ogni risposta in un punteggio da 0 a 1: un modello giudice, la somiglianza con la Sua risposta, un controllo numerico, controlli di corrispondenza esatta o una combinazione. È la definizione di "migliore" per l'intera esecuzione, quindi lo scelga in base a ciò che desidera realmente e lo verifichi manualmente su alcune risposte. La sezione Valutatori spiega ogni opzione.
Quale LLM effettua la valutazione quando il sistema di correzione include un giudice. Un giudice più potente classifica le risposte in modo più affidabile, un aspetto qui più importante del solito poiché la GRPO trasforma anche piccole differenze di punteggio in aggiornamenti completi. Ha anche un costo maggiore per chiamata. È preferibile un modello di una famiglia diversa rispetto a quello in fase di addestramento, mantenendo un ulteriore giudice per la valutazione finale.
La dimensione del gruppo: quante risposte il modello scrive per ogni prompt a ogni passaggio. Un numero maggiore di risposte fornisce un quadro più chiaro di quale tipo di risposta ottenga un punteggio migliore e aumenta la probabilità che almeno una differisca dalle altre. Tuttavia, moltiplicano anche il tempo di generazione e i token di input del giudice; il giudice effettua comunque una chiamata per prompt. Con N = 2, qualsiasi differenza diventa un segnale completo di +1 / −1.
La risposta più lunga, in token, che il modello può scrivere per ogni tentativo. Una risposta che raggiunge il limite viene interrotta a metà frase e di solito ottiene un punteggio basso, sprecando il passaggio o insegnando al modello a essere conciso per il motivo sbagliato. Impostare un valore leggermente superiore alla lunghezza di una buona risposta: un token corrisponde a circa ¾ di parola, quindi una risposta di 150 parole equivale a circa 200 token. I modelli di ragionamento scrivono lunghi processi logici prima di rispondere; Scalata disattiva questa funzione durante l'RL in modo che il budget sia destinato alla risposta.
La dimensione di ogni aggiornamento. I passaggi di RL sono molto più piccoli rispetto a quelli supervisionati: il segnale è più rumoroso (punteggi dei tentativi del modello stesso anziché una risposta corretta) e i dati cambiano insieme al modello, quindi un passaggio ampio può portarlo in una direzione da cui le risposte successive non possono recuperare. Con LoRA, un tasso di circa 1e-5 è un punto di partenza comune; l'RL a pesi completi utilizza in genere circa 1e-6, come ha fatto DeepSeekMath.
Quanto saldamente il modello viene mantenuto vicino al suo punto di partenza. A ogni passaggio, β × la divergenza KL tra il modello addestrato e una copia congelata di quello iniziale viene sottratto dall'obiettivo. 0 significa nessuna penalità; è l'impostazione predefinita attuale in TRL ed evita anche il caricamento della copia congelata. DeepSeekMath ha utilizzato 0,04. Aumentare il valore da 0 se le risposte iniziano a deviare in modi che il correttore non penalizza: frasi anomale, formattazione errata, cambio di lingua o perdita di competenze generali.
Esempi pratici
- Prenda un valutatore superato/fallito e un modello che risponde correttamente a un prompt il 10% delle volte. Un gruppo insegna qualcosa solo se le sue risposte differiscono.
- N = 2: tutte falliscono con probabilità 0,9² = 0,81 e tutte passano con 0,01, quindi solo circa il 18% dei prompt fornisce un segnale.
- N = 4: tutti falliscono con probabilità 0,9⁴ ≈ 0,66, quindi circa il 34% fornisce un segnale.
- N = 8: 0,9⁸ ≈ 0,43, quindi circa il 57% fornisce un segnale, con un tempo di generazione doppio rispetto a N = 4.
- Se il modello è corretto la metà delle volte, N = 4 fornisce già un segnale su circa l'88% dei prompt (solo 1 gruppo su 8 è composto da tutti successi o tutti fallimenti). I gruppi più ampi sono maggiormente utili quando le risposte valide sono rare.
- Prendiamo una decisione in cui il modello di partenza risponde "Sì" o "No" con il 50% di probabilità ciascuno.
- Dopo l'addestramento risponde "Sì" l'80% delle volte. KL dall'inizio = 0,8 × ln(0,8 ÷ 0,5) + 0,2 × ln(0,2 ÷ 0,5) ≈ 0,19.
- Se raggiunge una certezza del 99%: 0,99 × ln(0,99 ÷ 0,5) + 0,01 × ln(0,01 ÷ 0,5) ≈ 0,64. Il costo sale rapidamente man mano che il modello acquisisce certezza laddove in partenza era indeciso.
- Con β = 0,04 questi costano circa 0,008 e 0,025 per token, sommati su ogni token di una risposta: un valore ridotto per un singolo token, ma evidente quando cambia lo stile di un'intera risposta.
- Le risposte di riferimento hanno una media di circa 120 parole; le più lunghe circa 250.
- 120 parole ≈ 160 token; 250 parole ≈ 330 token.
- Un limite di 384–512 token lascia spazio per una risposta completa. Osservi il tasso di troncamento nelle prime fasi: se più di una piccola percentuale di risposte raggiunge il limite, lo alzi o richieda risposte più brevi nel prompt di sistema.
Una prima esecuzione sensata
- Inizi da un'esecuzione supervisionata, non dal modello di base semplice, a meno che quest'ultimo non risponda già in modo ragionevolmente corretto alle Sue domande.
- Valutatore: un modello giudice (o giudice + numeri per i calcoli), con un giudice solido e conveniente.
- N = 4, lunghezza massima della risposta leggermente superiore alla Sua risposta tipica, tasso di apprendimento intorno a 1e-5 con LoRA, KL β = 0.
- Inizi in piccolo: qualche decina di prompt e un'epoca, poi legga i gruppi e il grafico delle ricompense prima di aumentare la scala.
Errori comuni
- Aumentare N per correggere una ricompensa piatta. Se il modello non produce mai una buona risposta, ulteriori tentativi della stessa qualità non sono d'aiuto; inizi da un modello migliore.
- Una lunghezza massima della risposta inferiore alla Sua risposta tipica. Le risposte complete vengono troncate e il modello apprende da testo incompleto.
- Utilizzare un tasso di apprendimento da addestramento supervisionato. Passi di RL ampi possono rovinare l'output del modello in pochi passaggi.
- Iniziare con un KL β elevato. In questo modo il modello si sposta a malapena; inizi da 0 e lo alzi solo se le risposte peggiorano.
- Assegnare i punteggi con lo stesso giudice che utilizzerà per la valutazione.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01GRPO TrainerHugging Face TRL docs · huggingface.coValori predefiniti e significato della dimensione del gruppo, della lunghezza di completamento, di β e delle varianti di perdita.
- 02DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsShao et al., 2024 · arXiv · arxiv.orgLe impostazioni GRPO originali: tasso di apprendimento 1e-6, coefficiente KL 0,04, 64 risposte per domanda.
- 03Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgIn che modo una penalità KL mantiene un modello ottimizzato tramite RL vicino al suo punto di partenza supervisionato.
- 04Kullback–Leibler divergenceWikipedia · en.wikipedia.orgLa definizione e il motivo per cui la KL non è simmetrica.