dj-admin
Published on 2025-03-01 / 4 Visits

DeepSeek-Math

DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

1.介绍

两个关键内容:

  1. 利用公开可用网络数据的数据选择管道,大规模数学预训练

创建了DeepSeekMath语料库:从Common Crawl (CC) 中提取的,使用基于 fastText 的分类器。

在初始迭代中,分类器使用来自 OpenWebMath 的实例作为正例,同时结合其他网页的多样化选择作为负例。随后,使用分类器从 CC 中挖掘额外的正例,这些正例通过人工标注进一步细化。然后使用此增强数据集更新分类器以提高其性能。

DeepSeekMath-Base 初始化于 DeepSeek-Coder-Base-v1.5 7B,从代码训练模型开始比从通用 LLM 开始是一个更好的选择。此外,数学训练也提高了模型在 MMLU 和 BBH 基准 上的能力,表明它不仅增强了模型的数学能力,还放大了其一般推理能力。

预训练后,使用链式思维、程序思维和工具集成推理数据对 DeepSeekMath-Base 进行数学指令微调。最终得到的模型 DeepSeekMath-Instruct 7B 击败了所有 7B 对比模型,并且与 70B 开源指令微调模型相当。

1. Chain-of-Thought

核心思想

  • Chain-of-Thought(思维链推理)是一种通过逐步推理的方式,显式地分解复杂问题为一系列中间步骤的方法。模型在回答问题时,不仅仅是直接给出一个答案,而是通过一系列中间推导过程逐步得出最终结果。

原理

  • 逐步推理:CoT 要求模型在回答问题时,展示出推理链条(reasoning chain),即从初始问题到最终答案的每个中间步骤。

  • 显式推理:模型的输出不仅仅是最终答案,而是包括推理的每个步骤,类似于人类在解决复杂问题时的思考过程。

示例

  • 问题:“如果一个篮子里有 3 个苹果,另一个篮子里有 5 个苹果,问一共有多少个苹果?”

  • CoT 推理过程:

    1. 第一个篮子里有 3 个苹果。

    2. 第二个篮子里有 5 个苹果。

    3. 将两个篮子的苹果数量相加:3 + 5 = 8。

    4. 答案:一共有 8 个苹果。

优点

  • 提高复杂问题的解决能力:通过逐步推理,模型能够更好地处理需要多步骤推理的任务。

  • 增强解释性:推理链条使得模型的输出更加透明和可解释。

局限性

  • 依赖于问题复杂度:对于简单问题,CoT 可能会显得冗长,且不必要。

  • 需要大量标注数据:训练 CoT 需要标注推理链条的监督数据,数据需求较大。


2. Program-of-Thought

核心思想

  • Program-of-Thought(思维程序)是一种将推理过程建模为计算机程序的思想。通过模拟程序执行的过程,模型能够以结构化的方式进行推理。

原理

  • 结构化推理:PoT 将推理过程建模为一个程序,模型通过逐步执行程序中的指令来完成推理。

  • 显式控制流:推理过程类似于程序的控制流(如顺序、循环、条件分支等),使得推理更加系统化和可控。

示例

  • 问题:“计算从 1 到 10 的所有偶数的和。

  • PoT 推理过程(伪代码):

sum = 0

for i in range(1, 11):

if i % 2 == 0:

sum += i

output sum

优点

  • 结构化推理:通过程序化的方式,模型能够更好地处理复杂的逻辑任务。

  • 可控性:程序化的推理过程使得模型的行为更加可预测和可调试。

局限性

  • 复杂性较高:编写程序化的推理过程需要额外的逻辑结构,可能不适合所有类型的任务。

  • 难以泛化:与 CoT 相比,PoT 更依赖于特定的程序结构,可能难以泛化到多种任务。


3. Tool-Integrated Reasoning

核心思想

  • Tool-Integrated Reasoning(工具集成推理)是一种通过与外部工具(如计算器、数据库、搜索引擎等)交互来增强模型推理能力的方法。模型的推理能力不仅依赖于自身的知识,还可以调用外部工具来获取更准确的信息或执行复杂的计算。

原理

  • 工具调用:模型在推理过程中可以动态调用外部工具,完成特定的任务(如查询信息、执行计算等)。

  • 人机协作:工具集成推理结合了模型的语言理解和推理能力,以及外部工具的计算和数据处理能力。

