跳转至

1.8 CISPO — 裁剪 IS 权重而非目标函数

论文:CISPO

MiniMax-M1: Scaling Test-Time Compute Efficiently with Thinking Models (MiniMax, 2025) arXiv: 2506.13585 地位: 首次提出"裁剪 IS 权重而非裁剪目标"的范式

核心问题

PPO/GRPO 的 Hard Clipping 对推理关键的"分岔词"(如 "However"、"Wait")特别不友好。这些词初始概率低,\(r_{i,t}\) 很快超过裁剪阈值,梯度归零。在 MiniMax 的设置中(每 batch 16 轮 off-policy 更新),这些 token 在第 1 轮就被裁剪出局,剩下 15 轮完全没有梯度。

核心公式

\[ \mathcal{J}_{\text{CISPO}}(\theta) = \mathbb{E} \left[ \frac{1}{\sum_{i=1}^{G}|o_i|} \sum_{i=1}^{G} \sum_{t=1}^{|o_i|} \text{sg}\!\left(\hat{r}_{i,t}(\theta)\right) \cdot \hat{A}_{i,t} \cdot \log \pi_\theta(o_{i,t} \mid q, o_{i,<t}) \right] \]

其中 \(\hat{r}_{i,t}(\theta) = \text{clip}\!\left(r_{i,t}(\theta),\; 1 - \varepsilon_{\text{low}}^{\text{IS}},\; 1 + \varepsilon_{\text{high}}^{\text{IS}}\right)\)\(\text{sg}(\cdot)\) 是 stop-gradient。

PPO vs CISPO 梯度行为

算法 裁剪对象 被裁剪 token 的梯度
PPO/GRPO 目标函数 \(r \cdot A\) = 0(完全丢失)
CISPO IS 权重 \(r\)(在 sg 内) ≠ 0(权重被限制但梯度保留)

CISPO 永远不会将任何 token 的梯度置零。IS 权重被裁剪后通过 \(\text{sg}()\) 作为常数标量,但 \(\log\pi_\theta(\cdot)\) 始终可微:

\[ \nabla_\theta \mathcal{J}_{\text{CISPO}} \propto \sum_{i,t} \underbrace{\text{sg}(\hat{r}_{i,t})}_{\text{裁剪后的标量权重}} \cdot \hat{A}_{i,t} \cdot \underbrace{\nabla_\theta \log \pi_\theta(o_{i,t} \mid \cdots)}_{\text{始终有梯度}} \]