转载本文请注明出处:https://yudonglee.me/deepseekmath-explained/ | 作者:yudonglee

本文是 DeepSeek 论文专题系列的第 4 篇,详解 DeepSeek 公司 2024 年 2 月发表的 DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models (arXiv:2402.03300)。这是一篇里程碑式的论文——它不仅把开源数学推理模型推到 GSM8K 88.2% / MATH 51.7%(接近 GPT-4 当时水位)的 7B 模型,更重要的是首次提出了 GRPO (Group Relative Policy Optimization) 算法:移除 PPO 中的 value model (critic)、改用组内归一化估计 advantage。GRPO 后来成为 DeepSeek-R1、Qwen-QwQ、Kimi-K0 等所有主流开源 reasoning 模型的标准训练算法,可以说定义了 2024-2026 年开源 reasoning model 的 RL 训练范式。除了 GRPO 之外,本文还会展开论文的另一项核心贡献——用 fastText 迭代分类器从 Common Crawl 挖出 120B tokens 高质量数学语料,这套数据 pipeline 后来也被多家公司复刻。

📚 DeepSeek 论文专题系列 · 全 18 篇
通用 LLM 主线LLM · V2 (MLA) · V3 · V3.2 (DSA) · V4 · 收官
Reasoning 主线Math (GRPO) ● · Prover · R1 · GRM · Math-V2
代码主线Coder
多模态主线VL · Janus
MoE 架构与工程MoE · ESFT · Aux-Loss-Free
Attention 演化NSA

一、为什么 Math 是 DeepSeek 系列的关键分支

W1 序言里我们把 DeepSeek 的论文分为四条主线,第二条是推理(Reasoning)主线

\text{DeepSeekMath (2024-02)} \to \text{R1-Zero (2025-01)} \to \text{R1 (2025-01)} \to \text{DeepSeekMath-V2 (2025-11)}

这条线在国际社区影响力最大——R1 直接定义了”开源 reasoning model”的工程范式,把 OpenAI o1 拉到平民价位。而 R1 的所有方法论根源都在 DeepSeekMath 这篇 paper 里。

为什么 DeepSeek 把数学单独立项?两个原因:

  1. 数学是 reasoning 的最佳代理任务:数学题有客观答案(可以用规则判断对错),不需要主观人类标注 reward;同时数学题有可验证的中间步骤,可以做 step-level analysis。这种”答案可自动验证”的特性让 RL training 不依赖昂贵的 reward model
  2. 数学能力的可迁移性强:早期 DeepSeek-LLM、DeepSeek-Coder 都发现,提高模型的数学推理能力会顺带提高它在代码、逻辑、长链推理等任务上的表现。把数学作为单点突破,回收的能力是全局性的

具体地看,相对同期 Llemma (Princeton)、InternLM-Math、WizardMath 三个数学专项模型,DeepSeekMath 真正贡献了什么?三点核心:

  1. 120B tokens 高质量数学语料:用 fastText 迭代分类器从 Common Crawl 挖出 35.5M 数学网页、120B tokens——这是当时最大规模的开源数学预训练语料
  2. GRPO 算法:去掉 PPO 的 critic 网络,改用组内 reward 归一化估计 advantage,节省 ~50% 训练显存
  3. 三阶段训练管线:math pretraining → math instruction tuning → math RL with GRPO——后来被 R1 直接沿用并放大

下面按论文顺序展开。


二、模型概览与初始化选择

DeepSeekMath 提供三个 7B 模型变体:

模型训练方式核心用途
DeepSeekMath-BaseDeepSeek-Coder-Base v1.5 7B + 500B tokens 继续预训练(其中 120B 为数学语料)数学 base model
DeepSeekMath-InstructBase + SFT(780K 指令样本,含 CoT 与 Tool-Integrated Reasoning)数学指令模型
DeepSeekMath-RLInstruct + GRPO RL(仅 144K 数学 prompt)数学 RL 模型

一个有意思的设计选择:DeepSeekMath-Base 不是从 DeepSeek-LLM 初始化,而是从 DeepSeek-Coder-Base v1.5 7B 初始化

