训崩的锅也许不在模型:ERPO 把 KL 正则从"答案"搬到了"题目"上

跑 GRPO 训数学推理的时候,你有没有见过这种怪象:训练集 reward 一路走高,评测集准确率却在某个 step 突然跳水,怎么调 KL 系数都救不回来?

这篇被 EMNLP 2026 录用的论文(arXiv:2608.23311)给出了一个挺反直觉的诊断:问题可能不在模型怎么答,而在模型怎么读题。作者发现,主流做法里那个约束输出分布的 Policy-KL 正则,其实一直漏掉了一个悄悄漂移的变量——训练 query 本身在模型眼里的分布。他们把这个漂移管住之后,AIME、MATH500 这些基准上不但分数涨了,高温采样和长训稳定性也肉眼可见地变好。

说实话,看到"给输入做 KL"这个思路我第一反应是:query 是固定的训练集,有什么好飘的?看完 Figure 1 我才意识到自己想简单了。


核心摘要:RL 训 LLM 一直有个稳定性-探索的两难——Policy-KL 加太强,模型不敢探索;不加,优化没有漂移刹车。ERPO(Environment-Regularized Policy Optimization)的做法是把正则从动作侧搬到输入侧:给"模型给训练题分配的似然分布"加一个 Query-KL,再配上一个由参考模型预先算好的 per-query 权重。六个数学推理基准上,ERPO 替换掉标准 Policy-KL 后 Avg@32 平均比 GRPO 高 6.2 个点(MATH500 单点最高 14.9 个点),train-eval gap 收窄约一半,而且不用任何额外前向传播。这不是又一个堆 trick 的 GRPO 变体,而是对"RL 环境到底是什么"的一次重新定义,值得细读。

论文信息 - 标题:Beyond the Stability-Exploration Dilemma: Environmental Regularization for LLM Policy Optimization - 作者:Xianlei Zhou, Xiangdi Meng, Yu He(通讯), Tianyu Qi, Shuyan Guan, Xianli Zhang, Jian Zhang, Xin Li, Qika Lin, Jun Liu - 机构:AMAP / Alibaba Group、JD.com、西安交通大学、北京师范大学、新加坡国立大学 - 链接:https://arxiv.org/abs/2608.23311 (EMNLP 2026 主会,代码开源在 AlibabaResearch/ERPO)


🎯 问题:Policy-KL 的两难,和一个没人管的漂移量

先把背景摆清楚。GRPO、PPO 这些 RLHF 流水线里,KL 正则是标配——拉住当前策略别偏离参考模型太远,防止训崩。这个 KL 算的是输出侧的:给定 query,模型生成 response 的分布 \(\pi_\theta(o|q)\) 相对参考分布 \(\pi_{\theta_0}(o|q)\) 别跑太远。

这就带来一个经典两难。KL 系数调大,模型的回答被拽向参考分布,探索预算被吃掉,RL 变成温吞的 SFT;调小或者干脆去掉,优化过程就没有了显式的漂移控制,reward hacking 和崩溃随时可能来。过去一年 GRPO 的各种变体——加熵正则的、改 clip 的、调优势估计的——基本都在动作侧打转。

ERPO 的作者换了个角度看问题:即使训练题目一个字没变,模型"看到"的训练环境也一直在变

为什么?因为模型对每道题的似然 \(P_\theta(q)\) 随参数 \(\theta\) 一起在动。一道题在 pre-RL 模型眼里是"常见题",训了 100 步之后可能变成"罕见题"。作者把模型诱导的 query 分布记作 \(\rho_\theta(q) = P_\theta(q)\),它相对参考分布 \(\rho_{\theta_0}\) 的漂移就定义为:

\[\text{EnvShift}(\theta) := \text{KL}(\rho_\theta \| \rho_{\theta_0})\]

这个视角其实有经典 RL 的根:初始状态分布或者转移核随时间漂移,就是典型的非平稳环境。模仿学习里的协变量偏移(DAgger 那一路工作治的就是这个病)也是同一个教训。有意思的是,之前也有工作注意到 prompt 分布这件事——比如做 prompt 采样的 EVA、做数据重加权的 Align-Pro——但主流 RLHF 流水线里,没有人直接约束过 query 分布本身

光说没用,论文 Figure 1 给的证据很直接:

Figure 1:GRPO 训练中的两条 KL 曲线

Figure 1:标准 GRPO 训练过程中,深色的 Query-KL 从 0 一路爬到接近 1.0,而浅色的 Policy-KL 全程贴在低位(不到 0.1)。动作侧被正则摁得死死的,输入侧却在裸奔。

这张图我读了两遍。Policy-KL 被控制住的时候,Query-KL 涨了将近一个数量级——说明"约束输出 KL 就能稳定整个训练"这个默认假设,在输入端根本不成立。这就是论文要填的坑。

