论文精读

精读:GPPO——把 PPO 的裁剪区间拆成「散度」与「估计器」两维

GPPO 把 PPO-Clip 重新解释为某个 f-散度水平集上的硬裁剪,于是「用哪个散度」与「怎么从采样里估」成了两个可枚举维度,GRPO / DAPO / DPPO / RIPO 落进 4×3 网格的四格;Qwen3-8B-Base 上最优格 KL+Atomic 数学四基准平均 41.5、代码 59.7。本专栏逐项对账发现:摘要的 50% 与 14% 以表内最弱的 GRPO 为分母(数学 27.7,低于次低基线 2.8 分),换最强外部基线 GMPO 是 +18.2% 与 +9.7%,换同框架的 RIPO 只剩 +2.5% 与 +4.4%(z≈0.6);δ=f(0.8) 的标定规则把所有关于 r=1 对称的生成元压成同一个 [0.8,1.2],曲率从 0 到 2 算法一格没动;Eq.11 是硬裁剪,曲率只通过区间端点进入算法,「位移越大阻力越大」在更新里不存在;代入 μ(a|s) 算实际区间后,KL+Atomic 对所有 μ<9.7% 的 token 完全不裁剪,是四格中放开最狠的一格,而「上界放大到 10」这条一行对照臂表里没有。

论文: Generalized Proximal Policy Optimization: Unifying LLM RL Algorithms from the Perspective of Divergence
作者: Zhicheng Cai, Xinyuan Guo, Hanlin Wu, Weinan Dai, Yuyan Zhou, Wei-Ying Ma, Ya-Qin Zhang, Hao Zhou
arXiv: 2610.13015
RLVR GRPO PPO f-散度 信任域 裁剪区间 后训练 训练稳定性

1 论文概览

一句话总结:把 PPO 的裁剪区间重新解释成「某个 ff-散度的 δ\delta 水平集」,于是「用哪个散度」和「这个散度怎么从采样里估」成了两个可枚举的设计维度,拼出一张 4×34\times3 的网格,现有方法(GRPO / DAPO / DPPO / RIPO)落进其中四格。

核心问题:PPO 的 clip 一直是个启发式。它到底在约束什么?如果它在约束某个散度的单次采样估计,那换散度、换估计器会发生什么?过去三年里 DAPO 放宽上界、DPPO 按参考概率缩放、RIPO 改成 δ/μ\sqrt{\delta/\mu} 三件事各自独立被发现,彼此之间没有共同语言。

主要贡献

  1. 给出 PPO-Clip 的散度解释:∣r(s,a)−1∣\lvert r(s,a)-1\rvert 是逐状态 TV 散度的单样本 MC 估计,PPO 等于在这个估计的 δ\delta 水平集上做硬裁剪。原文:

“PPO implicitly constrains a single-sample Monte Carlo (MC) estimate of the Total Variation (TV) divergence, whose generating function has zero curvature and strictly symmetric bounds.” —— §1,GPPO

  1. 用 Vajda 不等式把任意 ff-散度与 DTV2D_{\mathrm{TV}}^2 联系起来,得到 Theorem 3:约束任意 ff-散度的足够小水平集都能给出单调性能改进下界(§3.1)。
  2. 提出两种新的估计器拓扑——Atomic(μ(a∣s) f(r)≤δ\mu(a\mid s)\,f(r)\le\delta)与 Binary(把动作空间压成「采样动作 + 其余」的二元散度),用于替代单样本 MC(§3.3)。
  3. 在这张网格上跑出 4×34\times3 共 12 个配置加 9 个外部基线,横跨 8 个竞赛级数学与代码基准(表 1)。

2 方法详解

方法概述

整条推导链是:Theorem 1(Schulman 2015 的信任域下界,惩罚项是 DTVmax⁡D_{\mathrm{TV}}^{\max})→ 用 Vajda 不等式把 DTV2D_{\mathrm{TV}}^2 换成任意 DfD_f → 得到 Theorem 3 → 不直接解约束问题,而是把 PPO 的固定 clip 换成 ff-散度诱导的裁剪区域:

