DPPO 阅读笔记:与其信任一个采样 token 的比率,不如直接约束策略散度

笔记日期: 2026-07-11 笔记作者: Zhongzhu Zhou 论文标题: Rethinking the Trust Region in LLM Reinforcement Learning 作者: Penghui Qi, Xiangxin Zhou, Zichen Liu, Tianyu Pang, Chao Du, Min Lin, Wee Sun Lee arXiv: 2602.04879 状态: ICML 2026(PMLR 306),Sea AI Lab 与新加坡国立大学(NUS)

一句话总结

今天几乎所有用来微调大语言模型的强化学习算法——PPO、GRPO 以及它们的各种变体——都继承了一套 2017 年为经典小动作空间控制问题设计的信任域(trust region)机制,而这套机制从未针对大模型那种极其庞大、长尾分布的词表被重新验证过。这篇论文提出了一个具体且可修复的诊断:PPO 的裁剪判断依赖的是”单个采样 token 的概率比率”,而这只是信任域真正想要约束的那个量——新旧策略 token 分布之间的总变差(TV)或 KL 散度——的一个高噪声、单样本蒙特卡洛估计。由于大模型词表极其庞大且长尾,这个噪声代理会在两个方向上同时失效:对于罕见 token,哪怕实际移动的概率质量微乎其微,只要比率一高就会被激进裁剪,拖慢探索与推理相关 token 的学习;对于高频 token,哪怕它移动了大量概率质量,只要比率看起来”温和”,裁剪机制就可能完全放行,从而带来灾难性的、破坏稳定性的更新。论文提出的修复方案——Divergence Proximal Policy Optimization(DPPO,散度近端策略优化)——保留了 PPO 简单的掩码结构,但把被阈值判断的量从”比率”换成了对真实散度的直接、廉价估计,并给出两种轻量近似(Binary 与 Top-K),使这一估计在十几万 token 词表规模下依然可行。与此同时,作者们重新推导了经典的 Kakade–Langford 策略提升下界,使其适用于大模型生成的有限时域(finite-horizon)、稀疏奖励、序列级(而非逐步)反馈的真实场景——而不是原始定理所针对的无限时域折扣 MDP。他们还进行了一系列诊断性实验,精确定位了究竟是哪些策略更新导致了每个做过强化学习后训练的人都见过的灾难性崩溃——答案是一小部分(常常远低于 1%)、发生在负奖励 token 上、且策略已经偏离 rollout 分布很远的更新。DPPO 在五种大规模配置(稠密与 MoE 模型、有无 rollout router replay、可验证奖励与 RLHF 风格奖励)上都优于带 Clip-Higher 的 GRPO 与 CISPO,同时不再需要昂贵的重新计算参考策略,训练成本降低约 25%。

核心要点

  • PPO 的比率裁剪机制继承自经典强化学习,从未针对大模型规模的长尾词表重新验证过;它的信任域安全阀本质上是 TV 散度的单样本估计,而罕见 token 的单样本比率方差极大。
  • 用数字说明这个结构性缺陷:一个 token 的概率从 10410^{-4} 变到 10210^{-2},比率是 100100(会被激进裁剪),但实际移动的概率质量只有约 0.00990.0099;而一个高频 token 从 0.990.99 降到 0.800.80,比率约为 0.8080.808(几乎不会被裁剪),但实际移动的概率质量是 0.190.19——是前者的 19 倍还多,却是”约束更松”的那一个。
  • DPPO 用一个基于真实散度估计 D(μ(st)π(st))D(\mu(\cdot|s_t) \| \pi(\cdot|s_t)) 的掩码替代了基于比率的掩码,散度的计算通过两种廉价近似实现:Binary 近似(把整个词表压缩成”采样 token”与”其余所有 token”两类)或 Top-K 近似(追踪 rollout 策略下概率最高的 KK 个 token,再加一个聚合的”其他”类别)。
  • 论文重新推导了 Kakade–Langford 策略提升恒等式与提升下界,使其适用于有限时域(TT)、无折扣(γ=1\gamma=1)、序列级奖励这一真正描述自回归大模型生成过程的场景——教科书式的无限时域折扣下界在这个场景里其实是没有定义的(因为 11γ\frac{1}{1-\gamma}\to\infty)。
  • 一组专门的消融研究回答了三个具体的实证问题:(1)是的,即便学习率低至 10610^{-6},信任域依然是必要的;(2)信任域必须锚定在原始 rollout 策略 μθ\mu_{\theta'} 上,而不能锚定在重新计算出的 on-policy 分布 πθ\pi_{\theta'} 上——锚定到后者会重新引入信任域本应防止的那种崩溃;(3)少于 0.5% 的更新——具体来说,是那些把某个 token 概率压低超过 0.5 的大幅度负优势更新——就足以解释几乎所有观察到的训练崩溃。
  • 在效率方面,只针对低概率 token(μ(ytst)<α\mu(y_t|s_t) < \alpha)放松 PPO 的裁剪能显著加快学习速度而不损害稳定性,并且放松裁剪的下界比放松上界更关键(这与流行的”Clip-Higher”直觉恰好相反)——DPPO 的非对称掩码天然捕捉到了这一点,因为它从不阻止朝 rollout 分布方向移动的更新。
  • 在五种大规模训练配置(MoE 基座 ± rollout router replay、MoE”思考”模型、稠密 8B 基座、MoE+LoRA)和两个 RLHF 对齐场景中,DPPO-Binary 都能打平或超越带 Clip-Higher 的 GRPO 与 CISPO,在多个场景中甚至超过了用 R3 稳定过的 MoE 基线,同时计算开销更低(不需要重新计算的参考策略)。
  • Binary 与 Top-K 两种近似在消融实验中表现相近,说明最廉价的那种近似——把词表压缩成围绕采样 token 的二元伯努利分布——就已经捕获了绝大部分可获得的收益;在生产环境中为更精细的 Top-K 变体买单的理由并不充分。
  • 论文附录 D 的定性分析显示,PPO 过度裁剪的 token 并非随机的稀有词——它们不成比例地集中在数学/数字符号与推理连接词(如”Wait""Since""Thus”)上,说明比率裁剪的错误定价正在悄悄损害思维链回答中承载逻辑结构的那部分内容。
  • 超越 AIME 风格数学推理的泛化检验——不同模型家族(OctoThinker)、抽象推理与归纳任务(Arc1D、Acre)、以及一个真正的多轮环境(Sudoku)——在保持其余训练配方不变的前提下,都表现出散度掩码相对于比率掩码的同样效率优势。

符号对照表

这篇论文在理论与方法部分用到了不少符号,这里汇总常见的几个,方便后文反复查阅。

