GRPO 和 Dr. GRPO 不是「修复」关系:一个关于长度偏差的不可能性定理

笔记日期: 2026-08-04 笔记作者: Zhongzhu Zhou 阅读论文: On the Impossibility of Unbiased and Length-Invariant Policy Optimization with Outcome Rewards 论文作者: Fei Ding, Yongkang Zhang, Runhao Liu(阿里巴巴集团), Yuhao Liao, Zijian Zeng, Huiming Yang(清华大学) arXiv: 2607.23364v1,2026-07-25 发表状态: arXiv 预印本(cs.LG)

0. 为什么值得认真读一遍

如果你最近两年用 RLVR(可验证奖励的强化学习)训练过推理模型,大概率会碰到这样一个现象:模型的回答越训越长。DeepSeek-R1-Zero 的报告提到过这一点,无数开源复现也确认了它,而 2025 年一篇题为《Understanding R1-Zero-Like Training: A Critical Perspective》的论文——社区几乎立刻把它叫做 Dr. GRPO(意即 “GRPO, Done Right”)——从数学上定位了标准 GRPO 目标函数里的一个具体成因,并提出了修复方案:直接去掉逐轨迹的长度归一化项。这篇论文几乎原话地宣称:这样做之后得到的是一个”无偏”的策略梯度估计量——言下之意是原来的 GRPO 估计量本来就是坏的,现在修好了。

而这篇新论文——下文简称不可能性论文——做了一件很清爽的事情:它把这个说法当真,把”无偏”和”长度不变”分别形式化为两条独立、定义明确的数学性质,然后证明——不是用实验论证,而是用一个简短的反证法真正证明——不存在任何只依赖长度的加权函数能同时满足这两条性质。GRPO 和 Dr. GRPO 变成了同一条连续、不可避免的一维权衡曲线上的两个端点。把其中一个叫做”做对了”不仅夸大了修复效果,还掩盖了一个事实:这个修复引入了另一种偏差,而且在这些算法用得最多的场景(冗长的推理链)里,这种新偏差可能反而更糟。

这篇论文值得细读而不是扫一眼摘要的原因有三点:第一,整个技术贡献是一个真正简短、完整的证明,十分钟就能逐行看懂,这在这类文献里很罕见;第二,论文给出了尖锐、具体的算术例子(10 个 token 的正确回答 vs. 10,000 个 token 的错误回答),让抽象定理变得直观到几乎不需要解释;第三,它把过去一整年”GRPO 变体大战”——GRPO、Dr. GRPO、RLOO、REINFORCE++、DAPO 的长度归一化调整——重新框定为同一条 Pareto 前沿上的不同点,而不是一连串的修复补丁,这会改变你今后阅读每一篇声称”修复了 GRPO 长度行为”的论文的方式。

如果你用任何 group-relative 的 RL 目标训练 LLM,或者你需要评估那些调整 GRPO 长度处理方式的论文,这篇论文给了你一套词汇和证明工具,让你能立刻看出一个新方法到底选择了权衡的哪一边——并且不再期待一顿免费的午餐。

1. 前置知识

跟上这篇论文不需要太多背景,基本的策略梯度知识就够了,但有几个符号和历史脉络值得讲清楚,因为整个论证都围绕着 GRPO 里那个 “1/L” 项到底从哪来、去掉它到底改变了什么。

1.1 自回归生成的 token 级 MDP

把自回归生成看作一个马尔可夫决策过程。给定提示 qq,模型逐个采样 token:o1,o2,,ooo_1, o_2, \ldots, o_{|o|},其中 o|o| 是回答长度。在第 tt 步,“状态” 是提示与已生成 token 的拼接 st=[q,o1,,ot1]s_t = [q, o_1, \ldots, o_{t-1}],“动作” 是下一个 token oto_t,从策略 πθ(st)\pi_\theta(\cdot \mid s_t) 中采样。生成在遇到结束符(EOS)或达到长度上限时终止。

RL 的目标是最大化期望回报:

J(πθ)=EqpQ[Eoπθ(q)[R(q,o)]](1)J(\pi_\theta) = \mathbb{E}_{q \sim p_Q}\big[\mathbb{E}_{o \sim \pi_\theta(\cdot \mid q)}[R(q,o)]\big] \tag{1}

结果奖励(outcome reward)。 在这篇论文研究的场景——也是数学/代码 RLVR 的主流场景——奖励是整个轨迹结束后给出的单个标量:如果最终答案正确 R(q,o)=1R(q,o)=1,否则为 00。轨迹中的每一个 token 都共享同一个标量奖励,奖励函数本身不提供任何逐步的信用分配信号。

1.2 REINFORCE 策略梯度

针对轨迹级回报的标准蒙特卡洛策略梯度(Williams, 1992)是:

θJ(πθ)=Eq,oπθ[t=1oθlogπθ(otq,o<t)A(otq,o<t)](2)\nabla_\theta J(\pi_\theta) = \mathbb{E}_{q,o \sim \pi_\theta}\left[\sum_{t=1}^{|o|} \nabla_\theta \log \pi_\theta(o_t \mid q, o_{<t}) \cdot A(o_t \mid q, o_{<t})\right] \tag{2}

其中 A(otq,o<t)=R(q,o)B(q,o<t)A(o_t \mid q, o_{<t}) = R(q,o) - B(q, o_{<t}) 是优势函数,BB任意不依赖当前动作 oto_t 的基线(这是经典的方差缩减技巧——只要基线与采样动作无关,减去它就不改变梯度的期望值)。在结果奖励设定下,由于 R(q,o)R(q,o) 不依赖 tt,同一条轨迹里所有 token 的优势值是同一个标量

1.3 组相对基线:GRPO 从何而来

与其像 PPO 那样训练一个独立的价值网络来估计基线 BB,GRPO(Shao et al., 2024,来自 DeepSeekMath 论文)对同一个提示采样 GG 个回答 {o1,,oG}\{o_1, \ldots, o_G\},用组内的经验平均奖励作为基线:

A~i=R(q,oi)mean(R)(3)\tilde{A}_i = R(q,o_i) - \text{mean}(R) \tag{3}

这个设计很优雅,因为它是 critic-free 的——不需要额外网络,不需要担心价值函数训练的不稳定性——而这恰恰是让 GRPO 能在 DeepSeek-R1 那个规模上跑起来的关键。完整的 GRPO 代理目标函数(省略 PPO 式的 clipping 项,论文指出这不影响本文分析)是:

JGRPO(θ)=1Gi=1G1oit=1oiπθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t)A~istd(R)(4)J_{\text{GRPO}}(\theta) = \frac{1}{G}\sum_{i=1}^{G} \frac{1}{|o_i|}\sum_{t=1}^{|o_i|} \frac{\pi_\theta(o_{i,t} \mid q, o_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} \mid q, o_{i,<t})} \cdot \frac{\tilde{A}_i}{\text{std}(R)} \tag{4}

这个目标函数里内置了两个归一化项:逐轨迹长度归一化 1/oi1/|o_i|(求和前先除以 token 数)以及组标准差归一化 1/std(R)1/\text{std}(R)(用于抵消组内奖励分散程度不同带来的优势值尺度差异)。这篇论文的分析完全围绕第一项展开;论文明确指出,它的不可能性结论无论是否使用 std 归一化都成立。

1.4 Dr. GRPO 的诊断与修复