🏗️ 方法:Query-KL + per-query 权重,两个部件各司其职

ERPO 的核心想法一句话能讲完:正则化模型给题目分配概率的方式,而不是模型生成答案的方式

Figure 2:GRPO 与 ERPO 计算流对比

Figure 2:上方绿色是 ERPO 的计算流——用 \(D_{KL}(query)\) 度量 query 分布漂移做环境正则,同时用 \(w_B(q) = f(\rho_{\theta_0}(q))\) 在 query 层面给优势加权;下方粉色是 GRPO 的老路——只对输出分布算 \(D_{KL}(policy)\)。注意 ERPO 的输入来自同一组前向传播,没有额外开销。

Query-KL:只管输入,不碰输出

Query-KL 的定义很朴素:

\[\mathcal{R}_{query}(\theta) := \text{KL}(\rho_\theta \| \rho_{\theta_0}) = \mathbb{E}_{q \sim \rho_\theta}\left[\ell_\theta(q) - \ell_{\theta_0}(q)\right]\]

其中 \(\ell_\theta(q) = \log P_\theta(q)\) 是模型对整条 query 的对数似然(把 query 当成一个自终止的 token 序列,自回归地算)。

妙处在梯度上。论文的 Proposition 1 给出了闭式:

\[\nabla_\theta \mathcal{R}_{query}(\theta) = \mathbb{E}_{q \sim \rho_\theta}\left[\left(\ell_\theta(q) - \ell_{\theta_0}(q)\right) \cdot \nabla_\theta \ell_\theta(q)\right]\]

证明的关键一步是:展开后第二项求和会因为 \(\rho_{\theta_0}\) 不依赖 \(\theta\)、且 \(\rho_\theta\) 是概率分布而塌缩成 \(\nabla_\theta(1) = 0\),剩下的部分用 log-derivative trick 一整理就是这个形式。

等等,这个式子值钱在哪?注意看:梯度严格经由 \(\nabla_\theta \ell_\theta(q)\) 流动,策略梯度估计器里那个 response score function \(\nabla_\theta \log \pi_\theta(o|q)\) 根本没出现。也就是说,这个正则项对响应分布不施加任何直接梯度压力——它只管"别让你对题目的看法飘太远",不碰"你怎么答题"。开头说的稳定性-探索两难,就是这么被绕开的:稳定和探索分别由输入侧和输出侧各自负责,不再互相抢预算。

这个性质有个挺重要的推论:Policy-KL 那种"正则越强、探索越弱"的耦合,在 QKL 这里不存在。

Per-query 权重:把训练分布往参考分布上拽

光有约束还不够。ERPO 的目标其实是让模型在参考 query 分布 \(\rho_{\theta_0}\) 下最大化期望奖励,而训练数据是均匀采的。中间的差距用重要性权重补:

\[w^*(q) = \frac{\rho_{\theta_0}(q)}{\rho_{train}(q)}\]

均匀采样下 \(w^*(q) = N \cdot \rho_{\theta_0}(q)\),所以只需要参考模型对每个 query 的似然排序。实现上作者用了一个简单变换:先算每条 query 的负对数似然 \(s_i = -\log p_{\theta_0}(q_i)\),再取均值的倒数比 \(\tilde{w}(q_i) = \bar{s}/s_i\),最后 clip 到 \([0, 2]\)

直觉是什么?参考模型觉得"顺手"的题(NLL 低),权重高;觉得"别扭"的题,权重压下去。这类别扭的题往往诱导低概率响应,梯度方差大,是训练不稳定的一个来源。

最终训练损失长这样:

\[\mathcal{L}_{ERPO}(\theta) = -\mathbb{E}_{q \sim \rho_{train},\, o \sim \pi_\theta(\cdot|q)}\left[w(q)\, g(q,o)\right] + \alpha\, \mathcal{R}_{query}(\theta)\]

即插即用:三步接入现有流水线

我觉得这篇论文在工程上最讨喜的一点是改造成本几乎为零。它给了一个通用 surrogate,GRPO、PPO、REINFORCE 风格的目标都能套。以 GRPO 为例:

\[\mathcal{L}_{ERPO\text{-}GRPO}(\theta) := -\frac{1}{m}\sum_{q \in B} \frac{w_B(q)}{K} \sum_{o \in \mathcal{G}(q)} A^{GRPO}_\theta(q,o) \cdot \log \pi_\theta(o|q) + \alpha\, \hat{\mathcal{R}}_{query}(\theta)\]