符号含义
μ\muπ\pi行为/rollout 策略,以及目标/训练策略
μθ\mu_{\theta'}πθ\pi_\theta参数 θ\theta' 下的 rollout 策略(产生数据),当前参数 θ\theta 下的训练策略
st=(x,y1,,yt1)s_t = (x, y_1,\dots,y_{t-1})tt 步的状态:prompt 加上目前为止生成的 token
y=(y1,,yT)y = (y_1,\dots,y_T)完整生成的回答,长度 TT
R(y)R(y)完整回答的标量终止奖励
J(π)=Eyπ[R(y)]J(\pi) = \mathbb{E}_{y\sim\pi}[R(y)]策略 π\pi 下的期望序列级奖励
A^t\hat{A}_ttt 步的估计(GRPO 风格,组内相对)优势
$r_t = \pi(y_ts_t)/\mu(y_t
DTV(μπ)D_{TV}(\mu\|\pi)DKL(μπ)D_{KL}(\mu\|\pi)两个 token 分布之间的总变差散度与 KL 散度
DTVmaxD_{TV}^{\max}最坏情形(跨状态取最大)TV 散度
DˉTV\bar{D}_{TV}沿轨迹实际实现、累加的平均逐 token TV 散度
δ\delta散度阈值超参数(DPPO 对应 PPO 的 ϵ\epsilon)
ϵ\epsilonϵlow\epsilon_{low}ϵhigh\epsilon_{high}PPO/GRPO 的裁剪边界(对称或非对称)
MtM_t二元掩码(0 = 阻断梯度,1 = 放行梯度)
$A’_t = \text{TopK}(\mu(\cdots_t),K)\cup{a_t}$
ξ\xi最大绝对奖励幅度,$\max_y
Lμ(π)L_\mu(\pi)Lμ(π)L'_\mu(\pi)信任域代理目标(经典折扣 MDP 形式,以及本文的有限时域形式)
Δ(μ,π)\Delta(\mu,\pi)代理目标与真实目标之间的精确残差/误差项(定理 3.1)

公式索引

鉴于这篇笔记建立了相当多带编号的公式,这里给出一份扁平索引,附上每个公式指向的内容,方便跳读而非线性阅读。

编号内容
P1经典折扣强化学习目标 η(π)\eta(\pi)
P2Kakade–Langford 精确性能差异恒等式
P3TRPO 带最坏情形 TV 惩罚项的下界代理目标
P4TRPO 的约束优化信任域模板
P5PPO 的裁剪代理目标
P6GRPO 的组内相对优势估计器
T1本文精确的有限时域性能差异恒等式
T2有限时域代理目标 Lμ(π)L'_\mu(\pi)
T3精确残差误差项 Δ(μ,π)\Delta(\mu,\pi)
PF1整条序列的重要性比率作为逐 token 比率的乘积
PF2恒等式套叠展开后的逐 token 求和形式
T4用最坏情形(max)散度给出的策略提升下界
T5用平均实现散度给出的策略提升下界
T6本文的约束优化模板(式 P4 的有限时域类比)
D1DPPO 目标函数 LμDPPO(π)L_\mu^{DPPO}(\pi)
D2DPPO 掩码 MtDPPOM_t^{DPPO}
D3TV 散度的 Binary 近似
D4KL 散度的 Binary 近似
D5Top-K 简化类别分布的构造
D6TV 与 KL 散度的 Top-K 近似
U1覆盖所有基线与 DPPO 的统一策略梯度模板
E1RQ3 最小”坏更新”掩码,对应论文第 5.3 节的公式

前置知识:阅读本文之前需要了解的背景

这篇论文处于经典信任域策略优化理论(TRPO/PPO,2015–2017)与现代大模型强化学习后训练体系(GRPO 风格的无 critic 训练,2023–2026)的交叉点上。要跟上后面的推导,需要按顺序理解六块背景知识:MDP 形式化与策略梯度、Kakade–Langford 策略提升恒等式、TRPO 如何把这个恒等式转化为信任域约束、PPO 如何用比率裁剪廉价地近似 TRPO、GRPO 如何为大模型微调去掉 critic,最后是大模型生成过程本身如何被建模成一个 MDP(这正是论文真正贡献开始的地方)。

从 MDP 到策略梯度

一个马尔可夫决策过程(MDP)是一个元组 M=(S,A,P,r,ρ0,γ)\mathcal{M} = (\mathcal{S}, \mathcal{A}, P, r, \rho_0, \gamma):状态空间、动作空间、转移动态 P(ss,a)P(s'|s,a)、奖励函数 r(s,a)r(s,a)、初始状态分布 ρ0\rho_0,以及折扣因子 γ[0,1]\gamma\in[0,1]。一个随机策略 π(as)\pi(a|s) 通过采样 atπ(st)a_t\sim\pi(\cdot|s_t) 并转移 st+1P(st,at)s_{t+1}\sim P(\cdot|s_t,a_t) 来生成轨迹 τ=(s0,a0,r0,s1,a1,r1,)\tau=(s_0,a_0,r_0,s_1,a_1,r_1,\dots)。强化学习的目标是最大化期望折扣回报:

η(π)=Eτπ[t=0γtrt].(P1)\eta(\pi) = \mathbb{E}_{\tau\sim\pi}\left[\sum_{t=0}^{\infty}\gamma^t r_t\right]. \tag{P1}

后面所有推导都会用到两个辅助量:状态价值函数 Vπ(s)V^\pi(s),以及优势函数 Aπ(s,a)=Qπ(s,a)Vπ(s)A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s),它衡量的是”动作 aa 比策略在状态 ss 下的平均表现好多少”。优势是策略梯度方法的核心货币:正的优势意味着”多做这个”,负的优势意味着”少做这个”。

Kakade–Langford 恒等式:比较两个不同的策略

整个信任域文献建立的核心理论工具是策略性能差异定理(Kakade & Langford, 2002)。对任意两个策略——一个是我们想要评估/优化的目标策略 π\pi,另一个是实际产生数据的行为策略 μ\mu——它们的期望回报之间存在如下精确关系:

η(π)η(μ)=11γEsρπ,aπ(s)[Aμ(s,a)],(P2)\eta(\pi) - \eta(\mu) = \frac{1}{1-\gamma}\,\mathbb{E}_{s\sim\rho^\pi,\, a\sim\pi(\cdot|s)}\left[A^\mu(s,a)\right], \tag{P2}

其中 ρπ(s)=(1γ)t=0γtPr(st=sπ)\rho^\pi(s)=(1-\gamma)\sum_{t=0}^\infty\gamma^t\Pr(s_t=s\mid\pi)π\pi 诱导的折扣状态访问分布。仔细读这个式子:它说的是 π\pi 相对 μ\mu 的提升,等于μ\mu 的价值函数下衡量的 π\pi 自身动作的期望优势,但这个期望是在 π\pi(而非 μ\mu)访问的状态分布上取的。这个式子精确但无法直接用于优化,因为我们只有从 μ\mu(产生数据的策略)采出的样本,而没有从 π\pi(我们要评估的策略)采出的样本——我们无法廉价地从 ρπ\rho^\pi 中采样。

TRPO:把一个不可行的恒等式变成可优化的下界

Schulman 等人(2015)的解法是证明式 P2 的一个下界,用可行的 ρμ\rho^\mu 替换掉 ρπ\rho^\pi,代价是多出一个惩罚项,衡量 π\pi 偏离 μ\mu 有多远:

η(π)η(μ)    11γEsρμ,aμ(s)[π(as)μ(as)Aμ(s,a)]=:Lμ(π), 代理目标    2ξγ(1γ)2DTVmax(μπ)2,(P3)\eta(\pi)-\eta(\mu) \;\ge\; \underbrace{\frac{1}{1-\gamma}\,\mathbb{E}_{s\sim\rho^\mu,\,a\sim\mu(\cdot|s)}\left[\frac{\pi(a|s)}{\mu(a|s)}A^\mu(s,a)\right]}_{=:L_\mu(\pi),\ \text{代理目标}} \;-\; \frac{2\xi\gamma}{(1-\gamma)^2}\,D_{TV}^{\max}(\mu\|\pi)^2, \tag{P3}

其中 ξ=maxs,aAμ(s,a)\xi=\max_{s,a}|A^\mu(s,a)|,DTVmax(μπ)=maxsDTV(μ(s)π(s))D_{TV}^{\max}(\mu\|\pi)=\max_s D_{TV}\big(\mu(\cdot|s)\|\pi(\cdot|s)\big) 是最坏情形下逐状态总变差散度。这里每一部分的直觉是:Lμ(π)L_\mu(\pi) 是一个可以从 μ\mu 的样本中计算出来的、重要性加权的真实目标估计(这正是我们熟悉的”概率比率乘优势”这一项的来源)——它的值和梯度在 π=μ\pi=\mu 处与真实的 η(π)η(μ)\eta(\pi)-\eta(\mu) 完全一致,但随着 π\pi 偏离 μ\mu 会逐渐失真。惩罚项精确量化了这种失真的上限,它是两策略之间最坏情形散度的函数。因此式 P3 说的是:如果你在保持 DTVmax(μπ)D_{TV}^{\max}(\mu\|\pi) 很小的同时最大化 Lμ(π)L_\mu(\pi),就能保证真实提升的一个下界——并且因为这个下界在 π=μ\pi=\mu 处与真实目标相切,反复最大化它就是一个 Minorize-Maximization(MM)过程,可以证明永远不会让 η\eta 下降。这直接引出了约束优化问题:

maxπ Lμ(π)s.t.DTVmax(μπ)δ,(P4)\max_\pi\ L_\mu(\pi)\quad\text{s.t.}\quad D_{TV}^{\max}(\mu\|\pi)\le \delta, \tag{P4}

这正是”信任域”这个词在形式上的含义:一个硬性的散度约束,而不是一个软性的启发式规则。

PPO:用廉价的裁剪近似信任域

TRPO 在式 P4 中的约束优化需要二阶信息(KL 约束的自然梯度步),难以扩展到数十亿参数的网络。PPO(Schulman 等人,2017)用一个便宜得多的一阶代理替代了它:直接在目标函数中裁剪逐 token 的重要性比率 rt=π(ytst)/μ(ytst)r_t=\pi(y_t|s_t)/\mu(y_t|s_t):

LμPPO(π)=Eyμ[t=1ymin(rtA^t, clip(rt,1ϵ,1+ϵ)A^t)].(P5)L^{PPO}_\mu(\pi) = \mathbb{E}_{y\sim\mu}\left[\sum_{t=1}^{|y|}\min\big(r_t \hat{A}_t,\ \operatorname{clip}(r_t, 1-\epsilon, 1+\epsilon)\,\hat{A}_t\big)\right]. \tag{P5}

它与正式信任域的联系在于:单个状态下的逐 token TV 散度本身可以用比率写出来:DTV(μ(st)π(st))=12Eytμrt1D_{TV}\big(\mu(\cdot|s_t)\|\pi(\cdot|s_t)\big) = \frac{1}{2}\mathbb{E}_{y_t\sim\mu}|r_t - 1|。因此 PPO 的裁剪条件 rt1ϵ|r_t-1|\le\epsilon 可以理解为约束这个期望的一个单样本蒙特卡洛估计——只用一次抽样(实际采到的那个 token yty_t)去估计一个覆盖整个词表的期望。这正是整篇论文的关键所在,值得牢牢记住:PPO 是在一个噪声很大的散度点估计上,而非散度本身上,施加它的信任域。

GRPO:为大模型微调去掉 critic

为大模型训练一个价值函数 Vπ(s)V^\pi(s) 开销很大(又是一个全尺寸网络),而且在稀疏、序列级奖励下往往很嘈杂。GRPO(Shao 等人,2024)等无 critic 方法绕开了这个问题:对同一个 prompt 生成一 GG 个回答,用组内相对奖励作为方差更小的优势估计:

A^=R(y)1Gi=1GR(yi).(P6)\hat{A} = R(y) - \frac{1}{G}\sum_{i=1}^G R(y_i). \tag{P6}

这篇论文把 PPO(式 P5)和 GRPO 看作同一底层算法的实例,二者仅在 A^\hat{A} 的计算方式上不同——论文真正针对的目标,比率裁剪,是二者共享的,所以 DPPO 的修复对 GRPO 和原始 PPO 同样适用。

式 P6 的一个具体数值例子。 假设某个 prompt 生成了 G=4G=4 个回答,奖励分别是 R(y1)=1R(y_1)=1(答对)、R(y2)=0R(y_2)=0(答错)、R(y3)=1R(y_3)=1(答对)、R(y4)=0R(y_4)=0(答错)——这是典型的二值可验证奖励场景。组均值为 14(1+0+1+0)=0.5\frac{1}{4}(1+0+1+0)=0.5,因此优势分别是 A^(y1)=0.5\hat{A}(y_1)=0.5A^(y2)=0.5\hat{A}(y_2)=-0.5A^(y3)=0.5\hat{A}(y_3)=0.5A^(y4)=0.5\hat{A}(y_4)=-0.5。一个正确回答里的每一个 token 都拿到同样的正优势 0.50.5,不管这个 token 具体是什么、对”答对”贡献了多少;一个错误回答里的每一个 token 都拿到同样的负优势 0.5-0.5。这正是 GRPO 优势估计”粗粒度”的地方:它无法区分”这个 token 是关键的洞见”和”这个 token 只是个普通连接词”,它只知道”这个 token 属于一个总体正确(或错误)的回答”。正因为优势信号本身无法区分不同 token 值得多少信任,叠加在它之上的掩码机制——PPO 基于比率的那种,或 DPPO 基于散度的那种——才成为唯一能够调节单个 token 梯度实际强度的机制,这也正是”把这个机制做对”(本文的核心论点)会对哪些 token 能被高效学到产生如此大影响的原因。

KL 散度与总变差散度

后面反复出现两种散度度量:KL 散度 DKL(μπ)=aμ(a)logμ(a)π(a)D_{KL}(\mu\|\pi)=\sum_a\mu(a)\log\frac{\mu(a)}{\pi(a)},以及总变差(TV)散度 DTV(μπ)=12aμ(a)π(a)D_{TV}(\mu\|\pi)=\frac{1}{2}\sum_a|\mu(a)-\pi(a)|。它们通过 Pinsker 不等式相关联:DTV(μπ)212DKL(μπ)D_{TV}(\mu\|\pi)^2\le\frac{1}{2}D_{KL}(\mu\|\pi),这也是为什么针对一种散度证明的界(付出一个常数因子的松弛代价)可以迁移到另一种——这正是为什么论文的理论部分用 TV 散度陈述,而算法本身可以互换地支持 TV 或 KL。

把大模型生成过程建模为有限时域 MDP

这里正是经典机器开始出现裂痕的地方。给定一个 prompt xx,大模型策略 π\pi 逐 token 生成回答 y=(y1,,yT)y=(y_1,\dots,y_T),其中每一步的”状态” st=(x,y1,,yt1)s_t=(x,y_1,\dots,y_{t-1}) 是 prompt 加上目前为止生成的全部内容,回答的概率被分解为 π(yx)=t=1Tπ(ytst)\pi(y|x)=\prod_{t=1}^T\pi(y_t|s_t)。关键在于,这是一个有限时域、无折扣(γ=1\gamma=1)的过程,只有一个终止奖励 R(y,x)R(y,x)——整个回答生成完之后才给出——没有逐步奖励,没有无限轨迹,而且(因为 γ=1\gamma=1)贯穿式 P2–P5 的 11γ\frac{1}{1-\gamma} 因子字面意义上是没有定义的(它会发散到无穷)。这意味着经典 TRPO/PPO 下界(式 P3)不仅需要针对大模型重新调参——它在这个场景下在数学上就是病态的,需要从零开始重新推导,以适应有限时域、稀疏终止奖励的序列。这个重新推导(下面的定理 3.1 和 3.2)是论文的第一个真正的理论贡献,DPPO 的整个设计都从这里生长出来。

训练-推理不匹配:实践中的触发因素

方法部分之前还需要交代最后一块背景:实践中,大模型强化学习流水线用一个高速推理引擎(如 vLLM)采样 rollout,用一个独立的训练引擎计算梯度。即便参数 θ\theta 完全一致,这两个引擎也可能因为数值精度、内核实现差异、batching 效应等原因,产生略微不同的 token 概率 μθπθ\mu_{\theta'}\neq\pi_\theta——这一现象被称为训练-推理不匹配。实际系统中还常常把同一批 rollout 用于多次梯度小批量更新以提高吞吐,这进一步拉大了产生数据的策略与当前正在训练的策略之间的差距。这两个因素都意味着 μ\muπ\pi 即便在一次训练步开始时也从不完全相同——这恰恰是上面信任域机制本应处理的场景,也正是它针对大模型的特定失效模式(比率裁剪是个糟糕的散度代理)在实践中变得肉眼可见、表现为训练崩溃的地方。

一段简史:从 TRPO(2015)到 DPPO(2026)

把这篇论文放到时间线上,可以看出它指出的这个缺口其实存在了很久,因为”我们想要的信任域”与”PPO 的裁剪实际执行的信任域”之间的错配远早于大模型时代就已存在:

  • 2015 年——TRPO(Schulman 等人):证明了经典策略提升下界(式 P3)与约束优化的信任域模板(式 P4),针对的是一般的折扣 MDP,通常动作空间较小、维度较低(如 Atari、MuJoCo 控制)。
  • 2017 年——PPO(Schulman 等人):用便宜的一阶比率裁剪(式 P5)替代了 TRPO 昂贵的二阶约束优化,以精确性换取可扩展性——在经典强化学习的小动作空间场景下,这是一个合理的权衡,因为单样本比率在那里是散度的一个噪声小得多的代理。
  • 2022–2023 年——大模型强化学习兴起:InstructGPT 风格的 RLHF、以及后来的 GRPO(2024)基本原封不动地采用了 PPO 的裁剪机制,现在应用在覆盖十几万 token 词表的逐 token 比率上——论文的核心论断是,当动作空间规模扩大了好几个数量级之后,从来没有人重新验证过单样本比率代理是否依然是个好的近似。
  • 2025 年——症状级补丁出现:Clip-Higher(DAPO)和 CISPO 各自独立地注意到低概率的”探索”/“推理”token 被不成比例地裁剪,并各自提出了一个单侧补丁(手动放宽上界;用截断代替裁剪),但都没有诊断出比率裁剪为什么一开始就会给这些 token 定错价。
  • 2025 年——训练-推理不匹配被明确命名:另一批工作(Yao 等人;Qi 等人)识别并刻画了这篇论文的方法同样必须面对的训练-推理不匹配现象,催生了工程层面的缓解方案(TIS、引擎对齐工作),而本文证明这些方案要么不完整,要么(在 TIS 的情形下)有时反而适得其反。
  • 2026 年——本文:为大模型强化学习真正所处的场景(有限时域、无折扣、终止奖励)从头重新推导了理论基础,诊断出了根本原因(比率是个糟糕的散度代理,而不只是”有时太严格”),并且替换了这个代理,而不是在它周围打补丁。

这样来看,本文的贡献与其说是”一个聪明的新技巧”,不如说是”终于有人回头检查了 2017 年那个承重假设在 2026 年是否依然成立”——结果发现它其实早已悄悄失效,而这种失效一直在同时悄悄消耗训练的稳定性与效率。

核心诊断:为什么比率裁剪是一个错误的代理

flowchart TB
    subgraph PPO["PPO:基于比率的掩码(启发式代理)"]
        A1["采样 token a_t ~ mu(.|s_t)"] --> A2["计算比率 r_t = pi(a_t|s_t) / mu(a_t|s_t)"]
        A2 --> A3{"r_t 是否超出 [1-eps, 1+eps]?"}
        A3 -- 是 --> A4["裁剪:阻断该 token 的梯度"]
        A3 -- 否 --> A5["原样放行梯度"]
    end
    subgraph DPPO["DPPO:基于散度的掩码(直接估计)"]
        B1["采样 token a_t ~ mu(.|s_t)"] --> B2["估计 D = divergence(mu(.|s_t), pi(.|s_t))"]
        B2 --> B3{"D 是否超过阈值 delta,且更新方向是远离 mu?"}
        B3 -- 是 --> B4["掩码:阻断该 token 的梯度"]
        B3 -- 否 --> B5["原样放行梯度"]
    end

图 1(论文图 1,架构总览):PPO 只用采样到的这一个 token 的概率比率——对真实分布偏移的单样本估计——来决定是否裁剪。DPPO 则直接估计 rollout 分布与训练分布在该状态下的真实散度,只有当估计的散度超过阈值并且更新方向正在进一步远离 rollout 策略时才施加掩码。

论文用一个干净的数值例子来支撑这一诊断,值得牢牢记住,因为它精确解释了为什么单 token 比率恰恰是大模型场景下(而非比如说一个只有 8 维连续动作的机器人 MDP)一个如此糟糕的散度估计。考虑固定状态 ss 下的两个 token:

| Token | μ(as)\mu(a|s)(rollout) | π(as)\pi(a|s)(训练) | 比率 r=π/μr=\pi/\mu | 移动的概率质量 | |---|---|---|---|---| | alowa_{low}(罕见 token) | 10410^{-4} | 10210^{-2} | 100100 | 0.0099\approx 0.0099 | | ahigha_{high}(高频 token) | 0.990.99 | 0.800.80 | 0.808\approx 0.808 | 0.190.19 |

图 2(对比图,论文第 4.2 节):一个罕见 token 的概率从 10410^{-4} 升到 10210^{-2},比率变成 100——远远落在 PPO 裁剪区间之内——尽管移动的概率质量还不到 1%。一个高频 token 的概率从 0.990.99 降到 0.800.80,比率只有约 0.8080.808——很可能落在一个典型的裁剪区间 [0.8,1.2][0.8, 1.2] 之内——尽管移动的概率质量是前者的 19 倍。PPO 的裁剪机制盯上了错误的那一个。

在一个典型的裁剪范围 ϵ=0.2\epsilon=0.2(即 r[0.8,1.2]r\in[0.8,1.2])下,PPO 会重度裁剪 alowa_{low} 的更新——即便它对分布偏移的实际贡献微不足道——而让 ahigha_{high} 的更新基本不受约束地通过,即便它才是真正有可能把策略推离出发点很远的那一个。这不是一个边角案例:大模型词表按其构造就是长尾的(子词分词器、罕见的技术术语、多语言 token),所以每一次 rollout 中都有相当一部分 token 落在 alowa_{low} 这种情形里,意味着这种错误定价是持续发生的,而不是偶尔发生。论文的图 2(在此以概念方式复现)在 Qwen3-30B-A3B-Base 上实测证实了这一点:直接测量显示,比率对低概率 token 极其不稳定,而 TV 散度的贡献却保持平滑且很小——证实了比率才是那个噪声量,TV 散度才是稳定、行为良好的那个量。两种此前的启发式方法(手动抬高上界的 Clip-Higher,以及无视散度直接放行梯度的 CISPO)各自都只是给这种错配的一个症状打了补丁,而没有触及根本原因;本文明确表示自己的目标是移除根本原因,而不是补偿其症状。

相关启发式方法:Clip-Higher 与 CISPO 只治标不治本

有必要精确说明为什么此前两个知名的补丁并没有解决本文所指出的问题,因为二者都正确地注意到了症状(低概率 token 被裁剪得太狠),却没有修复背后的病因(比率是个糟糕的散度代理)。Clip-Higher(Yu 等人,2025)完整保留了 PPO 基于比率的机制,只是简单地放宽了上裁剪界 ϵhigh\epsilon_{high},使得比率适度大于 1 的更新能够不受裁剪地通过。这在”某个 token 的比率恰好落在旧的、更紧的边界之外”这种特定情形下有帮助,但对更深层的问题无能为力:是否裁剪的判断依然由单样本比率驱动,所以一个比率为 100 的罕见 token(如上面 alowa_{low} 的例子)无论 ϵhigh\epsilon_{high} 设得多宽都依然会被裁剪,因为 100 远远超出任何合理的裁剪范围。这是对同一个坏仪器重新校准,而不是换了一个新仪器。CISPO(Chen 等人,2025)则走了相反的路线:它不裁剪,而是让(可能被截断的)重要性加权梯度无论比率所隐含的散度有多大都照样通过。这直接解决了”低概率 token 训练不足”的问题——什么都不会被阻断——但代价是完全移除了信任域这道安全阀,这也正是为什么 CISPO 会出现在上面 RQ1 稳定性实验里,作为训练-推理不匹配无限增长、最终崩溃的方法之一。DPPO 的贡献在于注意到这两个补丁其实是从相反方向针对同一个根本误诊(把基于比率的裁剪当成基于散度的裁剪),转而直接修正这个诊断:保留真正的信任域,但去衡量信任域本应衡量的那个量。

理论:为大模型场景重建信任域

定理 3.1——有限时域序列的精确性能差异恒等式

由于 γ=1\gamma=1 打破了经典恒等式(式 P2),论文为有限时域、终止奖励场景推导了一个全新的精确恒等式。记 J(π)=Eyπ[R(y)]J(\pi)=\mathbb{E}_{y\sim\pi}[R(y)] 为序列级期望奖励,结果是:

J(π)J(μ)=Lμ(π)Δ(μ,π),(T1)J(\pi) - J(\mu) = L'_\mu(\pi) - \Delta(\mu,\pi), \tag{T1}

其中可从 μ\mu 的 rollout 中计算出的代理目标为:

Lμ(π)=Eyμ[R(y)t=1y(π(ytst)μ(ytst)1)],(T2)L'_\mu(\pi) = \mathbb{E}_{y\sim\mu}\left[R(y)\sum_{t=1}^{|y|}\left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right)\right], \tag{T2}

精确的残差误差项为:

Δ(μ,π)=Eyμ[R(y)t=1y(π(ytst)μ(ytst)1)(1j=t+1Tπ(yjsj)μ(yjsj))].(T3)\Delta(\mu,\pi) = \mathbb{E}_{y\sim\mu}\left[R(y)\sum_{t=1}^{|y|}\left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right)\left(1-\prod_{j=t+1}^{T}\frac{\pi(y_j|s_j)}{\mu(y_j|s_j)}\right)\right]. \tag{T3}

这个恒等式为什么成立,以及如何理解它。 Lμ(π)L'_\mu(\pi) 是一个一阶近似:它估计的是,如果把每一个 token yty_t 的概率按其重要性比率各自独立地扰动、并把所有 token 的贡献看作可加的,奖励会变化多少——这与经典 TRPO 代理目标(式 P3)本质上是同一种重要性加权线性化,只是这里针对的是只有一个终止奖励、而非逐步奖励的序列重新推导了一遍。Δ(μ,π)\Delta(\mu,\pi) 捕捉了这个一阶视角所遗漏的一切:乘积j=t+1Tπ(yjsj)μ(yjsj)\prod_{j=t+1}^T \frac{\pi(y_j|s_j)}{\mu(y_j|s_j)} 衡量的是”tt 之后剩余序列”整体偏移了多少,这一项在 π=μ\pi=\mu 处处处为零时恰好为零(两个因子都会坍缩到零),这正是为什么 LμL'_\mu 在这一点上恰好等于 J(π)J(μ)J(\pi)-J(\mu)——这个恒等式不只是一个下界,而是一个等式,不涉及任何近似。为什么序列级奖励需要这样一个修正项,而经典的逐步奖励情形(式 P2)不需要,直觉是:在经典情形下,价值函数 VμV^\mu 已经”计入”了 tt 之后发生的一切;而这里只有终止奖励、没有中间价值函数,代数上就必须显式追踪”之后的 token 的比率”如何与”当前 token 的比率”复合——这正是乘积项的来源。

证明思路:定理 3.1 中套叠乘积项从何而来

值得展开一下这个套叠(telescoping)乘积项为什么会出现,因为初读时它显得没什么动机。从两个策略生成同一个完整回答 yy 的概率之比出发:

π(yx)μ(yx)=j=1Tπ(yjsj)μ(yjsj).(PF1)\frac{\pi(y|x)}{\mu(y|x)} = \prod_{j=1}^{T}\frac{\pi(y_j|s_j)}{\mu(y_j|s_j)}. \tag{PF1}

目标函数的精确重要性采样恒等式是 J(π)=Eyμ[π(yx)μ(yx)R(y)]J(\pi) = \mathbb{E}_{y\sim\mu}\left[\frac{\pi(y|x)}{\mu(y|x)}R(y)\right]——把采样分布换成 μ\mu,再用整条序列的比率重新加权,期望值不变,这只是重要性采样的定义,还没有任何近似。两边同时减去 J(μ)=Eyμ[R(y)]J(\mu)=\mathbb{E}_{y\sim\mu}[R(y)],得到 J(π)J(μ)=Eyμ[R(y)(j=1Tπ(yjsj)μ(yjsj)1)]J(\pi)-J(\mu) = \mathbb{E}_{y\sim\mu}\left[R(y)\left(\prod_{j=1}^T \frac{\pi(y_j|s_j)}{\mu(y_j|s_j)} - 1\right)\right],这是一个用整条序列上的一个大乘积表示的精确恒等式。论文采取的关键代数步骤,是把这一个大的”乘积减一”项套叠(telescope)成逐 token 贡献的求和,用到的恒等式是 j=1Tcj1=t=1T(ct1)j=t+1Tcj\prod_{j=1}^T c_j - 1 = \sum_{t=1}^T (c_t - 1)\prod_{j=t+1}^T c_j(对任意一列标量 cjc_j 成立——这是一个标准的套叠技巧,可以对 TT 用归纳法验证,或者理解为求和里的每一项都”拆解掉”了乘积中更靠右的一个因子)。代入 ct=π(ytst)/μ(ytst)c_t=\pi(y_t|s_t)/\mu(y_t|s_t) 恰好得到:

J(π)J(μ)=Eyμ[R(y)t=1T(π(ytst)μ(ytst)1)j=t+1Tπ(yjsj)μ(yjsj)].(PF2)J(\pi)-J(\mu) = \mathbb{E}_{y\sim\mu}\left[R(y)\sum_{t=1}^{T}\left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right)\prod_{j=t+1}^{T}\frac{\pi(y_j|s_j)}{\mu(y_j|s_j)}\right]. \tag{PF2}

接下来把每一项拆成”把尾部乘积替换成 1 的部分”加上”尾部乘积并不真的等于 1 的修正部分”:(π(ytst)μ(ytst)1)j=t+1T()=(π(ytst)μ(ytst)1)(π(ytst)μ(ytst)1)(1j=t+1T())\left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right)\prod_{j=t+1}^T(\cdot) = \left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right) - \left(\frac{\pi(y_t|s_t)}{\mu(y_t|s_t)}-1\right)\left(1-\prod_{j=t+1}^T(\cdot)\right)——这只是加上再减去同一个量,永远成立。对 tt 求和并把奖励 R(y)R(y) 代回去,恰好就得到了 Lμ(π)L'_\mu(\pi)(式 T2,“尾部乘积替换成 1”的那部分)减去 Δ(μ,π)\Delta(\mu,\pi)(式 T3,修正项),这正是定理 3.1。这个推导也清楚说明了为什么 Δ\Deltaπ=μ\pi=\mu 处消失:每一个比率 π(yjsj)/μ(yjsj)\pi(y_j|s_j)/\mu(y_j|s_j) 都恰好变成 1,所以前导因子 (1)(\cdot-1) 和尾部修正 (1())(1-\prod(\cdot)) 都恒为零。它同时也阐明了 Δ\Delta 的物理含义:它是奖励变化中可以归因于之后token 分布偏移的那部分,并按当前 token 的比率偏离 1 的程度加权——这正是朴素的逐 token 线性化(像 LμL'_\mu 那样只是把各个 (rt1)(r_t-1) 项加起来)看不到的高阶、跨 token 交互项。