JGPPO=Es,a[min⁡(r A^, clipR^f(δ)(r) A^)],R^f(δ)={r>0:D^f(r)≤δ}\mathcal{J}_{\mathrm{GPPO}}=\mathbb{E}_{s,a}\Big[\min\big(r\,\hat A,\ \mathrm{clip}_{\widehat{\mathcal R}_f(\delta)}(r)\,\hat A\big)\Big],\qquad \widehat{\mathcal R}_f(\delta)=\{r>0:\widehat D_f(r)\le\delta\}

落在 R^f(δ)\widehat{\mathcal R}_f(\delta) 之外的 token,其 surrogate 梯度被置零;落在里面的,梯度原封不动。

关键创新点

  • 散度维度:TV、Pearson χ2\chi^2、Hellinger、KL 四个生成元。f′′(1)f''(1) 决定局部曲率,有限位移处的非对称项决定阻力随位移大小与方向怎么变。
  • 估计器维度:MC 直接在采样动作上取 f(r)f(r);Atomic 取概率加权的原子贡献 μ(a∣s)f(r)\mu(a\mid s)f(r);Binary 额外补上互补概率质量 μf(r)+(1−μ)f ⁣(1−μr1−μ)\mu f(r)+(1-\mu)f\!\left(\frac{1-\mu r}{1-\mu}\right)。
  • 统一视角:GRPO = (TV, MC),DAPO = (KL, MC),DPPO = (TV, Binary),RIPO = (χ2\chi^2, Atomic)。

与基线的区别

δ\delta 不直接调,而是按「MC 分支的收缩侧对齐标准 PPO」标定:δ=f(0.8)\delta=f(0.8),于是 δTV=0.2\delta_{\mathrm{TV}}=0.2、δχ2=0.04\delta_{\chi^2}=0.04、δH≈0.01\delta_{\mathrm{H}}\approx0.01、δKL≈0.22\delta_{\mathrm{KL}}\approx0.22;同一散度的三种估计器共用这个 δ\delta,实际区间随 μ(a∣s)\mu(a\mid s) 伸缩。训练侧全部沿用 GRPO 式组相对优势,Qwen3-8B-Base,8×H20,数学 400 步、代码 600 步,组大小 8,每轮 1024 rollout、8 次 mini-batch 更新,全局双重裁剪 [0.5,10][0.5,10],去掉 KL 惩罚项。

3 实验结果

主要指标(表 1,avg@8,宏平均)

配置数学 Avg代码 Avg
TV + MC(GRPO)27.752.4
χ2\chi^2 + MC27.752.4
Hellinger + MC31.854.4
KL + MC(DAPO)34.654.3
TV + Binary(DPPO)39.053.8
χ2\chi^2 + Atomic(RIPO)40.557.2
KL + Atomic(本文最优)41.559.7
GSPO / GMPO35.1 / 35.153.7 / 54.4
SAPO / CISPO / Clip-Cov35.0 / 30.5 / 31.553.5 / 51.3 / 53.0
Base Model8.228.3

最优格(KL + Atomic)逐列:数学 AIME24 48.9、AIME25 33.9、BRUMO25 48.7、SMT25 34.4;代码 Codeforces 70.7、CodeContests 65.1、TACO 42.3、APPS 60.8。

与 SOTA 的对比

