本文有配套的交互报告,含零梯度组概率计算器、baseline 双曲线与三家取值对照。

一个差出 32 倍的旋钮

GRPO 每训练一步,要为每个 prompt 采样一组 $G$ 条回答。这个 $G$ 取多少,各家的答案差得离谱:

  • DeepSeekMath(GRPO 原始论文,arXiv:2402.03300 §4.2):64 条。batch size 1024,意味着一步只覆盖 16 个 prompt;
  • RLHF Book 配套教学代码(code/policy_gradients/configs/):8 条,从 GRPO 到 GSPO、CISPO 全系默认;
  • 2025 年 10 月的论文 “It Takes Two: Your GRPO Is Secretly DPO”(arXiv:2510.00977):2 条就够,并专门论证"大组必要论"是对 GRPO 成功原因的误读。

32 倍的差距。更麻烦的是,$G$ 同时是两种东西:它是 GRPO 唯一的 baseline 来源(没有 critic,组内均值就是 baseline),也是训练成本最大的乘法器(rollout 是 RL 训练的主要算力开销,$G$ 翻倍增殖成本就翻倍)。一个旋钮同时管信号质量和算力账单,取值却从 2 到 64 都有人能跑通——说明"$G$ 到底买来了什么"这个问题本身值得拆开。

第一重身份:baseline 的样本数

GRPO 扔掉 critic 之后,用组内均值当 baseline:$\hat{A}i = r_i - \text{mean}({r_j}{j=1}^G)$(先不看除以 std 的那一步)。用 baseline 减均值是策略梯度降方差的标准手段,教科书(RLHF Book 第 6 章)给出的合法性条件是:baseline 必须与当前动作无关,因为 $\mathbb{E}{a\sim\pi}[b(s)\nabla\theta\log\pi_\theta(a|s)] = 0$ 对任何只依赖状态的 $b(s)$ 成立——baseline 不改变梯度的期望,只压方差。

这里有个很少有人提的细节:GRPO 的均值把被评估的那条回答自己也算进去了,严格说 baseline 与动作相关,无偏条件并不严格满足。对照 RLOO(REINFORCE Leave-One-Out,rlhf-book 同一章):它的 baseline 是其余 $K-1$ 条回答的均值,特意把自己剔除,“保持梯度估计器完全无偏”。两种 advantage 的关系可以直接写出来:

$$\hat{A}i^{\text{RLOO}} = r_i - \frac{1}{G-1}\sum{j\neq i}r_j = \frac{G}{G-1}\left(r_i - \frac{1}{G}\sum_{j}r_j\right) = \frac{G}{G-1}\hat{A}_i^{\text{GRPO(去 std)}}$$

方向完全一致,只差一个 $G/(G-1)$ 的尺度因子。$G=64$ 时这个因子是 1.016,无所谓;$G=8$ 时是 1.14;$G=2$ 时是 2——GRPO 形式的 advantage 只有留一形式的一半。这个偏差不是方向性的,只是一个随 $G$ 缩小的缩放,实际效果可以被学习率吸收(这是推断,不是哪篇论文的实验结论),但它解释了为什么小 $G$ 的所有性质都会被放大。

第二笔账是 baseline 的估计噪声。组均值是真实期望值 $\mathbb{E}[r]$ 的 $G$ 样本估计,噪声幅度约 $\sigma_r/\sqrt{G}$($\sigma_r$ 是单条回答奖励的标准差)。$G$ 小,这个噪声就直接混进每条回答的 advantage 里:答对的题可能因为"同组碰巧都很强"而拿到负 advantage。梯度方向被 baseline 噪声随机翻转的概率随 $G$ 减小而上升——这是"大 $G$ 降方差"的标准论点,也是 2510.00977 要挑战的对象,后面再说。

第二重身份:有效梯度组的覆盖率

RLVR 的奖励是二值的(对或错;DAPO 用 +1/−1,DeepSeekMath 用 1/0,等价)。如果一组 $G$ 条回答全对或全错,组内奖励没有方差,advantage 全是零——这 $G$ 条 rollout 白跑了,不给任何梯度。

一组全同的概率可以直接算(以下为推算):设模型在这道题上的单次正确率为 $p$,各条独立,则