Liu et al.(2025),即那篇《Understanding R1-Zero-Like Training: A Critical Perspective》(社区昵称 Dr. GRPO)指出 1/oi1/|o_i| 这一项造成了他们所说的响应级长度偏差:因为轨迹内每个 token 都被除以同一个 oi|o_i|,长轨迹的逐 token 梯度贡献相对于短轨迹被稀释了。他们提出的修复方案是直接删掉两个归一化项:

JDr.GRPO(θ)=1Gi=1Gt=1oiπθ(oi,tq,oi,<t)πθold(oi,tq,oi,<t)A~i(5)J_{\text{Dr.GRPO}}(\theta) = \frac{1}{G}\sum_{i=1}^{G}\sum_{t=1}^{|o_i|} \frac{\pi_\theta(o_{i,t} \mid q, o_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} \mid q, o_{i,<t})} \cdot \tilde{A}_i \tag{5}

Liu 等人在他们自己的附录 A 中严谨证明了式(5)的梯度是带组相对基线的真实策略梯度的无偏蒙特卡洛估计——顺带值得记住的一点是,这个估计量在数学上(相差一个常数)等价于 REINFORCE Leave-One-Out(RLOO)。所以这篇论文的分析,正如它明确指出的,同样牵连了 RLOO——尽管 RLOO 很少被贴上”长度偏差”的标签来营销。

1.5 本文的新贡献:统一的权重函数

为了在同一框架下比较 GRPO、Dr. GRPO 以及两者之间的一切,论文引入了一个由长度加权函数 f:NR+f: \mathbb{N} \to \mathbb{R}^+ 参数化的统一梯度估计量:

g^f=1Gi=1Gf(oi)A~it=1oiθlogπθ(oi,tq,oi,<t)(6)\hat{g}_f = \frac{1}{G}\sum_{i=1}^{G} f(|o_i|) \cdot \tilde{A}_i \cdot \sum_{t=1}^{|o_i|} \nabla_\theta \log \pi_\theta(o_{i,t} \mid q, o_{i,<t}) \tag{6}

GRPO 是特例 f(L)=1/Lf(L) = 1/L;Dr. GRPO 是 f(L)=1f(L) = 1(两者都省略了 std(R) 因子,因为它是与长度偏差问题正交的问题级标量)。这篇论文证明的一切,本质上都是关于这个单参数函数族 ff 的命题。

2. 架构 / 流程总览

这篇论文没有任何神经网络架构上的创新——它的贡献完全是数学的——但看清这个定理在标准 RLVR 训练循环中的位置,以及两条性质(P1, P2)如何映射到可观察的训练病态现象,是很有帮助的。

flowchart TD
    A["从数据集采样提示 q"] --> B["从策略 π_θ 采样<br/>G 个回答 o_1 ... o_G"]
    B --> C["给每个回答打分:<br/>R(q, o_i) = 1 正确 / 0 错误"]
    C --> D["组相对基线:<br/>Ã_i = R_i - mean(R)"]
    D --> E{"应用长度权重 f(L_i)"}
    E -->|"f(L) = 1/L → GRPO"| F["梯度份额与长度无关<br/>(P2 成立)<br/>但估计量有偏 (P1 不成立)"]
    E -->|"f(L) = 1 → Dr. GRPO"| G["梯度无偏<br/>(P1 成立)<br/>但长轨迹主导<br/>梯度份额 (P2 不成立)"]
    F --> H["观测到的病态:<br/>模型偏向<br/>长而错的答案"]
    G --> I["观测到的病态:<br/>正确与错误回答<br/>都倾向变长"]
    H --> J["定理 6:<br/>没有 f(L) 能逃脱这个权衡"]
    I --> J

图 A(自绘):这两个命名算法各自的失效模式并非独立的 bug——它们是同一个底层不可能性的两种可见症状。

论文最关键的概念性动作,是把**“梯度估计量在期望意义下是否正确”(一个统计性质,P1)与”轨迹长度是否影响它能撬动参数更新的力度”**(一个训练动态性质,P2)区分开来。直觉上这两个听起来应该对一个设计良好的算法都成立——这正是 Dr. GRPO 的框架所依赖的直觉——但证明表明它们在结构上互相冲突。

3. 核心理论:两条性质的完整展开

3.1 形式化定义(论文中的定义 4 和 5)

定义 4(轨迹级正确性,P1)。 如果存在一个常数 c>0c > 0,与轨迹长度分布无关,使得对策略类 Π\Pi 中的每一个策略 π\pi 都有:

Eπ[g^f]=cθJ(π)(11)\mathbb{E}_\pi[\hat{g}_f] = c\, \nabla_\theta J(\pi) \tag{11}

那么估计量 g^f\hat{g}_f 就满足 P1。用大白话说:无论当前策略碰巧产生了怎样的长度分布,期望梯度都指向真实策略梯度方向的(一个固定正数倍缩放)。这就是”无偏”应该表示的意思。

定义 5(长度中立性,P2)。 定义 Γπ,ρ(L;a):=Eπ[ρ(S)L(τ)=L,A~(τ)=a]\Gamma_{\pi,\rho}(L; a) := \mathbb{E}_\pi[\rho(S) \mid L(\tau)=L, \tilde{A}(\tau)=a]——在某个尺度泛函 ρ\rho(比如某个向量范数)下,固定轨迹长度 LL 和固定实现的优势值 aa 条件下,逐轨迹分数和 S=tθlogπθ(otq,o<t)S = \sum_t \nabla_\theta \log \pi_\theta(o_t \mid q, o_{<t}) 的期望大小。如果:

f(L)Γπ,ρ(L;a)(13)f(L)\, \Gamma_{\pi,\rho}(L; a) \tag{13}

这个量不随 LL 的取值改变(固定优势值 aa),那么估计量就满足 P2。用大白话说:两条获得相同奖励信号的轨迹(比如都是正确的)应该对梯度更新贡献相同的量,无论一条是 200 个 token 还是另一条是 6000 个 token。长度不应该成为一个隐藏的杠杆,决定一条轨迹被强化的程度。

这两条性质各自看都是合理、独立值得追求的目标。定理的核心结论是:对于任何只依赖长度的 ff,你都无法同时拥有两者。

3.2 定理 6,逐步展开

设置。 固定一个权重函数 f:NR+f: \mathbb{N} \to \mathbb{R}^+。假设(假设 2,“定长可实现性”)对某个可实现长度集合 L\mathcal{L},策略类中确实存在这样的策略:对某个提示,几乎必然产生固定长度 LL,但 token 内容仍保持非退化的随机性——这是一个技术性条件,用来让我们能谈论”相同长度、不同可能优势值”,而不需要长度本身被内容强制决定。再假设(假设 3)尺度泛函 ρ\rho 是一次正齐次的(任何范数都满足这一点)。

命题。 如果存在一个策略 π\pi^\star、一个优势值 aa^\star,以及两个不同的可实现长度 L1L2L_1 \neq L_2,使得 Γπ,ρ(L1;a)Γπ,ρ(L2;a)\Gamma_{\pi^\star,\rho}(L_1;a^\star) \neq \Gamma_{\pi^\star,\rho}(L_2;a^\star)(即”典型的分数和大小”确实随长度变化,这在响应长度方差不可忽略时都成立),那么不存在任何 ff 能同时满足 P1 和 P2。

证明,完整展开:

