Risorse/Addestramento del modello/Metodi di addestramento

Metodo

GRPO, passo dopo passo

La Group Relative Policy Optimization valuta diverse risposte allo stesso prompt e rafforza quelle al di sopra della media del gruppo. Sostituisce il modello di valore separato della PPO con questo semplice confronto.

Capitolo 7Lettura di 6 min5 riferimenti

Da dove deriva la GRPO

La GRPO è stata introdotta nel 2024 nel paper DeepSeekMath come una versione più snella della PPO (Proximal Policy Optimization, 2017), l'algoritmo alla base della maggior parte dei precedenti fine-tuning RL dei modelli linguistici, incluso l'RLHF utilizzato per InstructGPT. È diventata ampiamente nota quando DeepSeek-R1 l'ha utilizzata su larga scala, ed è ora il metodo RL predefinito nei trainer open source come Hugging Face TRL e nella maggior parte dei servizi RFT.

PPO · baseline appresa
prompt→il modello scrive 1 risposta→il modello di ricompensa lo valuta→modello di valoreprevede il punteggio atteso, token per token→vantaggio = punteggio − previsione

Il modello di valore è solitamente grande quanto il modello in fase di addestramento e viene addestrato insieme ad esso.

GRPO · baseline di gruppo
prompt→il modello scrive N risposte→il valutatore assegna un punteggio a ciascuna→media e scarto del gruppocalcolati, non appresi→vantaggio = (punteggio − media) ÷ scarto

Nessun modello di valore da addestrare o mantenere in memoria. Il prezzo da pagare è la generazione di N risposte per prompt invece di una.

La PPO richiede una seconda rete, il modello di valore, per stimare quanto avrebbe dovuto essere valida una risposta. La GRPO la elimina: campiona diverse risposte allo stesso prompt e utilizza il loro punteggio medio come parametro di riferimento.

La PPO necessita di una baseline per trasformare i punteggi grezzi in vantaggi, e ne apprende una: un modello di valore (il “critico”) che prevede, token per token, il punteggio a cui punta la risposta. Gli autori di DeepSeekMath sottolineano che questo modello di valore è in genere grande quanto il modello in fase di addestramento, un pesante onere in termini di memoria e calcolo, e che prevedere un valore per ogni token è difficile quando la ricompensa arriva solo alla fine. La GRPO lo elimina. Campiona un gruppo di risposte per ogni prompt e utilizza il punteggio medio del gruppo stesso come baseline.

L'algoritmo

  1. Campionare i prompt. Prelevare un batch di prompt dai propri dati.
  2. Generare un gruppo. Per ogni prompt, il modello attuale scrive N risposte, campionando con casualità in modo che differiscano. Gruppi di 4–16 sono comuni; DeepSeekMath ne ha utilizzati 64.
  3. Assegnare un punteggio. Il valutatore attribuisce a ogni risposta una ricompensa, in questo caso 0–1.
  4. Normalizzare all'interno del gruppo. Il vantaggio di ogni risposta è il suo punteggio meno la media del gruppo, diviso per la deviazione standard del gruppo. Ogni token della risposta ottiene quello stesso vantaggio.
  5. Aggiornare con un obiettivo limitato. Rendere più probabili le risposte con vantaggio positivo e meno probabili quelle con vantaggio negativo, ma mai oltre un rapporto stabilito in un singolo passaggio (vedere di seguito).
  6. Opzionalmente, penalizzare la deviazione. Sottrarre β × la divergenza KL da una copia congelata del modello di partenza.
promptMEDIA DEL GRUPPO 0.50.8risposta 1+0.30.3risposta 2−0.20.6risposta 3+0.10.3risposta 4−0.2vantaggio = (punteggio − media del gruppo) ÷ dispersione del gruppo
La GRPO in un unico passaggio. Il modello risponde allo stesso prompt quattro volte; il valutatore assegna un punteggio a ciascuna; ogni risposta viene confrontata con la media del proprio gruppo. I risultati sopra la media vengono rafforzati, quelli sotto la media vengono scoraggiati.
Vantaggio relativo al gruppo, per il gruppo nella figura
advantage_i = (score_i − mean(group)) / std(group)