示例

  • 问题:“计算 2^10 的值。”

  • 推理过程:

    1. 模型识别到需要进行复杂计算。

    2. 调用外部计算器工具,执行 2^10 的计算。

    3. 获取结果:1024

    4. 输出答案:1024

优点

  • 增强计算能力:通过调用外部工具,模型能够执行复杂的计算和数据查询。

  • 提高准确性:外部工具提供了更准确的结果,减少了模型自身的误差。

局限性

  • 依赖外部工具:外部工具的可用性和性能会影响模型的推理能力。

  • 复杂性:工具集成推理需要设计和管理复杂的工具调用接口。

  1. 引入群体相对策略优化(GRPO),是近端策略优化(PPO)的变体,增强数学推理能力,同时优化PPO的内存使用。

群体相对策略优化 (GRPO),这是一种高效且有效的强化学习算法。GRPO 摒弃了价值函数模型,而是从群体得分中估计基线,与近端策略优化 (PPO) 相比,显著减少了训练资源。

作者还提供了一个统一的范例来理解不同的方法,如拒绝采样微调(RFT),直接偏好优化(DPO)、PPO和GRPO。基于这样一个统一的范式,作者发现所有这些方法都可以被概念化为直接或简化的RL技术。

评估和指标

英语和中文数学推理:在英语和中文基准上对模型进行了全面评估,涵盖了数学问题从小学到大学水平。英语基准包括 GSM8K(GSM8K是Grade School Math 8K的缩写,是一个包含8500道高质量、语言多样的小学数学文字题的数据集,由OpenAI发布。这些问题需要2到8个步骤来解决,主要涉及基本的算术运算(加、减、乘、除)),MATH(包含 12,500 道复杂数学竞赛题目,涵盖代数、几何、概率和数论等多个数学分支),SAT(美国高考),OCW 课程(麻省理工学院的OpenCourseWare在线教育资源平台,涵盖近40个系所的课程,以及一些跨学科的课程,包括课程大纲、讲义、作业、实验、在线教科书、教师心得、课堂视频和实验示范视频等),MMLU-STEM(MMLU-STEM 是从 MMLU(Massive Multitask Language Understanding,大规模多任务语言理解)基准测试中提取的专注于 STEM(科学、技术、工程、数学)领域的子集)。中文基准包括 MGSM-zh(MGSM-zh 是 GSM8K 中提取 250 个问题的MGSM数据集的中文版本),CMATH(CMATH 是一个中文小学数学应用题数据集,包含 1700 道小学水平的数学应用题及其详细注释。CMATH 的题目来源于实际的中国小学教材和考试,经过人工标注和验证),高考数学完形填空和高考数学问答。评估模型在不使用工具的情况下生成独立文本解决方案的能力,以及使用 Python 解决问题的能力。

正式数学:使用(Jiang 等人,2022)中的非正式到正式定理证明任务,在 miniF2F(MiniF2F 是一个跨系统的正式数学基准数据集,它包含奥林匹克级别的数学问题陈述,覆盖了高中和本科数学课程的内容)上评估 DeepSeekMath-Base,选择 Isabelle(Isabelle 是一个通用的定理证明环境,支持多种逻辑系统,主要用于形式化数学和计算机科学中的定理证明)作为证明助手。DeepSeekMath-Base 展示了强大的少样本自动形式化性能。

自然语言理解、推理和代码:

2.数学预训练

数据收集和清洗

一个迭代过程,演示了如何从 Common Crawl 系统地收集大规模数学语料库,从种子语料库(例如,一个小型但高质量的数学相关数据集)开始。值得注意的是,这种方法也适用于其他领域,例如编码。

首先,选择 高质量的数学网页文本集OpenWebMath(Paster 等人,2023))作为初始种子语料库。利用这个语料库,训练了一个 fastText 模型(Joulin 等人,2016)来检索更多类似 OpenWebMath 的数学网页。

为了减小原始 Common Crawl 的大小,使用了基于 URL 的去重和近似去重技术,最终得到 400 亿个 HTML 网页。然后,使用 fastText 模型从去重后的 Common Crawl 中搜寻数学网页。

