CISPO:裁剪概率比后,梯度还剩多少#

进阶4 分钟阅读查看源文件 ↗

TL;DR#

本页内容6 个部分

1. 逐 token 裁剪与梯度归零#

DAPO 为正优势 token 放宽了上裁剪界。一旦当前概率与采样时概率的比值超过这个上界,任务目标仍会进入常数分支,该 token 的任务梯度归零。负优势也有对应的情况。比值跌破下界后,DAPO 会停止通过该 token 的任务项继续压低它的概率。[1]

CISPO(Clipped IS-weight Policy Optimization)让概率比超过上界时,token 仍能提供任务梯度。它把裁剪后的比值用作梯度权重,并保留当前策略的 log 概率参与求导。[2]

图中纵轴是乘在当前 token 的 log 概率梯度上的系数。上、下两栏分别把优势固定为 +1+1 和 −1-1。两种方法共用 1.2 作为上界,0.8 是 DAPO 的下界。数字是为比较而设的手算配置。

同一个 token 的梯度系数。正优势且概率比超过 1.2 时,DAPO 归零,CISPO 保持 1.2。负优势且概率比低于 0.8 时,DAPO 归零,单边 CISPO 的系数仍为负的概率比。

2. 核心目标与机制#

对问题 qq 的一个已采样回答,在第 tt 个位置,令 st=(q,y<t)s_t=(q,y_{<t}) 表示相同的前缀,yty_t 是采样到的 token。正在更新的策略是 πθ\pi_\theta,实际生成该 token 的策略是 πold\pi_{\mathrm{old}}。概率比为 rt=πθ(yt∣st)/πold(yt∣st)r_t=\pi_\theta(y_t\mid s_t)/\pi_{\mathrm{old}}(y_t\mid s_t),表示当前策略相对采样策略给这个 token 多少倍的概率。用 A^\hat A 表示该回答的优势估计,更新时固定 A^\hat A 和采样概率。[2]

为单独看裁剪,两种方法使用相同的优势和 token,暂省共同的平均系数。设 rlor_{\mathrm{lo}} 和 rhir_{\mathrm{hi}} 为 DAPO 的下界和上界。DAPO 要最大化这个 token 的目标项:

JtDAPO=min⁡ ⁣(rtA^,clip⁡(rt,rlo,rhi)A^).J_t^{\mathrm{DAPO}}=\min\!\left(r_t\hat A,\operatorname{clip}(r_t,r_{\mathrm{lo}},r_{\mathrm{hi}})\hat A\right).

当 A^>0\hat A>0 时,较小值等于 A^min⁡(rt,rhi)\hat A\min(r_t,r_{\mathrm{hi}})。当 A^<0\hat A<0 时,乘以负数会反转大小关系,较小值等于 A^max⁡(rt,rlo)\hat A\max(r_t,r_{\mathrm{lo}})。这两个分支决定了梯度在哪一侧归零。[1]

令 cc 为 CISPO 的概率比权重上限。采用 MiniMax-M1 实验和 ScaleRL 使用的单边截断,CISPO 最大化的 token 项为:

JtCISPO=sg⁡ ⁣(min⁡(rt,c))A^log⁡πθ(yt∣st).J_t^{\mathrm{CISPO}}=\operatorname{sg}\!\left(\min(r_t,c)\right)\hat A\log\pi_\theta(y_t\mid s_t).

sg⁡\operatorname{sg} 表示停止梯度。每次前向计算用当前策略重新求 rtr_t,这次反传把截断结果当作常数。梯度通过 log⁡πθ(yt∣st)\log\pi_\theta(y_t\mid s_t) 传播。MiniMax-M1 给出的通式可以设上下界,其实验采用上界截断。[2] [3]

3. 推导与计算#

采样概率固定,因此 ∇θrt=rt∇θlog⁡πθ(yt∣st)\nabla_\theta r_t=r_t\nabla_\theta\log\pi_\theta(y_t\mid s_t)。DAPO 的线性分支将 rtA^r_t\hat A 乘在这个 log 概率梯度上,常数分支的系数为零。CISPO 只对 log 概率求导,所以系数为 min⁡(rt,c)A^\min(r_t,c)\hat A。在 DAPO 刚好触到裁剪折点时,左右导数可以不同。以下计算都取在折点之外。

正优势,上界之外。 假设 old 给 token 的概率是 1%,current 是 1.6%,于是 rt=1.6r_t=1.6。取 A^=1\hat A=1、rhi=c=1.2r_{\mathrm{hi}}=c=1.2。DAPO 选中常数项 1.2×1=1.21.2\times1=1.2,所以梯度系数为 00。CISPO 选中权重 min⁡(1.6,1.2)=1.2\min(1.6,1.2)=1.2,乘上优势后,任务梯度为 1.2 ∇θlog⁡πθ(yt∣st)1.2\,\nabla_\theta\log\pi_\theta(y_t\mid s_t)。

负优势,下界之外。 换一个 token,old 概率还是 1%,current 为 0.6%,于是 rt=0.6r_t=0.6。取 A^=−1\hat A=-1、rlo=0.8r_{\mathrm{lo}}=0.8。DAPO 选中 min⁡(−0.6,−0.8)=−0.8\min(-0.6,-0.8)=-0.8,梯度系数仍为 00。单边 CISPO 保留权重 min⁡(0.6,1.2)=0.6\min(0.6,1.2)=0.6,乘上负优势后,梯度系数为 −0.6-0.6。这条样本仍提供降低该 token 概率的训练信号。

4. 比较与边界#

当 DAPO 选中随 rtr_t 变化的分支,且 CISPO 也没有触及上界,两者给同一个 token 的梯度系数都是 rtA^r_t\hat A。负优势在高概率比区间还有一种情况。DAPO 仍用 rtA^r_t\hat A 推低该 token 的概率,单边 CISPO 则把系数的绝对值限制在 c∣A^∣c|\hat A|。整批梯度还受样本筛选、优势和 Loss 平均 的影响。[1] [2]

权重上限改变了大概率比样本的相对贡献,会引入截断偏差。逐 token 概率比校正的是给定前缀下的条件概率,完整回答的换分布还涉及前缀本身的概率。实际参数步长取决于整批梯度及优化器。某个位置的优势为零或被训练 mask 屏蔽时,CISPO 的对应任务贡献也为零。[2]

参考资料#

  1. DAPO: An Open-Source LLM Reinforcement Learning System at Scale(2025)。非对称裁剪目标和 Clip-Higher 的定义。§2–3.1
  2. MiniMax-M1: Scaling Test-Time Compute Efficiently with Lightning Attention(2025)。CISPO 的目标、权重截断和梯度条件。§3.1,式 (3)–(7)
  3. The Art of Scaling Reinforcement Learning Compute for LLMs(2025)。单边截断形式及与 DAPO 的对照。§3.2,式 (4)