DeepSeekMath:突破开源语言模型在数学推理中的极限

发布于:2025-07-18 ⋅ 阅读:(19) ⋅ 点赞:(0)

温馨提示:
本篇文章已同步至"AI专题精讲" DeepSeekMath:突破开源语言模型在数学推理中的极限

摘要

数学推理由于其复杂且结构化的特性,对语言模型构成了重大挑战。本文介绍了 DeepSeekMath 7B,该模型在 DeepSeek-Coder-Base-v1.5 7B 的基础上继续进行了预训练,使用了来自 Common Crawl 的 120B 数学相关 token,同时包含自然语言和代码数据。DeepSeekMath 7B 在无需依赖外部工具包和投票技术的情况下,在竞赛级 MATH 基准上取得了 51.7% 的优异成绩,接近 Gemini-Ultra 和 GPT-4 的表现。DeepSeekMath 7B 在 64 个样本上的自洽性得分为 60.9%。DeepSeekMath 的数学推理能力归因于两个关键因素:其一,我们通过精心设计的数据筛选流程,充分挖掘了公开网页数据的巨大潜力;其二,我们提出了一种称为 Group Relative Policy Optimization(GRPO)的 Proximal Policy Optimization(PPO)变体,该方法在提升数学推理能力的同时优化了 PPO 的内存使用。
在这里插入图片描述

1. 引言

大型语言模型(LLM)彻底改变了人工智能中的数学推理方式,推动了定量推理基准(Hendrycks et al., 2021)和几何推理基准(Trinh et al., 2024)的重大进展。此外,这些模型在协助人类解决复杂数学问题方面也发挥了关键作用(Tao, 2023)。然而,最先进的模型如 GPT-4(OpenAI, 2023)和 Gemini-Ultra(Anil et al., 2023)尚未公开,而当前可用的开源模型在性能上仍远远落后。

在本研究中,我们提出了 DeepSeekMath,这是一个特定领域的语言模型,在数学能力上显著超过了开源模型,并在学术基准上接近 GPT-4 的性能。为实现这一目标,我们构建了 DeepSeekMath Corpus,这是一个大规模高质量预训练语料库,包含 120B 个数学相关 token。该数据集通过 fastText 分类器(Joulin et al., 2016)从 Common Crawl(CC)中提取。在初始迭代中,分类器使用来自 OpenWebMath(Paster et al., 2023)的样本作为正例,辅以多样化的网页作为负例进行训练。随后,我们使用该分类器从 CC 中挖掘更多正样本,并通过人工标注进一步精炼这些数据。分类器随后用增强后的数据集更新,以提高其性能。评估结果表明,这一大规模语料库具有较高质量,因为我们的基础模型 DeepSeekMath-Base 7B 在 GSM8K(Cobbe et al., 2021)上达到了 64.2%,在竞赛级 MATH 数据集(Hendrycks et al., 2021)上达到了 36.2%,优于 Minerva 540B(Lewkowycz et al., 2022a)。此外,DeepSeekMath Corpus 是多语言的,因此我们也观察到其在中文数学基准(Wei et al., 2023;Zhong et al., 2023)上的性能提升。我们认为,我们在数学数据处理方面的经验为研究社区提供了一个起点,未来还有大量提升空间。

DeepSeekMath-Base 以 DeepSeek-Coder-Base-v1.5 7B(Guo et al., 2024)为初始化模型,因为我们注意到,相较于通用 LLM,从代码训练模型出发是更优的选择。此外,我们观察到数学训练也提升了模型在 MMLU(Hendrycks et al., 2020)和 BBH 基准(Suzgun et al., 2022)上的能力,表明它不仅增强了模型的数学能力,也放大了其通用推理能力。

在预训练之后,我们对 DeepSeekMath-Base 进行了数学指令微调,使用了 chain-of-thought(Wei et al., 2022)、program-of-thought(Chen et al., 2022;Gao et al., 2023)和 tool-integrated reasoning(Gou et al., 2023)数据。最终模型 DeepSeekMath-Instruct 7B 超越了所有同类 7B 模型,并可与 70B 的开源指令微调模型相媲美。