接入只要三步:在整个数据集上用参考模型预计算一遍 \(\ell_{\theta_0}\) 并缓存;把原来的均匀权重 \(1/m\) 换成 \(w_B(q)/m\);损失里加上 \(\alpha \hat{\mathcal{R}}_{query}\)\(\ell_\theta(q)\) 直接从现有 PG 前向传播里读,不需要额外 forward,不改架构。EasyR1 这类框架里改几十行代码的事。

🧪 实验:分数、稳定性、抗 hacking,三线都有交代

实验配置:Qwen2.5-Math-7B 和 Qwen2.5-32B,MATH 数据集 Level 3-5 约 8.5K 题,EasyR1 框架,每题采 8 条响应、温度 1.0,rollout batch 512、update batch 128,训 240 步。评测覆盖 AIME24/25、AMC、MATH500、Minerva、OlympiadBench 六个基准,温度从 0.1 扫到 1.5 聚合。baseline 是带默认 KL 系数 0.01 的 vanilla GRPO。

主实验:六个基准全面压制

Figure 3:六个基准上的 Avg@32

Figure 3:六个数学推理任务上的 Avg@32(温度聚合)。紫色 ERPO 在全部六项上领先,Math500 上从 GRPO 的 52.8 拉到 67.7。

方法 AIME24 AIME25 AMC MATH500 Minerva Olympiad 平均
Base 8.7 3.0 24.6 34.0 5.8 9.9 14.3
GRPO 17.4 7.2 39.8 52.8 20.7 26.6 27.4
ERPO 21.8 11.0 47.8 67.7 21.4 31.6 33.6

(Avg@32,单位 %。Pass@32 和 Pass@1 趋势一致:ERPO 平均 61.1 / 33.2,GRPO 57.5 / 27.5。)

平均涨 6.2 个点,MATH500 单点 14.9 个点——这个幅度在已经卷得很厉害的数学 RL 赛道上是能打的。更难得的是提升不是来自某个单一基准的运气,六项里有五项拉开明显差距。

训练动态:Query-KL 被摁住了

Figure 4:ERPO 训练动态

Figure 4:四个指标的训练曲线(深色 ERPO,浅色 GRPO)。左边第一幅最关键:GRPO 的 Query-KL 一路冲到 1.0,ERPO 全程压在 0.2 以下;准确率曲线上两者最终收敛位置接近但 ERPO 更平滑。

两条训练曲线训练集采样准确率其实差不多——说明 ERPO 不是"学得更多",而是"学得更稳"。差别在漂移轨迹上:GRPO 的 query-level KL 比 policy-level 高出一个数量级,ERPO 把两边都摁住了。

长训:崩溃来得更晚、更轻

Figure 5:1000 步长程训练动态

Figure 5:扩展到约 1000 步的长程 RL。GRPO 在 400 步附近 Entropy Loss 和 Policy-KL 突然飙升、准确率从 0.85 跌到 0.5 附近;ERPO 同期基本平稳,直到 800 步后才开始出现类似症状。

这里要说句公道话:ERPO 不是崩溃免疫。图里看得很清楚,800 步之后它的熵也会突增、采样能力也会受损。论文自己也承认这一点。但崩溃从 400 步推迟到 800 步,对实际训练来说等于把可用训练窗口翻了一倍——这是实打实的工程价值。

消融:两个部件各管什么

Table 2 的消融做得比较干净(MATH500,不同温度下的 Pass@1):

配置 T=0.1 T=0.6 T=1.0 T=1.5 ≤1.0 均值 1.2-1.5 均值
Baseline 52.4 46.8 32.8 0.4 44.4 6.2
GRPO 66.8 68.4 73.8 0.4 68.8 12.5
GRPO + w(s) 78.2 76.8 71.2 7.6 76.1 23.8
GRPO + Query-KL 81.6 81.6 79.0 2.6 80.9 38.0
ERPO(α=1e-2) 79.4 80.6 75.2 8.6 78.7 37.9
ERPO(α=5e-2) 78.8 81.0 76.0 15.0 79.0 43.4

几个值得抠的点:

  • Query-KL 是主引擎。只用 QKL 替换 Policy-KL(其他全不动),低温区已经冲到 80.9,论文报告相对 GRPO 平均提升 15.9 个点。反过来,把所有 KL 约束全去掉,训练直接不收敛——所以"正则不需要了"这种解读是错的,是正则要换位置。
  • 权重 w(s) 是稳定器。它把高温区的方差压下去(看 1.2-1.5 那列:GRPO 12.5 → 加权后 23.8),跟 QKL 是互补关系。
  • α 有调参空间。α=5e-2 时高温区从 37.9 升到 43.4,但低温区略降。作者承认没做系统搜索,默认取 1e-2 是为了公平对比。

Table 3 的机制分析把"为什么互补"讲清楚了:

