DeepSeek-R1:通过强化学习激励大语言模型的推理能力

DeepSeek-AI

research@deepseek.com

摘要

通用推理能力长期以来一直是人工智能领域的一项艰巨挑战。最近的突破,例如大语言模型(LLMs)(Brown et al., 2020; OpenAI, 2023)和思维链(CoT)提示(Wei et al., 2022b),在基础推理任务上取得了相当大的成功。然而,这种成功在很大程度上依赖于大量的人工标注演示,并且模型的能力对于更复杂的问题仍然不足。本文中,我们展示了大语言模型的推理能力可以通过纯强化学习(RL)来激励,从而无需人类标记的推理轨迹。所提出的RL框架促进了高级推理模式的出现和发展,例如自我反思、验证和动态策略适应。因此,训练后的模型在可验证的任务(如数学、编程竞赛和STEM领域)上取得了卓越的性能,超越了通过传统监督学习在人类演示上训练的对应模型。此外,这些大规模模型所展现出的涌现推理模式可以被系统地利用,以指导和增强较小模型的推理能力。

1. 引言

推理能力是人类智能的基石,它支持从数学问题求解到逻辑演绎和编程等复杂的认知任务。人工智能的最新进展表明,当大型语言模型(LLMs)扩展到足够规模时,可以表现出涌现行为,包括推理能力(Kaplan et al., 2020; Wei et al., 2022a)。然而,在预训练中获得这种能力通常需要大量的计算资源。与此同时,一个互补的研究路线已经证明,大型语言模型可以通过思维链(CoT)提示有效地增强。这种技术包括提供精心设计的少样本示例或使用最小化的提示(例如"让我们一步一步地思考"(Kojima et al., 2022; Wei et al., 2022b)),使模型能够产生中间推理步骤,从而显著提高其在复杂任务上的表现。类似地,当模型在后训练阶段学习高质量、多步推理轨迹时,可以观察到进一步的性能提升(Chung et al., 2024; OpenAI, 2023)。尽管这些方法有效,但它们表现出明显的局限性。它们对人类标注推理轨迹的依赖阻碍了可扩展性并引入了认知偏差。此外,通过将模型限制在复制人类思维过程,它们的性能本质上受到了人为提供的示例的限制,这阻止了对可能更优越的非人类推理路径的探索。

为了解决这些问题,我们旨在探索LLMs通过在RL框架中进行自演化的方式发展推理能力的潜力,最小化对人类标注工作的依赖。具体来说,我们基于DeepSeek-V3-Base(DeepSeek-AI, 2024b)并采用分组相对策略优化(GRPO)(Shao et al., 2024)作为我们的RL框架。奖励信号仅基于最终预测与标准答案的正确性,而不对推理过程本身施加任何约束。值得注意的是,我们绕过了在RL训练之前传统的监督微调(SFT)阶段。这一设计选择源于我们的假设:人类定义的推理模式可能会限制模型的探索,而无限制的RL训练可以更好地激励LLMs中新推理能力的出现。通过这一过程(详见第2节),我们的模型(称为DeepSeek-R1-Zero)自然地发展出了多样化且复杂的推理行为。在解决推理问题时,该模型倾向于生成长度更长的回答,在每次回答中融入验证、反思和探索替代方法。尽管我们没有明确地教导模型如何进行推理,但它成功地通过强化学习学会了改进的推理策略。

尽管DeepSeek-R1-Zero展示了出色的推理能力,但它面临着一些挑战,例如可读性差和语言混合,偶尔会在单个思维链回答中混合使用英语和中文。此外,DeepSeek-R1-Zero的基于规则的RL训练阶段过于专注于推理任务,导致在写作和开放领域问答等更广泛领域的性能有限。为了解决这些挑战,我们引入了DeepSeek-R1,这是一个通过多阶段学习框架训练的模型,该框架集成了拒绝采样、强化学习和监督微调(详见第3节)。这个训练流程使DeepSeek-R1能够继承其前身DeepSeek-R1-Zero的推理能力,同时通过额外的非推理数据使模型行为与人类偏好保持一致。

为了以更低的能源成本实现更广泛地访问强大的AI,我们蒸馏了多个较小模型并将其公开。这些蒸馏模型展现出强大的推理能力,超越了原始指令微调对应模型的性能。我们相信,这些指令微调版本也将通过为理解长思维链推理模型的机制以及促进更强大推理模型的发展提供宝贵资源,从而对研究界做出重大贡献。我们在 https://huggingface.co/deepseek-ai 公开发布DeepSeek-R1系列模型。

2. DeepSeek-R1-Zero

我们首先详细阐述DeepSeek-R1-Zero的训练,它完全依赖于强化学习,没有进行监督微调。为了促进大规模RL效率,我们采用了分组相对策略优化(GRPO)(Shao et al., 2024)。

2.1. 分组相对策略优化

GRPO(Shao et al., 2024)是我们用来训练DeepSeek-R1-Zero和DeepSeek-R1的强化学习算法。它最初被提出是为了简化训练过程并减少广泛用于LLMs RL阶段的近端策略优化(PPO)(Schulman et al., 2017)的资源消耗(Ouyang et al., 2022)。

对于每个问题 qqq,GRPO 从旧策略 πθold\pi_{\theta_{old}}πθold 采样一组输出 {o1,o2,⋯ ,oG}\{o_{1}, o_{2}, \cdots, o_{G}\}{o1,o2,⋯,oG},然后通过最大化以下目标来优化策略模型 πθ\pi_{\theta}πθ:

JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]1G∑i=1G(min⁡(πθ(oi∣q)πθold(oi∣q)Ai,clip(πθ(oi∣q)πθold(oi∣q),1−ε,1+ε)Ai)−βDKL(πθ∣∣πref)), \begin{aligned} &\mathcal{J}{GRPO}(\theta)=\mathbb{E}[q\sim P(Q),\left\{o{i}\right\}{i=1}^{G}\sim\pi{\theta_{old}}(O|q)]\\ &\frac{1}{G}\sum_{i=1}^{G}\left(\min\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i},clip\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)},1-\varepsilon,1+\varepsilon\right)A_{i}\right)-\beta\mathbb{D}{KL}\left(\pi{\theta}||\pi_{ref}\right)\right),\\ \end{aligned} JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]G1i=1∑G(min(πθold(oi∣q)πθ(oi∣q)Ai,clip(πθold(oi∣q)πθ(oi∣q),1−ε,1+ε)Ai)−βDKL(πθ∣∣πref)),