此外,我们提出了 Group Relative Policy Optimization(GRPO),这是一种基于 Proximal Policy Optimization(PPO)(Schulman et al., 2017)的变体强化学习算法。GRPO 省去了 critic 模型,而是从 group scores 中估计 baseline,从而显著降低了训练资源的消耗。仅使用部分英文指令微调数据,GRPO 在强化学习阶段就使强基线模型 DeepSeekMath-Instruct 获得了显著提升,包括在同域任务(如 GSM8K: 82.9% → 88.2%,MATH: 46.8% → 51.7%)和异域数学任务(如 CMATH: 84.6% → 88.8%)上的表现。

我们还提供了一个统一范式来理解不同方法,例如 Rejection Sampling Fine-Tuning(RFT)(Yuan et al., 2023a)、Direct Preference Optimization(DPO)(Rafailov et al., 2023)、PPO 和 GRPO。在此统一范式下,我们发现这些方法都可被概念化为直接或简化的强化学习技术。我们还进行了大量实验,如 online 与 offline 训练、结果监督与过程监督、单轮强化学习与迭代强化学习等,以深入探究该范式的关键组成要素。最后,我们解释了为何我们的强化学习方法能够提升指令微调模型的性能,并进一步总结了在此统一范式下实现更高效强化学习的潜在方向。

1.1 贡献

我们的贡献包括可扩展的数学预训练,以及对强化学习的探索与分析。

可扩展的数学预训练

  • 我们的研究提供了有力证据,表明公开的 Common Crawl 数据中蕴含着对数学任务有价值的信息。通过精心设计的数据筛选流程,我们成功构建了 DeepSeekMath Corpus,这是一个包含 120B token 的高质量网页数学数据集,规模约为 Minerva 使用的数学网页数据的 7 倍,是最近发布的 OpenWebMath(Paster et al., 2023)的 9 倍。
  • 我们预训练的基础模型 DeepSeekMath-Base 7B 在性能上可与 Minerva 540B 相媲美,说明参数数量并不是数学推理能力的唯一关键因素。一个规模较小但在高质量数据上训练的模型同样可以达到较强的性能。
  • 我们分享了数学训练实验中的发现。代码训练在数学训练前能够提升模型解决数学问题的能力,无论是否使用工具。这为一个长期存在的问题提供了部分答案:代码训练是否能提升推理能力?我们认为,至少在数学推理方面,答案是肯定的。
  • 虽然在许多数学相关论文中,使用 arXiv 论文进行训练已非常普遍,但在本研究采用的所有数学基准上,这并未带来显著的性能提升。

强化学习的探索与分析

  • 我们提出了 Group Relative Policy Optimization(GRPO),这是一种高效而有效的强化学习算法。GRPO 省略了 critic 模型,而是通过 group scores 估计 baseline,相较于 Proximal Policy Optimization(PPO)显著降低了训练资源消耗。
  • 我们展示了 GRPO 仅使用指令微调数据即可显著提升模型 DeepSeekMath-Instruct 的性能。此外,我们还观察到,在强化学习过程中,模型在异域任务上的表现也有所提升。
  • 我们提出了一个统一范式来理解不同方法,如 RFT、DPO、PPO 和 GRPO。我们还进行了大量实验,例如 online 与 offline 训练、结果监督与过程监督、单轮强化学习与多轮强化学习等,以深入研究这一范式的关键要素。
  • 基于我们的统一范式,我们探索了强化学习之所以有效的原因,并总结了若干方向,以实现对 LLM 更高效的强化学习。

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)。我们评估模型在不使用工具的情况下生成自包含文本解答的能力,以及使用 Python 解决问题的能力。

在英文基准上,DeepSeekMath-Base 可与闭源模型 Minerva 540B(Lewkowycz et al., 2022a)相媲美,并显著优于所有开源基础模型(例如 Mistral 7B(Jiang et al., 2023)和 Llemma-34B(Azerbayev et al., 2023)),无论是否进行过数学预训练。值得注意的是,DeepSeekMath-Base 在中文基准上表现更优,这可能是因为我们没有像之前的工作(Azerbayev et al., 2023;Lewkowycz et al., 2022a)那样仅收集英文数学预训练数据,而是同时纳入了高质量的非英文数据。通过数学指令微调和强化学习,最终模型 DeepSeekMath-Instruct 和 DeepSeekMath-RL 表现强劲,首次在开源社区中在竞赛级别的 MATH 数据集上达到了超过 50% 的准确率。

