ARPO:在工具反馈后分支探索#
TL;DR#
本页内容7 个部分
1. 从头采样为什么会重复计算#
假设模型正在用搜索工具回答一个问题。它已经生成了搜索请求,也收到了工具结果;接下来可以选择不同的后续方案。若每条轨迹都从问题开头重新生成,就会重复生成前面的内容,并执行相同的工具调用。
ARPO(Agentic Reinforced Policy Optimization)复用已有历史,从工具反馈后生成多个后续分支。每条分支继续执行,直到得到完整回答和最终任务评分。这样,部分采样预算可以用于比较同一工具反馈之后的不同方案。[1]
以四条路径为例:甲、乙、丙共享搜索前后的已有历史,再分别生成后续内容;丁从问题开头独立生成。
ARPO 需要处理两个问题:(1)在哪里增加分支;(2)不同分支的最终结果怎样影响共享前缀。 前者决定怎样采样,后者决定怎样更新策略。默认更新仍使用 GRPO 的组内优势与裁剪目标。[1]
2. 根据熵变化选择分支位置#
2.1 分支预算与生成历史#
对同一个问题,设最终收集 条完整轨迹。先从问题开头启动 条,将剩余 条轨迹预算用于中途分支。本例取 、:一条初始路径扩展为甲、乙、丙,另一条完成为丁。
分支沿用已经生成的历史,只重新生成后续部分,不重复执行前面的工具调用。达到轨迹预算后停止增加分支,已有路径继续执行到结束。若已有路径全部结束而预算尚未用完,则补充从头采样。[1]
下面用 表示第 个模型生成位置之前的完整历史,包括模型生成内容与工具结果。 是本批采样使用的策略。工具结果属于环境输入,不作为模型动作计算策略 loss。
2.2 初始窗口与工具反馈后窗口的熵差#
ARPO 用下一个 token 分布的熵衡量生成的不确定性。若词表大小为 ,第 个生成位置的熵为:
熵较大,表示概率分散在更多候选 token 上。这里计算的是整个候选分布的熵,不是实际采到的那个 token 的负 log 概率。
先记录从问题开头生成的前 个位置的熵,作为初始参照;每次工具返回后,再记录紧接着生成的 个位置。下面用两个窗口的平均熵之差表示变化,把固定归一化尺度并入系数 :
这里的参照是轨迹开头的初始窗口,不是每次工具调用之前的相邻窗口。 表示工具返回后的窗口平均熵高于初始窗口。
2.3 分支规则与一次判定#
设 为基础分支分数, 控制熵变化的影响, 为阈值。有剩余轨迹预算且 时,增加后续分支;否则沿原路径继续。 分支分数用于阈值判断,不必是落在 的概率。[1]
在手算示例中,初始窗口的平均熵为 ,某次工具返回后的窗口平均熵为 ,于是 。取 、、,此时 ,因此预算允许时增加分支。假设完成本轮采样后得到甲、乙、丙、丁四条轨迹。
熵变化只决定是否增加采样,不判断路径是否正确。分支分数不是任务奖励,也不直接进入 advantage;策略更新使用完整轨迹的最终评分。
3. 用最终评分更新共享前缀#
3.1 四条轨迹的评分与优势#
假设甲、乙成功,丙、丁失败,最终分数为 。这是用于解释更新的二值评分示例,不是实际实验结果。
本页用 分数说明计算。实际任务可以另设正确性、格式和工具使用奖励;这些评分选择与分支机制应分别比较。[1]
第 条轨迹的最终分数记作 。沿用 GRPO,在同题的 条轨迹中计算均值 与总体标准差 ,再得到组内优势 ,其中 用于除零保护。
本例的均值为 ,总体方差为 ,标准差为 。忽略极小的除零保护,各条轨迹的优势为:
| 轨迹 | 与其他轨迹的关系 | 最终分数 | |
|---|---|---|---|
| 甲 | 与乙、丙共享前缀 | 1 | |
| 乙 | 与甲、丙共享前缀 | 1 | |
| 丙 | 与甲、乙共享前缀 | 0 | |
| 丁 | 从头独立生成 | 0 |
3.2 默认方式:保留各条轨迹的优势#
ARPO 默认采用 soft assignment(隐式合成):每条完整轨迹分别使用自己的 计算 GRPO loss,不预先替换共享前缀的优势。[1]
甲、乙、丙的同一个前缀 token 出现在三条完整轨迹中。它们在这个位置具有相同的历史和动作,因此使用同一个条件概率。计算梯度时,这三份训练项的贡献相加;分支之后各自生成的位置,只计入所属轨迹的训练项。
3.3 一次共享 token 的梯度计算#
为单独比较这些贡献,假设每条轨迹恰有 个有效模型 token,轨迹数为 。当前策略 与采样策略 相同,因此 token 的概率比都为 ,尚未触发裁剪。本例只计算任务项,忽略参考 KL 惩罚。
GRPO 先对一条轨迹的有效 token 平均,再对四条轨迹平均。因此,在上述条件下,每个 token 的 log 概率梯度都乘以该轨迹的优势再除以 。甲、乙各贡献 ,丙贡献 。
取甲、乙、丙共享的某一个前缀 token。三份训练项使用相同的 log 概率梯度,但系数有正有负。将这些系数相加,得到:
丁没有这段相同的历史,不计入该共享 token 的三份贡献。各分支独有 token 的系数,则依次为 。
最大化任务目标时,共享 token 的 log 概率梯度得到正系数;成功和失败的后续路径分别得到正、负系数。这描述当前采样数据上的任务梯度,不能据此保证更新后每个 token 的实际概率变化。
4. 共享梯度的推导与显式分配比较#
4.1 完整任务目标与参考约束#
只计模型生成的有效 token。令第 条轨迹包含 个这样的 token, 是其中第 个 token, 是生成它时的完整历史。它的概率比为 。令 为裁剪宽度。固定采样数据和 后,默认任务目标为:
对每条轨迹内的 token 平均, 再对完整轨迹平均。等长算例中的系数 来自 。
参考约束另外加入:整体最大化 ,其中 是所选 reference KL 采样惩罚的平均, 控制其强度。这里概率比的分母使用 old,参考惩罚才使用 ref;采样惩罚及其梯度见 KL Regularization。若训练程序最小化 loss,则对上述完整目标取负号。[1]
4.2 将共享位置的梯度相加#
设某个前缀 token 被 条轨迹共享,并将这些轨迹编号为 。它们在该位置有相同的历史 、动作 和概率比 。当这 个训练项都未进入裁剪常数分支时,每项保留 ;固定优势后,有 。因此,共享 token 的任务梯度为:
这里相加的是梯度贡献,不是先把共享 token 从训练数据中去重。各条轨迹的长度 不同时,其优势会分别乘以 。
4.3 显式平均何时得到相同结果#
hard assignment(显式分配) 先将共享这段前缀的 条轨迹优势取平均,再给共享 token 使用:。分支之后各自生成的 token 仍保留所属轨迹的优势。[1]
甲、乙、丙的共享优势为 。保留三份前缀副本时,合计梯度系数为 ,与默认隐式合成相同。
当参与比较的轨迹等长,且相关训练项都未进入裁剪常数分支时,两种方式给出相同的共享梯度。轨迹不等长时,隐式合成按 加权,通常不等于简单平均优势。进入 clipping 后,正负优势的训练项还可能落在不同分支,因此不能普遍用一个平均优势替代逐项计算。
5. 局限性#
熵变化不能判断路径是否正确。 它只衡量两个窗口中生成分布的不确定性差异。工具反馈造成的预测不确定性增加也可能使熵升高,最终正确性仍需任务评分判断。
增加后续分支不能替代探索不同前缀。 甲、乙、丙共享同一段历史,因此三条轨迹存在相关性。新增分支只重新生成后续内容,不能比较分支位置之前的其他选择;增加后续分支数不等于增加同样数量的独立从头采样。
复用历史不保证固定比例的成本节省。 与每条轨迹都从头生成的 GRPO 相比,ARPO 复用分支前的交互,并用熵变化选择扩展位置。实际采样收益取决于共享前缀长度、分支位置和工具执行成本,需要在相同预算口径下比较。
参考资料#
- Agentic Reinforced Policy Optimization(2025,v1). 方法 §3:熵变化分支、共享前缀的显式与隐式分配、GRPO 目标。本文把固定熵归一化尺度并入 ;将采样策略统一记为 old,与参考策略 ref 区分。