定理 3.2——两个策略提升下界

式 T3 中的 Δ(μ,π)\Delta(\mu,\pi) 是精确的,但一般来说难以给出紧致的界(它依赖于 TtT-t 个比率的乘积)。论文用两种不同的收紧策略,给出了两个各有用处的界:

J(π)J(μ)    Lμ(π)2ξT(T1)DTVmax(μπ)2,(T4)J(\pi)-J(\mu) \;\ge\; L'_\mu(\pi) - 2\xi T(T-1)\cdot D_{TV}^{\max}(\mu\|\pi)^2, \tag{T4} J(π)J(μ)    Lμ(π)4ξDˉTV(μ,π),(T5)J(\pi)-J(\mu) \;\ge\; L'_\mu(\pi) - 4\xi\,\bar{D}_{TV}(\mu,\pi), \tag{T5}

其中 ξ=maxyR(y)\xi=\max_y|R(y)| 是最大绝对终止奖励,DTVmax(μπ)=maxstDTV(μ(st)π(st))D_{TV}^{\max}(\mu\|\pi)=\max_{s_t}D_{TV}\big(\mu(\cdot|s_t)\|\pi(\cdot|s_t)\big) 是整条序列上最坏情形的逐状态散度,DˉTV(μ,π)=Eyμ[t=1yDTV(μ(st)π(st))]\bar{D}_{TV}(\mu,\pi)=\mathbb{E}_{y\sim\mu}\left[\sum_{t=1}^{|y|}D_{TV}\big(\mu(\cdot|s_t)\|\pi(\cdot|s_t)\big)\right] 是沿采样轨迹实际实现的平均、累加逐 token 散度。

flowchart LR
    I0["精确恒等式: J(pi) - J(mu) = L'_mu(pi) - Delta(mu,pi)"] --> I1["用最坏情形逐状态散度界定 Delta"]
    I0 --> I2["用平均逐 token 散度界定 Delta"]
    I1 --> B1["下界 T4:惩罚项随 T 平方与最坏 TV 平方增长"]
    I2 --> B2["下界 T5:惩罚项随平均实际 TV 线性增长"]
    B1 -.->|"更松,但结构上与经典 TRPO 下界一致"| C["两者都支持约束优化问题:最大化 L'_mu(pi),约束散度小于 delta"]
    B2 -.->|"对长序列更紧,与 PPO 和 DPPO 使用的逐 token 控制相匹配"| C

图 3(推导链的数学可视化):同一个精确恒等式可以用两种不同方式定界,取决于你对逐 token 散度采取最坏情形(max)还是平均情形(mean)的视角。平均情形下界(T5)才是真正激励 DPPO 逐 token 掩码设计的那个界,因为它直接惩罚实际实现的逐 token 散度之和——这正是逐 token 掩码能够直接控制的量。

为什么要给两个界而不是一个?最坏情形散度下界(T4)在结构上与经典 TRPO 下界(对应上面的式 P3)类似,序列长度 TT 扮演了折扣场景下有效时域 11γ\frac{1}{1-\gamma} 的角色——这让人安心,因为它说明大模型专属的推导在形式上收敛回了熟悉的样子。但它随 T(T1)T(T-1) 增长,这对长思维链回答(数千 token)来说代价高昂:序列中任何一处出现较大的逐状态散度,惩罚项就会随长度二次方级地爆炸。平均散度下界(T5)对长回答更紧,恰恰因为它只累加实际实现的、逐 token 的散度,而不是假设最坏状态在每一处都取得最坏散度。实践中,(T5)的结构也正好匹配一个逐 token 掩码(要么放行要么阻断每个 token 的梯度)能够直接执行的东西——这正是为什么下面介绍的 DPPO 算法是逐 token 运作的理论依据,而不是去估计一个单一的序列级散度数字。

一个感受量级的数值例子。 考虑一个长度 T=1000T=1000 的思维链回答(对推理密集型数学题来说并不罕见)、最大奖励幅度 ξ=1\xi=1(对归一化到 0/1 或有界的奖励很典型),假设最坏情形逐状态 TV 散度是一个不大的 DTVmax=0.01D_{TV}^{\max}=0.01。最坏情形散度下界的惩罚项是 2ξT(T1)(DTVmax)2=211000999(0.01)2199.82\xi T(T-1)\cdot(D_{TV}^{\max})^2 = 2\cdot1\cdot1000\cdot999\cdot(0.01)^2 \approx 199.8——比一个典型的 [0,1][0,1] 奖励范围大了大约两个数量级,这会让这个下界基本上变得没有意义(它无法就”是否有提升”给出任何有意义的结论),尽管单个最坏状态的 TV 散度其实相当小,只有 0.010.01。再来看平均散度下界:如果这条同一轨迹上实际实现的平均、累加逐 token 散度是,比如说,DˉTV=2\bar{D}_{TV}=2(即在 1000 个 token 上累加的平均逐 token 散度约为 0.0020.002——一个依然很小、说得通的逐 token 数值),惩罚项是 4ξDˉTV=412=84\xi\bar{D}_{TV}=4\cdot1\cdot2=8,相对 [0,1][0,1] 的奖励范围依然不算小,但比 199.8 紧得多。这正是论文所说”(T5)对长大模型回答更紧”这一论断背后的数值直觉:最坏情形散度下界假设单个最坏的逐状态散度原则上可能出现在 T(T1)/2T(T-1)/2 个有序位置对里的每一处,对一条 1000 token 的序列来说这极其悲观;而平均散度下界只对实际实现过一次、线性累加的散度收费,而不是假设它会以组合数级别反复出现。

两个下界都支持与经典 TRPO(式 P4)相同的约束优化模板,只是针对这个场景重新推导了一遍:

maxπ Lμ(π)s.t.DTVmax(μπ)δ  (或平均散度变体).(T6)\max_\pi\ L'_\mu(\pi)\quad\text{s.t.}\quad D_{TV}^{\max}(\mu\|\pi)\le\delta \ \ (\text{或平均散度变体}). \tag{T6}

散度近端策略优化(DPPO)

一次完整训练迭代:PPO 对比 DPPO,逐步拆解

