antonio leandro

ia generativa

DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

paper · Zhihong Shao, Peiyi Wang, Qihao Zhu, et al. ·

a tese

o critic do ppo é dispensável: a média das notas de um grupo de respostas à mesma pergunta já serve de baseline — e 120B tokens garimpados da common crawl bastam para um 7B encostar no gpt-4 em matemática

o que fica

  1. A média das recompensas de um grupo de respostas para a mesma pergunta substitui o value model do PPO: some da conta de memória um modelo do tamanho da política.
  2. Treinar em papers do arXiv não melhorou nenhum benchmark de matemática do estudo, e em vários casos piorou o resultado.
  3. Treinar em código antes de treinar em matemática melhora o raciocínio matemático tanto com uso de ferramenta quanto sem.
  4. O RL subiu Maj@K mas não Pass@K: ele reordena o que o modelo já sabia gerar em vez de ampliar a capacidade de base.
  5. Um modelo de 7B treinado em web filtrada superou o Minerva 540B no MATH, o que tira do número de parâmetros o papel de fator único.
  6. O corpus saiu de um classificador fastText realimentado por quatro iterações, com anotação humana de domínios, e não de uma coleção curada de textos matemáticos.

o problema

Em 2024, quem resolvia matemática de competição era fechado. GPT-4 e Gemini Ultra passavam de 50% no MATH; os modelos abertos ficavam bem atrás. A explicação corrente era escala: o ponto de referência entre os modelos treinados especificamente em matemática era o Minerva, de 540B. A segunda explicação era dado — a hipótese de que matemática boa mora no arXiv e em coleções curadas. Só que essas coleções são pequenas: MathPile tem 8,9B tokens, OpenWebMath tem 13,6B, Proof-Pile-2 tem 51,9B. E quase todas são só em inglês, o que trava qualquer benchmark chinês.

Do outro lado do pipeline, o RL depois do SFT carregava um custo estrutural. PPO é actor-critic: junto da política você treina uma value function normalmente do mesmo tamanho do modelo, o que dobra memória e computação. E no contexto de LLM o reward model costuma pontuar só o último token da resposta, então esse critic precisa aprender a estimar valor token a token a partir de um sinal que só chega no fim.

a ideia

São dois movimentos independentes, e o paper é honesto ao separá-los.

O primeiro: a Common Crawl tem muito mais matemática do que se supunha, e dá para extrair isso com um classificador barato realimentado em ciclos. Você começa com um corpus semente pequeno, treina um classificador, garimpa a web, olha quais domínios inteiros ficaram densos de acerto, anota as URLs desses domínios à mão, joga de volta na semente e repete.

O segundo: se o reward model já é treinado comparando respostas para a mesma pergunta, use essa comparação direto como baseline. Amostre várias respostas para a mesma pergunta e normalize as notas dentro do grupo. Não precisa de critic — a variância que o critic reduziria some na normalização.

como funciona

O corpus parte do OpenWebMath como semente: 500.000 exemplos positivos contra 500.000 páginas quaisquer da Common Crawl, num fastText com dimensão 256, learning rate 0,1, n-gram até 3 e 3 épocas. Dedup por URL e near-dedup deixam 40B páginas HTML; o classificador ranqueia e só o topo fica. Depois a Common Crawl é fatiada por domínio (mesma base URL); domínio com mais de 10% das páginas já coletadas é marcado como matemático, e as URLs de conteúdo dentro dele (mathoverflow.net/questions, por exemplo) são anotadas manualmente e viram semente nova. Quatro iterações; na quarta, 98% do material já vinha da terceira, e a coleta parou: 35,5 milhões de páginas, 120B tokens. Descontaminação por 10-gram exato contra os benchmarks.

O modelo base sai do DeepSeek-Coder-Base-v1.5 7B, com 500B tokens de treino contínuo: 56% do corpus de matemática, 20% de GitHub, 10% de arXiv, 10% de texto natural, 4% de AlgebraicStack.

GRPO, na prática:

para cada pergunta q:
    o[1..G] = amostra G respostas da política antiga
    r[i]    = reward_model(q, o[i])
    A[i]    = (r[i] - média(r)) / desvio(r)   # mesma vantagem em todos os tokens de o[i]

Daí o objetivo é o mesmo do PPO — razão de probabilidades com clipping — mas a penalidade KL sai da recompensa e entra direto na loss, com um estimador não-enviesado que é garantidamente positivo. Na variante com process supervision, o reward vem por passo de raciocínio e a vantagem de um token é a soma das recompensas normalizadas dos passos que vêm dele em diante. A configuração usada: 64 amostras por pergunta, coeficiente KL 0,04, learning rate 1e-6, batch 1024, comprimento máximo 1024, sobre 144 mil perguntas de GSM8K e MATH em formato CoT.

o que isso custou

O ganho do RL é mais raso do que o número sugere. Os autores mediram Pass@K e Maj@K antes e depois: o RL sobe Maj@K e não sobe Pass@K. Ou seja, ele torna a distribuição de saída mais robusta, empurrando a resposta certa para o topo, sem ampliar o que o modelo consegue gerar. Eles próprios atribuem isso ao data source estreito — só perguntas do SFT e nucleus sampling comum.

A economia de memória também não é gratuita: o critic sai, mas entram 64 amostras por pergunta em cada passo de exploração. E todo o método confia integralmente no sinal do reward model; o paper lembra que até o PRM800K, anotado com cuidado, tem cerca de 20% de rótulos errados.

O modelo tem buracos declarados: geometria e prova de teorema ficam bem abaixo dos modelos fechados — num teste informal ele não resolveu problemas de triângulo e elipse, o que os autores leem como viés na seleção de dado. E, ao contrário do GPT-4, ele não ganha nada com few-shot: zero-shot e few-shot dão praticamente o mesmo resultado.

A conclusão sobre o arXiv também vem com ressalva explícita. Eles não testaram arXiv misturado a outros tipos de dado, nem em modelos maiores, nem em tarefas como informalização de teoremas.

onde isso aparece hoje

GRPO deixou de ser um detalhe de um paper de matemática: virou o algoritmo de RL do DeepSeek-R1 e ganhou implementação nas bibliotecas abertas de RLHF, incluindo o TRL. O paralelo com o pipeline de dado é menos citado e igualmente reaproveitável — os autores dizem que o mesmo garimpo iterativo serve para outros domínios, código entre eles.

Fica também o paradigma unificado da seção 5: escrever SFT, RFT, DPO, PPO e GRPO como o mesmo gradiente variando três coisas — fonte de dado, função de recompensa e coeficiente de gradiente. É a forma mais rápida de comparar dois métodos de pós-treino sem abrir as duas derivações.

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