摘要的 headline 是「相对标准 GRPO 提升 50% 与 14%」。算术无误(41.5/27.7=1.49841.5/27.7=1.498,59.7/52.4=1.13959.7/52.4=1.139),分母却是表内最弱的一行:数学侧 GRPO 的 27.7 低于次低的 CISPO 30.5;代码侧 CISPO 51.3 比 GRPO 52.4 还低,GRPO 仍被选作参照。换分母后的同一批差值:

  • 对表内最强外部基线 GMPO / GSPO(35.1):数学 +6.4 分(+18.2%),代码 +5.3 分(+9.7%)。
  • 对同属本框架、同一批作者 ICML 2026 的 RIPO(40.5 / 57.2):数学 +1.0 分(+2.5%),代码 +2.5 分(+4.4%)。

用 30 题 + avg@8 + q≈0.4q\approx0.4 补算,单列 SE 约 3.2 分、四列宏平均约 1.6 分:+13.8 对 GRPO 是 z≈8.7z\approx8.7(扛得住),+6.4 对 GMPO 是 z≈4.0z\approx4.0(扛得住),+1.0 对 RIPO 是 z≈0.6z\approx0.6(噪声)。论文不报训练种子,这个 SE 只覆盖评测采样,不覆盖训练方差。

消融实验关键发现

论文没有独立的消融表,4×34\times3 网格本身就是因子设计,读出来的三点:

  • 估计器维度比散度维度整齐:四个散度上 Atomic 相对 MC 全部为正(8 行全中),平均数学 +28.3%、代码 +7.7%;Binary 平均 +21.3% 与 +3.2%。
  • MC 分支上散度几何退化成一个标量。论文自陈:

“TV–MC and χ2\chi^{2}–MC share the same results for that our matched calibration of single-sample MC coincidentally assigns them the same symmetric interval r∈[0.8,1.2]r\in[0.8,1.2]” —— §4.2,GPPO

按 δ=f(0.8)\delta=f(0.8) 标定后,TV 与 χ2\chi^2 的水平集都是 ∣r−1∣≤\lvert r-1\rvert\le 常数,给出同一个 [0.8,1.2][0.8,1.2]——表上两行数字逐列相同(27.7 / 20.8 / 33.3 / 21.9),论文自陈这是校准造成的。Hellinger 的上界是 1.2221.222,KL 是 1.251.25。三个上界 1.20→1.222→1.251.20\to1.222\to1.25 对应 27.7 → 31.8 → 34.6,单调。

  • Binary 在数学上反转:TV + Binary(DPPO,39.0)压过所有曲线散度的 Binary 行(KL 37.2、Hellinger 35.4、χ2\chi^2 34.8)。论文自己标了 “One possible explanation”。

4 个人分析

亮点

  1. 语言本身是贡献。过去「clip-higher」「按 μ\mu 缩放」「开方缩放」是三条互不相干的工程经验,现在被写成(散度, 估计器)网格上的三个坐标。对做 RL 基建的人来说,这把「调 ε\varepsilon」升级成「选 ff 和 T\mathcal T」,可枚举、可回归测试。
  2. Vajda 不等式用得对。Df≥CfVajdaDTV2D_f\ge C_f^{\mathrm{Vajda}}D_{\mathrm{TV}}^2 是把任意散度接进 Theorem 1 的那座桥,附录 A 关于最优常数的紧性证明(用二元分布列逼到 inf)是完整的。
  3. 12 格全跑、9 个基线全跑、两域各 4 个基准,没有只报最好的子集。表 1 也给足了逐列数字,外部复核做得起来——这一点在本专栏近几期里并不常见。
  4. 主动报告了 Top-KK 估计器失败(显存 O(K)\mathcal O(K)、阈值难调),脚注 3 一句话省掉别人几周试错。

