DeepSeek-R1这篇论文一经发表瞬间就吸引了无数研究者的目光。发现最近在工位看论文的,十有八九便是这篇DeepSeek-R1。这般盛况,不禁令人回想起transformer初现于世之时,同样在学界激起千层浪,引发广泛关注与深入探讨。DeepSeek-R1一文,对众多 AI 从业者和研究者而言,已然具备了极高的价值,称其为当今 AI 界的 “圣经” 亦不为过。今天,就让我们一同深入探究这篇论文的精彩内容,领略其中蕴含的创新理念与前沿技术。
论文大纲
摘要
推出第一代推理模型DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero是一款通过大规模强化学习(RL)训练而成的模型,无需将监督微调(SFT)作为初始步骤,展现出卓越的推理能力。通过强化学习,DeepSeek-R1-Zero自然衍生出众多强大且引人关注的推理行为。然而,它也面临诸如可读性差和语言混杂等挑战。为解决这些问题并进一步提升推理性能,我们推出DeepSeek-R1,该模型在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1在推理任务上取得了与OpenAI-o1-1217相当的性能。
1. 主要贡献
1. Post-Training: Large-Scale Reinforcement Learning on the Base Model
- 直接将强化学习用到基座模型上而没有使用传统的监督微调。这种方法使得模型去探索CoT来解决更复杂的问题,最终得到了DeepSeek-R1-Zero,这个模型展现了自我验证,反思,生成长的思维链等方面的能力。值得一提的是,这是第一篇公开的关于验证大语言模型的推理能力可以完全通过强化学习来提升,而无需监督微调的研究。
-
介绍了DeepSeek-R1的整体训练流程,分为2阶段的强化学习和2阶段的监督微调。RL阶段旨在发掘更好的推理模式,与人类的偏好保持一致,监督微调阶段为模型的推理和非推理能力奠定基础。
2. Distillation: Smaller Models Can Be Powerful Too
- 相对于在小模型上做强化学习,大模型的推理模式可以通过蒸馏的方式输入小模型,让小模型具有更好的表现。
-
使用DeepSeek-R1生成的推理数据,在开源社区微调了几个dense模型。结果表明,蒸馏后的小模型在各个数据集上都取得了惊人的表现。DeepSeek-R1-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 相当。向社区开源了基于 Qwen2.5 和 Llama3 系列的 1.5B、7B、8B、14B、32B和 70B参数的蒸馏模型权重。
2. 方法
以前的工作都严重依赖大量的有监督数据去提升模型的能力。在这个工作中展示了推理能力可以通过大规模的强化学习而不需要SFT作为冷启动来显著提升模型表现。另外加入少量的冷启动数据可以进一步提升能力。
2.1 DeepSeek-R1-Zero:在基座模型上进行强化学习
2.1.1 强化学习算法
Group Relative Policy Optimization
在强化学习中一般分为策略模型(policy model)和价值评估模型(critic model),策略模型负责决定智能体在环境中采取什么行动,而价值评估模型评估策略模型的好坏(价值)。GRPO摒弃了传统的策略模型和价值评估模型规模相同的做法,而是使用群体得分来评估baseline,baseline用于计算优势函数,它可以帮助减少策略梯度的方差,从而使训练更稳定。
具体来说,对于每个问题q,GRPO从旧的策略中采样一组输出{o1,o2,...,oG}, 然后通过最大化以上函数(本文唯一的公式)来优化策略模型。
这个强化学习的策略应该就是R1-Zero和R1大放异彩的关键原因,改天找时间好好分析一下GRPO算法。
2.1.2 奖励模型
强化学习中主要就是通过奖励来确定优化的方向,训练DeepSeek-R1-Zero时制定了一个基于规则的包含两种奖励的奖励系统。
Accuracy Rewards:主要是评判结果是否正确。比如数学问题的答案是唯一的,对结果有特定的要求(比如答案写在框里),这样就可以依据规则可靠的验证其正确性。同样的,对于力扣的问题,根据预先设定的测试用例,编译器能运行代码并生成反馈来确定答案是否正确。
Format Rewards:为了让模型的输出更具规范性和可读性,还额外加入了格式奖励模型,该奖励模型强制模型将其思考过程放在<think></think>标签对中。比如在回答数学问题时,模型会按照这种格式呈现解题思路,<think>分析题目条件,找到解题思路,公式推导中间过程</think><answer>答案</answer>,以此引导模型规范输出,更清晰的展现思考过程,有助于提升模型的可解释性和对复杂问题的解决能力。
在开发DeepDeek-R1-Zero的过程中,没有使用结果或过程神经奖励模型,因为在大规模的强化学习过程中,神经奖励模型可能会遭遇奖励作弊问题。模型可能会通过一些不当手段去迎合奖励机制,而不是真正提高解决问题的能力。比如模型会学习一些表面上能获得奖励,但实际对于推理能力没有提升的模式,这会影响训练。其次,重新训练奖励模型需要额外的训练资源,这意味着需要投入更多的计算资源,时间等。
2.1.3 训练模板
设计了一个简单直接的模型来引导模型遵循特定的指令。如下图所示,这个模板要求DeepSeek-R1-Zero先产生推理过程,然后再输出最后的回答。我们有意将约束限定在结构格式中,避免引入特定内容的偏差,比如强制要求反思性推理或推崇特定的解题策略。这是因为如果存在这些偏差,可能会干扰模型在强化学习过程中的自然发展,无法真实地观察模型的学习和进化过程。通过这种方式,我们可以更准确地评估强化学习对模型推理能力提升的实际效果,了解模型在无外部特定引导下的自我进化能力 。
2.1.4 性能,自我进化以及“顿悟时刻”
性能
图 2 展示了 DeepSeek-R1-Zero 在 AIME 2024 基准测试中,随着强化学习训练过程的推进,其性能的变化轨迹。这为后续分析模型性能提供了直观的数据依据。表 2 对 DeepSeek-R1-Zero 和 OpenAI 的 o1-0912 模型在各种推理相关基准测试上进行了对比分析。结果显示,强化学习使DeepSeek-R1-Zero 在无需任何监督微调数据的情况下,获得了强大的推理能力。
自我演进过程
DeepSeek-R1-Zero的自我进化过程充分展示了强化学习是如何驱动一个模型自主提升其推理能力的。通过在基座模型上直接进行强化学习,我们可以在不受sft阶段的影响下,密切的关注模型发展。这种方法提供了一个清晰的视角去观察一个模型是如何随着时间演进,尤其是处理复杂推理问题的能力。这种自我进化最引人注目的方面之一,是随着测试时计算量的增加,复杂行为开始出现。比如反思行为 —— 模型会回顾并重新评估之前的步骤,以及自发地探索解决问题的替代方法。这些行为并非预先明确编程设定的,而是模型与强化学习环境交互的结果。这种自发的发展显著增强了 DeepSeek-R1-Zero 的推理能力,使其能够更高效、准确地处理更具挑战性的任务。
顿悟时刻(啊哈?啊哈!最有意思的点)
"顿悟时刻"(Aha Moment)是训练过程中一个特别有趣的现象,这一时刻发生在训练的中间阶段,在这个阶段,模型会给这个问题分配更多的思考时间。这个行为不仅仅是模型不断增强的推理能力的证明,而且也是强化学习是如何引导模型产生意想不到的更复杂的结果的有力证明。这一刻不仅是模型的 “顿悟时刻”,对于观察其行为的研究人员来说亦是如此。它凸显了强化学习的强大力量与魅力:我们无需明确教导模型如何解决问题,只需给予它恰当的激励,它就能自主开发出先进的问题解决策略。“顿悟时刻” 有力地提醒我们,强化学习具有挖掘人工系统新智能级别的潜力。顿悟时刻如下图所示:
这个“啊哈时刻”的出现算不算大模型已经具有智能,可以独立思考的一个体现呢?细思极恐
2.1.5 DeepSeek-R1-Zero的缺点
尽管 DeepSeek-R1-Zero 展现出强大的推理能力,还能自主发展出意想不到的强大推理行为,但它也面临一些问题。例如,DeepSeek-R1-Zero 存在可读性差、语言混杂等挑战。为了让推理过程更具可读性,并与开放社区共享,我们探索了 DeepSeek-R1。这是一种利用强化学习(RL)和对人类友好的冷启动数据的方法。
2.2 DeepSeek-R1: 带冷启动的强化学习
受到DeepSeek-R1-Zero的启发,自然而然有了两个疑问:1)通过引入少量高质量数据作为冷启动,能否进一步提高推理性能或加快收敛速度?2)我们如何训练一个对用户友好的模型,使其不仅能生成清晰连贯的思维链(CoT),还能展现出强大的通用能力?为了解决这个问题,我们设计了以下4个阶段。
2.2.1 冷启动
与DeepSeek-R1-Zero不同,为避免从基础模型开始进行强化学习(RL)训练时早期出现不稳定的冷启动阶段,对于DeepSeek-R1,我们构建并收集了少量长思维链(CoT)数据,以此对模型进行微调,作为初始的RL行动者。为收集此类数据,我们探索了多种方法:以长思维链示例进行少样本提示;直接促使模型生成包含反思与验证的详细答案;以可读格式收集DeepSeek-R1-Zero的输出;以及通过人工标注者进行后处理来优化结果。我们收集了数千条冷启动数据,对DeepSeek-V3-Base进行微调,以此作为强化学习(RL)的起点。与DeepSeek-R1-Zero相比,冷启动数据具有以下优势:
可读性:DeepSeek-R1-Zero的一个关键局限在于其内容往往不便于阅读。它给出的回答可能会混杂多种语言,或者缺少Markdown格式来为用户突出显示答案。相比之下,在为DeepSeek-R1创建冷启动数据时,我们设计了一种便于阅读的模式,在每个回答的结尾添加总结,并筛除那些对读者不友好的回答。在此,我们将输出格式定义为 | 特殊标记 |<推理过程>| 特殊标记 |< 总结 > ,其中推理过程是针对查询的思维链(CoT),而总结用于概括推理结果。
潜力:通过利用人类先验知识精心设计冷启动数据的模式,我们发现(该模型)相较于DeepSeek-R1-Zero有更出色的表现。我们认为,迭代训练对于推理模型而言是一种更优的方式。
2.2.2 推理导向的强化学习
在利用冷启动数据对 DeepSeek-V3-Base 进行微调之后,我们采用了与 DeepSeek-R1-Zero 中相同的大规模强化学习训练流程。这一阶段着重提升模型的推理能力,特别是在诸如编码、数学、科学以及逻辑推理等推理密集型任务上,这些任务包含定义明确且有清晰解决方案的问题。在训练过程中,我们注意到思维链(CoT)经常出现语言混杂的情况,尤其是当强化学习的提示涉及多种语言时。为缓解语言混杂问题,我们在强化学习训练期间引入了一种语言一致性奖励,它通过计算思维链中目标语言词汇的比例来确定。尽管消融实验表明,这种调整会导致模型性能略有下降,但该奖励符合人类偏好,使模型输出更具可读性。最后,我们通过直接将推理任务的准确率与语言一致性奖励相加,从而形成最终奖励。然后,我们对微调后的模型进行强化学习训练,直至其在推理任务上达到收敛状态。
2.2.3 拒绝采样和监督微调
当面向推理的强化学习(RL)过程收敛后,我们会利用此时得到的checkpoint,为下一轮训练收集监督微调(SFT)数据。与最初主要聚焦于推理的冷启动数据不同,这个阶段会纳入来自其他领域的数据,以提升模型在写作、角色扮演及其他通用任务方面的能力。具体而言,我们会按以下方式生成数据并对模型进行微调。
推理数据: 我们精心挑选推理提示,并从上述强化学习训练得到的检查点通过拒绝采样生成推理轨迹。在前一阶段,我们只纳入了那些可以使用基于规则的奖励进行评估的数据。然而,在这个阶段,我们通过纳入额外数据来扩充数据集,其中一些数据使用生成式奖励模型,将真实情况和模型预测结果输入到 DeepSeek-V3 中进行判断。此外,由于模型输出有时杂乱且难以阅读,我们筛除了包含混合语言、长篇段落和代码块的思维链。对于每个提示,我们采样多个回答,只保留正确的回答。总体而言,我们收集了约 60 万个与推理相关的训练样本。
非推理数据: 对于非推理数据,如写作、事实性问答、自我认知以及翻译等,我们采用 DeepSeek-V3 流程,并复用 DeepSeek-V3 监督微调(SFT)数据集中的部分数据。对于某些非推理任务,在通过提示回答问题之前,我们调用 DeepSeek-V3 生成一个可能的思维链。然而,对于像 “你好” 这类较简单的查询,我们在回复中不提供思维链。最终,我们总共收集了大约 20 万个与推理无关的训练样本。
2.2.4 全场景的强化学习
为了使模型更符合人类偏好,我们实施了第二个强化学习阶段,旨在提升模型的实用性与无害性,同时优化其推理能力。具体而言,我们结合奖励信号和多样化的提示分布来训练模型。
对于推理数据,我们遵循 DeepSeek-R1-Zero 中概述的方法,即利用基于规则的奖励,在数学、代码和逻辑推理领域引导学习过程。对于一般性数据,我们借助奖励模型,捕捉人类在复杂微妙场景中的偏好。我们基于 DeepSeek-V3 流程,采用类似的偏好对和训练提示分布。
在实用性方面,我们只关注最终的总结部分,确保评估重点在于回复对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。在无害性方面,我们评估模型的整个回复,包括推理过程和总结,以识别并减轻生成过程中可能出现的任何潜在风险、偏差或有害内容。
最终,奖励信号与多样化数据分布的整合,使我们能够训练出一个在推理方面表现出色,同时将实用性和无害性放在重要位置的模型。
3. 蒸馏: 赋予小模型推理能力
为了让更高效的小模型具备像 DeepSeek-R1 那样的推理能力,我们直接使用通过 DeepSeek-R1 精心整理的 80 万个样本,对如 Qwen和 Llama这样的开源模型进行微调,具体细节见 2.3.3 节。我们的研究结果表明,这种简单直接的蒸馏方法显著提升了小模型的推理能力。
对于经过蒸馏的模型,我们仅应用监督微调(SFT),而不纳入强化学习(RL)阶段,尽管加入强化学习能够大幅提升模型性能。我们在此的主要目标是展示蒸馏技术的有效性,将强化学习阶段的探索留给更广泛的研究群体。
4. 实验
DeepSeek-R1 实验结果对比↓
蒸馏模型结果对比↓
5.讨论
蒸馏 v.s. 强化学习
为了探究蒸馏和大规模的强化学习对模型效果的影响,又进一步做了实验。对Qwen-32B-Base模型直接进行强化学习得到DeepSeek-R1-Zero-Qwen-32B,结果如下:
可以看到,经过强化学习,DeepSeek-R1-Zero-Qwen-32B的表现已经可以媲美Qwen-32B-Preview,但是经过蒸馏得到DeepSeek-R1-Distill-Qwen-32B在所有的测试中都表现得更出色。因此,我们可以得出两个结论:第一,将更强大的模型蒸馏到较小的模型中能产生出色的效果,然而,依赖本文中提到的大规模强化学习的小模型,需要巨大的计算能力,甚至可能无法达到蒸馏所带来的性能提升。第二,虽然蒸馏策略既经济又有效,但要突破智能的边界,可能仍需要更强大的基础模型和更大规模的强化学习。
不成功的尝试
不成功的尝试更具有参考价值~必须要看看怎么个事儿
Process Reward Model(PRM)
过程奖励模型(PRM)是一种合理的方法,旨在引导模型采用更好的方式来解决推理任务,然而,在实际应用中,PRM 存在三个主要局限性,这些局限性可能会阻碍其最终取得成功。首先,在一般推理中,要明确界定一个精细的步骤颇具挑战性。其次,判断当前中间步骤是否正确是一项艰巨的任务。使用模型进行自动标注可能无法产生令人满意的结果,而手动标注则不利于大规模应用。第三,一旦引入基于模型的 PRM,不可避免地会导致奖励作弊问题,并且重新训练奖励模型需要额外的训练资源,这会使整个训练流程变得更加复杂。
Monte Carlo Tree Search(MCTS)
受 AlphaGo和 AlphaZero启发,我们探索使用蒙特卡洛树搜索(MCTS)来提升测试阶段计算的可扩展性。这种方法是将答案分解为较小的部分,以便模型能够系统地探索解决方案空间。为实现这一点,我们促使模型生成多个标签,这些标签对应搜索所需的特定推理步骤。在训练过程中,我们首先利用收集到的提示,在预训练的价值模型引导下,通过 MCTS 寻找答案。随后,我们使用由此得到的问答对来训练行动者模型和价值模型,并不断迭代优化这个过程。
然而,在扩大训练规模时,这种方法遇到了几个挑战。首先,与国际象棋不同,国际象棋的搜索空间相对明确,而 token generation 的搜索空间呈指数级增大。为解决这一问题,我们为每个节点设置了最大扩展限制,但这可能导致模型陷入局部最优解。其次,价值模型直接影响生成的质量,因为它引导着搜索过程的每一步。训练一个精细的价值模型本身就很困难,这使得模型难以通过迭代得到提升。虽然 AlphaGo 成功的核心在于训练一个价值模型来逐步提高其性能,但由于令牌生成的复杂性,在我们的设定中很难复制这一原则。
结论,局限以及未来展望
在本研究中,我们分享了通过强化学习提升模型推理能力的历程。DeepSeek-R1-Zero 代表一种不依赖冷启动数据的纯强化学习方法,在各类任务中都取得了出色性能。DeepSeek-R1 更为强大,它利用冷启动数据并结合迭代强化学习微调。最终,DeepSeek-R1 在一系列任务上实现了与 OpenAI-o1-1217 相当的性能。
我们进一步探索将推理能力蒸馏到小型稠密模型中。我们使用 DeepSeek-R1 作为教师模型来生成 80 万个训练样本,并对几个小型稠密模型进行微调。结果很有前景:DeepSeek-R1-Distill-Qwen-1.5B 在数学基准测试中表现优于 GPT-4o 和 Claude-3.5-Sonnet,在 AIME 测试中得分达到 28.9%,在 MATH 测试中得分达到 83.9% 。其他稠密模型也取得了令人瞩目的成绩,显著超越了基于相同基础检查点的其他经过指令微调的模型。
未来将继续在以下几个方面对DeepSeek-R1进行研究:
泛化/通用能力
在函数调用、多轮对话、复杂角色扮演和 JSON 输出等任务中,DeepSeek-R1 的能力不及 DeepSeek-V3。展望未来,我们计划探索如何利用长思维链(CoT)来强化这些领域的任务表现。
语言混合
DeepSeek-R1 目前针对中文和英文进行了优化,在处理其他语言的查询时,可能会出现语言混杂的情况。例如,即便查询使用的既非英文也非中文,DeepSeek-R1 仍可能用英文进行推理和回复。我们计划在未来的更新中解决这一局限。
提示词工程
在评估 DeepSeek-R1 时,我们发现它对提示很敏感。少样本提示总会降低其性能。因此,为获得最佳效果,我们建议用户直接描述问题,并使用零样本设置指定输出格式。
软件工程任务
由于评估时间较长,影响了强化学习(RL)过程的效率,大规模强化学习在软件工程任务中尚未得到广泛应用。因此,在软件工程基准测试中,DeepSeek-R1 相较于 DeepSeek-V3 并未展现出巨大提升。未来版本将通过对软件工程数据实施拒绝采样,或在强化学习过程中采用异步评估的方式来提高效率,从而解决这一问题。
整篇论文看下来可以感觉到DeepSeek-R1的工作还是非常翔实的,尤其是提出了抛弃监督微调(Supervised Fine-Tuning, SFT),直接对base model进行大范围的强化学习(Reinforcement Learning, RL)这个技术还是让人耳目一新的,相信接下来会有非常非常多工作都基于此开展。可惜并没有对更多的技术细节展开更深入的讨论,可能过于先进不便展示。
不管是R1-Zero还是R1都是基于DeepSeek-V3-base这个模型开展的训练,一定程度上也得益于MoE结构和MLA这个注意力机制,想要进一步了解这个模型为什么有效就必须对DeepSeek-V3展开更深入的学习,下一篇的任务这不就来了吗?!