$$P(\text{零梯度组}) = p^G + (1-p)^G$$

代入数值看趋势($p$ 为单次正确率,表中为该组零梯度的概率):

$p$$G=8$$G=64$
0.50.8%≈0
0.816.8%≈0
0.943.0%0.1%
0.9566.3%3.8%
0.9992.3%52.6%

读法:中等难度的题($p$ 在 0.3–0.7),小 $G$ 也基本有保证;真正吃 $G$ 的是边界难度的题——$p=0.95$ 时 $G=8$ 有三分之二的组是全对零梯度,$G=64$ 才压到 4%。而训练曲线恰恰会推着题目往边界滑:学会的题 $p \to 1$,学不会的题 $p \to 0$,越到训练后期,处于"有梯度区间"的题越少。这就是 DAPO 论文在 motivation 里写"training efficiency and stability"问题的来源之一。

面对同一张表,有两种解法。一种是把 $G$ 加大,硬压 $p^G$——成本按乘法涨。另一种是 DAPO 的 Dynamic Sampling:不加大 $G$,而是直接规定零梯度组不要。DAPO 的目标函数里有一条硬约束(论文公式 8 的 s.t. 条件):

$$0 < \left|{o_i \mid \texttt{is_equivalent}(a, o_i)}\right| < G$$

即组内正确回答数必须严格介于 0 和 $G$ 之间——全对全错的组被过滤掉,过采样补齐,保证 batch 里每个 prompt 都有有效梯度。同样的有效组覆盖率,过滤的代价是加法式过采样,而不是把 $G$ 乘上去。

但过滤和 $G$ 之间还有一层耦合容易被漏掉:过滤的判定依据本身就是 $G$ 个样本的估计。$G=4$ 时"4 条全错"不等于这道题模型不会——$p=0.3$ 的题有 24% 的概率 4 条全错,被误扔进垃圾堆。小 $G$ 配动态采样,会把一批"其实有梯度价值"的中等题误判成废组;误判率随 $G$ 指数下降($ (1-p)^G $,同一张表)。所以动态采样并没有消灭 $G$ 的覆盖率问题,只是把它从"零梯度"换成了"误判丢弃"(此点为推断,DAPO 论文没有讨论误判率)。

第三重身份:std 归一化的分母质量

GRPO 的 advantage 还要除以组内 std:$\hat{A}_i = (r_i - \text{mean})/\text{std}$。这个 std 同样是 $G$ 个样本的估计,$G$ 小时噪声很大;全同组 std 直接是 0,实现上要么加 eps 要么跳过(埋下除零的坑)。

Dr.GRPO(本周后面会专门写)对 std 的批评——全对全错组 std 趋零时 advantage 被放大到不合理量级——在小 $G$ 时最严重:$G$ 小,std 落在小值的概率高,极端 advantage 出现得频繁。极端 advantage 又会推高 ratio 的移动幅度,间接抬高 clip 触发率(此链条为推断:$\hat{A}$ 异常大 → 单步内 $\pi_\theta$ 移动多 → $w_t$ 更快碰到裁剪边界)。也就是说,“大 $G$ 稳定训练"的说法有一部分其实不是 baseline 的事,是 std 的事——这两笔账在文献里经常被混在一起。

