PivotRL:基于回合筛选的局部强化学习#

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

TL;DR#

本页内容7 个部分

PivotRL:筛选示范回合、验证新动作并局部更新

1. 完整任务训练与局部回合优化#

假设示范中的某个工具调用回合有四次探测,结果为一成功、三失败。它已经出现可接受动作,也仍有失败结果可比较。能否固定这段已有历史,只训练当前回合,而不反复从任务开头执行?

训练工具型 Agent,常见的两种做法各有代价:

  1. SFT(Supervised Fine-Tuning,监督微调) 直接学习示范中的下一步。相对完整任务交互,其训练成本较低,但示范标签不能直接评价替代动作的功能正确性。
  2. 端到端 RL 让模型从头完成任务,再按最终结果更新。长任务需要反复执行多轮工具交互。

局部强化学习尝试利用已有示范,仅优化需要改进的回合。这需要处理两个问题:(1)部分回合的采样结果全成功或全失败,组内缺少得分差异;(2)某一步可能有多种正确做法,只奖励与示范完全相同的文本会误罚有效动作。

PivotRL 的对应处理是:(1)筛选探测样本同时包含成功与失败、且样本成功率低于阈值的回合;(2)用验证器判断新动作是否可接受。[1]

2. 回合状态与功能验证#

这里的 pivot(训练切入点) 是示范轨迹中的一个回合状态。状态 ss 包含某次模型调用之前的完整历史;动作 aa 是这次调用生成的整段 assistant 内容,可以包含工具调用。它不是单个 token,也不是从这里到任务结束的整条轨迹。

给定状态 ss,用 M(s)\mathcal M(s) 表示验证器认可的动作集合,奖励定义为 R(s,a)=1[a∈M(s)]R(s,a)=\mathbf1[a\in\mathcal M(s)]。只要动作达到当前回合的要求就得 11,不要求与示范逐字相同。验证器可以检查工具名称、参数规则或功能等价性,具体接受范围由任务决定。[1]

例如,示范用一个搜索表达式查资料,另一种表达式也找到所需信息,就可以同样得分。但当前回合的功能接受条件必须由验证器明确给出,不能仅由文本相似性判断。

训练目标是在选定的历史上提高可接受动作的概率,同时用 reference KL 限制偏离。

3. 筛选回合并重新采样更新#

3.1 先筛出有比较信号的回合#

先固定参考策略 πref\pi_{\mathrm{ref}}。对每个候选状态 ss,用该策略采样 m>1m>1 个局部动作并评分,得到 R1,…,RmR_1,\ldots,R_m。用样本均值和总体方差描述该回合:

μ^(s)=1m∑i=1mRi,σ^2(s)=1m∑i=1m(Ri−μ^(s))2.\hat\mu(s)=\frac1m\sum_{i=1}^{m}R_i,\qquad \hat\sigma^2(s)=\frac1m\sum_{i=1}^{m}\left(R_i-\hat\mu(s)\right)^2.

设 λdiff\lambda_{\mathrm{diff}} 为难度阈值,保留同时满足 σ^2(s)>0\hat\sigma^2(s)>0 与 μ^(s)<λdiff\hat\mu(s)<\lambda_{\mathrm{diff}} 的状态。第一条要求这批尝试中既有成功又有失败,第二条要求样本成功率低于指定阈值。筛选在正式更新前完成,得到固定的 pivot 状态集合。[1]

为什么排除同分组?因为组内 advantage 要减去均值。全部得 11 或全部得 00 时,每条的 Ri−RˉR_i-\bar R 都是 00,任务项便没有更新信号;若另有 KL 项,KL 仍可能产生梯度。

二值奖励还满足 σ^2=μ^(1−μ^)\hat\sigma^2=\hat\mu(1-\hat\mu),因为 Ri2=RiR_i^2=R_i。因此,方差为正恰好对应样本中同时包含成功与失败样本。难度阈值是在此基础上进一步筛选参考策略样本成功率较低的回合,并不等于单纯选择方差最大的回合。

