DeepSeek-R1技术报告(中文版)
首先我们可以了解DeepSeek-R1的两大贡献
后训练:基于基础模型的大规模强化学习
- 直接将强化学习应用于基础模型,而不依赖监督微调(SFT)作为初始步骤。这种方法使模型能够探索思维链(CoT)以解决复杂问题,从而开发出了DeepSeek - R1 - Zero。DeepSeek - R1 - Zero展现出自我验证、反思以及生成较长思维链等能力,为研究界树立了一个重要的里程碑。值得注意的是,这是首个公开研究,证实了大语言模型的推理能力可以仅通过强化学习来提升,而无需监督微调。这一突破为该领域未来的发展铺平了道路。
- 对于DeepSeek-R1,包含两个强化学习阶段,旨在发现更优的推理模式并使其符合人类偏好;还包含两个监督微调阶段,为模型的推理和非推理能力奠定基础。
知识蒸馏:小模型也能表现良好
- 大型模型的推理模式可以提炼到小模型中,与小模型通过强化学习发现的推理模式相比,这样能带来更好的性能。开源的DeepSeek - R1及其应用程序编程接口(API)将有助于研究社区在未来提炼出更优秀的小型模型。
- DeepSeek团队利用DeepSeek-R1生成的推理数据,对研究社区中广泛使用的几个密集模型进行了微调。评估结果表明,经过蒸馏的较小密集模型在基准测试中表现格外出色。DeepSeekR1-Distill-Qwen-7B在2024年美国数学邀请赛(AIME)上的得分达到55.5%,超过了QwQ-32B-Preview。此外,DeepSeek-R1-Distill-Qwen-32B在2024年AIME上的得分是72.6%,在MATH-500上的得分是94.3%,在LiveCodeBench上的得分是57.2%。这些结果显著优于以前的开源模型,可与o1-mini相媲美。并且DeepSeek团队向社区开源了基于Qwen2.5和Llama3系列的15亿、70亿、80亿、140亿、320亿和700亿参数的蒸馏模型checkpoint。
目录
- 方法
- DeepSeek-R1-Zero:在基础模型上应用强化学习
- GRPO:DeepSeek-R1的强化学习算法
- 奖励模型
- 训练模板
- DeepSeek-R1-Zero的性能、自我进化过程以及顿悟时刻
- DeepSeek-R1:强化学习+冷启动数据
- 蒸馏:DeepSeek-R1赋予小模型推理能力
- Reference
方法
以往的研究在很大程度上依赖大量的监督数据来提升模型性能。DeepSeek团队证明了即使不以监督微调(SFT)作为冷启动步骤,通过大规模强化学习(RL)也能够显著提升模型的推理能力。此外,加入少量冷启动数据可以进一步提升模型性能。在接下来的章节中,将介绍:(1)DeepSeek-R1-Zero,该模型直接在基础模型上应用强化学习,无需任何监督微调数据;(2)DeepSeek-R1,该模型从一个经过数千个长思维链(CoT)示例微调后的检查点开始应用强化学习;(3)将DeepSeek-R1的推理能力蒸馏到小型密集模型中。
DeepSeek-R1-Zero:在基础模型上应用强化学习
强化学习在推理任务中已展现出显著的有效性,之前的研究已证实了这一点。然而,这些研究严重依赖监督数据,而收集监督数据非常耗时。因此,DeepSeek团队探索大语言模型在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们如何通过纯强化学习过程实现自我进化。首先简要概述DeepSeek的强化学习算法,然后展示一些令人振奋的结果。
GRPO:DeepSeek-R1的强化学习算法
GRPO(Group Relative Policy Optimization)可以节省强化学习的训练成本。该方法舍弃了通常与策略模型规模相同的价值评判模型(Critic Model),而是通过分组得分来估计基线。
过去常用的推理模型微调包含三步(SFT → Reward Model训练 → PPO微调),首先在{"prompt": "解释量子力学", "response": "量子力学是研究微观粒子运动规律的物理学分支..."}
这样的问题-答案对上有监督训练(SFT),得到初始的Actor Model,复制一个叫Reference Model(冻结参数)。
然后,基于SFT训练的Actor Model模型生成多个候选回答,人工标注偏好对(如<prompt, chosen_response, rejected_response>),Reward Model通常基于SFT训练的模型改造(替换输出层为回归头),或使用更小的预训练模型。在人工标注数据上学习区分回答质量,为后续PPO提供奖励信号。
然后,基于Actor模型的Backbone + 独立的价值头(Value Head)初始化为Critic Model,Reward和Reference模型在PPO训练中参数冻结,仅参与前向计算,Critic Model接收Reward Model提供的即时奖励信号,估计长期累积价值(状态值函数V(s)或动作值函数Q(s,a)),为策略优化提供方向。从而更新Actor模型。Actor模型在更新的过程中,KL散度限制与Reference Model的行为差异。
奖励模型
奖励是训练信号的来源,它决定了强化学习的优化方向。为了训练DeepSeek-R1-Zero,采用了一种基于规则的奖励系统,该系统主要由两种类型的奖励组成:
- 准确性奖励:准确性奖励模型会评估回复是否正确。例如,对于具有确定性结果的数学问题,要求模型以指定格式(比如在一个方框内)给出最终答案,这样就能基于可靠的规则来验证答案的正确性。同样地,对于力扣(LeetCode)上的题目,可以使用编译器根据预定义的测试用例来生成反馈。
- 格式奖励:除了准确性奖励模型之外,还采用了一种格式奖励模型,该模型要求模型将其思考过程置于“
<think>
”和“</think>
”标签之间。
在开发DeepSeek-R1-Zero的过程中,没有应用结果或过程神经奖励模型,因为神经奖励模型在大规模强化学习过程中可能会受到奖励操控的影响,而且重新训练奖励模型需要额外的训练资源,这会使整个训练流程变得复杂:
训练模板
为了训练DeepSeek-R1-Zero,DeepSeek团队首先设计了一个简单明了的模板,用来引导基础模型遵循指定的指令。如表1所示,这个模板要求DeepSeek-R1-Zero首先给出推理过程,然后再给出最终答案。DeepSeek团队特意将限制条件仅设定在这种结构格式上,避免任何针对特定内容的偏向,比如强制要求进行反思性推理或者推崇特定的解题策略,以确保能够准确观察模型在强化学习过程中的自然发展进程。
- 表1:DeepSeek-R1-Zero的模板。在训练期间,“提示”(prompt)将被具体的推理问题所替代。(翻译:用户与助手之间的一段对话。用户提出一个问题,助手来解答。助手首先在脑海中思考推理过程,然后向用户提供答案。推理过程和答案分别包含在
<think> </think>
和<answer> </answer>
标签内,即<think>
此处为推理过程</think>
<answer>
此处为答案</answer>
。用户:提示内容。助手: )
DeepSeek-R1-Zero的性能、自我进化过程以及顿悟时刻
图2展示了在强化学习训练过程中,DeepSeek-R1-Zero在2024年美国数学邀请赛(AIME)基准测试上的性能变化轨迹。如图所示,随着强化学习训练的推进,DeepSeek-R1-Zero的性能呈现出稳步且持续的提升。值得注意的是,在2024年AIME测试中,其平均单次通过率(Pass@1)得分显著提高,从最初的15.6%跃升至令人瞩目的71.0%,达到了与OpenAI-o1-0912相当的性能水平。这一显著的提升凸显了强化学习算法在随着时间推移优化模型性能方面的有效性。
DeepSeek-R1-Zero在无需任何监督微调数据的情况下,获得了强大的推理能力。这是一项值得关注的成就,因为它突显了该模型仅通过强化学习就能有效学习和进行泛化的能力。此外,通过应用多数表决法,DeepSeek-R1-Zero的性能还可以进一步提升。例如,在AIME基准测试中采用多数表决法时,DeepSeek-R1-Zero的性能从71.0%提升至86.7%,从而超过了OpenAI-o1-0912的性能表现。无论是否使用多数表决法,DeepSeek-R1-Zero都能取得如此具有竞争力的性能,这彰显了它强大的基础能力以及在推理任务中进一步发展的潜力。
DeepSeek-R1-Zero的自我进化过程令人着迷,它展示了强化学习是如何驱动模型自主提升其推理能力的。通过直接从基础模型开始进行强化学习,我们能够在不受监督微调阶段影响的情况下,密切监测模型的发展进程。这种方法清晰地呈现了模型随着时间推移是如何进化的,尤其是在处理复杂推理任务的能力方面。
如图3所示,DeepSeek-R1-Zero的思考时间在整个训练过程中呈现出持续的提升。这种提升并非外部调整的结果,而是模型内部的一种自然发展。DeepSeek-R1-Zero通过利用在测试阶段延长的计算量,自然而然地获得了解决日益复杂推理任务的能力。这种计算量的范围从生成数百个推理标记到数千个推理标记不等,使该模型能够更深入地探索和完善其思维过程。
在这种自我进化过程中,最引人注目的一点是,随着测试阶段计算量的增加,模型会出现复杂精妙的行为。诸如反思(即模型回顾并重新评估之前的推理步骤)以及探索解决问题的其他方法等行为会自发地出现。这些行为并非是通过明确编程设定的,而是模型在与强化学习环境相互作用的过程中自然产生的。这种自发的发展极大地增强了DeepSeek-R1-Zero的推理能力,使其能够以更高的效率和准确性来处理更具挑战性的任务。
DeepSeek-R1-Zero的不足之处:
- 尽管DeepSeek-R1-Zero展现出了强大的推理能力,并且自主发展出了意想不到的、强大的推理行为,但它也面临着一些问题。例如,DeepSeek-R1-Zero在应对诸如可读性差和语言混杂等挑战时存在困难。为了让推理过程更具可读性,DeepSeek团队探索了DeepSeek-R1,这是一种利用强化学习并结合对人类友好的冷启动数据的方法。
DeepSeek-R1:强化学习+冷启动数据
训练DeepSeek-R1的流程包含四个阶段,启发来两个自然而然的问题:
- 1)通过纳入少量高质量数据作为冷启动,推理性能能否进一步提升,或者收敛速度能否加快呢?
- 2)要如何训练一个对用户友好的模型,它不仅能生成清晰连贯的思维链(CoT),还能展现出强大的通用能力?
第一阶段:冷启动
与DeepSeek-R1-Zero不同,为了避免从基础模型开始进行强化学习(RL)导致训练时早期出现不稳定的冷启动阶段,DeepSeek-R1构建并收集了少量长思维链(CoT)数据,以微调模型,将其作为初始的RL智能体。为了收集这些数据,DeepSeek团队探索了几种方法:
- 以长思维链作为示例进行少样本提示;直接促使模型生成带有反思和验证的详细答案;
- 以易读格式收集DeepSeek-R1-Zero的输出结果;并通过人工注释者的后期处理来优化这些结果。
在这项工作中,团队收集了数千条冷启动数据,用以微调DeepSeek-V3-Base模型,并将其作为强化学习的起点。与DeepSeek-R1-Zero相比,冷启动数据具有诸多优势:
- 可读性:DeepSeek-R1-Zero的一个关键局限性在于其内容往往不适合阅读。回复可能会混杂多种语言,或者缺少用于为用户突出显示答案的Markdown格式。相比之下,在为DeepSeek-R1创建冷启动数据时,DeepSeek团队设计了一种便于阅读的模式,在每个回复的结尾处添加总结内容,并过滤掉对读者不友好的回复。在此,将输出格式定义为
|special_token|<reasoning_process>|special_token|<summary>
,其中推理过程(reasoning_process)是针对查询的思维链(CoT),而总结(summary)则用于概括推理结果。 - 潜力:通过结合人类先验知识精心设计冷启动数据的模式,最终发现其性能优于DeepSeek-R1-Zero。
第二阶段:面向推理的强化学习
在利用冷启动数据对DeepSeek-V3-Base进行微调之后,团队采用了与训练DeepSeek-R1-Zero时相同的大规模强化学习训练流程。这一阶段侧重于提升模型的推理能力,尤其是在诸如编码、数学、科学以及逻辑推理等推理密集型任务方面,这些任务涉及到有明确定义且答案清晰的问题。
在训练过程中,注意到思维链(CoT)常常会出现语言混杂的情况,尤其是当强化学习的提示涉及多种语言时。为了缓解语言混杂的问题,团队在强化学习训练过程中引入了语言一致性奖励,该奖励根据思维链中目标语言单词所占的比例来计算。尽管消融实验表明,这种调整会导致模型性能出现轻微下降,但这种奖励符合人类的偏好,使内容更具可读性。
最后,通过直接将推理任务的准确性得分与语言一致性奖励相加,从而形成最终的奖励。然后,对经过微调的模型进行强化学习训练,直到它在推理任务上达到收敛状态。
第三阶段:拒绝采样与SFT
当面向推理的强化学习达到收敛状态时,利用此时得到的checkpoint,为下一轮训练收集用于监督微调(SFT,Supervised Fine-Tuning)的数据。与最初主要关注推理的冷启动数据不同,在这个阶段,会纳入来自其他领域的数据,以提升模型在写作、角色扮演以及其他通用任务方面的能力。具体来说,按如下方式生成数据并微调模型。
- 推理数据:DeepSeek团队精心整理推理提示,并通过对上述强化学习训练得到的检查点进行拒绝采样来生成推理轨迹。在前一个阶段,只纳入了可以使用基于规则的奖励机制进行评估的数据。然而,在这个阶段,通过纳入更多数据来扩充数据集,其中一些数据使用了生成式奖励模型,即把真实答案和模型预测结果输入到DeepSeek-V3中进行判断。此外,由于模型输出有时比较混乱且难以阅读,因此过滤掉了包含混杂语言的思维链、过长的段落以及代码块。对于每个提示,采样多个回复,并且只保留正确的回复。最后总共收集了大约60万个与推理相关的训练样本。
- 非推理数据:对于非推理数据,比如写作、事实性问答、自我认知以及翻译等方面的数据,团队采用了DeepSeek-V3的流程,并复用了DeepSeek-V3的部分监督微调(SFT)数据集。对于某些非推理任务,则调用DeepSeek-V3,在通过提示回答问题之前生成一个可能的思维链。不过,对于像 “你好” 这样较为简单的查询,不会给出思维链作为回复。最终,总共收集了大约20万个与推理无关的训练样本。
使用上述精心整理的约80万个样本的数据集,对DeepSeek-V3-Base进行了两个训练周期的微调。
第四阶段:对所有场景的强化学习
为了使模型更贴合人类偏好,DeepSeek团队实施了第二个强化学习阶段,旨在提升模型的实用性和无害性,同时进一步优化其推理能力。具体而言,结合奖励信号和多样化的提示分布来训练模型。对于推理数据,遵循DeepSeek-R1-Zero中概述的方法,利用基于规则的奖励来引导在数学、编码和逻辑推理领域的学习过程。对于一般性数据,借助奖励模型来捕捉复杂且微妙场景下的人类偏好。以DeepSeek-V3的流程为基础,采用了类似的偏好对和训练提示分布。
在实用性方面,只专注于最终的总结部分,确保评估重点在于回复对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。在无害性方面,评估模型的整个回复内容,包括推理过程和总结部分,以识别并减轻在生成过程中可能出现的任何潜在风险、偏差或有害内容。最终,奖励信号与多样化数据分布的结合,使得能够训练出一个在推理方面表现出色,同时又将实用性和无害性放在首位的模型。
蒸馏:DeepSeek-R1赋予小模型推理能力
为了让更高效的小模型具备像DeepSeek-R1那样的推理能力,直接使用精心整理的80万个样本,对如通义千问(Qwen,2024b)和Llama(AI@Meta,2024)等开源模型进行了微调。研究结果表明,这种简单直接的蒸馏方法显著提升了小模型的推理能力。
对于经过蒸馏的模型,DeepSeek团队仅进行了监督微调(SFT),而没有纳入强化学习(RL)阶段,尽管加入强化学习能够大幅提升模型性能。但在此的主要目的是展示蒸馏技术的有效性,而将对强化学习阶段的探索留给更广泛的研究界。
Reference
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
https://github.com/deepseek-ai/DeepSeek-R1
https://arxiv.org/abs/2501.12948