Dr. GRPO:移除长度与组内尺度的重加权#

进阶5 分钟阅读查看源文件 ↗

TL;DR#

本页内容6 个部分

Dr. GRPO:移除组标准差与逐回答长度分母

1. GRPO 的两层重加权#

假设同题一组中的两条回答得分相同、优势非零,长度分别为 2 和 4。GRPO 先在回答内平均,因此在优势和概率比相同时,短回答中单个 token 的聚合系数是长回答的两倍。这种长度权重是否属于原本希望优化的完整回答奖励目标?

GRPO 不仅减去组均值,还按组内标准差缩放任务权重,再在各回答内按长度平均。这两个分母会改变不同题目、不同长度回答的训练权重。分析 Dr. GRPO 时,需要区分组均值提供的参照与标准差、长度归一化产生的重加权。

2. 保留组均值、替换分母#

Dr. GRPO(GRPO Done Right)保留减组均值这一步,移除组内标准差归一化,再用所有回答共用的常数替代各自长度。这样,奖励差异保留原来的尺度,同组长回答的每个 token 也不再因长度单独减权。[1]

用同题四条回答作比较:得分为 [1,1,0,0][1,1,0,0],长度为 [2,4,2,4][2,4,2,4]。

2.1 明确 GRPO 中的两个分母#

固定问题 qq,用旧策略 πold\pi_{\mathrm{old}} 独立生成 K>1K>1 条回答 yiy_i,长度为 TiT_i,任务分数为 RiR_i。正在更新的策略记为 πθ\pi_\theta,组均值为 Rˉ\bar R、组内总体标准差为 σR\sigma_R。

原始 GRPO 的任务权重是 A^i=(Ri−Rˉ)/(σR+δ)\hat A_i=(R_i-\bar R)/(\sigma_R+\delta),δ\delta 是小的稳定项。它先在每条回答内对 token 平均,再对回答平均。

先定义相同前缀下的概率比 ri,t=πθ(yi,t∣q,yi,<t)/πold(yi,t∣q,yi,<t)r_{i,t}=\pi_\theta(y_{i,t}\mid q,y_{i,<t})/\pi_{\mathrm{old}}(y_{i,t}\mid q,y_{i,<t})。Token score 是当前条件 log 概率对参数的梯度 ∇θlog⁡πθ(yi,t∣q,yi,<t)\nabla_\theta\log\pi_\theta(y_{i,t}\mid q,y_{i,<t})。忽略 clipping 和 KL 时,乘在 score 前的系数为 A^iri,t/(KTi)\hat A_i r_{i,t}/(KT_i),包含两种重加权:

  1. 除以 σR+δ\sigma_R+\delta:不同问题按各自组内标准差与稳定项之和缩放。
  2. 除 TiT_i:长度越大,聚合因子 1/Ti1/T_i 越小;固定 advantage、ratio 和组大小时,每个 token 的梯度系数绝对值随之减小。

比较两项修改时,应分别改变标准差与长度分母:前者影响题间残差尺度,后者影响不等长回答的逐 token 系数。

标准差与长度归一化会改变不同问题和回答的相对梯度系数,不能仅视为防止数值异常的措施。[1]

2.2 四条不等长回答的梯度系数#

在未裁剪的任务项中,Dr. GRPO 将单个 token 的 log 概率梯度系数改为 (Ri−Rˉ)ri,t/(KL)(R_i-\bar R)r_{i,t}/(KL),其中 L>0L>0 是所有回答共用的长度常数。

在四条回答 [1,1,0,0][1,1,0,0] 中,Rˉ=0.5\bar R=0.5、σR=0.5\sigma_R=0.5。先只看一条得分为 11、长度为 22 的回答,取 K=4K=4、L=4L=4、ratio 为 11,忽略稳定项:

  1. 只移除标准差分母:优势从 0.5/0.5=10.5/0.5=1 变为残差 0.50.5。若仍按回答长度平均,每个 token 的系数从 1/(4×2)=1/81/(4\times2)=1/8 变为 0.5/(4×2)=1/160.5/(4\times2)=1/16。
  2. 再改用共同长度常数:把这条回答的长度 22 换成 L=4L=4,系数变为 0.5/(4×4)=1/320.5/(4\times4)=1/32。同组得分也为 11、长度为 44 的回答,最终每个 token 的系数同样是 1/321/32。

第一项保留原始残差尺度;第二项消除同组等分回答因长度不同产生的逐 token 系数差异。

将同一计算应用到四条回答,长度仍为 [2,4,2,4][2,4,2,4]。保留 L=4L=4、ratio 为 11 并忽略稳定项的设定,比较两项修改合并后的系数。

回答 GRPO advantage Dr. GRPO 残差 GRPO 每个 token 系数 Dr. GRPO 每个 token 系数
y1y_1,长 2 1 0.5 1/81/8 1/321/32
y2y_2,长 4 1 0.5 1/161/16 1/321/32
y3y_3,长 2 −1 −0.5 −1/8-1/8 −1/32-1/32
y4y_4,长 4 −1 −0.5 −1/16-1/16 −1/32-1/32

例如 y2y_2 的每 token 梯度系数在 GRPO 中为 GRPO 系数=1/(4×4)=1/16\text{GRPO 系数}=1/(4\times4)=1/16;在 Dr. GRPO 中为 Dr. GRPO 系数=0.5/(4×4)=1/32\text{Dr. GRPO 系数}=0.5/(4\times4)=1/32。两种配置的绝对梯度系数也不同,比较时需要考虑整体尺度;关键区别是:GRPO 的短回答每 token 系数是长回答的两倍,Dr. GRPO 的系数相同。

各 token 的 score 向量不同,所以系数相同并不保证梯度范数相同;表中比较的是归一化权重。

3. 固定分母的任务目标#

Dr. GRPO 使用未标准化的残差 A^i=Ri−Rˉ\hat A_i=R_i-\bar R,并选择对所有回答相同的正常数 LL,例如生成长度预算。令 0<ϵ<10<\epsilon<1 为裁剪宽度,一组回答上的经验任务目标为:

JDr.GRPO(θ)=1KL∑i=1K∑t=1Timin⁡ ⁣(ri,tA^i,clip⁡(ri,t,1−ϵ,1+ϵ)A^i).J_{\mathrm{Dr.GRPO}}(\theta)=\frac{1}{KL}\sum_{i=1}^{K}\sum_{t=1}^{T_i}\min\!\left(r_{i,t}\hat A_i,\operatorname{clip}(r_{i,t},1-\epsilon,1+\epsilon)\hat A_i\right).

这个目标要最大化,梯度下降对应的 loss 为其负值。old、奖励、组均值和 LL 在本批更新中固定。式子只展示本文分析的任务项;reference KL 若另加,需要单独说明正则方式与权重。

固定 LL 只统一缩放所有回答;它不再让同组长回答的每个 token 自动减权。移除组内标准差归一化,则保留了奖励原来的题间尺度。二者是不同的修改。[1]

4. 去偏的范围与固定分母的局限性#

4.1 归一化偏差所参照的目标#

单条完整回答的 REINFORCE 梯度估计是奖励乘 ∑t∇log⁡πθ(yt∣q,y<t)\sum_t\nabla\log\pi_\theta(y_t\mid q,y_{<t})。因此,若以“每题的期望完整回答奖励”为基准,额外乘 1/Ti1/T_i 或该题组内的 1/(σR+δ)1/(\sigma_R+\delta) 会改变权重。Dr. GRPO 的“去偏”主要针对这两层改变。

在同策略独立采样、固定任务评分且不加 clipping 或逐回答长度权重的序列级 REINFORCE 估计中,自包含组均值仍会使期望梯度缩放为原来的 (K−1)/K(K-1)/K。RLOO 通过排除当前回答来消除这一缩放。复用旧数据或加入 clipping 后,需要重新分析完整更新。

4.2 固定分母与 token 平均#

若全部回答长度相同、组内标准差在所有题目之间也相同,那么删掉这些分母只改变共同尺度。只要长度或组内尺度不同,相对权重就可能改变,梯度方向也可能改变。

此外,使用固定分母 KLK L 与除以本批有效 token 总数不完全相同:在固定的一批回答上,它们相差一个标量;跨批平均长度变化时,这个标量也变化。两种分母的换算见 Loss 平均。

参考资料#

  1. Understanding R1-Zero-Like Training(2025,v2). §3.1–3.2:归一化的权重效应与 Dr. GRPO。