3.2 三个候选回合的筛选计算#

下面是手算示例。每个候选状态先采样 m=4m=4 次,取难度阈值 λdiff=0.5\lambda_{\mathrm{diff}}=0.5:

候选回合 四次局部奖励 均值 方差 是否保留
甲 [1,1,1,1][1,1,1,1] 11 00 否:没有组内比较信号
乙 [1,0,0,0][1,0,0,0] 0.250.25 0.18750.1875 是:同时包含成功与失败样本,均值低于阈值
丙 [0,0,0,0][0,0,0,0] 00 00 否:这批采样仍没有成功样本

乙的方差是 σ^2(s乙)=(0.752+3×0.252)/4=0.1875\hat\sigma^2(s_{\text{乙}})=\bigl(0.75^2+3\times0.25^2\bigr)/4=0.1875。保留的是乙的历史状态,不是只保存那条成功动作供后续模仿。

3.3 在选定历史上重新采样并更新#

筛选阶段使用 reference 的探测样本,确定用于训练的历史状态。更新阶段用 old 在这些状态下重新生成动作并评分,再优化动作分布。探测样本用于状态筛选,不直接充当后续训练的固定监督标签。

对选中的状态 ss,用本批旧策略 πold\pi_{\mathrm{old}} 采样 K>1K>1 个动作 aia_i,重新由验证器评分,按组均值 Rˉ\bar R 和总体标准差 σR\sigma_R 构造 A^i=(Ri−Rˉ)/(σR+δ)\hat A_i=(R_i-\bar R)/(\sigma_R+\delta)。δ>0\delta>0 只作除零保护。

设 πθ\pi_\theta 为正在更新的策略,0<ϵ<10<\epsilon<1 为裁剪宽度,β≥0\beta\geq0 为 reference KL 强度。用 ri=πθ(ai∣s)/πold(ai∣s)r_i=\pi_\theta(a_i\mid s)/\pi_{\mathrm{old}}(a_i\mid s) 表示这个完整回合动作的概率比。固定状态的一组动作使用以下回合级数学目标:

JPivotRLs(θ)=1K∑i=1Kmin⁡ ⁣(riA^i,clip⁡(ri,1−ϵ,1+ϵ)A^i)−βDKL ⁣(πθ(⋅∣s)∥πref(⋅∣s)).J_{\mathrm{PivotRL}}^{s}(\theta)=\frac1K\sum_{i=1}^{K}\min\!\left(r_i\hat A_i,\operatorname{clip}(r_i,1-\epsilon,1+\epsilon)\hat A_i\right)-\beta D_{\mathrm{KL}}\!\left(\pi_\theta(\cdot\mid s)\Vert\pi_{\mathrm{ref}}(\cdot\mid s)\right).

再对抽到的 pivot 状态平均,并最大化目标。任务项仍是 GRPO 式组内比较与裁剪;主要变化是训练历史来自筛选后的示范回合,奖励来自局部验证器。old 随新批次刷新,reference 保持固定。[1]

第 ii 个完整动作包含 TiT_i 个有效生成 token,其概率为 πθ(ai∣s)=∏t=1Tiπθ(ai,t∣s,ai,<t)\pi_\theta(a_i\mid s)=\prod_{t=1}^{T_i}\pi_\theta(a_{i,t}\mid s,a_{i,<t})。因此这里的 rir_i 是完整动作的概率比,没有取 TiT_i 次方根,不能与 GSPO 的几何平均 ratio 混用。具体训练器若进一步采用逐 token surrogate 或长度平均,应另外列出;本页按上述回合级目标计算。

3.4 选定历史下的局部更新计算#

训练时从乙的历史重新采样四个动作,假设新的奖励为 [1,1,0,0][1,1,0,0]。这与筛选时的四次采样是两批数据。新组均值为 0.50.5、标准差为 0.50.5;忽略极小的除零保护,得到 A^=[1,1,−1,−1]\hat A=[1,1,-1,-1]。