DKL(πθ∣∣πref)=πref(oi∣q)πθ(oi∣q)−log⁡πref(oi∣q)πθ(oi∣q)−1, \mathbb{D}{K L}\left(\pi{\theta}||\pi_{r e f}\right)=\frac{\pi_{r e f}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-\log\frac{\pi_{r e f}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-1, DKL(πθ∣∣πref)=πθ(oi∣q)πref(oi∣q)−logπθ(oi∣q)πref(oi∣q)−1,

其中 πref\pi_{ref}πref 是参考策略,ε\varepsilonε 和 β\betaβ 是超参数,而 AiA_{i}Ai 是优势值,使用与组内输出对应的一组奖励 {r1,r2,...,rG}\{r_{1}, r_{2}, \ldots, r_{G}\}{r1,r2,...,rG} 计算:

Ai=ri−mean({r1,r2,⋯ ,rG})std({r1,r2,⋯ ,rG}). A_{i}=\frac{r_{i}-\mathbf{mean}(\{r_{1},r_{2},\cdots,r_{G}\})}{\mathbf{std}(\{r_{1},r_{2},\cdots,r_{G}\})}. Ai=std({r1,r2,⋯,rG})ri−mean({r1,r2,⋯,rG}).

我们在补充材料A.3中给出了GRPO和PPO的比较。为了训练DeepSeek-R1-Zero,我们将学习率设置为3e-6,KL系数设置为0.001,用于采样的温度为1。对于每个问题,我们采样16个输出,最大长度为32,768个token(在8.2k步之前)和65,536个token(之后)。因此,DeepSeek-R1-Zero的性能和响应长度在第8.2k步时都出现了显著的跳跃,训练总共持续了10,400步,对应1.6个训练周期。每个训练步包含32个唯一的问题,因此训练批大小为512。每400步,我们用最新的策略模型替换参考模型。为了加速训练,每次采样生成8,192个输出,这些输出被随机分成16个小批次,并且只进行单个内部周期训练。
表 1 | DeepSeek-R1-Zero 的模板。在训练过程中,prompt将被替换为具体的推理问题。

用户和助手之间的对话。用户提出一个问题,助手来解决它。助手首先在脑海中思考推理过程,然后向用户提供答案。推理过程和答案分别封装在 <think>...</think><answer>...</answer> 标签内,即 <think> 这里的推理过程 </think> <answer> 这里的答案 </answer>。用户:提示。助手:

我们的高性能RL基础设施在补充材料B.1中描述,确保了可扩展和高效的训练。

2.2. 奖励设计

奖励是训练信号的来源,决定了RL优化的方向。对于DeepSeek-R1-Zero,我们采用基于规则的奖励,为数学、编码和逻辑推理领域的数据提供精确的反馈。我们的基于规则的奖励系统主要包括两种类型的奖励:准确性奖励和格式奖励。

准确性奖励评估响应是否正确。例如,对于具有确定性结果的数学问题,模型被要求以指定格式(例如,在方框内)提供最终答案,从而实现可靠的基于规则的正确性验证。同样,对于代码竞赛提示,可以使用编译器来评估模型的响应是否符合一系列预定义的测试用例,从而生成关于正确性的客观反馈。

格式奖励通过强制执行特定的格式要求来补充准确性奖励。具体来说,模型被激励将其推理过程封装在指定的标签内,特别是:<think></think>。这确保了模型的思维过程被明确地划分出来,增强了可解释性并便于后续分析。

Rewardrule=Rewardacc+Rewardformat Reward_{\mathrm{rule}}=Reward_{\mathrm{acc}}+Reward_{\mathrm{format}} Rewardrule=Rewardacc+Rewardformat

准确性奖励和格式奖励以相同的权重组合。值得注意的是,我们避免对推理任务使用神经奖励模型------无论是基于结果的还是基于过程的。这一决定是基于我们的观察,即神经奖励模型在大规模强化学习过程中容易受到奖励破解的影响。此外,重新训练此类模型需要大量的计算资源,并在训练流程中引入了额外的复杂性,从而使整体优化过程复杂化。

2.3. 激励LLMs的推理能力

具体来说,我们在DeepSeek-V3基座模型上应用RL技术来训练DeepSeek-R1-Zero。在训练过程中,我们设计了一个简单的模板,要求DeepSeek-R1-Zero先生成一个推理过程,然后给出最终答案。我们有意将约束限制在这种结构格式上,避免任何特定内容的偏见,以确保我们能够准确地观察模型在RL过程中的自然进展。

图1(a)描绘了DeepSeek-R1-Zero在整个RL训练过程中在AIME 2024基准测试上的性能轨迹,其在AIME 2024上的平均pass@1分数显示出显著增加,从最初的15.6%跃升至77.9%。此外,通过利用自洽性解码(Wang et al., 2023c),模型的性能可以进一步提高,达到86.7%的准确率。这一性能显著超过了所有人类参赛者的平均表现。除了数学竞赛,如图10所示,DeepSeek-R1-Zero在编程竞赛以及研究生级别的生物、物理和化学问题中也取得了显著的成绩。这些结果强调了RL在增强大型语言模型推理能力方面的有效性。

DeepSeek-R1-Zero的自进化例证了RL如何能够自主增强模型的推理能力。

如图1(b)所示,DeepSeek-R1-Zero在训练过程中表现出思维时间的稳步增加,这完全是由内在适应而非外部修改驱动的。利用长思维链,模型逐步完善其推理,生成数百到数千个token来探索和改进其问题解决策略。

思维时间的增加促进了复杂行为的自主发展。具体来说,DeepSeek-R1-Zero越来越多地表现出高级推理策略,如反思性推理和系统性地探索替代解决方案(详见补充材料C.2中的图9(a)),这显著提升了其在数学和编程等可验证任务上的表现。值得注意的是,在训练过程中,DeepSeek-R1-Zero展现了一个"顿悟时刻"(表2),其特点是反思时使用"等待"一词的频率突然增加(详见补充材料C.2中的图9(b))。这一时刻标志着推理模式的明显变化,并清楚地展示了DeepSeek-R1-Zero的自进化过程。

DeepSeek-R1-Zero的自进化凸显了RL的力量和美妙之处:我们不是明确地教导模型如何解决问题,而是简单地提供正确的激励,它就能自主地发展出高级的问题解决策略。这提醒我们,RL有潜力解锁LLMs更高层次的能力,为未来更自主和自适应的模型铺平道路。


图 1 | (a) DeepSeek-R1-Zero在训练过程中的AIME准确率。AIME接收一个数学问题作为输入,输出一个数字,如表32所示。Pass@1和Cons@16在补充材料D.1中描述。基线是AIME竞赛中人类参与者的平均得分。(b) DeepSeek-R1-Zero在RL过程中在训练集上的平均响应长度。DeepSeek-R1-Zero自然地学会用更多的思考时间来解决推理任务。注意,一个训练步指的是单个策略更新操作。

表 2 | DeepSeek-R1-Zero中间版本的一个有趣的"顿悟时刻"。模型学会了使用拟人化的语气重新思考。这对我们来说也是一个顿悟时刻,让我们见证了强化学习的力量和美妙。

问题: 如果 a>1a > 1a>1,则方程 a−a+x=x\sqrt{a - \sqrt{a + x}} = xa−a+x =x 的实数解之和等于

响应:

要求解方程 a−a+x=x\sqrt{a - \sqrt{a + x}} = xa−a+x =x,让我们首先平方两边......

(a−a+x)2=x2  ⟹  a−a+x=x2\left(\sqrt{a - \sqrt{a + x}}\right)^{2} = x^{2} \implies a - \sqrt{a + x} = x^{2}(a−a+x )2=x2⟹a−a+x =x2。

重新排列以分离内部平方根项:

(a−x2)2=a+x  ⟹  a2−2ax2+(x2)2=a+x  ⟹  x4−2ax2−x+(a2−a)=0(a - x^{2})^{2} = a + x \implies a^{2} - 2ax^{2} + (x^{2})^{2} = a + x \implies x^{4} - 2ax^{2} - x + (a^{2} - a) = 0(a−x2)2=a+x⟹a2−2ax2+(x2)2=a+x⟹x4−2ax2−x+(a2−a)=0

等等,等等。等等。我可以在这里标记一个顿悟时刻。

让我们一步一步重新评估,以确定正确的和是否为......

我们从方程开始:

a−a+x=x\sqrt{a - \sqrt{a + x}} = xa−a+x =x

首先,对两边平方:

a−a+x=x2  ⟹  a+x=a−x2a - \sqrt{a + x} = x^{2} \implies \sqrt{a + x} = a - x^{2}a−a+x =x2⟹a+x =a−x2

接下来,我可以再次对两边平方,处理方程:......

3. DeepSeek-R1

尽管DeepSeek-R1-Zero表现出强大的推理能力,但它面临几个问题。DeepSeek-R1-Zero在处理可读性差和语言混合方面存在困难,因为DeepSeek-V3-Base是在多种语言上训练的,尤其是英语和中文。为了解决这些问题,我们开发了DeepSeek-R1,其流程如图2所示。

在初始阶段,我们收集了数千个展现对话式、与人类思维过程对齐的冷启动数据。然后应用RL训练,以改善模型在对话式思维过程和语言一致性方面的表现。随后,我们再次应用拒绝采样和SFT。这个阶段将推理和非推理数据集都纳入SFT过程,使模型不仅擅长推理任务,还能展示高级的写作能力。为了进一步将模型行为与人类偏好对齐,我们实施了一个次要的RL阶段,旨在增强模型的有益性和无害性,同时完善其推理能力。

本节的其余部分详细介绍了该流程的关键组成部分:第3.1节介绍了我们在RL阶段使用的奖励模型,第3.2节详细阐述了具体的训练方法和实现细节。此阶段使用的数据在补充材料B.3中详述。

3.1. 基于模型的奖励

对于通用数据,我们借助奖励模型来捕捉复杂和细致场景中的人类偏好。我们基于DeepSeek-V3流程,并采用了类似的偏好对和训练提示的分布。对于有益性,我们只关注最终总结,确保评估强调响应对用户的效用和相关性,同时最小化对底层推理过程的干扰。对于无害性,我们评估模型的整个响应,包括推理过程和总结,以识别和减轻生成过程中可能出现的任何潜在风险、偏见或有害内容。

有益性奖励模型 关于有益奖励模型的训练,我们首先通过使用Arena-hard提示格式(列在补充材料B.2中)提示DeepSeek-V3生成偏好对,其中每个对包含一个用户查询和两个候选响应。对于每个偏好对,我们查询DeepSeek-V3四次,随机分配响应为"响应A"或"响应B",以减轻位置偏差。最终偏好分数由四个独立判断的平均值决定,仅保留分数差异(Δ\DeltaΔ)大于1的对以确保有意义的区分。此外,为了最小化与长度相关的偏差,我们确保整个数据集中被选择和被拒绝的响应具有可比的长度。总共,我们整理了66,000个数据对来训练奖励模型。此数据集中的提示都是非推理问题,要么来自公开可用的开源数据集,要么来自明确同意为改进模型目的而共享其数据的用户。我们的奖励模型的架构与DeepSeek-R1一致,但增加了一个奖励头,用于预测标量偏好分数。

Rewardhelpful=RMhelpful(ResponseA,ResponseB) Reward_{helpful}=RM_{helpful}(Response_A,Response_B) Rewardhelpful=RMhelpful(ResponseA,ResponseB)

有益性奖励模型使用批大小为256,学习率为 6×10−66 \times 10^{-6}6×10−6,对训练数据集进行单个周期训练。训练期间的最大序列长度设置为8192个token,而在奖励模型推理期间则没有施加明确的长度限制。

安全性奖励模型 为了评估和改善模型安全性,我们整理了一个包含106,000个提示的数据集,其中模型生成的响应根据预定义的安全准则被标注为"安全"或"不安全"。与有益性奖励模型中使用的成对损失不同,安全奖励模型使用逐点方法进行训练,以区分安全和不安全的响应。训练超参数与有益性奖励模型相同。

Rewardsafety=RMsafety(Response) Reward_{safety}=RM_{safety}(Response) Rewardsafety=RMsafety(Response)

对于通用查询,每个实例被归类为属于安全数据集或有益性数据集。分配给每个查询的通用奖励 RewardGeneralReward_{General}RewardGeneral 对应于相关数据集中定义的相应奖励。

3.2. 训练细节
3.2.1. 第一阶段RL的训练细节

在第一阶段RL中,我们将学习率设置为3e-6,KL系数设置为0.001,GRPO裁剪比 ε\varepsilonε 设置为10,用于采样的温度为1。对于每个问题,我们采样16个输出,最大长度为32,768个token。每个训练步包含32个唯一问题,因此每步的训练批大小为512。每400步,我们用最新的策略模型替换参考模型。为了加速训练,每次采样生成8,192个输出,这些输出被随机分成16个小批次,并且只进行单个内部周期训练。然而,为了缓解语言混合的问题,我们在RL训练期间引入了语言一致性奖励,该奖励计算为目标语言单词在CoT中的比例。

Rewardlanguage=Num(Wordstarget)Num(Words) Reward_{language}=\frac{Num(Words_{target})}{Num(Words)} Rewardlanguage=Num(Words)Num(Wordstarget)

尽管补充材料B.6中的消融实验表明,这种对齐会导致模型性能略有下降,但这种奖励符合人类偏好,使其输出更具可读性。我们通过直接将其添加到最终奖励中,对推理和非推理数据应用语言一致性奖励。

请注意,裁剪比在训练中起着至关重要的作用。较低的值可能导致大量token的梯度被截断,从而降低模型的性能,而较高的值可能导致训练不稳定。

3.2.2. 第二阶段RL的训练细节

具体来说,我们使用奖励信号和多样化的提示分布组合来训练模型。对于推理数据,我们遵循DeepSeek-R1-Zero中概述的方法,该方法采用基于规则的奖励来指导数学、编码和逻辑推理领域的学习。在训练过程中,我们观察到CoT经常表现出语言混合,尤其是当RL提示涉及多种语言时。对于通用数据,我们使用奖励模型来指导训练。最终,奖励信号与多样化数据分布的整合使我们能够开发一个不仅在推理方面表现出色,而且优先考虑有益性和无害性的模型。给定一批数据,奖励可以表述为:

Reward=Rewardreasoning+Rewardgeneral+Rewardlanguage Reward=Reward_{reasoning}+Reward_{general}+Reward_{language} Reward=Rewardreasoning+Rewardgeneral+Rewardlanguage
其中,Rewardreasoning=Rewardrule 其中,Reward_{reasoning}=Reward_{rule} 其中,Rewardreasoning=Rewardrule
Rewardgeneral=Rewardreward_model+Rewardformat Reward_{general}=Reward_{reward\model}+Reward{format} Rewardgeneral=Rewardreward_model+Rewardformat

第二阶段RL保留了第一阶段的绝大多数参数,关键区别在于温度降低到0.7,因为我们发现在此阶段较高的温度会导致生成不连贯。该阶段总共包含1,700个训练步,其中通用指令数据和基于偏好的奖励仅在最后400步中加入。我们发现使用基于模型的偏好奖励信号进行更多训练步可能会导致奖励破解,这在补充材料B.5中有记录。总训练成本列在补充材料B.4.4中。

图 2 | DeepSeek-R1的多阶段训练流程。关于DeepSeek-V3 Base和DeepSeek-V3的详细背景在补充材料A.1中提供。模型DeepSeek-R1 Dev1、Dev2和Dev3代表此流程中的中间检查点。

4. 实验

我们在MMLU(Hendrycks et al., 2021)、MMLU-Redux(Gema et al., 2025)、MMLU-Pro(Wang et al., 2024)、C-Eval(Huang et al., 2023)和CMMLU(Li et al., 2024)、IFEval(Zhou et al., 2023b)、FRAMES(Krishna et al., 2024)、GPQA Diamond(Rein et al., 2023)、SimpleQA(OpenAI, 2024a)、C-SimpleQA(He et al., 2024)、SWE-Bench Verified(OpenAI, 2024b)、Aider(Gauthier, 2025)、LiveCodeBench(Jain et al., 2024)(2024-08 -- 2025-01)、Codeforces(Mirzayanov, 2025)、中国国家高中数学奥林匹克(CNMO 2024)(CMS, 2024)和美国数学邀请赛2024(AIME 2024)(MAA, 2024)上评估我们的模型。这些基准测试的细节列在补充材料D中。

表3总结了DeepSeek-R1在图2概述的多个发展阶段中的性能表现。DeepSeek-R1-Zero和DeepSeek-R1 Dev1之间的比较显示,在指令遵循方面有显著改进,这一点在IF-Eval和ArenaHard基准测试的较高分数上得到了证明。然而,由于冷启动数据集的规模有限,Dev1在推理性能上相比DeepSeek-R1-Zero出现部分退化,特别是在AIME基准测试上最为明显。相比之下,DeepSeek-R1 Dev2在需要高级推理技能的基准测试上表现出显著的性能提升,包括那些专注于代码生成、数学问题解决和STEM相关任务的测试。针对通用任务的基准测试,如AlpacaEval 2.0,显示出边际改进。这些结果表明,以推理为导向的RL在增强推理能力的同时,对用户偏好导向的基准测试影响有限。

DeepSeek-R1 Dev3将推理和非推理数据集都整合到SFT流程中,从而增强了模型在推理和通用语言生成任务方面的能力。与Dev2相比,DeepSeek-R1 Dev3在AlpacaEval 2.0和Aider-Polyglot上取得了显著的性能提升,这归因于大规模非推理语料库和代码工程数据集的纳入。最后,对DeepSeek-R1 Dev3使用混合的推理导向和通用数据进行全面的RL训练,产生了最终的DeepSeek-R1。代码和数学基准测试有边际改善,因为之前阶段已经进行了大量的推理特定RL训练。最终DeepSeek-R1的主要改进在于通用指令遵循和用户偏好基准测试,其中AlpacaEval 2.0提升了25%,ArenaHard提升了17%。

此外,我们在补充材料D.2中将DeepSeek-R1与其他模型进行了比较。模型安全性评估在补充材料D.3中提供。补充材料E提供了全面的分析,包括与DeepSeek-V3的比较、在新鲜测试集上的性能评估、数学能力按类别的细分以及测试时缩放行为的调查。补充材料F展示了强大的推理能力可以转移到较小模型上。
表 3 | DeepSeek-R1 各阶段实验结果。加粗数字表示性能具有统计学显著性(t检验,p < 0.01)。

|----------|----------------------------|---------|---------|---------|------|
| 基准测试(指标) | R1-Zero | R1-Dev1 | R1-Dev2 | R1-Dev3 | R1 |
| 英语 | MMLU (EM) | 88.8 | 89.1 | 91.2 | 91.0 |
| 英语 | MMLU-Redux (EM) | 85.6 | 90.0 | 93.0 | 93.1 |
| 英语 | MMLU-Pro (EM) | 68.9 | 74.1 | 83.8 | 83.1 |
| 英语 | DROP (3-shot FI) | 89.1 | 89.8 | 91.1 | 88.7 |
| 英语 | IF-Eval (Prompt Strict) | 46.6 | 71.7 | 72.0 | 78.1 |
| 英语 | GPQA Diamond (Pass@1) | 75.8 | 66.1 | 70.7 | 71.2 |
| 英语 | SimpleQA (Correct) | 30.3 | 17.8 | 28.2 | 24.9 |
| 英语 | FRAMES (Acc.) | 82.3 | 78.5 | 81.8 | 81.9 |
| 英语 | AlpacaEval2.0 (LC-winrate) | 24.7 | 50.1 | 55.8 | 62.1 |
| 英语 | ArenaHard (GPT-4-110k) | 53.6 | 77.0 | 73.2 | 75.6 |
| 代码 | LiveCodeBench (Pass@1-COT) | 50.0 | 57.5 | 63.5 | 64.6 |
| 代码 | Codeforces (Percentile) | 80.4 | 84.5 | 90.5 | 92.1 |
| 代码 | Codeforces (Rating) | 1444 | 1534 | 1687 | 1746 |
| 代码 | SWE Verified (Resolved) | 43.2 | 39.6 | 44.6 | 45.6 |
| 代码 | Aider-Polyglot (Acc.) | 12.2 | 6.7 | 25.6 | 44.8 |
| 数学 | AIME 2024 (Pass@1) | 77.9 | 59.0 | 74.0 | 78.1 |
| 数学 | MATH-500 (Pass@1) | 95.9 | 94.2 | 95.9 | 95.4 |
| 数学 | CNMO 2024 (Pass@1) | 88.1 | 58.0 | 73.9 | 77.3 |
| 中文 | CLUEWSC (EM) | 93.1 | 92.8 | 92.6 | 91.6 |
| 中文 | C-Eval (EM) | 92.8 | 85.7 | 91.9 | 86.4 |
| 中文 | C-SimpleQA (Correct) | 66.4 | 58.8 | 64.2 | 66.9 |

5. 伦理与安全声明

随着DeepSeek-R1推理能力的进步,我们深刻认识到潜在的伦理风险。例如,R1可能受到越狱攻击,导致生成危险内容,如爆炸物制造计划,而增强的推理能力使模型能够提供具有更好操作可行性和可执行性的计划。此外,公开的模型也容易受到进一步微调的影响,从而损害其固有的安全保护。

在补充材料D.3中,我们从多个角度提供了一份全面的安全报告,包括在开源和内部安全评估基准上的表现,以及跨多种语言和对抗越狱攻击的安全级别。这些全面的安全分析得出结论,DeepSeek-R1模型固有的安全水平与其他最先进的模型相比,通常处于中等水平(与GPT-4o(2024-05-13)相当)。此外,当结合风险控制系统时,模型的安全水平被提升到卓越的标准。

6. 结论、局限性与未来工作

我们提出了DeepSeek-R1-Zero和DeepSeek-R1,它们依赖于大规模RL来激励模型的推理行为。我们的结果表明,预训练检查点本身就具备解决复杂推理任务的巨大潜力。我们相信,解锁这种潜力的关键不在于大规模的人工标注,而在于提供困难的推理问题、可靠的验证器以及用于强化学习的充足计算资源。诸如自我验证和反思等复杂的推理行为似乎在强化学习过程中自然地出现了。

尽管DeepSeek-R1在推理基准测试中取得了前沿结果,但它仍然面临一些能力上的局限性,概述如下:

结构化输出和工具使用:目前,DeepSeek-R1的结构化输出能力与现有模型相比仍然不够理想。此外,DeepSeek-R1无法利用工具(如搜索引擎和计算器)来提高输出性能。然而,由于为结构化输出和工具使用构建RL环境并不困难,我们相信这个问题将在下一个版本中得到解决。

Token效率:与传统的测试时计算扩展方法(如多数投票或蒙特卡洛树搜索)不同,DeepSeek-R1在推理过程中根据问题的复杂性动态分配计算资源。具体来说,它使用较少的token来解决简单任务,而为复杂任务生成更多的token。尽管如此,在token效率方面仍有进一步优化的空间,因为在回答较简单问题时仍然观察到过度推理(表现为过度思考)的情况。

语言混合:DeepSeek-R1目前针对中文和英文进行了优化,当处理其他语言的查询时可能会导致语言混合问题。例如,即使查询语言不是英语或中文,DeepSeek-R1也可能使用英语进行推理和回答。我们计划在未来的更新中解决这一限制。这个限制可能与基础检查点DeepSeek-V3-Base主要使用中文和英文有关,因此它可以在推理方面用这两种语言取得更好的效果。

提示工程:在评估DeepSeek-R1时,我们观察到它对提示很敏感。少样本提示会持续降低其性能。因此,我们建议用户为了获得最佳结果,直接描述问题并使用零样本设置指定输出格式。

软件工程任务:由于评估时间较长,影响了RL过程的效率,大规模RL尚未广泛应用于软件工程任务。因此,DeepSeek-R1在软件工程基准测试上相对于DeepSeek-V3没有表现出巨大改进。未来的版本将通过实施对软件工程数据的拒绝采样或在RL过程中引入异步评估来提高效率,从而解决这个问题。

除了特定的能力限制外,纯RL方法本身也存在固有的挑战:

奖励破解:纯RL的成功取决于可靠的奖励信号。在本研究中,我们通过推理领域的基于规则的奖励模型(RM)确保奖励的可靠性。然而,对于某些任务(例如写作),很难构建这种可靠的RM。如果奖励信号是由模型而非预定义规则分配的,那么随着训练的进行,它更容易被利用,这意味着策略模型可能会找到捷径来破解奖励模型。因此,对于无法通过可靠奖励模型有效评估的复杂任务,扩大纯RL方法仍然是一个开放的挑战。

在这项工作中,对于无法获得可靠信号的任务,DeepSeek-R1使用人工标注来创建监督数据,并且只进行数百步的RL训练。我们希望未来能够获得一个鲁棒的奖励模型来解决此类问题。

随着像DeepSeek-R1这样的纯RL方法的出现,未来在解决任何可以被验证器有效评估的任务方面具有巨大的潜力,无论对人类来说其多么复杂。配备这种先进RL技术的机器有望在这些领域超越人类的能力,这得益于它们通过试错迭代优化性能的能力。然而,对于构建可靠奖励模型本身就困难的任务,挑战仍然存在。在这些情况下,缺乏稳健的反馈机制可能会阻碍进展,这表明未来的研究应该专注于为这些复杂、难以验证的问题开发和改进创新的奖励结构定义方法。

此外,在推理过程中利用工具具有重大前景。无论是使用编译器或搜索引擎等工具来检索或计算必要信息,还是使用外部工具(例如生物或化学试剂)来验证现实世界中的最终结果,这种工具增强推理的整合可以极大地扩展和提高机器驱动解决方案的范围和准确性。

7. 作者列表

作者列表按贡献角色组织,每个类别内的作者按名字字母顺序排列。标有星号(*)的作者已不再隶属于我们的团队。

核心贡献者:Daya Guo, Dejian Yang, Haowei Zhang, Junxiao Song, Peiyi Wang, Qihao Zhu, Runxin Xu, Ruoyu Zhang, Shirong Ma, Xiao Bi, Xiaokang Zhang, Xingkai Yu, Yu Wu, Z.F. Wu, Zhibin Gou, Zhihong Shao, Zhuoshu Li, Ziyi Gao,

核心作者的贡献:Peiyi Wang 和 Daya Guo 共同证明了基于结果的RL能够诱导LLMs中出现长思维链模式,从而实现突破性的推理能力。他们对R1-Zero的创建做出了同等贡献,他们的工作为R1奠定了基础。Daya Guo 还致力于MOE模型的RL训练稳定性。Junxiao Song 提出了GRPO算法,实现了初始版本,并为数学任务引入了基于规则的奖励。GRPO算法随后由 Peiyi Wang 和 Runxin Xu 进行了改进。Zhibin Gou 提出了大的PPO裁剪策略以增强GRPO性能,并与 Zhihong Shao 和 Junxiao Song 一起证明了其重要性。关于数据迭代、奖励设计和评估,不同领域的团队领导了相应的工作:Qihao Zhu, Z.F. Wu 和 Dejian Yang 专注于代码任务;Zhihong Shao, Zhibin Gou 和 Junxiao Song 专注于数学任务;Peiyi Wang, Ruoyu Zhang, Runxin Xu 和 Yu Wu 领导了其他推理和通用任务的努力。此外,Qihao Zhu 和 Zhihong Shao 为RL训练的数据选择策略做出了贡献,而 Zhuoshu Li 和 Yu Wu 共同领导了整个项目的数据标注工作。在系统方面,Xiao Bi, Xingkai Yu, Shirong Ma, Xiaokang Zhang, Haowei Zhang 和 Ziyi Gao 实现了RL流程,优化了系统效率并解决了大规模训练中的稳定性问题。最后,Zhibin Gou, Daya Guo 和 Ruoyu Zhang 监督了最后的训练阶段并监控了模型训练动态。Zhibin Gou 领导了R1-distill系列模型的开发。

贡献者 :Aixin Liu, Bing Xue, Bingxuan Wang, Bochao Wu, Bei Feng, Chengda Lu, Chenggang Zhao, Chengqi Deng, Chong Ruan, Damai Dai, Deli Chen, Dongjie Ji, Erhang Li, Fangyun Lin, Fucong Dai, Fuli Luo∗^{*}∗, Guangbo Hao, Guanting Chen, Guowei Li, H. Zhang, Hanwei Xu, Honghui Ding, Huazuo Gao, Hui Qu, Hui Li, Jianzhong Guo, Jiashi Li, Jingchang Chen, Jingyang Yuan, Jinhao Tu, Junjie Qiu, Junlong Li, J.L. Cai, Jiaqi Ni, Jian Liang, Jin Chen, Kai Dong, Kai Hu∗^{*}∗, Kaichao You, Kaige Gao, Kang Guan, Kexin Huang, Kuai Yu, Lean Wang, Lecong Zhang, Liang Zhao, Litong Wang, Liyue Zhang, Lei Xu, Leyi Xia, Mingchuan Zhang, Minghua Zhang, Minghui Tang, Mingxu Zhou, Meng Li, Miaojun Wang, Mingming Li, Ning Tian, Panpan Huang, Peng Zhang, Qiancheng Wang, Qinyu Chen, Qiushi Du, Ruiqi Ge, Ruisong Zhang, Ruizhe Pan, Runji Wang, R.J. Chen, R.L. Jin, Ruyi Chen, Shanghao Lu, Shangyan Zhou, Shanhuang Chen, Shengfeng Ye, Shiyu Wang, Shuiping Yu, Shunfeng Zhou, Shuting Pan, S.S. Li, Shuang Zhou, Shaoqing Wu, Shengfeng Ye, Tao Yun, Tian Pei, Tianyu Sun, T. Wang, Wangding Zeng, Wen Liu, Wenfeng Liang, Wenjun Gao, Wenqin Yu∗^{*}∗, Wentao Zhang, W.L. Xiao, Wei An, Xiaodong Liu, Xiaohan Wang, Xiaokang Chen, Xiaotao Nie, Xin Cheng, Xin Liu, Xin Xie, Xingchao Liu, Xinyu Yang, Xinyuan Li, Xuecheng Su, Xuheng Lin, X.Q. Li, Xiangyue Jin, Xiaojin Shen, Xiaosha Chen, Xiaowen Sun, Xiaoxiang Wang, Xinnan Song, Xinyi Zhou, Xianzu Wang, Xinxia Shan, Y.K. Li, Y.Q. Wang, Y.X. Wei, Yang Zhang, Yanhong Xu, Yao Li, Yao Zhao, Yaofeng Sun, Yaohui Wang, Yi Yu, Yichao Zhang, Yifan Shi, Yiliang Xiong, Ying He, Yishi Piao, Yisong Wang, Yixuan Tan, Yiyang Ma∗^{*}∗, Yiyuan Liu, Yongqiang Guo, Yuan Ou, Yuduan Wang, Yue Gong, Yuheng Zou, Yujia He, Yunfan Xiong, Yuxiang Luo, Yuxiang You, Yuxuan Liu, Yuyang Zhou, Y.X. Zhu, Yanping Huang, Yaohui Li, Yi Zheng, Yuchen Zhu, Yunxian Ma, Ying Tang, Yukun Zha, Yuting Yan, Z.Z. Ren, Zehui Ren, Zhangli Sha, Zhe Fu, Zhean Xu, Zhenda Xie, Zhengyan Zhang, Zhewen Hao, Zhicheng Ma, Zhigang Yan, Zhiyu Wu, Zihui Gu, Zijia Zhu, Zijun Liu∗^{*}∗, Zilin Li, Ziwei Xie, Ziyang Song, Zizheng Pan, Zhen Huang, Zhipeng Xu, Zhongyu Zhang, Zhen Zhang,

附录

A. 背景

A.1. DeepSeek-V3

DeepSeek V3(DeepSeek-AI, 2024b)是DeepSeek开发的先进开源LLM。于2024年12月发布,DeepSeek V3代表了AI创新的重大飞跃,旨在与OpenAI的GPT-4和Meta的Llama 3.1等领先模型竞争,同时保持卓越的成本效益和性能。基于混合专家(MoE)架构构建,DeepSeek V3总参数为6710亿,每个token激活370亿个参数,优化了效率和能力。它在一个包含14.8万亿高质量、多样化token的广泛数据集上进行预训练,随后进行监督微调和强化学习,以增强其在各个领域的能力。该模型融合了创新特性,如用于高效推理的多头潜在注意力(MLA)(DeepSeek-AI, 2024a)、无辅助损失的负载平衡策略,以及多token预测(MTP)(Gloeckle et al., 2024)以提高性能,特别是在数学和编程等任务中。

对于DeepSeek-V3-Base的训练数据,我们只使用纯网页和电子书,没有加入任何合成数据。然而,我们观察到一些网页包含了大量由OpenAI模型生成的答案,这可能导致基础模型间接从其他强大模型中获取知识。但是,在预训练冷却阶段,我们没有故意包含由OpenAI生成的合成数据;此阶段使用的所有数据都是自然发生的,并通过网络爬虫收集。预训练数据集包含大量的数学和代码相关内容,这表明DeepSeek-V3-Base已经接触了大量推理轨迹数据。这种广泛的接触使模型具备了生成合理解决方案候选者的能力,强化学习可以从中有效识别和优化高质量的输出。我们在预训练中的数据污染处理如附录D.1所述。DeepSeek-V3基础模型的训练数据主要是中文和英文,这可能是DeepSeek-R1-Zero在缺乏语言一致性奖励时出现语言混合的原因。

在本文中,我们使用符号DeepSeek-V3-Base表示基础模型,DeepSeek-V3表示指令模型。值得注意的是,DeepSeek-R1和DeepSeek-R1-Zero是在DeepSeek-V3-Base之上训练的,而DeepSeek-R1利用了来自DeepSeek-V3 SFT数据的非推理数据。DeepSeek-R1-Dev1、DeepSeek-R1-Dev2、DeepSeek-R1-Dev3是DeepSeek-R1的中间检查点。

A.2. 传统的后训练范式

后训练已成为精炼预训练LLMs以满足特定性能目标并与人类期望保持一致的关键步骤。一个广泛采用的两阶段后训练框架是SFT followed by RL(Ouyang et al., 2022)。

监督微调(SFT) 通过训练预训练LLM在针对特定任务精心策划的输入-输出对数据集上来进行精炼。该过程采用监督学习目标,通常最小化模型预测与标记ground truth之间的交叉熵损失(Brown et al., 2020)。例如,在对话应用中,SFT可能会使用对话数据集,其中期望的响应被明确提供,使模型能够将其输出调整到预定义标准(Radford et al., 2019)。SFT提供了几个引人注目的好处。首先,它通过利用高质量示例实现了精确的任务对齐,允许模型在客户支持或技术文档等领域表现出色(Radford et al., 2019)。其次,其对预训练权重的依赖确保了计算效率,与从头开始训练相比需要更少的资源。最后,使用显式的输入-输出映射增强了可解释性,因为模型的学习过程直接与可观察的数据相关联,最大限度地减少了异常行为的风险(Ouyang et al., 2022)。尽管有其优势,但SFT的性能取决于训练数据集的质量和多样性;狭窄或有偏差的数据会损害模型在新情境下的泛化能力(Brown et al., 2020)。此外,SFT的静态性质------针对固定输出进行优化------可能无法捕捉不断变化的人类偏好或细微的目标。策划高质量数据集的劳动密集型过程进一步使其可扩展性复杂化,因为数据中的错误或不一致可能会传播到模型的行为中(Ouyang et al., 2022)。

强化学习(RL) 继SFT之后,通过优化LLM的输出以对抗奖励信号来进一步精炼模型。在此阶段,模型与环境交互------通常是在人类反馈上训练的奖励模型------并调整其行为以最大化累积奖励。这种方法的一个突出实例是来自人类反馈的强化学习(RLHF),其中奖励函数编码人类偏好(Christiano et al., 2017)。因此,RL将重点从静态监督转移到动态优化。值得注意的是,RL减少了对广泛注释资源的需求;虽然SFT要求为每个输入-输出对提供完全标记的数据集,但RL可以仅使用较小的人类评估集或训练的奖励模型(甚至基于规则的奖励模型)进行操作,从而显著降低了标注负担。

SFT和RL的顺序应用结合了它们的互补优势。SFT通过将模型建立在精心策划的示例基础上,建立了一个稳健的、特定于任务的基线,而RL则精炼这个基础以与更广泛的、以人为中心的目标保持一致(Ouyang et al., 2022)。例如,SFT可能确保对话系统中的语法准确性,而RL则优化参与度和简洁性,正如在InstructGPT开发中所展示的那样(Ouyang et al., 2022)。这种混合方法在生成既精确又适应性强的模型方面已被证明是有效的。

在本研究中,我们证明SFT阶段可能会阻碍模型探索和发展有效推理策略的能力。这种限制之所以出现,是因为作为SFT期间目标的人类提供的响应并不总是模型学习的最佳选择;它们经常省略关键的推理组成部分,例如明确的反思和验证步骤。为了解决这个问题,DeepSeek-R1-Zero使模型能够直接探索推理模式,独立于人类先验。通过这种自我探索发现的推理轨迹随后被提炼并用于训练其他模型,从而促进获得更稳健和可泛化的推理能力。

A.3. GRPO与PPO的比较

分组相对策略优化(GRPO)(Shao et al., 2024)是我们用来训练DeepSeek-R1-Zero和DeepSeek-R1的强化学习算法。它最初被提出是为了简化训练过程并减少广泛用于LLMs RL阶段的近端策略优化(PPO)(Schulman et al., 2017)的资源消耗(Ouyang et al., 2022)。关于GRPO和PPO的整体比较,请参见图3。

对于每个问题q,GRPO从旧策略 πθold\pi_{\theta_{old}}πθold 采样一组输出 {o1,o2,⋯ ,oG}\{o_{1}, o_{2}, \cdots, o_{G}\}{o1,o2,⋯,oG},然后通过最大化以下目标来优化策略模型 πθ\pi_{\theta}πθ:

JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]1G∑i=1G(min⁡(πθ(oi∣q)πθold(oi∣q)Ai,clip(πθ(oi∣q)πθold(oi∣q),1−ε,1+ε)Ai)−βDKL(πθ∣∣πref)), \begin{aligned} &\mathcal{J}{GRPO}(\theta)=\mathbb{E}[q\sim P(Q),\left\{o{i}\right\}{i=1}^{G}\sim\pi{\theta_{old}}(O|q)]\\ &\frac{1}{G}\sum_{i=1}^{G}\left(\min\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i},clip\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)},1-\varepsilon,1+\varepsilon\right)A_{i}\right)-\beta\mathbb{D}{KL}\left(\pi{\theta}||\pi_{ref}\right)\right),\\ \end{aligned} JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]G1i=1∑G(min(πθold(oi∣q)πθ(oi∣q)Ai,clip(πθold(oi∣q)πθ(oi∣q),1−ε,1+ε)Ai)−βDKL(πθ∣∣πref)),

