ERPO:问题侧参考正则与任务重加权#
TL;DR#
本页内容7 个部分
1. 问题似然漂移与能力保留#
假设训练始终按同一分布抽取两道题,模型给它们的 log 概率却从 、 变为 、。抽题分布没有变,模型对题目文本的似然却变了。ERPO 要处理的是这种模型似然变化,而不是外部抽题频率的变化。
通常的 reference KL 约束回答分布,但模型对问题文本本身的似然也会随训练变化。ERPO 要约束后一种变化,并调整不同题目的任务权重。外部数据采样分布与模型对问题文本赋予的概率需要区分。
2. 给问题文本计算似然#
ERPO(Environment-Regularized Policy Optimization)包含两项修改:(1)在问题 token 上计算参考惩罚;(2)对各问题的任务项进行重加权。回答仍可由 GRPO、PPO 等更新器训练;改变的是正则的位置和问题间的任务权重。[1]
为复算这两项修改,沿用两道题的 log 概率,并假设每题只有一个有效问题预测位置。问题侧惩罚衡量似然偏移,问题权重则决定两题任务项的相对系数。
设训练集按固定分布 抽题,Actor 按 生成回答。即使训练集一直均匀抽样,模型赋给问题文本本身的概率仍可能变化。
若 ,其模型 log-likelihood 是 。它通过 teacher forcing(始终使用原文前缀,计算下一个实际 token 的概率)给已知问题文本打分,不需要模型重新生成一道题。
记模型诱导的问题分布为 ,用固定的 pre-RL 模型 作 reference。 的变化不是外部题目被抽到的次数变化。 ERPO 假设控制这种模型似然漂移有助于保留训练前的能力;已有实验支持这一设计,但它不是由 KL 定义自动推出的结论。[1]
3. 问题侧惩罚、任务权重及其计算#
3.1 在固定问题文本上计算惩罚#
训练仍从固定数据集抽题,使用 式经验替代目标。下面按问题 token 计算惩罚。对问题的第 个有效预测位置,令 ,单项为 。[2]
reference 对问题 token 的 log 概率固定;current 对相同 token 的 log 概率保留梯度。对该项求导,得到 。只对问题 mask 标记的有效 token 惩罚取平均,得到 。
设 current 对相同问题的 log 概率为 、,两个位置的 log-ratio 为 、。经验惩罚分别为 、。
第一题的 current 似然高于 reference,惩罚的导数系数为 。最小化该惩罚时,梯度下降提供降低第一题 current 似然的更新方向。第二题的 current 似然低于 reference,最小化该惩罚则提供提高其 current 似然的更新方向。两题等权平均后的 Query 惩罚约为 ,尚未乘正则系数。
逐 token 计算 后平均,与先将 log-ratio 求和再计算整题的 ,一般会得到不同的数值和梯度。每题恰有一个有效预测位置时,两种计算相同。
3.2 按参考模型似然计算静态权重#
ERPO 的第二部分是问题权重。静态配置用 reference 计算每题的负对数似然(negative log-likelihood,NLL) ,再算全数据集的均值 ,取:
在未触及裁剪上界时,reference 负 log-likelihood 较小的问题获得更大权重;静态权重不超过 2。静态权重预先固定,不随 current 更新,也不对它求导。[1]
在两道题的手算示例中,reference 的负 log-likelihood 分别为 、。假设数据集只有这两道题,则全数据集均值为 ,静态权重分别为 和 。
两题的任务项分别乘以 和 。若两题原本的任务梯度相同,第一题在任务项中获得三倍系数。问题权重调整任务项的相对系数,问题侧惩罚则约束模型相对 reference 的似然偏移。
若要精确地将抽题分布从 换为 ,精确 importance weight 应为 。上面的有界逆负 log-likelihood 只是依据 reference 的问题负 log-likelihood 构造的代理权重,并非精确密度比。各题不同的权重会改变题目间的优化取舍,不能说它完全保留均匀抽题目标。
3.3 将问题权重与参考惩罚合并#
把原更新器在题目 上的经验任务目标记为 ,用 控制问题侧正则强度。一批 道题的组合 loss 为:
这里要最小化。为展示机制,式中把 Query token 项先在每题内平均,再对题目平均;具体实现还需核对 mask、重复问题和全局计数。 可以采用组内 advantage 和 clipped ratio。问题权重与 Query 惩罚分别改变任务权重和正则对象。
继续两道题的静态权重算例。假设原更新器给出的任务目标为 、,取 。按题目权重聚合,;问题侧惩罚沿用已算出的 和 ,平均约为 。因此:
这里 、 是用于组合计算的假设输入,不是实验测量。两题的加权任务项分别为 和 ,对两题平均后各贡献 和 。Query 惩罚另加到 loss 上;求导时保留任务项与问题 token 正则项的梯度,静态题目权重固定。
4. 总体 Query-KL 与实际训练的区别#
4.1 总体 Query-KL 的定义#
总体层面的 Query-KL 为:
在归一化分布及可交换求导条件下,其梯度是 log-ratio 乘问题 score 的期望。它不直接包含回答的 。
这只是求导路径的区别。模型共享参数,更新问题似然也可能改变回答,因此不能假定两类梯度正交或回答完全不受影响。[1]
4.2 静态与动态配置的训练流程#
公开实现采用动态权重:用 current 的问题负 log-likelihood,在全局更新批次预计算均值,取停止梯度的 。这项计算不含静态公式的 裁剪;权重会随 current 改变。[2]
本例采用基于 reference NLL 的静态权重。若改用基于 current NLL 的动态权重,就需要重算 current NLL 和批次均值,再缓存停止梯度的权重。此时不能继续使用静态权重 和 。
静态配置先缓存 reference 权重;动态配置则在当前全局更新批次预计算问题 NLL。随后都照常生成回答、评分和构造 advantage;更新时加入问题 token 的 Query surrogate,并给任务项乘以停止梯度的问题权重。具体实现必须保留问题 token 的正则梯度,不能仍然屏蔽全部 prompt 项。
5. 正则对象比较与经验惩罚的局限性#
5.1 与回答侧正则比较#
ReCo 调整回答和 token 的梯度权重;ERPO 调整问题权重与正则对象。Query 惩罚替换的是回答侧的 reference KL;内部 PPO clipping 等约束仍可保留。
5.2 固定问题惩罚对总体 KL 的近似限制#
固定训练集上的 Query 惩罚,需要与总体 Query-KL 区分:经验 surrogate 不自动给出总体 reverse KL 的无偏梯度。 它实际约束的是观测问题的相对似然漂移。 的数值与梯度为什么要分别分析,见 KL Regularization。[1]
参考资料#
- Beyond the Stability–Exploration Dilemma(阿里,2026). §4、附录 F–I:Query-KL、固定数据 surrogate 与有界问题权重。
- ERPO 官方实现(commit
8891536). actor_worker.py:动态问题权重;同文件prepare_backward_batch与loss_func负责预计算和 prompt-mask KL。此版本与论文静态权重不同。