DeepSeek-R1 训练流程与 RL 方法对比

分类: 推理与评估 · 难度: 进阶 · 关联讲座: L12

本文详细拆解 DeepSeek-R1 的四阶段训练流程,并对比 PPO、GRPO、DAPO 三种强化学习算法的核心差异。R1 是首个完全开源的推理模型,其训练方法论(纯 RL 涌现推理 + 多阶段流水线)对后续推理模型的开发具有深远影响。

📐 DeepSeek-R1 四阶段训练流程

Stage 1:Cold Start SFT

用少量(数千条)人工筛选的 (prompt, long CoT, answer) 做监督微调,目的是让模型学会基本的”思考”格式(<think>...</think> 标签结构),避免后续 RL 从完全混乱的输出起步。

Stage 2:RL for Reasoning(核心阶段)

使用 GRPO 做纯 RL 训练,奖励函数只依赖最终答案:

r(y)={1.0最终答案正确0.0最终答案错误0.1格式奖励(正确使用 </think> 标签)r(y) = \begin{cases} 1.0 & \text{最终答案正确} \\ 0.0 & \text{最终答案错误} \\ 0.1 & \text{格式奖励(正确使用 </think> 标签)} \end{cases}

关键:不使用 Process Reward Model(PRM),只验证最终结果。对于数学题用精确匹配,代码题用单元测试执行。

Stage 3:Rejection Sampling SFT

对 Stage 2 的模型大规模采样,过滤出高质量推理路径(答案正确 + CoT 合理),混合通用能力数据,重新做 SFT。这一步修复了 R1-Zero 的语言混杂问题。

Stage 4:General RLHF

在 Stage 3 的 SFT 模型上继续 RLHF,覆盖安全对齐、指令遵循等通用能力,得到最终的 R1。

📐 PPO / GRPO / DAPO 核心差异

PPO(近端策略优化)——需要 4 个模型:

JPPO=E[min(ρtAt, clip(ρt,1ϵ,1+ϵ)At)βDKL(πθπref)]J_{\text{PPO}} = \mathbb{E}\left[\min\left(\rho_t A_t,\ \text{clip}(\rho_t, 1-\epsilon, 1+\epsilon)\, A_t\right) - \beta D_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}})\right]

其中 ρt=πθ(atst)/πold(atst)\rho_t = \pi_\theta(a_t|s_t) / \pi_{\text{old}}(a_t|s_t) 是重要性采样比,AtA_t 由 GAE(广义优势估计)+ 价值网络计算。需要:策略网络、参考模型、奖励模型、价值网络(4 个)。

GRPO(组相对策略优化)——去掉价值网络,只需 2 个模型:

对同一问题 xx 采样 GG 个回答 {y1,,yG}\{y_1, \ldots, y_G\},用组内统计替代价值网络:

Ai=riμGσG+ε,JGRPO=E[min(ρiAi, clip(ρi,1±ϵ)Ai)βDKL]A_i = \frac{r_i - \mu_G}{\sigma_G + \varepsilon}, \quad J_{\text{GRPO}} = \mathbb{E}\left[\min(\rho_i A_i,\ \text{clip}(\rho_i, 1\pm\epsilon)\,A_i) - \beta D_{\text{KL}}\right]

DAPO(动态采样策略优化)——解决 GRPO 的 entropy collapse:

GRPO 训练后期模型探索不足(总是采样相似回答,σG0\sigma_G \to 0,梯度消失)。DAPO 引入:

  • Clip-Higher:上下界不对称([1ϵl,1+ϵh][1-\epsilon_l, 1+\epsilon_h]ϵh>ϵl\epsilon_h > \epsilon_l),鼓励探索
  • Dynamic Sampling:过滤掉全对/全错的 batch(σG=0\sigma_G=0,梯度为零,纯浪费计算)
  • Token-level Loss:loss 按 token 平均而非按序列平均,避免短序列主导梯度