取 ϵ=0.2\epsilon=0.2,假设更新后的完整动作 ratio 为 [1.1,1.3,0.9,0.7][1.1,1.3,0.9,0.7]。本例先取 β=0\beta=0,单独核对任务项:

动作 A^i\hat A_i riA^ir_i\hat A_i 裁剪后的乘积 两者取较小值
1 +1+1 1.11.1 1.11.1 1.11.1
2 +1+1 1.31.3 1.21.2 1.21.2
3 −1-1 −0.9-0.9 −0.9-0.9 −0.9-0.9
4 −1-1 −0.7-0.7 −0.8-0.8 −0.8-0.8

任务目标为 JPivotRLtask=(1.1+1.2−0.9−0.8)/4=0.15J_{\mathrm{PivotRL}}^{\mathrm{task}}=(1.1+1.2-0.9-0.8)/4=0.15,对应要最小化的任务 loss 为 −0.15-0.15。

动作 2 的正优势项与动作 4 的负优势项已分别进入裁剪常数分支;这两项不再提供继续沿该方向变化的任务激励。动作 1 仍获正的 score 权重,动作 3 仍获负的 score 权重。若加入 KL,还需另算其值与梯度。

4. 功能奖励为何能保留多种正确做法#

先固定一个状态,暂时忽略有限组采样与 clipping,只看“期望功能奖励减 reverse KL”的目标。在动作可枚举、reference 对所有动作给正概率、β>0\beta>0 的条件下,其最优分布为:

π∗(a∣s)=πref(a∣s)exp⁡ ⁣(R(s,a)/β)∑bπref(b∣s)exp⁡ ⁣(R(s,b)/β).\pi^*(a\mid s)=\frac{\pi_{\mathrm{ref}}(a\mid s)\exp\!\left(R(s,a)/\beta\right)}{\sum_b\pi_{\mathrm{ref}}(b\mid s)\exp\!\left(R(s,b)/\beta\right)}.

这个形式来自带概率归一化约束的求导,推导见 Reference KL。在这里,所有可接受动作的未归一化概率都乘 e1/βe^{1/\beta},其他动作乘 11,再统一归一化。只要可接受与不可接受动作原本都有正概率,可接受集合的总概率就提高;集合内部两个动作的概率比仍与 reference 相同。[1]

因此,功能奖励提高可接受动作集合的总概率,同时允许集合内部保留多个不同动作。这个结论针对上述理想化分布优化;共享参数的实际训练是否保留其他任务能力,还需要评测。

5. 方法比较与局部训练的局限性#

方法 训练历史来源 主要反馈
SFT 示范中的每段历史 提高示范下一步的似然
端到端 RL 问题开头,并经历模型自己的后续历史 完整任务结果
ARPO 从头采样,并在工具反馈后增加后续分支 分支完成后的任务结果
PivotRL 筛选后的示范回合历史 当前动作是否通过局部验证器

PivotRL 的状态集来自固定示范,但动作与反馈随训练持续收集,因此这里仍是在线策略更新。“预先筛选回合”不等于“只用固定回答做离线训练”。

局部动作正确,也不保证最后任务成功。例如,软件工程设置中的一种验证器只检查工具调用名称,不检查参数或最终补丁;该验证器提供计算成本较低的局部信号,最终修复质量仍由完整任务评测判断。[1]

有限次筛选也会漏掉有价值的状态:某回合四次都失败,不表示该状态下的真实成功概率为零。策略更新后,原来筛选状态的成功率可能改变,因此固定集合未必继续满足原筛选条件。模型训练时主要看到示范历史,对自己在完整任务中产生的新历史是否也能处理,仍需端到端验证。

参考资料#

  1. PivotRL: High Accuracy Agentic Post-Training at Low Compute Cost(2026,v1). 方法与理论 §3、验证器与训练设置,附录 A.2:回合筛选、功能奖励、局部 GRPO 目标及其成立条件。