answer      1      2      3      4
score      0.8    0.3    0.6    0.3
− mean     +0.3   −0.2   +0.1   −0.2      mean = 0.5
÷ std      +1.41  −0.94  +0.47  −0.94     std ≈ 0.21
Calcolo dei vantaggi per un gruppo di quattro
  1. Il valutatore assegna un punteggio a quattro risposte per un singolo prompt: 0.8, 0.3, 0.6 e 0.3.
  2. Media del gruppo = (0.8 + 0.3 + 0.6 + 0.3) ÷ 4 = 0.5. Differenze dalla media: +0.3, −0.2, +0.1, −0.2.
  3. Dispersione (deviazione standard dei quattro) = √((0.09 + 0.04 + 0.01 + 0.04) ÷ 4) = √0.045 ≈ 0.21.
  4. Vantaggi = differenze ÷ 0.21 ≈ +1.41, −0.94, +0.47, −0.94. La risposta 1 viene spinta verso l'alto maggiormente, la risposta 3 leggermente; le risposte 2 e 4 vengono spinte verso il basso in egual misura.
  5. Alcune librerie dividono per n − 1 nel calcolo della dispersione (≈ 0.24 in questo caso, ottenendo +1.22, −0.82, +0.41, −0.82). I segni e la classificazione, che sono ciò che guida il modello, rimangono invariati.
Due gruppi che insegnano quantità molto diverse
  1. Il gruppo A ottiene 0, 0, 0, 0: tutte le risposte sono fallite. Media 0, dispersione 0, quindi ogni vantaggio è 0 e questo prompt non contribuisce in alcun modo. (Le implementazioni aggiungono una minuscola costante alla dispersione per evitare divisioni per zero).
  2. Il gruppo B ottiene 0.61, 0.60, 0.60, 0.59: praticamente identici. Tuttavia, la dispersione è minima (≈ 0.007), quindi i vantaggi risultano essere +1.41, 0, 0, −1.41, ampi quanto in un gruppo con differenze reali.
  3. Dividere per la dispersione conferisce un peso sproporzionato ai prompt con bassa dispersione e permette al rumore del valutatore di diventare un segnale a piena potenza. È uno dei motivi per cui la variante Dr. GRPO elimina la divisione, e per cui un valutatore con punteggi grezzi ma coerenti supera uno con un rumore apparentemente preciso.

L'obiettivo con clipping, in parole semplici

Una volta noti i vantaggi, il modello viene aggiornato, spesso per alcuni mini-batch sulle stesse risposte. Ogni volta, il trainer confronta la probabilità che il modello attuale trovi una risposta con la probabilità che l'abbia trovata il modello che l'ha scritta. Tale rapporto è 1,0 all'inizio del passaggio. L'idea della PPO, mantenuta dalla GRPO, è di smettere di attribuire credito una volta che il rapporto si è spostato a sufficienza: con il consueto ε = 0,2, una risposta sopra la media non guadagna più nulla se diventa oltre 1,2 volte più probabile, e una sotto la media non guadagna più nulla se scende sotto lo 0,8×.

REGIONE DI FIDUCIA 0.8–1.20.51.0 · invariato1.5sopra la media: limitatosotto la media: limitato inferiormenteprobabilità nuova ÷ vecchia della risposta
L'obiettivo troncato, per una risposta. Le risposte sopra la media (verdi) ottengono credito per essere diventate più probabili solo fino a 1.2× la loro vecchia probabilità; quelle sotto la media (rosa) ottengono credito per essere diventate meno probabili solo fino a 0.8×. Oltre questi limiti il gradiente è zero, in modo che un batch fortunato non possa trascinare il modello troppo lontano.

Il risultato è una trust region: ogni passaggio può spostare il modello solo a una distanza limitata dal modello che ha generato i dati, il che impedisce a un batch fortunato o sfortunato di causare uno sbalzo. TRL registra la frequenza con cui il limite interviene in clip_ratio; valori che rimangono elevati indicano che gli aggiornamenti continuano a toccare il margine, spesso segno che il tasso di apprendimento è troppo alto.

L'obiettivo GRPO, semplificato
ratio      r = P_new(answer) / P_old(answer)        # 1.0 when the step starts

