多轮 Agent 的强化学习:一条轨迹一个优势为什么会失效,分组粒度又该怎么选
· 阅读需 13 分钟
多轮 Agent 的 RL 训练,起点通常长这样:采样一批轨迹,每批同一个任务、N 条 rollout,跑完拿最终奖励做组内归一化,得到每条轨迹一个标量优势,然后把它乘到这条轨迹上每一个 token 的 log-prob 上。
这套东西在 GSM8K 那种单轮任务里工作得很好,因为整条回答就是一次决策,最终奖励就该摊给所有 token。搬到 Agent 上,一条轨迹变成了「调工具、看观测、再决策」的 T 轮序列,模型在每一轮都做了一个独立决策,而奖励只有一个。这时候「整条轨迹共享一个优势」就有了两个隐含假设:每一轮的贡献大致相同,且各轮的决策彼此独立。多轮场景里这两条都不成立。
这篇文章讲三件事:轨迹级优势在多轮里到底错在哪(不是有偏,是方差)、turn-level 分组要付什么代价、以及不同回合数下该选哪种粒度。中间有一次我自己跑的对照实验,用的是纯标准库写的合成环境,代码可复现,数据在后面。