为了过滤掉低质量的数学内容,根据 fastText 模型预测的得分对收集到的网页进行排名,只保留排名靠前的网页。通过对前 400 亿、800 亿、1200 亿和 1600 亿个token进行预训练实验,评估了保留的数据量。在第一次迭代中,选择保留前 400 亿个token。

在数据收集的第一次迭代之后,大量的数学网页仍然没有被收集到,主要是因为fastText模型是在一组缺乏足够多样性的正例上训练的。因此,作者识别额外的数学网络资源来丰富种子语料库,以便优化fastText模型。具体地说,首先将整个Common Crawl组织到不相交的域中;域被定义为共享相同基本URL的网页。对于每个域,计算在第一次迭代中收集的网页的百分比。已经收集了超过10%的网页的领域被分类为数学相关的(例如,mathoverflow.net)。随后,作者手动地注释与这些识别的域中的数学内容相关联的URL。链接到这些URL但尚未收集的网页将被添加到种子语料库。

为了避免基准污染,过滤掉包含来自英语数学基准(如GSM8K和MATH)和中文基准(如CMATH和AGIEval(用于评估大型基础模型在人类认知和问题解决相关任务中的通用能力,这些内容源自面向普通人类考生的官方、公开、高标准的入学和资格考试))的问题或答案的网页。过滤标准如下:任何包含与评估基准中的任何子字符串完全匹配的10grams字符串的文本段都将从我们的数学训练语料库中删除。对于长度小于10grams但至少有3grams的基准文本,我们采用精确匹配来过滤掉污染的网页。

质量验证

作者运行预训练实验来将DeepSeekMath语料库与最近发布的数学训练语料库进行比较

MathPile:从教科书、维基百科、ProofWiki、CommonCrawl、StackExchange和arXiv聚合的多源语料库(8.9B token),其中大部分(超过85%)来自arXiv;

OpenWebMath:根据数学内容过滤的CommonCrawl数据,总计136亿个token

Proof-Pile-2:一个数学语料库,由OpenWebMath、AlgebraicStack(10.3B数学代码token)和arXiv papers(28.0B token)组成。当在Proof-Pile-2上进行实验时,作者遵循Arzibayev等人(2023)使用的arXiv:Web:Code比例为2:4:1。

将数学训练应用于一个具有 13 亿参数的通用预训练语言模型,该模型与 DeepSeek LLM(DeepSeek-AI,2024))共享相同的框架,记为 DeepSeekLLM 1.3B。分别在每个数学语料库上训练一个模型,共计 1500 亿个词元。所有实验均使用高效轻量级的 HAI-LLM(High-flyer,2023)训练框架进行。遵循 DeepSeek LLM 的训练实践,使用 AdamW 优化器(Loshchilov 和 Hutter,2017),其中 𝛽1 = 0.9,𝛽2 = 0.95,权重衰减 = 0.1,以及多步学习率调度,其中学习率在 2000 个预热步骤后达到峰值,在训练过程的 80% 后下降到峰值的 31.6%,并在训练过程的 90% 后进一步下降到峰值的 10.0%。将学习率的最大值设置为 5.3e-4,并使用 400 万个词元的批次大小,上下文长度为 4000。

评估结果证明DeepSeekMath 语料库质量高,涵盖多语言数学内容,并且规模最大。

高质量:使用少量样本链式思维提示评估了 8 个数学基准上的下游性能 Wei 等人 (2022)。如表 1 所示,在 DeepSeekMath 语料库上训练的模型具有明显的性能优势。

形式化数学:形式化证明自动化有利于确保数学证明的准确性和可靠性,提高效率,近年来受到越来越多的关注。DeepSeekMath-Base 7B 在非形式化到形式化证明任务上的表现(Jiang 等人,2022),该任务是根据非形式化陈述、陈述的形式化对应物和非形式化证明生成形式化证明。

自然语言理解、推理和代码:评估了模型在自然语言理解方面的性能,使用 MMLU(Hendrycks 等人,2020)),推理方面的性能,使用 BBH(Suzgun 等人,2022)),以及编码能力方面的性能,使用 HumanEval(Chen 等人,2021)和 MBPP(Austin 等人,2021)。如表 4 所示,DeepSeekMath-Base 7B 在 MMLU 和 BBH 上的性能显著优于其前身 DeepSeek-Coder-Base-v1.5(Guo 等人,2024)),说明数学训练对语言理解和推理的积极影响。此外,通过在持续训练中包含代码标记,DeepSeekMath-Base 7B 有效地保持了 DeepSeek-Coder-Base-v1.5 在两个编码基准上的性能。总的来说,DeepSeekMath-Base 7B 在三个推理和编码基准上显著优于通用模型 Mistral 7B(Jiang 等人,2023)。

