• 论文标题:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
  • 论文链接:https://arxiv.org/pdf/2501.12948v2

TL;DR

近期,DeepSeek-R1 的技术报告在 v1 版本(22页)的基础上进行了大幅扩充,形成了 v2 版本(86页)。v1 版本主要作为模型发布的简介,概述了 DeepSeek-R1-Zero 和 DeepSeek-R1 的核心理念及基础评估结果。v2 版本则补充了完整的技术实现细节,使其具备了复现指南的性质。

核心改动包括:

  1. RL 算法细节披露:详细介绍了组相对策略优化(Group Relative Policy Optimization, GRPO)算法的数学原理,并对比了其与 PPO 的差异,解释了为何摒弃 Critic 模型。
  2. 训练流程全解:从 DeepSeek-R1-Zero 的纯 RL 探索,到 DeepSeek-R1 的“冷启动数据 -> 第一阶段 RL -> 拒绝采样与 SFT -> 第二阶段 RL”的完整流水线。
  3. 失败路径总结:新增了关于过程奖励模型(PRM)和蒙特卡洛树搜索(MCTS)的失败尝试分析(Negative Results)。
  4. 超参数与基础设施:附录中公开了各阶段详细的超参数(学习率、Batch Size、KL 系数等)及基于 vLLM 的 RL 训练架构。
  5. 安全性与评估:大幅增加了安全性测试报告、中间检查点(Checkpoint)的性能评估及 Chatbot Arena 的人类偏好评测。

1. 引言

DeepSeek-R1 系列模型旨在通过强化学习(RL)提升大语言模型的推理能力。v1 版本确立了“通过大规模 RL 激励推理能力涌现”的核心论点,并展示了令人瞩目的结果。然而,对于研究社区而言,v1 缺乏具体的实施细节。v2 版本填补了这一空白,不仅详细描述了如何从零开始训练 DeepSeek-R1-Zero,还阐述了如何通过多阶段训练解决语言混合和可读性差的问题,最终得到 DeepSeek-R1。

2. GRPO 的深度解析

在 v1 版本中,DeepSeek 团队仅提及使用了 GRPO 算法。在 v2 版本中,作者在正文及附录 A.3 中详细阐述了 GRPO 的数学原理,并提供了与 PPO 的对比实验。

2.1 PPO 与 GRPO 的架构差异

传统的 PPO(Proximal Policy Optimization)算法在训练大语言模型时,通常依赖于 Actor-Critic 架构。这意味着除了策略模型(Policy Model)外,还需要维护一个参数量相当的价值模型(Value Model/Critic),用于估计状态价值 以计算优势函数(Advantage)。

v2 报告指出,GRPO 摒弃了 Critic 模型。这一设计决策主要基于两点考量:

  1. 计算资源:Critic 模型通常与 Actor 模型大小一致,在大规模模型(如 671B MoE)训练中,额外的 Critic 模型会带来巨大的显存和计算开销。
  2. 基线估计(Baseline Estimation):GRPO 通过从同一问题 采样一组输出 ,利用组内输出的奖励均值作为基线,从而替代了价值模型的预测。

2.2 GRPO 的数学形式化

在 v2 中,GRPO 的目标函数被形式化定义。对于每个问题 ,模型 采样一组输出 。优化目标如下:

其中,优势函数 基于组内标准化的奖励计算:

这里, 是第 个输出的奖励。

关键改动点分析:

  • KL 散度处理:与 PPO 通常将 KL 散度作为奖励项的一部分不同,GRPO 将 KL 散度 直接加入损失函数中。v2 附录指出,PPO 的每 token KL 惩罚可能会在长链条推理(Long CoT)中不当地抑制模型输出长度,阻碍推理能力的探索。GRPO 的处理方式更利于模型在长序列生成中保持探索性。
  • Reference Model 更新:为了平衡探索广度与训练稳定性,v2 披露了具体策略:每 400 步将 Reference Model 更新为最新的 Policy Model。

2.3 GRPO 与 PPO 的性能对比

v2 附录 A.3 展示了在 DeepSeek-Coder-V2-Lite(16B MoE)模型上进行的 MATH 任务对比实验。

实验结果表明:

  1. 参数敏感性:PPO 对 GAE(Generalized Advantage Estimation)的参数 高度敏感。默认参数 下 PPO 表现显著劣于 GRPO;即使精细调节至 ,PPO 的性能也仅接近 GRPO。
  2. 训练效率:GRPO 省略了 Value Model,减少了内存占用和通信开销,使得在大规模模型上进行 RL 训练成为可能。

3. 训练流水线

v1 版本主要描述了 R1-Zero 和 R1 的概念。v2 版本则通过 Figure 2 和相关章节,详细拆解了 DeepSeek-R1 的完整训练流水线,特别是引入了中间检查点(DeepSeek-R1 Dev1, Dev2, Dev3)的概念,揭示了性能提升的来源。

