Como as configurações se integram
Uma execução de reforço repete um ciclo: amostrar respostas, pontuá-las, comparar, atualizar. Cada configuração atua em um ponto desse ciclo, portanto, a maioria dos problemas em uma execução pode ser rastreada até uma delas.
- 01Amostragemo modelo escreve N respostas para cada prompt⚙ respostas por prompt · comprimento máximo da resposta
- 02Pontuaçãoo avaliador atribui a cada resposta um valor de 0 a 1⚙ avaliador · modelo juiz
- 03Comparaçãocada pontuação vs. a média do seu grupo⚙ nada a configurar: o grupo é a linha de base
- 04Atualizaçãoum pequeno passo em direção às respostas acima da média⚙ taxa de aprendizado · KL β
As configurações
O que transforma cada resposta em uma pontuação de 0 a 1: um modelo juiz, similaridade com a sua resposta, uma verificação de números, verificações de correspondência exata ou uma combinação. É a definição de “melhor” para toda a execução, portanto, escolha-a para o que você realmente deseja e verifique-a em algumas respostas manualmente. A seção Avaliadores explica cada opção.
Qual LLM faz a pontuação quando o avaliador inclui um juiz. Um juiz mais forte classifica as respostas com mais confiabilidade, o que é mais importante do que o normal aqui, pois o GRPO transforma até mesmo pequenas diferenças de pontuação em atualizações completas. Ele também custa mais por chamada. Dê preferência a um modelo de uma família diferente daquele que está sendo treinado e mantenha ainda outro juiz para a avaliação final.
O tamanho do grupo: quantas respostas o modelo escreve para cada prompt por etapa. Mais respostas fornecem uma visão mais clara de qual tipo de resposta tem melhor pontuação e aumentam a probabilidade de que pelo menos uma seja diferente das demais. Elas também multiplicam o tempo de geração e os tokens de entrada do juiz; o juiz ainda faz uma chamada por prompt. Com N = 2, qualquer diferença se torna um sinal completo de +1 / −1.
A resposta mais longa, em tokens, que o modelo pode escrever por tentativa. Uma resposta que atinge o limite é cortada no meio da frase e geralmente recebe uma pontuação ruim, o que desperdiça a etapa ou ensina o modelo a ser conciso pelo motivo errado. Defina-o um pouco acima do tamanho de uma boa resposta: um token equivale a cerca de ¾ de uma palavra, portanto, uma resposta de 150 palavras tem cerca de 200 tokens. Modelos de raciocínio escrevem longos pensamentos antes de responder; a Scalata desativa o raciocínio para eles durante o RL para que o orçamento vá para a resposta.
O tamanho de cada atualização. As etapas de RL são muito menores do que as supervisionadas: o sinal tem mais ruído (pontuações das próprias tentativas do modelo em vez de uma resposta correta) e os dados mudam conforme o modelo muda, de modo que uma etapa grande pode levá-lo a um ponto do qual suas próximas respostas não conseguirão se recuperar. Com o LoRA, uma taxa em torno de 1e-5 é um início comum; o RL de pesos totais normalmente usa cerca de 1e-6, como fez o DeepSeekMath.
Com que força o modelo é mantido próximo ao seu ponto de partida. A cada etapa, β × a divergência KL entre o modelo treinado e uma cópia congelada do início é subtraída do objetivo. 0 significa nenhuma penalidade; é o padrão atual no TRL e também evita o carregamento da cópia congelada. O DeepSeekMath usou 0,04. Aumente a partir de 0 se as respostas começarem a se desviar de maneiras que o avaliador não pune: frases estranhas, formatação quebrada, mudança de idioma ou perda de habilidades gerais.
Exemplos práticos
- Considere um avaliador de aprovação/reprovação e um modelo que acerta um prompt em 10% das vezes. Um grupo só ensina algo se suas respostas diferirem.
- N = 2: todos falham com probabilidade 0,9² = 0,81 e todos passam com 0,01, então apenas cerca de 18% dos prompts fornecem um sinal.
- N = 4: todos falham com probabilidade de 0,9⁴ ≈ 0,66, portanto, cerca de 34% emitem um sinal.
- N = 8: 0,9⁸ ≈ 0,43, portanto, cerca de 57% emitem um sinal, com o dobro do tempo de geração de N = 4.
- Se o modelo acerta metade das vezes, N = 4 já emite um sinal em cerca de 88% dos prompts (apenas 1 grupo em 8 é totalmente aprovado ou totalmente reprovado). Grupos maiores ajudam mais quando as boas respostas são raras.
- Considere uma decisão em que o modelo inicial diz “Sim” ou “Não” com 50% de probabilidade cada.
- Após o treinamento, ele diz “Sim” 80% das vezes. KL desde o início = 0,8 × ln(0,8 ÷ 0,5) + 0,2 × ln(0,2 ÷ 0,5) ≈ 0,19.
- Se ele se tornar 99% seguro: 0,99 × ln(0,99 ÷ 0,5) + 0,01 × ln(0,01 ÷ 0,5) ≈ 0,64. O custo sobe rapidamente à medida que o modelo adquire certeza onde o seu início era indeciso.
- Com β = 0,04, esses custos são de cerca de 0,008 e 0,025 por token, somados ao longo de cada token de uma resposta: pequeno para um token, mas perceptível quando o estilo de uma resposta inteira muda.
- Suas respostas de referência têm em média cerca de 120 palavras; as mais longas têm cerca de 250.
- 120 palavras ≈ 160 tokens; 250 palavras ≈ 330 tokens.
- Um limite de 384–512 tokens deixa espaço para uma resposta completa. Observe a proporção de cortes nas primeiras etapas: se mais do que alguns por cento das respostas atingirem o limite, aumente-o ou solicite respostas mais curtas no prompt do sistema.
Uma primeira execução sensata
- Comece a partir de uma execução supervisionada, não do modelo base simples, a menos que a base já responda às suas perguntas razoavelmente bem.
- Avaliador: um modelo juiz (ou juiz + números para cálculos), com um juiz forte e acessível.
- N = 4, comprimento máximo da resposta um pouco acima da sua resposta típica, taxa de aprendizado em torno de 1e-5 com LoRA, KL β = 0.
- Pequeno primeiro: algumas dezenas de prompts e uma época, depois leia os grupos e o gráfico de recompensa antes de escalar.
Erros comuns
- Aumentar N para corrigir uma recompensa estagnada. Se o modelo nunca produz uma boa resposta, mais tentativas da mesma qualidade não ajudam; comece a partir de um modelo melhor.
- Um comprimento máximo de resposta abaixo da sua resposta típica. Respostas completas são cortadas e o modelo aprende com texto truncado.
- Usar uma taxa de aprendizado de treinamento supervisionado. Passos grandes de RL podem arruinar a saída do modelo em poucos passos.
- Começar com um KL β grande. O modelo então mal se move; comece em 0 e aumente-o apenas se as respostas degradarem.
- Avaliar com o mesmo juiz que você usará na avaliação.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01GRPO TrainerHugging Face TRL docs · huggingface.coPadrões e significado do tamanho do grupo, comprimento da conclusão, β e as variantes de perda.
- 02DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsShao et al., 2024 · arXiv · arxiv.orgAs configurações originais do GRPO: taxa de aprendizado 1e-6, coeficiente KL 0,04, 64 respostas por pergunta.
- 03Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgComo uma penalidade KL mantém um modelo ajustado por RL próximo ao seu ponto de partida supervisionado.
- 04Kullback–Leibler divergenceWikipedia · en.wikipedia.orgA definição e por que a KL não é simétrica.