3.监督微调

作者构建了一个数学指令调整数据集,该数据集涵盖了来自不同数学领域和不同复杂度水平的英语和汉语问题:问题与思路链(CoT)的解决方案配对、程序链(PoT)和工具集成推理格式。训练实例的总数为776 K。

英语数学数据集:作者用工具集成解决方案注释GSM 8 K和MATH问题,并采用MathInstruct的子集,其中问题通过CoT或PoT解决。作者的英语数据集涵盖了数学的各个领域,例如,代数概率数论微积分和几何

中文数学数据集:作者收集了中国K-12数学问题,涵盖76个子主题,例如线性方程,并以CoT和工具集成推理格式注释解决方案。

4.强化学习

组相关策略优化(GRPO)

强化学习(RL)已被证明在监督微调(SFT)阶段之后在进一步提高LLM的数学推理能力方面是有效的。在这一部分中,作者介绍了高效和有效的RL算法——组相对策略优化(GRPO)。

组相对策略优化(GRPO),它消除了PPO中额外的价值函数近似的需要,而是使用响应同一问题产生的多个采样输出的平均奖励作为基线。

PPO算法:

1. 输入和策略选择:

输入状态 q 进入策略模型(Policy Model),根据当前策略选择一个动作 o 。

2. 环境交互:

动作 o 被执行,与环境交互后得到新的状态 o 和奖励 r 。

3. 价值和奖励估计:

新的状态 o 同时输入到价值模型(Value Model)和奖励模型(Reward Model)。

价值模型估计状态的价值 v 。

奖励模型估计奖励 r 。

4. 优势函数计算:

使用广义优势估计(GAE)计算优势函数 A ,它是奖励 r 和价值估计 v 的差异。

5. 策略更新:

策略模型使用优势函数 A 来更新策略,目标是最大化预期的奖励。

使用 KL 散度来限制策略更新的幅度,确保更新不会过于激进。

GRPO算法:

1. 输入和策略选择:

输入状态 q 进入策略模型(Policy Model),根据当前策略选择多个动作 o_1, o_2, ..., o_G 。

2. 环境交互:

每个动作 o_i 被执行,与环境交互后得到相应的奖励 r_1, r_2, ..., r_G 。

3. 奖励估计:

每个动作的结果输入到奖励模型(Reward Model),估计每个动作的奖励 r_1, r_2, ..., r_G 。

4. 组计算:

将估计的奖励 r_1, r_2, ..., r_G 进行组计算(Group Computation),计算每个动作的相对优势 A_1, A_2, ..., A_G 。

5. 策略更新:

策略模型使用计算得到的相对优势来更新策略,目标是优化组内动作的表现。

同样使用 KL 散度来限制策略更新的幅度。

例子:

假设一个班级有多个学生,教师希望通过调整教学方法来提高学生的平均成绩。教师可以使用两种不同的策略优化方法:PPO 和 GRPO。

PPO:

策略更新:教师观察每个学生的成绩变化,并根据成绩调整教学策略。但为了避免教学方法变化过大(比如突然从传统的讲授法切换到完全的项目式学习),教师会限制每次调整的幅度。

策略调整:教师会根据学生的成绩(奖励信号)来评估教学策略的效果。如果某个学生的成绩提高了,说明当前的教学策略有效;如果成绩下降,则需要调整策略。

裁剪机制:教师不会因为一个学生的成绩突然提高或下降就完全改变教学方法。相反,教师会设定一个“裁剪范围”,比如每次调整教学策略时,只允许在当前策略的基础上进行小幅调整(比如调整教学时间或教学内容的顺序)。

GRPO:

分组策略:教师将学生分成若干小组,每个小组内的学生共享一个基准成绩(基线)。教师通过比较组内学生的成绩来调整教学策略。

相对优势函数:教师不仅关注学生的绝对成绩,还关注组内学生的相对表现。如果一个学生的成绩比组内其他学生高很多,说明当前策略对这个学生有效;反之,则需要调整策略。