另外值得知道的一个理论结果(arXiv:2502.18548,“What is the Alignment Objective of GRPO?"):作者给出了刻画 GRPO 稳态策略的框架,指出 GRPO 的偏好聚合方式与 RLHF 标准的对数池化有本质差异——$G$ 影响的不只是估计的方差,还涉及归一化目标本身的不动点。这篇是分析性工作,结论的适用边界(稳态、无穷步)与工程实践有距离,但它提醒一点:把 $G$ 纯粹当成"采样预算"来理解是不完整的。

对冲观点:2 条回答也够?

2510.00977 的论点值得正面复述:GRPO 的有效性来自隐式对比目标——两条回答一对比就有学习信号,组均值只是 control variate 降方差的工具,不需要精确的统计估计,所以 $G=2$ 的 2-GRPO 也能工作,结构上反而和 DPO 接上了。他们的理论分析和实验(中小规模)都支持这个结论。

这和 DeepSeekMath 的 $G=64$ 矛盾吗?未必。大 $G$ 买来的东西里,baseline 精度只是其中一项,而且可能是最不重要的一项。其余几项:边界难度题的覆盖率(第二重身份)、过滤判定的可靠性(动态采样的配套)、以及探索覆盖——组内至少要有一条答对的题,模型才有"好样本"可学,$p=0.1$ 的硬题在 $G=2$ 时有 81% 的概率组内无正样本,$G=64$ 时只有 0.1%。这些收益与模型规模、任务难度分布强相关:小模型刷 GSM8K 级别的题,$p$ 分布集中在中段,小 $G$ 损失有限;大模型攻 AIME 级别的题,$p$ 压在 0.1 附近,每一条正样本都珍贵,$G$ 就是探索预算本身。2-GRPO 的结论能不能延伸到大模型长 CoT 场景,目前没有人能回答(其论文实验规模有限,这是边界,不是批评)。

成本账,以及我的判断

先把账摆明:训练一步的 rollout 量 = prompt 数 × $G$。DeepSeekMath 的配置(batch 1024、$G=64$)一步只过 16 个 prompt——prompt 多样性和回答多样性是在同一张预算表上换的。还有一个配置细节值得注意:DeepSeekMath 每个 exploration 阶段只做一次策略更新(严格 on-policy,§4.2),此时 ratio 恒为 1、clip 从不触发,$G$ 的全部作用都体现在 baseline 和覆盖率上;而 DAPO/GSPO 式的多 mini-batch 更新里,$G$ 还通过 std 噪声间接影响 clip 触发率。同一个 $G$,在两种训练形态里的边际收益不是一回事。

我的判断:$G$ 没有普适最优,因为它同时在三张预算表上花钱——baseline 精度($\sigma_r/\sqrt{G}$,收益边际递减最快)、有效组覆盖($p^G$,在边界难度上收益最持久)、探索预算(组内含正样本的概率,硬题上几乎是线性的)。实践默认值(8–16)是在"中等难度分布 + 动态采样兜底"下的平衡点;64 是 DeepSeekMath 时代没有动态采样、没有 clip 改造时的朴素选择;2 是"对比目标"视角下的理论极限值,工程上还没人敢在生产规模用。选 $G$ 之前先问自己三张表里哪张是瓶颈:题太难(探索预算紧)就加大 $G$ 或上动态采样,题太杂(prompt 多样性紧)就把预算让给 prompt 数,训练不稳先查 std 和 clip 触发率,别急着加 $G$。

本周前四篇正好连成一条线:Clip-Higher 修 token 级裁剪边界,GSPO 换比率单位,TIS 堵训推数值缝,本篇回到信号的源头——采样预算怎么分。GRPO 的每个"显然如此"的默认配置,拆开来都有一笔自己的账。

未决问题

  • $G$ 与学习率、clip $\varepsilon$ 的最优耦合没有公开的系统消融;小 $G$ + 大学习率能否等价于大 $G$ 的信噪比,只有零散的民间经验;
  • 动态采样在中等难度题上的"误判丢弃"率($(1-p)^G$)对数据效率的实际影响,没有论文量化过;
  • 2-GRPO 在大模型、长 CoT、边界难度任务上是否成立,是目前最值得做的公开复现之一。

参考来源

  • DeepSeekMath / GRPO 原始论文:arXiv:2402.03300,$G=64$、batch 1024、单步 on-policy 更新见 §4.2
  • DAPO 论文:arXiv:2503.14476,Dynamic Sampling 约束见公式 8,奖励 ±1 见公式 7
  • It Takes Two: Your GRPO Is Secretly DPO:arXiv:2510.00977
  • What is the Alignment Objective of GRPO?:arXiv:2502.18548
  • RLHF Book 第 6 章(baseline 无偏条件、RLOO 留一公式):本地仓库 book-zh/chapters/06-policy-gradients.md;教学代码默认 num_rollouts: 8:code/policy_gradients/configs/
  • 零梯度组概率表、误判丢弃、clip 触发率链条为本文推算/推断,文中已逐处标注
  • 前篇:比率用错了单位:GSPO 把重要性采样提到序列级