这与”code pretraining 帮助 reasoning”的直觉相符——代码本身有强语法结构、强逻辑链、强符号操作,对数学推理是天然适配的预训练任务。论文的消融实验确认:从 Coder-Base 起点训练,比从 DeepSeek-LLM 7B Base 起点训练,最终 MATH benchmark 高 6-8 个百分点。

这个发现后来被 V2 / V3 反复利用——V3 在通用 LLM 训练里也专门安排了一定比例的 code data 来增强 reasoning。

架构上,DeepSeekMath-Base 完全沿用 DeepSeek-Coder-Base v1.5 的 7B 配置:32 层、4096 dim、32 head、SwiGLU、RoPE、4K context。论文没有引入任何新的架构组件——所有创新都集中在数据 pipeline 和 RL 算法上。


三、数据 pipeline:fastText 迭代分类器挖出 120B 数学语料

3.1 起点:OpenWebMath 与 Common Crawl 的取舍

数学预训练语料的核心矛盾是质量 vs 规模

  • 高质量数学语料(arXiv、教科书、MathOverflow)很干净,但总量小(10-30B tokens)
  • Common Crawl 总量大(10T+ tokens),但数学含量稀疏(<0.5%)

之前的开源数学模型(Llemma、InternLM-Math)主要走”高质量小规模”路线。DeepSeekMath 的选择是反向——从 Common Crawl 中精细挖掘,最终拿到 120B tokens,比 Llemma 的 55B 高一倍以上。

3.2 fastText 迭代分类器流程

整个 pipeline 是四轮迭代:

第一轮

  1. 正样本:OpenWebMath(13B tokens 高质量数学网页,由社区维护)
  2. 负样本:从 Common Crawl 随机采样的非数学网页
  3. 训练 fastText 二分类器(极轻量,单机分钟级训练完成)
  4. 用分类器在 Common Crawl 上打分,取 top-K 数学网页

第二轮起

  1. 对上一轮挖出的数学网页做人工标注,剔除假阳性
  2. 用增强后的正样本重新训练 fastText 分类器
  3. 再次扫描 Common Crawl,取更精准的 top-K
  4. 重复

每轮迭代都会:
– 扩大正样本规模(覆盖更广的数学领域)
– 减少假阳性(分类器变得更挑剔)
– 发现新的数学密集域名(论文里特别提到 mathoverflow.net、math.stackexchange.com 等)

四轮迭代后,最终从 40B 网页中选出 35.5M 数学网页,对应 120B tokens——这是 OpenWebMath 的 9 倍多。

DeepSeekMath 数据 pipeline:迭代 fastText 分类器从 Common Crawl 挖出 120B 数学语料

3.3 这套 pipeline 为什么重要

DeepSeekMath 的数据 pipeline 本身就是一个独立贡献。后续多家公司(包括 Microsoft 的 Phi 系列、Qwen-Math)都复刻了类似的思路:

核心方法论:用一个轻量分类器(fastText、small LM)从大规模文本中迭代挖掘高质量子集,每一轮迭代用上一轮产出 + 人工反馈训练更精准的分类器。这是一种用计算换数据质量的 bootstrap 范式,特别适合”领域稀疏但海量”的场景。

后来 R1 的训练数据扩展也用了类似的思路——只是把分类器目标换成了”reasoning 密集网页”而不是”数学网页”。可以说 DeepSeekMath 的数据 pipeline 是 DeepSeek 数据团队的第一次实战


四、Base 阶段:500B tokens 数学继续预训练

DeepSeekMath-Base 7B 在 DeepSeek-Coder-Base v1.5 7B 之上继续预训练 500B tokens,配比是:

  • 56% 数学网页(从上面的 120B 数学语料中采样)
  • 20% 代码(保留 Coder 的代码能力,避免遗忘)
  • 10% arXiv 论文
  • 10% 数学相关教科书与考试题
  • 4% 自然语言

注意几个细节:

  1. 数学网页虽然只占 56%,但因为采样比例较高、训练 epoch 较多,实际计算贡献接近 70%
  2. 保留 20% 代码是关键——消融实验显示,完全去掉代码会让 reasoning 能力显著下降
  3. 50K vocab 不变(不专门为数学符号扩展 tokenizer)——好处是不需要重新训练 embedding,坏处是数学符号 token 效率不高

