De onde vem o GRPO
O GRPO foi introduzido em 2024 no artigo do DeepSeekMath como uma versão mais enxuta do PPO (Proximal Policy Optimization, 2017), o algoritmo por trás da maioria dos ajustes finos de RL anteriores de modelos de linguagem, incluindo o RLHF usado no InstructGPT. Tornou-se amplamente conhecido quando o DeepSeek-R1 o utilizou em escala, e agora é o método de RL padrão em treinadores de código aberto, como o Hugging Face TRL, e na maioria dos serviços de RFT.
O modelo de valor geralmente tem o mesmo tamanho do modelo em treinamento e é treinado junto com ele.
Nenhum modelo de valor para treinar ou manter na memória. O preço é gerar N respostas por prompt em vez de uma.
O PPO precisa de uma linha de base para transformar pontuações brutas em vantagens, e ele aprende uma: um modelo de valor (o “crítico”) que prevê, token por token, a pontuação para a qual a resposta se encaminha. Os autores do DeepSeekMath apontam que esse modelo de valor é tipicamente quase tão grande quanto o modelo sendo treinado, um fardo pesado de memória e computação, e que prever um valor a cada token é difícil quando a recompensa só chega no final. O GRPO o remove. Ele amostra um grupo de respostas para cada prompt e usa a própria pontuação média do grupo como a linha de base.
O algoritmo
- Amostre prompts. Extraia um lote de prompts dos seus dados.
- Gere um grupo. Para cada prompt, o modelo atual escreve N respostas, amostrando com aleatoriedade para que elas difiram. Grupos de 4 a 16 são comuns; o DeepSeekMath usou 64.
- Pontue. O avaliador dá a cada resposta uma recompensa, aqui de 0 a 1.
- Normalize dentro do grupo. A vantagem de cada resposta é a sua pontuação menos a média do grupo, dividida pelo desvio padrão do grupo. Cada token da resposta recebe essa mesma vantagem.
- Atualize com um objetivo com recorte. Torne as respostas com vantagem positiva mais prováveis e as negativas menos prováveis, mas nunca por mais do que uma proporção definida em uma única etapa (veja abaixo).
- Opcionalmente, penalize o desvio. Subtraia β × a divergência KL de uma cópia congelada do modelo inicial.
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- O avaliador pontua quatro respostas para um prompt: 0,8, 0,3, 0,6 e 0,3.
- Média do grupo = (0,8 + 0,3 + 0,6 + 0,3) ÷ 4 = 0,5. Diferenças em relação à média: +0,3, −0,2, +0,1, −0,2.
- Dispersão (desvio padrão dos quatro) = √((0,09 + 0,04 + 0,01 + 0,04) ÷ 4) = √0,045 ≈ 0,21.
- Vantagens = diferenças ÷ 0,21 ≈ +1,41, −0,94, +0,47, −0,94. A resposta 1 é a mais impulsionada para cima, a resposta 3 um pouco; as respostas 2 e 4 são empurradas para baixo igualmente.
- Algumas bibliotecas dividem por n − 1 ao calcular a dispersão (≈ 0,24 aqui, resultando em +1,22, −0,82, +0,41, −0,82). Os sinais e a classificação, que são o que direcionam o modelo, são os mesmos.
- O Grupo A pontua 0, 0, 0, 0: todas as respostas falharam. Média 0, dispersão 0, portanto cada vantagem é 0 e este prompt não contribui com nada. (As implementações adicionam uma constante minúscula à dispersão para que nada seja dividido por zero.)
- O Grupo B pontua 0,61, 0,60, 0,60, 0,59: praticamente idênticas. Mas a dispersão é minúscula (≈ 0,007), então as vantagens resultam em +1,41, 0, 0, −1,41, tão grandes quanto em um grupo com diferenças reais.
- Dividir pela dispersão dá aos prompts de baixa dispersão um peso desproporcional e permite que o ruído do avaliador se torne um sinal de força total. É uma das razões pelas quais a variante Dr. GRPO abandona a divisão, e por que um avaliador com pontuações brutas e consistentes supera um com ruído de aparência precisa.
O objetivo clipado, em palavras simples
Uma vez que as vantagens são conhecidas, o modelo é atualizado, frequentemente por alguns minilotes nas mesmas respostas. A cada vez, o treinador compara a probabilidade que o modelo atual atribui a uma resposta com a probabilidade atribuída pelo modelo que a escreveu. Essa proporção é de 1,0 quando a etapa começa. A ideia do PPO, que o GRPO mantém, é parar de dar crédito assim que a proporção tiver se movido o suficiente: com o habitual ε = 0,2, uma resposta acima da média não ganha mais nada por se tornar mais de 1,2× provável, e uma abaixo da média não ganha mais nada por cair abaixo de 0,8×.
O resultado é uma região de confiança: cada etapa só pode mover o modelo a uma distância limitada do modelo que gerou os dados, o que impede que um lote com sorte ou sem sorte cause um desvio brusco. O TRL registra a frequência com que o limite atua em clip_ratio; valores que permanecem altos significam que as atualizações continuam atingindo o limite, frequentemente um sinal de que a taxa de aprendizado é grande demais.
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)A penalidade KL
O GRPO original adiciona mais um termo: β vezes a divergência KL entre o modelo sendo treinado e uma cópia congelada de onde ele começou, a referência. A divergência KL mede o quão diferentes são duas distribuições de probabilidade; aqui, ela cresce à medida que as escolhas de palavras do modelo se desviam das da referência. Com β acima de 0, o desvio custa recompensa, de modo que o modelo melhora na tarefa enquanto permanece próximo à sua linguagem e estilo originais. O DeepSeekMath usou β = 0,04 e adicionou a penalidade diretamente à perda, em vez de subtraí-la da recompensa.
Trabalhos posteriores descobriram que a penalidade frequentemente é desnecessária em tarefas com respostas verificáveis, e o TRL agora tem como padrão β = 0, o que também economiza memória porque nenhuma cópia de referência precisa ser carregada. Ainda vale a pena ter uma penalidade quando um modelo juiz é o avaliador e as respostas começam a se degradar (fraseado estranho, formatação quebrada, uma mudança de idioma): um desvio que um juiz pode não punir. As configurações de RFT explicam como defini-la.
Peculiaridades conhecidas
- Viés de comprimento. Na fórmula original, a perda de cada resposta é calculada em média sobre o seu próprio comprimento, de modo que uma resposta longa e errada é menos penalizada por token do que uma resposta curta e errada. O artigo do Dr. GRPO mostrou que isso infla o comprimento da resposta, especialmente para respostas incorretas. O tipo de perda padrão do TRL,
dapo, calcula a média sobre todos os tokens no lote em vez disso. - Grupos de sinal zero. Prompts fáceis (todas as respostas certas) e os sem esperança (todas erradas) não produzem nenhuma atualização. O TRL registra a sua proporção como
frac_reward_zero_std; a receita DAPO filtra esses grupos e amostra mais. - A geração domina o custo. Escrever N respostas token por token consome a maior parte do tempo de cada etapa, o que faz do tamanho do grupo e do comprimento da resposta as principais alavancas de velocidade e preço.
Erros comuns
- Ler uma única pontuação isoladamente. No GRPO, a pontuação de uma resposta só importa em relação às outras respostas para o mesmo prompt.
- Usar grupos de dois para economizar tempo. Com duas respostas, qualquer diferença, mesmo o ruído do avaliador, torna-se um sinal completo de +1 / −1.
- Fornecer prompts fáceis demais ou difíceis demais. Ambos geram pontuações idênticas dentro de um grupo e nenhum sinal.
- Presumir que a penalidade KL está ativada. Em muitas bibliotecas atuais, o padrão é β = 0.
- Confiar em um avaliador de aparência precisa. Pequenas diferenças ruidosas de pontuação são ampliadas para vantagens em escala total.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsShao et al., 2024 · arXiv · arxiv.orgIntroduz o GRPO; sua etapa de RL elevou o GSM8K de 82,9% para 88,2% e o MATH de 46,8% para 51,7%.
- 02Proximal Policy Optimization AlgorithmsSchulman et al., 2017 · arXiv · arxiv.orgO objetivo com recorte e a ideia de região de confiança que o GRPO herda.
- 03Understanding R1-Zero-Like Training: A Critical PerspectiveLiu et al., 2025 · arXiv · arxiv.orgDescobre o viés de comprimento do GRPO e propõe o Dr. GRPO, uma variante sem viés.
- 04DAPO: An Open-Source LLM Reinforcement Learning System at ScaleYu et al., 2025 · arXiv · arxiv.orgCorreções práticas para o GRPO: perda no nível do token, recorte assimétrico, filtragem de grupos de sinal zero.
- 05GRPO TrainerHugging Face TRL docs · huggingface.coVariantes de perda, padrões e as métricas que uma execução de GRPO registra.