• 形式化数学:我们使用来自(Jiang et al., 2022)的非正式到正式定理证明任务,在 miniF2F(Zheng et al., 2021)上评估 DeepSeekMath-Base,并选用 Isabelle(Wenzel et al., 2008)作为证明助手。DeepSeekMath-Base 展现了强大的 few-shot 自动形式化能力。

• 自然语言理解、推理与代码:为了全面评估模型在通用理解、推理和编程方面的能力,我们在 Massive Multitask Language Understanding(MMLU)(Hendrycks et al., 2020)基准上对 DeepSeekMath-Base 进行了评估,该基准涵盖了 57 个涉及多个领域的多项选择题任务;BIG-Bench Hard(BBH)(Suzgun et al., 2022),包含 23 个主要依赖多步推理的挑战任务;HumanEval(Chen et al., 2021)和 MBPP(Austin et al., 2021)是广泛用于评估代码语言模型的基准。数学预训练同时提升了语言理解与推理表现。

2. 数学预训练

2.1. 数据收集与去污染

本节将概述如何从 Common Crawl 构建 DeepSeekMath Corpus 的过程。如图 2 所示,我们展示了一个迭代式的数据管道,说明如何系统地从 Common Crawl 中收集大规模数学语料库,其起点为一个种子语料库(例如一小部分高质量的数学相关数据集)。值得注意的是,该方法同样适用于其他领域,例如代码领域。

我们首先选择 OpenWebMath(Paster et al., 2023)作为初始种子语料库,该语料库是一个高质量数学网页文本的集合。我们使用该语料训练一个 fastText 模型(Joulin et al., 2016),以召回更多类似 OpenWebMath 的数学网页。具体来说,我们从种子语料中随机选择 500,000 个数据点作为正样本,从 Common Crawl 中选取另外 500,000 个网页作为负样本。我们使用一个开源库¹进行训练,训练配置为向量维度 256、学习率 0.1、最大 word n-gram 长度为 3、词最小出现次数为 3、训练轮数为 3。

为缩小原始 Common Crawl 的规模,我们采用基于 URL 的去重和近似去重技术,得到约 400 亿个 HTML 网页。然后,我们利用 fastText 模型从去重后的 Common Crawl 中召回数学网页。为过滤低质量数学内容,我们根据 fastText 模型预测的得分对收集到的网页进行排序,并仅保留得分最高的部分。通过对 top 40B、80B、120B 和 160B tokens 的预训练实验来评估所保留数据的质量和规模。在第一轮中,我们选择保留 top 40B tokens。

在这里插入图片描述

在第一轮数据收集中,仍有大量数学网页未被召回,主要原因在于 fastText 模型所使用的正样本集缺乏足够的多样性。因此,我们进一步识别其他数学相关的网页来源,以丰富种子语料库,从而优化 fastText 模型。具体而言,我们首先将整个 Common Crawl 按照不同的域进行划分;一个域被定义为具有相同基础 URL 的网页集合。对于每个域,我们计算第一轮中被召回网页所占的比例。若某一域中超过 10% 的网页被召回,我们将该域标记为数学相关(例如 mathoverflow.net)。

随后,我们对这些被标记为数学相关的域中的 URL(例如 mathoverflow.net/questions)进行人工标注,以识别其中包含数学内容的链接。与这些 URL 相关但未被召回的网页将被加入到种子语料库中。此方法使我们能够获取更多正样本,从而训练出更优的 fastText 模型,在随后的迭代中召回更多数学数据。经过四轮的数据收集后,我们共获得了 3550 万个数学网页,总计 120B tokens。在第四轮中我们观察到,约 98% 的数据在第三轮中已被召回,因此我们决定停止进一步收集。