Base 阶段训练完成后的 benchmark(5-shot 或 4-shot, no CoT prompting):

BenchmarkDeepSeekMath-Base 7BLlemma 7BLlemma 34B
GSM8K64.2%36.4%51.5%
MATH36.2%18.0%25.0%
MMLU-STEM56.5%49.0%53.9%

可以看到 DeepSeekMath-Base 7B 不仅大幅领先同等规模的 Llemma 7B,还超过了 Llemma 34B。这是 120B 高质量数学语料 + Coder 初始化双重红利的结果。


五、Instruct 阶段:CoT + Tool-Integrated Reasoning

Instruct 阶段用 780K 数学指令样本对 Base 做 SFT。这里指令数据有两种格式:

  1. Chain-of-Thought (CoT):自然语言一步步推理,最后给出答案
  2. Tool-Integrated Reasoning (TIR):在 CoT 中插入 Python 代码片段,模型可以”调用”代码计算器来辅助数值运算

CoT vs TIR 是数学推理的两种风格:

  • CoT 的好处是端到端可读,输出就是给人看的解题过程
  • TIR 的好处是精确计算,对涉及大数运算、矩阵操作的题目精度更高

DeepSeekMath-Instruct 同时支持两种模式(通过 prompt 切换)。SFT 后的成绩:

BenchmarkInstruct CoTInstruct TIR
GSM8K82.9%83.7%
MATH46.8%57.4%

TIR 在 MATH 上比 CoT 高 10.6 个百分点——这是因为 MATH 题目包含大量代数化简、积分、概率计算等需要符号运算的步骤,调用 Python 直接算比让模型”心算”靠谱得多。

CoT vs TIR 的本质差异:CoT 是把”工具”内化到模型权重里(模型必须自己学会算 23×47),TIR 是把”工具”外化到环境里(模型只需学会”什么时候该调用工具”)。前者考验模型对数值的内部表示,后者考验模型的工具使用决策。这个分野在后来的 agentic LLM、code interpreter 等方向得到了充分发展。


六、RL 阶段:GRPO 算法详解(核心创新)

DeepSeekMath 最有影响力的贡献是 GRPO (Group Relative Policy Optimization) 算法。下面我们系统对比 PPO 和 GRPO。

6.1 PPO 的标准做法

PPO 是 RLHF 的标准算法。对于一个 prompt q,PPO 流程:

  1. 用当前策略 \pi_\theta 采样一个输出 o
  2. reward model Ro 打分得到 reward r
  3. value model V_\phi 估计每个 token 的预期未来回报 V_\phi(s_t)
  4. 用 GAE 计算 advantage A_t = r + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)
  5. 用 clipped surrogate loss 更新 \pi_\theta

核心 PPO loss:

\mathcal{L}_{\text{PPO}} = -\mathbb{E}\left[\min\left(r_t(\theta) A_t,\; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t\right)\right] + \beta \cdot \text{KL}[\pi_\theta \| \pi_{\text{ref}}]

其中 r_t(\theta) = \pi_\theta(a_t|s_t) / \pi_{\theta_{\text{old}}}(a_t|s_t) 是重要性比率。

PPO 的关键问题:value model V_\phi 和 policy model 同等大小(通常都是 7B+),训练时显存占用至少翻倍。这对大模型 RL 训练是非常重的负担。

6.2 GRPO 的核心改动:去掉 critic

GRPO 观察到一个简单的事实:

如果对同一个 prompt 采样多个输出 \{o_1, o_2, \ldots, o_G\},那么这一组的 reward 平均值天然就是一个无偏 baseline,根本不需要 value model 来估计。

具体流程:

  1. 对 prompt q,用当前策略采样 G 个输出(典型 G=64)
  2. 对每个输出 o_i 计算 reward R_i(这里 reward 可以是基于规则的——比如数学题答案对不对)
  3. 组内归一化 advantage:

A_i = \frac{R_i - \text{mean}(R_1, \ldots, R_G)}{\text{std}(R_1, \ldots, R_G)}

  1. 用 clipped surrogate loss 更新策略

GRPO loss:

\mathcal{L}_{\text{GRPO}} = -\mathbb{E}\left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} \min\left(r_{i,t} A_i,\; \text{clip}(r_{i,t}, 1-\epsilon, 1+\epsilon) A_i\right)\right] + \beta \cdot \text{KL}[\pi_\theta \| \pi_{\text{ref}}]

注意几个细节:

  • 每个输出 o_i 内的所有 token 共享同一个 advantage A_i——这是 outcome-supervised 的简化(trajectory-level reward)
  • 没有 value model V_\phi——节省约 50% 训练显存
  • KL 项直接加到 loss 里(而非像 PPO 那样作为 reward 的 penalty)——这是 GRPO 与 PPO 的另一个微妙差异
PPO vs GRPO 架构对比:GRPO 去掉了 value model,用组内 reward 归一化代替 V_φ 估计 baseline,节省约 25-50% 训练显存

6.3 GRPO 相对 PPO 的优劣

GRPO 的优势:

  1. 显存节省 ~50%:去掉 value model 后,能在同等显存预算下训练更大的 policy model
  2. 实现更简单:没有 value model 需要单独训练、维护、对齐
  3. 天然适配 outcome reward:组内 reward 归一化对”答案对/错”这类稀疏 outcome reward 非常友好
  4. batch 效率高:因为对每个 prompt 采样 G 个输出,可以高效并行 rollout

GRPO 的代价:

  1. 不能利用 step-level reward:每个输出内的所有 token 共享一个 advantage,无法精细到 token-level reward
  2. G 越大越好但越贵:典型 G=64,rollout 成本是 PPO 的 64 倍(虽然不需要 value model 训练)
  3. 对稀疏 reward 敏感:如果整组 reward 都是 0(全错)或都是 1(全对),advantage 归一化失效

6.4 GRPO 在 DeepSeekMath 上的效果

仅用 144K 数学 prompt 做 GRPO(这是非常少的 RL 数据量),DeepSeekMath-RL 7B 相对 Instruct 的提升:

BenchmarkInstruct CoTRL (GRPO)提升
GSM8K82.9%88.2%+5.3
MATH46.8%51.7%+4.9
匈牙利国家奥数30.0%35.0%+5.0

注意”匈牙利国家奥数”是 out-of-domain 测试集——RL 训练数据里没有任何 Hungarian 题目,但 GRPO 训练让模型在 Hungarian 上也提升了 5 个百分点。这说明 GRPO 不是简单的”在训练集上过拟合”,而是真的提升了 reasoning 通用能力。

6.5 GRPO 对后续工作的影响

GRPO 提出后,几乎所有主流开源 reasoning 模型都采用了它

  • DeepSeek-R1-Zero (2025-01):纯 GRPO RL,跳过 SFT 直接训练 reasoning 能力
  • DeepSeek-R1 (2025-01):GRPO + Cold-Start + 多阶段 RL
  • Qwen-QwQ-32B (2025-02):基于 GRPO 的开源 reasoning
  • Kimi-K0 (2025-03):GRPO 变体
  • Yi-Reasoning (2025):GRPO

后来出现的 GRPO 变体(DAPO、GSPO 等)都是在 GRPO 框架内做局部改进,没有改变”去 critic + 组内归一化”这一核心范式。这就是为什么我们说 GRPO 定义了 2024-2026 年的开源 reasoning RL 范式


七、评测结果:7B 模型逼近 GPT-4 数学水位

DeepSeekMath-RL 7B 在 2024 年 2 月发布时的 benchmark 全景:

BenchmarkDeepSeekMath-RL 7BGPT-3.5GPT-4 (当时)Llemma 34B
GSM8K (CoT)88.2%80.8%92.0%51.5%
MATH (CoT)51.7%34.1%52.9%25.0%
MATH (TIR)58.8%
Hungarian National Math35.0%23.3%68.0%

关键观察:

  • DeepSeekMath-RL 7B 的 MATH 成绩(51.7%)几乎与 GPT-4 当时水平(52.9%)持平——这是 7B vs 万亿级闭源大模型的成绩
  • GSM8K 88.2% 已经接近 GPT-4 的 92.0%——同样是 7B vs 万亿级
  • 匈牙利国家奥数仍与 GPT-4 有差距——这反映了 7B 模型在真正困难、非套路化的奥数题上的天花板

