DeepSeekMath
DeepSeekMath
一、基础信息
1. 标题
- 英文:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
- 中文:DeepSeekMath:突破开放语言模型数学推理的极限
2. 作者
Zhihong Shao、Peiyi Wang、Qihao Zhu、Runxin Xu、Junxiao Song、Xiao Bi、Haowei Zhang、Mingchuan Zhang、Y.K. Li、Y. Wu、Daya Guo(其中 Zhihong Shao 来自 DeepSeek - AI 和清华大学,Peiyi Wang、Qihao Zhu 来自 DeepSeek - AI 和北京大学,其余作者均来自 DeepSeek - AI)
3. 来源
arXiv 预印本(arXiv:2402.03300v3 [cs.CL])
4. 发布时间
2024 年 4 月 27 日
二、研究背景与问题
1. 研究动机(现有不足)
- 数学推理因其复杂且结构化的特性,对语言模型而言是一项重大挑战。
- 目前,像 GPT - 4(OpenAI, 2023)和 Gemini - Ultra(Anil et al., 2023)这类尖端模型并非公开可用,而当前可获取的开源模型在数学推理性能上远远落后于这些闭源模型。
- 现有数学预训练数据存在局限,例如部分数据集规模较小,且多以英文为主,在多语言数学推理方面支持不足;同时,关于代码训练对数学推理能力的影响、arXiv 论文在数学预训练中的实际效用等问题,尚未有明确且深入的结论。
- 在强化学习优化语言模型数学推理能力方面,传统的 PPO(Proximal Policy Optimization)算法需要额外训练价值模型,带来了大量的内存和计算负担,不利于高效训练。
2. 研究问题
- 如何构建大规模、高质量且多语言的数学预训练语料库,以提升开源语言模型的数学推理能力,使其接近闭源尖端模型的水平?
- 代码训练是否能有效提升模型的数学推理能力(包括有无工具使用的情况),以及如何设计训练方式(如两阶段训练、一阶段混合训练)以更好地发挥代码训练的作用?
- arXiv 论文作为常见的数学预训练数据组成部分,其对模型数学推理能力的提升是否具有实际效果?
- 如何设计一种更高效的强化学习算法,在减少训练资源消耗的同时,有效提升开源语言模型的数学推理能力,并且该算法在不同场景(如结果监督、过程监督、迭代训练)下的表现如何?
- 能否构建一个统一的范式来理解不同的训练方法(如 SFT、RFT、DPO、PPO、GRPO),并基于此范式找出提升强化学习效果的关键因素和未来方向?
三、Methods
1. Math Pre - Training(数学预训练)
1.1 Data Collection and Decontamination(数据收集与去污染)
- 初始种子语料库选择:选用 OpenWebMath(Paster et al., 2023)这一高质量数学网络文本集合作为初始种子语料库。
- fastText 模型训练:从种子语料库中随机选取 50 万个数据点作为正训练样本,从 Common Crawl 中选取 50 万个网页作为负样本,训练 fastText 模型(Joulin et al., 2016)。模型配置为向量维度 256、学习率 0.1、单词 n - gram 最大长度 3、单词最小出现次数 3、训练轮数 3。
- Common Crawl 数据预处理:采用基于 URL 的去重和近去重技术,将原始 Common Crawl 数据缩减为 400 亿个 HTML 网页。
- 数学网页召回与筛选:使用训练好的 fastText 模型从去重后的 Common Crawl 中召回数学网页,并根据模型预测分数对收集到的网页进行排序,仅保留排名靠前的网页。通过预训练实验评估保留不同 token 数量(400 亿、800 亿、1200 亿、1600 亿)数据的效果,首次迭代选择保留前 400 亿个 token。
- 种子语料库扩充与模型优化:由于首次迭代训练的 fastText 模型正样本多样性不足,导致大量数学网页未被收集。将整个 Common Crawl 按域名(共享相同基础 URL 的网页)划分,计算每个域名中在首次迭代被收集网页的比例,将比例超过 10% 的域名归类为数学相关域名。人工标注这些域名中与数学内容相关的 URL,将未被收集但链接到这些 URL 的网页添加到种子语料库,重新训练 fastText 模型以提升后续迭代的数据召回效果。经过四次迭代,最终获得 3550 万个数学网页,总计 1200 亿个 token(第四次迭代时发现近 98% 的数据已在第三次迭代中收集,故停止数据收集)。
- 基准污染过滤:参考 Guo et al. (2024) 的方法,过滤包含英文数学基准(如 GSM8K、MATH)和中文基准(如 CMATH、AGIEval)中问题或答案的网页。过滤标准为:若文本片段包含与评估基准中任意子字符串完全匹配的 10 - gram 字符串,则从数学训练语料库中移除;对于长度小于 10 - gram 但至少 3 - gram 的基准文本,采用精确匹配过滤污染网页。
1.2 Validating the Quality of the DeepSeekMath Corpus(DeepSeekMath 语料库质量验证)
- 对比语料库选择:选取 MathPile(Wang et al., 2023c,89 亿 token,多源聚合,超 85% 来自 arXiv)、OpenWebMath(Paster et al., 2023,136 亿 token,Common Crawl 筛选的数学内容)、Proof - Pile - 2(Azerbayev et al., 2023,519 亿 token,包含 OpenWebMath、AlgebraicStack、arXiv 论文,实验中采用 arXiv:Web:Code = 2:4:1 的比例)与 DeepSeekMath 语料库进行对比。
- 训练设置:以与 DeepSeek LLMs(DeepSeek - AI, 2024)框架相同的 13 亿参数通用预训练语言模型(DeepSeekLLM 1.3B)为基础,在每个数学语料库上分别训练 1500 亿个 token。使用高效轻量的 HAI - LLM(High - flyer, 2023)训练框架,采用 AdamW 优化器(β₁=0.9,β₂=0.95,权重衰减 = 0.1),多步学习率调度(2000 个预热步骤后达到峰值,训练过程 80% 时降至峰值的 31.6%,90% 时降至 10.0%),学习率最大值设为 5.3e - 4,批大小为 400 万 token,上下文长度 4K。
- 评估方式:采用少样本思维链提示(Wei et al., 2022)在 8 个数学基准上评估下游性能,以验证语料库质量。
1.3 Training and Evaluating DeepSeekMath - Base 7B(DeepSeekMath - Base 7B 模型的训练与评估)
- 模型初始化与训练数据分布:以 DeepSeek - Coder - Base - v1.5 7B(Guo et al., 2024)为初始模型,训练 5000 亿个 token。训练数据分布为:56% 来自 DeepSeekMath 语料库,4% 来自 AlgebraicStack,10% 来自 arXiv,20% 来自 Github 代码,剩余 10% 为 Common Crawl 中的中英文自然语言数据。
- 训练设置调整:基本沿用 2.2.1 节的训练设置,仅将学习率最大值设为 4.2e - 4,批大小设为 1000 万 token。
- 评估维度与方法:
- 数学问题逐步推理求解:采用少样本思维链提示(Wei et al., 2022),在 8 个中英文基准(涵盖定量推理如 GSM8K、MATH、CMATH,以及选择题如 MMLU - STEM、Gaokao - MathQA,包含从小学到大学不同复杂度的数学领域)上评估模型无需外部工具生成完整数学解决方案的能力。
- 工具辅助数学问题求解:采用少样本程序思维提示(Chen et al., 2022;Gao et al., 2023),在 GSM8K 和 MATH 上评估模型通过编写 Python 程序(可使用 math、sympy 等库进行复杂计算)求解数学问题的能力,以程序执行结果作为答案进行评估。
- 形式化定理证明:在 miniF2F(Zheng et al., 2021)基准上,基于(Jiang et al., 2022)的非形式到形式定理证明任务,使用 Isabelle(Wenzel et al., 2008)作为证明辅助工具,采用少样本提示让模型生成形式化证明。参考 Jiang et al. (2022) 的方法,利用模型生成证明草图,调用现成的自动证明器 Sledgehammer(Paulson, 2010)填补缺失细节,评估模型的形式化证明能力。
- 自然语言理解、推理与代码能力:在 MMLU(Hendrycks et al., 2020,涵盖 57 个选择题任务,涉及多个学科)上评估自然语言理解能力,在 BBH(Suzgun et al., 2022,包含 23 个具挑战性任务,多需多步推理)上评估推理能力,在 HumanEval(Chen et al., 2021)和 MBPP(Austin et al., 2021,广泛用于评估代码语言模型)上评估代码能力。其中 MMLU 和 BBH 采用少样本思维链提示评估,HumanEval 采用零样本评估,MBPP 采用少样本评估。
2. Supervised Fine - Tuning(监督微调)
2.1 SFT Data Curation(SFT 数据整理)
- 数据覆盖范围:构建涵盖中英文、不同数学领域和复杂度水平的数学指令微调数据集,问题配有思维链(CoT)(Wei et al., 2022)、程序思维(PoT)(Chen et al., 2022;Gao et al., 2023)和工具集成推理(Gou et al., 2023)格式的解决方案,训练样本总数为 77.6 万。
- 英文数学数据集:对 GSM8K 和 MATH 问题标注工具集成解决方案,采用 MathInstruct(Yue et al., 2023)的子集以及 Lila - OOD(Mishra et al., 2022)的训练集(问题以 CoT 或 PoT 方式求解),涵盖代数、概率、数论、微积分、几何等多个数学领域。
- 中文数学数据集:收集涵盖 76 个子主题(如线性方程)的中文 K - 12 数学问题,为这些问题标注 CoT 和工具集成推理格式的解决方案。
2.2 Training and Evaluating DeepSeekMath - Instruct 7B(DeepSeekMath - Instruct 7B 模型的训练与评估)
- 训练设置:以 DeepSeekMath - Base 为基础进行数学指令微调。训练样本随机拼接,直至达到 4K token 的最大上下文长度。模型训练 500 步,批大小为 256,学习率恒定为 5e - 5。
- 评估基准与对比模型选择:
- 评估基准:在 4 个中英文定量推理基准上,分别在不使用工具和使用工具的评估设置下评估模型数学性能。
- 对比模型:
- 闭源模型:包括 GPT 系列(GPT - 4、GPT - 4 Code Interpreter)、Gemini 系列(Gemini Ultra、Gemini Pro)、Inflection - 2(Inflection AI, 2023)、Grok - 1,以及中国公司近期发布的模型(Baichuan - 3、GLM - 4(Du et al., 2022)),这些模型多为通用模型且经过一系列对齐过程。
- 开源模型:包括通用模型(DeepSeek - LLM - Chat 67B(DeepSeekAI, 2024)、Qwen 72B(Bai et al., 2023)、SeaLLM - v2 7B(Nguyen et al., 2023)、ChatGLM3 6B(ChatGLM3 Team, 2023))和数学增强模型(InternLM2 - Math 20B(基于 InternLM2,经数学训练后指令微调)、Math - Shepherd - Mistral 7B(对 Mistral 7B(Jiang et al., 2023)采用 PPO 训练(Schulman et al., 2017),使用过程监督奖励模型)、WizardMath 系列(Luo et al., 2023,对 Mistral 7B 和 Llama - 2 70B(Touvron et al., 2023)采用进化指令(evolve - instruct)和 PPO 训练,训练问题主要来自 GSM8K 和 MATH)、MetaMath 70B(Yu et al., 2023,对 Llama - 2 70B 在 GSM8K 和 MATH 的增强版本上微调)、ToRA 34B(Gou et al., 2023,对 CodeLlama 34B 微调以实现工具集成数学推理)、MAmmoTH 70B(Yue et al., 2023,对 Llama - 2 70B 在 MathInstruct 上指令微调))。
- 评估方式:分别在不允许使用工具(评估逐步推理能力)和允许结合自然语言推理与基于程序的工具使用(评估工具集成推理能力)的设置下进行评估。
3. Reinforcement Learning(强化学习)
3.1 Group Relative Policy Optimization(群体相对策略优化,GRPO)