局限性

  1. 散度维度在 MC 分支上被自己的标定规则抹平。δ=f(0.8)\delta=f(0.8) 意味着:任何关于 r=1r=1 对称的生成元 ff(TV、χ2\chi^2,以及 ∣r−1∣p\lvert r-1\rvert^p 的整个族)都给出完全相同的 [0.8,1.2][0.8,1.2]。曲率从 0 变到 2,算法一格没动。论文把这件事写成 “coincidentally”,它是构造的结果,不是巧合。于是「不同散度诱导不同几何与不同更新动力学」这条主张,在它自己的标定规则下只剩一个二值特征:ff 是否关于 r=1r=1 对称;不对称时上界宽多少。
  2. 「曲率带来随位移增长的阻力」在算法层面不成立。Eq.11 是硬裁剪:区域内梯度原样通过,区域外梯度置零,没有任何软惩罚。曲率只通过「区间两个端点落在哪」进入算法,不通过「位移越大阻力越大」进入算法。§3.2 那段关于 χ2\chi^2 椭球几何、KL 对数翘曲的描述,描述的是总体散度水平集的形状,不是被实现的那个更新。原文写得很明确:

“For KL divergence, […] introduces an asymmetric and logarithmically warped geometry where contraction r→0r\rightarrow 0 is increasingly penalized, while expansion toward large rr faces diminishing marginal resistance, thus facilitating probability expansion of low-probability actions and thereby favor exploration.” —— §3.2,GPPO

这段阻力曲线在 Eq.11 里没有对应的项。 3. 胜出格最像裁剪被关掉最多的那一格,而这条对照臂不存在。代入 μ(a∣s)\mu(a\mid s) 算实际区间,再叠加论文自己的双重裁剪 [0.5,10][0.5,10],各格「上界突破 10、裁剪完全失效」的 μ\mu 阈值是:KL + Atomic μ≤0.097\mu\le0.097、TV + Atomic μ≤0.022\mu\le0.022、Hellinger + Atomic μ≤2.4×10−3\mu\le2.4\times10^{-3}、χ2\chi^2 + Atomic μ≤4.9×10−4\mu\le4.9\times10^{-4}。KL + Atomic 对所有参考概率低于 9.7% 的 token 不做任何裁剪,其他三格要到 2.2%、0.24%、0.05% 才放开。赢家恰好是放开最狠的一格。而「上界直接放大到 10、下界留 0.5」是一行改动,表里没有。 4. Theory 的 δ\delta 与实验的 δ\delta 是两个同名量,中间没桥。Theorem 3 要求 Dfmax⁡(π∥μ)≤δD_f^{\max}(\pi\Vert\mu)\le\delta 且 δ\delta 足够小(第二项 4ξγCfVajda(1−γ)2Dfmax⁡\frac{4\xi\gamma}{C_f^{\mathrm{Vajda}}(1-\gamma)^2}D_f^{\max} 要被压住);实验的 δ\delta 来自 f(0.8)f(0.8)。前者是全分布、逐状态取 max 的散度上界,后者是单样本水平集对齐到 r=0.8r=0.8。论文没有把两者接起来,也没有给出四个散度的 CfVajdaC_f^{\mathrm{Vajda}} 具体数值——理论上最有信息量的那个常数,全文没有实例化。还有一处:Theorem 1/3 是折扣 MDP 形式(含 γ\gamma、ξ=max⁡∣Aμ∣\xi=\max\lvert A^\mu\rvert),实验是无折扣的回合制 LLM 生成,γ\gamma 从未被赋值。 5. Atomic 不是更忠实的散度估计,是系统性更松的估计。附录 B 比的是二阶矩:E[(D^MC)2]=∑aμh2\mathbb E[(\widehat D^{\mathrm{MC}})^2]=\sum_a\mu h^2 对 E[(D^Atom)2]=∑aμ3h2\mathbb E[(\widehat D^{\mathrm{Atom}})^2]=\sum_a\mu^3 h^2。可 Ea∼μ[D^MC]=∑aμh\mathbb E_{a\sim\mu}[\widehat D^{\mathrm{MC}}]=\sum_a\mu h 正是目标散度,而 Ea∼μ[D^Atom]=∑aμ2h≤∑aμh\mathbb E_{a\sim\mu}[\widehat D^{\mathrm{Atom}}]=\sum_a\mu^2 h\le\sum_a\mu h——Atomic 有偏且系统性偏小。拿两个均值不同的估计量比二阶矩,混淆了偏差与方差。摘要写的 “more faithful divergence estimates” 与附录自证的方向相反。 6. δ\delta 只在 MC 分支标定,估计器那一维的对比是在 MC 挑好的 δ\delta 下做的。Atomic 的实际带宽是 MC 的 1/μ1/\mu(TV)或 1/μ1/\sqrt\mu(χ2\chi^2)倍,μ=0.05\mu=0.05 时已经是 20 倍与 4.5 倍。「按期望区间宽度重新标定 δ\delta 再比一次」这条对照没有做,估计器维度的 +28.3% 里有多少来自带宽变大,未分离。 7. 缺一列诊断数据:表 1 没有每格实际被裁剪的 token 占比,也没有 μ(a∣s)\mu(a\mid s) 的分布。(f,T)(f,\mathcal T) 在算法上唯一的作用就是决定裁剪区间的两个端点,没有裁剪率这一列,12 格之间任何机理解释都无从定价。图 2 的熵曲线被当作机制证据引用,没有数值、没有按格拆分。 8. TV 的二分之一约定在三处不自洽:Eq.14 写 fTV(r)=12∣r−1∣f_{\mathrm{TV}}(r)=\frac12\lvert r-1\rvert,§4.1 写 δTV=f(0.8)=0.2\delta_{\mathrm{TV}}=f(0.8)=0.2,Eq.24 写 DPPO 的区间是 1±δ/μ1\pm\delta/\mu。按 Eq.14 的 12\frac12,δTV\delta_{\mathrm{TV}} 应为 0.1,DPPO 的带宽是 0.1/μ0.1/\mu 而不是 0.2/μ0.2/\mu。差一个因子 2,直接进到 rare token 的裁剪宽度里。 9. §3.4 的 KL 恢复换了约束。Eq.18 定义 D^KLMC=−log⁡r\widehat D_{\mathrm{KL}}^{\mathrm{MC}}=-\log r,水平集 {−log⁡r≤δ}\{-\log r\le\delta\} 是 [e−δ,+∞)[e^{-\delta},+\infty),没有上界;§3.4 却写成 −δ≤log⁡r≤δ-\delta\le\log r\le\delta,得到 [0.8,1.26][0.8,1.26]。框架定义的是单侧,DAPO 恢复用的是双侧。原文这一句把单侧换成了双侧:

