DeepSeek-R1:通过强化学习激励大语言模型的推理能力 技术报告中文翻译
本文介绍了DeepSeek-AI研发的两代推理模型DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero通过纯强化学习(RL)训练,无需监督微调(SFT)即可展现卓越推理能力,但存在可读性问题。DeepSeek-R1在此基础上引入多阶段训练和冷启动数据,性能媲美OpenAI-o1-1217。研究团队开源了模型及6个蒸馏版本(1.5B-70B),其中14B模型超越
文章目录
-
- DeepSeek-R1:通过强化学习激励大语言模型的推理能力
- 摘要
- 1. 引言
- 2. 方法
- [ J_{GRPO}(\theta) = \mathbb{E} \left[ q \sim P(Q), {o_i}*{i=1}^{G} \sim \pi*{\theta_{old}}(O|q) \right] \frac{1}{G} \sum_{i=1}^{G} \left( \min \left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i, \operatorname{clip} \left( \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1-\varepsilon, 1+\varepsilon \right) A_i \right)
- [ D_{KL}(\pi_\theta || \pi_{ref})
以下为标题、摘要和第 1 节 Introduction 的中文翻译。括号内引用保留原文不翻译。
DeepSeek-R1:通过强化学习激励大语言模型的推理能力
DeepSeek-AI
research@deepseek.com
摘要
我们介绍第一代推理模型 DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个在没有以监督微调(SFT)作为预备步骤的情况下,通过大规模强化学习(RL)训练得到的模型,展现出了卓越的推理能力。通过 RL,DeepSeek-R1-Zero 自然涌现出许多强大且有趣的推理行为。然而,它也面临可读性差、语言混杂等挑战。为了解决这些问题并进一步提升推理性能,我们引入了 DeepSeek-R1,该模型在 RL 之前加入了多阶段训练和冷启动数据。DeepSeek-R1 在推理任务上的表现可与 OpenAI-o1-1217 相媲美。为支持研究社区,我们开源了 DeepSeek-R1-Zero、DeepSeek-R1,以及六个从 DeepSeek-R1 蒸馏而来的稠密模型(1.5B、7B、8B、14B、32B、70B),这些模型基于 Qwen 和 Llama 构建。
图 1|DeepSeek-R1 的基准测试表现。
1. 引言
近年来,大语言模型(LLMs)一直在快速迭代和演进(Anthropic, 2024; Google, 2024; OpenAI, 2024a),并逐步缩小与通用人工智能(AGI)之间的差距。
最近,后训练已成为完整训练流程中的一个重要组成部分。已有研究表明,相较于预训练,后训练在计算资源需求相对较低的情况下,能够提升推理任务的准确率、与社会价值观对齐,并适应用户偏好。在推理能力方面,OpenAI 的 o1(OpenAI, 2024b)系列模型率先通过增加思维链(Chain-of-Thought)推理过程的长度,引入了推理时扩展(inference-time scaling)。这种方法在数学、编程和科学推理等多种推理任务中取得了显著提升。然而,如何实现有效的测试时扩展,仍然是研究社区中的一个开放问题。已有若干工作探索了不同方法,包括基于过程的奖励模型(Lightman et al., 2023; Uesato et al., 2022; Wang et al., 2023)、强化学习(Kumar et al., 2024),以及蒙特卡洛树搜索和束搜索等搜索算法(Feng et al., 2024; Trinh et al., 2024; Xin et al., 2024)。然而,这些方法都尚未取得可与 OpenAI 的 o1 系列模型相媲美的通用推理性能。
在本文中,我们迈出了使用纯强化学习(RL)提升语言模型推理能力的第一步。我们的目标是探索 LLMs 在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们在纯 RL 过程中的自我演化。具体而言,我们使用 DeepSeek-V3-Base 作为基础模型,并采用 GRPO(Shao et al., 2024)作为 RL 框架,以提升模型在推理方面的表现。在训练过程中,DeepSeek-R1-Zero 自然涌现出了许多强大而有趣的推理行为。经过数千步 RL 训练后,DeepSeek-R1-Zero 在推理基准上表现出卓越性能。例如,它在 AIME 2024 上的 pass@1 分数从 15.6% 提升至 71.0%;通过多数投票后,分数进一步提升至 86.7%,达到了 OpenAI-o1-0912 的性能水平。
然而,DeepSeek-R1-Zero 面临可读性差、语言混杂等挑战。为了解决这些问题并进一步提升推理性能,我们引入了 DeepSeek-R1,它采用少量冷启动数据和多阶段训练流程。具体而言,我们首先收集数千条冷启动数据,用于微调 DeepSeek-V3-Base 模型。随后,我们像 DeepSeek-R1-Zero 一样执行面向推理的 RL。当 RL 过程接近收敛时,我们基于 RL 检查点通过拒绝采样生成新的 SFT 数据,并结合来自 DeepSeek-V3 的监督数据,这些数据覆盖写作、事实问答和自我认知等领域,然后重新训练 DeepSeek-V3-Base 模型。在使用新数据完成微调后,该检查点会经历额外的 RL 过程,并将来自所有场景的提示纳入考虑。经过这些步骤后,我们获得了一个被称为 DeepSeek-R1 的检查点,其性能与 OpenAI-o1-1217 相当。
我们进一步探索了从 DeepSeek-R1 向更小的稠密模型进行蒸馏。以 Qwen2.5-32B(Qwen, 2024b)作为基础模型时,直接从 DeepSeek-R1 进行蒸馏的效果优于在该模型上应用 RL。这表明,由更大基础模型发现的推理模式对于提升推理能力至关重要。我们开源了蒸馏后的 Qwen 和 Llama(Dubey et al., 2024)系列模型。值得注意的是,我们蒸馏得到的 14B 模型大幅优于当前最先进的开源模型 QwQ-32B-Preview(Qwen, 2024a),而蒸馏后的 32B 和 70B 模型则在稠密模型的推理基准上创下了新的纪录。
以下为 2. Approach 部分的中文翻译。括号内引用保留原文不翻译;公式保留原形式,并在公式下方紧跟“小附录”解释变量含义与公式作用。
2. 方法
2.1. 概述
以往工作在很大程度上依赖大量监督数据来提升模型性能。在本研究中,我们证明,即使不使用监督微调(SFT)作为冷启动,也可以通过大规模强化学习(RL)显著提升推理能力。此外,加入少量冷启动数据后,性能还可以进一步增强。在接下来的章节中,我们将介绍:(1)DeepSeek-R1-Zero,它在没有任何 SFT 数据的情况下,直接将 RL 应用于基础模型;(2)DeepSeek-R1,它从一个经过数千条长思维链(CoT)样例微调的检查点开始应用 RL;(3)将 DeepSeek-R1 的推理能力蒸馏到小型稠密模型中。
2.2. DeepSeek-R1-Zero:在基础模型上进行强化学习
强化学习已经在推理任务中展现出显著效果,这一点也得到了我们先前工作的证明(Shao et al., 2024; Wang et al., 2023)。然而,这些工作在很大程度上依赖监督数据,而监督数据的收集非常耗时。在本节中,我们探索 LLMs 在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们如何通过纯强化学习过程实现自我演化。我们首先简要介绍我们的 RL 算法,随后展示一些令人振奋的结果,并希望这些内容能为社区提供有价值的启发。
2.2.1. 强化学习算法
组相对策略优化
为了节省 RL 的训练成本,我们采用组相对策略优化(GRPO)(Shao et al., 2024)。该方法舍弃了通常与策略模型规模相同的 critic 模型,而是从组内分数中估计基线。具体而言,对于每个问题 (q),GRPO 会从旧策略 (\pi_{\theta_{old}}) 中采样一组输出 ({o_1, o_2, \cdots, o_G}),然后通过最大化以下目标来优化策略模型 (\pi_\theta):
[
J_{GRPO}(\theta) =
\mathbb{E}
\left[
q \sim P(Q),
{o_i}{i=1}^{G} \sim \pi{\theta_{old}}(O|q)
\right]
\frac{1}{G}
\sum_{i=1}^{G}
\left(
\min
\left(
\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i,
\operatorname{clip}
\left(
\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)},
1-\varepsilon,
1+\varepsilon
\right)
A_i
\right)
\beta D_{KL}(\pi_\theta || \pi_{ref})
\right),
\tag{1}
]
小附录:公式(1)在做什么
这个公式是 GRPO 的优化目标。它的作用是:让新策略模型 (\pi_\theta) 学会更倾向于生成奖励更高的回答,同时避免新模型相对旧模型变化过大,并通过 KL 惩罚约束模型不要偏离参考模型太远。
其中:
- (J_{GRPO}(\theta)):需要最大化的训练目标;值越大,表示当前策略越符合奖励优化方向。
- (\theta):当前正在训练的模型参数。
- (q):输入问题。
- (P(Q)):问题集合的分布。
- (o_i):针对问题 (q) 采样得到的第 (i) 个输出。
- (G):每个问题采样的输出数量,即组大小。
- (\pi_{\theta_{old}}):旧策略模型,也就是采样输出时使用的模型。
- (\pi_\theta):当前正在优化的新策略模型。
- (\pi_\theta(o_i|q)):当前模型在问题 (q) 下生成输出 (o_i) 的概率。
- (\pi_{\theta_{old}}(o_i|q)):旧模型在问题 (q) 下生成输出 (o_i) 的概率。
- (\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}):新旧策略概率比,用来衡量新模型相对旧模型对某个输出的偏好变化。
- (A_i):第 (i) 个输出的优势值,表示这个输出相对于同组其他输出有多好。
- (\operatorname{clip}(\cdot, 1-\varepsilon, 1+\varepsilon)):裁剪函数,限制新旧策略概率比的变化范围,防止训练更新过猛。
- (\varepsilon):裁剪范围的超参数。
- (\beta):KL 惩罚项的权重超参数。
- (D_{KL}(\pi_\theta || \pi_{ref})):当前策略与参考策略之间的 KL 散度,用于约束模型不要偏离参考模型太远。
- (\pi_{ref}):参考模型,通常用于稳定训练。
[
D_{KL}(\pi_\theta || \pi_{ref})
\frac{\pi_{ref}(o_i|q)}{\pi_\theta(o_i|q)}
\log
\frac{\pi_{ref}(o_i|q)}{\pi_\theta(o_i|q)}
1,
\tag{2}
]
小附录:公式(2)在做什么
这个公式给出了文中使用的 KL 散度形式,用来衡量当前策略模型 (\pi_\theta) 与参考模型 (\pi_{ref}) 之间的差异。它的作用是作为惩罚项加入公式(1),防止模型在强化学习过程中为了追求奖励而过度偏离原有语言模型分布。
其中:
- (D_{KL}(\pi_\theta || \pi_{ref})):当前策略与参考策略之间的差异度量。
- (\pi_\theta(o_i|q)):当前模型生成输出 (o_i) 的概率。
- (\pi_{ref}(o_i|q)):参考模型生成输出 (o_i) 的概率。
- (\frac{\pi_{ref}(o_i|q)}{\pi_\theta(o_i|q)}):参考模型与当前模型对同一输出的概率比。
- (\log):自然对数。
- 整体而言,这一项越大,说明当前模型与参考模型差异越大,在公式(1)中会被扣分。
其中 (\varepsilon) 和 (\beta) 是超参数,(A_i) 是优势值,它使用每个组内输出对应的一组奖励 ({r_1, r_2, \ldots, r_G}) 计算得到:
[
A_i =
\frac{
r_i - \operatorname{mean}({r_1, r_2, \cdots, r_G})
}{
\operatorname{std}({r_1, r_2, \cdots, r_G})
}.
\tag{3}
]
小附录:公式(3)在做什么
这个公式用于计算第 (i) 个输出的优势值 (A_i)。它不是直接使用绝对奖励,而是把某个回答的奖励与同一组回答的平均奖励进行比较,并除以组内奖励的标准差。这样可以得到一个标准化后的相对优势。
其中:
- (A_i):第 (i) 个输出的优势值。
- (r_i):第 (i) 个输出得到的奖励。
- ({r_1, r_2, \cdots, r_G}):同一个问题对应的 (G) 个输出各自得到的奖励。
- (\operatorname{mean}(\cdot)):求平均值。
- (\operatorname{std}(\cdot)):求标准差。
- 分子 (r_i - \operatorname{mean}(\cdot)):表示该输出比组内平均水平好多少。
- 分母 (\operatorname{std}(\cdot)):用于标准化,使不同问题、不同奖励尺度下的优势值更可比较。
- 整体作用:告诉模型“这个回答在同一组候选回答中相对好还是相对差”,从而指导策略更新。
2.2.2. 奖励建模
奖励是训练信号的来源,它决定了 RL 的优化方向。为了训练 DeepSeek-R1-Zero,我们采用一种基于规则的奖励系统,该系统主要由两类奖励组成:
准确性奖励: 准确性奖励模型评估回答是否正确。例如,在具有确定性结果的数学问题中,模型需要以指定格式提供最终答案,例如放在方框中,从而能够基于规则可靠地验证答案是否正确。类似地,对于 LeetCode 问题,可以使用编译器基于预定义测试用例生成反馈。
格式奖励: 除了准确性奖励模型之外,我们还使用格式奖励模型,要求模型将其思考过程放在 <think> 和 </think> 标签之间。
在开发 DeepSeek-R1-Zero 时,我们没有使用结果型或过程型神经奖励模型,因为我们发现,在大规模强化学习过程中,神经奖励模型可能会遭遇奖励黑客问题;此外,重新训练奖励模型需要额外训练资源,并会使整个训练流程更加复杂。
2.2.3. 训练模板
为了训练 DeepSeek-R1-Zero,我们首先设计了一个简单直接的模板,用于引导基础模型遵循我们指定的指令。如表 1 所示,该模板要求 DeepSeek-R1-Zero 先生成推理过程,然后给出最终答案。我们有意将约束限制在这种结构格式上,避免任何内容层面的偏置,例如强制要求反思式推理,或鼓励某种特定的问题求解策略,以确保我们能够准确观察模型在 RL 过程中的自然演进。
表 1|DeepSeek-R1-Zero 的模板。训练期间,prompt 会被替换为具体的推理问题。
一段 User 与 Assistant 之间的对话。User 提出一个问题,Assistant 解决该问题。Assistant 首先在脑海中思考推理过程,然后向 User 提供答案。推理过程和答案分别被包含在 <think> </think> 和 <answer> </answer> 标签中,即:
<think> reasoning process here </think>
<answer> answer here </answer>.
User: prompt.
Assistant:
2.2.4. DeepSeek-R1-Zero 的性能、自我演化过程与“顿悟时刻”
DeepSeek-R1-Zero 的性能
图 2 展示了 DeepSeek-R1-Zero 在整个 RL 训练过程中于 AIME 2024 基准上的性能轨迹。如图所示,随着 RL 训练推进,DeepSeek-R1-Zero 的性能持续而稳定地提升。值得注意的是,AIME 2024 上的平均 pass@1 分数显著增加,从初始的 15.6% 跃升至令人印象深刻的 71.0%,达到了可与 OpenAI-o1-0912 相媲美的性能水平。这一显著提升突出了我们的 RL 算法在随时间优化模型性能方面的有效性。
表 2 对 DeepSeek-R1-Zero 与 OpenAI 的 o1-0912 模型在多种推理相关基准上的表现进行了比较分析。结果显示,RL 使 DeepSeek-R1-Zero 能够在不需要任何监督微调数据的情况下获得强大的推理能力。这是一个值得关注的成就,因为它凸显了模型仅通过 RL 就能有效学习和泛化的能力。此外,DeepSeek-R1-Zero 的性能还可以通过多数投票进一步增强。例如,在 AIME 基准上使用多数投票时,DeepSeek-R1-Zero 的性能从 71.0% 提升至 86.7%,从而超过 OpenAI-o1-0912 的表现。DeepSeek-R1-Zero 无论是否使用多数投票,都能达到如此有竞争力的性能,这凸显了其强大的基础能力,以及其在推理任务中进一步发展的潜力。
DeepSeek-R1-Zero 的自我演化过程
DeepSeek-R1-Zero 的自我演化过程,是强化学习如何驱动模型自主提升推理能力的一个引人入胜的展示。通过直接从基础模型开始进行 RL,我们可以在不受监督微调阶段影响的情况下,密切观察模型的发展过程。这种方法清晰地展示了模型如何随时间演化,尤其是在处理复杂推理任务能力方面的演进。
如图 3 所示,DeepSeek-R1-Zero 的思考时间在整个训练过程中持续增加。这种提升不是外部调整的结果,而是模型内部自然发展出来的能力。DeepSeek-R1-Zero 自然获得了通过利用更长测试时计算来解决越来越复杂推理任务的能力。这种计算表现为生成从数百到数千个推理 token,使模型能够更深入地探索和完善其思维过程。
这种自我演化最显著的方面之一,是随着测试时计算的增加,复杂行为开始涌现。例如反思行为——模型会重新回顾并重新评估先前步骤——以及探索替代问题求解方法的行为,都会自发出现。这些行为并不是显式编程得到的,而是模型与强化学习环境交互的结果。这种自发的发展显著增强了 DeepSeek-R1-Zero 的推理能力,使其能够以更高效率和准确性处理更具挑战性的任务。
DeepSeek-R1-Zero 的“顿悟时刻”
在 DeepSeek-R1-Zero 的训练过程中观察到的一个特别有趣的现象,是“顿悟时刻”的出现。如表 3 所示,这一时刻出现在模型的一个中间版本中。在这一阶段,DeepSeek-R1-Zero 学会通过重新评估其初始方法,为一个问题分配更多思考时间。这一行为不仅证明了模型不断增长的推理能力,也是强化学习如何带来意外且复杂结果的迷人例子。
这一时刻不仅是模型的“顿悟时刻”,也是观察其行为的研究人员的“顿悟时刻”。它凸显了强化学习的力量与美感:我们并不是明确教模型如何解决一个问题,而只是向它提供正确的激励,它便能够自主发展出高级的问题求解策略。“顿悟时刻”有力地提醒我们,RL 具有释放人工系统中新层次智能的潜力,并为未来更加自主和自适应的模型铺平道路。
DeepSeek-R1-Zero 的缺点
尽管 DeepSeek-R1-Zero 展现出强大的推理能力,并自主发展出了意想不到且强大的推理行为,但它也面临若干问题。例如,DeepSeek-R1-Zero 在可读性差和语言混杂等方面存在挑战。为了使推理过程更具可读性,并能与开放社区共享,我们探索了 DeepSeek-R1,这是一种使用具有人类友好性的冷启动数据进行 RL 的方法。
2.3. DeepSeek-R1:使用冷启动的强化学习
受到 DeepSeek-R1-Zero 良好结果的启发,自然产生了两个问题:(1)通过加入少量高质量数据作为冷启动,是否可以进一步提升推理性能或加速收敛?(2)我们如何训练一个用户友好的模型,使其不仅能生成清晰连贯的思维链(CoT),还具备强大的通用能力?为回答这些问题,我们设计了一个训练 DeepSeek-R1 的流程。该流程包含四个阶段,概述如下。
2.3.1. 冷启动
与 DeepSeek-R1-Zero 不同,为了避免直接从基础模型开始进行 RL 训练时早期不稳定的冷启动阶段,对于 DeepSeek-R1,我们构建并收集了少量长 CoT 数据,用于微调模型,并将其作为初始 RL actor。为了收集这类数据,我们探索了几种方法:使用长 CoT 作为示例进行 few-shot prompting;直接提示模型生成带有反思和验证的详细答案;收集 DeepSeek-R1-Zero 以可读格式输出的结果;以及通过人工标注者进行后处理来优化结果。
在这项工作中,我们收集了数千条冷启动数据,用于微调 DeepSeek-V3-Base,并将其作为 RL 的起点。与 DeepSeek-R1-Zero 相比,冷启动数据的优势包括:
可读性: DeepSeek-R1-Zero 的一个关键局限在于,其内容通常不适合阅读。回答可能会混合多种语言,或者缺少用于为用户突出显示答案的 markdown 格式。相比之下,在为 DeepSeek-R1 创建冷启动数据时,我们设计了一种可读模式,该模式在每个回答末尾包含总结,并过滤掉不适合阅读的回答。在这里,我们将输出格式定义为:
|special_token|<reasoning_process>|special_token|<summary>
其中,reasoning process 是针对查询的 CoT,而 summary 用于总结推理结果。
潜力: 通过使用人类先验仔细设计冷启动数据的模式,我们观察到其性能优于 DeepSeek-R1-Zero。我们认为,迭代式训练是训练推理模型的一种更好方式。
2.3.2. 面向推理的强化学习
在使用冷启动数据微调 DeepSeek-V3-Base 后,我们应用了与 DeepSeek-R1-Zero 中相同的大规模强化学习训练过程。这一阶段专注于增强模型的推理能力,尤其是在编程、数学、科学和逻辑推理等推理密集型任务中,这些任务通常包含定义明确且具有清晰解答的问题。在训练过程中,我们观察到 CoT 经常出现语言混杂,尤其是在 RL 提示涉及多种语言时。为缓解语言混杂问题,我们在 RL 训练中引入了语言一致性奖励,该奖励按 CoT 中目标语言词语所占比例计算。尽管消融实验显示,这种对齐会导致模型性能略有下降,但该奖励符合人类偏好,使内容更易阅读。最后,我们将推理任务的准确性奖励与语言一致性奖励直接相加,形成最终奖励。随后,我们在微调后的模型上应用 RL 训练,直到模型在推理任务上达到收敛。
2.3.3. 拒绝采样与监督微调
当面向推理的 RL 收敛后,我们利用所得检查点收集 SFT(Supervised Fine-Tuning)数据,用于下一轮训练。不同于最初主要关注推理的冷启动数据,这一阶段会纳入其他领域的数据,以提升模型在写作、角色扮演以及其他通用任务中的能力。具体而言,我们按如下方式生成数据并微调模型。
推理数据
我们整理推理提示,并通过对上述 RL 训练检查点执行拒绝采样来生成推理轨迹。在前一阶段中,我们只包含那些可以使用基于规则的奖励进行评估的数据。然而,在这一阶段,我们通过加入额外数据来扩展数据集,其中一些数据使用生成式奖励模型进行评估,即将真实答案和模型预测输入 DeepSeek-V3 进行判断。此外,由于模型输出有时混乱且难以阅读,我们过滤掉了混合语言、长段落和代码块形式的思维链。对于每个提示,我们采样多个回答,并只保留正确的回答。总计而言,我们收集了约 600k 条与推理相关的训练样本。
非推理数据
对于非推理数据,例如写作、事实问答、自我认知和翻译,我们采用 DeepSeek-V3 的流程,并复用 DeepSeek-V3 的部分 SFT 数据集。对于某些非推理任务,我们通过提示调用 DeepSeek-V3,在回答问题前生成一个潜在的思维链。然而,对于较简单的查询,例如“hello”,我们不会在回答中提供 CoT。最终,我们共收集了约 200k 条与推理无关的训练样本。
我们使用上述整理得到的约 800k 条样本数据,对 DeepSeek-V3-Base 进行了两个 epoch 的微调。
2.3.4. 面向所有场景的强化学习
为了进一步使模型与人类偏好对齐,我们实施了第二个强化学习阶段,旨在提升模型的有用性和无害性,同时继续优化其推理能力。具体而言,我们使用奖励信号和多样化提示分布的组合来训练模型。对于推理数据,我们遵循 DeepSeek-R1-Zero 中概述的方法,该方法使用基于规则的奖励,在数学、代码和逻辑推理领域引导学习过程。对于通用数据,我们借助奖励模型来捕捉复杂且细致场景中的人类偏好。我们基于 DeepSeek-V3 流程,并采用类似的偏好对和训练提示分布。对于有用性,我们只关注最终总结,确保评估重点放在回答对用户的实用性和相关性上,同时尽量减少对底层推理过程的干扰。对于无害性,我们评估模型的整个回答,包括推理过程和总结,以识别并缓解生成过程中可能出现的任何潜在风险、偏见或有害内容。最终,奖励信号与多样化数据分布的结合,使我们能够训练出一个既擅长推理,又优先考虑有用性和无害性的模型。
2.4. 蒸馏:赋予小模型推理能力
为了让更高效的小型模型具备类似 DeepSeek-R1 的推理能力,我们使用由 DeepSeek-R1 整理得到的 800k 条样本,直接对 Qwen(Qwen, 2024b)和 Llama(AI@Meta, 2024)等开源模型进行微调,具体见 §2.3.3。我们的发现表明,这种直接的蒸馏方法显著增强了小模型的推理能力。我们在这里使用的基础模型包括 Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B 和 Llama-3.3-70B-Instruct。我们选择 Llama-3.3,是因为它的推理能力略强于 Llama-3.1。
对于蒸馏模型,我们只应用 SFT,而没有加入 RL 阶段,尽管引入 RL 可能会大幅提升模型性能。我们在这里的主要目标是展示蒸馏技术的有效性,而将 RL 阶段的探索留给更广泛的研究社区。
以下为 3. Experiment 部分的中文翻译。括号内引用保留原文不翻译;公式保留原形式,并在公式下方紧跟“小附录”解释变量与公式作用。
3. 实验
基准测试
我们在 MMLU(Hendrycks et al., 2020)、MMLU-Redux(Gema et al., 2024)、MMLU-Pro(Wang et al., 2024)、C-Eval(Huang et al., 2023)和 CMMLU(Li et al., 2023)、IFEval(Zhou et al., 2023)、FRAMES(Krishna et al., 2024)、GPQA Diamond(Rein et al., 2023)、SimpleQA(OpenAI, 2024c)、C-SimpleQA(He et al., 2024)、SWE-Bench Verified(OpenAI, 2024d)、Aider¹、LiveCodeBench(Jain et al., 2024)(2024-08 – 2025-01)、Codeforces²、中国全国高中数学奥林匹克竞赛(CNMO 2024)³,以及 American Invitational Mathematics Examination 2024(AIME 2024)(MAA, 2024)上评估模型。
除了标准基准测试之外,我们还使用 LLMs 作为裁判,在开放式生成任务上评估我们的模型。具体而言,我们遵循 AlpacaEval 2.0(Dubois et al., 2024)和 Arena-Hard(Li et al., 2024)的原始配置,它们使用 GPT-4-Turbo-1106 作为裁判来进行成对比较。在这里,我们只将最终总结输入评估,以避免长度偏差。对于蒸馏模型,我们报告其在 AIME 2024、MATH-500、GPQA Diamond、Codeforces 和 LiveCodeBench 上的代表性结果。
评估提示
按照 DeepSeek-V3 中的设置,MMLU、DROP、GPQA Diamond 和 SimpleQA 等标准基准使用 simple-evals 框架中的提示进行评估。对于 MMLU-Redux,我们在零样本设置下采用 Zero-Eval 提示格式(Lin, 2024)。对于 MMLU-Pro、C-Eval 和 CLUE-WSC,由于其原始提示是 few-shot 的,我们将提示稍作修改为零样本设置。few-shot 中的 CoT 可能会损害 DeepSeek-R1 的表现。其他数据集则遵循其创建者提供的原始评估协议和默认提示。
对于代码和数学基准,HumanEval-Mul 数据集覆盖八种主流编程语言:Python、Java、C++、C#、JavaScript、TypeScript、PHP 和 Bash。模型在 LiveCodeBench 上的表现使用 CoT 格式进行评估,数据收集时间为 2024 年 8 月至 2025 年 1 月。Codeforces 数据集使用来自 10 场 Div.2 比赛的问题,并结合专家编写的测试用例进行评估,随后计算预期 rating 和参赛者百分位。SWE-Bench verified 结果通过 agentless 框架(Xia et al., 2024)获得。AIDER 相关基准使用 “diff” 格式进行衡量。对于每个基准,DeepSeek-R1 的输出最大限制为 32,768 个 token。
基线模型
我们针对多个强基线进行了全面评估,包括 DeepSeek-V3、Claude-Sonnet-3.5-1022、GPT-4o-0513、OpenAI-o1-mini 和 OpenAI-o1-1217。由于在中国大陆访问 OpenAI-o1-1217 API 较为困难,我们基于官方报告来呈现其性能。对于蒸馏模型,我们还与开源模型 QwQ-32B-Preview(Qwen, 2024a)进行比较。
评估设置
我们将模型的最大生成长度设置为 32,768 个 token。我们发现,使用贪心解码来评估长输出推理模型,会导致更高的重复率,并在不同检查点之间产生显著波动。因此,我们默认采用 pass@(k) 评估(Chen et al., 2021),并在非零温度下报告 pass@1。具体而言,我们使用采样温度 0.6 和 top-§ 值 0.95,为每个问题生成 (k) 个回答;根据测试集大小,(k) 通常介于 4 到 64 之间。随后,Pass@1 计算如下:
[
\text{pass@1} =
\frac{1}{k}
\sum_{i=1}^{k}
p_i
]
小附录:公式在做什么
这个公式用于计算模型在某个基准上的 pass@1 表现。这里的 pass@1 不是只生成一次答案来判断对错,而是在每个问题上采样 (k) 个回答,然后统计这些回答的平均正确率。这样做可以降低单次生成带来的偶然性,使长输出推理模型的性能估计更稳定。
其中:
- (\text{pass@1}):最终报告的 pass@1 分数,可以理解为“单次采样回答正确的平均概率”。
- (k):每个问题采样生成的回答数量。文中通常设置在 4 到 64 之间,取决于测试集大小。
- (i):回答编号,从第 1 个回答到第 (k) 个回答。
- (p_i):第 (i) 个回答的正确性。如果第 (i) 个回答正确,通常可理解为 (p_i = 1);如果错误,则为 (p_i = 0)。
- (\sum_{i=1}^{k} p_i):把同一个问题上采样得到的 (k) 个回答的正确性加总。
- (\frac{1}{k}\sum_{i=1}^{k}p_i):对这些回答的正确性取平均,得到该问题或评估集合上的平均正确率估计。
- 整体作用:用多次采样的平均正确率来估计模型的 pass@1 表现,比单次贪心解码更可靠。
其中,(p_i) 表示第 (i) 个回答的正确性。该方法能够提供更可靠的性能估计。对于 AIME 2024,我们还报告使用 64 个样本得到的一致性(多数投票)结果(Wang et al., 2022),记为 cons@64。
¹ https://aider.chat
² https://codeforces.com
³ https://www.cms.org.cn/Home/comp/comp/cid/12.html
3.1. DeepSeek-R1 评估
表 4|DeepSeek-R1 与其他代表性模型之间的比较。
| 基准(指标) | Claude-3.5-Sonnet-1022 | GPT-4o-0513 | DeepSeek V3 | OpenAI o1-mini | OpenAI o1-1217 | DeepSeek R1 |
|---|---|---|---|---|---|---|
| 架构 | - | - | MoE | - | - | MoE |
| 激活参数量 | - | - | 37B | - | - | 37B |
| 总参数量 | - | - | 671B | - | - | 671B |
| 英文 | ||||||
| MMLU(Pass@1) | 88.3 | 87.2 | 88.5 | 85.2 | 91.8 | 90.8 |
| MMLU-Redux(EM) | 88.9 | 88.0 | 89.1 | 86.7 | - | 92.9 |
| MMLU-Pro(EM) | 78.0 | 72.6 | 75.9 | 80.3 | - | 84.0 |
| DROP(3-shot F1) | 88.3 | 83.7 | 91.6 | 83.9 | 90.2 | 92.2 |
| IF-Eval(Prompt Strict) | 86.5 | 84.3 | 86.1 | 84.8 | - | 83.3 |
| GPQA Diamond(Pass@1) | 65.0 | 49.9 | 59.1 | 60.0 | 75.7 | 71.5 |
| SimpleQA(Correct) | 28.4 | 38.2 | 24.9 | 7.0 | 47.0 | 30.1 |
| FRAMES(Acc.) | 72.5 | 80.5 | 73.3 | 76.9 | - | 82.5 |
| AlpacaEval2.0(LC-winrate) | 52.0 | 51.1 | 70.0 | 57.8 | - | 87.6 |
| ArenaHard(GPT-4-1106) | 85.2 | 80.4 | 85.5 | 92.0 | - | 92.3 |
| 代码 | ||||||
| LiveCodeBench(Pass@1-COT) | 38.9 | 32.9 | 36.2 | 53.8 | 63.4 | 65.9 |
| Codeforces(Percentile) | 20.3 | 23.6 | 58.7 | 93.4 | 96.6 | 96.3 |
| Codeforces(Rating) | 717 | 759 | 1134 | 1820 | 2061 | 2029 |
| SWE Verified(Resolved) | 50.8 | 38.8 | 42.0 | 41.6 | 48.9 | 49.2 |
| Aider-Polyglot(Acc.) | 45.3 | 16.0 | 49.6 | 32.9 | 61.7 | 53.3 |
| 数学 | ||||||
| AIME 2024(Pass@1) | 16.0 | 9.3 | 39.2 | 63.6 | 79.2 | 79.8 |
| MATH-500(Pass@1) | 78.3 | 74.6 | 90.2 | 90.0 | 96.4 | 97.3 |
| CNMO 2024(Pass@1) | 13.1 | 10.8 | 43.2 | 67.6 | - | 78.8 |
| 中文 | ||||||
| CLUEWSC(EM) | 85.4 | 87.9 | 90.9 | 89.9 | - | 92.8 |
| C-Eval(EM) | 76.7 | 76.0 | 86.5 | 68.9 | - | 91.8 |
| C-SimpleQA(Correct) | 55.4 | 58.7 | 68.0 | 40.3 | - | 63.7 |
对于 MMLU、MMLU-Pro 和 GPQA Diamond 等面向教育知识的基准,DeepSeek-R1 相比 DeepSeek-V3 展现出更优越的表现。这一提升主要归因于 STEM 相关问题准确率的提升,而这些显著增益是通过大规模强化学习获得的。此外,DeepSeek-R1 在 FRAMES 上表现出色;FRAMES 是一项依赖长上下文的问答任务,展示了 DeepSeek-R1 强大的文档分析能力。这凸显了推理模型在 AI 驱动搜索和数据分析任务中的潜力。
在事实性基准 SimpleQA 上,DeepSeek-R1 优于 DeepSeek-V3,表明其具备处理基于事实查询的能力。类似趋势也出现在 OpenAI-o1 超越 GPT-4o 的结果中。然而,DeepSeek-R1 在中文 SimpleQA 基准上的表现差于 DeepSeek-V3,这主要是因为安全 RL 之后,它倾向于拒绝回答某些查询。如果没有安全 RL,DeepSeek-R1 的准确率可以超过 70%。
DeepSeek-R1 在 IF-Eval 上也取得了令人印象深刻的结果。IF-Eval 是一个用于评估模型遵循格式指令能力的基准。这些提升可以与监督微调(SFT)和 RL 训练最后阶段中加入指令遵循数据相关联。此外,DeepSeek-R1 在 AlpacaEval2.0 和 ArenaHard 上也表现突出,表明它在写作任务和开放域问答方面具有优势。它显著优于 DeepSeek-V3 的表现,凸显了大规模 RL 的泛化收益:这种训练不仅提升推理能力,也改善了模型在多样化领域中的表现。
此外,DeepSeek-R1 生成的总结长度较为简洁,在 ArenaHard 上平均为 689 个 token,在 AlpacaEval 2.0 上平均为 2,218 个字符。这表明 DeepSeek-R1 在基于 GPT 的评估中避免引入长度偏差,从而进一步巩固了其在多种任务上的稳健性。
在数学任务上,DeepSeek-R1 展现出与 OpenAI-o1-1217 相当的性能,并大幅超过其他模型。在代码算法任务上也观察到类似趋势,例如 LiveCodeBench 和 Codeforces,在这些基准中,以推理为重点的模型占据主导地位。在面向工程的代码任务上,OpenAI-o1-1217 在 Aider 上优于 DeepSeek-R1,但二者在 SWE Verified 上表现相当。我们认为,DeepSeek-R1 的工程性能会在下一版本中得到提升,因为目前相关 RL 训练数据的数量仍然非常有限。
3.2. 蒸馏模型评估
表 5|DeepSeek-R1 蒸馏模型与其他可比模型在推理相关基准上的比较。
| 模型 | AIME 2024 pass@1 | AIME 2024 cons@64 | MATH-500 pass@1 | GPQA Diamond pass@1 | LiveCodeBench pass@1 | CodeForces rating |
|---|---|---|---|---|---|---|
| GPT-4o-0513 | 9.3 | 13.4 | 74.6 | 49.9 | 32.9 | 759 |
| Claude-3.5-Sonnet-1022 | 16.0 | 26.7 | 78.3 | 65.0 | 38.9 | 717 |
| OpenAI-o1-mini | 63.6 | 80.0 | 90.0 | 60.0 | 53.8 | 1820 |
| QwQ-32B-Preview | 50.0 | 60.0 | 90.6 | 54.5 | 41.9 | 1316 |
| DeepSeek-R1-Distill-Qwen-1.5B | 28.9 | 52.7 | 83.9 | 33.8 | 16.9 | 954 |
| DeepSeek-R1-Distill-Qwen-7B | 55.5 | 83.3 | 92.8 | 49.1 | 37.6 | 1189 |
| DeepSeek-R1-Distill-Qwen-14B | 69.7 | 80.0 | 93.9 | 59.1 | 53.1 | 1481 |
| DeepSeek-R1-Distill-Qwen-32B | 72.6 | 83.3 | 94.3 | 62.1 | 57.2 | 1691 |
| DeepSeek-R1-Distill-Llama-8B | 50.4 | 80.0 | 89.1 | 49.0 | 39.6 | 1205 |
| DeepSeek-R1-Distill-Llama-70B | 70.0 | 86.7 | 94.5 | 65.2 | 57.5 | 1633 |
如表 5 所示,仅仅通过蒸馏 DeepSeek-R1 的输出,就能使高效的 DeepSeek-R1-7B,也就是 DeepSeek-R1-Distill-Qwen-7B,以下类似简称,在各项指标上全面超过 GPT-4o-0513 这样的非推理模型。DeepSeek-R1-14B 在所有评估指标上超过 QwQ-32B-Preview,而 DeepSeek-R1-32B 和 DeepSeek-R1-70B 在大多数基准上显著超过 o1-mini。这些结果展示了蒸馏的强大潜力。
此外,我们发现,对这些蒸馏模型应用 RL 能够带来显著的进一步提升。我们认为这值得进一步探索,因此本文在此仅呈现简单 SFT 蒸馏模型的结果。
以下为 4. Discussion 与 5. Conclusion, Limitations, and Future Work 部分的中文翻译。括号内引用保留原文不翻译;本部分没有出现需要解释的数学公式。
4. 讨论
4.1. 蒸馏 v.s. 强化学习
在第 3.2 节中,我们可以看到,通过蒸馏 DeepSeek-R1,小模型能够取得令人印象深刻的结果。然而,仍然留下了一个问题:如果不进行蒸馏,模型能否通过本文讨论的大规模 RL 训练达到相当的性能?
为了回答这个问题,我们使用数学、代码和 STEM 数据,在 Qwen-32B-Base 上进行了大规模 RL 训练,训练步数超过 10K 步,得到了 DeepSeek-R1-Zero-Qwen-32B。表 6 所示的实验结果表明,32B 基础模型在经过大规模 RL 训练后,取得了与 QwQ-32B-Preview 相当的性能。然而,从 DeepSeek-R1 蒸馏而来的 DeepSeek-R1-Distill-Qwen-32B,在所有基准上都显著优于 DeepSeek-R1-Zero-Qwen-32B。
表 6|蒸馏模型与 RL 模型在推理相关基准上的比较。
| 模型 | AIME 2024 pass@1 | AIME 2024 cons@64 | MATH-500 pass@1 | GPQA Diamond pass@1 | LiveCodeBench pass@1 |
|---|---|---|---|---|---|
| QwQ-32B-Preview | 50.0 | 60.0 | 90.6 | 54.5 | 41.9 |
| DeepSeek-R1-Zero-Qwen-32B | 47.0 | 60.0 | 91.6 | 55.0 | 40.2 |
| DeepSeek-R1-Distill-Qwen-32B | 72.6 | 83.3 | 94.3 | 62.1 | 57.2 |
因此,我们可以得出两个结论:第一,将更强大的模型蒸馏到较小模型中会产生出色结果;而依赖本文所述大规模 RL 的小模型需要巨大的计算能力,并且甚至可能无法达到蒸馏的性能。第二,尽管蒸馏策略既经济又有效,但若要推进超越当前智能边界的能力,可能仍然需要更强大的基础模型和更大规模的强化学习。
4.2. 未成功的尝试
在开发 DeepSeek-R1 的早期阶段,我们也遇到了失败和挫折。我们在这里分享这些失败经验,以提供一些启发,但这并不意味着这些方法无法开发出有效的推理模型。
过程奖励模型(PRM)
PRM 是一种合理的方法,可用于引导模型采用更好的方式来解决推理任务(Lightman et al., 2023; Uesato et al., 2022; Wang et al., 2023)。然而,在实践中,PRM 存在三个主要限制,可能阻碍其最终成功。
第一,在一般推理中,显式定义一个细粒度步骤是很有挑战性的。第二,判断当前中间步骤是否正确也是一项困难任务。使用模型进行自动标注可能无法产生令人满意的结果,而人工标注又不利于扩展。第三,一旦引入基于模型的 PRM,就不可避免地会导致奖励黑客问题(Gao et al., 2022);并且重新训练奖励模型需要额外训练资源,也会使整个训练流程更加复杂。
总之,尽管 PRM 在对模型生成的 top-N 回答重新排序,或辅助引导式搜索方面表现出良好能力(Snell et al., 2024),但在我们的实验中,与其在大规模强化学习过程中引入的额外计算开销相比,它的优势是有限的。
蒙特卡洛树搜索(MCTS)
受到 AlphaGo(Silver et al., 2017b)和 AlphaZero(Silver et al., 2017a)的启发,我们探索了使用蒙特卡洛树搜索(MCTS)来增强测试时计算的可扩展性。这种方法涉及将答案拆分为更小的部分,使模型能够系统性地探索解空间。为实现这一点,我们提示模型生成多个标签,这些标签对应搜索过程中所需的特定推理步骤。训练时,我们首先使用收集到的提示,在预训练价值模型的引导下通过 MCTS 寻找答案。随后,我们使用得到的问题—答案对来训练 actor 模型和价值模型,并迭代地优化这一过程。
然而,当扩大训练规模时,这种方法会遇到若干挑战。第一,与国际象棋不同,国际象棋的搜索空间相对定义明确,而 token 生成会呈现指数级更大的搜索空间。为了解决这一点,我们为每个节点设置最大扩展限制,但这可能导致模型陷入局部最优。第二,价值模型会直接影响生成质量,因为它引导搜索过程中的每一步。训练一个细粒度价值模型本身就非常困难,这使得模型难以进行迭代改进。虽然 AlphaGo 的核心成功依赖于训练价值模型来逐步提升性能,但由于 token 生成的复杂性,这一原则在我们的设置中很难复现。
总之,尽管 MCTS 在与预训练价值模型配合使用时可以提升推理阶段的性能,但通过自搜索来迭代提升模型性能仍然是一项重大挑战。
5. 结论、局限性与未来工作
在这项工作中,我们分享了通过强化学习提升模型推理能力的历程。DeepSeek-R1-Zero 代表了一种不依赖冷启动数据的纯 RL 方法,并在多种任务上取得了强大表现。DeepSeek-R1 则更加强大,它利用冷启动数据以及迭代式 RL 微调。最终,DeepSeek-R1 在一系列任务上取得了可与 OpenAI-o1-1217 相媲美的性能。
我们进一步探索了将推理能力蒸馏到小型稠密模型中。我们使用 DeepSeek-R1 作为教师模型生成 800K 条训练样本,并微调了几个小型稠密模型。结果令人鼓舞:DeepSeek-R1-Distill-Qwen-1.5B 在数学基准上优于 GPT-4o 和 Claude-3.5-Sonnet,在 AIME 上达到 28.9%,在 MATH 上达到 83.9%。其他稠密模型也取得了令人印象深刻的结果,显著优于基于相同底层检查点的其他指令微调模型。
未来,我们计划在以下方向上对 DeepSeek-R1 投入研究。
通用能力: 目前,DeepSeek-R1 在函数调用、多轮对话、复杂角色扮演和 JSON 输出等任务上的能力仍不及 DeepSeek-V3。未来,我们计划探索如何利用长 CoT 来增强这些领域中的任务表现。
语言混杂: DeepSeek-R1 当前针对中文和英文进行了优化,这在处理其他语言的查询时可能导致语言混杂问题。例如,即使查询使用的语言不是英语或中文,DeepSeek-R1 也可能在推理和回答中使用英语。我们计划在未来更新中解决这一限制。
提示工程: 在评估 DeepSeek-R1 时,我们观察到它对提示较为敏感。few-shot prompting 会持续降低其性能。因此,我们建议用户直接描述问题,并在零样本设置下指定输出格式,以获得最佳结果。
软件工程任务: 由于评估时间较长,影响了 RL 过程的效率,大规模 RL 尚未广泛应用于软件工程任务。因此,DeepSeek-R1 在软件工程基准上相较 DeepSeek-V3 并未展现出巨大提升。未来版本将通过在软件工程数据上实施拒绝采样,或在 RL 过程中引入异步评估来提高效率,从而解决这一问题。
更多推荐



所有评论(0)