DKL(πθ∣∣πref)=πref(oi∣q)πθ(oi∣q)−log⁡πref(oi∣q)πθ(oi∣q)−1, \mathbb{D}{K L}\left(\pi{\theta}||\pi_{r e f}\right)=\frac{\pi_{r e f}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-\log\frac{\pi_{r e f}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-1, DKL(πθ∣∣πref)=πθ(oi∣q)πref(oi∣q)−logπθ(oi∣q)πref(oi∣q)−1,

其中 πref\pi_{ref}πref 是参考策略,ε\varepsilonε 和 β\betaβ 是超参数,而 AiA_{i}Ai 是优势值,使用与组内输出对应的一组奖励 {r1,r2,...,rG}\{r_{1}, r_{2}, \ldots, r_{G}\}{r1,r2,...,rG} 计算:

Ai=ri−mean({r1,r2,⋯ ,rG})std({r1,r2,⋯ ,rG}). A_{i}=\frac{r_{i}-\mathbf{mean}(\{r_{1},r_{2},\cdots,r_{G}\})}{\mathbf{std}(\{r_{1},r_{2},\cdots,r_{G}\})}. Ai=std({r1,r2,⋯,rG})ri−mean({r1,r2,⋯,rG}).

相比之下,在PPO中,优势通常通过应用广义优势估计(GAE)(Schulman et al., 2015)来计算,不仅基于奖励,还基于学习的价值模型。由于价值模型通常与策略模型大小相似,它引入了显著的内存和计算开销。此外,价值模型的训练目标是预测从当前位置开始向前的预期累积奖励,基于从开始到当前位置生成的token。这本质上很困难,尤其是当只有最终结果奖励可用时。当训练长思维链推理模型时,挑战变得更加明显。随着输出长度的增加,模型在生成过程中更有可能进行反思和修订等行为,这意味着最初生成的内容可能在后来被修订或否定,这使得基于部分响应预测最终奖励变得更加不可行。

GRPO和PPO之间的另一个关键区别是训练策略与参考策略之间的Kullback-Leibler(KL)散度如何纳入训练过程。在GRPO中,KL散度的无偏估计量(Schulman, 2020)直接添加在损失中,如方程11所示,而在PPO中,每个token的KL惩罚作为密集奖励添加到每个token上(Ouyang et al., 2022)。由于强化学习的优化目标是最大化累积奖励,PPO的方法惩罚了累积的KL散度,这可能隐含地惩罚了响应的长度,从而阻止模型的响应长度增加。此外,由于我们在训练长思维链推理模型的情景中可能训练数千步,训练后的策略可能与初始的参考策略显著偏离。为了平衡训练策略可以探索的范围和训练的稳定性,我们在实际训练过程中定期将参考策略更新为最新的策略。

图4比较了PPO和GRPO在使用DeepSeek-Coder-V2-Lite(16B MoE,2.4B激活参数)的MATH任务上的性能。与GRPO不同,PPO需要额外的超参数调整------特别是GAE中的 λ\lambdaλ 系数------并且对这个参数高度敏感。当 λ\lambdaλ 设置为0.95(大多数开源PPO实现中的默认值)时,PPO的性能明显比GRPO差。然而,经过仔细调整(将 λ\lambdaλ 设置为1.0),PPO的性能显著提高,接近GRPO的性能。

虽然PPO在适当调整时可以达到可比的性能,但它需要额外的超参数优化的计算成本。此外,考虑到训练额外价值模型带来的内存和计算开销,GRPO提供了一个更实用的替代方案,特别是在资源受限的情况下训练大规模模型。

图 3 | PPO和我们的GRPO的演示。GRPO放弃了价值模型,转而根据组分数估算优势值。

图 4 | PPO和GRPO在MATH任务上的性能。

B. 训练细节

B.1. RL基础设施

在大模型上进行RL训练对基础设施提出了很高的要求。我们的RL框架采用解耦和可扩展的结构设计,以便于无缝集成不同的模型和算法。在此框架内,我们结合了模块内和模块间的优化技术,以确保训练效率和可扩展性。

具体来说,如图5所示,该框架被划分为四个不同的模块,每个模块对应RL流程的一个特定阶段:

  • 采样模块:从训练数据集加载提示,并均匀分发给多个配备演员模型的vLLM(Kwon et al., 2023)工作器,以采样多个响应。对于DeepSeek-V3 MoE架构,我们在节点间实施专家并行策略以减少内存访问开销,并部署热点专家的冗余副本以平衡不同专家之间的计算负载。还利用多token预测(MTP)组件进行自我推测解码,显著加快解码速度,并有效最小化最长样本的完成时间。

  • 推理模块:此模块加载奖励模型和参考模型,对采样阶段生成的样本执行前向传递,从而获得基于模型的奖励和其他基本信息。

  • 基于规则的奖励模块:此模块计算模型生成响应的基于规则的奖励。设计了一个统一的接口来容纳不同的实现(例如,代码执行器、答案匹配器、格式检查器等)。尽管此模块不需要将模型加载到GPU内存中,但其执行往往很耗时。为了解决这个问题,采用了异步调度方法,将其执行与采样和推理模块重叠,有效地隐藏了相关的延迟。

  • 训练模块:此模块加载演员模型和评论家模型(如果需要),以计算损失和更新模型参数。它灵活支持各种RL算法(例如,PPO、GRPO、DPO等)。为了最小化由序列填充引起的计算浪费并平衡设备间的工作负载,我们设计了以下数据打包策略:首先,全局批次中的所有数据按长度排序,并在数据并行组内的进程间分发;随后,在每个进程内,应用最佳拟合策略将数据打包成固定长度的块,填充最小化;最后,调整块的数量,使其在所有进程间相等。此外,我们还集成了DeepSeek-V3训练中使用的DualPipe算法,以实现高效的流水线并行。

值得注意的是,在完成每个模块(不包括基于规则的奖励模块)后,该阶段使用的模型实例会自动从VRAM卸载到系统内存或磁盘存储,从而为后续阶段释放VRAM。

图 5 | 我们的RL框架概览。

B.2. 奖励模型提示

请扮演一个公正的裁判,评估两位AI助手对下面显示的用户提示提供的回复质量。你将获得助手A的答案和助手B的答案。你的工作是评估哪个助手的答案更好。开始评估前,先生成你自己对该提示的答案。你必须在评判任何答案之前提供你的答案。

评估助手们的答案时,将两位助手的答案与你自己的答案进行比较。你必须识别并纠正任何错误或不准确的信息。

然后考虑助手的答案是否有帮助、相关和简洁。有帮助意味着答案正确响应提示或遵循指令。请注意,当用户提示有任何歧义或多种解释时,请求用户澄清或提供更多信息比基于假设提供答案更有帮助、更合适。相关意味着响应的所有部分都与所问内容紧密相连或合适。简洁意味着回答清晰,不啰嗦或冗长。

然后根据需要在必要时考虑助手答案的创造性和新颖性。最后,识别助手答案中缺失的任何重要信息,这些信息在响应用户提示时有利于包含。

提供解释后,你必须仅输出以下选项之一作为你的最终判断并带上标签:

  1. 助手A明显更好:[[A≫B]]
  2. 助手A稍好:[[A>B]]
  3. 平局,相对相同:[[A=B]]
  4. 助手B稍好:[[B>A]]
  5. 助手B明显更好:[[B≫A]]

示例输出:我的最终判决是平局:[[A=B]]:
表 4 | RL 数据和任务描述。

|------|--------|---------|-----------|
| 数据类型 | # 提示数量 | 问题类型 | 输出类型 |
| 数学 | 26K | 定量推理 | 数字/表达式/方程 |
| 代码 | 17K | 算法和缺陷修复 | 代码解决方案 |
| STEM | 22K | 多项选择 | 选项 |
| 逻辑 | 15K | 选择/定量推理 | 选项/数字 |
| 通用 | 66K | 有益性/无害性 | 排名的响应 |

B.3. 数据方案
B.3.1. RL数据

推理RL数据包括四个类别:数学、编程、STEM和逻辑问题。此外,我们在DeepSeek-R1的训练中还加入了通用RL数据,以提高模型的有益性和无害性。所有问题都是中文或英文的。RL数据的描述可以在表4中找到,我们将逐一描述每种数据类型的细节如下:

  • 数学数据集 由26k个定量推理问题组成,包括数学考试题和竞赛题。平均提示token数为122。该数据集涵盖各种数学领域,如代数、微积分、概率和几何。问题难度范围从区域竞赛到国际奥林匹克竞赛。对于每个问题,模型预期生成一个最终答案的分步推理过程,最终答案可以是数值(例如"5")、数学表达式(例如"x2+3x−2x^{2} + 3x - 2x2+3x−2")或方程(例如"y=2x+1y = 2x + 1y=2x+1")。数学证明被排除在外,因为很难确定其正确性。出于强化学习目的,我们通过将预测答案与参考答案匹配来计算推理过程的奖励。如果答案与参考一致,则奖励赋值为1;否则赋值为0。

  • 编程数据集 包括17k个算法竞赛问题,以及8k个缺陷修复问题。算法竞赛问题类似于Codeforces或LeetCode等平台上的问题。每个问题通常包括详细的问题描述、约束条件和多个输入输出示例。任务是编写一个完整的函数或程序,可以正确且高效地解决问题,通过一套全面的隐藏测试用例,评估正确性和性能。这些问题测试算法技能,包括动态规划、图论、字符串操作和数据结构使用。

缺陷修复问题是从真实的GitHub问题中提取的。每个任务提供问题描述、有缺陷的源代码版本以及部分或全部失败的单元测试集。目标是理解问题的意图,定位并修复代码中的缺陷,并确保更正后的版本通过所有单元测试。

  • STEM数据集 由22k个涵盖物理、化学和生物学等主题的选择题组成。STEM任务中的每个问题都呈现一个特定学科的问题,并伴随四个到八个答案选项。模型需要根据给定的上下文和领域知识选择最科学准确的答案。平均提示token数为161。具体而言,该数据集包括15.5%的物理、30.7%的生物、46.5%的化学和7.3%的其他主题,如健康和医学。由于所有STEM问题都是多项选择题,根据匹配的选项是否正确来分配二元奖励。

  • 逻辑数据集 包含15k个问题,旨在评估模型在广泛逻辑挑战中的推理能力。该数据集包括现实世界和合成生成的问题。所有问题都支持自动评估,平均提示长度约为420个token。数据集的现实世界部分包括来自网络的各种问题,包括脑筋急转弯、经典逻辑谜题和知识密集型问题。这些问题以多项选择格式呈现,以确保客观和一致的评估。合成部分主要包括两类:代码输入输出问题和谜题任务。代码输入输出问题是使用Li等人(2025)引入的数据管道生成的,该管道将竞争性编程问题及其相应的输入输出测试用例转换为可验证的逻辑推理问题。谜题任务包括旨在评估特定推理能力的问题。例如,密码学谜题旨在评估模型识别和应用密码方案模式或执行字符串操作的能力;逻辑谜题专注于在复杂约束条件下进行演绎推理,例如从一组固定前提(例如斑马谜题)中推断出有效结论;算术谜题测试模型的数值推理能力(例如概率问题和24点游戏)。

  • 通用数据集 由66k个旨在评估有益性的问题组成,涵盖创意写作、编辑、事实问答和角色扮演等各种类别。此外,该数据集还包括12,000个专注于评估无害性的问题。为了确保稳健的验证,使用了两个奖励模型,每个模型都在与有益性和无害性相关的模型生成的排名响应数据集上进行训练。我们对有益性奖励模型进行了单个周期的训练,训练阶段的最大序列长度为8192个token。然而,当部署模型以生成奖励信号时,我们没有对正在评估的输入序列施加任何显式的长度约束。

B.3.2. DeepSeek-R1冷启动

对于DeepSeek-R1,我们构建并收集了少量长CoT数据来微调模型,作为初始RL演员。这主要是出于产品驱动,并强调增强用户体验。当推理过程与第一人称视角思维模式保持一致时,用户往往会发现响应更直观和吸引人。例如,DeepSeek-R1-Zero在解决问题时更倾向于使用代词"我们"或完全避免使用第一人称代词,而DeepSeek-R1则倾向于更频繁地使用"我"。此外,我们承认这种模式可能会引起用户不必要的信任。在这里,我们想强调的是,观察到的生动推理模式主要反映了DeepSeek设计的启发式方法,而不是表明模型已内在获得类人智能或自主解决问题的能力。

在冷启动数据创建中,我们倾向于以理解问题开始,然后是包含反思和验证的详细推理的思维过程。整个思维过程中使用的语言以第一人称视角呈现。此外,保持语言一致性对于最佳用户体验至关重要。如果没有适当的控制,无论查询中使用何种语言,模型响应都可能包含不同语言的混合。这种不一致性会破坏理解并降低用户满意度。因此,进行仔细的精炼以确保响应保持连贯并与用户意图一致是必要的。尽管如此,我们承认DeepSeek-R1-Zero产生的原始思维链推理可能具有超越当前人类先验限制的潜力。具体来说,我们首先让人类标注员将推理轨迹转换为更自然、人类对话的风格。然后将修改后的数据对用作示例,提示LLM以类似的风格重写额外的数据。所有LLM生成的输出随后都经过第二轮人工验证,以确保质量和一致性。

代码清单 1 | 用于生成人类可读解决方案的提示。

问题

{question}

思维过程

{thought_process}

基于上述思维过程,提供一个清晰、易于理解且格式良好的问题解决方案。使用与问题相同的语言。

解决方案必须严格遵守以下要求:

  • 忠实且与给定的思维过程保持一致。不要添加原始思维过程中未显示的新推理步骤或结论。
  • 以清晰、格式良好的LaTeX显示导致最终答案的关键步骤。
  • 使用 boxed()\text{boxed()}boxed() 包裹最终答案。
  • 干净简洁。避免口语化语言。不要在解决方案中使用"思维过程"之类的短语。

你的回应应直接以解决方案开始,不要包含其他内容。你的任务仅是根据提供的思维过程编写解决方案。不要试图自己解决问题。

具体来说,我们首先收集数千个高质量、多样化的推理提示。对于每个提示,我们使用相对较高的温度1.0,通过DeepSeek-R1-Zero生成多个推理轨迹。接下来,我们过滤这些生成结果,仅保留那些具有正确答案和可读格式的。对于数学输出,我们使用sympy(https://www.sympy.org/)进行解析和表达式比较;对于格式化,我们应用诸如重复检测和语言混合过滤等规则。最后,我们提示DeepSeek-V3来精炼推理和总结,以确保正确的格式和人类友好的表达。特别是,为了解决语言混合问题,我们指示DeepSeek-V3"将思维过程翻译成与问题相同的语言"。由于DeepSeek-R1-Zero的总结只提供了最终答案,我们使用代码清单1中的总结提示来生成一个简洁、人类可读的解决方案,概述推理步骤和最终结果。

对于代码数据,我们收集了大量的竞争性编程问题。具体来说,我们从多个在线判题(OJ)平台编制了广泛的竞争性编程问题集合,特别是来自Codeforces的5151个问题和来自AtCoder的2504个问题。由于这些平台的原始测试用例并未公开,我们开发了一种方法为每个问题创建可靠的测试用例。

我们的方法涉及使用DeepSeek-V2.5生成候选测试用例,然后进行严格的验证过程。具体来说,我们提示DeepSeek-V2.5编写Python程序,为每个问题的要求生成定制的测试用例,如代码清单2所示。

获得大量候选测试用例后,我们实施了一个两阶段的过滤程序。首先,我们使用正确的提交来消除产生不正确输出的无效测试用例。然后,我们策略性地选择那些成功识别错误提交中缺陷的测试用例子集。这个过程确保了我们最终的测试用例能够正确区分每个问题的正确和错误解决方案。

代码清单 2 | 为代码问题生成测试用例的提示。

<用户>

问题:

你有一个字符串word和一个整数k。

如果满足以下条件,则word的一个子串s是完整的:

s中的每个字符恰好出现k次。

两个相邻字符之间的差值最多为2。也就是说,对于s中的任意两个相邻字符c1和c2,它们在字母表中的位置差的绝对值最多为2。

返回word中完整子串的数量。

子串是字符串中一个非空的连续字符序列。
输入

第一行包含一个整数t,表示测试用例的数量。

每个测试用例的第一行包含一个字符串word。

每个测试用例的第二行包含一个整数k。

保证word仅由小写英文字母组成,所有测试用例的|word|之和不超过 10510^{5}105。
输出

对于每个测试用例,打印一个整数,表示word中完整子串的数量。
示例

输入

2

2

2

3

3

6

6
输出

构建一些随机输入生成器来生成多样化和对抗性的输入,这些输入足够大以使不正确的代码超出时间限制。

(为节省空间,此处省略了生成器的具体代码示例。提示的核心是要求模型为给定的编程问题创建多样化的、大规模的和对抗性的测试用例生成器。)

此外,我们采用少样本提示,让DeepSeek-V3生成对简单数学问题(如"1 + 1 = ?")的响应,确保输出保持简洁和结构适当。我们在代码清单3中提供了针对简单数学问题的提示。

代码清单 3 | 为简单数学问题生成思维链的提示。

问题

5+4等于多少?

& \sum_{i=1}^{5} 5 + 4 = 9 \

代码清单 4 | 使用DeepSeek-V3作为评判者的提示示例。

作为一个高级推理问题评估助手,你的主要职责是评估所提供答案的准确性。你将收到一个推理相关问题、其相应的参考答案以及一个需要评估的答案。

答案质量分类

你需要仔细分析并将答案分类为以下两个级别之一:

  1. 正确:答案在推理过程和最终结论上都与参考答案完全一致,并且回答问题没有任何错误或遗漏。
  2. 不正确:答案在关键推理步骤或最终结论上存在重大错误,或者完全偏离了问题的核心。这表明对问题存在根本性的误解或错误理解。

问题

{question}

参考答案

{reference}

待评估答案

{answer}

输出格式

你需要结合问题和参考答案,首先对要评估的答案提供详细的分析解释,然后以答案质量分类作为结论。

JSON 格式输出以下内容,包含两个键:

  1. 'analysis': 对答案正确性的分析;
  2. 'correctness': correct/incorrect
B.3.3. 80万监督数据

推理数据 我们整理了一个大型推理提示集,并通过在第一阶段RL训练的检查点上执行拒绝采样来生成推理轨迹。在前一阶段,我们只包含了可以使用基于规则的奖励进行评估的数据。然而,在此阶段,我们通过合并额外的数据来扩展数据集,其中一些数据使用生成式奖励模型,通过将ground-truth和模型预测输入DeepSeek-V3进行判断,一个提示示例如代码清单4所示。此外,由于模型输出有时混乱且难以阅读,我们过滤掉了具有混合语言、长段落和代码块的思维链。对于每个提示,我们采样多个响应,并仅保留正确的响应。总共,我们收集了大约600k个与推理相关的训练样本。

非推理数据 对于非推理数据,例如写作、事实问答、自我认知和翻译,我们采用DeepSeek-V3流程,并重用DeepSeek-V3的SFT数据集的部分内容。我们还加入了专注于软件工程的数据,包括程序修复和前端Web开发,以增强模型解决现实世界问题的能力。对于某些非推理任务,我们调用DeepSeek-V3,通过提示在回答问题之前生成潜在的思维链。然而,对于更简单的查询,例如"hello",我们不会在响应中提供CoT。最终,我们收集了大约200k个与推理无关的训练样本。

在设计我们的思维过程风格时,我们要求模型遵循关键原则:首先,保持每个段落简洁且易于理解。短段落使思路更清晰,更易于理解。其次,采用自然且引人入胜的对话语气。我们避免使用像markdown这样的技术格式,以保持流畅的阅读体验。第三,也是最重要的,思维过程从理解完整的用户上下文开始。这意味着分析我们的用户是谁,他们正在处理什么情况,以及他们真正需要什么------包括那些可能潜藏在他们初始请求之下的、未阐明的需求。

在从模型中引出这些思维过程后,人类标注员会仔细验证输出的准确性。我们的研究结果表明,这些人工推理轨迹提高了模型解释用户查询的精确度。具体来说,它们有效地突出了格式约束,阐明了用户意图,并说明了输出所需的结构。这种方法促进了模型与用户之间更准确和更灵敏的交互。
表 5 | SFT 数据统计。

|------|--------|------|----------|
| 领域 | 样本数量 | 平均轮次 | 平均token数 |
| 数学 | 395285 | 1.0 | 6094.2 |
| 代码 | 211129 | 1.1 | 7435.7 |
| STEM | 10124 | 1.0 | 4928.8 |
| 逻辑 | 10395 | 1.0 | 2739.0 |
| 通用 | 177812 | 1.1 | 1419.8 |
| 总计 | 804745 | 1.0 | 5355.3 |

SFT数据统计 表5总结了大约80万个监督样本在各个领域的数据统计。值得注意的是,大多数数据由单轮交互组成,这可能会限制DeepSeek-R1的多轮对话能力。我们将扩展到多轮对话数据作为未来的工作。数学相关数据主要是中文和英文,涵盖了广泛的主题和难度级别。这些问题可以通过确定性规则或参考特定的ground-truth答案进行验证。代码数据集不仅包括竞争性编程问题,还包括调试任务和面向项目的编码查询。STEM和逻辑相关问题虽然数量比数学和代码少,但来源包括公开可用的教科书和在线存储库。通用领域的查询是多样化的,主要是中文和英文,包括创意写作、开放域问答、角色扮演场景等任务。

SFT轨迹示例 我们在代码清单5、6和7中提供了与数学、代码和非推理相关的SFT轨迹示例。

代码清单 5 | 来自与数学相关的推理数据的SFT轨迹示例。

(为节省空间,此处省略了具体的推理过程示例。这是一道复杂的数学奥林匹克竞赛题,模型展示了详尽的长思维链推理过程,包含反思、验证和探索多个子问题。)

代码清单 6 | 来自与代码相关的推理数据的SFT轨迹示例。

(为节省空间,此处省略了具体的代码任务示例。这是一个简单的字典类实现任务,模型展示了从理解需求、设计数据结构(使用Python字典)到实现方法并测试逻辑的完整思考过程。)

代码清单 7 | 来自与非推理(写作)相关的数据的SFT轨迹示例。

问题

写一首以"原来是触手"结尾的短诗。

响应

好的,我需要帮助用户写一首以"原来是触手"结尾的短诗。嗯,以这个特定的句子结尾暗示着一个转折或惊喜,也许是什么意想不到的东西。 首先,我会思考主题。触手让我想到海洋生物,比如章鱼或鱿鱼,所以也许水下场景会很好用。可能是一场寻宝或海浪下的冒险来设定场景。 我想让这首诗建立期待感。以神秘的东西开始,比如海下的阴影,可以制造悬念。然后,引入像沉没的箱子或水手传说这样的元素可能会增加深度并让读者保持参与。 押韵格式对诗歌很重要。我可能会选择简单的东西,比如AABB或ABAB,以保持流畅。每个诗节应该有四行以保持结构。 现在,结尾的转折应该是突然但有意义的。也许他们寻找的宝藏结果完全是别的东西。最后一行需要有影响力,所以通过前面的诗句来建立悬念会使结尾更令人惊讶。 让我勾勒一下诗节。第一个诗节可以用海洋深处和一个隐藏的秘密来设定场景。第二个诗节可以展示动作,比如潜水寻宝,然后揭示意想不到的触手。 我会确保每一行自然流畅,意象生动。使用像"波浪"、"阴影"、"洞穴"和"神秘"这样的词可以帮助描绘画面。以转折结尾会给读者留下持久的印象。 好吧,把它们放在一起,我会创作两个诗节,逐渐构建到最后一行,确保惊喜感是令人满意的,并且诗歌感觉完整。 在波浪之下,阴影蔓延, 一个秘密在海洋深处搅动。 一个沉没的箱子,水手的歌, 神秘一直低语着。

我们为珍珠、黄金、传说而潜水,

穿过黑暗的洞穴,到海底。

但我们发现的,如此奇怪,如此强壮------

那不是宝藏......原来是触手。

波浪下,阴影悄悄蔓延,

深海中,一个秘密正在搅动。

沉没的宝箱,水手的歌谣,

谜团一直轻声述说。

我们为珍珠、黄金、传说下潜,

穿过幽暗洞穴,抵达海洋的底面。

然而找到之物,奇异而强健------

那不是宝藏......原来是触手。

相关推荐
listhi5202 小时前
IMM雷达多目标跟踪MATLAB实现方案
人工智能·matlab·目标跟踪
JeffDingAI2 小时前
【Datawhale学习笔记】NLP 概述
笔记·学习·自然语言处理
公链开发2 小时前
从案例看AI如何支持链上预测市场:2026相关技术和开发建议
人工智能
技术宅星云2 小时前
0x00.Spring AI Agent开发指南专栏简介
java·人工智能·spring
蝎蟹居2 小时前
GBT 4706.1-2024逐句解读系列(29) 第7.9~7.10条款:开关,档位应明确标识
人工智能·单片机·嵌入式硬件·物联网·安全
说私域2 小时前
基于定制开发AI智能名片商城小程序的运营创新与资金效率提升研究
大数据·人工智能·小程序
砚边数影2 小时前
KingbaseES基础(二):SQL进阶 —— 批量插入/查询 AI 样本数据实战
java·数据库·人工智能·sql·ai
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-DDD(领域驱动设计)核心概念及落地架构全总结 (2)
java·人工智能·spring boot·架构·serverless·ddd·服务网格