第一步——P1 迫使 ff 是常数。 任选一个可实现长度 L0LL_0 \in \mathcal{L}。在定长策略 π(L0)\pi^{(L_0)}(所有轨迹长度恰好为 L0L_0)下,所有 Li=L0L_i = L_0,于是估计量坍缩为:

g^f=f(L0)1Gi=1GA~iSi(16)\hat{g}_f = f(L_0) \cdot \frac{1}{G}\sum_{i=1}^{G} \tilde{A}_i S_i \tag{16}

展开组相对基线 A~i=Rimean(R)=(11G)Ri1GjiRj\tilde{A}_i = R_i - \text{mean}(R) = \left(1 - \frac{1}{G}\right) R_i - \frac{1}{G}\sum_{j \neq i} R_j,取期望。由于组内轨迹在给定提示和当前策略下条件独立同分布,RjR_j(jij \neq i)与 SiS_i 独立,再根据分数函数恒等式 Eπ(L0)[Si]=0\mathbb{E}_{\pi^{(L_0)}}[S_i] = 0(这是标准事实 Eπ[θlogπθ(o)]=0\mathbb{E}_\pi[\nabla_\theta \log \pi_\theta(o)] = 0,因为 θoπθ(o)=θ1=0\nabla_\theta \sum_o \pi_\theta(o) = \nabla_\theta 1 = 0)。所以所有交叉项 E[RjSi]=E[Rj]E[Si]=0\mathbb{E}[R_j S_i] = \mathbb{E}[R_j]\mathbb{E}[S_i] = 0 都消失,剩下:

Eπ(L0)[A~iSi]=(11G)Eπ(L0)[RiSi]=(11G)θJ(π(L0))(21-22)\mathbb{E}_{\pi^{(L_0)}}[\tilde{A}_i S_i] = \left(1 - \frac{1}{G}\right) \mathbb{E}_{\pi^{(L_0)}}[R_i S_i] = \left(1 - \frac{1}{G}\right) \nabla_\theta J(\pi^{(L_0)}) \tag{21-22}

这里用到了 REINFORCE 恒等式 E[RiSi]=θJ\mathbb{E}[R_i S_i] = \nabla_\theta J。代回去:

Eπ(L0)[g^f]=f(L0)G1GθJ(π(L0))(23)\mathbb{E}_{\pi^{(L_0)}}[\hat{g}_f] = f(L_0) \cdot \frac{G-1}{G} \cdot \nabla_\theta J(\pi^{(L_0)}) \tag{23}

如果 P1 成立,这必须等于 cθJ(π(L0))c \cdot \nabla_\theta J(\pi^{(L_0)}),其中 cc 与长度无关,于是对每一个 L0LL_0 \in \mathcal{L} 都有 f(L0)G1G=cf(L_0) \cdot \frac{G-1}{G} = c——这就迫使 ff 在所有可实现长度上都是同一个常数,f(L)c0f(L) \equiv c_0

第二步——P2 迫使 ff 是非常数。 反证:假设 fc0f \equiv c_0。代入 P2 条件 f(L)Γπ,ρ(L;a)=Cπ,af(L)\Gamma_{\pi,\rho}(L;a) = C_{\pi,a}(不随 LL 变化的常数),在 π=π,a=a\pi = \pi^\star, a = a^\star 处得到 c0Γπ,ρ(L1;a)=c0Γπ,ρ(L2;a)c_0 \Gamma_{\pi^\star,\rho}(L_1;a^\star) = c_0 \Gamma_{\pi^\star,\rho}(L_2;a^\star)。由于 c0>0c_0 > 0,这蕴含 Γπ,ρ(L1;a)=Γπ,ρ(L2;a)\Gamma_{\pi^\star,\rho}(L_1;a^\star) = \Gamma_{\pi^\star,\rho}(L_2;a^\star)——直接与”这两个量不同”的假设矛盾。

第三步——矛盾。 第一步说:若 P1 成立,则 ff 必须是常数。第二步说:若 ff 是常数,则(在长度非平凡依赖的假设下)P2 不成立。所以 P1 和 P2 不能同时成立。\blacksquare

剥离代数之后的直觉。 P1 要求”统一的长度权重不改变原始轨迹级策略梯度目标”——这在数学上要求权重 ff 不随长度变化(任何变化都会引入一个长度相关的重缩放,破坏无偏性恒等式)。P2 要求”权重应该随长度变化,具体来说要抵消长轨迹自然累积更大分数和(即 tlogπθ\sum_t \nabla \log \pi_\theta 求和中项数更多)这一事实”。一条性质要求恒定,另一条要求非恒定——而且恰恰是为了补偿某个随长度缩放的量。这两者之间没有一根针能同时穿过。

诚实地说明适用范围。 这个定理只排除了依赖长度的权重函数。它给依赖 token 位置、局部上下文、分数几何,或更细粒度信用分配的方案留了空间——论文明确指出这是未来工作,而不是已经被排除的东西。

3.3 算法视角:如何实际检查你的训练跑在权衡曲线的哪个位置

论文本身没有以严格伪代码的形式呈现这一点,但把定理隐含的”诊断”过程写成可执行的伪代码是很有用的,因为这正是你会真正拿去跑训练日志的东西:

算法 1:诊断你的 RL 训练跑在 P1/P2 权衡曲线的哪一侧
输入:一个批次的 (提示, G 个回答的组, 奖励, 长度)
输出:P1 违反和 P2 违反的经验估计

1:  对每个训练步骤执行:
2:      收集当前提示组的 {(o_i, R_i, L_i)}_{i=1}^{G}
3:      计算 Ã_i = R_i - mean(R)                          # 式 3
4:      计算逐轨迹分数和 S_i = Σ_t ∇_θ log π_θ(o_{i,t} | ·)
5:      # --- P1 经验检查:梯度偏差项(推论 12) ---
6:      计算 bias_P1 ≈ (1/G) Σ_i Ã_i (f(L_i) - c̄) · S_i     # 当 L_i 与 S_i 相关时非零
7:      # --- P2 经验检查:长度权重份额(推论 9) ---
8:      计算 w_i = f(L_i) |S_i| |Ã_i| / Σ_j f(L_j) |S_j| |Ã_j|
9:      若 max_i w_i - min_i w_i 超过容差 ε,标记"此步骤 P2 违反"
10: 结束循环
11: 汇总整个训练过程的 bias_P1 和 w_i 的分布范围
12: 报告:训练跑的经验 (bias_P1, 长度权重分布范围) 更接近
    Pareto 曲线上哪个区间(GRPO 式 / Dr.GRPO 式 / 中间 α)

手算示例,让算法 1 变得具体。G=2G=2,一条正确轨迹 o1o_1(R1=1R_1=1,L1=10L_1=10 个 token)和一条错误轨迹 o2o_2(R2=0R_2=0,L2=10,000L_2=10{,}000 个 token)——这是论文的例子 10。优势值为 A~1=+0.5\tilde{A}_1 = +0.5,A~2=0.5\tilde{A}_2 = -0.5。在 Dr. GRPO(f1f\equiv 1)下,梯度贡献量级分别为 o1o_110×0.5=510 \times 0.5 = 5o2o_210,000×0.5=5,00010{,}000 \times 0.5 = 5{,}000——这条又长又错的轨迹独占了总梯度量级的 5000/500599.9%5000/5005 \approx 99.9\%,意味着算法 1 中”第 8 步”的权重分布检查会立刻报警(wo2wo10.998εw_{o_2} - w_{o_1} \approx 0.998 \gg \varepsilon)。在 GRPO(f(L)=1/Lf(L)=1/L)下,两者都贡献恰好 0.5×1=0.50.5 \times 1 = 0.5,与长度无关——没有分布差异,P2 局部成立,但(根据下文推论 12)现在存在一个与”哪些 token 倾向与短/长回答共现”相关的系统性偏差。