这是 2024 年 2 月开源数学模型的 SOTA。对照同期 Llemma 34B(25%)就能看出代际差。


八、局限与对 R1 的奠基

DeepSeekMath 是一篇里程碑,但仍有几个明显局限:

  1. 只覆盖数学一个领域:reasoning 能力没有迁移到代码、长链推理、规划等其他任务
  2. RL 数据规模小(144K):GRPO 的 sample efficiency 还没有被充分压榨
  3. 没有 reasoning trace 的精细监督:每个输出只用 outcome reward(答案对错),中间步骤的质量没有被显式优化
  4. CoT 与 TIR 互不融合:模型在两种模式间切换,没有一个统一的”什么时候该用工具”决策机制
  5. Cold-start 问题没解决:如果直接对 Base 做 GRPO(不经过 Instruct SFT),训练会非常不稳定甚至发散

这些局限全部被 R1 论文解决

局限R1 的解法
只覆盖数学R1 训练数据扩展到代码、逻辑、STEM 多领域
RL 数据小R1 用更大规模 RL 数据 + 多轮 reward iteration
缺中间步骤监督R1 引入 reasoning 格式监督 + 答案精度 reward 组合
CoT/TIR 分裂R1 统一在 long-CoT 框架下,模型自主决定推理深度
Cold-start 不稳R1 引入 Cold-Start SFT 阶段稳定 RL 起点

可以说R1 是 DeepSeekMath 的”问题清单”的完整解答。这种”先发现问题、再用大模型升级版本解决”的研究节奏,是 DeepSeek 系列一贯的方法论——和 LLM → V2、Coder V1 → V2 是同样的形态。

另外两个间接影响:

  1. GRPO 的 advantage 归一化催生了一系列变种:DAPO(动态采样)、GSPO(更精细的 token-level 加权)、Dr.GRPO(debias 处理)
  2. 数据 pipeline 的 fastText 迭代分类器思路被复用到 R1 的 reasoning 数据采集、V3 的 code/math 子集采集中

写在最后

DeepSeekMath 是 DeepSeek 系列里学术影响力最大的一篇 paper。如果说 DeepSeekMoE 定义了 V2 / V3 / V4 的架构骨架,那 DeepSeekMath 就定义了 R1 系列的训练范式。

它做对了三件事:

  1. 用数据 pipeline 解决”数学数据稀缺”问题:120B tokens 用 fastText 迭代分类器从 CC 中挖出,比之前的开源数学语料大一个量级
  2. 用 GRPO 解决”PPO 显存爆炸”问题:去 critic + 组内归一化,把大模型 RL 训练成本降低近 50%
  3. 用三阶段管线(math pretraining → SFT → RL)建立 reasoning training 标准流程:这套流程后来被 R1 直接复用并放大

这三件事的影响远超数学领域——后续整个开源 reasoning model 浪潮都建立在它的方法论之上。从 R1-Zero 的”纯 RL”实验,到 R1 的”Cold-Start + 多阶段 RL”,再到 2025-2026 年的各种 reasoning 模型,GRPO 始终是默认选项。

下一篇 W6 我们详解 DeepSeek-VL 系列(V1 + V2 合篇),看 DeepSeek 是如何把通用 LLM 的能力扩展到视觉理解领域,以及 hybrid vision encoder、dynamic tiling 这些设计为多模态预训练带来的工程红利。


参考资料

  1. Shao et al., DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models, arXiv:2402.03300, 2024.
  2. DeepSeek-Math GitHub repository:
  3. Schulman et al., Proximal Policy Optimization Algorithms, arXiv:1707.06347, 2017.
  4. DeepSeek-AI, DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning, arXiv:2501.12948, 2025.
  5. Azerbayev et al., Llemma: An Open Language Model For Mathematics, arXiv:2310.10631, 2023.
  6. Paster et al., OpenWebMath: An Open Dataset of High-Quality Mathematical Web Text, arXiv:2310.06786, 2023.
  7. Joulin et al., Bag of Tricks for Efficient Text Classification (fastText), arXiv:1607.01759, 2016.
  8. Ahmadian et al., Back to Basics: Revisiting REINFORCE Style Optimization for Learning from Human Feedback in LLMs (RLOO), arXiv:2402.14740, 2024.

Loading