Files
note_sync/大模型/deepseek/03-数学模型/01-DeepSeekMath-2402.03300_abstract.md
T

127 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DeepSeekMath:推动开源语言模型数学推理的极限
> **原文标题**:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
> **arXiv**:[2402.03300](https://arxiv.org/abs/2402.03300) | **发布**:5 Feb 2024(最后修订 27 Apr 2024)
> **作者/机构**:Zhihong Shao、Peiyi Wang、Qihao Zhu 等(DeepSeek-AI(深度求索),联合清华大学、北京大学)
> **原文 PDF**:[01-DeepSeekMath-2402.03300.pdf](./01-DeepSeekMath-2402.03300.pdf)
## 一、摘要(全文翻译)
数学推理因其复杂且高度结构化的特性,对语言模型构成了重大挑战。本文提出 DeepSeekMath 7B:它基于 DeepSeek-Coder-Base-v1.5 7B 继续预训练,使用从 Common Crawl 中获取的 1200 亿(120B)数学相关 token,并混合自然语言与代码数据。DeepSeekMath 7B 在不依赖外部工具包和投票技术的情况下,于竞赛级 MATH 基准上取得了 51.7% 的亮眼成绩,接近 Gemini-Ultra 与 GPT-4 的性能水平。对 DeepSeekMath 7B 采样 64 次并施加自一致性(self-consistency)策略,可在 MATH 上达到 60.9%。DeepSeekMath 的数学推理能力归因于两个关键因素:第一,我们通过精心设计的数据筛选流水线,充分挖掘了公开可得网页数据中的巨大潜力;第二,我们提出了组相对策略优化(Group Relative Policy Optimization, GRPO),它是近端策略优化(Proximal Policy Optimization, PPO)的一种变体,在增强数学推理能力的同时,也优化了 PPO 的显存(内存)使用。
## 二、核心贡献
1. **规模化数学预训练语料**:从公开的 Common Crawl 中筛出 120B token 的高质量数学网页语料 DeepSeekMath Corpus,规模约为 Minerva 所用数学网页的 7 倍、OpenWebMath 的 9 倍,证明公开网页数据蕴含大量可用信息。
2. **小模型追平超大模型**:DeepSeekMath-Base 7B 在 GSM8K 达 64.2%、竞赛级 MATH 达 36.2%,与闭源 Minerva 540B 大致相当,说明参数量并非数学推理能力的唯一决定因素。
3. **代码训练提升数学推理**:先代码训练再数学训练,可同时提升「不用工具」与「用工具」两种数学求解能力,为「代码训练是否提升推理」提供了部分答案。
4. **arXiv 论文作用有限**:arXiv 论文常被纳入数学预训练数据,但实验中它在本文全部数学基准上均无明显提升。
5. **提出 GRPO 算法**:GRPO 舍弃 PPO 的 critic(价值)模型,改用同一问题多个采样输出的组内平均分作基线,显著降低训练开销;仅用 GSM8K/MATH 指令数据即把模型提升到 GSM8K 88.2%、MATH 51.7%,域外数学任务同步提升。
6. **统一范式与 RL 机理分析**:把 SFT、RFT、DPO、PPO、GRPO 统一到「数据来源 + 奖励函数 + 梯度系数」框架,并用在线/离线采样、结果/过程监督、单轮/迭代式 RL 等实验剖析 RL 的有效性与改进方向。
## 三、方法与技术要点
### 3.1 迭代式数据筛选流水线与去污染
痛点在于公开网页数据量极大但数学内容稀疏、质量参差,而高质量数学种子集合缺乏多样性。论文以 OpenWebMath 作为初始种子语料训练 fastText 分类器(向量维度 256、学习率 0.1、word n-gram 上限 3 等),取 50 万条种子数据作正例、50 万条 Common Crawl 网页作负例;先对 Common Crawl 做 URL 去重与近重复去重得到 40B 个 HTML 网页,再用该分类器召回数学网页并按打分排序保留靠前部分,保留量由 top 40B–160B token 的预训练实验决定,第一轮保留 top 40B token。
第一轮后仍漏掉大量网页,原因是正例多样性不足。论文把 Common Crawl 划分为互不重叠的域名(domain,即共享同一基础 URL),统计各域名中第一轮被收集网页的占比,超过 10% 的判为数学相关域名(如 mathoverflow.net),再人工标注其中的数学 URL(如 mathoverflow.net/questions),把「URL 已标注但网页未收集」的页面补入种子语料并重训分类器。四轮迭代后共得 3550 万个数学网页、120B token;第四轮发现近 98% 的数据在第三轮已收集,故停止采集。
为避免基准污染,凡与 GSM8K、MATH 及 CMATH、AGIEval 等基准任意子串完全匹配的 10-gram 片段都剔除;不足 10 gram 但至少 3 gram 的基准文本用精确匹配过滤。
### 3.2 语料质量验证与 DeepSeekMath-Base 7B
论文用 1.3B 通用模型(DeepSeek-LLM 1.3B)在每种数学语料上各训 150B token 做对比,设置沿袭 DeepSeek LLM:AdamW,$\beta_1=0.9$、$\beta_2=0.95$、weight_decay $=0.1$,多步学习率调度(2000 步 warmup 达峰值,进度 80% 降至峰值 31.6%、90% 降至 10.0%),峰值学习率 5.3e-4,批大小 4M token,上下文 4K,框架为 HAI-LLM。结果显示 DeepSeekMath Corpus 在 8 个中英文基准上全面领先,在 50B token(Proof-Pile-2 的一个完整 epoch)处就已优于 Proof-Pile-2,说明平均质量更高;又因语料含中英等多语言内容,中文数学推理同步受益,而英文为主的既有语料对中文提升有限甚至有害。
DeepSeekMath-Base 7B 以代码模型 DeepSeek-Coder-Base-v1.5 7B 为起点(论文观察到从代码模型出发优于通用 LLM),继续训练 500B token,配比为 56% DeepSeekMath Corpus、4% AlgebraicStack、10% arXiv、20% GitHub 代码、10% 中英文 Common Crawl 自然语言;峰值学习率 4.2e-4、批大小 10M token。
### 3.3 监督微调与 DeepSeekMath-Instruct 7B
数学指令数据共 776K 条:英文部分对 GSM8K 与 MATH 标注工具集成解法,并采用 MathInstruct 子集与 Lila-OOD 训练集(题目用思维链 CoT 或程序思维 PoT 求解),覆盖代数、概率、数论、微积分、几何等;中文部分收集 K-12 数学题,覆盖线性方程等 76 个子主题,并标注 CoT 与工具集成两种解法。训练时样本随机拼接至最长 4K token,训 500 步,批大小 256,学习率恒为 5e-5。
### 3.4 GRPO:从 PPO 到组相对策略优化
PPO 通过最大化如下代理目标优化策略:
$$\mathcal{J}_{PPO}(\theta)=\mathbb{E}_{q\sim P(Q),\,o\sim\pi_{\theta_{old}}(O|q)}\frac{1}{|o|}\sum_{t=1}^{|o|}\min\left[\frac{\pi_{\theta}(o_t|q,o_{<t})}{\pi_{\theta_{old}}(o_t|q,o_{<t})}A_t,\ \mathrm{clip}\left(\frac{\pi_{\theta}(o_t|q,o_{<t})}{\pi_{\theta_{old}}(o_t|q,o_{<t})},1-\varepsilon,1+\varepsilon\right)A_t\right]$$
其中优势 $A_t$ 由广义优势估计(GAE)基于奖励 $\{r_{\ge t}\}$ 与价值函数 $V_{\psi}$ 计算;为抑制对奖励模型的过度优化,标准做法是在每个 token 的奖励中加入参考模型的 KL 惩罚:
$$r_t = r_{\varphi}(q,o_{\le t}) - \beta\log\frac{\pi_{\theta}(o_t|q,o_{<t})}{\pi_{ref}(o_t|q,o_{<t})}$$
GRPO 针对两个痛点:PPO 的价值函数通常与策略模型规模相当,带来可观的显存与计算负担;且 LLM 场景中往往只有最后一个 token 被奖励模型打分,逐 token 准确的价值函数很难训练。因此 GRPO 不做价值函数近似,而是对同一问题 $q$ 从旧策略 $\pi_{\theta_{old}}$ 采样一组输出 $\{o_1,\dots,o_G\}$,以组内平均奖励为基线,最大化:
$$\mathcal{J}_{GRPO}(\theta)=\mathbb{E}_{q\sim P(Q),\,\{o_i\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)}\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_i|}\sum_{t=1}^{|o_i|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})}\hat{A}_{i,t},\ \mathrm{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})},1-\varepsilon,1+\varepsilon\right)\hat{A}_{i,t}\right]-\beta\,\mathbb{D}_{KL}\left[\pi_{\theta}||\pi_{ref}\right]\right\}$$
其中 $\hat{A}_{i,t}$ 只基于组内各输出的相对奖励计算,这与奖励模型的比较本质相契合——奖励模型通常就在同一问题的多输出比较数据上训练。与 PPO 把 KL 惩罚加进奖励不同,GRPO 直接把 KL 散度加进损失,从而不干扰 $\hat{A}_{i,t}$ 的计算,并采用保证非负的无偏估计量:
$$\mathbb{D}_{KL}\left[\pi_{\theta}||\pi_{ref}\right]=\frac{\pi_{ref}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}-\log\frac{\pi_{ref}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}-1$$
### 3.5 结果监督、过程监督与迭代式 RL
**结果监督**:奖励模型只对每个输出给一个末尾分数,奖励经组内去均值、除标准差归一化后赋给该输出所有 token 的优势:
$$\hat{A}_{i,t}=\widetilde{r}_i=\frac{r_i-\mathrm{mean}(\mathbf{r})}{\mathrm{std}(\mathbf{r})}$$
**过程监督**:论文认为结果监督只在末尾给一次奖励,对复杂数学任务不够充分高效,故沿 Wang et al. (2023b) 在每步推理结束时给奖励。设第 $j$ 步结束 token 索引为 $index(j)$、第 $i$ 个输出共 $K_i$ 步,全部步骤奖励整体归一化 $\widetilde{r}_i^{index(j)}=\dfrac{r_i^{index(j)}-\mathrm{mean}(\mathbf{R})}{\mathrm{std}(\mathbf{R})}$,再以「后续各步归一化奖励之和」作为该 token 优势:
$$\hat{A}_{i,t}=\sum_{index(j)\ge t}\widetilde{r}_i^{index(j)}$$
**迭代式 RL**:随训练推进,旧奖励模型可能不再足以监督当前策略。算法 1 每轮先把当前策略复制为参考模型,用其采样结果构造奖励模型的新数据,并以混入 10% 历史数据的 replay 机制持续训练旧奖励模型,再用新模型继续训练策略。
### 3.6 统一范式:数据来源、奖励函数与梯度系数
论文把各类方法的梯度统一写为:
$$\nabla_{\theta}\mathcal{J}_{\mathcal{A}}(\theta)=\mathbb{E}_{(q,o)\sim\mathcal{D}}\left(\frac{1}{|o|}\sum_{t=1}^{|o|}GC_{\mathcal{A}}(q,o,t,\pi_{rf})\,\nabla_{\theta}\log\pi_{\theta}(o_t|q,o_{<t})\right)$$
三个关键组件是数据来源 $\mathcal{D}$、奖励函数 $\pi_{rf}$ 与算法 $\mathcal{A}$(把数据与奖励信号加工成决定奖惩力度的梯度系数 $GC$)。据此,SFT 用人工数据、梯度系数恒为 1;RFT 以 SFT 模型离线采样输出按答案正确性筛选;DPO 用成对偏好损失在 SFT 采样输出上优化;Online RFT 改用实时策略的采样输出;PPO/GRPO 用模型奖励信号强化实时采样输出。观察结论是:在线采样显著优于离线采样,优势主要体现在训练后期;GRPO 的独特之处是依据奖励值调节梯度系数,对不同质量回答做差异化强化与惩罚,而 Online RFT 不惩罚错误回答、对正确回答一律等强度强化;结果监督(GRPO+OS)不如过程监督(GRPO+PS),说明细粒度、步骤感知的梯度系数更有益。
## 四、主要实验结果
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| MATH(无工具,CoT) | Instruct 7B 46.8%;RL 7B 51.7% | GPT-4 52.9%、Gemini-Ultra 53.2%、GLM-4 47.9%、Baichuan-3 49.2%、Qwen 72B 35.2% | 开源社区首次在竞赛级 MATH 上超过 50%;Instruct 比所有开源模型及多数闭源模型(Inflection-2 34.8%、Gemini Pro 32.6%)至少高 9 个百分点 |
| MATH(自一致性,64 采样) | 60.9% | — | 摘要给出 |
| MATH(工具集成推理) | Instruct 57.4%;RL 58.8% | GPT-4 Code Interpreter 69.7%、InternLM2-Math 20B 54.3%、ToRA 34B 50.8% | Instruct 准确率接近 60%,超过全部开源模型 |
| GSM8K(无工具,CoT) | Instruct 82.9%;RL 88.2% | Gemini Ultra 94.4%、GPT-4 92.0%、InternLM2-Math 20B 82.6% | RL 版本优于 7B–70B 全部开源模型 |
| GSM8K(+Python) | Instruct 83.7%;RL 86.7% | DeepSeek-LLM-Chat 67B 86.7%、Llemma 34B 64.6% | 工具集成设置 |
| MGSM-zh(中文) | Instruct 73.2%;RL 79.6% | DeepSeek-LLM-Chat 67B 74.0%、MetaMath 70B 66.4% | RL 较 Instruct 提升明显 |
| CMATH(中文,域外) | Instruct 84.6%;RL 88.8% | DeepSeek-LLM-Chat 67B 80.3%、WizardMath-v1.0 70B 65.4% | RL 仅用 GSM8K/MATH 的 CoT 数据,仍提升域外任务 4.2 个百分点 |
| DeepSeekMath-Base 7B(8 个中英文基准) | GSM8K 64.2%、MATH 36.2%、SAT 84.4%、MMLU-STEM 56.5%、CMATH 71.7%、Gaokao-MathQA 35.3% | Minerva 540B:58.8% / 33.6% / − / 63.9%;Llemma 34B:54.0% / 25.3% | 领先所有开源基座模型;MATH 上超过开源基座 10 个百分点以上,并超过参数量大 77 倍的闭源 Minerva 540B |
| miniF2F(Isabelle 形式化证明) | Base 7B:valid 25.8%、test 24.6% | Llemma 34B:21.0% / 21.3%;Mistral 7B:18.9% / 18.0% | 非形式到形式证明任务,few-shot 生成证明骨架后由 Sledgehammer 补全细节 |
| MMLU / BBH / 代码 | Base 7B:54.9% / 59.5%;HumanEval 40.9%、MBPP 52.6% | 前身 DeepSeek-Coder-Base-v1.5:49.1% / 55.2%,43.2% / 60.4%;Mistral 7B:62.4% / 55.7%,28.0% / 41.4% | 数学训练提升了语言理解与推理;纳入代码 token 继续训练使其基本保持代码能力 |
| 语料对比(1.3B,150B token) | DeepSeekMath Corpus 120.2B:GSM8K 23.8%、MATH 13.6%、SAT 56.3%、CMATH 41.5% | Proof-Pile-2 51.9B:14.3% / 11.2% / 43.8% / 19.9%;OpenWebMath 13.6B:11.5% / 8.9% / 31.3% / 16.8%;MathPile 8.9B:2.7% / 3.3% / 12.5% / 1.2% | 质量最高、覆盖多语言、规模最大;训练曲线更陡且提升更持久,小语料已被重复多轮、性能很快触顶 |
| 代码/数学训练顺序(1.3B) | 两阶段(代码 400B → 数学 150B):GSM8K 21.9%、MATH 15.3%、GSM8K+Python 17.4%、MATH+Python 9.4% | 两阶段(通用 400B → 数学 150B):19.1% / 14.4% / 14.3% / 6.7%;单阶段数学 150B:20.5% / 13.1% / 11.4% / 6.5% | 先代码后数学在有无工具两种设置下都更好;单阶段混合训练(400B 代码 + 150B 数学)缓解了灾难性遗忘、把 MATH+Python 提到 13.5%,但无工具数学推理反而下降(GSM8K 17.6%),论文推测 1.3B 规模不足以同时吸收两类数据 |
| arXiv 语料(1.3B 与 7B) | MathPile / ArXiv-RedPajama:1.3B 上 GSM8K 2.7% / 3.3%、MATH 3.3% / 3.4%;7B 上 GSM8K 23.6% / 28.1%、MATH 11.5% / 11.1% | 未做数学训练的基线:1.3B 2.9% / 3.0%,7B 29.0% / 12.5% | 纯 arXiv 语料未带来明显提升甚至退化;miniF2F 同样退化(7B:基线 20.1%/21.7%,MathPile 16.8%/16.4%,ArXiv-RedPajama 14.8%/11.9%) |
DeepSeekMath 系列在中文数学基准上优势尤为明显,因为语料没有像以往工作那样只收英文数据。竞赛级 MATH 上,不带工具 51.7% 与带工具 58.8% 都刷新了开源模型记录,但相对 GPT-4 Code Interpreter 与 Gemini-Ultra 仍有差距。RL 版本只在 GSM8K 与 MATH 的 CoT 数据上继续训练,却全面优于 Instruct 版本;纯 arXiv 语料、几何与定理证明类任务则相对薄弱。
## 五、结论、局限与影响
- **结论**:DeepSeekMath 在竞赛级 MATH 基准上超过全部开源模型并接近闭源模型;它从 DeepSeek-Coder-v1.5 7B 初始化、继续训练 500B token,核心部分是来自 Common Crawl 的 120B 数学 token。消融表明网页数据潜力巨大,arXiv 作用则不如预期;GRPO 以更少显存显著提升数学推理,即使 Instruct 版本分数已很高依然有效。
- **局限性**:论文自述——尽管定量推理基准成绩亮眼,DeepSeekMath 在几何与定理证明上弱于闭源模型(试运行中无法处理三角形与椭圆相关问题),这可能反映预训练与微调的数据选择偏置;受模型规模限制,其少样本能力不如 GPT-4:GPT-4 能随 few-shot 输入提升,DeepSeekMath 在零样本与少样本评测中则表现相近。此外 RL 提升了 Maj@K 却未提升 Pass@K,说明提升来自输出分布更鲁棒、把正确答案从 TopK 中「抬升」,而非基础能力增强;arXiv 无效的结论也有边界——论文尚未研究 arXiv token 对定理非形式化等任务的影响、与其他数据组合的效果、以及更大规模下是否显现收益。
- **影响**:本文证明公开网页数据经精细筛选即可支撑强数学推理,参数量不是唯一决定因素;GRPO 去掉 critic、以组内相对奖励估计基线,大幅节约显存与算力,成为后续大模型强化学习广泛沿用的基础算法;「先代码、后数学」与「arXiv 收益有限」为数据配方提供可复用参考;统一范式把 SFT、RFT、DPO、PPO、GRPO 纳入同一视角,并指出数据源、算法与奖励函数三个改进方向。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Group Relative Policy Optimization (GRPO) | 组相对策略优化 |
| Proximal Policy Optimization (PPO) | 近端策略优化 |
| Critic / Value Function | 评论家(价值函数) |
| Group Relative Advantage Estimation | 组相对优势估计 |
| Common Crawl (CC) | 通用网页爬取语料库 |
| fastText Classifier | fastText 分类器 |
| Decontamination | 去污染(基准泄漏过滤) |
| Chain-of-Thought (CoT) | 思维链 |
| Program-of-Thought (PoT) | 程序思维 |
| Tool-Integrated Reasoning (TIR) | 工具集成推理 |
| Supervised Fine-Tuning (SFT) | 监督微调 |
| Rejection Sampling Fine-Tuning (RFT) | 拒绝采样微调 |
| Direct Preference Optimization (DPO) | 直接偏好优化 |
| Outcome Supervision / Process Supervision | 结果监督 / 过程监督 |
| Self-Consistency | 自一致性 |
| Pass@K / Maj@K | 通过率 @K / 多数投票 @K |
| Autoformalization (Informal-to-Formal Proving) | 自动形式化(非形式到形式证明) |
| miniF2F / Isabelle / Sledgehammer | miniF2F 基准 / Isabelle 证明助手 / Sledgehammer 自动证明器 |