4. 设计选择拆解

选择 1——为什么用一个参数化函数族 fα(L)=Lα1f_\alpha(L) = L^{\alpha-1} 来比较,而不是只对比两个孤立算法? 为什么可行:把 GRPO(α=0\alpha=0)和 Dr. GRPO(α=1\alpha=1)框定为一个连续统的两端,立刻告诉你这是一个旋钮,而不是二选一,而且中间值(α(0,1)\alpha \in (0,1))以一种可量化、单调的方式权衡部分偏差与部分长度敏感性(推论 8:偏差 α1\propto |\alpha - 1|,长度偏差 α\propto \alpha)。显而易见的替代方案——就像这个领域大多数论文那样,在几个基准上直接对比 GRPO 和 Dr. GRPO——能告诉你哪个在你的基准上赢了,但不能告诉你为什么,也不给你在两端都不合适时插值的手段。参数化框架的弱点在于:论文没有把最优 α\alpha^* 推导为可测量训练统计量(比如观测到的长度方差)的函数;它止步于”实践指导”启发式(见下文第 4 节),把实际的旋钮设定留给实践者做经验性探索。

选择 2——为什么用”定长可实现性”假设(假设 2),而不是对任意策略无条件证明定理? 为什么可行:这个假设让证明能够把纯粹的长度效应与混淆效应(比如长度与正确性以复杂方式纠缠在一起的策略)分离开来。通过构造一个几乎必然产生固定长度、但 token 内容仍随机的假想策略,证明能干净地在该策略下计算 E[g^f]\mathbb{E}[\hat g_f],推导出对 ff 的长度索引约束。显而易见的替代方案——直接针对实际训练策略的长度分布证明——会更难清晰表述,而且会把”这个具体模型的”长度/正确性相关性与论文想建立的结构性不可能性混为一谈,而后者是估计量族本身的性质,不是任何一个策略的性质。真正的局限在于:真实训练出来的策略从来不是严格定长的;定理的保证是关于策略类中原则上可达到什么,它的实际杀伤力取决于真实训练跑的长度方差有多接近违反非平凡性条件(论文认为,在长度可变的推理任务中,这基本上总是成立的)。

选择 3——为什么在推论的手算例子里用二元结果奖励(0/1 正确性),而不是更丰富的连续奖励塑形? 为什么可行:二元结果奖励是几乎每一个 RLVR 推理流水线(DeepSeek-R1-Zero、Open-Reasoner-Zero 等)使用的设定,所以把定量推论(推论 9、12、13)建立在这个设定上最大化了现实相关性,还让论文能引用 DeepSeek-R1-Zero 训练日志中的一个真实经验数字(例子 11:平均 4,965 vs. 8,206 个 token)把抽象定理锚定到一个具体的、已经被观测到的 62.3% 梯度份额上。替代方案——为连续过程奖励或奖励模型推导这些推论——被作者明确列为(在局限性部分)未来工作,而且确实更难,因为优势值在一条轨迹内的 token 之间不再恒定,第 4 节全程使用的干净的 oiA~i|o_i| \cdot \tilde A_i 分解就此失效。

选择 4——为什么把论文框定为对一个具体先前主张(“Dr. GRPO / GRPO Done Right”)的反驳,而不是一个独立的不可能性结果? 为什么可行:针对一个被广泛引用、广泛采纳的具体主张进行锚定,立刻赋予结果实际的利害关系——这不是”这里有一个关于权重函数的抽象事实”,而是”你们很多人转向的这个被称为’做对了’的算法有它自己形状不同的偏差,而两个名字都不准确”。这个框架同样诚实地承认了 Dr. GRPO 主张中正确的那一半(梯度无偏性证明确实成立,本文重新验证过)同时只质疑”做对了”这个框架的完整性。这个框架选择的风险:它可能读起来像是针对一篇具体的、近期的、受尊敬的论文的对抗性批评,而只扫一眼标题的读者可能会误以为这是”Dr. GRPO 是错的”,而不是更细致(也更正确)的主张——Dr. GRPO 做出了一个合理但宣传不足的权衡。

4.5 一个补充对照:把已知的 GRPO 变体映射到权衡曲线上

这篇论文启发出的一个非常有用的练习——尽管论文本身没做——是把你听过的每一个 GRPO 变体放到 α[0,1]\alpha \in [0,1] 这条轴上,问问它到底选择了权衡的哪一边。以下是我自己做的这份对照,也正是我希望论文本身包含的那种表格:

方法等效长度权重P1(无偏)P2(长度不变)实际症状
GRPO(Shao et al. 2024)f(L)=1/Lf(L)=1/L✗(有偏,推论 12)~✓(等权重,与长度无关)偏向长而的答案
Dr. GRPO / RLOO(Liu et al. 2025; Kool et al. 2019)f(L)=1f(L)=1✗(推论 9:长轨迹主导)正确与错误回答都倾向变长
DAPO 的 token 级损失聚合批次层面更接近 f(L)=1f(L)=1偏向 ✓偏向 ✗与 Dr. GRPO 类似的长度增长压力,被 DAPO 其他组件(clip-higher、动态采样)部分缓解
GSPO 的序列级重要性比率概念上更接近 α1\alpha \approx 1,但重加权的是比率本身而非梯度和部分部分机制完全不同——值得单独重新分析,本文未覆盖
中间 α(0,1)\alpha \in (0,1) 方案(尚未被广泛命名/采用)fα(L)=Lα1f_\alpha(L)=L^{\alpha-1}部分部分截至本文写作时,尚未在大规模实践中被验证

DAPO 和 GSPO 那两列是我自己的推断,不是论文中的原始主张——建这张表的意义在于展示,一旦你开始问”变体 X 到底站在哪里”,而不是把定理当作纯抽象事实,论文的框架能立刻变得多么可操作。

4.6 为什么尺度泛函 ρ\rho 的选择没有看起来那么重要

一个细心的读者会问:定义 5 的长度中立性质是相对于一个任意的尺度泛函 ρ\rho(比如某个向量范数)定义的。不可能性结论对 ρ\rho 的选择敏感吗?证明的第二步只用到了 ρ\rho 是一次正齐次的(假设 3)——这是一个非常弱的要求,几乎所有合理的”梯度大小”概念都满足(任何范数,甚至论文指出的沿固定方向的带符号投影)。这个鲁棒性是一个真正的优点:这个不可能性不是某种衡量梯度大小的怪异选择的产物,它对整个自然的量级度量类都成立。

flowchart LR
    subgraph Legend["读懂权衡轴"]
        direction TB
        L0["α = 0(GRPO)<br/>f(L) = 1/L"] --> L05["α = 0.5<br/>f(L) = L^-0.5"]
        L05 --> L1["α = 1(Dr. GRPO)<br/>f(L) = 1"]
    end
    L0 -.->|"梯度偏差 ∝ |α-1|"| Bias["偏差轴:<br/>α=0 时高,<br/>α=1 时为零"]
    L1 -.->|"长度偏差 ∝ α"| Len["长度偏差轴:<br/>α=0 时为零,<br/>α=1 时高"]

