1. 简介及整体印象
DeepSeek-R1凭借其训练大型语言模型(LLM)的新方法获得了广泛关注。与它的前身DeepSeek-V3相比,这项新工作在实验和理论设计上强调了一种**“更简单但更优雅”**的风格。
在评估DeepSeek-R1时,许多研究人员想起了AlphaGo的演变过程,特别是由于R1-Zero → R1的训练过程。DeepSeek-R1在各种具有挑战性的基准测试中表现出色,甚至超过或与OpenAI-o1-1217等顶级模型不相上下。此外,一个蒸馏后的32B版本(DeepSeek-R1-32B)也取得了令人印象深刻的成果,可以与OpenAI-o1-mini相媲美。
总的来说,DeepSeek-R1表明,有可能在不依赖于大规模监督微调(SFT)的情况下实现强大的推理能力。该模型采用强化学习(RL)与轻量级SFT相结合的方法,再加上一个基于规则的奖励模型,从而避免了传统奖励建模的一些陷阱。
2. 奖励设计:摆脱PRM和ORM
2.1 为什么选择基于规则的奖励?
作者选择基于规则的奖励而不是参数化奖励模型(PRM)。他们的主要观点是:
-
细粒度步骤标记很困难 在一般的推理任务中,很难为每个中间步骤定义清晰的、细粒度的标准。
-
标注成本和准确性 自动化标签生成通常效果不佳,而人工标注成本太高,难以扩展。
-
避免奖励作弊 当奖励函数本身由机器学习系统(PRM)建模时,模型可以学会操纵或利用该奖励(奖励作弊)。PRM 的持续重新训练也会增加复杂性和资源需求。
因此,DeepSeek-R1使用直接的基于规则的信号,尤其是在数学或编程任务中,通过将最终答案与真实值进行比较,或使用编译和测试用例来验证正确性。他们还加入了规则来检查输出格式(例如,推理是否包含在<think>...</think>
标签中)和语言一致性。
2.2 摒弃基于模型的输出奖励(ORM)
DeepSeek-R1甚至放弃了另一种“ORM”方法——其中一个单独的模型来判断或评分输出——原因是类似的幻觉、潜在的奖励作弊和不稳定性问题。尽管“密集奖励”方法在某些任务中具有优势,但团队更重视纯基于规则的方法所提供的简单性、稳定性和鲁棒性。
3. 训练策略:从“零”到多阶段过程
DeepSeek-R1的训练可以分解成不同的阶段:
-
DeepSeek-R1-Zero
- 起点: 使用DeepSeek-V3-Base(或类似的预训练基础模型)并直接应用RL,无需任何初始SFT。
- 方法: 使用基于规则的奖励结合GRPO(广义拒绝策略优化)算法。
- 目标: 最大化数学/编程任务的正确性,并确保某些格式规则。
- 发现:
- 模型输出在训练过程中变得更长,显示出其响应中早期自我反省或自我反思的迹象。
- 但是,文本可能难以阅读,并且存在一些语言混杂的情况。
-
过渡到完整的DeepSeek-R1
- 虽然R1-Zero成功地提高了推理性能,但它仍然难以处理可读性和语言一致性问题。
- 然后,团队添加少量高质量数据进行SFT,从而提高整体清晰度和连贯性。在这个SFT冷启动之后,他们恢复RL以进一步提升性能。
最终的R1训练流程包括四个步骤:
- 使用高质量数据进行最小化SFT
- 收集几千个精心挑选的例子(例如,详细的CoT数据)。
- 进行简短的SFT,使模型“表达”更连贯。
- 针对推理的聚焦RL
- 与R1-Zero中相同,使用基于规则的奖励进行数学/逻辑任务。
- 添加语言一致性奖励以减少在一个答案中混合多种语言的情况。
- 拒绝采样+SFT
- 使用拒绝采样来过滤上一阶段的模型输出,去除低质量或格式不正确的响应。
- 通过使用“LLM作为评判者”风格的验证(例如,来自DeepSeek-V3)来加入不容易用简单的基于规则的方法判断的任务。
- 将约60k-600k(取决于所提及的确切数据集)个经过过滤的推理样本与约20k-200k个非推理样本结合起来进行另一轮SFT(2个epoch)。
- 用于全面覆盖的RL
- 对于不同的任务类型,模型使用不同的提示和奖励规则。
- 数学/逻辑任务继续依赖于原始的基于规则的评分。
- “一般任务”使用标准的奖励模型来衡量是否有帮助和安全性。
最终,DeepSeek-R1在推理性能和面向用户的特性(如清晰度和无害性)之间取得了平衡,在许多基准测试中有效地与顶级模型相匹配。
4. 观察:KL损失和GRPO与PPO
DeepSeek-R1在其RL阶段使用GRPO,这与PPO等方法有所区别:
- PPO通常在计算最终策略梯度之前将KL惩罚项乘以奖励。
- GRPO而是直接减去KL项,通常使用专门的估计器(K3)以确保方差更低。
这种方法使训练更加稳定,尤其是在只采样部分token时。它避免了使用KL的直接蒙特卡洛估计带来的更高方差。
5. AlphaGo的回声:“零”感觉很熟悉
读者经常注意到与AlphaGo的相似之处,因为作者也尝试了MCTS(蒙特卡洛树搜索)和“类似零”的方法:
- R1-Zero与AlphaGo Zero类似,因为它从最少或没有监督数据开始。
- AlphaGo使用人类游戏记录进行初始监督策略,然后自我博弈导致AlphaZero。相比之下,DeepSeek的工作流程几乎相反:R1-Zero首先从头开始进行RL,然后添加一些SFT。
最终,DeepSeek尝试在语言推理中使用MCTS遇到了障碍(分支因子大,难以训练细粒度的价值模型等),因此MCTS在最终流程中被认为是不成功的。
6. 实验结果和基准测试
在一系列高难度任务(数学推理、代码补全、复杂问答)中,DeepSeek-R1的性能与OpenAI-o1-1217相当——将其置于具有推理能力的LLM的领先组中。
同时,中间的R1-Zero在推理任务上已经显示出比基线有显著的提升。然而,它产生的输出更生硬或语言混合。因此,后来引入的SFT步骤提高了用户体验和可靠性,同时继续保持甚至增强了模型强大的推理能力。
7. 知识蒸馏和小模型
作者指出,简单地将DeepSeek-R1蒸馏成更小的模型(例如,Qwen2.5-32B)可以产生与更昂贵的小模型RL训练相当的结果。这是一个令人信服的论点,即与其在小模型上进行完整的RL流程,不如高效地从更强大的模型(如R1)中收集高质量的输出,然后对这些输出进行监督微调。
结果:
- 蒸馏后的DeepSeek-R1-32B据报道达到了接近OpenAI-o1-mini的性能,而成本只是从头开始使用RL开发小模型的一小部分。
8. 挑战与未来方向
-
通用能力
- DeepSeek-R1专注于推理任务,但在某些通用领域仍然不如DeepSeek-V3。团队计划改进模型的更广泛覆盖范围,可能使用更广泛的CoT或特定领域的数据。
-
语言混合和多语言支持
- 虽然R1对中文和英文有语言一致性检查,但它仍然难以处理其他语言或语言切换场景。
-
提示工程敏感性
- R1可能对多轮或少样本提示敏感。作者建议采用零样本方法,只需指定所需的输出格式即可获得最佳结果。
-
软件工程和长期评估
- 由于代码任务可能需要更长时间才能验证,因此大规模RL更困难。DeepSeek-R1确实在软件测试方面有所改进,但并没有比DeepSeek-V3有显著的飞跃。未来的计划包括异步评估,以加快编程任务中的RL速度。
-
扩展到600B及以上
- 本文没有完全证明这种方法在极端规模(例如,600B参数)下是否仍然稳定有效。这是团队可能探索的另一个开放领域。
9. 结论
DeepSeek-R1证明,大规模SFT并不是显著提高语言模型推理能力的绝对先决条件。通过利用简单而强大的基于规则的奖励,在开始时跳过或最小化SFT,然后集成少量精心挑选的数据集加上重复的RL阶段,R1在具有挑战性的基准测试中实现了最先进的性能。
这项研究还强调了知识蒸馏——利用更强大的模型(R1)的输出训练较小的模型——如何比让小模型直接进行大量的RL训练更有效,并产生更好的结果。
虽然DeepSeek-R1在通用性和提示方面仍然存在一些差距,但它为未来指明了方向,即混合RL+最小化SFT可以产生强大、灵活且更易于控制的LLM。这篇论文设定了一个有希望的里程碑,表明通过正确的奖励和迭代训练阶段,模型可以在没有大规模逐步标注的情况下“发现”自我反省、扩展推理和强大的性能。