方法 Query-KL Policy-KL Entropy
GRPO 0.968 0.060 0.506
GRPO + w(s) 0.593 0.011 0.278
GRPO + Query-KL 0.004 0.100 0.567
ERPO 0.083 0.073 0.424

只用 QKL 时策略熵最高(0.567)——探索确实被保留了,QKL 自己不去摁输出;只用 w(s) 时熵最低但 Policy-KL 也最小——权重通过降方差间接稳住了输出端。ERPO 取中间态:Query-KL 从 0.968 压到 0.083,同时熵保持在健康水平。两个部件的分工,数字上对得上论文的说法。

Figure 7:MATH500 上各温度的 Pass@1 曲线

Figure 7:(a) 各方法随温度变化的 Pass@1。Base 和 GRPO 在温度过 1.0 后断崖式下跌,ERPO(橙色)和 GRPO+Query-KL(粉色)的曲线一直撑到 1.2 才缓慢下滑;(b) 不同 α 的对比,α=5e-2 在高温区最抗跌。

这张图是"高温稳定性"最直观的证据。实际部署里采样温度调到 1.0 以上是常事(比如要多样性做 best-of-n),GRPO 训出来的模型在这个区间基本是废的,ERPO 还能维持六七成的通过率。

Reward hacking:train-eval gap 收窄一半

Appendix C 的量化我挺喜欢。GRPO 在 Step 240 出现了典型的 reward hacking:评测准确率从约 75% 骤降到 58.4%,训练集指标却一切正常。ERPO 全程没出这种事,train-eval 平均差距从 GRPO 的 6.47% 收窄到 3.14%,降了约 51%

这个结果是"环境漂移"理论最有力的旁证:如果 train-eval gap 真的来自模型对训练题分布的过度拟合(漂移的 query 分布让模型在训练题上过拟合),那把 query 分布钉住,gap 自然收窄。数字确实对上了。

另外作者还在 DAPO、RLOO 上做了迁移验证:DAPO+ERPO 到 78.4(涨 10.24),RLOO+ERPO 到 79.56(涨 2.28),32B 模型上 ERPO 到 84.6(涨 2.98)。不是 GRPO 专属补丁,这点对"环境正则化是个通用概念"的立论很重要。

🤔 我的判断:视角的价值大于数字本身

这篇论文我觉得最值钱的不是那 6.2 个点,而是它把一个被默认忽略的量——query 分布漂移——摆上了台面,并且给了干净的度量(EnvShift)和可行的控制手段。Proposition 1 的梯度解耦性质是真正的理论亮点:输入侧正则不消耗输出侧探索预算,这个 argument 一旦成立,"稳定性-探索 trade-off"这个叙事本身就要改写。

但也有几个地方要泼点冷水。

实验面偏窄。 只有数学推理、只有 Qwen 系。数学任务有精确的 verifiable reward,是最不容易 hacking 的场景之一;换到 reward model 打分的通用对齐场景,query 漂移和 reward hacking 的耦合关系还成不成立,得打问号。

A1 假设是个前提不是定理。 "保持 query 分布对齐参考分布能保留泛化能力"——实验支持,但如果某次 RL 的目的就是要让模型适应新的输入分布呢?QKL 会不会反而成了阻力?论文没讨论这种场景。

query 似然的成本会随数据规模变。 预计算 \(\ell_{\theta_0}\) 是线性的,8.5K 题无所谓,但 RLHF 数据上百万条时这一步和 K3 风格 surrogate 的估计偏差都得重新评估。说实话这块我自己也没完全想清楚,mini-batch 估计的 QKL 在大数据集上方差表现如何,论文给的证据有限。

跟同期工作比,EVA 做 prompt 采样优化、Align-Pro 做数据重加权,都算"意识到 prompt 分布很重要"的一派,但 ERPO 是第一个把 query 漂移形式化成 KL 正则、并且证明梯度性质干净到可以无损替换 Policy-KL 的。从"启发式调数据"到"显式环境正则化",这个 step 是实质性的。

📝 收尾

如果你在跑 GRPO 类的数学 RL,我的建议很直接:把 ERPO 那两个改动(缓存 query 似然 + QKL 项 + per-query 权重)抄过去试试,改造成本低,消融里"只加 QKL"那一行就已经值回票价。如果你在训长程 RL 或者部署时要开高采样温度,这篇几乎必读——Figure 5 和 Figure 7 那两条曲线就是你未来会踩的坑。

更值得记住的是那个视角:RL 的环境从来不只是 reward function,模型眼里的输入分布也是环境的一部分,而且它一直在动。下一次再看到"训练崩了"的时候,除了查 reward 和 KL,也许该先画一条 Query-KL 曲线看看。


参考资料 - 论文:https://arxiv.org/abs/2608.23311 - 代码:https://github.com/AlibabaResearch/ERPO


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我