跳转到内容
输入关键词后按 Enter 打开第一个结果。

GRPO 三层解读:DeepSeek-R1 背后的训练秘诀

选择 GRPO(Group Relative Policy Optimization)作为今天的主题——它是 DeepSeek-R1 背后让模型涌现出推理能力的关键算法,也是当前强化学习训练 LLM 的最热门方向之一。

🟢 入门:一场没有标准答案的考试

Section titled “🟢 入门:一场没有标准答案的考试”

想象一个老师想让学生们学会独立思考。她不直接教解题步骤,而是给全班出一道难题,每个人用自己的方法去解。交卷后,老师不看标准答案(因为太难了,连老师也不确定),而是把所有答案放在一起比较——谁的思路更清晰、谁的步骤更完整、谁的结果更合理,就在这些方面打分高的同学身上多给些奖励。

关键的是:奖励是相对的。没有「满分」,只有「比多数同学更好」。就算所有人的答案都不完美,相对最好的那几个依然能获得正反馈。

这恰恰就是 GRPO 的核心思想。传统方法需要一个「裁判模型」来给每个回答打绝对分,这既贵又不准。GRPO 说:不需要裁判,让一群答案互相比较就够了。模型通过「看看哪种回答比其他回答更好」来学习,就像学生们通过对比彼此的试卷来进步。

这就是为什么 DeepSeek-R1 能自己学会思考——它不需要人类一步步教它「思维链该怎么写」,只需要通过大量练习和相对比较,自然而然地涌现出推理能力。

在 GRPO 出现之前,训练 LLM 最主流的强化学习方法是 PPO(Proximal Policy Optimization)。PPO 需要四个组件协同工作:

  1. 策略模型(Actor):生成回答的 LLM
  2. 价值模型(Critic):评估每个状态的价值
  3. 奖励模型(Reward Model):给完整回答打分
  4. 参考模型(Reference Model):防止模型偏离太远

问题在于:Critic 模型几乎和 Actor 一样大。训练两个大模型内存开销巨大,而且 Critic 的训练本身就很不稳定。

GRPO 的核心洞察是:对于 LLM 的强化学习,我们不需要精确的状态价值估计,只需要相对排名就够了。

具体做法:

  1. 对每个问题 q,用当前策略生成一组回答 o_1, o_2, …, o_G
  2. 用奖励函数(可以是规则、模型、或结果验证)给每个回答打分 r_1, r_2, …, r_G
  3. 在这组回答内部做标准化,得到相对优势 A_i = (r_i - mean(r)) / std(r)
  4. 用这些相对优势直接更新策略,不再需要 Critic
  • 显存减半:不用维护 Critic 模型
  • 更稳定:组内标准化天然消除了奖励尺度的波动
  • 更灵活:奖励可以是任何可计算的信号(代码运行结果、数学验证、格式检查等),不依赖一个统一的 Reward Model

DeepSeek-R1 的训练流程是:先用 GRPO + 规则奖励(数学题对错、代码能否运行)让基础模型涌现出 CoT 能力,再用 SFT + GRPO 的混合策略进一步精调。整个过程没有使用传统的大型 Reward Model。

GRPO 优化的是带 KL 惩罚的策略梯度目标。核心是对每个问题采样 G 个回答,计算相对优势,然后用 PPO 风格的 clip 目标更新策略:

J(θ) = E[ (1/G) Σ min(ρ_i · Â_i, clip(ρ_i, 1-ε, 1+ε) · Â_i) - β · KL(π_θ ‖ π_ref) ]

其中 ρ_i = π_θ(o_i|q) / π_old(o_i|q),Â_i = (r_i - mean(r)) / std(r)

维度PPOGRPO
优势估计Critic 网络 V(s)组内相对标准化
额外参数量~2x(Actor + Critic)1x(仅 Actor)
奖励类型需要标量 Reward Model任意可计算信号
方差依赖 Critic 质量组内标准化天然降方差

GRPO 的方差来源主要是组内采样噪声。设 G 为组大小:

  • G 越大,优势估计越准确,但计算成本越高
  • DeepSeek-R1 实践中 G 通常取 16-64
  • 当奖励信号是确定性的(如数学题的对错),即使 G 较小也能收敛

一个常被忽视的细节:GRPO 的组内标准化隐含了一个假设——同一问题下的回答质量近似正态分布。对于多模态奖励(如同时考虑格式、正确性、效率),这个假设可能不成立,此时可以使用 rank-based 标准化替代。

  1. KL 散度计算:实际实现中常用 token 级别的 KL 散度,即对每个 token 的 logits 差异求和,而非整体序列的 KL
  2. 奖励裁剪:对极端奖励值做 clamp,防止单个 outlier 主导梯度
  3. 多阶段训练:先 GRPO 涌现能力 → 过滤高质量数据 → SFT → 再 GRPO 精调
  4. 与 Self-Play 结合:在对抗性场景中,可以用对手的失败作为己方的奖励信号
  • 奖励 hacking:组内优化可能导致模型学会「钻空子」——在组内相对更好但不绝对更好的策略
  • 多目标权衡:当有多个奖励信号时,如何加权仍是经验性的
  • 与蒸馏的关系:GRPO 训练出的强模型能否有效蒸馏到小模型?DeepSeek-R1 的蒸馏实验给出了肯定答案,但理论上仍不完善

本文是金豆「三层解读」系列的一部分,旨在让不同背景的读者都能理解 AI 前沿概念。