当 PPO 的"信任域"遇上长尾词汇:一次从硬裁剪到软正则的进化
一个被忽视的裂缝
PPO 训练 LLM 时有一个核心机制:比率裁剪(ratio clipping)。策略 $\pi_\theta$ 相对旧策略 $\pi_{\theta_{old}}$ 的概率比 $r_t = \pi_\theta(y_t|s_t) / \pi_{\theta_{old}}(y_t|s_t)$ 被限制在 $[1-\epsilon, 1+\epsilon]$ 区间内。超出区间的梯度被截断,防止策略更新步子太大。
这个机制在离散动作空间(如游戏)里工作得很好,但在 LLM 的词表空间里出了一个微妙的问题。
考虑两个 token:
- "the":旧策略概率 $\pi_{old} = 0.08$,新策略概率 $\pi_{new} = 0.12$,比率 $r = 1.5$。如果 $\epsilon = 0.2$,这个 token 被裁剪。
- "quark":旧策略概率 $\pi_{old} = 0.0001$,新策略概率 $\pi_{new} = 0.0003$,比率 $r = 3.0$。同样被裁剪。
这就是问题所在:重要性比率在长尾词汇上是分布偏移的糟糕代理。高频 token 的微小绝对变化被比率放大,低频 token 的巨大相对变化被比率掩盖。
DPPO 的尝试:用散度替代比率
DPPO(Divergence-aware PPO)注意到了这个问题,提出了一个改进:用绝对概率偏移替代比率。
具体来说,DPPO 定义信任域为:
$$|\pi_\theta(y_t|s_t) - \pi_{\theta_{old}}(y_t|s_t)| \leq \delta$$
即新策略对每个 token 的概率偏移不超过 $\delta$。这个定义直接衡量分布偏移,不受 token 原始概率大小的影响。"the" 和 "quark" 的偏移上限都是 $\delta$,公平了。
但 DPPO 用了一个硬掩码(hard mask):一旦 token 的偏移超过 $\delta$,它的梯度直接被置零。这就像一个二值开关——在信任域内,梯度正常传播;越出边界,梯度瞬间消失。
这种硬截断带来两个问题:
1. 梯度悬崖:token 刚好处于边界附近时,微小的新策略变化会导致梯度在"有"和"无"之间跳变,优化路径不光滑。 2. 无修正信号:一旦 token 越界,梯度被完全丢弃,模型没有动力把它拉回来。越界的 token 会一直越界,直到下一次策略更新重置信任域。
DRPO:把硬掩码换成软正则
DRPO(Divergence Regularized Policy Optimization)的核心改动一句话就能说清楚:把 DPPO 的硬掩码换成一个平滑的二次正则项。
具体来说,DRPO 定义每个 token 的正则权重为:
$$w_t = \min\left(1, \frac{\delta^2}{(\pi_\theta(y_t|s_t) - \pi_{old}(y_t|s_t))^2}\right)$$
当偏移 $|\Delta| \leq \delta$ 时(在信任域内),$w_t = 1$,梯度正常传播。 当偏移 $|\Delta| > \delta$ 时(越界),$w_t = \delta^2 / \Delta^2$,梯度按 $\delta^2 / \Delta^2$ 衰减。
这个设计有几个优雅之处:
1. 连续过渡,无梯度悬崖:从信任域内到域外,权重从 1 平滑衰减到 0,没有跳变。
2. 越界仍有修正信号:即使 token 越界,梯度只是衰减而非消失。模型仍有动力把偏移拉回来,而且偏移越大,拉回的力越强(因为 $w_t$ 随 $\Delta$ 增大而减小,但梯度方向仍指向减小偏移的方向)。
3. 自适应 token 概率:DRPO 进一步引入了 token 自适应的 $\delta$:
$$|r_t - 1| \leq \frac{\delta}{\mu(y_t|s_t)}$$
其中 $\mu(y_t|s_t)$ 是参考策略对 token 的概率。低频 token($\mu$ 小)获得更宽松的比率容差,高频 token($\mu$ 大)获得更严格的容差。这直接修正了 PPO 比率裁剪对长尾词汇的不公平。
一个直觉类比:限速 vs. 刹车
可以把三种方法类比成三种交通管理策略:
- PPO(比率裁剪):所有车辆限速 120 km/h,不管是卡车还是跑车。卡车在 120 km/h 已经危险了,跑车在 120 km/h 还很稳。一刀切的限速对跑车过严,对卡车过松。
- DPPO(硬掩码):根据车型设限速,卡车 80 km/h,跑车 200 km/h。但一旦超速,直接拉手刹——要么不刹,要么急刹,容易翻车。
- DRPO(软正则):根据车型设限速,超速后不是急刹,而是渐进式减速——越超越多,减速力越大。车辆始终保持在可控范围内,不会翻车。
数据说话:跨规模、跨精度的稳定性
DRPO 的实验设计很有说服力。作者在多个模型规模和精度设置上测试:
| 模型 | 精度 | PPO 成功率 | DPPO 成功率 | DRPO 成功率 |
|---|---|---|---|---|
| Qwen3-4B | BF16 | 73% | 85% | 89% |
| Qwen3-30B | BF16 | 61% | 78% | 84% |
| Qwen3.5-35B | BF16 | 58% | 74% | 81% |
| Qwen3-30B | FP8 | 42% | 65% | 76% |
两个趋势值得关注:
1. 规模越大,DRPO 的优势越明显:在 4B 模型上,DRPO 比 PPO 高 16 个百分点;在 35B 模型上,差距扩大到 23 个百分点。大模型的策略空间更复杂,长尾词汇更多,比率裁剪的缺陷被放大,DRPO 的散度正则优势也更突出。
2. FP8 精度下优势最大:FP8 量化引入额外的数值噪声,PPO 的比率裁剪对噪声更敏感(小数值的比率波动更大)。DRPO 的散度正则直接衡量绝对偏移,对量化噪声更鲁棒。在 FP8 设置下,DRPO 比 PPO 高 34 个百分点,比 DPPO 高 11 个百分点。
为什么这件事重要:RL 训练的"隐形天花板"
当前 LLM RL 训练的一个尴尬现实是:训练不稳定是常态,稳定才是例外。大量实践报告显示,PPO 训练 LLM 经常出现 loss 爆炸、KL 发散、策略崩溃等问题,需要反复调超参、改 reward、降学习率才能勉强跑通。
这种不稳定性的一个重要来源,就是信任域控制不当。PPO 的比率裁剪在分类任务(动作空间小、分布均匀)里工作得很好,但在 LLM 生成任务(词表大、分布长尾)里存在系统性偏差。DRPO 不是在"改进 PPO",而是在"修正 PPO 在 LLM 场景下的一个根本性适配错误"。
更深远地看,DRPO 代表了一种方法论转向:从"硬约束"到"软正则"。硬约束(裁剪、掩码、截断)在数学上简洁,但在优化上粗暴;软正则(连续权重、平滑衰减)在数学上稍复杂,但优化路径更光滑。这种转向在机器学习的其他领域也在发生——从 dropout 到 weight noise,从 early stopping to weight decay,从 hard attention to soft attention。RL 训练的"软化"或许只是时间问题。
一个未解的问题
DRPO 的 token 自适应 $\delta$ 依赖参考策略 $\mu(y_t|s_t)$,这个 $\mu$ 通常取 SFT 模型的概率分布。但 SFT 模型本身可能对某些 token 概率估计不准(尤其是领域专业词汇)。如果 $\mu$ 本身有偏差,DRPO 的自适应容差也会继承这个偏差。
论文没有深入讨论 $\mu$ 的选择对训练的影响,这可能是未来优化的方向——比如用动态更新的 $\mu$(EMA 平均)替代固定的 SFT $\mu$,或者根据 reward 信号自适应调整 $\mu$。
但作为一个"把 PPO 在 LLM 上的根本缺陷修补好"的工作,DRPO 已经迈出了关键一步。后续的 RL 训练框架(无论叫 PPO++ 还是 GRPO++),大概率都会吸收这个"软正则替代硬裁剪"的思路。
---
论文: Rethinking the Divergence Regularization in LLM RL 作者: Jiarui Yao, Xiangxin Zhou, Penghui Qi, Jiaxin Shi, Guotao Yang, Xinyu Zhang, Jiawei Wang, Juncheng Zhu, Siliang Tang 代码: 未开源(论文提到 "code will be released",截至发稿未公开)