在深入形式化目标函数之前,先具体走一遍:把 PPO 基于比率的裁剪换成 DPPO 基于散度的掩码之后,一次强化学习后训练迭代里究竟哪些地方变了、哪些地方没变。下面按顺序列出具体步骤,并在每一步标注 PPO 和 DPPO 是一致还是有分歧:

  1. 采样一批 prompt。 两者相同:从训练数据集中抽取一批 prompt。信任域机制不影响这一步。
  2. 用推理引擎生成回答。 两者相同:对每个 prompt,推理/rollout 引擎(用参数 θ\theta')采样一个或多个回答,并记录下它实际采到的每个 token 的概率 μθ(ytst)\mu_{\theta'}(y_t|s_t)。这一步记录对 PPO 和 DPPO 都是必需的——DPPO 在这里不需要任何新的埋点。
  3. 给回答打分,计算优势。 两者相同:用奖励函数(基于规则的验证器,或一个奖励模型)给每个回答打分,再用当前使用的任何优势估计方法(本文所有主实验都用 GRPO 风格的组内相对优势,如式 P6)计算 A^t\hat{A}_t。优势估计方法的选择与”PPO 还是 DPPO”这个选择完全正交。
  4. 用训练引擎重新计算 token 概率。 两者相同:把同样采样到的 token 送入当前参数 θ\theta 下的训练引擎,得到每个 token 的 πθ(ytst)\pi_\theta(y_t|s_t)。训练-推理不匹配也正是在这一步产生的,因为即便 θ=θ\theta=\theta',πθ\pi_\thetaμθ\mu_{\theta'} 也可能因引擎/数值差异而不同。
  5. 计算逐 token 比率 rt=πθ(ytst)/μθ(ytst)r_t=\pi_\theta(y_t|s_t)/\mu_{\theta'}(y_t|s_t) 两者相同——无论掩码如何判断,每一种 PPO 系方法都需要这个比率来构成真正的梯度项 rtA^tr_t\hat{A}_t
  6. PPO 和 DPPO 从这里开始分道扬镳。 PPO 只检查 rtr_t 本身是否落在 [1ϵlow,1+ϵhigh][1-\epsilon_{low}, 1+\epsilon_{high}] 之外,并据此单独用这一个标量做掩码判断。DPPO 额外计算一个散度估计 DtD_t——可以是 Binary 形式(式 D3–D4,直接用第 2 步和第 4 步已经算出的两个标量 μθ(ytst)\mu_{\theta'}(y_t|s_t)πθ(ytst)\pi_\theta(y_t|s_t),几乎零额外开销),也可以是 Top-K 形式(式 D5–D6,需要 rollout 引擎给出 top-KK token 的概率,是一小块额外的记录信息)——并根据 DtD_t 是否超过 δ\delta(同时考虑更新方向)来做掩码判断。
  7. 施加掩码并汇总损失。 两者在机制上相同:把(可能被掩码过的)比率加权优势乘以 θlogπθ(ytst)\nabla_\theta\log\pi_\theta(y_t|s_t),对所有 token 和回答求和,再做一次梯度更新。掩码判断不同(第 6 步),但”如何执行已经判断好的掩码”这一机制是一样的。
  8. 对这批 rollout 重复配置好的小批量更新次数,然后采样新一批 prompt,重新开始。两者相同,而这里恰恰是”把同一批 rollout 用于多次梯度步”所累积的训练-推理不匹配会不断复合的地方——如果信任域没有被正确锚定,就是上面 RQ1/RQ2 的结论所指出的那种情形。

这样走一遍之后能得到的实践结论是:DPPO 对现有训练循环的全部改动都集中在第 6 步。 数据采集、奖励打分、优势估计、梯度汇总都不需要改变——这正是为什么论文可以把它呈现为一个即插即用的替换,而不是一个全新的训练系统,也是为什么本文后面的”实践迁移清单”会如此简短。

DPPO 目标函数与掩码

DPPO 保留了 PPO 廉价的一阶掩码结构——没有二阶优化,没有显式拉格朗日量——但把被阈值判断的量从单 token 比率换成了一个真实的散度估计:

LμDPPO(π)=Eyμ[t=1yMtDPPOrtA^t],(D1)L_\mu^{DPPO}(\pi) = \mathbb{E}_{y\sim\mu}\left[\sum_{t=1}^{|y|} M_t^{DPPO}\cdot r_t\cdot\hat{A}_t\right], \tag{D1} MtDPPO={0,若 (A^t>0 且 rt>1 且 D>δ)  或  (A^t<0 且 rt<1 且 D>δ),1,否则,(D2)M_t^{DPPO} = \begin{cases} 0, & \text{若 } (\hat{A}_t>0 \text{ 且 } r_t>1 \text{ 且 } D>\delta)\ \text{ 或 }\ (\hat{A}_t<0 \text{ 且 } r_t<1 \text{ 且 } D>\delta), \\ 1, & \text{否则}, \end{cases} \tag{D2}

其中 DD(μ(st)π(st))D \equiv D\big(\mu(\cdot|s_t)\|\pi(\cdot|s_t)\big) 是该状态下估计出的散度(TV 或 KL),δ\delta 是阈值超参数。把式 D2 中的 DD 替换为 rt1|r_t-1| 恰好能还原出原始的 PPO 算法(式 P5)——这是一个很好的合理性检查:DPPO 是一个严格的推广,而不是一个披着 PPO 外衣的不同算法。

伪代码(逐 token 掩码,一个训练小批量):

对每个从 rollout 策略 mu 采样得到的回答 y = (y_1, ..., y_T):
    对 t in 1..T:
        r_t      = pi(y_t | s_t) / mu(y_t | s_t)          # 重要性比率,梯度本身仍然需要它
        D_t      = estimate_divergence(mu(.|s_t), pi(.|s_t))   # Binary 或 Top-K 近似,见下文
        moving_away = (A_hat_t > 0 且 r_t > 1) 或 (A_hat_t < 0 且 r_t < 1)
        若 moving_away 且 D_t > delta:
            M_t = 0        # 阻断:这次更新会把策略推出信任域
        否则:
            M_t = 1        # 放行:要么正在朝 mu 靠近,要么散度仍在预算内
        contribution_t = M_t * r_t * A_hat_t
    loss = -mean(sum_t contribution_t)                    # 取负号,因为我们要提升奖励、降低损失

有两个设计特性值得单独指出,因为它们正是 DPPO 既保留了 PPO 的良好行为、又修复了其不良行为的关键。第一,这个掩码是有方向性的:它只考虑阻断那些已经朝着优势符号所暗示的方向、偏离 rollout 策略的更新(正优势且比率大于 1,即”已经把一个好 token 的概率提到高于对齐点”;或负优势的对称情形)。它从不阻断朝 μ\mu 方向回归的更新——例如 A^t>0\hat{A}_t>0rt<1r_t<1(一个好 token,其概率仍低于 rollout 策略给出的概率)总是被放行,因为这样的移动只会缩小散度,不会扩大它。这保留了 PPO”裁剪应该是单侧生效”的核心直觉。第二,也是真正的创新之处:是否阻断的判断现在基于整个分布是否已经偏移得太远(D>δD>\delta),而不是单个采样 token 的比率碰巧看起来有多极端。这直接攻击了上面记录的两种失效模式:一个罕见 token 巨大的比率,如果实际散度贡献很小,不再会单靠自身触发阻断;一个高频 token 看似温和的比率,如果实际上移动了大量概率质量,也不再能逃过掩码。

具体例子:在 alowa_{low}/ahigha_{high} 案例上跑一遍 DPPO 掩码

值得机械地在之前引入的两个 token 上核对一下这个掩码,看看为什么 DPPO 在这两个 token 上都得出了与 PPO 相反的掩码判断。取 δ=0.05\delta=0.05 作为散度阈值(一个有代表性的小值;论文针对不同实验会调整这个值),假设两个 token 都获得了正优势 A^t>0\hat{A}_t>0(即策略被鼓励进一步提高它们的概率)。

Token alowa_{low}: μ=104\mu=10^{-4},π=102\pi=10^{-2},比率 r=100>1r=100>1。用 Binary TV 近似(式 D3),DTVBin=1041020.0099<δ=0.05D^{Bin}_{TV} = |10^{-4}-10^{-2}| \approx 0.0099 < \delta=0.05。“正在远离”条件(A^t>0\hat{A}_t>0rt>1r_t>1)满足,但散度条件(D>δD>\delta)满足——所以 Mt=1M_t=1:这次更新不受掩码影响、原样通过。对比 PPO:在 ϵ=0.2\epsilon=0.2 下,r=100r=100 远远超出 [0.8,1.2][0.8,1.2],PPO 的裁剪会触发,这次更新会被重度压制。这正是论文诊断中指出的过度惩罚,而 DPPO 纠正了它。

Token ahigha_{high}: μ=0.99\mu=0.99,π=0.80\pi=0.80,比率 r0.808<1r\approx0.808<1。这里,对正优势而言,“正在远离”条件要求 rt>1r_t>1,而这不成立(r<1r<1)——所以无论散度值是多少,在这个特定的优势符号下 Mt=1M_t=1。这看起来可能有点意外,但与掩码的设计是一致的:对一个正优势 token 而言,比率低于 1 意味着相对 μ\mu 而言更新只是微弱地在提高概率,或者训练策略因为其他原因低于了 rollout 概率——无论哪种情况,都不是掩码想要抓住的”失控上升”模式。ahigha_{high} 真正危险的情形出现在它的优势为的时候(策略被要求压低一个已经占主导地位的 token):此时 A^t<0\hat{A}_t<0rt=0.808<1r_t=0.808<1 满足”正在远离”条件,散度 DTVBin=0.990.80=0.19δ=0.05D^{Bin}_{TV}=|0.99-0.80|=0.19 \gg \delta=0.05 触发 Mt=0M_t=0——DPPO 会阻断这次更新,恰恰因为在一步之内把一个占主导地位的 token 的概率压低 0.19,正是定理 3.2 的下界所要防止的那种大幅度、破坏稳定性的偏移。在 ϵ=0.2\epsilon=0.2 的 PPO 下,同样的比率 r0.808r\approx0.808 恰好卡在 [0.8,1.2][0.8,1.2] 的边缘,是否裁剪取决于精确的阈值——对于一个实际上明确而巨大的散度事件来说,这是一个不可靠的、擦边的结果。这个逐步核对正是论文抽象论断”DPPO 解决了标准 PPO 中固有的过度约束与约束不足问题”背后的具体机制:一旦信任域是针对真实分布偏移而非单一比率来衡量的,同样的两个 token 就会得到与 PPO 相反的掩码判断。

Binary 近似:最廉价的可能散度估计

计算精确的逐状态散度需要在每个生成位置上,对 μ\muπ\pi 都拿到覆盖整个词表(常常十几万 token)的完整类别分布——在这个规模上内存开销是禁止性的。Binary 近似把每个分布压缩成一个二元伯努利变量:“实际采样到的 token” 对 “其余所有 token”,即对 π~{μ,π}\tilde\pi\in\{\mu,\pi\} 定义 pπ~t=(π~(atst), 1π~(atst))p_{\tilde\pi}^t = \big(\tilde\pi(a_t|s_t),\ 1-\tilde\pi(a_t|s_t)\big)。把这个二元分布代入标准的 TV 和 KL 公式,可以得到只需要两个标量——即两个策略下那个采样 token 的概率——的闭式解,而这恰好是 PPO 已经在计算的、用来构成比率的那两个数字,所以这几乎是零成本的:

DTVBin(t)=μ(atst)π(atst),(D3)D_{TV}^{Bin}(t) = \big|\mu(a_t|s_t) - \pi(a_t|s_t)\big|, \tag{D3} DKLBin(t)=μ(atst)logμ(atst)π(atst)+(1μ(atst))log1μ(atst)1π(atst).(D4)D_{KL}^{Bin}(t) = \mu(a_t|s_t)\log\frac{\mu(a_t|s_t)}{\pi(a_t|s_t)} + \big(1-\mu(a_t|s_t)\big)\log\frac{1-\mu(a_t|s_t)}{1-\pi(a_t|s_t)}. \tag{D4}

为什么把整个词表压缩成”一个 token 对其余所有”依然能正确诊断出上面两种失效模式?因为式 D3 字面上就是采样 token 的绝对概率质量差——正是被比率错误定价的那个量:对 alowa_{low} 而言它算出 1041020.0099|10^{-4}-10^{-2}|\approx 0.0099(小,正确地没有触发阻断),对 ahigha_{high} 而言它算出 0.990.80=0.19|0.99-0.80|=0.19(大,正确地满足阻断条件)。这正是上面诊断部分所激励的那个修复,而且几乎不需要在 PPO 之上增加任何额外计算开销。

Top-K 近似:更丰富但也更昂贵的替代方案

Binary 近似只”看得见”这一个采样到的 token;它对其他没被采样到的高概率 token 之间的偏移是盲的(例如,如果 μ\muπ\pi 互换了两个概率相近的 token 谁更被偏好,而采样到的那个 token 自身概率变化不大,Binary 会报告接近零的散度,即便分布的形状其实发生了实质性偏移)。Top-K 通过显式追踪一个小的代表性集合 At=TopK(μ(st),K){at}A'_t = \text{TopK}(\mu(\cdot|s_t), K)\cup\{a_t\} 来解决这个问题——rollout 策略下概率最高的 KK 个 token,再加上采样 token(如果它还不在这个集合里的话)——并把其余所有 token 折叠进一个聚合的”其他”类别,构成 (K+2)(K{+}2) 类的类别分布 pπ~tp^t_{\tilde\pi},定义在 At=At{其他}A''_t = A'_t\cup\{\text{其他}\} 上:

pπ~t(a)=π~(ast)  aAt,pπ~t(其他)=1aAtπ~(ast).(D5)p_{\tilde\pi}^t(a) = \tilde\pi(a|s_t)\ \ \forall a\in A'_t, \qquad p_{\tilde\pi}^t(\text{其他}) = 1-\sum_{a\in A'_t}\tilde\pi(a|s_t). \tag{D5}

散度就在这个简化后的 (K+2)(K{+}2) 类分布上计算,与在完整词表上计算完全一样:

DTVTopK(t)=12aAtptμ(a)ptπ(a),DKLTopK(t)=aAtptμ(a)logptμ(a)ptπ(a).(D6)D_{TV}^{TopK}(t) = \frac{1}{2}\sum_{a\in A''_t}\big|p_t^\mu(a) - p_t^\pi(a)\big|,\qquad D_{KL}^{TopK}(t) = \sum_{a\in A''_t} p_t^\mu(a)\log\frac{p_t^\mu(a)}{p_t^\pi(a)}. \tag{D6}

至于为什么 Top-K”能更好地捕捉分布头部的变化”(用论文自己的话说):真正主导一个真实散度计算结果的几乎总是概率最高的那几个 token(它们承载了最多可能移动的概率质量),所以显式追踪它们、只把长而薄的尾部丢进一个桶里,能在保持精细度的同时把开销从 O(词表)O(|\text{词表}|) 降到每 token O(K)O(K)。论文随后的消融实验(第 7.3 节)显示 Binary 与 Top-K 表现相近——这本身就是一个有信息量的负面结果:它说明 Top-K 增加的”头部对尾部”结构在实践中几乎无关紧要,而 Binary 单独具备的”采样 token 对其余”结构已经完成了几乎全部有用的工作。对生产系统来说这是个好消息:用最廉价的实现成本就能拿到大部分收益。

设计维度PPO(基线)DPPO-BinaryDPPO-Top-K
被阈值判断的量单 token 比率 rtr_t采样 token 对其余的 2 类 TV/KLtop-KK token + “其他”的 (K+2)(K{+}2) 类 TV/KL
相对 PPO 的额外计算量—(基线)几乎为零(复用比率的两个标量)每 token 多 O(K)O(K) 次查表,依然很便宜
对未被采样的高概率 token 之间的偏移敏感吗?否(比率只看到采样 token)
掩码是否有方向性是(单侧裁剪)是(单侧掩码)是(单侧掩码)
锚定分布重新计算 vs. rollout,实践中含糊不清rollout μθ\mu_{\theta'}(第 5.2 节证明这是必需的)rollout μθ\mu_{\theta'}

图 4(设计对比,表格即图):DPPO 的两种近似都保留了 PPO 廉价、单侧的掩码结构,同时把被错误定价的比率换成了真实的散度估计;Top-K 以小幅额外成本增加了对分布头部重新洗牌的敏感度,但消融实验显示这一精细化在 Binary 已经取得的效果之上贡献甚微。

flowchart TB
    R["rollout 引擎采样 y ~ mu,记录采样 token 的 mu(a_t|s_t)"] --> T["训练引擎为同样的 token 重新计算 pi(a_t|s_t)"]
    T --> C{"选择近似方式"}
    C -->|"Binary(廉价)"| BN["把词表压缩成 {a_t, 其余}:用 mu(a_t)、pi(a_t) 两个标量算 D"]
    C -->|"Top-K(更丰富)"| TK["取出 mu 下 top-K 个 token,为 mu 和 pi 各构造 (K+2) 类分布,算 D"]
    BN --> M["掩码 M_t:仅当 D 超过 delta 且更新方向远离 mu 时才阻断"]
    TK --> M
    M --> G["被掩码过的梯度 M_t * r_t * A_hat_t 流入策略更新"]

图 5(数据流/流水线图):散度估计这一步,是插入在”计算比率”(每一个 PPO 系实现本来就会做)和”应用掩码”之间的一个小而廉价的分支——它不改变周围训练循环的结构,这正是 DPPO 是一个即插即用替换、而不是一个新训练系统的原因。

为什么这两种近似是有理论保证的下界,而不只是启发式方法

一个自然的担忧是,“压缩词表”听起来可能往任何方向出偏差——也许低估了散度(带来虚假的安全感),也许高估了(不必要地掩码更新)。论文附录 B 用一个简短干净的论证解决了这个疑虑,值得在这里复现一遍,因为它把 Binary 和 Top-K 都从”听起来合理的启发式方法”提升为”可证明的保守估计”。设 C={C1,,Cm}\mathcal{C}=\{C_1,\dots,C_m\} 是词表的任意一个划分——Binary 就是划分 {{at}, A{at}}\{\{a_t\},\ \mathcal{A}\setminus\{a_t\}\}(两类:采样 token,其余所有),Top-K 就是划分 {{a}:aAt}{AAt}\{\{a\}:a\in A'_t\}\cup\{\mathcal{A}\setminus A'_t\}(K+1K{+}1 个单点类,加上尾部一类)。定义在这个划分空间上计算出的散度为 DTVC=12j=1mμ(Cjst)π(Cjst)D_{TV}^{\mathcal{C}} = \frac{1}{2}\sum_{j=1}^m |\mu(C_j|s_t)-\pi(C_j|s_t)|,也就是 Binary/Top-K 实际计算的量。结论是:对任意划分,DTVCDTV(μπ)D_{TV}^{\mathcal{C}}\le D_{TV}(\mu\|\pi)——这个近似永远不会报告出比真实散度更大的值,只会相等或更小。证明直接来自三角不等式:对任意一类 CjC_j,μ(Cjst)π(Cjst)=aCj(μ(ast)π(ast))aCjμ(ast)π(ast)|\mu(C_j|s_t)-\pi(C_j|s_t)| = \left|\sum_{a\in C_j}\big(\mu(a|s_t)-\pi(a|s_t)\big)\right| \le \sum_{a\in C_j}\big|\mu(a|s_t)-\pi(a|s_t)\big|——和的绝对值不超过绝对值的和,因为左边同号的项会相长、异号的项会在外层绝对值之前先部分抵消,而右边预先对每一项取了绝对值,所以永远享受不到这种抵消。对全部 mm 个类求和再除以 2,直接得到 DTVCDTV(μπ)D_{TV}^{\mathcal{C}} \le D_{TV}(\mu\|\pi)。这在实践中有一个非常具体的含义:真实散度与 Binary/Top-K 估计之间的差距,恰好等于该划分所丢弃的”类内抵消”量——概率质量在同一个内部的偏移(例如两个既不是采样 token、也不在 top-KK 里的尾部 token 互相交换概率)对近似是不可见的,因为它们在外层绝对值被应用之前就已经在”其他”桶的求和里相互抵消了;而类之间的偏移(尤其是任何涉及采样 token 本身的偏移,因为它在两种方案里都独占一个单点类)则被精确捕捉。因为这个估计是下界,用 DC>δD^{\mathcal{C}}>\delta 做阈值判断,相对真实散度只可能少触发掩码,不可能多触发——如果一定要在两个方向的误差里选一个,这正是应该主动选择的方向,因为它意味着 DPPO 的掩码在是否阻断梯度这件事上是保守的(更接近 PPO”存疑时倾向于让训练继续”的原始偏好),而不是无端触发。

统一视角:所有基线其实都是同一个方程

论文附录 C.1 把基线方法与 DPPO 之间的比较写成了一个共享模板,让整个对比清晰得多:

θL(θ)=Eyμθ[t=1yMtmin(πθ(ytst)μθ(ytst), C)A^tθlogπθ(ytst)].(U1)\nabla_\theta L(\theta) = \mathbb{E}_{y\sim\mu_{\theta'}}\left[\sum_{t=1}^{|y|} M_t \cdot \min\left(\frac{\pi_\theta(y_t|s_t)}{\mu_{\theta'}(y_t|s_t)},\ C\right)\cdot \hat{A}_t \cdot \nabla_\theta \log\pi_\theta(y_t|s_t)\right]. \tag{U1}

稳定性实验里的每一个方法都恰好是这同一个方程,只是掩码 MtM_t 与截断上限 CC 的选择不同——除此之外什么都不变,这让人非常容易看清究竟是哪一个单一的设计决定,把一个会崩溃的方法与一个稳定的方法区分开来:

方法掩码 MtM_t截断上限 CC相对 DPPO 改变了什么
PG-IS恒为 11(无掩码)\infty(无上限)完全没有信任域
PG-TIS(CISPO)恒为 11(无掩码)33(比率被截断)限制了比率的幅度,但从不阻断梯度
GRPO(Clip-Higher)用 rollout 比率 rtr_t 做基于比率的裁剪,ϵhigh=0.28\epsilon_{high}=0.28,ϵlow=0.2\epsilon_{low}=0.2\infty基于噪声比率而非散度做掩码
MiniRL与 GRPO 形状相同,但用重新计算的比率 $r’t=\pi{\theta’}(y_ts_t)/\pi_\theta(y_ts_t)$
MiniRL-TIS与 MiniRL 相同33锚定分布不对叠加了截断
DPPO(本文)基于散度 $D_t=D(\mu_{\theta’}(\cdots_t)|\pi_\theta(\cdots_t))的掩码, 的掩码,\delta=0.15(TV)(TV)或 \delta=0.05$(KL)

这样来看,论文的消融阶梯就变得非常清晰:PG-IS → PG-TIS 只改变了 CC(依然崩溃,而且更糟);PG-IS → GRPO 只把 MtM_t 从”无”改成”基于比率”(在 RQ1 实验中修复了崩溃);GRPO → MiniRL 只改变了同样形状的掩码锚定在哪个分布上(在 RQ2 实验中重新引入了不稳定);GRPO/MiniRL → DPPO 只改变了掩码所阈值判断的量(比率 vs. 散度)。这个阶梯里的每一步都只隔离了一个变量,这也正是为什么论文关于”哪些设计有效、哪些无效”的因果论断,比单纯一句”我们的方法更好”的端到端比较更有说服力。

实验:剖析训练的稳定性与效率

论文不只是宣称 DPPO 效果更好——它进行了一系列真正具有诊断性的实验,先把”为什么信任域重要""哪些更新导致崩溃”这两个问题隔离清楚,再进入大规模对比。下面按论文提出这些研究问题的顺序逐一走一遍。

RQ1:在大模型规模的学习率下,信任域真的还有必要吗?

很容易想当然地认为,在大模型微调典型的极小学习率(约 10610^{-6})下,信任域只是一个锦上添花、实践中很少真正起作用的双重保险。实验(在 1,460 道精选、全部可解的 MATH 题目上微调 DeepSeek-R1-Distill-Qwen-1.5B,一个稳定的算法理应收敛到接近 100% 的训练准确率)给出了相反的答案:

方法是否有信任域训练-推理不匹配趋势结果
PG-IS持续增长最终崩溃
PG-TIS(CISPO)只有截断重要性采样,没有原则性约束增长,比 PG-IS 更糟崩溃,表现不及 PG-IS
MiniRL / MiniRL-TIS有信任域,但锚定错误(见 RQ2)尽管有约束仍然增长崩溃
DPPO-Binary-TV / -KL有信任域,锚定正确保持在低水平且稳定接近满分的奖励,无崩溃

图 6(论文图 3,复现):约 3,500 步内的奖励曲线与训练-推理不匹配。无约束方法(PG-IS、CISPO)呈现单调增长的不匹配,最终崩溃;DPPO 各变体全程把不匹配保持在接近零的水平,并达到接近满分的训练奖励。

要点 1(论文原话的框架): 即便在很低的学习率下,信任域依然是必要的——最终触发崩溃的,是数千步内不断累积的训练-推理不匹配,而不是单步学习率的大小。

RQ2:信任域应该锚定在哪个分布上?

一个在实现中很容易出错的细节:D(μπ)D(\mu\|\pi) 中的 μ\mu 究竟应该是原始 rollout 分布 μθ\mu_{\theta'}(实际产生数据的那个,用推理引擎的数值),还是一个重新计算的分布 πθ\pi_{\theta'}(用同样的参数 θ\theta' 重新跑一遍训练引擎,在与更新后的 πθ\pi_\theta 比较之前先去掉推理引擎特有的数值差异)?一些开源实现(以及 MiniRL 基线本身)使用重新计算的锚点,理由是这样可以从比较中剔除引擎特有的噪声。论文证明这个理由是本末倒置的:MiniRL 尽管名义上有信任域,在上面图 3/6 里依然崩溃了——一个控制实验取本来稳定的 DPPO-KL,把它的锚点从 μθ\mu_{\theta'} 改成重新计算的 πθ\pi_{\theta'},就复现出了同样的崩溃(论文图 4)。原因在于:真正需要保持有界的量,是”当前实际部署、正在产生数据的策略”偏离了多远——用一个重新计算的参考量悄悄丢弃了正是信任域存在的意义所在的信息(推理-训练数值差异),因此一个重新计算的锚点可能报告”没有偏移”,而实际部署的 rollout 策略其实已经偏移了很多。作为额外的好处,锚定在 rollout 分布上(采样时已经算出来了)意味着完全不需要额外的重新计算这一步——论文报告这能把训练计算量削减大约 25%。

要点 2: 信任域必须锚定在原始行为/rollout 策略 μθ\mu_{\theta'} 上;锚定在任何重新计算的 on-policy 分布上都会重新引入不稳定,而且额外付出计算代价却没有任何好处。

RQ3:究竟是哪些具体更新导致了崩溃?

这是论文里操作意义上最有用的一个诊断。从不稳定、没有任何更新掩码的 PG-IS 出发,作者们寻找能够恢复稳定性的最小掩码,以此隔离出究竟哪一类更新是危险的。考虑到正奖励更新通常是安全的(它们在强化已经成功的行为),他们把注意力集中在负优势样本上——策略正被惩罚的那些——并测试了一个单条件掩码:

Mt=0  若  A^t<0 且 μθ(ytst)πθ(ytst)δ.(E1)M_t = 0 \ \ \text{若}\ \ \hat{A}_t<0 \ \text{且}\ \mu_{\theta'}(y_t|s_t) - \pi_\theta(y_t|s_t) \ge \delta. \tag{E1}

用文字说就是:只有当一个 token 被惩罚(负优势)它的概率在 rollout 与当前训练策略之间已经下降超过 δ\delta 时,才阻断这个 token 的梯度。取 δ=0.5\delta=0.5,这一条单一规则就足以完全稳定训练;更松的阈值(δ=0.8\delta=0.8)或重新计算锚点的变体都依然会崩溃。论文进一步显示,触发这一”坏更新”条件的 token 比例很小——在任意给定步上通常低于 0.5%——但这一小部分的占比随时间的变化,与奖励曲线变得多不稳定紧密相关,这是支持因果关系(而不只是相关关系)的有力证据。

flowchart TD
    A["采样 token y_t 获得负优势(模型被告知:这是错误答案的一部分)"] --> B["梯度步压低 pi(y_t):概率大幅下降,比如降幅超过 0.5"]
    B --> C{"这个 token 原本是模型的低置信度猜测,还是它相当确信的内容?"}
    C -->|"模型对 y_t 相当有信心"| D["对一个模型'相信'的 token 进行大幅激进修正——可能损害内部校准/知识"]
    C -->|"模型本来置信度就低"| E["相对扰动较小——风险较低"]
    D --> F["训练-推理不匹配在后续步骤中进一步增长"]
    F --> G["奖励曲线变得不稳定;坏更新反复累积"]
    G --> H["最终灾难性崩溃"]
    E --> I["训练保持稳定"]

图 12(RQ3 因果机制图):论文对为什么一小部分(<0.5%)更新会造成不成比例伤害的解释——危险的情形不是”模型被惩罚了”,而是具体地”模型因为一个它相当有信心的 token 被狠狠惩罚”,这可能以一种会在后续训练步骤中不断累积的方式,损害模型校准良好的内部表征。

要点 3: 训练崩溃是由一小部分(常常 <0.5%)负奖励、且 token 概率已经被大幅压低的更新驱动的——论文推测,这一机制是因为对模型仍然认为相当可能的 token 进行激进惩罚,会破坏模型的内部校准并使学习过程失稳。这是一个机制性的解释,而不只是现象性的描述,也正是 DPPO 基于散度的掩码所要抓住的那种失效模式(一个 token 上的大幅概率偏移,无论它的原始比率看起来如何)。

截断重要性采样反而适得其反

一个次要但颇为意外的发现:截断重要性采样(TIS)这一流行的方差削减技术,在这些实验中实际上恶化了稳定性(PG-TIS 与 MiniRL-TIS 更早崩溃,且表现不及各自不带 TIS 的版本)。论文给出的解释与其核心诊断一脉相承:TIS 截断的是最大的重要性比率,而最可能产生大比率的正是那些已经被证明遭到系统性错误定价的低概率 token——所以 TIS 最终不成比例地降低了恰恰来自这些 token 的梯度信号权重,引入了一个有偏且有害的信号损失,而不是一次干净的方差削减。

哪些 token 真正会被裁剪?一次定性观察

“低概率 token 被过度裁剪”这个抽象的统计论断,一旦看到真实训练中具体是哪些 token 被标记出来,会变得具体得多。论文附录 D 用 GRPO 在 DAPO 上微调 Qwen3-4B-Base,在训练第 50 步分别为正奖励样本和负奖励样本各取出被裁剪频率最高的 50 个 token。两个类别在两份列表中都占主导:数字与数学符号(如 146 这样的数字;+=\[、下标标记 _{ 这样的符号),以及推理/话语连接词(WaitNextSinceHoweverThusLetInsteadIf)。这不是词表尾部的随机样本——这些恰恰是承载数学思维链解答逻辑结构的 token:标志自我纠正的连接词(“Wait,这不对”)、开启分类讨论的词(“If x>0x>0…”)、实例化某个中间数值结果的数字。实际含义很直接:在正奖励样本上,PPO 风格的裁剪不成比例地阻断了对恰恰构成一个正确解答的可读性与结构性至关重要的那些 token 的强化;在负奖励样本上,它又不成比例地阻断了在这些 token 出现在一条错误推理路径中时对它们进行必要压制的更新。无论哪种情况,本应保证训练安全的机制,反而在选择性地压制词表中对推理质量最重要的那部分子集上的学习信号——这比”低概率 token 更容易被裁剪”这句话本身要犀利得多,因为它说明被裁剪的 token 不只是罕见,更是功能上重要

效率:放松低概率 token 的信任域会发生什么?

稳定性实验确立了信任域是必要的;另一组独立实验(用 GRPO+Clip-Higher 在 DAPO 数据集上微调 Qwen3-1.7B-Base)则问 PPO 的裁剪对低概率 token 来说是否过紧,做法是对概率 μ(ytst)<α\mu(y_t|s_t)<\alpha 的 token 把 ϵ\epsilon\to\infty,并扫描 α\alpha:

放松阈值 α\alpha相对 α=0\alpha=0 基线的训练效率被裁剪 token 的典型概率
α=0\alpha=0(GRPO 基线,不放松)基线大多低于 0.15
α=0.1\alpha=0.1奖励增长明显加快α\alpha 增大而上移

图 7(论文图 6,复现):专门针对 rollout 策略赋予概率低于 0.1 的 token 放松裁剪,能有意义地加快训练;PPO 默认裁剪捕获的 token 不成比例地是低概率、高熵的 token——与此前”强化学习信号集中在高熵(‘探索’/‘推理’)token 上”的观察一致。

一个后续实验问的是裁剪的哪一侧更重要:只放松上界(ϵhigh\epsilon_{high}\to\infty,一个极端版本的”Clip-Higher”技巧)保留了熵但收效甚微;只放松下界(ϵlow\epsilon_{low}\to\infty,“Clip-Lower”)带来快得多的初期学习速度,但最终会出现熵坍缩;同时放松两端才是唯一既快又稳的方案。这对文献中流行的 Clip-Higher 启发式方法是一个温和但真实的批评:论文的数据表明,对低概率 token 来说,真正更值得放松的其实是下界而非上界——与”Clip-Higher”这个名字本身暗示的方向恰好相反。DPPO 完全绕开了”该放松哪一侧”这个选择,因为它的掩码是从实际实现的散度与方向推导出来的,而不是一个手工设定的非对称 ϵ\epsilon

更大规模评测:五种配置、两个 RLHF 场景与一次消融

在大规模上,论文在五种模型/技术配置(MoE 基座、MoE 基座 + rollout router replay、MoE”思考”模型、稠密 8B 基座、MoE + LoRA)上对比了 GRPO-ClipHigher 与 CISPO 基线,所有方法都按照 RQ2 的结论锚定在 rollout 分布上:

配置基线表现DPPO-Binary 表现
MoE 基座(无 R3)频繁不稳定稳定,奖励增长更快
MoE 基座 + R3(rollout router replay)靠 R3 稳定不带 R3 的 DPPO 已经超过了带 R3 稳定的基线;带 R3 的 DPPO 能进一步获益——两者的收益基本正交
MoE”思考”模型GRPO-ClipHigher 在这个配置下出现灾难性崩溃稳定
稠密 8B 基座稳定但较慢收敛持续更快,最终 AIME24/25 分数更高
MoE + LoRA(见论文附录 F.2)报告显示持续获益

图 8(论文图 8–9,复现):在训练过程中对 AIME24 与 AIME25 的在线评测显示,DPPO-Binary-KL/TV 持续以更快速度收敛、且最终分数更高,均超过 GRPO-ClipHigher 与 CISPO;值得注意的是,不使用昂贵的 R3 稳定技术的 DPPO 依然超过了使用 R3 稳定过的基线,而 CISPO 或 GRPO-ClipHigher 各自在至少一种配置下出现了彻底的灾难性崩溃(CISPO 在无 R3 的 MoE 基座配置下;GRPO-ClipHigher 在 MoE 思考模型配置下),DPPO 在任何测试配置下都没有崩溃。

除了可验证奖励的数学任务,两个 RLHF 风格的对齐实验(Gemma-2-9B-It 在 UltraFeedback 上,Qwen3-4B-Instruct-2507 在 HH-RLHF 上,两者都用 Skywork-Reward-Llama-3.1-8B 打分)都显示 DPPO-Binary-TV 比 GRPO 更快地提升学习到的奖励,并达到更高的最终奖励,由此微调出的 Qwen3 模型在 AlpacaEval 2.0 上达到 80.90 的长度控制胜率与 79.93 的原始胜率——作者报告这在成稿时是社区排行榜上的新纪录。这种从可验证的、基于规则的奖励泛化到嘈杂的、学习到的奖励模型优化的能力,是一个重要的鲁棒性信号,因为 RLHF 奖励恰恰是一个奖励模型噪声可能与基于散度的掩码产生不良交互的场景(原则上,一个嘈杂的奖励可能让掩码在实际上并无问题的 token 上触发)——收益能够迁移过去,说明至少在测试过的这两个场景中,这种交互并不是一个严重的实际问题。

最后,在完全相同的 MoE-Base 配置下对 Binary 与 Top-K(K=20K=20)近似做的消融显示,两者表现相近,且都明显优于基线——支持了论文的说法:廉价的 Binary 近似已经捕获了绝大部分实际有用的信号,正如上文方法部分所讨论的那样。

超越数学推理的泛化,以及超参数敏感性

论文附录中的两组结果补全了整体实证图景,而它们在主文第 7.4–7.5 节中受到的关注远不如应得的多,因为它们直接回答了 DPPO 的收益究竟有多大程度是 AIME 风格数学强化学习这一具体场景所特有的。

超参数敏感性(附录 F.4)。 在 8k 上下文长度下用 DAPO 微调 Qwen3-30B-A3B-Base,论文对 DPPO-Binary-TV 扫描 δ{0.10,0.15,0.20}\delta\in\{0.10,0.15,0.20\},对 DPPO-Binary-KL 扫描 δ{0.05,0.10,0.15}\delta\in\{0.05,0.10,0.15\},并与扫描上裁剪值的 GRPO 变体对比:

方法被扫描的参数观察到的敏感度
DPPO-Binary-TVδ{0.10,0.15,0.20}\delta\in\{0.10,0.15,0.20\}整个范围内表现相当
DPPO-Binary-KLδ{0.05,0.10,0.15}\delta\in\{0.05,0.10,0.15\}整个范围内表现依然强劲
GRPO(变化上裁剪界)ϵhigh\epsilon_{high}相比 DPPO 对 δ\delta 的敏感度,对这个超参数明显更敏感

图 10(论文图 19,复现):在测试范围内,DPPO 的散度阈值 δ\delta 相对而言更能容忍调错——而且测试过的每一种 DPPO 配置都优于测试过的每一种 GRPO 配置。这部分回应了下文批判性分析中的一个疑虑(即 δ\delta 比 PPO 的 ϵ\epsilon 更容易还是更难调):在实际扫描过的范围内,看起来更容易一些,尽管扫描并没有延伸到更极端的错误设定。

对新模型家族与任务类型的泛化(附录 F.5)。 除了 Qwen3 家族在可验证数学奖励上的实验,论文还测试了另外三个泛化维度,每一个都把信任域机制作为唯一变化的变量(两组实验都使用同样的 GRPO 优势估计框架,只在基于比率还是基于 TV 散度的掩码上不同):

泛化维度场景结果
不同模型家族OctoThinker-3B-Hybrid-Base 在 MATH 上DPPO-Binary-TV 相对 PPO-Ratio 提升了效率
抽象推理 / 归纳Qwen3-1.7B-Base 在 Arc1D 与 Acre 上(Gem 库)DPPO-Binary-TV 在两个任务上都相对 PPO-Ratio 提升了效率
多轮推理Qwen3-1.7B-Base 在多轮 Sudoku-v0-easy 上(Gem 库)DPPO-Binary-TV 相对 PPO-Ratio 提升了效率

图 11(论文图 20,复现):在四种性质各异的任务类型上——一个不同的基座模型家族、抽象符号推理任务、一个归纳任务、以及一个真正的多轮环境——仅仅把信任域掩码机制从基于比率换成基于 TV 散度(其余 GRPO 配方保持不变),就提升了训练效率、在某些场景下也提升了最终渐近性能。这是论文中最有力的证据,说明其诊断(比率裁剪是个糟糕的散度代理)是大模型强化学习的一个普遍性质,而不是 AIME 风格数学推理场景特有的产物。

这里始终如一的实验设计——同一个基础算法,单变量替换——正是支持一个”普遍性”论断的正确方式,值得明确指出,因为论文摘要读起来更偏向数学强化学习;如果读者只浏览第 7.1 节的头条 AIME24/25 图表,很容易错过抽象推理、归纳与多轮实验的结果。

论文自己承认的局限与边界条件

论文在交代适用范围这件事上相当坦诚,值得把它明确陈述出来的边界条件逐条列出,而不是含糊地说一句”这篇论文有局限性”:

  • 论文把 DPPO 的算法贡献定位为与工程层面缓解训练-推理不匹配的手段(更高精度的推理、跨引擎的精细内核/实现对齐)正交且可组合——它不声称能替代那些努力,只是一个即便存在一些不可避免的数值不匹配时依然有帮助的、稳健的算法层。
  • 这一点对低精度、高吞吐的推理场景尤其重要,那里出于成本考虑,推理引擎与训练引擎之间不可能做到完美的数值对齐——论文把 DPPO 定位为恰恰在这种场景下最有价值,而不是把它当作停止投入引擎对齐工程的理由。
  • 论文明确把 Binary 与 Top-K 散度估计定性为真实散度的下界(在附录 B 中证明),这意味着 DPPO 的阈值 δ\delta 是针对真实分布偏移的一个低估值来校准的。
  • 这是一个有意为之、明确说明的设计选择,而不是疏漏,但它确实意味着实践中实际执行的信任域,比表面上的 δ\delta 数值所暗示的要宽松一些——如果有读者试图用另一个来源的”真实散度阈值”去类比设置 δ\delta,会系统性地校准错误。
  • 论文的 Impact Statement 部分很简短(仅有一句模板式的话,承认”存在许多潜在的社会影响……但我们认为没有需要特别强调的”),这对这一类方法论文来说是常规做法,但意味着论文没有明确讨论,比如说,更高效、更稳定的强化学习训练是否会加速那些社会影响仍在被评估中的能力的部署——这一点适用于这个方向上几乎所有的强化学习效率论文,而不是本文特有的缺陷。

批判性分析:不足与可改进之处

不足与说服力欠缺的地方。

  • 论文的核心理论贡献(定理 3.1–3.2)通过一个下界建立了提升的充分条件,但论文从未在真实训练过程中实证测量过这个下界究竟有多
  • 我们看到 DPPO 基于这个下界结构推导出的掩码启发式方法在实践中效果很好——但从未看到一张图,展示 J(π)J(μ)J(\pi)-J(\mu) 与下界右侧数值之间在整个训练过程中的实际差距,而这正是能够告诉我们理论究竟是在做真实的预测工作、还是主要充当了一个为一个原本合理的启发式方法背书的叙事的证据。
  • 阈值 δ\delta(散度预算)与 KK(用于 Top-K)在正文中几乎被当作自由超参数处理——第 7.5 节承诺了一项超参数敏感性研究,但它被完全放到了正文没有分析的附录里。
  • 考虑到这篇论文的整个论点就是 PPO 的单一超参数(ϵ\epsilon)对大模型来说校准得很糟糕,这是一个值得注意的缺口——读者仅从正文出发,无法判断 DPPO 自己的超参数(δ\delta)在跨新模型/新数据集调参时是更容易还是更难(我自己在上文”泛化”部分对附录扫描结果的解读认为它更宽容一些,但这是我自己重构出来的结论,而不是论文正文强调的重点)。
  • RQ3”坏更新”诊断(式 E1)是在一个特定的小模型(DeepSeek-R1-Distill-Qwen-1.5B)和一个特定数据集(1,460 道精选、每一道初始模型都能解出的 MATH 题目)上展示的——一个刻意设计得异常干净、低噪声的场景,以使诊断结果清晰可辨。
  • 这个 <0.5% 更新的发现是否能推广到更嘈杂的奖励场景(比如部分可解的题目集合,或者存在真实标签噪声的 RLHF 奖励模型)是合理但未被直接证明的——在那些场景里,“策略大幅压低了某个 token 的概率”可能是一个远不那么可靠的”这是个坏更新”信号。
  • Rollout Router Replay(R3)——一种周期性地在 rollout 引擎与训练引擎之间重新同步 MoE 专家路由决策、专门用来防止 MoE 模型中由路由引起的训练-推理不匹配的技术——在论文中被当作一个 DPPO”从中获益”的外部、正交技术(第 7.1 节),但论文从未分析过为什么不带 R3 的 DPPO 就已经超过了带 R3 稳定的 GRPO。是 DPPO 本身对路由引起的不匹配噪声就更鲁棒,还是它恰好绕开了 R3 专门针对的那种失效模式?论文报告了这个实证事实,但没有诊断其机制,考虑到 MoE 路由不稳定性在 2025–2026 年的大模型强化学习实践中已经变得如此核心,这是一个错失的机会。

论文低估的局限。

  • Binary 近似的盲区——它看不见未被采样的高概率 token 之间相对偏移——只是通过存在一个更丰富的 Top-K 变体来隐含地承认,而没有用一个专门构造的反例来直接分析。
  • 考虑到 Binary 与 Top-K 在报告的这一次消融中表现相近,论文隐含地得出这个盲区在实践中很少造成影响的结论,但一篇把这一取舍作为核心的论文,本可以用一个明确的、对抗性构造的合成例子来展示 Binary 对头部重新洗牌的盲视究竟何时真的会造成问题,从而让从业者知道什么时候该转而使用 Top-K。
  • 所有大规模的效率与稳定性对比都是针对 GRPO-ClipHigher 与 CISPO 具体展开的;2025–2026 年的另外几种信任域变体(仅在相关工作讨论中提及,例如 Wang 等人一脉的自适应 KL 裁剪方法)并没有在同一实验规模上作为经验基线被纳入对比。
  • 因此,“DPPO 优于当前标准启发式方法”这一说法有数据充分支持,而更强的说法”DPPO 优于所有合理的、感知散度的替代方案”并没有直接针对 2025–2026 年方法的完整前沿被测试过。

具体的改进建议。

  1. 直接报告策略提升下界(定理 3.2)的实证紧致程度——例如,在训练过程中追踪 J(π)J(μ)J(\pi)-J(\mu) 相对 Lμ(π)L'_\mu(\pi) 减去散度惩罚项之间的差距——以证实理论确实在起支撑作用,而不只是提供动机性的叙事。
  2. δ\deltaKK 的超参数敏感性分析移入正文,给出明确的推荐默认值,并讨论最终表现对它的敏感程度,理想情况下跨至少两个模型规模进行,因为这正是一个持怀疑态度的读者会提出的”用一个新的启发式超参数替换旧的”这类质疑。
  3. 构造一个刻意设计的对抗性合成例子,展示 Binary 只看采样 token 的视角未能捕捉到真实散度突增的情形(例如两个概率相近的 token 互换排名,而采样到的那个 token 自身概率变化不大),给从业者一条何时值得为 Top-K 的额外成本买单的具体判断规则。
  4. 把 RQ3”哪些更新导致崩溃”的诊断扩展到更嘈杂的奖励场景(部分给分的奖励,或一个学习到的奖励模型),测试 <0.5% 这一发现、以及那里起作用的具体阈值,是否能够迁移,因为目前这个实验只是一个单一的、干净的案例研究,却在为一个普遍性论断背书。
  5. 在同样的大规模实验设置下,至少加入一个同时期的其他感知散度或熵感知基线(而不只是在相关工作中引用),使摘要与结论中”优于现有方法”的说法是针对当前前沿测量的,而不只是针对 GRPO-ClipHigher 与 CISPO。
  6. 直接诊断为什么不带 R3 的 DPPO 会优于带 R3 稳定的 GRPO——这是散度掩码对路由噪声鲁棒性的一般性质,还是一个偶然的副作用?一个把路由相关的不匹配与其他来源的训练-推理不匹配分开的消融实验能够回答这个问题。

这篇论文如何融入 2025–2026 年大模型强化学习的更大版图

把这篇论文放到近期一波无 critic 大模型强化学习算法的浪潮中来看,而不是孤立地阅读它,会很有帮助。GRPO(Shao 等人,2024)确立了去掉学习到的 critic 的组内相对优势基线(式 P6);DAPO(Yu 等人,2025)在 GRPO 的实践配方上做了改进,引入了逐 token 损失聚合与本文直接批评的原始”Clip-Higher”技巧。VAPO(2026)走了相反的方向,重新引入了一个经过精细正则化的价值函数以进一步降低方差;而 REINFORCE++ 与 RLOO(Ahmadian 等人,2024)则探索了更简单的、无 critic 的方差削减技巧,围绕式 P6 中组均值削减的不同变体。GSPO(2026)提出用序列级而非 token 级的重要性比率,作为解决本文所研究的同一个训练-推理不匹配问题的另一种方案。这篇论文与上述几乎所有这些工作的区别在于修复所处的层级:DAPO、GSPO、VAPO 和 RLOO 都保留了基于比率的裁剪机制,转而改变的是优势的估计方式,或者比率计算的粒度(逐 token 还是逐序列);而本文则认为裁剪触发条件本身(一个比率)就是一个不该被阈值判断的错误量,并提出替换它,同时保持其余一切(GRPO 风格的优势估计、min-clip 结构模板)不变。这使得 DPPO 更像是一个正交的、可组合的修复,而不是一个与之竞争的配方——DPPO 掩码(式 D2)中没有任何东西与,比如说,GSPO 的序列级比率或 VAPO 的价值增强优势不兼容;原则上可以把 DPPO 基于散度的掩码替换进这两条流水线里任何一条现有的基于比率的裁剪位置。论文没有直接测试这类组合,这本身也值得作为一个开放问题提出来:基于散度的掩码能否与序列级重要性比率干净地组合?还是说在序列级别聚合散度需要一种与(本质上逐 token 的)Binary/Top-K 不同的近似方式?

实践迁移清单:在现有 PPO/GRPO 流水线中引入 DPPO

对于一个当前正在运行 GRPO 或 PPO 风格强化学习后训练流水线的团队而言,论文的结果暗示了一条具体、低风险的迁移路径,而不是一次完整重写:

  1. 保留现有的优势估计器。 DPPO 不改变 A^t\hat{A}_t 的计算方式——无论目前使用的是无 critic(GRPO/RLOO 风格)还是基于 critic 的估计器,都可以不加修改地直接接入式 D1。
  2. 把信任域锚定到 rollout 策略,而不是重新计算的策略——这是收益最高的单一改动,而且是免费的。 如果现有实现在比较之前会先重新计算 πθ\pi_{\theta'}(即 MiniRL 那种被证明有害的模式),只需把比较的分布换回记录下来的 rollout 概率 μθ\mu_{\theta'},就能同时去掉一个消耗训练成本的重新计算步骤(按论文估计约节省 25%),并且根据 RQ2 直接修复一个不稳定来源——无论是否采用 DPPO 的掩码规则,这一步都值得做。
  3. 用 Binary 散度掩码(式 D2 + D3/D4)替换基于比率的掩码。 这只需要现有比率计算已经产生的那两个标量(μ(atst)\mu(a_t|s_t)π(atst)\pi(a_t|s_t))——不需要记录任何新数据,不需要任何新的前向传播。
  4. 从论文报告的数值出发调 δ\delta(KL 约 δ0.05\delta\approx0.05,TV 约 δ0.15\delta\approx0.150.20.2)作为起点,再针对自己的模型规模与数据集做局部扫描,因为论文自己的敏感性分析在正文中着墨不多(见上文批判性分析)。
  5. 只有在有具体理由怀疑分布头部重新洗牌会带来影响时才考虑 Top-K(比如高度重复、模板化的生成,其中同样一小撮 token 会在轮次之间反复竞争概率质量)——消融证据表明,单靠 Binary 就已经以远低得多的工程成本捕获了大部分收益。
  6. 不要在没有单独验证的情况下,把这个方法和朴素的截断重要性采样搭配使用——论文发现 TIS 会不成比例地降低恰恰是 DPPO 想要保护的那些低概率 token 的权重,从而主动恶化稳定性,这是一条针对”不经过进一步验证就组合使用这两种技术”的直接、可操作的警告。

常见问题

DPPO 需要一个 critic(价值网络)吗? 不需要。论文所有的头条实验都用的是 GRPO 风格、无 critic 的优势估计(式 P6);式 D2 中的掩码只需要一个标量优势 A^t\hat{A}_t(符号和大小),而这可以来自任何优势估计器,无论是否基于 critic。

散度估计需要模型多做一次前向传播吗? 不需要,除了 PPO/GRPO 本来就会做的前向传播之外不需要任何额外的前向计算。计算采样 token ata_tπ(atst)\pi(a_t|s_t)(每一个 PPO 系方法为了式中的比率 rtr_t 本来就需要它)正是 Binary 近似(式 D3–D4)所需要的全部,而 Top-K 近似(式 D5–D6)也只需要为 top-KK token 多做一次查表。

这如何与损失函数中的熵奖励项交互? 论文没有报告把 DPPO 与显式的熵正则化项结合使用,但从机制上看二者是兼容的:熵奖励作用于每一步完整的输出分布,与该步的策略梯度项是否被 MtM_t 掩码无关。一个值得测试、但论文没有涉及的合理猜想是:既然 DPPO 已经改善了对低概率、高熵”探索”token(见上文附录 D 的发现)的处理,一个独立的熵奖励项是否会因此变得部分冗余。

这能应用到多轮或智能体式强化学习中吗,即一个 episode 跨越多次大模型调用、可能还包含工具调用步骤? 部分可以——定理 3.1–3.2 的核心理论是针对一个只有单一终止奖励的有限时域 token 序列推导的,这最直接地对应单轮生成,但论文确实报告了一个具体的多轮实验(Qwen3-1.7B-Base 在 Gem 库的多轮 Sudoku 环境上;见上文泛化部分),其中 DPPO 相对基于比率的 PPO 的效率优势依然成立。这是令人鼓舞的证据,但不是一个理论保证:底层恒等式并没有针对嵌套的、逐轮的奖励结构重新推导过,所以这个多轮结果应该被理解为”实证收益至少迁移到了一个多轮场景”,而不是”理论已经被扩展到覆盖多轮强化学习”。

这篇论文修复的问题在什么情形下最重要? 长思维链训练(每个回答数千 token)、超大且长尾的词表(十几万 token,包含许多罕见/技术/多语言 token)、存在路由引起的训练-推理不匹配的 MoE 模型、以及不可避免存在一定训练-推理不匹配的低精度高吞吐推理场景——这些都是本文诊断的机制最容易发作的地方;而在动作空间较小的经典控制强化学习场景中,PPO 原始的比率裁剪近似本来就更接近其设计和验证所针对的场景,相关性会低一些。

复现性说明

论文报告了具体、可核实的设置:所有基座模型都是公开可得的(Qwen3 家族的 1.7B/8B/30B-A3B 规模、DeepSeek-R1-Distill-Qwen-1.5B、Gemma-2-9B-It、Qwen3-4B-Instruct-2507,以及附录中一个 Llama 家族的泛化检验);数据集是公开的(MATH、DAPO-Math、UltraFeedback、HH-RLHF);RLHF 实验用的奖励模型是公开的 Skywork-Reward-Llama-3.1-8B;作者还给出了一个 GitHub 仓库(sail-sg/Stable-RL)的实现链接。核心算法改动(式 D1–D2 加上式 D3–D4 或式 D5–D6)足够小,可以直接嫁接进现有的 PPO/GRPO 训练循环,而不需要一个新的训练系统——主要的工程要求是,对同样采样到的 token,能从 rollout/推理引擎训练引擎两侧都拿到逐 token 概率(大多数现代大模型强化学习训练框架为了计算比率本来就已经记录了这些),如果要用 Top-K,还需要从 rollout 引擎的输出分布中拿到 top-KK token 概率。

论文附录 E 披露了具体的大规模训练超参数,值得原样记录下来,作为在类似硬件上复现的具体起点:

超参数MoE 基座MoE 基座 + R3MoE 思考模型稠密基座MoE 基座 + LoRA
最大 prompt 长度10241024102410241024
最大回答长度16384163841638480008000
训练批量大小256256256128128
PPO 小批量大小3232323216
学习率1×1061\times10^{-6}1×1061\times10^{-6}1×1061\times10^{-6}1×1061\times10^{-6}1×1051\times10^{-5}
Rollout 温度1.01.01.01.01.0
每个 prompt 的 rollout 样本数(nn)16161688

图 9(复现自论文表 1):DPPO-Binary-KL 在全部五种大规模配置中使用的散度阈值均为 δ=0.05\delta=0.05;DPPO-Binary-TV 在四种配置中为 δ=0.2\delta=0.2,在 MoE 基座 + LoRA 这一配置中专门降为 δ=0.15\delta=0.15。AIME24/25 在线评测使用温度 0.70.7、top-pp 0.950.95n=32n=32 次采样取平均。注意,五种配置中有四种的学习率是 1×1061\times10^{-6},这直接对应 RQ1 的实验前提(即便学习率很低,信任域依然是必需的)——这些不是为了让消融结果显得戏剧化而选的玩具学习率,而是真正的生产级设置。

在新模型/数据集上复现时,有两个实际的旋钮需要调整:散度阈值 δ\delta(注意 KL 和 TV 的自然尺度不同——论文自己的设置里分别是 0.050.050.150.150.20.2,所以不要在两种散度之间直接复用同一个 δ\delta 而不重新调参),以及如果使用 Top-K,还需要选择 KK(论文消融中使用 K=20K=20)。论文报告 Binary-TV 与 Binary-KL 在其设置下表现相当,但并未声称这一点会普适地迁移到任意新的模型家族或奖励结构上。

需要避免的常见误读

有几点值得明确澄清,因为一篇缩略语和公式如此密集的论文,很容易引发几种可以预见的误解:

  • DPPO 不是一种新的优势估计器。 它对 A^t\hat{A}_t 如何计算只字未提;它完全是关于施加在一个优势加权梯度之上的掩码/裁剪机制,而这个梯度是由其他某个估计器(GRPO、RLOO、或基于 critic 的方法)已经产生的。
  • DPPO 不是一种基于 critic 的方法,采用它并不需要训练一个价值网络。 论文所有头条实验都是无 critic 的(GRPO 风格)。
  • DPPO 的散度估计不是覆盖整个词表的精确 TV/KL 散度——Binary 与 Top-K 都是真实散度的可证明下界(附录 B),而不是真实值本身;这个掩码在”永远不会高估策略实际偏移了多远”这个具体意义上是保守的。
  • “DPPO 在特殊情形下还原为 PPO”是一个关于把 Drt1D\to|r_t-1| 代入掩码(式 D2)的数学陈述,而不是说 DPPO 和 PPO 在典型情形下行为相同——实际上,在上面核对过的数值例子里,DPPO 和 PPO 在同一个 token 上经常做出相反的掩码判断。
  • 论文的效率论断(为低概率 token 放松裁剪)与稳定性论断(锚定到 rollout 分布,掩码大幅负优势偏移)是两个独立的贡献,只是恰好被同一个算法统一了起来——一个团队原则上可以只采用锚定修复(RQ2)而不采用完整的基于散度的掩码,依然能看到一部分稳定性收益,但看不到与正确处理低概率 token 相关的效率收益。
  • “Sea AI Lab”和”NUS”的作者身份、以及 sail-sg/Stable-RL 这个仓库名称,指的是这篇具体论文所提供的实现——DPPO 作为一个算法思想是独立于那个具体代码库的,掩码(式 D2)足够简单,可以直接在大多数现有的大模型强化学习训练框架中重新实现,而不依赖那个仓库。

前后对比:这篇论文如何改变默认的强化学习配方

用一个简洁的前后对比表把整篇笔记浓缩成一份参考:

设计决策本文之前的常见做法本文推荐的做法
信任域衡量什么单 token 概率比率 rtr_t直接(Binary 或 Top-K)估计策略散度 DtD_t
信任域锚定在哪个分布上常常是重新计算的 on-policy 分布 πθ\pi_{\theta'}(如 MiniRL 风格)原始 rollout 分布 μθ\mu_{\theta'}
如何处理低概率 token只要比率大,不管实际移动了多少概率质量,都激进裁剪只有当实际散度贡献超过 δ\delta 时才掩码
如何处理高频 token只要比率仍落在 [1ϵ,1+ϵ][1-\epsilon,1+\epsilon] 之内,即便质量偏移很大也常常逃过裁剪只要大幅质量偏移导致 Dt>δD_t>\delta,无论比率看起来多”温和”都会被掩码
用于比率的方差削减技巧截断重要性采样(TIS),被认为有助于稳定除非独立验证,否则避免使用 TIS——它可能通过压制恰恰需要这些信号的 token 而恶化稳定性
为了得到一个”干净”的参考分布而额外做一次重新计算常见做法,但增加训练成本没有必要——锚定到已经算出来的 rollout 分布,既更便宜又更稳定
对不稳定性根源的理解框架”大模型强化学习在规模化时天生就不稳定""不稳定性集中在一小类可识别、可掩码的更新上”

相关工作地图:论文引用了哪些工作,各自扮演什么角色

这篇笔记引用或讨论了相当密集的一张先前方法关系网;这里给出一份紧凑的地图,说明每一个工作的贡献,以及它相对 DPPO 处在什么位置——如果之后要去读原论文正文或附录,这是一份不错的导航参考。

  • TRPO(Schulman 等人,2015)——最初的信任域策略优化方法;证明了本文为大模型场景重新推导的经典策略提升下界(式 P3)。
  • PPO(Schulman 等人,2017)——TRPO 的一阶裁剪近似,本文的核心诊断直接针对的就是它(式 P5)。
  • GRPO(Shao 等人,2024)——无 critic、组内相对优势估计(式 P6);本文中基线方法与 DPPO 共享的优势估计骨架。
  • DAPO(Yu 等人,2025)——引入了”Clip-Higher”技巧(非对称裁剪边界),本文证明这放松了对低概率 token 而言错误的一侧。
  • CISPO(Chen 等人,2025)——用截断重要性采样替代裁剪;作为 PG-TIS 基线出现,在 RQ1 稳定性测试下被证明会崩溃。
  • MiniRL(Zheng 等人,2025)——一种锚定在重新计算的 on-policy 分布而非 rollout 分布上的 PPO 风格方法;是 RQ2”锚点错了”这一发现的核心对照对象。
  • Rollout Router Replay / R3(Ma 等人,2025)——一种 MoE 专属的稳定技术,在 rollout 引擎与训练引擎之间同步专家路由;被证明与 DPPO 的收益基本正交、可以组合使用。
  • VeRL(Sheng 等人,2024)——本文所有大规模实验所使用的开源强化学习训练框架。
  • Skywork-Reward-Llama-3.1-8B(Liu 等人,2024)——RLHF 风格对齐实验(UltraFeedback、HH-RLHF)所使用的公开奖励模型。
  • Gem 库(Liu 等人,2025e)——附录 F.5 中抽象推理(Arc1D)、归纳(Acre)、多轮(Sudoku)泛化环境的来源。
  • Oat 框架(Liu 等人,2025c)——附录 F.5 中泛化实验所使用的训练框架,不同于主 VeRL 大规模实验。
  • Wang 等人(2019;2020)——早期关于经典强化学习中自适应 KL 裁剪的工作,被引用为直接约束散度而非比率这一思路最接近的概念先驱,早于本文所针对的大模型专属场景。
  • Achiam 等人(2017)、Kakade & Langford(2002)、Hunter & Lange(2004)——本文重新推导的经典下界所依托的基础理论(约束策略优化、原始的性能差异定理、以及 Minorize-Maximization 框架)。
  • Yao 等人(2025)、Qi 等人(2025b)、Zheng 等人(2025)——最早把训练-推理不匹配刻画为大模型强化学习中一种独立失效模式的一批工作,催生了 TIS 风格的缓解方案,也促成了本文对信任域的重新推导。

全部实验涉及的模型规模一览

作为速查参考,这里列出论文实验中用到的每一个基座模型,参数量跨越大约三个数量级,同时涵盖稠密与 Mixture-of-Experts 两种架构:

模型类型用于
DeepSeek-R1-Distill-Qwen-1.5B稠密RQ1–RQ3 稳定性诊断(第 5 节)
Qwen3-1.7B-Base稠密效率分析(第 6 节)、抽象推理/归纳/多轮泛化(附录 F.5)
Qwen3-4B-Base稠密被裁剪 token 的定性分析(附录 D)
Qwen3-4B-Instruct-2507稠密HH-RLHF 上的 RLHF 对齐实验(第 7.2 节)
Qwen3-8B-Base稠密更大规模评测中的”稠密基座”配置(第 7.1 节)
Qwen3-30B-A3B-Base / Qwen3-30B-A3BMoE”MoE 基座""MoE 基座 + R3""MoE 思考模型""MoE + LoRA”配置;超参数敏感性(附录 F.4)
Gemma-2-9B-It稠密UltraFeedback 上的 RLHF 对齐实验(第 7.2 节)
OctoThinker-3B-Hybrid-Base稠密跨模型家族泛化检验(附录 F.5)
Skywork-Reward-Llama-3.1-8B稠密(仅作奖励模型,不参与强化学习训练)两个 RLHF 实验共用的奖励模型

关于发表场地与时间的说明

这篇论文发表于 ICML 2026(PMLR 第 306 卷),一个同行评审的会议,这意味着理论证明部分(附录 A,本文只复现了定理 3.1 的套叠推导思路,没有完整重现)与实验流程都经过了外部审阅——在权衡该对这篇论文施加多少审视力度、相对于一篇尚未经过同行评审的同主题 arXiv 预印本时,这一点值得记在心里。arXiv 编号(2602.04879,第 3 版)表明在本文所依据的这个版本之前至少经历过两轮修订,这与一篇已经吸收过至少一轮外部反馈的论文是相符的。

最后一次对核心论断的合理性检验

收尾之前,值得用最具可证伪性的方式重新陈述一次核心的实证论断,因为这是检验这篇笔记是否真正理解了论文的最强测试:如果你拿一个现有的、基于 PPO/GRPO 的大模型强化学习流水线,除了(a)把信任域锚定改为 rollout 分布而非重新计算的分布,以及(b)把基于比率的掩码换成基于 Binary 散度阈值的掩码之外什么都不改,论文的证据预测你应该会观察到更快的奖励增长、在很宽的模型规模与任务类型范围内不出现灾难性崩溃,并且由于去掉了重新计算这一步,训练计算量大约降低 25%——而这一切都不需要触碰优势估计器、奖励函数,或流水线中的任何其他部分。这是一个强而具体、可测试的预测,也正是一篇方法论文应该给出的那种论断。

后续研究方向

除了上文批判性分析中的具体改进建议之外,本文的诊断与修复方案还提示了几个更广泛的研究方向——这些不是对论文本身的批评,而是它自然引出的下一步:

  • 把有限时域理论扩展到多轮与层级化的奖励结构。 正如常见问题部分所讨论的,核心定理假设每条序列只有一个终止奖励;对嵌套时域(多轮 episode 内部的逐轮奖励,或智能体式轨迹内部的逐工具调用奖励)进行形式化处理,能把已经很有希望的 Sudoku 多轮实证结果,置于与单轮数学结果同样严谨的理论基础之上。
  • 自适应或学习出的散度阈值。 δ\delta 目前是每种散度类型固定的一个超参数;鉴于这个阈值对掩码行为如此关键,一个自然的下一步是让 δ\delta 自适应——例如在训练过程中按计划调度,或者基于某个廉价可计算的局部统计量按层/按 token 位置设置——而不是使用单一的全局常数。
  • 把 DPPO 基于散度的掩码与序列级重要性比率(如 GSPO)组合起来。 正如”这篇论文如何融入更大版图”一节所指出的,这两条工作线运作在不同的粒度上(逐 token 散度 vs. 序列级比率),并不明显互斥;一个组合方法原则上可以同时继承两者的收益。
  • 在 Binary 与 Top-K 之间寻找一个有理论依据的中间地带。 鉴于附录 B 的下界证明可以推广到任意词表划分,测试过的两个极端(2 类的 Binary,(K+2)(K{+}2) 类的 Top-K)之间存在一整个设计空间——例如按 token 频率分桶,或按语义/句法 token 类别划分——这是论文自己的理论所允许、但没有探索过的。
  • 实证理解 DPPO 与显式熵正则化之间的交互(常见问题部分已提出),考虑到本文在低概率、高熵 token 与有用探索信号之间画出的机制性联系。
  • 对为什么基于散度的掩码相对基于比率的掩码,对 MoE 路由不匹配更鲁棒(即便有 R3)给出一个机制性解释,因为论文只报告了这个实证事实(不带 R3 的 DPPO 优于带 R3 稳定的 GRPO),而没有给出因果解释。

缩略语速查表

鉴于这个方向上算法名称密度很高,这里给出一份快速对照:

缩略语全称
MDPMarkov Decision Process,马尔可夫决策过程
TRPOTrust Region Policy Optimization,信任域策略优化
PPOProximal Policy Optimization,近端策略优化
GRPOGroup Relative Policy Optimization,组相对策略优化
DPPODivergence Proximal Policy Optimization,散度近端策略优化(本文方法)
DAPO一个开源的大规模大模型强化学习系统,引入了 Clip-Higher 技巧
CISPO一种基于截断重要性采样的无 critic 强化学习方法
RLOOREINFORCE Leave-One-Out
VAPOValue-Augmented Proximal Policy Optimization,价值增强近端策略优化
GSPOGroup Sequence Policy Optimization,组序列策略优化
RLHFReinforcement Learning from Human Feedback,基于人类反馈的强化学习
TISTruncated Importance Sampling,截断重要性采样
KLKullback–Leibler 散度
TVTotal Variation,总变差散度
MoEMixture of Experts,专家混合模型
R3Rollout Router Replay,MoE 专家路由稳定技术
LoRALow-Rank Adaptation,低秩适配
MM 算法Minorize-Maximization
AIME美国数学邀请赛,在这里被用作强化学习评测基准
DAPO-Math / MATH论文大规模与稳定性实验中使用的数学推理训练数据集
UltraFeedback / HH-RLHFRLHF 风格实验(第 7.2 节)所使用的公开偏好/对齐数据集

速查:这篇论文的修复在什么情形下最重要?

一份面向决策的简要总结,概括本文所指出的这个缺口在什么情形下最容易发作、什么情形下相对不那么重要,依据的是整篇笔记讨论过的各种机制:

场景本文修复方案的相关性
长思维链强化学习训练(每个回答数千 token)高——长序列积累更多触发 RQ3”坏更新”模式的机会,而平均散度下界(T5)在这里恰好更紧
大而长尾的词表(十几万 token,许多罕见/技术/多语言 token)高——这正是基于比率的裁剪错误定价最明显的场景
存在路由引起的训练-推理不匹配的 MoE 模型高——DPPO 被证明即便在 R3 已经提供的收益之外依然有帮助
小动作空间的经典强化学习(如低维连续控制)低——这更接近 PPO 原始比率裁剪近似最初被设计和验证的场景
存在一定不可避免训练-推理不匹配的低精度、高吞吐推理场景高——论文将此定位为一个稳健算法层(如 DPPO)最有价值的场景
已经采用引擎对齐方案、不匹配接近零较低,但不为零——RQ1 显示即便不匹配很小,信任域依然重要,因为它仍可能在很多步之后累积

论文章节对照表

如果之后要直接阅读原论文,这里给出论文章节编号与本笔记的对应关系,方便就任何最感兴趣的部分直接跳转到原始来源:

论文章节内容对应本笔记位置
1. Introduction动机、alow/ahigha_{low}/a_{high} 数值例子核心诊断
2. BackgroundMDP、Kakade–Langford 恒等式、TRPO前置知识(从 MDP 到 TRPO)
3. Trust Region Under LLM Regime定理 3.1、3.2理论:为大模型场景重建信任域
4. MethodologyPPO 回顾、DPPO 掩码、Binary/Top-K 近似散度近端策略优化(DPPO)
5. Analysis on Training StabilityRQ1–RQ3、TIS 的陷阱实验:RQ1 至截断重要性采样部分
6. Analysis on Training Efficiency低概率 token 裁剪放松效率:放松低概率 token 的信任域
7. Broader Evaluation五种配置、RLHF、消融、泛化更大规模评测、超越数学推理的泛化
8. Related WorkClip-Higher/CISPO 的联系、训练-推理不匹配文献相关启发式方法、相关工作地图
9. Conclusion总结结论(本笔记)
附录 A定理 3.1–3.2 的完整证明证明思路(简化推导,非完整正式证明)
附录 BBinary/Top-K 作为可证明下界为什么这两种近似是有理论保证的下界
附录 C统一梯度公式、各基线的精确超参数统一视角:所有基线其实都是同一个方程
附录 D被裁剪 token 的定性分析哪些 token 真正会被裁剪?
附录 E大规模实验训练细节、超参数表复现性说明
附录 F扩展消融、超参数敏感性、泛化实验超越数学推理的泛化,以及超参数敏感性

结论

这篇论文的贡献,最好被理解为修复了一个几乎从 PPO 被移植到大模型微调那一刻起,就一直悄悄潜伏在每一个 PPO 系大模型强化学习配方里的 bug:大家都依赖的那道信任域安全阀,在大模型词表规模下,其实是在对一个噪声极大的单 token 代理施加约束,而不是它本应约束的那个真实量。这个修复在概念上很简单——把代理换成一个廉价、直接的散度估计——但要走到这一步,需要为一个原始定理从未针对过的场景(有限时域、无折扣、序列终止奖励)重新推导经典的策略提升理论,还需要做一系列细致的诊断实验来确认其机制(一小部分大幅度、负优势、概率坍缩的更新),而不只是提出一个听起来合理的启发式方法。

如果要把这篇笔记压缩成几条最值得记住的论断,它们会是:

  1. 大模型强化学习的信任域应该约束真实的策略散度,而不是单个采样 token 的概率比率——比率只有在动作空间较小时才是一个合格的代理;在大模型词表规模下,它会变成一个方差高、且在两个方向上都有系统性偏差的估计量。
  2. 把信任域锚定到实际产生数据的 rollout 策略上,而不是任何重新计算的 on-policy 分布——这个选择既是免费的(不需要额外计算),又是承重的(对稳定性至关重要)。
  3. 大模型强化学习中的训练崩溃不是弥散的;它集中在一小类可识别的更新上(大幅度、负优势、概率坍缩的更新),这意味着它是一个可以被检测和掩码的、可处理的问题,而不是规模化带来的一种内在、不可避免的代价。
  4. 最廉价的修复(Binary 散度,复用你已经在计算的标量)就已经捕获了大部分可获得的收益——更复杂的方案(Top-K,或任何更精细的东西)在需要时可以采用,但作为起点显然不是必须的。
  5. 只治标不治本的启发式补丁(Clip-Higher、CISPO 风格的截断)不能替代重新审视它们所打补丁的底层机制是否一开始就衡量对了东西。

核心直觉:去掉所有符号之后这篇论文说了什么

这篇论文最值得记住的想法,一旦用最简单的语言说出来,几乎让人觉得理所当然——如果你想知道一次更新是否安全,就直接测量你真正关心的那个量(分布移动了多远),而不是它的一个廉价代理量(随机抽到的那一个 token 恰好落在哪里)。PPO 在大模型时代整整数年、悄悄地依赖着这个代理,直到有人足够仔细地重新推导了一遍理论才察觉到这个问题——这本身就是一个有价值的提醒:被广泛采用的默认做法应该被定期重新审视,而不是因为”大家都在用”就默认它是正确的。

这个想法翻译成实践建议只需要一行代码的改动:把 rt1>ϵ|r_t - 1| > \epsilon 换成 DBin(μπ)(st)>δD^{Bin}(\mu\|\pi)(s_t) > \delta,仅此而已。复杂的信任域理论最终蒸馏成了这么简洁的一个算子替换,而这个替换之所以可信,正是因为论文在作出这个声明之前,重新把整条理论链走了一遍。

延伸阅读建议

对本文感兴趣的读者,可以按如下顺序展开阅读,建立完整的背景知识链:

  • TRPO 原论文(Schulman 等人,2015,“Trust Region Policy Optimization”)——本文所有理论推导的出发点,了解经典策略提升下界和约束优化信任域的标准来源。
  • PPO 原论文(Schulman 等人,2017,“Proximal Policy Optimization Algorithms”)——TRPO 的比率裁剪近似以及它的原始验证场景(小动作空间经典控制),读完后能更清楚地感受到它被移植到大词表场景时为什么开始出现裂痕。
  • GRPO 原论文(Shao 等人,2024,“DeepSeekMath”)——本文所有基线方法共同使用的无 critic 组内相对优势估计(式 P6)的来源。
  • DAPO 工作(Yu 等人,2025,“DAPO: Open-Source LLM Reinforcement Learning System”)——引入了 Clip-Higher 技巧,阅读时可以对照本文批判性分析中关于”为什么放宽上界不等于修复了根本问题”的讨论。
  • 本文代码仓库github.com/sail-sg/Stable-RL)——实现了式 D1–D6 所描述的 Binary 和 Top-K 散度掩码,是在现有 PPO/GRPO 流水线里直接验证本文论断最快捷的路径。
  • Kakade & Langford(2002),“Approximately Optimal Approximate Reinforcement Learning”——原始的策略提升恒等式(本文式 P2 的来源),值得直接阅读这篇短文,理解这个恒等式在推导时假设了什么、以及本文为何不得不为大模型场景重推。
  • VeRL 框架(Sheng 等人,2024)——本文所有大规模实验的实现底座,本文的散度掩码改动在一个现代的、面向大模型强化学习的分布式训练框架里是怎么组合进去的,读这个框架的文档会有直观感受。

上述阅读顺序没有强依赖关系:可以直接从本文代码库入手,在阅读 TRPO/PPO 原文时回头查阅本笔记的理论部分,也可以按顺序从经典文献读起。最终,把理论细节和本文的诊断实验(尤其是 RQ3 的 <0.5% 坏更新发现)结合起来看,能对”大模型强化学习为什么会不稳定、又应该怎么修”建立起一个比任何单篇论文都完整的图景。

对于今天正在做强化学习后训练的从业者来说,最具可操作性的近期收获是:把信任域锚定到 rollout 策略而不是重新计算的策略;对截断重要性采样作为稳定性手段的效果保持怀疑;并考虑到最廉价的散度代理(Binary)可能已经以几乎零额外工程成本,买到了朴素比率裁剪之上大部分可获得的收益。对研究者来说,更持久的教训是方法论层面的:当一个算法从另一个场景(小的离散动作空间)被继承过来,规模扩大了好几个数量级(大模型词表),却没有人重新审视其核心近似是否依然成立时,由此产生的悄悄错配可以持续很多年——就像这里明显发生的那样——直到有人回到第一性原理,去问原始理论是否真的曾经适用于这个场景。