“constraining −δ≤log⁡r≤δ-\delta\leq\log r\leq\delta gives R^KLMC(δ)={e−δ≤r≤eδ}\widehat{\mathcal R}_{\mathrm{KL}}^{\mathrm{MC}}(\delta)=\{e^{-\delta}\leq r\leq e^{\delta}\}. Let δ=0.23\delta=0.23, thus 0.8≤r≤1.260.8\leq r\leq 1.26, matching DAPO’s asymmetric clipping bounds” —— §3.4,GPPO

摘要最看重的那一格(KL + Atomic)究竟取单侧还是双侧,正文没说——取单侧则它比 [0.5,10][0.5,10] 还松,取双侧则「扩张侧阻力递减、利于探索」的 KL 叙事与实现不符。 10. 两处小账。§4.2 说每个配 Atomic 或 Binary 的散度都超过最强基线 GMPO,16 格里 χ2\chi^2 + Binary(数学 34.8)与 TV + Binary(代码 53.8)两格没过。另:GSPO / GMPO 是「TV + MC 但把采样单元换成整条 rollout」,这条聚合单元轴不在标称的两维设计空间里,而代码侧第二强的基线正落在它上面。

对大模型领域的影响

真正会被留下来的不是 KL + Atomic 这一格,而是「裁剪区间是一个可设计的对象,不是一个常量 ε\varepsilon」。这条如果成立,收益有两层:实现层只需要 μ(a∣s)\mu(a\mid s)(old_logprob 已经在手),改动量约等于三行;思想层把 DAPO / DPPO / RIPO 三条独立发现收进同一张表,后来者可以直接枚举。风险是:这张表的排序多半由放开多少裁剪驱动,而不是由散度几何驱动。在被证伪之前,把它当成自适应裁剪带宽的方法族来用,比当成散度几何选择来用更稳。