图 B(自绘):随着 α 从 0 扫到 1,两种误差来源恰好朝相反方向变化——这是推论 8 用图示而非公式表达出来的样子。

5. 量化结果,复现并解读

这是一篇理论论文——没有新的实验训练跑——但”结果”部分是一组带干净数字的精确推论,论文用图表可视化和列表呈现。这里用原始图表复现它们。

图 1(论文 Fig. 1):双向直觉图。

图 1(论文 Fig.1):完全无偏是不可能的——GRPO 的逐 token 惩罚差距造成对长而错答案的 30 倍偏向,而 Dr. GRPO 的等权重逐 token 处理让一条 6000-token 的错误轨迹的贡献是一条 200-token 正确轨迹的 30 倍。

先看左边(青色)方框:在 GRPO 下,一个 200-token 的错误回答和一个 6000-token 的错误回答分别受到 0.5/2000.5/2000.5/60000.5/6000逐 token惩罚——一个 30×30\times 的差距,这正是推动策略偏好生成长而错的答案(而非短而错的答案)的机制,因为犯错的逐 token 成本被长度稀释了。右边(橙色)方框展示了 Dr. GRPO 的相反失效模式:一个 200-token 的正确回答对梯度贡献 200×0.5=100200 \times 0.5=100,而一个 6000-token 的错误回答贡献 6000×0.5=30006000\times0.5=3000——这条错误但冗长的轨迹以 30×30\times 的原始梯度量级淹没了正确但简短的轨迹,与正确性无关。两个方框都无法同时勾选”P1 无偏”和”P2 长度不变”——这就是把定理转化成了算术。

图 2(论文 Fig. 2):Pareto 前沿本身。

图 2(论文 Fig.2):不可能性权衡——GRPO(α=0)和 Dr. GRPO(α=1)位于一条连续 Pareto 前沿的两端,权衡着梯度估计偏差与长度偏差;原点处(两轴都为零偏差)阴影标出的"不可能"区域对任何仅依赖长度的加权函数都是不可达的。

这是整篇论文最清晰的单一视觉总结:梯度估计偏差(纵轴)随着长度偏差(横轴)增大而单调下降,从 GRPO 经过 α=0.5\alpha=0.5 到 Dr. GRPO。原点处阴影方框——两轴同时零偏差——正是定理 6 证明不可达的区域。任何使用仅依赖长度的加权函数的真实算法,都活在这条前沿曲线上或曲线之上,永远进不了那个被禁止的角落。

表 1(论文 Table 1):长度比率算术,列表呈现。

表 1(论文 Table.1):不同长度比率(G=2,二元奖励)下 Dr. GRPO 与 GRPO 的梯度权重份额——Dr. GRPO 中较长轨迹的权重份额随长度比率单调增长(比率从 1:1 到 100:1 时从 50% 增长到 99%),而 GRPO 始终稳定保持在 50/50,与比率无关。

这张表是推论 9 的具体化:在长度比率 r=100:1r=100{:}1 时,Dr. GRPO 给较长轨迹分配了总梯度量级的 99.0%99.0\%,而 GRPO 保持恒定的、对长度不敏感的 50.0%/50.0%50.0\%/50.0\% 分配。推导(推论 9 的证明):在 G=2G=2、二元奖励下,恰好一条轨迹正确,给出 mean(R)=0.5\text{mean}(R)=0.5A~1=A~2=0.5|\tilde A_1|=|\tilde A_2|=0.5。在 Dr. GRPO(f1f\equiv1)下,每条轨迹的梯度贡献量级为 f(Li)A~iLi=10.5Lif(L_i)\cdot|\tilde A_i|\cdot L_i = 1 \cdot 0.5 \cdot L_i,所以份额就是简单的 wi=Li/(L1+L2)w_i = L_i/(L_1+L_2)——对于长度比率 r=Lmax/Lminr=L_{\max}/L_{\min},这是 wlong=r/(1+r)w_{\text{long}} = r/(1+r)(式 35),在 r=1r=1 时为 50%50\%,随着 rr \to \infty 趋于 100%100\%。在 GRPO(f(L)=1/Lf(L)=1/L)下,贡献是 (1/Li)0.5Li=0.5(1/L_i)\cdot 0.5 \cdot L_i = 0.5,对每个 ii 都一样——因构造而与长度无关。

推论 12,展开——GRPO 自身的偏差,量化。 论文也没有放过 GRPO。推论 12 指出 GRPO 的梯度估计量满足:

E[g^1/L]θJ=E[1GiA~i(1oi1)θlogπθ(oiq)](36)\mathbb{E}[\hat{g}_{1/L}] - \nabla_\theta J = \mathbb{E}\left[\frac{1}{G}\sum_i \tilde{A}_i\left(\frac{1}{|o_i|}-1\right)\nabla_\theta\log\pi_\theta(o_i \mid q)\right] \tag{36}

逐步证明: 直接计算,E[g^1/L]=E[1GiA~i1oiθlogπθ(oiq)]\mathbb{E}[\hat g_{1/L}] = \mathbb{E}\left[\frac{1}{G}\sum_i \tilde A_i \frac{1}{|o_i|}\nabla_\theta\log\pi_\theta(o_i\mid q)\right],而真实梯度是 θJ=E[1GiA~iθlogπθ(oiq)]\nabla_\theta J = \mathbb{E}\left[\frac{1}{G}\sum_i \tilde A_i \nabla_\theta\log\pi_\theta(o_i \mid q)\right](这只是式 2 在常数逐轨迹优势值特殊化后的形式)。两者相减,利用期望的线性性即直接得到式(36)。这个偏差在 oi|o_i|(长度,由策略何时决定发出 EOS token 决定)与分数函数 θlogπθ(oiq)\nabla_\theta \log \pi_\theta(o_i \mid q) 统计相关时非零——论文正确地指出这种相关性几乎总是存在,因为同一个网络参数既决定了内容(进而决定分数)也决定了停止时刻(进而决定长度)。这是一个真正精妙的观察:长度与梯度相关不是某些数据集里的巧合,而是结构性的,因为二者由同一套参数生成。

例子 11——把定理锚定到真实训练日志。 Liu et al.(2025)报告 DeepSeek-R1-Zero 的正确答案平均 4,965 个 token,错误答案平均 8,206 个 token——大约 1:1.65 的比率。把这个数字代入 Dr. GRPO 的权重份额公式(wi=Li/(L1+L2)w_i = L_i/(L_1+L_2),G=2G=2):错误(更长)的轨迹捕获约 8206/(4965+8206)62.3%8206/(4965+8206) \approx 62.3\% 的梯度,相对天真预期的 50/50 平衡偏离了 24.6 个百分点。论文谨慎地指出这个具体数字是一次性配对示意,而非全规模的重复消融实验——但这是一对真实的、已发表的数字,不是合成的最坏情况,这让定理的实际杀伤力变得具体,而不只是纯假设性的。

综合起来——诊断算法的决策流程视角。 第 3.3 节的算法 1 和本节的手算示例组合成了一个训练工程师可以真正拿去对照实际任务运行的决策流程:

flowchart TD
    Start["观察到:RLVR 训练过程中<br/>回答长度在增长"] --> Q1{"组内长度方差<br/>是否很高?"}
    Q1 -->|"否(长度相近)"| Neg["权衡可以忽略不计——<br/>任一 f 的选择都可以<br/>(参见 4.2 节'何时权衡重要'的指导)"]
    Q1 -->|"是(比如正确 vs.<br/>错误的长度差 2 倍以上)"| Q2{"你更担心哪种失效模式?"}
    Q2 -->|"模型偏向<br/>冗长的错误答案"| UseGRPO["倾向选择更接近 0 的 α<br/>(GRPO 式):长度不变,<br/>接受一定的梯度偏差"]
    Q2 -->|"正确但简短的答案<br/>相对长答案被欠强化"| UseDrGRPO["倾向选择更接近 1 的 α<br/>(Dr.GRPO 式):梯度无偏,<br/>接受长度驱动的权重偏斜"]
    UseGRPO --> Monitor["在整个训练过程中监控<br/>推论 12 的偏差项 +<br/>权重份额分布范围(算法 1)"]
    UseDrGRPO --> Monitor
    Monitor --> Adjust["按课程式阶段调整 α<br/>(参见第 5 节'实践指导')——<br/>探索性,非定理推导"]

图 C(自绘):把论文的定理、推论和非正式指导综合成一个面向实践者的决策树——注意最后一步明确是启发式的,不属于证明的一部分。

6. 局限性(论文原文所述,以及我认为应该补充的)

论文自己的说法: 这个不可能性结果专门针对结果奖励设定,即一个标量奖励被原样广播到轨迹中的每一个 token。在过程奖励(Schulman et al. 2018 式的逐步奖励)下,不同 token 得到不同的优势值估计,优势值在轨迹内不再是常数,第 4 节全程依赖的干净的 oiA~i|o_i|\cdot\tilde A_i 分解就此失效——把不可能性分析扩展到这个设定被明确列为未来工作。这个分析同样是单步的:它没有直接说明长度偏差如何与多步优化动态(PPO 式的多步裁剪、学习率调度,或者”梯度主导”到”实际行为漂移向更长输出”这一因果链在数百次更新中如何展开)相互作用——这也被明确指出超出了论文范围。

我认为应该补充的: 首先,定理是在满足”定长可实现性”(假设 2)的理想化策略类上陈述的——真实的神经网络策略从来不会几乎必然产生一个字面意义上固定的长度,所以定理的保证是关于可达到的估计量族的陈述,而不是直接证明任何具体的真实训练跑当下正好被这么多偏差误导;这个界限咬得有多紧,取决于真实策略的条件长度分布有多接近违反非平凡性条件,而论文没有对任何真实训练出来的模型测量过这个差距(例子 11 用的是训练日志中的边际平均长度,而非定理真正需要的条件分布 Γπ,ρ(L;a)\Gamma_{\pi,\rho}(L;a))。其次,“仅排除长度加权”这个范围限定其实在悄悄做很多工作——这意味着 DAPO 或其他条件不仅仅是原始长度的长度感知裁剪/掩码方案不会自动被这个不可能性覆盖,而论文没有为读者审查哪些现实中”修复过”的 GRPO 变体本质上仍是伪装过的长度专属函数(很多逐 token 或优势值裁剪方案在你把代数一路展开之后,实际上仍然归约为某个 f(L)f(L),但论文没有为读者做这项审计)。

7. 批判性分析

这篇论文特有的缺陷。 这个定理虽然确实优雅,但依赖一个相当便利的存在性假设(假设 2,定长可实现性),而这个假设从未针对任何真实策略被操作化或检验过——定理的全部定量”杀伤力”(权衡在实践中到底有多大,对具体模型和数据集而言)是通过一对示意性数字(例子 11 的 4,965 vs. 8,206 token)来主张的,而不是直接在任何真实训练出的 checkpoint 上测量定理自身研究的对象 Γπ,ρ(L;a)\Gamma_{\pi,\rho}(L;a)。一篇核心主张是”这个偏差在现实训练场景中量级上很严重”的论文,如果至少有一个测量真实 RLVR 训练过程中实际条件长度-优势值分布的小型受控实验,而不是完全依赖一个从另一篇论文表格里摘出的单一已发表边际统计量,说服力会强得多。

作者低估或省略的局限性。 论文对范围局限(仅结果奖励、单步)相当坦诚,但对这个结果无法解决多少实际争论这一点略微轻描淡写了:知道”GRPO 和 Dr. GRPO 是两个 Pareto 最优点”并不能告诉从业者哪个点对他们的具体训练场景更可取,而给出的”实践指导”(第 5 节:长度方差高时用较小的 α,训练早期用较大的 α)是启发式的,不是从定理本身推导出来的——它是在与严格证明同一节里穿着”事后直觉”的外衣,细心的读者应该注意到第 3-4 节(证明)与指导段落(有见地的意见)之间认知性质的转变。论文也没有讨论一个事实:许多生产环境的 RL 流水线(DAPO、GSPO,以及本博客已经评述过的其他方法)在序列层面应用长度归一化,同时结合 token 级重要性比率裁剪,这种方式可能根本无法干净地表示为单一标量 f(L)f(L)——“统一框架”声称覆盖了”GRPO 和 Dr. GRPO”,但它对 2024 年后长度处理技巧这个更广泛动物园的覆盖程度充其量是隐含的。

具体的改进建议。 (1)增加一个小型实验部分——哪怕只是单个 7B 模型、单个数据集的消融——测量 GRPO 和 Dr. GRPO 下真实训练跑中实际实现的权重份额分布差 wlongwshortw_{\text{long}} - w_{\text{short}},以证明定理预测的差距(表 1 的算术)确实在梯度范数中体现出来,而不仅仅是在理想化的 G=2G=2 玩具计算里。(2)把参数化函数族分析扩展到推导(而非启发式建议)一个随长度方差自适应的 α(t)\alpha(t) 调度方案——论文用一句话提到”课程式方法可能有益”,但没有尝试哪怕在简化假设下形式化最优调度会是什么样子。(3)明确把至少 3-4 个被引用最多的后 GRPO 长度处理变体(Dr. GRPO、DAPO 的长度惩罚、GSPO 的序列级比率、RLOO)归类到这条 Pareto 前沿上或之外的位置——目前论文把这个留给读者自己做,但在论文本身里完成这项工作会让”统一框架”这个说法真正配得上它的名字,而不只是统一了两个最著名的特例。

8. 可复现性说明

这是一篇纯数学论文,没有训练跑,所以这里的”可复现性”指的是检查证明和算术,两者都可以手工完全验证:

  • 定理 6 的证明(第 3 节,三步)自洽完整,只用到分数函数恒等式 Eπ[θlogπθ(o)]=0\mathbb{E}_\pi[\nabla_\theta\log\pi_\theta(o)]=0 和期望的线性性——除了标准的 REINFORCE 恒等式(Sutton & Barto, 2018)之外不需要任何外部结果。
  • 推论 9 的表格(表 1)直接可重新计算:对任意长度比率 rr,Dr. GRPO 下 wlong=r/(1+r)w_{\text{long}} = r/(1+r),GRPO 下恒定为 0.50.5——代入 r{1,2,5,10,50,100}r \in \{1,2,5,10,50,100\} 即可复现每一行。
  • 例子 11 的数字(62.3%62.3\%)可直接从公开报告的 DeepSeek-R1-Zero 平均长度(正确 4,965 / 错误 8,206)重新计算:8206/(4965+8206)=0.62298206/(4965+8206) = 0.6229\ldots
  • 没有发布或需要任何代码、checkpoint 或数据集——整个成果就是论证本身,对于一篇针对整个算法族做出基础性主张的论文而言,这确实是一个优点。

9. 在更广泛的高效 RL 训练版图中的位置

这篇论文最好与本博客已经覆盖过的 2025-2026 年”GRPO 到底哪里做错了”系列论文一起读——DAPO 的 clip-higher 和动态采样、GSPO 转向序列级重要性比率、VAPO 的价值增强方法,以及 RLOO 的 REINFORCE 式基线。这些论文里几乎每一篇都对如何按长度加权或归一化做出了某种选择,通常用经验性消融来论证(“去掉 X 让 Pass@1 提升了 Y 个点”)。这篇论文贡献了这些论文单独都没有的东西:一个结构性论证,说明这样的选择永远无法是一个干净、无偏差的”修复”——它总是在用一个性质换取另一个性质。对任何读到这个领域下一篇长度处理论文的人来说,实际的启发是:不要问”他们修复了长度偏差吗”,而要问”他们朝这条 Pareto 前沿的哪一边移动了,这对我训练场景的长度方差来说是不是正确的权衡”。

9.5 阅读下一篇”我们修复了 GRPO 长度偏差”论文时的实用检查清单

考虑到这个具体子领域还会不断涌现新论文——长度感知的裁剪、序列级 vs. token 级重要性比率、自适应归一化调度——把这篇论文的工具提炼成一份可重复使用的检查清单是值得的:

  1. 找出等效的加权函数。 新方法经过代数展开后,是否归约为对轨迹梯度贡献统一施加某个 f(L)f(L)?如果是,定理 6 已经告诉你它不可能同时满足 P1 和 P2——唯一的问题是它站在权衡曲线的哪个位置,而不是它是否”解决”了这个问题。
  2. 判断修复是否真的仅依赖长度,还是有更丰富的东西。 按定理明确的适用范围,依赖 token 位置、局部上下文或逐 token 信用分配(而非仅仅标量 oi|o_i|)的方法不会自动被这个不可能性覆盖——这些才是真正有希望完全逃脱这个权衡的方向,值得一次全新的分析,而不是被简单地当作”像 Dr. GRPO 但更好”放行。
  3. 检查论文自己的消融实验调优检测的是哪种失效模式。 一篇只报告总体准确率提升,却没有分别报告(a)训练过程中的回答长度漂移和(b)某种梯度估计偏差代理指标的论文,很可能是在报告一次沿 Pareto 前沿的移动,却把它包装成一个严格改进——要问清楚什么变差了。
  4. 寻找长度方差的上下文。 根据第 4.2 节”何时权衡重要”的讨论,任何 α 选择的实际利害关系,取决于被训练任务分布中组内回答长度的变化程度。一个只在低长度方差任务(比如短问答)上验证过的方法,对它在长链数学或智能体推理任务(长度方差恰好在这里最要命)上的表现说明不了太多。
  5. 警惕孤立使用”无偏”这个词。 正如这篇论文的整个论证所展示的,“无偏”是一个真实但不完整的描述,除非它伴随着对”为了得到它,牺牲了哪种性质”的明确说明。任何把”无偏”当作”正确”或”修复了”的同义词使用、却不承认对应代价的论文,都在重复这篇论文一开始就要纠正的那种框架。

9.6 常见误读澄清

读完这篇论文,几种常见的误读值得提前排雷:

  • 误读一:「这说明 GRPO 或 Dr. GRPO 有 bug,应该换掉」。 不对。定理证明的是任何仅依赖长度的加权函数都存在这个权衡,这不是某一个具体实现的 bug,而是这一整类估计量的结构性属性。换成任何别的 f(L)f(L)(哪怕是尚未发表的新方案)都逃不掉,除非引入长度以外的信息。
  • 误读二:「Dr. GRPO 论文的证明是错的」。 也不对。论文明确重新验证了 Dr. GRPO 关于梯度无偏性(P1)的证明是正确的——它没有推翻 Dr. GRPO 的数学,只是指出了这个证明省略了另一半故事(P2 长度不变性的代价)。
  • 误读三:「既然两者都有偏差,选哪个都一样,不用纠结」。 恰恰相反。论文明确给出了两种偏差各自的适用场景(第 4.2 节的实践指导):长度方差小时区别不大,方差大时(典型的推理任务)选择确实很重要,只是这个选择需要根据你更容忍哪一种失效模式来决定,而不是任意选择。
  • 误读四:「定理适用于任何 RL 目标函数」。 不完全对。定理明确局限于结果奖励(单一标量奖励广播到每个 token)这一特定设定,过程奖励(process reward)下的情况完全不同,定理本身并未覆盖那个设定。
  • 误读五:「只要结合两者取个中间值 α,就能得到既无偏又长度不变的“最优解”」。 不对。推论 8 明确指出中间 α 只是“部分有偏、部分依赖长度”,并不是两种缺陷都消失,只是把两个权衡量都改小一点——这在 Pareto 前沿上依旧是一个取舍点,不是逃出这条前沿。

9.7 部署前自检清单

如果你正在决定自己的 RLVR 训练任务该用哪种长度处理方案,以下是一份可以实际对照的自检清单,将本文所有定量推论变成可操作的决策依据:

  1. 【 】测量你的训练集内正确/错误回答的平均长度比例(参考例子 11 的方法)。若比例接近 1:1,两种方案差别不大,先不需要担心这个问题。
  2. 【 】若比例显著偏离 1:1(如例子 11 的 1:1.65),先确定你更担心哪种失效模式:模型偏向冗长错误回答还是短正确回答被欠强化。
  3. 【 】选 GRPO(长度不变)还是 Dr. GRPO/RLOO(无偏),请参考上面的决策流图(图 C)。
  4. 【 】部署后定期(每几千步)重新测量回答长度比例,因为长度分布可能会随训练进展本身发生变化(这可能需要调整 α)。
  5. 【 】如果你使用过程奖励而不是结果奖励,请注意本文的不可能性定理并未直接覆盖你的设定——但仍建议进行相似的长度-优势值相关性检测。

9.8 与本博客已发布 RL 训练系列的关联对比

本博客已经写过不少与 GRPO 家族相关的论文,把它们放在一块看会很有帮助:

已发布论文的主要关心点与本文的关系
DAPO(2026-05-12/06-30 发布)Clip-Higher 、动态采样、token 级损失聚合DAPO 的损失聚合方式可能在代数上等价于某个接近 α=1 的 f(L),但本文未对其做证明
GSPO(2026-05-31 发布)序列级重要性采样比率,而非 token 级机制不同,本文未覆盖,值得单独分析
RLOO(2026-06-16 发布)REINFORCE Leave-One-Out 基线本文明确指出与 Dr. GRPO 数学上等价,同样受到 P2 不成立的影响
VAPO(2026-06-09 发布)引入价值函数辅助优势估计与本文关心的 critic-free 设定不同,优势估计方式根本不同,本文的分析未必适用

这张表的重点不在于给出终结性结论,而在于提供一个提问框架:下一次你读到某个新的 GRPO 变体时,先问它的有效加权函数是什么,再问它站在这条 Pareto 前沿的哪一端。

9.9 术语速查表

英文术语中文表述本文中的角色
Trajectory-level correctness (P1)轨迹级正确性 / 梯度无偏性定义 4,定理的一个必要条件
Length neutrality (P2)长度中立性 / 长度不变性定义 5,定理的另一个必要条件
Group-relative baseline组相对基线GRPO 与 Dr. GRPO 共用的优势估计方式(式 3)
Fixed-length realizability定长可实现性假设 2,证明第一步依赖的技术假设
Score-function identity分数函数恒等式Eπ[θlogπθ(o)]=0\mathbb{E}_\pi[\nabla_\theta\log\pi_\theta(o)]=0,证明关键一步
Pareto frontierPareto 前沿图 2 中 GRPO 与 Dr. GRPO 所在的连续权衡曲线
Weighted gradient estimator family加权梯度估计量族式 6,统一 GRPO/Dr. GRPO 的框架

9.10 一个很少被讨论的边际效应:组大小 G 与长度偏差的交互

第 4.4 节的推论 13 把长度偏差从 G=2G=2 推广到任意组大小,这里值得多花一点篇幅讨论一个直觉上容易搞错的地方。很多人的第一反应是:组越大,单条异常长轨迹的相对影响应该被”稀释”得越小——毕竟它现在只是 GG 项求和中的一项,而不是两项中的一项。但式 (37) 告诉我们,权重 wiw_i 是该轨迹的 oiA~i|o_i|\cdot|\tilde A_i| 相对于所有 GG 条轨迹同一量的总和的比例,而不是简单的 1/G1/G 稀释。

具体来说:如果一个组里正确答案普遍很短,而错误答案的长度参差不齐(这正是论文引用的 DeepSeek-R1-Zero 训练日志所展示的真实模式),那么一条特别长的错误轨迹的份额并不会随 GG 增大而按比例缩小——它只会在其他轨迹本身也偏长的情况下被稀释。换句话说,在”正确答案长度一致偏短、错误答案长度高度异质”的典型推理任务场景下,哪怕把组大小从 G=2G=2 提升到生产环境常用的 G=16G=16 甚至 G=64G=64,单个极端长的错误轨迹依然可以几乎垂直地主导整组的梯度更新——这不是一个会随着更大规模采样自动消失的小样本假象,而是这套加权机制的内在属性。

这对实践的启示是:如果你打算靠”增大组大小 GG“来缓解 Dr. GRPO/RLOO 的长度偏差问题,这个直觉大概率是错的,除非你的错误轨迹长度分布本身相对均匀。真正有效的干预点仍然是加权函数 f(L)f(L) 本身,而不是采样组的规模。

9.11 写笔记前问自己的三个问题

在把这篇论文的结论套用到自己的训练任务之前,建议先问自己这三个问题——它们是本文所有理论工具凝练出来的最短版本:

  1. 我的训练任务里,正确答案和错误答案的长度差异有多大? 这是决定这个权衡到底重不重要的第一变量(第 4.2 节)。如果差异很小,选哪种加权方式几乎不影响训练动态;如果差异很大(长链数学推理、多步 agent 任务尤其典型),这个选择会实质性地影响模型学到的行为。
  2. 我更担心哪一种病态? 是模型学会用”话术”拖长错误答案来降低单 token 惩罚(GRPO 的病态),还是短小精悍的正确答案被系统性地欠强化(Dr. GRPO/RLOO 的病态)?这两种病态在实际部署里的代价并不对称——面向用户的产品可能更在意后者(简洁正确的回答被压制,导致模型学会啰嗦),而追求极限推理能力的场景可能更容忍前者。
  3. 我是否已经在用某个”魔改版 GRPO”,却不知道它其实是这个权衡曲线上的某个点? 很多团队直接抄开源实现里的默认长度归一化设置,从未真正问过这个设置对应哪个 α\alpha。读完本文后,这应该是审查任何 RL 训练代码库时的第一个问题。

9.12 一个小规模验证实验思路(供动手党参考)

如果你想亲自验证本文的核心结论而不只是读证明,这里是一个不需要大规模计算资源就能跑的小实验思路:

  1. 拿一个小模型(1.5B-7B 量级即可)在一个数学推理数据集(如 GSM8K 或 MATH 的子集)上分别用 GRPO(f(L)=1/Lf(L)=1/L)和 Dr. GRPO(f(L)=1f(L)=1)跑几百步 RLVR 训练。
  2. 每隔若干步记录:(a) batch 内正确答案与错误答案的平均长度,(b) 用推论 9/12 的公式手算出的理论权重份额,(c) 实际观测到的梯度范数份额(对每条轨迹的梯度贡献求范数并归一化)。
  3. 把 (b) 和 (c) 画在同一张图上——如果理论预测与实际观测高度吻合(这正是这篇论文暗示应该发生的),说明这个理论框架在真实训练动态里也成立,不只是纸面上的推导。
  4. 对比两种方法训练若干百步之后,正确答案的平均长度变化趋势——GRPO 下应该看到错误答案长度的增长更明显;Dr. GRPO 下应该看到正确和错误答案都在增长。

这个实验本身不需要复现论文没有做的任何理论贡献,纯粹是一次”把定理的预测在真实训练循环里跑一遍看看是否成立”的动手验证,对想深入理解这个权衡的读者会很有帮助。

9.13 四种早退/长度处理方案的工程取舍对照

为了让这篇笔记更实用,这里补充一张对照表,把本文涉及的四种主要长度处理策略放在同一个维度上对比它们的工程取舍(部分列基于本文分析推断,非论文原文数据):

方案实现复杂度是否需要额外超参训练稳定性风险最适合的场景
GRPO 原始 f(L)=1/Lf(L)=1/L低(已内置于绝大多数开源实现)无额外超参偏向长错误答案的风险,需监控长度增长长度方差不大,或计算预算有限、不想调参
Dr. GRPO / RLOO f(L)=1f(L)=1低(去掉一行归一化代码即可)无额外超参长轨迹主导梯度的风险,尤其在早期训练阶段更明显追求梯度统计意义上严格无偏、且能容忍长度增长的场景
中间 α(0,1)\alpha \in (0,1)中(需要额外调 α\alpha一个额外超参 α\alpha两种风险都存在但幅度都减弱希望在两个极端之间找到经验最优点,且有充足的调参预算
课程式自适应 α(t)\alpha(t)(论文提及但未展开)高(需要设计调度规则并验证)调度函数本身的形状与超参未知,论文未提供实证研究性探索,或已经确认前三种方案都不够用的高价值训练任务

这张表格没有一个”正确答案”,正如整篇论文反复强调的:每一行都是一次合法但不同的取舍,选择哪一行取决于你的长度方差特征和你更能容忍哪种失效模式,而不是存在一个客观上”更先进”的选项。

10. 结论

这里的核心结果很小、可证明,而且——一旦你看懂证明——在事后看来是显然的,这恰恰是它的价值所在:在结果奖励的组 RL 设定下,梯度无偏性与长度不变性不能共存,对任何仅依赖长度的加权方案都成立。GRPO 和 Dr. GRPO 不是一个坏算法和它的正确继任者;它们是同一条连续、不可避免的权衡曲线上的两个命名端点,中间的一切(以及可以说完全在仅依赖长度这个函数族之外的东西)代表的是合理的、不同的设计选择,而不是”正确程度”的高低。如果这篇论文里有一句话值得你带到下一次 RL 训练跑中:不要问哪种长度归一化方案是无偏的——问问你正在选择接受哪种偏差,以及它是否匹配你实际训练任务的长度方差特征。