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.