3.1 阶段一:DeepSeek-R1-Zero(纯 RL)

此阶段直接在 DeepSeek-V3-Base 上应用 GRPO,不使用任何 SFT 数据。

  • 奖励设计:v2 明确了奖励仅包含 Accuracy Reward(答案准确性)和 Format Reward(格式合规性,即 <think> 标签的使用)。明确指出不使用神经奖励模型(Neural Reward Model)以防止 Reward Hacking。
  • 自进化现象:v2 详细记录了模型在训练过程中“顿悟(Aha Moment)”的时刻,即模型学会了通过重新评估(Re-evaluation)来分配更多的思考时间。附录 C.2 提供了具体的案例分析。

3.2 阶段二:冷启动(Cold Start)

R1-Zero 虽然推理能力强,但存在语言混合和可读性差的问题。v2 引入了“冷启动”数据的构建细节(附录 B.3.2):

  • 数据来源:利用少量的长 CoT 数据对 Base 模型进行微调。这些数据通过让模型生成长 CoT、人工注释、以及多轮迭代清洗获得。
  • 格式规范:定义了清晰的输出格式 |special_token|<reasoning_process>|special_token|<summary>,强制模型在思考后生成总结。
  • 目的:为模型注入人类偏好的可读性格式,作为后续 RL 的起点。这一阶段产出的模型被称为 DeepSeek-R1 Dev1。

3.3 阶段三:推理导向的强化学习(Reasoning-oriented RL)

在冷启动模型的基础上,再次进行大规模 RL 训练。

  • 语言一致性奖励(Language Consistency Reward):v2 首次披露了具体的计算公式。为了解决 R1-Zero 的语言混合问题,引入了如下奖励:


    虽然消融实验(附录 B.6)显示该奖励会导致推理性能轻微下降,但显著提升了可读性。这一阶段的模型为 DeepSeek-R1 Dev2。

3.4 阶段四:拒绝采样与 SFT(Rejection Sampling & SFT)

当上一阶段 RL 收敛后,利用该 checkpoint 生成大量数据进行 SFT。

  • 数据构成

    • 推理数据(600k):对 RL 后的模型进行拒绝采样,保留正确且格式优良的样本。v2 指出,此处使用了生成式奖励模型(DeepSeek-V3 作为 Judge)来筛选部分数据,并过滤掉语言混合的样本。
    • 非推理数据(200k):包含写作、问答、自我认知等通用任务,复用了 DeepSeek-V3 的 SFT 数据部分。
  • 目的:将推理能力内化,同时恢复模型的通用能力。此阶段产出的模型为 DeepSeek-R1 Dev3。

3.5 阶段五:全场景强化学习(RL for all scenarios)

最后的 RL 阶段旨在对齐人类偏好(Helpfulness 和 Harmlessness)。

  • 奖励组合


    其中通用奖励结合了基于模型的偏好奖励(Helpful RM 和 Safety RM)。

  • 训练策略:v2 提到,为了避免 Reward Hacking,通用任务的偏好奖励仅在训练的最后 400 步加入,且使用了较低的 KL 惩罚系数。

4. 数据工程与奖励建模细节

v2 版本在附录中公开了大量关于数据和奖励的具体实现,这对于复现至关重要。

4.1 数据配方(Data Recipe)

附录 B.3 详细列出了 RL 训练数据的分布:

  • Math (26k): 包含代数、微积分等,通过确定性规则验证答案。
  • Code (17k): 来源于 LeetCode、Codeforces 等,通过编译器和测试用例验证。
  • STEM (22k): 物理、化学、生物等多选题目。
  • Logic (15k): 逻辑推理题。
  • General (66k): 用于最后的对齐阶段,包含有用性和安全性数据。

4.2 奖励模型(Reward Model)

v2 详细描述了通用任务奖励模型的训练:

  • Helpful RM:基于 DeepSeek-V3 管道,使用 pairwise 数据训练。
  • Safety RM:使用 point-wise 损失训练,区分安全与不安全响应。
  • 公式


4.3 提示词工程(Prompt Engineering)

v2 附录 B.2 和 J 章节展示了大量的 Prompt 模板,包括:

  • RL 训练模板:要求模型在 <think> 标签内输出思维过程。
  • 奖励模型评测模板:基于 LLM-as-a-Judge 的评测 Prompt。
  • 数据清洗模板:用于将 R1-Zero 的输出转换为可读格式的 Prompt。

5. 基础设施与训练成本

v2 附录 B.1 和 B.4 提供了关于训练基础设施和成本的硬核数据。

5.1 训练架构

DeepSeek 采用了一个解耦的 RL 训练框架:

  • Rollout Worker:仅负责推理,使用 vLLM 加速生成,部署在多节点上。
  • Training Worker:负责参数更新,使用 DeepSeek-V3 的 DualPipe 策略进行管线并行。
  • Replay Buffer:用于存储生成的样本。

