antonio leandro

ia generativa

DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

paper · núcleo · DeepSeek-AI ·

a tese

raciocínio não precisa ser ensinado com exemplos: pagando só pelo acerto verificável por regra, o modelo aprende sozinho a pensar mais tempo e a voltar atrás — e isso cabe num 7B via destilação.

o que fica

  1. RL com recompensa verificável por regra basta para fazer emergir cadeia de raciocínio longa: o pass@1 do R1-Zero no AIME 2024 saiu de 15,6% para 71,0% sem nenhum exemplo supervisionado.
  2. A DeepSeek recusou reward model neural no laço grande de RL porque ele é hackeado pela política e obriga a retreinar o próprio avaliador; recompensa calculada por regra não tem esse problema.
  3. O modelo aprendeu sozinho a gastar mais tokens nos problemas difíceis — ninguém pediu reflexão no prompt, o template só exigia as tags think e answer.
  4. Destilar do modelo grande ganha de rodar RL no modelo pequeno: o Qwen-32B destilado fez 72,6% no AIME contra 47,0% do mesmo 32B treinado com mais de 10 mil passos de RL.
  5. Few-shot piora o R1 de forma consistente; os autores recomendam zero-shot, descrevendo o problema e o formato de saída direto.
  6. A recompensa de consistência de idioma degrada o desempenho segundo a própria ablação dos autores, e foi mantida assim mesmo — legibilidade escolhida acima de pontuação.

o problema

O o1 da OpenAI mostrou que dava para melhorar muito matemática, código e ciência deixando o modelo escrever uma cadeia de raciocínio mais longa antes de responder. Mostrou o resultado, não a receita. O que a comunidade tinha eram tentativas que não chegavam lá: process reward models, que pontuam cada passo intermediário; busca em árvore no estilo MCTS ou beam search; RL para auto-correção. Nenhuma dessas linhas produziu raciocínio geral comparável ao o1.

Embaixo de todas elas havia o mesmo gargalo: dado supervisionado. Alguém precisava escrever, ou pelo menos anotar, as trajetórias de raciocínio que o modelo iria imitar. Isso é caro, é lento, e amarra o teto do modelo à qualidade da demonstração humana. A pergunta que o paper faz é se dá para tirar o humano do meio: dar ao modelo base só o incentivo certo e deixar que ele descubra o método por conta própria.

a ideia

Pare de ensinar o caminho e pague apenas pelo destino. O R1-Zero parte do DeepSeek-V3-Base — MoE de 671B de parâmetros totais, 37B ativados — sem nenhum fine-tuning supervisionado antes. O template é deliberadamente pobre: pense entre <think> e </think>, responda entre <answer> e </answer>. Nada sobre refletir, verificar ou tentar de novo, para que qualquer comportamento desse tipo que aparecesse fosse claramente do modelo, não do prompt.

A recompensa é um programa, não uma rede neural. Problema de matemática: a resposta final vem em caixa e um verificador confere. Problema de programação estilo LeetCode: o compilador roda os casos de teste. É a diferença entre um code reviewer e uma suíte de testes no CI — o reviewer tem opinião e pode ser convencido, a suíte não.

como funciona

O algoritmo é GRPO. Para cada questão, amostra-se um grupo de G saídas da política antiga; o baseline sai da média e do desvio padrão das recompensas dentro do próprio grupo, e a vantagem de cada saída é esse z-score. Com isso o critic model — que num PPO clássico tem o tamanho da política — some do treino, e o custo cai.

A recompensa soma dois termos: acurácia (verificada por regra) e formato (as tags estão lá?). Nenhum reward model neural entra no laço grande. O motivo declarado é direto: reward model neural sofre reward hacking sob RL em escala, e consertá-lo exige retreinar o avaliador, o que complica o pipeline inteiro.

Rodando isso, duas coisas emergem sem serem pedidas. O comprimento médio das respostas cresce ao longo do treino, de centenas para milhares de tokens. E aparecem reflexão e exploração de alternativas — o paper registra o momento em que uma versão intermediária escreve “Wait, wait. Wait.” e refaz a conta do zero. AIME 2024 sobe de 15,6% para 71,0% de pass@1; com voto majoritário em 64 amostras, 86,7%.

O R1-Zero, porém, é ilegível e mistura idiomas. O R1 conserta isso com quatro estágios: fine-tuning em alguns milhares de exemplos de cold start com CoT longo e formatado; o mesmo RL de raciocínio, agora com uma recompensa extra de consistência de idioma; rejection sampling do checkpoint convergido para gerar cerca de 600 mil amostras de raciocínio, somadas a 200 mil de escrita, QA factual e tradução, e duas épocas de SFT sobre o V3-Base de novo; e um RL final cobrindo todos os cenários, com regra para raciocínio e reward model para preferência humana — helpfulness julgado só no resumo final, harmlessness na resposta inteira.

O resultado empata com o o1-1217: 79,8% contra 79,2% no AIME, 97,3% contra 96,4% no MATH-500, 2.029 de Elo no Codeforces (percentil 96,3).

o que isso custou

Muito, e o paper lista. O R1 é pior que o próprio V3 em function calling, multi-turn, role-playing complexo e saída JSON. É sensível a prompt: few-shot piora de forma consistente. Mistura idioma em consultas que não sejam chinês ou inglês, porque foi otimizado para esses dois. Em SWE-bench Verified quase não melhora sobre o V3, e a razão é banal — a avaliação demora, o que trava o laço de RL. No C-SimpleQA regride em relação ao V3 por passar a recusar consultas depois do RL de segurança; sem ele, os autores dizem que passaria de 70%.

Há também o capítulo das tentativas que falharam, mais útil que metade dos resultados. PRM esbarra em três coisas: definir o que é um passo em raciocínio geral, julgar se o passo intermediário está certo, e o reward hacking inevitável. MCTS esbarra no espaço de busca de geração de token, exponencialmente maior que o do xadrez, e na dificuldade de treinar um value model fino o bastante para guiar cada passo.

E o limite estrutural: a receita depende de existir um verificador barato. Onde não há compilador nem gabarito, o sinal volta a ser um modelo — com todos os problemas que o paper acabou de evitar.

onde isso aparece hoje

Os pesos saíram abertos: R1-Zero, R1 e seis modelos densos destilados sobre Qwen2.5 e Llama3, de 1,5B a 70B, todos treinados apenas por SFT nas 800 mil amostras geradas pelo R1. O Distill-Qwen-1,5B faz 28,9% no AIME, acima do GPT-4o e do Claude-3.5-Sonnet; o de 7B supera o QwQ-32B-Preview.

A comparação mais dura do paper é interna. Rodar RL em escala direto no Qwen-32B-Base, por mais de 10 mil passos, dá 47,0% no AIME. Destilar o R1 no mesmo 32B dá 72,6%. O padrão de raciocínio precisa ser descoberto por um modelo grande; depois disso, copiá-lo é barato. Os autores deixaram RL sobre os destilados explicitamente em aberto para a comunidade, dizendo já ter visto ganhos significativos.

Para quem escreve código, a leitura prática é o formato da recompensa. Compilador, suíte de testes e type checker são verificadores baratos e determinísticos — exatamente o sinal que este treino consome. O buraco do próprio R1 em engenharia de software não é conceitual, é de tempo de avaliação.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·