DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
文章标题:DeepSeekMath: 推动开放语言模型中数学推理的极限
作者/机构:Zhihong Shao, Peiyi Wang, Qihao Zhu, Runxin Xu, Junxiao Song, Xiao Bi, Haowei Zhang, Mingchuan Zhang, Y.K. Li, Y. Wu, Daya Guo; 来自 DeepSeek-AI, 清华大学, 北京大学
A1 主要贡献
本文介绍了 DeepSeekMath,一个在数学推理方面取得显著性能的领域特定语言模型。其核心贡献可分为可扩展的数学预训练和对强化学习的探索与分析两个方面。
在可扩展的数学预训练方面:
1. 构建大规模高质量数学语料库:通过精心设计的数据筛选流程,从公开的 Common Crawl 数据中成功构建了包含1200亿词元(token)的高质量数学语料库——DeepSeekMath Corpus。该语料库的规模远超之前的研究,例如是 Minerva 使用的数学网页数据的近7倍,是 OpenWebMath 的9倍。
2. 验证小模型+高质量数据的有效性:预训练的 DeepSeekMath-Base 7B 模型性能可与比其大77倍的 Minerva 540B 相媲美,证明了模型参数量并非数学推理能力的唯一关键因素,在高质量数据上训练的小模型同样能取得强大性能。
3. 探索代码训练对数学推理的助益:研究发现,在进行数学训练之前先进行代码训练,能够提升模型在带工具和不带工具使用场景下的数学问题解决能力,为“代码训练能否提升推理能力”这一长期问题提供了肯定的部分答案。
4. 对 arXiv 论文数据的反思:实验表明,尽管在许多数学相关论文中普遍使用 arXiv 论文进行训练,但在本文所采用的数学基准测试中,并未带来显著的性能提升。
在对强化学习的探索与分析方面:
1. 提出高效的强化学习算法 GRPO:引入了组相对策略优化(Group Relative Policy Optimization, GRPO),这是一种 PPO 的变体。GRPO 无需评论家(critic)模型,而是通过组内分数来估计基线,从而显著减少了与 PPO 相比的训练资源消耗。
2. 验证 GRPO 的有效性:仅使用指令微调数据,GRPO 就显著提升了 DeepSeekMath-Instruct 模型的性能,并且在强化学习过程中观察到模型在领域外任务上的性能也有所提升。
3. 提供统一的分析范式:提出了一个统一的范式来理解包括 RFT、DPO、PPO 和 GRPO 在内的不同训练方法。通过广泛实验深入研究了该范式的关键要素(如在线与离线训练、结果与过程监督、单轮与迭代强化学习等),并基于此探讨了强化学习有效的原因,为未来实现更有效的强化学习总结了潜在方向。
A2 方法细节
2. 数学预训练
2.1. 数据收集与去污染
-
构建DeepSeekMath语料库的迭代流程:本文概述了从 Common Crawl 构建 DeepSeekMath 语料库的过程。如图2所示,这是一个迭代流程,展示了如何从一个种子语料库(例如,一个小型但高质量的数学相关数据集)开始,系统地从 Common Crawl 中收集大规模数学语料库。该方法同样适用于编码等其他领域。
图2 | 从 Common Crawl 收集数学网页的迭代流程。 -
初始数据收集与分类器训练:首先,选择高质量数学网络文本集合 OpenWebMath 【【35】,OpenWebMath: An open dataset of high-quality mathematical web text,2023】作为初始种子语料库。利用这个语料库,训练一个 fastText 模型【【22】,Fasttext.zip: Compressing text classification models,2016】来召回更多类似 OpenWebMath 的数学网页。具体地,从种子语料库中随机选择50万个数据点作为正向训练样本,并从 Common Crawl 中选择另外50万个网页作为负向样本。使用一个开源库进行训练,配置向量维度为256,学习率为0.1,词n-gram的最大长度为3,词出现的最小次数为3,训练轮数为3。为了减小原始 Common Crawl 的规模,采用了基于URL的去重和近去重技术,最终得到400亿个HTML网页。然后,使用 fastText 模型从去重后的 Common Crawl 中召回数学网页。为了过滤掉低质量的数学内容,根据 fastText 模型预测的分数对收集到的页面进行排序,并只保留排名靠前的页面。保留的数据量通过对前40B、80B、120B和160B词元进行预训练实验来评估。在第一次迭代中,选择保留前40B个词元。
-
迭代优化与语料库扩充:在第一次数据收集迭代后,由于 fastText 模型训练所用的正样本集多样性不足,许多数学网页仍未被收集。因此,通过识别更多的数学网页来源来丰富种子语料库,从而优化 fastText 模型。具体操作是,首先将整个 Common Crawl 组织成不相交的域(domain),一个域定义为共享相同基础URL的网页。对于每个域,计算在第一次迭代中被收集的网页百分比。网页收集比例超过10%的域被归类为数学相关域(例如,mathoverflow.net)。随后,在这些已识别的域中手动标注与数学内容相关的URL(例如,mathoverflow.net/questions)。与这些URL相关但未被收集的网页将被添加到种子语料库中。这种方法能够收集更多的正样本,从而训练出更优的 fastText 模型,在后续迭代中召回更多的数学数据。经过四轮数据收集迭代,最终得到3550万个数学网页,总计1200亿词元。在第四次迭代中,注意到近98%的数据已在第三次迭代中被收集,因此决定停止数据收集。
-
基准测试污染清理:为避免基准测试污染,遵循 Guo 等人【【15】,Deepseek-coder: When the large language model meets programming – the rise of code intelligence,2024】的方法,过滤掉包含英文数学基准(如GSM8K【【9】,Training verifiers to solve math word problems,2021】和MATH【【17】,Measuring mathematical problem solving with the math dataset,2021】)以及中文基准(如CMATH【【57】,Cmath: Can your language model pass chinese elementary school math test?,2023】和AGIEval【【64】,AGIEval: A human-centric benchmark for evaluating foundation models,2023】)中的问题或答案的网页。过滤标准如下:任何包含与评估基准中任意子字符串完全匹配的10-gram字符串的文本段都将从数学训练语料库中移除。对于长度小于10-gram但至少有3-gram的基准文本,采用精确匹配来过滤受污染的网页。
2.2. 验证DeepSeekMath语料库的质量
- 对比实验设置:本节通过预训练实验,将 DeepSeekMath 语料库与近期发布的数学训练语料库进行比较,包括:
- MathPile【【55】,Generative AI for math: Part I - mathpile: A billion-token-scale pretraining corpus for math,2023c】:一个多源语料库(89亿词元),整合了教科书、维基百科、ProofWiki、CommonCrawl、StackExchange和arXiv的内容,其中超过85%来自arXiv。
- OpenWebMath【【35】,OpenWebMath: An open dataset of high-quality mathematical web text,2023】:从CommonCrawl筛选的数学内容数据,总计136亿词元。
- Proof-Pile-2【【3】,Llemma: An open language model for mathematics,2023】:一个由OpenWebMath、AlgebraicStack(103亿词元的数学代码)和arXiv论文(280亿词元)组成的数学语料库。实验中遵循其论文建议,使用arXiv:Web:Code为2:4:1的混合比例。
2.2.1. 训练设置
- 实验模型与框架:在一个与DeepSeek LLM【【11】,Deepseek LLM: scaling open-source language models with longtermism,2024】框架相同的13亿参数通用预训练语言模型(表示为DeepSeekLLM 1.3B)上进行数学训练。针对每种数学语料库,分别训练一个模型,训练量为1500亿词元。所有实验均使用高效轻量的HAI-LLM【【18】,Hai-llm: 效且轻 的 型训练工具,2023】训练框架。
-
优化器与学习率:遵循DeepSeek LLM的训练实践,使用AdamW优化器【【28】,Decoupled weight decay regularization,2017】,其中 $\beta_1 = 0.9$, $\beta_2 = 0.95$, weight_decay = 0.1。采用多步学习率调度,学习率在2000个预热步骤后达到峰值,在训练过程的80%后降至峰值的31.6%,在90%后进一步降至峰值的10.0%。学习率最大值设为5.3e-4,批处理大小为400万词元,上下文长度为4K。
表1 | DeepSeek-LLM 1.3B在不同数学语料库上训练的性能,使用少样本思维链提示进行评估。语料库大小使用我们词汇量为100K的分词器计算。
2.2.2. 评估结果
-
高质量:使用少样本思维链提示【【56】,Chain-of-thought prompting elicits reasoning in large language models,2022】在8个数学基准上评估下游性能。如表1所示,在DeepSeekMath语料库上训练的模型性能明显领先。图3显示,在处理了500亿词元(相当于Proof-Pile-2的1个完整epoch)时,该模型表现优于在Proof-Pile-2上训练的模型,表明DeepSeekMath语料库的平均质量更高。
图3 | DeepSeek-LLM 1.3B在不同数学语料库上训练的基准曲线。 -
多语言性:DeepSeekMath语料库包含多种语言的数据,主要以英语和中文为代表。如表1所示,使用DeepSeekMath语料库进行训练,可以同时提升英语和中文的数学推理性能。相比之下,现有的以英语为中心的数学语料库在中文数学推理上的提升有限,甚至可能产生负面影响。
- 大规模:DeepSeekMath语料库比现有的数学语料库大数倍。如图3所示,在DeepSeekMath语料库上训练的DeepSeek-LLM 1.3B展现出更陡峭的学习曲线和更持久的性能提升。相比之下,基线语料库规模小得多,训练过程中已经重复了多轮,导致模型性能很快达到平台期。
2.3. 训练和评估 DeepSeekMath-Base 7B
- 模型训练设置:本节介绍DeepSeekMath-Base 7B,一个具有强大推理能力(尤其在数学方面)的基础模型。该模型使用DeepSeek-Coder-Base-v1.5 7B【【15】,Deepseek-coder: When the large language model meets programming – the rise of code intelligence,2024】进行初始化,并训练了5000亿词元。数据分布如下:56%来自DeepSeekMath语料库,4%来自AlgebraicStack,10%来自arXiv,20%是Github代码,其余10%是来自Common Crawl的中英文自然语言数据。主要采用2.2.1节中指定的训练设置,但将学习率最大值设为4.2e-4,批处理大小设为1000万词元。
- 评估范围:对DeepSeekMath-Base 7B的数学能力进行了全面评估,重点关注其生成独立数学解题过程(不依赖外部工具)、使用工具解决数学问题以及进行形式化定理证明的能力。除了数学,还提供了该基础模型在自然语言理解、推理和编程技能方面的通用能力画像。
- 逐步推理的数学问题解决:使用少样本思维链提示【【56】,Chain-of-thought prompting elicits reasoning in large language models,2022】评估了DeepSeekMath-Base在八个中英文基准上的数学解题性能。这些基准涵盖了定量推理(如GSM8K【【9】,Training verifiers to solve math word problems,2021】、MATH【【17】,Measuring mathematical problem solving with the math dataset,2021】和CMATH【【57】,Cmath: Can your language model pass chinese elementary school math test?,2023】)和多项选择题(如MMLU-STEM【【16】,Measuring massive multitask language understanding,2020】和Gaokao-MathQA【【64】,AGIEval: A human-centric benchmark for evaluating foundation models,2023】),覆盖了从小学到大学水平的多个数学领域。
-
逐步推理评估结果:如表2所示,DeepSeekMath-Base 7B在所有八个基准上均领先于开源基础模型(包括广泛使用的通用模型Mistral 7B【【21】,Mistral 7b,2023】和近期发布的、在Proof-Pile-2上进行数学训练的Llemma 34B【【3】,Llemma: An open language model for mathematics,2023】)。值得注意的是,在竞赛级别的MATH数据集上,DeepSeekMath-Base比现有开源基础模型高出超过10个绝对百分点,并超过了规模大77倍的闭源基础模型Minerva 540B【【25】,Solving quantitative reasoning problems with language models,2022a】,后者基于PaLM【【26】,Solving quantitative reasoning problems with language models,2022b】并在数学文本上进行了进一步训练。
表2 | DeepSeekMath-Base 7B与强基础模型在中英文数学基准上的比较。模型使用思维链提示进行评估。Minerva的结果引自Lewkowycz等人(2022a)。 -
使用工具的数学问题解决:在GSM8K和MATH上,使用少样本思路编程提示(program-of-thought prompting)【【8】,Program of thoughts prompting: Disentangling computation from reasoning for numerical reasoning tasks,2022;【13】,PAL: programaided language models,2023】评估了程序辅助的数学推理能力。模型被提示通过编写Python程序来解决每个问题,其中可以利用
math
和sympy
等库进行复杂计算。程序的执行结果被评估为答案。如表3所示,DeepSeekMath-Base 7B的性能超过了之前的最先进模型Llemma 34B。表3 | 基础模型使用工具解决数学问题能力和在Isabelle中进行非正式到正式定理证明能力的少样本评估。 -
形式化数学:形式化证明自动化有助于确保数学证明的准确性和可靠性,并提高效率,近年来受到越来越多的关注。我们在非正式到正式的证明任务【【20】,Draft, sketch, and prove: Guiding formal theorem provers with informal proofs,2022】上评估了DeepSeekMath-Base 7B,该任务是根据一个非正式陈述、该陈述的形式化对应物以及一个非正式证明来生成一个形式化证明。我们在miniF2F【【63】,Minif2f: a cross-system benchmark for formal olympiad-level mathematics,2021】(一个奥林匹克级别的形式化数学基准)上进行评估,并使用少样本提示为每个问题生成Isabelle中的形式化证明。遵循Jiang等人【【20】,Draft, sketch, and prove: Guiding formal theorem provers with informal proofs,2022】的方法,我们利用模型生成证明草图,并执行现成的自动证明器Sledgehammer【【36】,Three years of experience with sledgehammer, a practical link between automatic and interactive theorem provers,2010】来填补缺失的细节。如表3所示,DeepSeekMath-Base 7B在证明自动形式化方面表现出强大的性能。
-
自然语言理解、推理和代码能力:在MMLU【【16】,Measuring massive multitask language understanding,22】上评估模型的自然语言理解能力,在BBH【【46】,Challenging big-bench tasks and whether chain-of-thought can solve them,2022】上评估推理能力,在HumanEval【【7】,Evaluating large language models trained on code,2021】和MBPP【【2】,Program synthesis with large language models,2021】上评估编码能力。如表4所示,DeepSeekMath-Base 7B在其前身DeepSeek-Coder-Base-v1.5【【15】,Deepseek-coder: When the large language model meets programming – the rise of code intelligence,2024】的基础上,在MMLU和BBH上的性能有显著提升,表明数学训练对语言理解和推理有积极影响。此外,通过在持续训练中加入代码词元,DeepSeekMath-Base 7B有效地保持了DeepSeek-Coder-Base-v1.5在两个编码基准上的性能。总体而言,DeepSeekMath-Base 7B在三个推理和编码基准上显著优于通用模型Mistral 7B【【21】,Mistral 7b,2023】。
表4 | 在自然语言理解、推理和代码基准上的评估。DeepSeek-Coder-Base-v1.5†是学习率衰减之前的检查点,用于训练DeepSeekMath-Base。在MMLU和BBH上,我们使用少样本思维链提示。在HumanEval和MBPP上,我们分别在零样本和少样本设置下评估模型性能。
3. 监督微调
3.1. SFT数据策划
- 数据集构成:构建了一个数学指令微调数据集,涵盖了不同数学领域和不同复杂程度的中英文问题。这些问题与思维链(CoT)【【56】,Chain-of-thought prompting elicits reasoning in large language models,2022】、思路编程(PoT)【【8】,Program of thoughts prompting: Disentangling computation from reasoning for numerical reasoning tasks,2022;【13】,PAL: programaided language models,2023】以及工具集成推理格式【【14】,Tora: A toolintegrated reasoning agent for mathematical problem solving,2023】的解决方案配对。训练样本总数为77.6万。
- 英文数学数据集:为GSM8K和MATH问题标注了工具集成的解决方案,并采用了MathInstruct【【62】,Mammoth: Building math generalist models through hybrid instruction tuning,2023】的一个子集以及Lila-OOD【【30】,LILA: A unified benchmark for mathematical reasoning,2022】的训练集,其中问题通过CoT或PoT解决。英文数据集涵盖了代数、概率、数论、微积分和几何等多个数学领域。
- 中文数学数据集:收集了中国的K-12数学问题,涵盖了线性方程等76个子主题,并以CoT和工具集成推理两种格式标注了解决方案。
3.2. 训练和评估DeepSeekMath-Instruct 7B
- 训练过程:本节介绍了基于DeepSeekMath-Base进行数学指令微调的DeepSeekMath-Instruct 7B模型。训练样本被随机拼接,直到达到4K词元的最大上下文长度。模型以256的批处理大小和5e-5的恒定学习率训练了500步。
- 评估对象:在4个中英文定量推理基准上,评估了模型在有无工具使用情况下的数学性能。并将我们的模型与当时领先的模型进行了基准比较,包括:
- 闭源模型:GPT系列(GPT-4、GPT-4代码解释器)、Gemini Ultra和Pro、Inflection-2、Grok-1,以及中国公司发布的最新模型,如Baichuan-3和GLM-4。
- 开源模型:通用模型如DeepSeek-LLM-Chat 67B、Qwen 72B、SeaLLM-v2 7B和ChatGLM3 6B;以及在数学方面有增强的模型,如InternLM2-Math 20B、Math-Shepherd-Mistral 7B、WizardMath系列、MetaMath 70B、ToRA 34B和MAmmoTH 70B。
- 无工具使用评估结果:如表5所示,在不允许使用工具的评估设置下,DeepSeekMath-Instruct 7B展示了强大的逐步推理性能。特别是在竞赛级别的MATH数据集上,我们的模型以至少9个绝对百分点的优势超过了所有开源模型和大多数专有模型(如Inflection-2和Gemini Pro)。这对于那些体量大得多(如Qwen 72B)或通过专注于数学的强化学习进行特定增强(如WizardMath-v1.1 7B)的模型也同样适用。虽然DeepSeekMath-Instruct在MATH上与中国的专有模型GLM-4和Baichuan-3相媲美,但仍不及GPT-4和Gemini Ultra。
- 有工具使用评估结果:在允许模型结合自然语言推理和基于程序的工具使用来解决问题的评估设置下,DeepSeekMath-Instruct 7B在MATH上的准确率接近60%,超过了所有现有的开源模型。在其他基准上,我们的模型与之前最先进的、规模大10倍的DeepSeek-LLM-Chat 67B具有竞争力。
4. 强化学习
4.1. 组相对策略优化
- 强化学习的有效性:强化学习(RL)已被证明在监督微调(SFT)阶段之后能有效进一步提升大语言模型(LLM)的数学推理能力【【29】,Wizardmath: Empowering mathematical reasoning for large language models via reinforced evol-instruct,2023;【54】,Math-shepherd: Verify and reinforce llms step-by-step without human annotations,2023b】。本节介绍了我们高效且有效的RL算法——组相对策略优化(Group Relative Policy Optimization, GRPO)。
4.1.1. 从PPO到GRPO
-
PPO算法回顾:近端策略优化(PPO)【【42】,Proximal policy optimization algorithms,2017】是一种在LLM的RL微调阶段广泛使用的演员-评论家(actor-critic)RL算法【【34】,Training language models to follow instructions with human feedback,2022】。它通过最大化以下代理目标来优化LLM:
公式1 其中 $\pi_{\theta}$ 和 $\pi_{\text{old}}$ 分别是当前和旧的策略模型,$x, y$ 分别是从问题数据集和旧策略 $\pi_{\text{old}}$ 中采样的问题和输出。$\epsilon$ 是PPO中为稳定训练引入的与裁剪相关的超参数。$A_{t}$ 是优势(advantage),通过广义优势估计(GAE)【【41】,High-dimensional continuous control using generalized advantage estimation,2015】计算得出,基于奖励 {$r_{\ge t}$} 和一个学习到的价值函数 $V_{\phi}$。因此,在PPO中,需要与策略模型一同训练一个价值函数,并且为了减轻对奖励模型的过度优化,标准方法是在每个词元(token)的奖励中加入一个来自参考模型的逐词元KL惩罚项【【34】,Training language models to follow instructions with human feedback,2022】,即:
公式2 其中 $r_{\psi}$ 是奖励模型,$\pi_{\text{ref}}$ 是参考模型,通常是初始的SFT模型,$\beta$ 是KL惩罚项的系数。
-
GRPO算法提出:由于PPO中使用的价值函数通常是与策略模型规模相当的另一个模型,这带来了巨大的内存和计算负担。此外,在RL训练中,价值函数在计算优势时作为基线以减少方差。但在LLM场景下,通常只有最后一个词元被奖励模型赋予奖励分数,这可能使训练一个在每个词元上都准确的价值函数变得复杂。为了解决这个问题,如图4所示,我们提出了组相对策略优化(GRPO),它避免了PPO中对额外价值函数近似的需求,而是使用对同一问题采样的多个输出的平均奖励作为基线。更具体地,对于每个问题 $x$,GRPO从旧策略 $\pi_{\text{old}}$ 中采样一组输出 {$y_1, y_2, \cdots, y_K$},然后通过最大化以下目标来优化策略模型:
图4 | PPO与我们的GRPO的演示。GRPO放弃了价值模型,而是从组得分中估计基线,从而显著减少了训练资源。 公式3 其中 $\beta$ 和 $\gamma$ 是超参数,$\hat{A}_{t,k}$ 是仅基于组内输出的相对奖励计算出的优势,具体将在后续小节中详述。GRPO利用组相对方式计算优势,与奖励模型的比较性质非常吻合,因为奖励模型通常是在对同一问题的输出进行比较的数据集上训练的。还需注意,GRPO不是在奖励中添加KL惩罚项,而是通过直接将训练策略与参考策略之间的KL散度添加到损失中来进行正则化,避免了 $\hat{A}_{t,k}$ 计算的复杂化。
-
GRPO算法流程:
输入:初始策略模型 $\pi_{\theta}^{\text{init}}$;奖励模型 $r_{\psi}$;任务提示 D;超参数 $\beta, \gamma, K$
1: 策略模型 $\pi_{\theta} \leftarrow \pi_{\theta}^{\text{init}}$
2: for 迭代 = 1, . . . , I do
3: 参考模型 $\pi_{\text{ref}} \leftarrow \pi_{\theta}$
4: for 步骤 = 1, . . . , M do
5: 从 D 中采样一批 $D_b$
6: 更新旧策略模型 $\pi_{\text{old}} \leftarrow \pi_{\theta}$
7: 对每个问题 $x \in D_b$,采样 $K$ 个输出 {$y_k$}$_{k=1}^{K} \sim \pi_{\text{old}}(\cdot | x)$
8: 通过运行 $r_{\psi}$ 计算每个采样输出 $y_k$ 的奖励 {$r_k$}$_{k=1}^{K}$
9: 通过组相对优势估计计算 $y_k$ 的第 $t$ 个词元的 $\hat{A}_{t,k}$。
10: for GRPO 迭代 = 1, . . . , $N$ do
11: 通过最大化GRPO目标(公式21)更新策略模型 $\pi_{\theta}$
12: 通过使用回放机制的持续训练来更新 $r_{\psi}$。
输出:$\pi_{\theta}$ -
KL散度估计器:与公式(2)中使用的KL惩罚项不同,我们使用以下无偏估计器【【40】,Approximating kl divergence,2020】来估计KL散度:
公式4 这个估计器保证为正。
4.1.2. 基于结果监督的GRPO强化学习
- 优势计算:对于每个问题 $x$,从旧策略模型 $\pi_{\text{old}}$ 中采样一组输出 {$y_1, y_2, \cdots, y_K$}。然后使用一个奖励模型对这些输出进行评分,相应地得到 $K$ 个奖励 r = {$r_1, r_2, \cdots, r_K$}。随后,通过减去组平均值并除以组标准差来对这些奖励进行归一化。结果监督在每个输出 $y_k$ 的末尾提供归一化奖励,并将输出中所有词元的优势 $\hat{A}_{t,k}$ 设置为该归一化奖励,即 $\hat{A}_{t,k} = r'_k = \frac{r_k - \text{mean}(r)}{\text{std}(r)}$,然后通过最大化公式(3)中定义的目标来优化策略。
4.1.3. 基于过程监督的GRPO强化学习
- 方法动机与实现:结果监督仅在每个输出的末尾提供一个奖励,这对于复杂的数学任务可能不够充分和高效。遵循Wang等人【【54】,Math-shepherd: Verify and reinforce llms step-by-step without human annotations,2023b】的方法,我们还探索了过程监督,它在每个推理步骤的末尾提供奖励。具体来说,给定问题 $x$ 和 $K$ 个采样输出 {$y_1, y_2, \cdots, y_K$},一个过程奖励模型被用来对输出的每一步进行评分,产生相应的奖励:$R = \{\{r_{\text{step}}^{(1)_1}, \dots, r_{\text{step}}^{(T_1)_1}\}, \cdots, \{r_{\text{step}}^{(1)_K}, \dots, r_{\text{step}}^{(T_K)_K}\}\}$,其中 $T_{\text{step}}(j)$ 是第 $j$ 步的结束词元索引,$T_k$ 是第 $k$ 个输出的总步数。我们同样用平均值和标准差对这些奖励进行归一化,即 $R'_{\text{step}(j)_k} = \frac{r_{\text{step}(j)_k} - \text{mean}(R)}{\text{std}(R)}$。随后,过程监督将每个词元的优势计算为后续所有步骤的归一化奖励之和,即 $\hat{A}_{t,k} = \sum_{T_{\text{step}}(j) \ge t} R'_{\text{step}(j)_k}$,然后通过最大化公式(3)中定义的目标来优化策略。
4.1.4. 基于GRPO的迭代强化学习
- 方法动机与实现:随着强化学习训练过程的推进,旧的奖励模型可能不足以监督当前的策略模型。因此,我们也探索了使用GRPO的迭代RL。如算法1所示,在迭代GRPO中,我们根据策略模型的采样结果为奖励模型生成新的训练集,并使用包含10%历史数据的回放机制持续训练旧的奖励模型。然后,我们将参考模型设置为当前策略模型,并用新的奖励模型继续训练策略模型。
4.2. 训练和评估DeepSeekMath-RL
- 训练设置:我们基于DeepSeekMath-Instruct 7B进行RL。RL的训练数据是来自SFT数据中与GSM8K和MATH相关的思维链格式问题,共约14.4万个问题。我们排除了其他SFT问题,以研究RL对在RL阶段缺乏数据的基准的影响。我们遵循Wang等人【【54】,Math-shepherd: Verify and reinforce llms step-by-step without human annotations,2023b】的方法构建奖励模型的训练集。我们在DeepSeekMath-Base 7B的基础上以2e-5的学习率训练初始奖励模型。对于GRPO,策略模型的学习率设为1e-6,KL系数为0.04。对每个问题,我们采样64个输出。最大长度设为1024,训练批次大小为1024。策略模型在每个探索阶段后仅进行单次更新。
- 评估设置:我们遵循DeepSeekMath-Instruct 7B的评估方式来评估DeepSeekMath-RL 7B。对于DeepSeekMath-RL 7B,使用思维链推理的GSM8K和MATH可被视为领域内任务,所有其他基准可被视为领域外任务。
-
评估结果:表5展示了开源和闭源模型在有无工具辅助推理下,在中英文基准上的性能。我们发现:1) DeepSeekMath-RL 7B在使用思维链推理时,在GSM8K和MATH上分别达到了88.2%和51.7%的准确率。这一性能超过了所有7B到70B范围内的开源模型以及大多数闭源模型。2) 关键的是,DeepSeekMath-RL 7B是从DeepSeekMath-Instruct 7B开始,仅在GSM8K和MATH的思维链格式指令微调数据上进行训练。尽管其训练数据范围有限,它在所有评估指标上都优于DeepSeekMath-Instruct 7B,展示了强化学习的有效性。
表5 | 开源和闭源模型在有无工具辅助推理下,在中英文基准上的性能。灰色分数表示32个候选的多数投票结果;其他为Top1分数。DeepSeekMath-RL 7B击败了所有7B到70B的开源模型,以及大多数闭源模型。尽管DeepSeekMath-RL 7B仅在GSM8K和MATH的思维链格式指令微调数据上进一步训练,它在所有基准上都优于DeepSeekMath-Instruct 7B。
A3 背景知识/关键观察/设计原则
5. 讨论
本节分享了在预训练和强化学习实验中的发现。
5.1. 预训练中的经验教训
- 引言:本节分享预训练的经验。除非另有说明,将遵循2.2.1节中概述的训练设置。值得注意的是,本节中提到的DeepSeekMath语料库使用的是数据收集过程第二次迭代产生的890亿词元数据集。
5.1.1. 代码训练有益于数学推理
- 假说验证:一个流行但未经验证的假说认为代码训练能提升推理能力。我们试图为这一假说提供部分回应,特别是在数学领域:代码训练能提升模型在使用和不使用工具的情况下进行数学推理的能力。
-
实验设置:为了研究代码训练如何影响数学推理,我们试验了以下两阶段训练和单阶段训练设置:
- 两阶段训练
- 400B代码训练 → 150B数学训练:我们先用4000亿代码词元训练DeepSeekLLM 1.3B,然后用1500亿数学词元继续训练。
- 400B通用训练 → 150B数学训练:作为对照实验,我们也用通用词元(从DeepSeek-AI创建的大规模通用语料库中采样)替代第一阶段的代码词元,旨在研究代码词元相对于通用词元在提升数学推理方面的优势。
- 单阶段训练
- 150B数学训练:我们用1500亿数学词元训练DeepSeekLLM 1.3B。
- 400B代码与150B数学混合训练:在代码训练后进行数学训练会降低编码性能。我们研究了将代码词元与数学词元混合进行单阶段训练是否仍能提升数学推理,并缓解灾难性遗忘问题。
- 两阶段训练
-
实验结果:表6和表7展示了不同训练设置下的下游性能。
- 代码训练有益于程序辅助的数学推理:无论是在两阶段训练还是单阶段训练设置下,代码训练都有效。如表6所示,在两阶段训练设置下,仅代码训练就已显著提升了使用Python解决GSM8K和MATH问题的能力。第二阶段的数学训练带来了进一步的提升。有趣的是,在单阶段训练设置下,混合代码和数学词元有效地缓解了由两阶段训练引起的灾难性遗忘问题,并协同提升了编码(表7)和程序辅助的数学推理(表6)能力。
表6 | 不同训练设置下代码对数学推理影响的探究。我们使用DeepSeek-LLM 1.3B进行实验,并通过少样本思维链提示和少样本程序思维提示分别评估其在无工具和有工具使用下的数学推理性能。 表7 | 不同代码和数学训练设置对模型在语言理解、推理和编码方面性能影响的探究。我们使用DeepSeek-LLM 1.3B进行实验。在MMLU和BBH上使用少样本思维链提示评估模型。在HumanEval和MBPP上,分别进行零样本和少样本评估。 - 代码训练也提升了无工具使用的数学推理:在两阶段训练设置下,初始阶段的代码训练已带来适度提升。它还提高了后续数学训练的效率,最终达到了最佳性能。然而,将代码和数学词元结合进行单阶段训练,损害了无工具使用的数学推理。一个猜想是,由于规模有限,DeepSeek-LLM 1.3B缺乏同时充分吸收代码和数学数据的能力。
5.1.2. ArXiv论文在提升数学推理方面似乎无效
- 背景:ArXiv论文通常被用作数学预训练数据的一部分【【3】,Llemma: An open language model for mathematics,2023;【25】,Solving quantitative reasoning problems with language models,2022a;【37】,Generative language modeling for automated theorem proving,2020;【55】,Generative AI for math: Part I - mathpile: A billion-token-scale pretraining corpus for math,2023c】,但关于它们对数学推理影响的详细分析尚未广泛进行。
- 实验设计:根据我们的实验,ArXiv论文在提升数学推理方面似乎无效。我们使用不同规模的模型,包括DeepSeek-LLM 1.3B和DeepSeek-Coder-Base-v1.5 7B【【15】,Deepseek-coder: When the large language model meets programming – the rise of code intelligence,2024】,并使用了经过不同处理流程的ArXiv语料库:
- MathPile【【55】,Generative AI for math: Part I - mathpile: A billion-token-scale pretraining corpus for math,2023c】:一个89亿词元的语料库,通过清洗和过滤启发式规则开发,其中超过85%是科学ArXiv论文。
- ArXiv-RedPajama【【10】,Redpajama: an open dataset for training large language models,2023】:全部ArXiv LaTeX文件,移除了序言、注释、宏和参考文献,总计280亿词元。
-
实验结果:在我们的实验中,我们分别在每个ArXiv语料库上训练DeepSeek-LLM 1.3B 1500亿词元和DeepSeek-Coder-Base-v1.5 7B 400亿词元。结果表明,ArXiv论文在提升数学推理方面似乎无效。当仅在ArXiv语料库上训练时,两个模型在本研究采用的各种复杂度的数学基准上均未显示显著提升,甚至出现性能下降。这些基准包括定量推理数据集如GSM8K和MATH(表8),多项选择挑战如MMLU-STEM(表8),以及形式化数学如miniF2F(表9)。
表8 | 不同arXiv数据集上数学训练的效果。模型性能通过少样本思维链提示进行评估。
表9 | 不同arXiv语料库上数学训练的效果,基础模型为DeepSeekCoder-Base-v1.5 7B。我们评估了在Isabelle中的非正式到正式证明。 -
结论局限性:然而,这个结论有其局限性,应谨慎对待。我们尚未研究:
- ArXiv词元对本研究未包含的特定数学相关任务的影响,
💬 评论讨论
欢迎在这里分享您的想法和见解!