GRPO:基于组内标准化的策略优化#
TL;DR#
本页内容8 个部分
1. Critic 的成本与组内参照#
假设模型对同一道数学题生成四条回答,前两条答对,后两条答错,任务分数为 。如果不训练额外的价值模型,怎样利用这四个结果构造策略更新信号?
PPO 用 Critic 预测各前缀的价值,再将后续回报与价值预测比较。保存、训练价值模型并计算逐位置预测,会增加显存和计算开销。GRPO(Group Relative Policy Optimization)改用同题回答的组内统计作为参照,省去 Critic。[1]
本文只讨论终局监督,每条回答得到一个最终任务分数。GRPO 需要完成两个操作:(1)用组均值和标准差,将分数变成每条回答的相对权重;(2)让该权重作用于回答内各 token 的策略更新。参考 KL 惩罚单独计算,不进入任务评分。
2. 从四条回答的得分计算优势#
先比较同一道题中的回答。分数高于组均值,任务权重为正;低于组均值,任务权重为负。组内标准差用于调整这些残差的尺度。
2.1 定义同题组内的相对权重#
固定问题 ,用旧策略 独立采样 个回答 ,由验证器或奖励模型给出任务分数 。不需要 Critic,仍然需要评分。 每道题各自成组,不把不同题目的得分混在一起比较。
记组均值为 、标准差为 ,取 防止除零,标准化任务权重为:
这里的 称为优势估计(advantage),表示当前回答得分减去组均值、再按组内标准差缩放后的残差。减均值决定正负,除标准差调整尺度。本文用总体标准差 ,算例忽略很小的 。[1]
2.2 四条回答的组内优势计算#
二值验证器给出 。先求均值 ,四条回答的残差就是 。总体标准差为 ,再除以标准差得到 。
下面可以切换四条回答的对错,观察组内正确回答数量变化对各回答权重的影响。固定同一道题、,只重算组内统计与 advantage;不改变 ratio、长度、clipping 或 KL,也不模拟参数更新。演示取 ,显示值保留三位小数,正文手算仍忽略这个很小的稳定项。
切换回答的对错(勾选为答对,得分 1;未勾选为答错,得分 0)
| 回答 | 答对 | 任务分数 | 减均值 | Advantage |
|---|---|---|---|---|
| y₁ | 1 | 0.500 | 1.000 | |
| y₂ | 1 | 0.500 | 1.000 | |
| y₃ | 0 | −0.500 | −1.000 | |
| y₄ | 0 | −0.500 | −1.000 |
组均值:;总体标准差:。
2 条答对、2 条答错:正确回答的权重为 1.000,错误回答为 −1.000。
取消第二条回答的勾选后, 中唯一正确回答的权重约为 。恢复第二条并勾选第三条后, 中每条正确回答约为 ,唯一错误回答约为 。全部勾选或全部取消时,任务相对权重均为零。后续目标计算仍采用两条回答正确的初始设定。
在初始评分 下,前两条回答的权重为 ,后两条为 。负优势仅表示得分低于组均值:连续评分下,绝对得分较高的回答也可能获得负优势。
如果全对或全错,所有 ,这一组没有来自任务 reward 的相对更新信号;KL 项仍可能产生梯度。稳定项 不改变分数相同这一事实。
3. 用回答优势计算 token 任务项#
3.1 同一回答共享优势,各位置计算概率比#
继续使用四条回答,任务权重为 。为便于手算,假设每条回答恰有两个有效生成 token,包含终止 token,排除 prompt 和 padding。同一回答的两个位置使用相同的优势,但它们的条件概率可以发生不同变化。
用 表示正在更新的 current 策略,old 是生成本批回答的策略,在本批更新中固定。对同一个已采样前缀和 token,分别计算 current 与 old 的概率,再取比值:
例如,第一条回答的两个位置若分别得到 和 ,它们共用 ,未裁剪任务项却分别为 和 。回答优势确定共同的正负权重,概率比反映各位置相对采样策略的变化。
3.2 裁剪并平均四条回答的任务项#
GRPO 沿用 PPO 的裁剪规则。令 为裁剪宽度,每个位置的任务项为 。正优势且概率比超过上界时,任务项进入常数分支;负优势且概率比低于下界时,也进入常数分支。概率比本身仍可能越界。
取 ,暂不加 KL。假设四条回答的 token 概率比如下。这些是手算设定,不是训练结果。
| 回答 | ratio(两项) | clipped 目标(两项) | 回答内平均 | |
|---|---|---|---|---|
| 1 | 1.15 | |||
| 1 | 0.95 | |||
| −1 | −0.85 | |||
| −1 | −1.20 |
的第二项为 ,正优势任务项越过上裁剪界后保持常数; 的第二项为 ,负优势回答的概率上升仍降低该项目标值。
先对每条回答的两个任务项取平均,再对四条回答平均,任务目标为 。这只是当前数据上的目标取值,参数更新还取决于各 token 的 log 概率梯度。
3.3 从任务项得到逐 token 梯度#
完整回答的 log 概率是各 token 的 log 概率之和,因此:
这说明一个回答级权重可以乘到所有 token 的 log 概率梯度上。共享优势不表示每个 token 对最终结果的贡献相同。 逐 token 的 ratio、clipping 和回答内平均,是 GRPO 沿用的目标设计,不能仅由这个分解恒等式推出。
记第 条回答的有效生成长度为 。GRPO 对回答内位置平均,再对 条回答平均,所以每个位置的聚合系数为 。固定优势、组内统计与 old 概率,梯度只通过 current 传播。未进入裁剪常数分支时,,因而:
四条双 token 回答的共同分母是 。第一条回答的第一个 token 未触发裁剪,其 log 概率梯度系数为 ;第二个 token 已触发裁剪,任务梯度为零。这里不讨论恰在裁剪边界的导数,独立 KL 项仍可能提供梯度。
在同步采样且 current 尚未更新时,ratio 全为 ,本例任务目标为 ,梯度却不必为零:不同位置的梯度向量各乘自己的优势,权重和为零不能推出加权梯度和为零。参数共享也意味着实际概率未必全部按各自激励的方向变化。
4. 加入参考 KL 并完成策略更新#
4.1 计算采样 KL:k3#
任务评分用于计算优势,参考惩罚则单独约束 current 相对固定模型的偏离。把这个固定模型记为 ,通常取初始化 Actor 的模型。它不随本批更新或下一轮采样而刷新,作用与记录采样来源的 old 不同。[1]
原始 GRPO 使用的采样惩罚通常称为 。记当前生成前缀为 ,则:
这个值衡量已采样 token 上 current 与 reference 的偏离,单个样本值非负;它直接参与求导,reference 概率保持固定。[1]
4.2 独立 KL 惩罚与目标汇总#
保持四条双 token 回答、任务权重和各位置的概率比,令 KL 强度 。以 的第一个 token 为例,在同一个已采样前缀下,假设 old、current 和 reference 对该 token 的概率分别为 、 和 。因此 ratio 仍是 ,与上表一致;KL 则比较 current 与 reference:
为单独分析该 token 的 KL 惩罚,假设其余七个位置在已采样 token 上的 current 与 reference 概率相等,因此这些位置的 。这只规定所选 token 的概率,不要求两个完整词表分布相同。每条回答有两个 token、组内有四条回答,所以这一项在组目标中的权重是 。完整目标变成:
相应 Actor loss 约为 。任务项仍使用原来的 ;KL 在任务项外单独扣除,并通过 current 概率产生梯度。以上概率同样是手算设定,不是实验测量。
4.3 完整目标与采样更新流程#
各 token 的任务项与 KL 惩罚确定后,沿用相同的回答内、组内平均。令 控制 KL 强度,完整经验目标为:
这个目标需要最大化,实际 batch 还会对问题平均。若使用梯度下降,Actor loss 为 。任务优势与 old 概率固定,KL 中的 current 概率保留梯度。KL 在裁剪任务项之外单独扣除,不重新计算组内任务评分。 [1]
表示每条回答内的平均,长度不同就会改变各位置的聚合系数。它不是序列 log 概率分解的必然结果;与 token 平均的对照见 Loss 平均。
每轮训练按以下步骤执行:
- 保存 current 的快照为 old,对每个问题采样 条回答,记录生成 token 与 old 概率。
- 评分,在同题组内计算均值、标准差和 ;这些量在本批优化期间固定,评分不混入 reference KL。
- 用 current 算 token ratio,用固定 reference 算 KL 项;最大化上述目标,更新 Actor。可在本批上更新多次。
- 刷新 old,重新采样、评分,再进行下一轮。
5. 局限性#
组内参照不能随前缀提供价值预测。 四条回答共用当前问题的组均值,回答内各 token 又共享任务优势。它省去了 Critic,但没有得到各中间状态的价值或精确的逐步贡献估计。多次生成和评分也有成本,省去价值模型不保证训练必然更快。
组内统计会改变样本与题目之间的权重。 组均值包含当前回答自己的分数,不能直接沿用动作独立 baseline 的无偏证明;组内标准差也随采样结果变化。只看同策略独立采样、固定评分且去掉标准差、clipping、KL 和长度权重的序列级估计,自包含均值会将期望梯度缩放为 。[2]
标准差与长度分母带来额外重加权。 二值评分下,少数结果的标准化权重绝对值更大;逐回答长度平均则使短回答的单个 token 获得更大的聚合系数。Dr. GRPO 分别移除这两层归一化,同时保留减组均值。[3]
采样 KL 的期望数值与直接反传梯度需要分别判断。 这里 reverse KL 指 ,forward KL 指相反方向。两策略在共同固定支持上概率为正、reference 固定且按 current 采样时, 的期望数值是 reverse KL,但固定前缀下直接反传的期望梯度对应 forward KL。复用 old 数据或分析完整回答时,还需检查采样分布与求导路径;具体推导见 KL Regularization。[4]
参考资料#
- DeepSeekMath(2024,v3). 原文:原始 GRPO 的目标与流程。
- Back to Basics(2024,v2). 原文:序列级 REINFORCE 与留一 baseline。
- Understanding R1-Zero-Like Training(2025,v2). 原文:标准差、长度权重与 Dr. GRPO。
- A Comedy of Estimators(2025). 原文:采样 KL 数值与直接反传梯度。
- PPO(2017). 原文:Clipping、经验目标与 Actor–Critic。
- REINFORCE++(2025,v9). 原文:基础版、with baseline 与 KL 配置。
补充推导与比较#
与 PPO 的价值预测比较
组均值与 PPO 的 Critic 并不等价。 Critic 可以随前缀变化并跨样本学习,GRPO 的组均值只是当前问题这组回答共用的一个数。
先固定采样策略,只比较终局任务分数 ,暂不计 KL。若价值预测只依赖 prompt ,回报二阶矩有限且预测能力不受限,那么总体 MSE 最优预测就是条件均值 。
对给定的 个分数,如果只能共同预测一个常数 ,其均方误差最小化目标为 。直接求导得到:
令导数为零得到 ;二阶导数为 ,所以组均值是这组分数的唯一 MSE 最优常数预测。直接求均值便得到这个解,无需训练网络。
在前面的 中,最优常数预测为 ,减去它得到残差 ,再除以标准差 ,才得到 GRPO 的 。
二者的对应关系是:
| 比较项 | 本文的 Actor–Critic PPO | 本文的 GRPO |
|---|---|---|
| 价值参照 | ,随已生成前缀变化 | ,同题这组回答共用 |
| 怎样得到 | 训练模型回归 return;参数跨问题与前缀共享 | 对当前组直接求出常数 MSE 的解析最优解 |
| Advantage | 结合 return 与价值预测,可使用 GAE | 组内残差除标准差,回答内所有 token 共用 |
| 本文展示的 reference KL 正则方式 | 放进奖励,影响 return、advantage 与 Critic 的回归目标 | 单列为 Actor 惩罚项,不参与组内 advantage |
| 本文采用的聚合配置 | 本批有效 token 平均 | 先回答内平均,再对组内回答平均 |
最后一行比较的是这两篇笔记所选的聚合配置,不能单独作为区分所有 PPO 与 GRPO 实现的依据;换一种平均方式需要相应对齐训练项的权重。
PPO 的 Critic 通过价值预测的平方误差学习;实际拟合受数据、模型容量和优化影响。[5]
组均值与 Critic 的区别是:组均值估计 prompt 的平均回报,不预测中间前缀的价值。因而 GRPO 的共享权重不等于每一步精确的 ,MSE 最优也不等于 梯度方差最小。
KL 的期望数值与反传梯度
采样惩罚 在普通 log-ratio 上加了 。若两策略在相同且固定的支持上概率为正,且动作按 current 采样,这个新增项的期望为零。因此 的期望数值是 reverse KL,单个样本值也总非负。[1]
数值与梯度要分开判断:固定前缀、reference 固定、按 current 采样时, 直接反传得到的是局部 forward KL 的期望梯度。求导过程见 KL Regularization。[4]
这里 reverse KL 指 ,forward KL 指 。直接反传固定样本的表达式,与对整个采样期望求导,包含的求导路径不同;这正是数值与梯度对应不同方向的原因。
复用 old 数据时,还需检查采样校正;固定前缀的局部结论也不等于整个算法在优化完整回答的 forward KL。
与 REINFORCE++ 的配置比较
REINFORCE++ 同样省去 Critic、沿用 ratio 与 clipping。三种配置的差别集中在参照、尺度和 KL 正则方式:
| 比较项 | REINFORCE++ 基础版 | REINFORCE++ with baseline | 原始 GRPO |
|---|---|---|---|
| 任务信号的参照 | 全批 return 均值 | 同题组均值,再全批中心化 | 同题组均值 |
| 归一化尺度 | 全批标准差 | 全批残差标准差 | 同题组标准差 |
| 每题回答数 | |||
| 本文展示的 reference KL 正则方式 | 放进奖励 | 独立 loss | 独立 loss |
只比较任务权重,with baseline 版与 GRPO 都先减同题均值,但一个除全批标准差,一个除同题标准差。因此,它们会给不同题目的回报残差分配不同权重;不能把差别一概视为统一缩放学习率。
KL 也需单独对齐:固定前缀、reference 固定、按 current 采样时, 直接反传给出局部 reverse KL 的期望梯度,而本篇的 对应局部 forward KL 梯度。这一局部梯度对应还受采样分布限制,不能直接等同两套完整算法。[6]
组内统计与长度权重的局限性
包含 ,不能直接套用“baseline 与当前动作无关”的无偏证明。先去掉标准差、clipping、KL 和长度权重,只看同策略独立采样的序列级 REINFORCE:
括号内只用其他独立回答,即 RLOO 的留一 baseline。在这些简化条件下,自包含均值把期望梯度缩放为 ;加入标准差等因素后,需重新分析完整权重。[2]
二值评分下,组内答对比例为 时,。忽略稳定项 ,正确回答的 advantage 为 ,错误回答为 。
| 四次回答的结果 | 正确回答的 advantage | 错误回答的 advantage |
|---|---|---|
| 一个答对、三个答错 | 1.732 | −0.577 |
| 三个答对、一个答错 | 0.577 | −1.732 |
因此除标准差会放大组内少数结果的权重,并不保证梯度方差最小。长度平均 则让短回答的每个 token 权重更大:100-token 回答是 ,1000-token 回答是 。
Dr. GRPO 分析了这两层归一化,并去掉标准差、以固定常数替代逐回答长度。它保留减组均值这个参照,只改变尺度与长度权重;具体计算见该页。[3]