3.1.1 From PPO to GRPO(从 PPO 到 GRPO)
- PPO 算法回顾:PPO(Schulman et al., 2017)是一种演员 - 评论家(actor - critic)强化学习算法,广泛用于 LLM 的强化学习微调阶段(Ouyang et al., 2022)。其通过最大化如下代理目标函数优化 LLM:
\( \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}, 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] \)
其中,\(\pi_{\theta}\)和\(\pi_{\theta_{old}}\)分别为当前和旧的策略模型,\(q\)、\(o\)分别从问题数据集和旧策略\(\pi_{\theta_{old}}\)中采样得到,\(\varepsilon\)是 PPO 中用于稳定训练的裁剪相关超参数,\(A_{t}\)是优势函数,“当前动作回报” 与 “平均回报” 的差值,基于奖励\(r_{≥t}\)和学习到的价值函数\(V_{\psi}\),通过广义优势估计(GAE)(Schulman et al., 2015)计算得出。为减轻奖励模型的过度优化,通常在每个 token 的奖励中添加来自参考模型的逐 token KL 惩罚(Ouyang et al., 2022):
\( r_{t}=r_{\varphi}(q,o_{\leq t})-\beta\log\frac{\pi_{\theta}(o_{t}|q,o_{<<t})}{\pi_{ref}(o_{t}|q,o_{<<t})} \)
其中,\(r_{\varphi}\)是奖励模型,\(\pi_{ref}\)是参考模型(通常为初始 SFT 模型),\(\beta\)是 KL 惩罚系数。
- PPO 的不足:PPO 中使用的价值函数通常是与策略模型规模相当的另一个模型,带来了巨大的内存和计算负担;此外,在 LLM 场景中,奖励模型通常只对最后一个 token 分配奖励分数,这使得训练在每个 token 上都准确的价值函数变得复杂。
- GRPO 算法设计:GRPO 摒弃了 PPO 中额外的价值函数近似,而是使用针对同一问题采样的多个输出的平均奖励作为基准。对于每个问题\(q\),GRPO 从旧策略\(\pi_{\theta_{old}}\)中采样一组输出\(\{o_{1},o_{2},\cdots,o_{G}\}\),通过最大化以下目标函数优化策略模型:
\( \begin{aligned} \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}, 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}\parallel\pi_{ref}\right]\right\} \end{aligned} \)
其中,\(\varepsilon\)和\(\beta\)是超参数,\(\hat{A}_{i,t}\)是仅基于每组内输出的相对奖励计算的优势,突出 “输出相对优劣”。
GRPO 利用群体相对方式计算优势,与奖励模型的比较性质高度契合(奖励模型通常在同一问题的输出比较数据集上训练)。
此外,GRPO 不将 KL 惩罚添加到奖励中,而是通过直接在损失中添加训练策略与参考策略之间的 KL 散度来进行正则化,避免了复杂计算\(\hat{A}_{i,t}\)。
GRPO 使用以下无偏估计器(Schulman, 2020)估计 KL 散度,确保其非负性:
\( \mathbb{D}_{KL}\left[\pi_{\theta}\parallel\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.1.2 Outcome Supervision RL with GRPO(基于 GRPO 的结果监督强化学习)
- 流程:对于每个问题\(q\),从旧策略模型\(\pi_{\theta_{old}}\)中采样一组输出\(\{o_{1},o_{2},\cdots,o_{G}\}\),使用奖励模型对这些输出评分,得到对应的\(G\)个奖励\(r = \{r_{1},r_{2},\cdots,r_{G}\}\)。将这些奖励通过减去组平均值并除以组标准差进行归一化。
- 结果监督在每个输出\(o_{i}\)的末尾提供归一化奖励,并将输出中所有 token 的优势\(\hat{A}_{i,t}\)设置为该归一化奖励,即\(\hat{A}_{i,t}=\tilde{r}_{i}=\frac{r_{i}-\text{mean}(r)}{\text{std}(r)}\),然后通过最大化目标函数优化策略。
3.1.3 Process Supervision RL with GRPO(基于 GRPO 的过程监督强化学习)
- 流程:结果监督仅在每个输出末尾提供奖励,对于复杂数学任务,可能不足以有效监督策略。过程监督在每个推理步骤末尾提供奖励。
- 给定问题\(q\)和采样的\(G\)个输出\(\{o_{1},o_{2},\cdots,o_{G}\}\),使用过程奖励模型对每个输出的每个步骤评分,得到相应的奖励:\(R = \{\{r_{1}^{\text{index}(1)},\cdots,r_{1}^{\text{index}(K_{1})}\},\cdots,\{r_{G}^{\text{index}(1)},\cdots,r_{G}^{\text{index}(K_{G})}\}\}\),其中\(\text{index}(j)\)是第\(j\)步的结束 token 索引,\(K_{i}\)是第\(i\)个输出的总步骤数。同样对这些奖励进行归一化(减去平均值并除以标准差),即\(\tilde{r}_{i}^{\text{index}(j)}=\frac{r_{i}^{\text{index}(j)}-\text{mean}(R)}{\text{std}(R)}\)。
- 过程监督将每个 token 的优势计算为后续步骤归一化奖励的总和,即\(\hat{A}_{i,t}=\sum_{\text{index}(j)>=t}\tilde{r}_{i}^{\text{index}(j)}\),然后通过最大化目标函数优化策略。
3.1.4 Iterative RL with GRPO(基于 GRPO 的迭代强化学习)
- 流程:随着强化学习训练的进行,旧奖励模型可能不足以监督当前策略模型。在迭代 GRPO 中(如算法 1 所示),基于策略模型的采样结果生成奖励模型的新训练集,并采用重播机制(包含 10% 的历史数据)持续训练旧奖励模型。然后将参考模型设置为当前策略模型,使用新的奖励模型持续训练策略模型。
- 算法 1 步骤:
- 输入初始策略模型\(\pi_{\theta_{init}}\)、奖励模型\(r_{\varphi}\)、任务提示\(D\)以及超参数\(\varepsilon\)、\(\beta\)、\(\mu\)。
- 初始化策略模型\(\pi_{\theta}\leftarrow\pi_{\theta_{init}}\)。
- 对于每个迭代次数\(iteration = 1,\cdots,I\):
- 设置参考模型\(\pi_{ref}\leftarrow\pi_{\theta}\)。
- 对于每个步骤\(step = 1,\cdots,M\):
- 从\(D\)中采样一个批次\(D_{b}\)。
- 更新旧策略模型\(\pi_{\theta_{old}}\leftarrow\pi_{\theta}\)。
- 对每个问题\(q\in D_{b}\),从\(\pi_{\theta_{old}}(\cdot|q)\)中采样\(G\)个输出\(\{o_{i}\}_{i = 1}^{G}\)。
- 通过运行\(r_{\varphi}\)计算每个采样输出\(o_{i}\)的奖励\(\{r_{i}\}_{i = 1}^{G}\)。
- 通过群体相对优势估计计算\(o_{i}\)的第\(t\)个 token 的\(\hat{A}_{i,t}\)。
- 对于每个 GRPO 迭代次数\(GRPO\_iteration = 1,\cdots,\mu\):
- 通过最大化 GRPO 目标函数更新策略模型\(\pi_{\theta}\)。
- 使用重播机制更新\(r_{\varphi}\)。
- 输出最终策略模型\(\pi_{\theta}\)。

3.2 Training and Evaluating DeepSeekMath - RL(DeepSeekMath - RL 模型的训练与评估)
- 训练数据与设置:以 DeepSeekMath - Instruct 7B 为基础进行强化学习训练。强化学习训练数据为 SFT 数据中与 GSM8K 和 MATH 相关的思维链格式问题,约 14.4 万个问题,排除其他 SFT 问题以研究强化学习对无数据基准的影响。参考(Wang et al., 2023b)构建奖励模型的训练集,基于 DeepSeekMath - Base 7B 以 2e - 5 的学习率训练初始奖励模型。GRPO 训练中,策略模型学习率设为 1e - 6,KL 系数为 0.04,每个问题采样 64 个输出,最大长度设为 1024,训练批大小为 1024,每个探索阶段后策略模型仅更新一次。
- 评估方式:沿用 DeepSeekMath - Instruct 7B 的评估基准,对于 DeepSeekMath - RL 7B,采用思维链推理的 GSM8K 和 MATH 视为域内任务,其他所有基准视为域外任务。
四、Experiment
1. 数据集
1.1 数学预训练数据集
- DeepSeekMath Corpus:通过四次迭代从 Common Crawl 中收集,包含 3550 万个数学网页,总计 1200 亿个 token,涵盖中英文等多语言数学内容,经过去污染处理以避免基准污染。
- 对比预训练数据集:
- MathPile(Wang et al., 2023c):89 亿 token,多源聚合(教科书、维基百科、ProofWiki、CommonCrawl、StackExchange、arXiv),超 85% 来自 arXiv。
- OpenWebMath(Paster et al., 2023):136 亿 token,从 Common Crawl 筛选的数学内容。
- Proof - Pile - 2(Azerbayev et al., 2023):519 亿 token,包含 OpenWebMath、AlgebraicStack(103 亿数学代码 token)和 arXiv 论文(280 亿 token),实验中采用 arXiv:Web:Code = 2:4:1 的比例。
1.2 评估基准数据集
- 英文数学推理基准:
- GSM8K(Cobbe et al., 2021):小学水平数学文字题。
- MATH(Hendrycks et al., 2021):竞赛级数学题,涵盖代数、微积分、几何等多个领域,难度较高。
- SAT(Azerbayev et al., 2023):学术能力评估测试中的数学部分。
- OCW Courses(Lewkowycz et al., 2022a):开放课程中的数学相关内容。
- MMLU - STEM(Hendrycks et al., 2020):大规模多任务语言理解基准中的科学、技术、工程和数学部分,包含选择题。
- 中文数学推理基准:
- MGSM - zh(Shi et al., 2023):多语言数学文字题中文版本。
- CMATH(Wei et al., 2023):中文小学数学测试题。
- Gaokao - MathCloze(Zhong et al., 2023):高考数学完形填空类题目。
- Gaokao - MathQA(Zhong et al., 2023):高考数学问答类题目。
- 形式化数学基准:
- miniF2F(Zheng et al., 2021):形式化奥林匹克水平数学基准,使用 Isabelle(Wenzel et al., 2008)作为证明辅助工具,评估非形式到形式定理证明能力。
- 自然语言理解与推理基准:
- MMLU(Hendrycks et al., 2020):涵盖 57 个选择题任务,涉及多个学科,评估自然语言理解能力。
- BBH(Suzgun et al., 2022):包含 23 个具挑战性任务,多需多步推理,评估推理能力。
- 代码能力基准:
- HumanEval(Chen et al., 2021):评估代码生成能力的基准,零样本评估。
- MBPP(Austin et al., 2021):评估代码生成能力的基准,少样本评估。
1.3 监督微调(SFT)数据集
- 包含 77.6 万个训练样本,涵盖中英文、不同数学领域和复杂度水平的数学问题,问题配有思维链(CoT)、程序思维(PoT)和工具集成推理格式的解决方案。其中英文数据集包括标注工具集成解决方案的 GSM8K 和 MATH 问题、MathInstruct(Yue et al., 2023)子集以及 Lila - OOD(Mishra et al., 2022)训练集;中文数据集为涵盖 76 个子主题的中文 K - 12 数学问题,标注有 CoT 和工具集成推理格式解决方案。
1.4 强化学习(RL)数据集
- 采用 SFT 数据中与 GSM8K 和 MATH 相关的思维链格式问题,约 14.4 万个问题,排除其他 SFT 问题以研究强化学习对无数据基准的影响。
2. Baselines(基准模型)
2.1 数学预训练模型对比基准
- 闭源基础模型:Minerva 系列(Lewkowycz et al., 2022a),包括 Minerva 7B、Minerva 62B、Minerva 540B(基于 PaLM(Lewkowycz et al., 2022b),经数学文本训练)。
- 开源基础模型:
- Mistral 7B(Jiang et al., 2023):通用开源模型。
- Llemma 系列(Azerbayev et al., 2023),包括 Llemma 7B、Llemma 34B(在 Proof - Pile - 2(Azerbayev et al., 2023)上进行数学训练)。
- DeepSeek - Coder - Base - v1.5 7B(Guo et al., 2024):DeepSeekMath - Base 7B 的初始模型,代码预训练模型。
2.2 监督微调模型对比基准
- 闭源模型:GPT 系列(GPT - 4、GPT - 4 Code Interpreter)、Gemini 系列(Gemini Ultra、Gemini Pro)、Inflection - 2(Inflection AI, 2023)、Grok - 1,以及中国公司近期发布的模型(Baichuan - 3、GLM - 4(Du et al., 2022))。
- 开源模型:
- 通用模型:DeepSeek - LLM - Chat 67B(DeepSeekAI, 2024)、Qwen 72B(Bai et al., 2023)、SeaLLM - v2 7B(Nguyen et al., 2023)、ChatGLM3 6B(ChatGLM3 Team, 2023)。
- 数学增强模型:InternLM2 - Math 20B、Math - Shepherd - Mistral 7B、WizardMath 系列(Luo et al., 2023)、MetaMath 70B(Yu et al., 2023)、ToRA 34B(Gou et al., 2023)、MAmmoTH 70B(Yue et al., 2023)。
2.3 强化学习模型对比基准
- 主要与 DeepSeekMath - Instruct 7B(其强化学习前的版本)以及监督微调模型对比基准中的各类模型进行对比,以评估强化学习对模型性能的提升效果。
3. 实验内容及其对应的实验结果、结论
3.1 DeepSeekMath 语料库质量验证实验
- 实验内容:以 DeepSeekLLM 1.3B 为基础模型,在 DeepSeekMath Corpus、MathPile、OpenWebMath、Proof - Pile - 2 四个数学语料库上分别训练 1500 亿个 token,采用相同的训练设置,通过少样本思维链提示在 8 个数学基准(GSM8K、MATH、OCW、SAT、MMLU - STEM、CMATH、Gaokao - MathCloze、Gaokao - MathQA)上评估模型性能。
- 实验结果:

- 结论:
- DeepSeekMath Corpus 质量高,在所有 8 个数学基准上,基于该语料库训练的模型性能均显著领先于基于其他对比语料库训练的模型。
- DeepSeekMath Corpus 具有多语言特性,能同时提升模型在英文和中文数学推理基准上的性能,而现有以英文为主的数学语料库在中文数学推理性能提升方面效果有限,甚至可能产生负面影响。
- DeepSeekMath Corpus 规模大(是 MathPile 的约 13.5 倍,OpenWebMath 的约 8.8 倍,Proof - Pile - 2 的约 2.3 倍),使得模型在训练过程中能持续学习,性能不断提升,而其他较小规模的语料库难以实现这一点。
3.2 DeepSeekMath - Base 7B 模型性能评估实验
3.2.1 数学问题逐步推理求解实验
- 实验内容:采用少样本思维链提示,在 8 个中英文数学基准(GSM8K、MATH、OCW、SAT、MMLU - STEM、CMATH、Gaokao - MathCloze、Gaokao - MathQA)上评估 DeepSeekMath - Base 7B 与闭源基础模型(Minerva 系列)、开源基础模型(Mistral 7B、Llemma 系列)的性能。
- 实验结果:

- 结论:
- 在所有 8 个中英文数学基准上,DeepSeekMath - Base 7B(7B 参数)的性能均领先于所有开源基础模型(包括 7B 参数的 Mistral 7B、Llemma 7B 和 34B 参数的 Llemma 34B),且在多个基准上领先优势显著。例如,在 MATH 基准上,DeepSeekMath - Base 7B 的准确率(36.2%)比 Llemma 34B(25.3%)高出 10.9 个百分点,比 Mistral 7B(14.3%)高出 21.9 个百分点。
- 尽管 Minerva 540B(540B 参数)在部分英文基准(如 MMLU - STEM)上性能仍领先于 DeepSeekMath - Base 7B,但 DeepSeekMath - Base 7B 在 MATH 基准上(36.2%)已超过 Minerva 540B(33.6%),且其参数规模远小于 Minerva 540B(仅为其约 1/77),表明高质量的数据预训练可使小规模模型在特定数学推理任务上达到甚至超越大规模闭源模型的性能。
- DeepSeekMath - Base 7B 在中文数学基准上表现出色,例如在 CMATH 基准上准确率达 71.7%,远高于其他开源基础模型,这得益于 DeepSeekMath Corpus 的多语言特性。
3.2.2 工具辅助数学问题求解实验
- 实验内容:采用少样本程序思维提示,在 GSM8K 和 MATH 基准上评估 DeepSeekMath - Base 7B 与其他开源基础模型(Mistral 7B、CodeLlama 系列、Llemma 系列)通过编写 Python 程序求解数学问题的能力,以程序执行结果作为答案进行评估。
- 实验结果:

- 结论:DeepSeekMath - Base 7B 在工具辅助数学问题求解方面表现优异,在 GSM8K + Python(66.9%)和 MATH + Python(31.4%)基准上的准确率均高于所有对比的开源基础模型,包括 34B 参数的 CodeLlama 34B 和 Llemma 34B,表明其具备较强的通过编程工具解决数学问题的能力。
3.2.3 形式化定理证明实验
- 实验内容:在 miniF2F 基准上,基于(Jiang et al., 2022)的非形式到形式定理证明任务,使用 Isabelle 作为证明辅助工具,采用少样本提示让模型生成形式化证明,评估 DeepSeekMath - Base 7B 与其他开源基础模型(Mistral 7B、CodeLlama 系列、Llemma 系列)的形式化证明能力。参考 Jiang et al. (2022) 的方法,利用模型生成证明草图,调用 Sledgehammer 自动证明器填补缺失细节。
- 实验结果:

- 结论:DeepSeekMath - Base 7B 在形式化定理证明任务上表现出色,在 miniF2F - valid(25.8%)和 miniF2F - test(24.6%)基准上的准确率均显著高于所有对比的开源基础模型,表明其具备较强的将非形式数学内容转化为形式化证明的能力。
3.2.4 自然语言理解、推理与代码能力实验
- 实验内容:在 MMLU(自然语言理解)、BBH(推理)、HumanEval(代码,零样本)、MBPP(代码,少样本)基准上评估 DeepSeekMath - Base 7B 与初始模型(DeepSeek - Coder - Base - v1.5 7B,包括学习率衰减前的检查点 DeepSeek - Coder - Base - v1.5†和最终版本)以及通用开源模型(Mistral 7B)的性能。
- 实验结果:

- 结论:
- 数学预训练对模型的自然语言理解和推理能力有积极影响,DeepSeekMath - Base 7B 在 MMLU(54.9%)和 BBH(59.5%)基准上的性能均优于其初始模型 DeepSeek - Coder - Base - v1.5 7B(MMLU:49.1%,BBH:55.2%)。
- 通过在训练中包含代码 token,DeepSeekMath - Base 7B 有效保持了初始模型 DeepSeek - Coder - Base - v1.5 7B 在代码基准上的性能(HumanEval:40.9% vs 43.2%,MBPP:52.6% vs 60.4%),未出现明显的灾难性遗忘。
- 总体而言,DeepSeekMath - Base 7B 在自然语言理解、推理和代码能力方面显著优于通用开源模型 Mistral 7B。
3.3 DeepSeekMath - Instruct 7B 模型性能评估实验
- 实验内容:以 DeepSeekMath - Base 为基础进行数学指令微调得到 DeepSeekMath - Instruct 7B,在 4 个中英文定量推理基准(GSM8K、MATH、MGSM - zh、CMATH)上,分别在不使用工具(评估逐步推理能力)和使用工具(评估工具集成推理能力)的设置下,与闭源模型和开源模型进行性能对比。
- 实验结果:


- 结论:
- 在不使用工具的评估设置下,DeepSeekMath - Instruct 7B 展现出强大的逐步推理能力。在竞赛级 MATH 数据集上,其准确率(46.8%)超过所有开源模型(包括参数规模更大的模型,如 72B 的 Qwen、70B 的 MetaMath)和大多数闭源模型(如 Inflection - 2、Gemini Pro),仅低于 Gemini Ultra、GPT - 4、Baichuan - 3 和 GLM - 4。
- 在允许使用工具的评估设置下,DeepSeekMath - Instruct 7B 在 MATH 基准上的准确率达到 57.4%,超过所有现有开源模型,且与参数规模大 10 倍的 DeepSeek - LLM - Chat 67B(51.1%)相比具有竞争力,展现出出色的工具集成推理能力。
- DeepSeekMath - Instruct 7B 在中文数学基准(MGSM - zh、CMATH)上也表现优异,与其他优秀开源模型相比具有较强的竞争力。
3.4 DeepSeekMath - RL 模型性能评估实验
- 实验内容:以 DeepSeekMath - Instruct 7B 为基础,使用 GRPO 算法进行强化学习训练得到 DeepSeekMath - RL 7B。在与 DeepSeekMath - Instruct 7B 相同的 4 个中英文定量推理基准(GSM8K、MATH、MGSM - zh、CMATH)上,分别在不使用工具(思维链推理)和使用工具(工具集成推理)的设置下评估性能,其中 GSM8K 和 MATH(思维链推理)视为域内任务,其他基准视为域外任务。
- 实验结果:
|
模型
|
规模
|
英文基准(%)
|
|
中文基准(%)
|
|
|
|
|
GSM8K
|
MATH
|
MGSM - zh
|
CMATH
|
|
思维链推理
|
|
|
|
|
|
|
DeepSeekMath - Instruct
|
7B
|
82.9
|
46.8
|
73.2
|
84.6
|
|
DeepSeekMath - RL
|
7B
|
88.2
|
51.7
|
79.6
|
88.8
|
|
工具集成推理
|
|
|
|
|
|
|
DeepSeekMath - Instruct
|
7B
|
83.7
|
57.4
|
72.0
|
84.3
|
|
DeepSeekMath - RL
|
7B
|
86.7
|
58.8
|
78.4
|
87.6
|
- 结论:
- 强化学习能显著提升模型性能,DeepSeekMath - RL 7B 在所有评估基准上的性能均优于其强化学习前的版本 DeepSeekMath - Instruct 7B,无论是域内任务(GSM8K、MATH 思维链推理)还是域外任务(MGSM - zh、CMATH 思维链推理,以及所有工具集成推理任务)。
- DeepSeekMath - RL 7B 在数学推理方面达到了极高水平,在思维链推理的 GSM8K(88.2%)和 MATH(51.1%)基准上,性能超越了所有参数规模的开源模型和大多数闭源模型,仅低于少数顶尖闭源模型(如 GPT - 4、Gemini Ultra)。
- GRPO 算法有效,仅使用 GSM8K 和 MATH 的思维链格式指令微调数据进行强化学习训练,就能使模型在多个基准上获得性能提升,证明了该算法在提升模型数学推理能力方面的有效性。
3.5 代码训练对数学推理能力影响实验
- 实验内容:以 DeepSeekLLM 1.3B 为基础模型,设计不同的训练设置
- (两阶段训练:阶段 1 分别进行 400 亿 token 的通用训练或代码训练,阶段 2 进行 150 亿 token 的数学训练; 一阶段训练:仅进行 150 亿 token 的数学训练,或混合 400 亿 token 代码和 150 亿 token 数学训练)
- 通过少样本思维链提示(无工具使用)和少样本程序思维提示(有工具使用)评估模型在数学推理基准(GSM8K、MATH、CMATH、GSM8K + Python、MATH + Python)以及自然语言理解、推理与代码基准(MMLU、BBH、HumanEval、MBPP)上的性能,探究代码训练对数学推理能力的影响。
- 实验结果:


- 结论:
- 代码训练有利于工具辅助数学推理,在两阶段训练中,阶段 1 进行代码训练后,模型在工具辅助数学推理基准(GSM8K + Python、MATH + Python)上的性能显著高于阶段 1 进行通用训练的模型;在一阶段训练中,代码与数学混合训练的模型在工具辅助数学推理基准上的性能也表现出色,且能缓解两阶段训练中数学训练导致的代码性能灾难性遗忘问题(代码与数学混合训练的模型在 HumanEval 和 MBPP 基准上的性能远高于两阶段训练(阶段 1 代码训练 + 阶段 2 数学训练)的模型)。
- 代码训练有助于提升无工具辅助的数学推理能力,在两阶段训练中,阶段 1 进行代码训练的模型,经过阶段 2 数学训练后,在无工具辅助的数学推理基准(GSM8K、MATH、CMATH)上的性能高于阶段 1 进行通用训练的模型;但一阶段代码与数学混合训练对无工具辅助数学推理能力的提升效果不如两阶段代码训练后数学训练,推测可能是由于 13 亿参数的模型规模有限,无法同时充分吸收代码和数学数据。
- 代码训练对模型的自然语言理解、推理和代码能力有积极影响,代码训练后的模型在 MMLU、BBH、HumanEval、MBPP 基准上的性能均有不同程度的提升,尤其是代码能力基准(HumanEval、MBPP)提升显著。
3.6 arXiv 论文对数学推理能力影响实验
- 实验内容:以 DeepSeekLLM 1.3B 和 DeepSeek - Coder - Base - v1.5 7B 为基础模型,分别在不同的 arXiv 语料库(MathPile(89 亿 token,超 85% 来自 arXiv)、ArXiv - RedPajama(280 亿 token,去除序言、注释、宏定义和参考文献的 arXiv LaTeX 文件))上进行训练(DeepSeekLLM 1.3B 训练 1500 亿 token,DeepSeek - Coder - Base - v1.5 7B 训练 400 亿 token),通过少样本思维链提示在数学推理基准(GSM8K、MATH、OCW、SAT、MMLU - STEM、CMATH、Gaokao - MathCloze、Gaokao - MathQA)和形式化数学基准(miniF2F)上评估模型性能,探究 arXiv 论文对数学推理能力的影响。
- 实验结果:


- 结论:arXiv 论文对模型数学推理能力的提升效果不明显,甚至可能产生负面影响。在不同规模的基础模型(1.3B、7B)和不同的数学基准(定量推理、选择题、形式化数学、中文数学)上,基于 arXiv 语料库(MathPile、ArXiv - RedPajama)训练的模型性能要么没有显著提升,要么出现下降,与无数学训练或基于其他高质量数学语料库(如 DeepSeekMath Corpus)训练的模型相比表现不佳。但该结论存在局限性,尚未研究 arXiv token 对特定数学相关任务(如定理非形式化)的影响、与其他类型数据结合时的效果以及在更大模型规模上的表现,需进一步探索。
3.7 强化学习相关探索实验
3.7.1 不同训练方法统一范式与数据来源影响实验
- 实验内容:构建统一范式分析不同训练方法(SFT、RFT、DPO、PPO、GRPO)的关键组件(数据来源、奖励函数、算法),并以 DeepSeekMath - Instruct 1.3B 为基础模型,比较不同训练方法(RFT、Online RFT、GRPO + OS(结果监督)、GRPO + PS(过程监督))在 GSM8K 和 MATH 基准上的性能,重点探究数据来源(离线采样:RFT,数据来自初始 SFT 模型采样;在线采样:Online RFT、GRPO,数据来自实时策略模型采样)对训练效果的影响。
- 实验结果:

- 如图 所示,Online RFT 在训练后期显著优于 RFT;GRPO(包括 GRPO + OS 和 GRPO + PS)在整个训练过程中性能均优于 Online RFT,且 GRPO + PS 性能优于 GRPO + OS。
- 结论:
- 数据来源对训练效果影响显著,在线采样(数据来自实时策略模型)的训练方法(Online RFT、GRPO)优于离线采样(数据来自初始 SFT 模型)的训练方法(RFT)。在训练初期,实时策略模型与 SFT 模型相似,采样数据差异小,两种采样方式性能差距不大;但随着训练进行,实时策略模型逐渐变化,采样数据差异增大,在线采样能提供更贴合当前策略的训练数据,优势逐渐凸显。
- 算法和奖励函数对训练效果有重要影响,GRPO 通过奖励模型提供的奖励值调整梯度系数,能根据响应质量进行差异化强化和惩罚,而 Online RFT 仅基于答案正确性进行判断,不惩罚错误响应且对正确响应强化强度相同,因此 GRPO 性能优于 Online RFT。此外,过程监督(GRPO + PS)能提供细粒度、步骤感知的梯度系数,比结果监督(GRPO + OS)更能有效指导模型训练,因此 GRPO + PS 性能更优。
3.7.2 迭代强化学习实验
- 实验内容:以 DeepSeekMath - Instruct 7B 为基础模型,采用 GRPO 算法进行迭代强化学习训练(进行两轮迭代),在 GSM8K 和 MATH 基准上评估不同迭代次数的模型性能。
- 实验结果:

- 如图 所示,随着迭代次数增加,模型在 GSM8K 和 MATH 基准上的性能不断提升,尤其是第一次迭代后性能提升显著。
- 结论:迭代强化学习能有效提升模型性能,通过不断更新奖励模型(基于当前策略模型采样结果生成新训练集,并结合历史数据进行训练)和策略模型,模型能持续学习和优化,逐步提升数学推理能力。
3.7.3 强化学习效果原因探究实验
- 实验内容:评估 DeepSeekMath - Instruct 7B(SFT 模型)和 DeepSeekMath - RL 7B(RL 模型)在 GSM8K 和 MATH 基准上的 Pass@K 和 Maj@K 准确率(temperature = 0.7),探究强化学习提升模型性能的原因。
- 实验结果:

- 如图所示,RL 模型的 Maj@K 准确率显著高于 SFT 模型,但 Pass@K 准确率与 SFT 模型相比无明显提升。
- 结论:强化学习主要通过使模型输出分布更稳健来提升整体性能,而非增强模型的基础能力。RL 模型能从 TopK 候选中更好地筛选出正确响应,提高多数投票(Maj@K)的准确率,但并未提升模型生成正确响应的概率(Pass@K),这与 SFT 模型在推理任务中存在的错位问题一致,表明偏好对齐策略(如强化学习)能有效改善模型推理性能。
4. 论文核心观点 / 贡献
4.1 大规模数学预训练相关贡献
- 构建了大规模高质量多语言数学预训练语料库 DeepSeekMath Corpus:通过精心设计的数据选择 pipeline(基于 fastText 模型从 Common Crawl 中迭代召回、筛选数学网页,并进行去污染处理),构建了包含 1200 亿 token 的 DeepSeekMath Corpus。该语料库规模远超现有数学预训练语料库(是 MathPile 的约 13.5 倍,OpenWebMath 的约 8.8 倍,Proof - Pile - 2 的约 2.3 倍),质量高且支持多语言(主要为英文和中文)。实验证明,基于该语料库训练的模型在中英文数学推理基准上性能显著领先于基于其他语料库训练的模型。
- 验证了小规模模型在高质量数据预训练下的强大数学推理能力:基于 DeepSeekMath Corpus 预训练的 DeepSeekMath - Base 7B 模型(7B 参数),在多个数学推理基准上性能超越了参数规模更大的开源模型(如 34B 参数的 Llemma 34B),甚至在部分基准上(如 MATH)超过了大规模闭源模型 Minerva 540B(540B 参数),表明模型参数数量并非决定数学推理能力的唯一关键因素,高质量的数据预训练可使小规模模型也具备强大的数学推理能力。
- 揭示了代码训练对数学推理能力的积极影响:通过实验证明,在数学训练前进行代码训练,能有效提升模型的数学推理能力(包括有无工具使用的情况),为 “代码训练是否提升推理能力” 这一长期问题提供了部分答案(至少在数学推理领域如此)。同时,还发现代码与数学混合的一阶段训练能缓解两阶段训练(代码训练后数学训练)中出现的代码性能灾难性遗忘问题。
- 发现 arXiv 论文在数学预训练中的局限性:实验表明,仅使用 arXiv 论文作为数学预训练数据,对模型数学推理能力的提升效果不明显,甚至可能产生负面影响,打破了 “arXiv 论文是优质数学预训练数据” 的普遍认知,为后续数学预训练数据选择提供了重要参考。
4.2 强化学习相关贡献
- 提出了高效的强化学习算法 GRPO:GRPO 是 PPO 的变体,摒弃了 PPO 中需要额外训练的价值模型,通过使用同一问题的多个采样输出的平均奖励作为基准来计算优势,显著减少了训练资源消耗(内存和计算负担)。实验证明,GRPO 能有效提升模型的数学推理能力,在 GSM8K、MATH 等多个基准上,基于 GRPO 训练的 DeepSeekMath - RL 7B 模型性能显著优于强化学习前的模型,且超越了众多开源模型和部分闭源模型。

浙公网安备 33010602011771号