为了避免基准污染,我们遵循 Guo et al. (2024) 的方法,从语料中过滤掉包含英文数学基准(如 GSM8K(Cobbe et al., 2021)和 MATH(Hendrycks et al., 2021))和中文基准(如 CMATH(Wei et al., 2023)和 AGIEval(Zhong et al., 2023))中的问题或答案的网页。过滤标准如下:若某段文本中包含与评估基准中的任意子字符串完全匹配的 10-gram 字符串,则该文本将从训练语料中移除。对于长度不足 10-gram、但至少包含 3-gram 的基准文本,我们也采用精确匹配的方式过滤掉被污染的网页。

2.2. 验证 DeepSeekMath 语料库的质量

我们运行预训练实验,以比较 DeepSeekMath 语料库与近期发布的数学训练语料库的效果:

• MathPile(Wang et al., 2023c):一个多来源语料库(8.9B tokens),聚合自教科书、Wikipedia、ProofWiki、CommonCrawl、StackExchange 和 arXiv,其中超过 85% 的数据来自 arXiv;

• OpenWebMath(Paster et al., 2023):从 CommonCrawl 中筛选出的数学内容,总量为 13.6B tokens;

• Proof-Pile-2(Azerbayev et al., 2023):一个数学语料库,由 OpenWebMath、AlgebraicStack(10.3B tokens 的数学代码)和 arXiv 论文(28.0B tokens)组成。在使用 Proof-Pile-2 进行实验时,我们遵循 Azerbayev et al.(2023)的做法,采用 arXiv:Web:Code 的比例为 2:4:1。

2.2.1. 训练设置

我们将数学训练应用于一个具有 1.3B 参数的通用预训练语言模型,其框架与 DeepSeek LLMs(DeepSeek-AI, 2024)一致,记作 DeepSeekLLM 1.3B。我们在每个数学语料库上分别训练一个模型,训练总量为 150B tokens。所有实验均使用高效且轻量的 HAI-LLM(High-flyer, 2023)训练框架进行。按照 DeepSeek LLMs 的训练实践,我们使用 AdamW 优化器(Loshchilov and Hutter, 2017),设置参数为 Font metrics not found for font: .,weight_decay = 0.1,并使用多阶段学习率调度策略:在 2,000 个 warmup 步骤后学习率达到峰值,在训练过程的 80% 时衰减至峰值的 31.6%,在 90% 时进一步衰减至峰值的 10.0%。我们将最大学习率设为 5.3e-4,batch size 为 4M tokens,context length 为 4K。
在这里插入图片描述

2.2.2. 评估结果

DeepSeekMath 语料库具有高质量、多语言覆盖,并且规模最大。

高质量:我们使用 few-shot chain-of-thought prompting(Wei et al., 2022)在 8 个数学基准测试上评估下游性能。如表 1 所示,基于 DeepSeekMath 语料库训练的模型在性能上有明显优势。图 3 显示,使用 DeepSeekMath 语料库训练的模型在 50B tokens(即 Proof-Pile-2 完整训练一个 epoch 的量)时的表现优于 Proof-Pile-2,这表明 DeepSeekMath 语料库的平均质量更高。
在这里插入图片描述

多语言:DeepSeekMath 语料库包含多种语言的数据,其中英语和中文是出现频率最高的两种语言。如表 1 所示,在 DeepSeekMath 语料库上进行训练,可以提升模型在英文和中文数学推理任务上的表现。相比之下,现有的数学语料库以英语为主,在中文数学推理上的提升效果有限,甚至可能产生负面影响。

大规模:DeepSeekMath 语料库的规模是现有数学语料库的数倍。如图 3 所示,DeepSeek-LLM 1.3B 在使用 DeepSeekMath 语料库进行训练时,其学习曲线更陡峭,性能提升更加持久。相比之下,基线语料库的规模小得多,在训练过程中已经被重复使用多轮,模型性能很快就达到瓶颈。

温馨提示:
阅读全文请访问"AI深语解构" DeepSeekMath:突破开源语言模型在数学推理中的极限


网站公告

今日签到

点亮在社区的每一天
去签到