错误抑制:如果某个小组的整体表现较差,教师会重点分析错误原因,并调整教学策略,避免错误传播。

5.讨论

预训练的教训

代码训练有利于数学推理

一个流行但未经证实的假设表明,代码训练可以提高推理能力。作者试图对此提供部分回应,特别是在数学领域:代码训练提高了模型在使用和不使用工具的情况下进行数学推理的能力。

为了研究代码训练如何影响数学推理,作者尝试了以下两阶段训练和一阶段训练设置:

  • 两阶段训练

400 B token的代码训练→ 150 B token的数学训练:作者先为400 B代码token训练DeepSeekLLM 1.3B,然后再使用150 B数学token训练;

400 B token的一般训练→ 150 Btoken的数学训练:作为对照实验,作者还尝试使用通用数据,(从DeepSeek-AI创建的大规模通用语料库中采样)而不是第一阶段训练中的代码token,试图研究代码标记在改进数学推理方面优于一般标记的优点。

  • 一阶段训练

150 B数学token的数学训练:我们为150 B数学token训练DeepSeek-LLM 1. 3B;

在400 B代码token和150 B数学token的混合上训练:代码训练之后的数学训练会降低编码性能。作者调查了代码token与数学token混合进行一阶段训练时是否仍能改善数学推理并缓解灾难性遗忘的问题。

最终结果表明:

代码训练有利于程序辅助数学推理,无论是在两阶段训练和一阶段训练设置。

在两阶段训练设置下,单独的代码训练已经显著增强了使用Python解决GSM8K和MATH问题的能力。第二阶段的数学训练会带来进一步的提高。有趣的是,在一阶段训练设置下,混合代码令牌和数学令牌有效地缓解了两阶段训练产生的灾难性遗忘问题,并且还协同编码和程序辅助数学推理。

并且,代码训练还可以在不使用工具的情况下提高数学推理能力。

在两阶段训练设置下,代码训练的初始阶段已经产生了适度的增强。它还提高了后续数学训练的效率,最终产生最佳表现。然而,将代码令牌和数学令牌组合用于一阶段训练会在不使用工具的情况下损害数学推理。一种猜测是,由于规模有限,DeepSeek-LLM 1.3B缺乏同时完全吸收代码和数学数据的能力。

ArXiv论文似乎对改善数学推理无效

根据作者的实验,arXiv的论文似乎对提高数学推理能力无效,这或许与直觉相反。作者用不同大小的模型进行实验,包括DeepSeek-LLM 1.3B和DeepSeek-Coder-Base-v1. 57 B,使用经过各种处理管道的arXiv语料库:

MathPile:使用清洗和过滤启发式规则开发的8. 9B令牌语料库,其中85%以上是科学arXiv论文;

ArXiv-RedPajama:删除了所有arXiv LaTeX文件,其中删除了注释、宏和参考书目,总计280亿个令牌。

在作者的实验中,作者分别在每个arXiv语料库上为150 B令牌训练DeepSeek-LLM 1.3B和为40 B令牌训练DeepSeekCoder-Base-v1.5 7 B。看来arXiv论文在提高数学推理方面是无效的。当在仅使用arXiv的语料库上训练时,这两个模型在本研究中采用的不同复杂度的各种数学基准上都没有显着的改善甚至恶化。

然而,这一结论有其局限性,应该持保留态度。作者还没有研究过:

arXiv令牌对本研究中未包括的特定数学相关任务的影响,例如将正式陈述或证明转换为非正式版本的定理的非正式化;

arXiv令牌与其他类型的数据结合时的效果;

arXiv论文的好处是否会在更大的模型规模上体现出来。

强化学习的见解

走向统一范式

作者提供了一个统一的范式来分析不同的训练方法,如SFT,RFT,DPO,PPO,GRPO,并进一步进行实验,以探索统一范式的因素。通常,相对于训练方法的参数λ的梯度可以写为:

存在三个关键组成部分:1)数据源D,其确定训练数据; 2)奖励函数𝑓,其是训练奖励信号的源; 3)算法A:其将训练数据和奖励信号处理为梯度系数,梯度系数确定数据的惩罚或强化的大小。

