什么是 GRPO?
GRPO(Group Relative Policy Optimization,组相对策略优化)是一种在线策略梯度方法,它根据同一提示词下多个采样回答的组内奖励估计每个回答的相对优势,而不训练独立的 Critic 或 Value Model。
快速了解
| 全称 | Group Relative Policy Optimization(组相对策略优化) |
|---|---|
| 规范文档 | 官方规范 |
工作原理
对每个提示词,Rollout Policy 先生成一组回答,再由 Reward Function 或 Reward Model 为每个回答评分。原始 GRPO 会用同一组奖励的均值对每个奖励做中心化,再除以组内奖励标准差,把得到的回答级 Advantage 分配给回答 Token,并应用类似 PPO 的裁剪 Policy Ratio;目标还可以包含相对 Reference Policy 的 KL 惩罚。组统计量是经验 Baseline,不是 Reward 本身,而且原始均值包含当前样本。
去掉可学习 Critic 只减少了 PPO 的一个主要组件,并没有消除 Rollout 生成、Reward 设计和评测成本。GRPO 也不是 RLHF 或 RLVR 的同义词:Human Feedback、AI Feedback、可执行 Verifier、规则或学习型评分器都可以提供 Reward,但失败模式不同。
实现身份会改变算法语义。原始逐回答 Token 平均可能引入回答长度偏差,组内标准差缩放也会按 Reward 方差改变不同题目的权重;DAPO 风格的 Token 聚合、Dr. GRPO 固定常量归一化、Batch Scaling、不缩放和 Leave-One-Out Baseline 都是变体,不能当成原始目标的同一种描述。如果同组所有回答奖励相同,中心化后的 Advantage 全为零,该组没有相对学习信号。用于裁剪更新的当前策略与旧策略比率,也不同于外部推理引擎和训练引擎 Log Probability 不一致时使用的 Importance Sampling Correction。
可复现运行必须绑定 Policy、Rollout Policy、可选 Reference Policy、Tokenizer、Chat Template、Sampler、Reward 代码、Group 构造、Scaling、Loss 聚合、KL、截断和 Trainer。发布证据必须使用独立于训练 Reward 的留出指标,并检查 Reward Hacking、零方差组、回答长度、截断、熵、Clip Ratio、KL、Sampler Log-prob 差异、安全性和能力回归;训练 Reward 上升本身不是上线结论。
主要特点
- 为同一提示词采样多个回答,并根据组内奖励估计相对 Advantage,无需训练独立 Critic
- 使用类似 PPO 的 Policy Ratio 与 Clipping,并把 Reference Policy KL 作为显式且依赖实现的选择
- 将 Reward 来源与优化器分离,可使用 Verifier、规则、学习型模型或人工信号,但风险不同
- 要求显式记录 Baseline 与 Reward Scaling,因为组内、Batch、不缩放和 Leave-One-Out 会以不同方式加权题目
- 把 Loss 聚合纳入算法身份,因为原始 GRPO、DAPO 风格和 Dr. GRPO 的长度偏差不同
- 需要监控 Rollout、Reward、方差、长度、熵、裁剪、Sampler 一致性、安全和留出任务表现
常见用途
- 使用可执行且经过独立验证的结果奖励提升数学或代码任务表现
- 在每个提示词都能生成并评分多条多样尝试时进行在线后训练
- 将无 Critic 的组 Baseline 与 PPO、DPO 或其他策略优化 Baseline 对比
- 训练具有可验证端状态的有边界 Agent 任务,同时单独评测长程 Credit Assignment
- 在同一不可变实验与发布契约下比较 Reward、采样、Loss 和 KL 变体
示例
Loading code...常见问题
GRPO 与 PPO、DPO 有什么区别?
PPO 通常训练 Critic 来估计 Advantage;GRPO 则根据同一提示词多条回答的奖励估计 Baseline,两者都可使用裁剪式在线策略更新。DPO 使用固定的 chosen/rejected 配对和偏好 Loss,不运行在线 Rollout 与 Reward 循环。GRPO 降低了 Critic 成本,却增加了分组生成成本,也不会自动保证 Reward 质量或训练稳定。
GRPO 必须使用 Reward Model 或 Reference Model 吗?
GRPO 必须有 Reward 信号,但不一定要有学习型 Reward Model;可执行测试、精确匹配、规则、人工派生评分器或学习型模型都可以提供 Reward。原始目标包含 Reference Policy KL,而部分现代推理训练实现会关闭它。应显式记录 Reward 与 KL 策略,不能把某个实现选择当成普遍定义。
GRPO 同组回答得到相同奖励时会发生什么?
减去组均值后,每个相对 Advantage 都是零,因此该组不能提供相对策略梯度信号。二值 Verifier 下,同组回答全对或全错时常出现这种情况。应按任务切片监控零标准差比例,再调整题目难度、探索、Reward 或采样;不能只加数值 epsilon 就假装恢复了学习信号。
为什么不同 GRPO 实现会得到不同结果?
实现可能采用不同的 Reward Scaling、是否从 Baseline 排除当前样本、Token 或 Sequence 级 Policy Ratio、Loss 聚合、KL、单批 Rollout 更新次数、截断、外部生成引擎和 Sampler Correction。原始 GRPO、DAPO 风格 Loss 与 Dr. GRPO 对回答长度的加权并不相同,所有选择都应版本化并在相同数据与评测契约下比较。
GRPO 训练后的模型上线前应如何评测?
应在不可变留出任务上与 Base、SFT、PPO 或 DPO 以及只做 Reward 排序的 Baseline 对比,并使用独立于训练 Reward 的任务成功率、安全和能力回归指标。同时检查 Reward Hacking、零方差组、回答长度与截断、熵、裁剪、启用时的 KL、Sampler Log-prob 差异、重复运行不确定性、服务一致性和回滚准备。