精读: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」这条一行对照臂表里没有。
1 论文概览
一句话总结:把 PPO 的裁剪区间重新解释成「某个 -散度的 水平集」,于是「用哪个散度」和「这个散度怎么从采样里估」成了两个可枚举的设计维度,拼出一张 的网格,现有方法(GRPO / DAPO / DPPO / RIPO)落进其中四格。
核心问题:PPO 的 clip 一直是个启发式。它到底在约束什么?如果它在约束某个散度的单次采样估计,那换散度、换估计器会发生什么?过去三年里 DAPO 放宽上界、DPPO 按参考概率缩放、RIPO 改成 三件事各自独立被发现,彼此之间没有共同语言。
主要贡献
- 给出 PPO-Clip 的散度解释: 是逐状态 TV 散度的单样本 MC 估计,PPO 等于在这个估计的 水平集上做硬裁剪。原文:
“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
- 用 Vajda 不等式把任意 -散度与 联系起来,得到 Theorem 3:约束任意 -散度的足够小水平集都能给出单调性能改进下界(§3.1)。
- 提出两种新的估计器拓扑——Atomic()与 Binary(把动作空间压成「采样动作 + 其余」的二元散度),用于替代单样本 MC(§3.3)。
- 在这张网格上跑出 共 12 个配置加 9 个外部基线,横跨 8 个竞赛级数学与代码基准(表 1)。
2 方法详解
方法概述
整条推导链是:Theorem 1(Schulman 2015 的信任域下界,惩罚项是 )→ 用 Vajda 不等式把 换成任意 → 得到 Theorem 3 → 不直接解约束问题,而是把 PPO 的固定 clip 换成 -散度诱导的裁剪区域:
落在 之外的 token,其 surrogate 梯度被置零;落在里面的,梯度原封不动。
关键创新点
- 散度维度:TV、Pearson 、Hellinger、KL 四个生成元。 决定局部曲率,有限位移处的非对称项决定阻力随位移大小与方向怎么变。
- 估计器维度:MC 直接在采样动作上取 ;Atomic 取概率加权的原子贡献 ;Binary 额外补上互补概率质量 。
- 统一视角:GRPO = (TV, MC),DAPO = (KL, MC),DPPO = (TV, Binary),RIPO = (, Atomic)。
与基线的区别
不直接调,而是按「MC 分支的收缩侧对齐标准 PPO」标定:,于是 、、、;同一散度的三种估计器共用这个 ,实际区间随 伸缩。训练侧全部沿用 GRPO 式组相对优势,Qwen3-8B-Base,8×H20,数学 400 步、代码 600 步,组大小 8,每轮 1024 rollout、8 次 mini-batch 更新,全局双重裁剪 ,去掉 KL 惩罚项。
3 实验结果
主要指标(表 1,avg@8,宏平均)
| 配置 | 数学 Avg | 代码 Avg |
|---|---|---|
| TV + MC(GRPO) | 27.7 | 52.4 |
| + MC | 27.7 | 52.4 |
| Hellinger + MC | 31.8 | 54.4 |
| KL + MC(DAPO) | 34.6 | 54.3 |
| TV + Binary(DPPO) | 39.0 | 53.8 |
| + Atomic(RIPO) | 40.5 | 57.2 |
| KL + Atomic(本文最优) | 41.5 | 59.7 |
| GSPO / GMPO | 35.1 / 35.1 | 53.7 / 54.4 |
| SAPO / CISPO / Clip-Cov | 35.0 / 30.5 / 31.5 | 53.5 / 51.3 / 53.0 |
| Base Model | 8.2 | 28.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%」。算术无误(,),分母却是表内最弱的一行:数学侧 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 + 补算,单列 SE 约 3.2 分、四列宏平均约 1.6 分:+13.8 对 GRPO 是 (扛得住),+6.4 对 GMPO 是 (扛得住),+1.0 对 RIPO 是 (噪声)。论文不报训练种子,这个 SE 只覆盖评测采样,不覆盖训练方差。
消融实验关键发现
论文没有独立的消融表, 网格本身就是因子设计,读出来的三点:
- 估计器维度比散度维度整齐:四个散度上 Atomic 相对 MC 全部为正(8 行全中),平均数学 +28.3%、代码 +7.7%;Binary 平均 +21.3% 与 +3.2%。
- MC 分支上散度几何退化成一个标量。论文自陈:
“TV–MC and –MC share the same results for that our matched calibration of single-sample MC coincidentally assigns them the same symmetric interval ” —— §4.2,GPPO
按 标定后,TV 与 的水平集都是 常数,给出同一个 ——表上两行数字逐列相同(27.7 / 20.8 / 33.3 / 21.9),论文自陈这是校准造成的。Hellinger 的上界是 ,KL 是 。三个上界 对应 27.7 → 31.8 → 34.6,单调。
- Binary 在数学上反转:TV + Binary(DPPO,39.0)压过所有曲线散度的 Binary 行(KL 37.2、Hellinger 35.4、 34.8)。论文自己标了 “One possible explanation”。
4 个人分析
亮点
- 语言本身是贡献。过去「clip-higher」「按 缩放」「开方缩放」是三条互不相干的工程经验,现在被写成(散度, 估计器)网格上的三个坐标。对做 RL 基建的人来说,这把「调 」升级成「选 和 」,可枚举、可回归测试。
- Vajda 不等式用得对。 是把任意散度接进 Theorem 1 的那座桥,附录 A 关于最优常数的紧性证明(用二元分布列逼到 inf)是完整的。
- 12 格全跑、9 个基线全跑、两域各 4 个基准,没有只报最好的子集。表 1 也给足了逐列数字,外部复核做得起来——这一点在本专栏近几期里并不常见。
- 主动报告了 Top- 估计器失败(显存 、阈值难调),脚注 3 一句话省掉别人几周试错。
局限性
- 散度维度在 MC 分支上被自己的标定规则抹平。 意味着:任何关于 对称的生成元 (TV、,以及 的整个族)都给出完全相同的 。曲率从 0 变到 2,算法一格没动。论文把这件事写成 “coincidentally”,它是构造的结果,不是巧合。于是「不同散度诱导不同几何与不同更新动力学」这条主张,在它自己的标定规则下只剩一个二值特征: 是否关于 对称;不对称时上界宽多少。
- 「曲率带来随位移增长的阻力」在算法层面不成立。Eq.11 是硬裁剪:区域内梯度原样通过,区域外梯度置零,没有任何软惩罚。曲率只通过「区间两个端点落在哪」进入算法,不通过「位移越大阻力越大」进入算法。§3.2 那段关于 椭球几何、KL 对数翘曲的描述,描述的是总体散度水平集的形状,不是被实现的那个更新。原文写得很明确:
“For KL divergence, […] introduces an asymmetric and logarithmically warped geometry where contraction is increasingly penalized, while expansion toward large faces diminishing marginal resistance, thus facilitating probability expansion of low-probability actions and thereby favor exploration.” —— §3.2,GPPO
这段阻力曲线在 Eq.11 里没有对应的项。
3. 胜出格最像裁剪被关掉最多的那一格,而这条对照臂不存在。代入 算实际区间,再叠加论文自己的双重裁剪 ,各格「上界突破 10、裁剪完全失效」的 阈值是:KL + Atomic 、TV + Atomic 、Hellinger + Atomic 、 + Atomic 。KL + Atomic 对所有参考概率低于 9.7% 的 token 不做任何裁剪,其他三格要到 2.2%、0.24%、0.05% 才放开。赢家恰好是放开最狠的一格。而「上界直接放大到 10、下界留 0.5」是一行改动,表里没有。
4. Theory 的 与实验的 是两个同名量,中间没桥。Theorem 3 要求 且 足够小(第二项 要被压住);实验的 来自 。前者是全分布、逐状态取 max 的散度上界,后者是单样本水平集对齐到 。论文没有把两者接起来,也没有给出四个散度的 具体数值——理论上最有信息量的那个常数,全文没有实例化。还有一处:Theorem 1/3 是折扣 MDP 形式(含 、),实验是无折扣的回合制 LLM 生成, 从未被赋值。
5. Atomic 不是更忠实的散度估计,是系统性更松的估计。附录 B 比的是二阶矩: 对 。可 正是目标散度,而 ——Atomic 有偏且系统性偏小。拿两个均值不同的估计量比二阶矩,混淆了偏差与方差。摘要写的 “more faithful divergence estimates” 与附录自证的方向相反。
6. 只在 MC 分支标定,估计器那一维的对比是在 MC 挑好的 下做的。Atomic 的实际带宽是 MC 的 (TV)或 ()倍, 时已经是 20 倍与 4.5 倍。「按期望区间宽度重新标定 再比一次」这条对照没有做,估计器维度的 +28.3% 里有多少来自带宽变大,未分离。
7. 缺一列诊断数据:表 1 没有每格实际被裁剪的 token 占比,也没有 的分布。 在算法上唯一的作用就是决定裁剪区间的两个端点,没有裁剪率这一列,12 格之间任何机理解释都无从定价。图 2 的熵曲线被当作机制证据引用,没有数值、没有按格拆分。
8. TV 的二分之一约定在三处不自洽:Eq.14 写 ,§4.1 写 ,Eq.24 写 DPPO 的区间是 。按 Eq.14 的 , 应为 0.1,DPPO 的带宽是 而不是 。差一个因子 2,直接进到 rare token 的裁剪宽度里。
9. §3.4 的 KL 恢复换了约束。Eq.18 定义 ,水平集 是 ,没有上界;§3.4 却写成 ,得到 。框架定义的是单侧,DAPO 恢复用的是双侧。原文这一句把单侧换成了双侧:
“constraining gives . Let , thus , matching DAPO’s asymmetric clipping bounds” —— §3.4,GPPO
摘要最看重的那一格(KL + Atomic)究竟取单侧还是双侧,正文没说——取单侧则它比 还松,取双侧则「扩张侧阻力递减、利于探索」的 KL 叙事与实现不符。 10. 两处小账。§4.2 说每个配 Atomic 或 Binary 的散度都超过最强基线 GMPO,16 格里 + Binary(数学 34.8)与 TV + Binary(代码 53.8)两格没过。另:GSPO / GMPO 是「TV + MC 但把采样单元换成整条 rollout」,这条聚合单元轴不在标称的两维设计空间里,而代码侧第二强的基线正落在它上面。
对大模型领域的影响
真正会被留下来的不是 KL + Atomic 这一格,而是「裁剪区间是一个可设计的对象,不是一个常量 」。这条如果成立,收益有两层:实现层只需要 (old_logprob 已经在手),改动量约等于三行;思想层把 DAPO / DPPO / RIPO 三条独立发现收进同一张表,后来者可以直接枚举。风险是:这张表的排序多半由放开多少裁剪驱动,而不是由散度几何驱动。在被证伪之前,把它当成自适应裁剪带宽的方法族来用,比当成散度几何选择来用更稳。
5 实践启示
可以借鉴的技术
- 把裁剪区间当可调对象,而不是 PPO 的 。先做一张表:按 分桶(大于 0.9 / 0.5 到 0.9 / 0.1 到 0.5 / 0.01 到 0.1 / 小于 0.01),记录每桶的 token 占比、平均优势符号、被裁剪比例。这张表是判断任何 值不值钱的依据,论文没给。
- 概率感知的自适应带宽可以直接搬:(TV-Atomic 与 DPPO 族)或 (RIPO 族)。成本是取一次 ,VeRL / TRL 里现成。
- 先跑那条最廉价的对照臂:上界放大到 2、5、10,下界留 0.5,其余不动。这条臂若追平 KL + Atomic,整篇论文的散度叙事就只剩术语价值。
- 别照抄 的标定规则。它把所有对称生成元压成同一个区间,等于亲手关掉自己主张的那一维。要做公平对比,得按期望区间宽度或期望裁剪率在每一格上重新标定 。
- 诊断协议:记录每格被裁剪 token 占比随训练步数的曲线,以及被裁剪 token 的 分布。PPO 类方法的裁剪率通常在 1% 到 20% 之间跳,这条曲线比分数曲线更早暴露配置问题。
- 报分数时把分母换成表内最强基线。本专栏连续多期遇到同一个写法:headline 用最弱基线做分母。这一篇里,对 GRPO 的
+49.8%与对 RIPO 的+2.5%是同一批实验的两种读法,后者才是这个方法的真实边际。
潜在应用场景
- 20k token 以上的长思维链数学与代码 RL:每轮 8 次 mini-batch 更新, 与 的落差大,稀有 token 被误裁的概率高,概率感知带宽的用武之地在这里。
- 多轮 agent 轨迹 RL:状态里塞进工具返回与外部观测后,token 概率的长尾比纯文本更重,低 token 占比更高。
- 异步与流水线 RL:rollout 陈旧度大时,固定 的裁剪误伤更严重,按 伸缩的区间比固定区间更扛 staleness。
- 不适合的场景:短响应、 分布极度尖锐(大于 0.9 的占比压倒性)的任务。此时 Atomic 与 MC 的实际区间几乎重合,改了等于没改。
- 落地前必须补三样: 的分布直方图、每格实际裁剪率、以及第 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.
相关精读
- 本篇把本专栏连续三十七期的主线再挪一格:此前三十六期回答的是「挑哪些 token、挑哪些轨迹、信用按哪套口径记账、信号被消费时旧了多少、数据分布离基座多远、整条响应有没有资格参与这次更新、策略容量会不会被优化动力学耗光、教师分布里哪些位置允许比较、事后经验除了改行为还能不能改行动之前的那次预测、参考模型的 KL 该从哪条边进组相对更新、教师的意见从哪条通道进 RL、off-policy 校正的记账区间有多长」,这一期问的是裁剪区间本身该由什么决定——作用层从「信号长什么样」与「正则接在哪」转到「硬裁剪那两个端点由哪个散度、哪套估计器算出来」。
- 精读:TAPO——把状态校正的记账区间从两端挪到前缀
- 精读:Residual Advantage——让教师只重分信用,不改响应总分
- 精读:ZCPO——把参考 KL 从损失支搬进组内系数
- 精读:SRD——把事后回顾蒸成事前先见
- 精读:跨分词器 OPD——把对齐覆盖度补满反而掉点
- 精读:Mesh Learning——把 RLVR 的坍塌解释成策略容量的供需冲突
- 精读:CARM——把响应级掩码的判据从净位移换成双向漂移
- 精读:把 off-policy 专家数据 MCMC 投影成 on-policy 数据
- 精读:GMC-GRPO——把重要性比从逐条裁剪换成整组收缩
- 精读:SCAPO——用「扰动下不动」给 token 记一笔负账
- 精读:ARCUS——prompt 的选择也有一条弧
- 精读:把中间那一步的信号从模型里搬进环境——用沙箱回滚跑出免费过程奖励
- 精读:把特权信息从损失搬到采样器——多轮 agent 里自蒸馏为什么会崩
- 精读:OC-GRPO 与离上下文重要性校正
- 精读:不跑 RL,先把新奖励的结果预测出来
- 精读:给 token 级信用一个唯一解,然后把它求和掉
- 精读:把后训练配方本身当成果,再逐阶段对账
- 精读:STAR-E——按惊讶度给 token 重加权 advantage
- 精读:按梯度可估性给 token 分配蒸馏监督
- 精读:TrimSFT——按 logit 间隔剪掉 SFT 里的低信息 token
- 精读:ESFT 与端点 SFT 对中段推理链的裁剪
- 精读:把中间状态的价值估计整体消掉
- 精读:ActObs——把被 mask 掉的那 45% 观察 token 重新纳入损失
- 精读:SP³O——一条响应里只给三个位置价值监督
- 精读:教师引导的课程 RLVR——把解不出的题变成可解的题
- 精读:DataFlex-RL 与均匀采样的替代策略
- 精读:NGU 与 RL 里的马太效应
- 精读:按排序可分辨性做 RLVR 数据联合工程
- 精读:模型与外壳共演化时的同策略校正
- 精读:OPD-then-RL——顺序摆信号胜过同 step 混信号
- 精读:One-Shot OPD 与状态覆盖吸收率
- 精读:Compile by Training——把 LLM 降级为构建期依赖
- 精读:Terminal-Universe——轨迹反向造环境
- 精读:OPSA——无教师的同策略自适应
- 精读:SPADE——把优化对象从轨迹上移到生成器
- 精读:DART-SD——标注单元从轨迹换成状态图