作者基于这样一个统一的范式分析了几种有代表性的方法:

  • 监督微调(SFT):SFT根据人类选择的SFT数据对预训练模型进行微调。

  • 拒绝采样微调(RFT):RFT根据SFT问题,对从SFT模型采样的过滤输出进一步微调SFT模型。RFT根据其答案的正确性过滤输出。

  • 直接偏好优化(DPO):DPO通过使用成对DPO损失对从SFT模型采样的增强输出进行微调来进一步细化SFT模型。

  • 在线拒绝采样微调(Online RFT):与RFT不同,在线RFT使用SFT模型启动策略模型,并通过从实时策略模型中采样的增强输出进行微调。

  • PPO/GRPO:PPO/GRPO使用SFT模型对策略模型进行建模,并使用从实时策略模型中采样的输出对其进行增强。

观察数据源

作者将数据源分为两类,在线采样和离线采样。在线采样表示训练数据来自实时训练策略模型的探索结果,而离线采样表示训练数据来自初始SFT模型的采样结果。RFT和DPO遵循离线风格,而在线RFT和GRPO遵循在线风格。

作者发现在线RFT在两个基准测试中明显优于RFT。具体而言,在线RFT在训练早期与RFT相当,但在后期获得绝对优势,显示了在线训练的优越性。这是直观的,因为在初始阶段,actor策略模型和SFT模型表现出非常相似,采样数据只显示出微小的差异。然而,在后期阶段,从actor策略模型采样的数据将表现出更显著的差异,实时数据采样将提供更大的优势。

梯度系数的观测算法 

将奖励信号处理为梯度系数,以更新模型参数。在作者的实验中,作者将奖励函数分为“规则”和“模型”。规则是指根据答案的正确性来判断响应的质量,模型是指训练一个奖励模型来对每个响应进行评分。奖励模型的训练数据基于规则判断。

GRPO和在线RFT之间的关键区别:GRPO基于奖励模型提供的奖励值唯一地调整其梯度系数。这允许根据反应的不同幅度对反应进行不同的强化和惩罚。相比之下,在线RFT缺乏这一功能;它不会惩罚不正确的回答,并以相同的强度统一强化所有正确答案的回答。

为什么RL有作用

发现表明RL通过使输出分布更加稳健来增强模型的整体性能,换句话说,这种改进似乎归因于提升了来自TopK的正确响应,而不是基本能力的增强。类似地,有研究指出了SFT模型内推理任务中的不一致问题,表明SFT模型的推理性能可以通过一系列偏好一致策略来提高。

如何实现更有效的RL?

存在三个关键组件:数据源、算法和奖励函数。

数据源 数据源是所有训练方法的原始资料。在RL的上下文中,作者特别将数据源称为未标记问题,其输出是从策略模型中采样的。在本文中,只使用来自指令调优阶段的问题和一个朴素核采样来采样输出。作者认为这是RL流水线仅能提高Maj@K性能的一个潜在原因。将来,作者将结合高级采样(解码)策略,如基于树搜索方法的策略,探索我们的分布外问题提示的RL管道。而且,有效的推理技术决定了政策模式的探索效率,也发挥着极其重要的作用。

算法 算法对数据进行处理,并将信号反馈给梯度系数,以更新模型参数。在某种程度上,所有方法现在都完全信任奖励函数的信号来增加或减少某个令牌的条件概率。然而,不可能确保奖励信号总是可靠的,特别是在极其复杂的任务中。例如,即使是PRM800K数据集,已经由训练有素的注释者仔细注释,仍然包含大约20%的错误注释。为此,作者将探索对嘈杂奖励信号具有鲁棒性的强化学习算法。作者认为这种从弱到强的对齐方法将给学习算法带来根本性的变化。

奖励函数 奖励函数是训练信号的来源。在RL中,奖励函数通常是神经奖励模型。作者认为奖励模型的研究有三个重要的方向:1)如何提高奖励模型的泛化能力。奖励模型必须有效地推广到处理分布外问题和高级解码输出,否则,强化学习可能仅仅稳定了LLM的分布,而不能提高其基本能力; 2)如何反映奖励模型的不确定性。这种不确定性可能潜在地充当弱奖励模型和弱到强学习算法之间的连接桥梁; 3)如何有效地构建高质量的过程奖励模型,该模型可以为推理过程提供细粒度的训练信号。


Comment