objective  min( r × A ,  clip(r, 1 − ε, 1 + ε) × A )  −  β × KL(new ‖ reference)

           A = the answer's advantage
           ε = 0.2   (how far one step may move an answer's probability)
           β = 0 … 0.04   (pull back toward the starting model; 0 = none)

La penalità KL

La GRPO originale aggiunge un ulteriore termine: β volte la divergenza KL tra il modello in fase di addestramento e una copia congelata del suo punto di partenza, il riferimento. La divergenza KL misura quanto siano diverse due distribuzioni di probabilità; in questo caso cresce man mano che le scelte lessicali del modello si discostano da quelle del riferimento. Con β superiore a 0, la deviazione costa in termini di ricompensa, per cui il modello migliora nell'attività pur rimanendo fedele al linguaggio e allo stile originali. DeepSeekMath ha utilizzato β = 0,04 e ha aggiunto la penalità direttamente alla loss anziché sottrarla dalla ricompensa.

Lavori successivi hanno riscontrato che la penalità è spesso superflua in attività con risposte verificabili, e TRL ora imposta come impostazione predefinita β = 0, il che consente anche di risparmiare memoria poiché non deve essere caricata alcuna copia di riferimento. Vale comunque la pena avere una penalità quando il valutatore è un modello giudice e le risposte iniziano a degradarsi (fraseggio strano, formattazione interrotta, un cambio di lingua): una deviazione che un giudice potrebbe non punire. Le impostazioni RFT spiegano come configurarla.

Particolarità note

  • Bias di lunghezza. Nella formula originale la loss di ogni risposta è calcolata in media sulla sua stessa lunghezza, per cui una risposta lunga ed errata viene penalizzata meno per token rispetto a una breve ed errata. Il paper Dr. GRPO ha dimostrato che questo gonfia la lunghezza della risposta, specialmente per le risposte errate. Il tipo di loss predefinito di TRL, dapo, calcola invece la media su tutti i token nel batch.
  • Gruppi a segnale zero. I prompt facili (tutte le risposte corrette) e quelli senza speranza (tutte errate) non producono alcun aggiornamento. TRL registra la loro quota come frac_reward_zero_std; la ricetta DAPO filtra tali gruppi e ne campiona altri.
  • La generazione domina i costi. Scrivere N risposte token per token richiede la maggior parte del tempo di ogni passaggio, il che rende la dimensione del gruppo e la lunghezza della risposta le leve principali su velocità e prezzo.

Errori comuni

  • Leggere un singolo punteggio in isolamento. Nella GRPO, il punteggio di una risposta conta solo in relazione alle altre risposte allo stesso prompt.
  • Utilizzare gruppi di due per risparmiare tempo. Con due risposte, qualsiasi differenza, persino il rumore del valutatore, diventa un segnale pieno di +1 / −1.
  • Fornire prompt decisamente troppo facili o troppo difficili. Entrambi producono punteggi identici all'interno di un gruppo e nessun segnale.
  • Dare per scontato che la penalità KL sia attiva. In molte librerie attuali il valore predefinito è β = 0.
  • Fidarsi di un valutatore all'apparenza preciso. Piccole e rumorose differenze di punteggio vengono amplificate in vantaggi su scala reale.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsShao et al., 2024 · arXiv · arxiv.orgIntroduce la GRPO; il suo passaggio RL ha innalzato GSM8K dall'82,9% all'88,2% e MATH dal 46,8% al 51,7%.
  2. 02Proximal Policy Optimization AlgorithmsSchulman et al., 2017 · arXiv · arxiv.orgL'obiettivo limitato e l'idea di trust region che la GRPO eredita.
  3. 03Understanding R1-Zero-Like Training: A Critical PerspectiveLiu et al., 2025 · arXiv · arxiv.orgIndividua il bias di lunghezza della GRPO e propone Dr. GRPO, una variante priva di bias.
  4. 04DAPO: An Open-Source LLM Reinforcement Learning System at ScaleYu et al., 2025 · arXiv · arxiv.orgCorrezioni pratiche alla GRPO: loss a livello di token, clipping asimmetrico, filtraggio dei gruppi a segnale zero.
  5. 05GRPO TrainerHugging Face TRL docs · huggingface.coVarianti di loss, impostazioni predefinite e metriche registrate da un'esecuzione GRPO.

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