5 实践启示

可以借鉴的技术

  1. 把裁剪区间当可调对象,而不是 PPO 的 ε\varepsilon。先做一张表:按 μ(a∣s)\mu(a\mid s) 分桶(大于 0.9 / 0.5 到 0.9 / 0.1 到 0.5 / 0.01 到 0.1 / 小于 0.01),记录每桶的 token 占比、平均优势符号、被裁剪比例。这张表是判断任何 (f,T)(f,\mathcal T) 值不值钱的依据,论文没给。
  2. 概率感知的自适应带宽可以直接搬:∣r−1∣≤c/μ\lvert r-1\rvert\le c/\mu(TV-Atomic 与 DPPO 族)或 ∣r−1∣≤c/μ\lvert r-1\rvert\le c/\sqrt\mu(RIPO 族)。成本是取一次 exp⁡(old_logprob)\exp(\text{old\_logprob}),VeRL / TRL 里现成。
  3. 先跑那条最廉价的对照臂:上界放大到 2、5、10,下界留 0.5,其余不动。这条臂若追平 KL + Atomic,整篇论文的散度叙事就只剩术语价值。
  4. 别照抄 δ=f(0.8)\delta=f(0.8) 的标定规则。它把所有对称生成元压成同一个区间,等于亲手关掉自己主张的那一维。要做公平对比,得按期望区间宽度或期望裁剪率在每一格上重新标定 δ\delta。
  5. 诊断协议:记录每格被裁剪 token 占比随训练步数的曲线,以及被裁剪 token 的 μ\mu 分布。PPO 类方法的裁剪率通常在 1% 到 20% 之间跳,这条曲线比分数曲线更早暴露配置问题。
  6. 报分数时把分母换成表内最强基线。本专栏连续多期遇到同一个写法:headline 用最弱基线做分母。这一篇里,对 GRPO 的 +49.8% 与对 RIPO 的 +2.5% 是同一批实验的两种读法,后者才是这个方法的真实边际。

潜在应用场景

  • 20k token 以上的长思维链数学与代码 RL:每轮 8 次 mini-batch 更新,μ\mu 与 π\pi 的落差大,稀有 token 被误裁的概率高,概率感知带宽的用武之地在这里。
  • 多轮 agent 轨迹 RL:状态里塞进工具返回与外部观测后,token 概率的长尾比纯文本更重,低 μ\mu token 占比更高。
  • 异步与流水线 RL:rollout 陈旧度大时,固定 ε\varepsilon 的裁剪误伤更严重,按 μ\mu 伸缩的区间比固定区间更扛 staleness。
  • 不适合的场景:短响应、μ\mu 分布极度尖锐(大于 0.9 的占比压倒性)的任务。此时 Atomic 与 MC 的实际区间几乎重合,改了等于没改。
  • 落地前必须补三样:μ(a∣s)\mu(a\mid s) 的分布直方图、每格实际裁剪率、以及第 3 条那条上界放大对照臂。缺这三样,抄过去的就是一个没定价的超参。

参考文献

Cai, Z., Guo, X., Wu, H., Dai, W., Zhou, Y., Ma, W.-Y., Zhang, Y.-Q., & Zhou, H. (2026). Generalized Proximal Policy Optimization: Unifying LLM RL Algorithms from the Perspective of Divergence. arXiv:2610.13015 [cs.LG]. SIA-Lab of Tsinghua AIR and ByteDance Seed / Institute for AI Industry Research (AIR), Tsinghua University.

相关精读