这种架构允许 Rollout 和 Training 独立扩缩容,解决了长 CoT 生成速度慢导致的 GPU 利用率低的问题。

5.2 训练成本

v2 公开了具体的训练消耗(估算值):

  • DeepSeek-R1-Zero:约 101k H800 GPU hours。
  • DeepSeek-R1:SFT 数据生成约 5k GPU hours,RL 训练约 41k GPU hours。
  • 总成本:训练 DeepSeek-R1 的总算力消耗显著低于预训练阶段,证实了后训练(Post-training)的高效性。

6. 蒸馏(Distillation)与小模型策略

v1 简单提及了蒸馏效果,v2 则在 2.4 节和附录 F 进行了深入探讨。

6.1 蒸馏优于纯 RL

实验对比了两种小模型提升策略:

  1. RL from Scratch:直接在 Qwen-32B-Base 上运行大规模 RL(类似 R1-Zero 的流程)。
  2. Distillation:使用 DeepSeek-R1 生成的 800k 数据对 Qwen-32B 进行 SFT。

结果显示,蒸馏模型(DeepSeek-R1-Distill-Qwen-32B)在 AIME 2024 和 MATH-500 上的表现显著优于纯 RL 训练的模型。这表明,对于小模型而言,由大模型发现的推理模式(Reasoning Patterns)比其自我探索更易于学习。

6.2 开源模型列表

v2 确认开源了基于 Qwen2.5 和 Llama3 系列的多个蒸馏版本,涵盖 1.5B 到 70B 的参数规模。这些模型仅经过 SFT,未进行后续 RL,但性能依然超越了许多同类模型。

7. 负面结果(Negative Results)与失败尝试

这是 v2 版本中最具诚意的内容之一(附录 G.2)。研究团队分享了他们在研发过程中遇到的失败路径,为社区规避风险提供了参考。

7.1 过程奖励模型(Process Reward Model, PRM)

PRM 被认为是提升推理能力的重要方向,但 DeepSeek 团队并未在 R1 中采用,原因如下:

  • 定义困难:难以明确定义推理步骤的粒度。
  • 标注成本:大规模的人工标注难以扩展,而自动化标注的准确率不足。
  • Reward Hacking:基于模型的 PRM 极易导致 Reward Hacking,模型会利用奖励模型的漏洞刷分,而非真正提升推理质量。

7.2 蒙特卡洛树搜索(MCTS)

虽然 AlphaGo 证明了 MCTS 的有效性,但在 LLM 推理中,DeepSeek 团队遇到了以下挑战:

  • 搜索空间过大:与围棋不同,文本生成的搜索空间呈指数级增长,难以通过 MCTS 有效覆盖。
  • 价值模型训练难:训练一个能精确评估中间状态价值的 Value Model 极其困难,导致搜索引导失效。

8. 安全性评估(Safety Evaluation)

v2 新增了长达数页的安全性评估章节(附录 D.3),展示了 DeepSeek-R1 在安全性方面的表现。

  • 越狱攻击(Jailbreak):测试表明,DeepSeek-R1 在面对越狱攻击时表现出较高的拒绝率,但也存在一定的防御薄弱点。v2 讨论了长 CoT 可能带来的安全隐患(如在 <think> 中泄露有害信息,但在最终回答中隐藏)。
  • 多语言安全性:评估了模型在不同语言环境下的安全性表现。
  • 主要结论:虽然 R1 的推理能力强大,但在未经过专门的安全 RL 之前,其输出可能包含风险内容。最终发布的 R1 版本经过了安全对齐,平衡了有用性与无害性。

9. 详细评估分析

v2 扩展了实验部分,提供了更细粒度的分析。

9.1 中间检查点性能

数据展示了从 R1-Zero 到 R1-Dev1, Dev2, Dev3 再到最终 R1 的性能演变。

  • Dev1 vs R1-Zero:由于引入了通用冷启动数据,Dev1 在推理任务上略有下降,但可读性提升。
  • Dev2 vs Dev1:经过推理导向的 RL,数学和代码能力大幅回升。
  • R1 vs Dev3:最后的对齐阶段在保持推理能力的同时,显著提升了 AlpacaEval 和 ArenaHard 的分数。

9.2 测试时计算扩展(Test-time Compute Scaling)

附录 E.4 分析了 CoT 长度与问题难度的关系。

  • 自适应长度:模型学会了根据问题难度自适应地调整思考时间。对于简单问题(如 1+1),CoT 很短;对于复杂竞赛题,CoT 可达数千 token。
  • 多数投票(Majority Voting):通过对长 CoT 输出进行采样投票,R1 的性能可以进一步提升,证明了模型生成的推理路径具有多样性。

更多细节请阅读原文。


往期文章: