返回博客

GRPO 的组内归一化,究竟改变了什么?

从有限组基线推导到二元策略的精确枚举,拆解减均值、除标准差和动态采样,说明训练信号与生成预算应怎样分别核算。

在同一道题上生成几个回答,减去平均奖励,再除以奖励标准差:GRPO 的优势估计看起来像一行普通的数据标准化。但这行代码决定了哪些回答推动更新、不同题目占多大权重,以及一批生成里有多少真正提供了相对奖励信号。把它只理解为“让数值更稳定”,会漏掉训练目标与采样预算之间的联系。

本文重读三份基础报告:DeepSeekMath 首次提交于 2024 年 2 月 5 日;Understanding R1-Zero-Like Training: A Critical Perspective(Dr. GRPO,COLM 2025)首次提交于 2025 年 3 月 26 日;DAPO 首次提交于 2025 年 3 月 18 日。这不是今日新发布报道。下文用一个可精确枚举的例子拆开减均值、除标准差和过滤无差异组三件事,再把结论放回 token 掩码与生成成本中。

1. 先规定要估计的梯度

固定问题 \(q\),从当前策略独立采样 \(G\ge2\) 个完整回答。奖励函数不直接依赖策略参数,概率分布的支持集固定,并假设允许交换求导与求期望。令 \(T_i\) 为回答长度,序列的 score 是全部回答 token 的对数概率梯度之和:

\[\begin{aligned}o_i&\sim\pi_\theta(\cdot\mid q),\qquad r_i=r(q,o_i),\\s_i&=\nabla_\theta\log\pi_\theta(o_i\mid q)\\&=\sum_{t=1}^{T_i}\nabla_\theta\log\pi_\theta(o_{i,t}\mid q,o_{i,<t}).\end{aligned}\]

这里不除以回答长度。目标是该题的期望奖励,最小基线是 REINFORCE:

\[\begin{aligned}J_q(\theta)&=\mathbb E[r_i],\qquad \mathbb E[s_i]=0,\\\nabla_\theta J_q&=\mathbb E[r_i s_i],\\\widehat g_{\mathrm{raw}}&=\frac1G\sum_{i=1}^G r_i s_i.\end{aligned}\]

后面的等式都指同策略采样、在同一个参数点求导的奖励项;不包含 KL、熵奖励、PPO clipping 或旧回答的多轮复用。实现中把奖励及优势当作停止梯度的系数。这些限定使我们能看清归一化本身,而不是把整个 GRPO 训练器误写成一个无偏估计器。

DeepSeekMath 的结果监督版本把同一回答的组内标准化奖励分配给该回答的全部 token。其完整目标还涉及长度归约、截断概率比和 KL;本文先移除这些项,最后再逐一接回实现。

2. 减去组均值:少了一个有限组因子

记 \(\bar r=G^{-1}\sum_jr_j\)。常见直觉是:减一个 baseline 不改变期望梯度。问题在于,这个 baseline 包含当前回答自己的奖励。独立的其他回答满足交叉项期望为零,自己的那一项却不为零:

\[\begin{aligned}\mathbb E[\bar r\,s_i]&=\frac1G\mathbb E[r_i s_i]+\frac1G\sum_{j\ne i}\mathbb E[r_j]\mathbb E[s_i]\\&=\frac1G\nabla_\theta J_q.\end{aligned}\]

因此组内中心化后的估计满足:

\[\begin{aligned}\widehat g_{\mathrm c}&=\frac1G\sum_{i=1}^G(r_i-\bar r)s_i,\\\mathbb E[\widehat g_{\mathrm c}]&=\left(1-\frac1G\right)\nabla_\theta J_q.\end{aligned}\]

只要所有题使用同一个固定 \(G\),这是统一的正比例缩放,不会单凭此因子改变期望梯度方向。但它不是严格等于原梯度;变动组大小也不能用一个共同系数概括。即使比例固定,Adam 的数值稳定项、梯度裁剪和其他损失的相对权重,也使“调一下学习率就完全一样”并非一般结论。

若要在上述假设下恢复严格无偏,可用留一法:每个回答只减去其他回答的平均奖励。

\[\begin{aligned}A_i^{\mathrm{LOO}}&=r_i-\frac1{G-1}\sum_{j\ne i}r_j\\&=\frac{G}{G-1}(r_i-\bar r),\\\mathbb E\!\left[\frac1G\sum_i A_i^{\mathrm{LOO}}s_i\right]&=\nabla_\theta J_q.\end{aligned}\]

这不是要求所有训练器都改成留一法,而是把“与原目标方向一致”和“期望恰等于原梯度”区分清楚。Dr. GRPO讨论去除奖励标准差和回答长度带来的权重变化;若仍使用包含自身的有限组均值,就还需保留这里的因子。更不能把论文中的“unbiased”直接扩展为整个带 clipping 的训练过程严格无偏。

3. 除标准差:随机分母不能当作一个常数

为了让计算可复查,本文固定使用组内总体方差定义,稳定项放在平方根之外:

\[v=\frac1G\sum_i(r_i-\bar r)^2,\qquad A_i^{\mathrm{std}}=\frac{r_i-\bar r}{\sqrt v+\delta},\quad\delta\ge0.\]

当 \(\delta=0\) 且全组奖励相等,显式约定优势为零,避免零除零。正的稳定项可以防止除零,却不能凭空产生奖励差异。这个零结论只针对中心化后的奖励优势项;KL、熵项和优化器状态仍可能使参数变化。

分母、分子和 score 来自同一批回答,彼此相关,不能把随机标准差直接换成其总体值。为具体看到差别,构造一个单 token 的二元策略:\(a_i\sim\operatorname{Bernoulli}(p)\),\(p=\sigma(z)\),奖励为 \(r_i=a_i\),于是 \(\partial_z\log\pi(a_i)=a_i-p\)。这只是原创教学模型,不是对真实语言模型正确率的完整描述。令组内成功数为 \(K\),成功比例为 \(f=K/G\),则可以逐项相乘得到:

\[\begin{aligned}\widehat g_{\mathrm c}&=\frac1G\sum_i(a_i-f)(a_i-p)=f(1-f)=v,\\\widehat g_{\mathrm{std}}&=\begin{cases}\sqrt{f(1-f)},&0<K<G,\ \delta=0,\\0,&K\in\{0,G\},\end{cases}\\\widehat g_{\mathrm{std},\delta}&=\frac{v}{\sqrt v+\delta}\quad(\delta>0).\end{aligned}\]

真实梯度是 \(p(1-p)\),中心化估计的期望是其 \(1-1/G\) 倍;标准化估计的期望则必须对所有可能的成功数求和:

\[\mathbb E[\widehat g_{\mathrm{std}}]=\sum_{k=1}^{G-1}\binom Gk p^k(1-p)^{G-k}\sqrt{\frac kG\left(1-\frac kG\right)}\quad(\delta=0).\]

这个有限和一般不是原梯度乘以一个与题目无关的常数。若不同题目的梯度方向不同,改变相对贡献就可能改变整体方向;不能将其普遍视为一次学习率缩放,也不能把停止梯度的归一化系数当成某个“期望标准化奖励”目标的完整导数。

还要检查边界。\(G=2\) 时,上式恰好等于 \(p(1-p)\),所以并非任何组大小都产生相同的难度重加权。在固定有限 \(G\) 下,\(p\) 趋近 0 或 1 时,多数采样组仍然没有差异。恰有一次成功时,正奖励回答的标准化优势是 \(\sqrt{G-1}\),其余为 \(-1/\sqrt{G-1}\):它们对固定 \(G\) 有限,并不会因为总体成功率很低就无限放大。

标准差的实现约定也要写出来。样本标准差使用 \(G-1\) 作分母;当稳定项为零时,它使本例标准化估计整体乘以 \(\sqrt{(G-1)/G}\)。稳定项非零后,这个固定换算一般不再成立。本文用 0/1 奖励;DAPO 的基础正确性奖励使用 −1/+1。正仿射奖励变换在无稳定项的标准化中可抵消,但固定正稳定项会破坏精确尺度不变性。

原创优势计算示意:同题采样回答、停止梯度的验证奖励、减组均值,再在固定尺度与组标准差之间选择,通过回答 token 的 logprob 反传策略;另框说明动态采样只保留正确性有差异的组,须统计全部生成成本。
原创机制示意,非实验数据。两条归一化分支是替代选项;图只说明奖励优势路径,不代表完整 GRPO、Dr. GRPO 或 DAPO。可选过滤与归一化是两个不同开关。

4. 只保留有差异的组,节省了哪一段预算?

DAPO 的动态采样在二值正确性场景下过滤全对、全错组,并继续生成以填满有效训练批。先做一个更窄的计算:固定同一道题和同一策略,独立反复生成大小不变的组,直到其中同时出现成功与失败。保留概率为:

\[\alpha(p)=\Pr(0<K<G)=1-p^G-(1-p)^G.\]

不设重试上限且保留概率非零时,得到一个保留组所需的期望组数、回答数分别为:

\[\mathbb E[N_{\mathrm{groups}}]=\frac1\alpha,\qquad\mathbb E[N_{\mathrm{responses}}]=\frac G\alpha.\]

这是回答数量,不是 token 数或运行时间。对本例中心化、留一或标准化估计,被拒绝的组贡献为零,所以条件期望满足:

\[\mathbb E[\widehat g\mid\mathrm{keep},q]=\frac{\mathbb E[\widehat g\mid q]}{\alpha(q)}\quad(\alpha(q)>0).\]

每个保留组的平均信号增大,与花更多生成量找到它并不矛盾。单次采样的 \(p\) 没有因过滤操作自动上升。如果 \(p=0\) 或 \(p=1\),保留事件概率为零,无限重试也不能填出一个有效组。未减均值的 REINFORCE 不适用上面的零贡献前提:全成功组仍有奖励梯度贡献,不能照搬除以保留概率的公式。

再看跨题抽样的区别。若每次尝试都重新从 \(d(q)\) 抽题,再独立抽回答组,保留题目的分布变为:

\[d_{\mathrm{keep}}(q)=\frac{d(q)\alpha(q)}{Z},\qquad Z=\mathbb E_{q\sim d}[\alpha(q)]>0.\]

但分布变了,并不自动证明多了一种梯度方向偏差。若被拒绝组的估计严格为零、组大小固定、保留组等权,则题目频率的变化与条件梯度的放大恰好抵消:

\[\mathbb E_{q\sim d_{\mathrm{keep}}}\!\left[\mathbb E[\widehat g\mid\mathrm{keep},q]\right]=\frac1Z\mathbb E_{q\sim d}[\mathbb E[\widehat g\mid q]].\]

这是理想化拒绝采样的共同缩放结论,不是对整个 DAPO 的等价证明。逐题重试、随机的 token 归约分母、长度奖励、裁剪、相关采样、有限缓冲区和策略更新,都可能改变条件。实际 verl DAPO 配方还有过滤指标与最大生成批次数设置。审阅训练代码时,先问它在重抽哪一个随机变量,再讨论是否改变了优化方向。

5. 把公式接回张量、掩码和实现约定

最小实现可把奖励组织为 \(B\times G\),其中 \(B\) 是不同问题数;回答 token 的 logprob 与掩码为 \(B\times G\times T_{\max}\)。优势沿最后一维广播。prompt、padding 不能计入回答 score;EOS 是否作为已生成 token、长度截断怎样评分,都要与采样分布和验证器一致。下面是本文推导对应的无 clipping、同策略教学伪代码,并未运行真实模型训练:

# reward: [B, G]; logp, response_mask: [B, G, T_max]
with no_grad():
    centered = reward - reward.mean(dim=1, keepdim=True)
    variance = (centered ** 2).mean(dim=1, keepdim=True)
    advantage = centered / (variance.sqrt() + delta)  # delta > 0
    # Fixed-scale alternative: advantage = centered
    # Unbiased LOO baseline: advantage = centered * G / (G - 1)
sequence_logp = (logp * response_mask).sum(dim=-1)
loss = -(advantage * sequence_logp).mean()
loss.backward()

最后使用 token 求和和固定的组平均。若改成每条回答除以实际长度,或者除以这一批随机产生的有效 token 总数,便增加了本文前面没有分析的权重。去掉组标准差与去掉长度归一化必须分别核验,不能只看配置名里是否写着 Dr. GRPO。

一个可定位的实际例子是 verl 固定提交 acad9875… 的优势实现:组大小大于 1 时用 torch.std,其默认修正为 1;分母为标准差加 epsilon,默认 1e-6,统计过程放在 torch.no_grad 中。它不是本文总体方差、零稳定项表格的同一口径;也不能倒称为 2024 年原论文的实验代码。组大小为 1 的分支另有处理,不能外推本文的留一式。

回到 PPO 式实现,还要存储停止梯度的旧策略 logprob,构造 token 概率比,并按优势符号应用 clipped surrogate。在旧参数点、比值为 1 且 clip 未激活时,奖励项局部梯度才可接回前面的 score 形式。复用旧回答时,前缀仍来自旧策略,而 clipping 可能激活;token 比率也不自动等于完整序列的重要性采样修正。

6. 实际运行的检查:不靠随机曲线猜结论

本文提供标准库 Python 枚举脚本,运行 python3 grpo_group_checks.py 即输出结果与脚本哈希。实际检查对小组的全部有序二元序列逐一求值,再独立按成功数聚合对照:84 个配置、1,260 个序列计算通过。检查覆盖零与正稳定项、总体与样本标准差、退化边界、留一基线和单题条件采样;概率及未归一化量使用精确分数,平方根使用浮点。它没有运行 LLM、蒙特卡洛训练或 GPU 性能测试。

下表摘取 \(G=8\)、总体标准差、\(\delta=0\) 的实跑枚举输出。成功率是人为指定的教学参数,数值是对有限概率空间求和得到的期望,不是任何模型的测量结果。

\(p\)真实梯度中心化期望标准化期望
0.010.0099000.00866250.0258277
0.100.0900000.07875000.2094920
0.500.2500000.21875000.4639140

中心化与真实梯度之比固定为 \(7/8\);标准化与真实梯度之比在三行中约为 2.61、2.33、1.86。这展示相对贡献变化,不证明真实模型在低成功率问题上一定学得更好。相同三个设置的采样账本是:

\(p\)保留概率 \(\alpha\)每保留组的期望回答数
0.010.0772553103.5528
0.100.569532814.0466
0.500.99218758.0630

每个保留组仍只有 8 个回答;第三列把失败重试消耗的回答也计算在内。接近极端成功率时,漂亮的“有效 batch”可能建立在大量被丢弃的生成之上。反过来,额外生成能否利用空闲设备或被长尾解码掩盖,取决于调度,不能从回答数直接断言运行更慢。

7. 对真实训练,应怎样做可证伪的对照

建议先冻结模型、题集、验证器、温度、最大长度和组大小,缓存相同回答,对照中心化、留一和标准差三个估计。记录每题标准差、全同奖组比例、梯度范数与方向;再单独改变回答长度归约。这样可以判断差异来自奖励缩放,还是 token 权重。这个多题、多参数检验是建议实验,本文尚未执行。

然后才打开动态采样,分别做固定总生成 token、固定优化器更新次数和固定运行时间的对照。总生成必须包含被丢弃的回答;单列 prompt prefill、回答 decode、验证器与训练反向传播的耗时和峰值内存。奖励统计本身是 \(O(BG)\),token 加权是 \(O(BGT_{\max})\);通常更昂贵的模型前向、生成、激活存储和通信不能被这两个小算式代表。相同保留 batch 不代表相同总成本。

验收还应报告过滤率、重试上限触发率、回答长度、截断率、KL 和 clip 命中率,以及独立题集的准确率与不确定性。题目模板和近重复题要跨训练、开发、最终测试隔离,避免验证器格式漏洞被当作推理收益。如果去掉标准差只改变范数,不改变多题梯度方向,应收窄“重加权改变方向”的判断;如果在固定生成预算下收益消失,就不能把固定更新次数的优势称为采样效率提升。

本文的结论是一个实现审查顺序:先确定期望奖励对应的 score,再检查 baseline 是否含自身、分母是否依赖这组随机回答,最后明确保留规则及成本分母。归一化可以是有用的工程选择,但它应当成为可检验的选择,而不是藏在一行标准化代码里的默认假设。

资料核对工具:使用 Kassis 等(2026),Scientific Agent Skills 的 citation-management 流程核对出版元数据;此工具引用不作为本文数学结论的证据。

参考资料

  1. Shao et al. — DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models (first 2024-02-05; v3 2024-04-27) · 2024-02-05 · 查阅 2026-10-08
  2. Liu et al. — Understanding R1-Zero-Like Training: A Critical Perspective (COLM 2025; first 2025-03-26; v2 2025-10-06) · 2025-03-26 · 查阅 2026-10-08
  3. Understanding R1-Zero-Like Training — COLM 2025 publication · 查阅 2026-10-08
  4. Yu et al. — DAPO: An Open-Source LLM Reinforcement Learning System at Scale (first 2025-03-18; v2 2025-05-20) · 2025-03-18 · 查阅 2026-10-08
  5. DAPO — NeurIPS 2025 published proceedings · 查阅 2026-10-08
  6. verl — compute_grpo_outcome_advantage (pinned commit acad9875a8bdfc81afbcb0a50d146b2630f44093) · 查阅 2026-10-08
  7. verl — DAPO recipe and filtering budget (same pinned commit) · 查阅 2026-10-08
  8. PyTorch — torch.std, correction convention · 查阅 2026-10-08
  9. Kassis, Agarwal, He, Patel and Brueckner — Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents (metadata tooling) · 2026-08-30 · 查阅 2026-10-08
利友诚

关于作者

利友诚 · Youcheng Li

北京大学智能学院人工智能专业博士研究生,导师为王立威教授;Isoplex Intelligence(壹索智能)联合创始人兼 CTO。

研究关注医疗人工智能、生成式基础模型、诊断推理与科学智能体。以第一作者或共同第一作者身份在 Nature Biomedical Engineering、Scientific Data、KDD 和 PLOS Computational Biology 发表研究。