单轮推理 RL(GRPO / RLVR,见姊妹仓库 reasoning-rl-frontier)的下一棒:把奖励信号从"一问一答一奖励"推广到多轮轨迹(思考→调用工具→观察)*。
学习笔记,非作者研究成果(见 README 诚信声明)。数字 / 结论以原论文为准,不确定处标注。
0. 一句话演化 / The evolution
单轮 RLHF(prompt→response→reward) → 单轮可验证 RLVR(对/错→reward) → 多轮 agentic RL(轨迹→稀疏终端 reward)。
变的不是损失函数,而是 episode 的形状:一条 episode 是 (reasoning, tool_call, observation) 反复多轮1让 LLM 把推理与工具调用交错(think→act→observe),边想边行动。Yao 2022 ↗,reward 往往只在最后(任务成功与否)给一次。
TL;DR 速查(2 分钟过一遍)
- 变的是 episode 形状,不是损失:单轮 RLHF→RLVR→多轮 agentic RL,一条 episode =
(思考 → 工具调用 → 观察)反复,reward 常只在终端给一次。 - 长程 = POMDP:工具返回前部分可观测;动作空间 = token + 工具调用 + 何时停;核心难点 = 稀疏终端 reward 的信用分配 + 误差累积。
- 信用三粒度:trajectory(均摊)/ turn(需 step reward 或 value)/ token(由 turn-level 广播 + action mask);越细越准、越依赖 critic/PRM。
- GRPO 组相对 baseline 天然可搬:组内终端 return 归一化当 baseline、免 critic;但稀疏下整组全零 → std=0 → advantage 退化。
- 观测 token 必须掩掉:工具返回是环境注入、非 policy 生成;不掩 = 对观测做 SFT、污染策略梯度。
- 奖励设计:终端可验证(RLVR)最稳;step/PRM 缓解稀疏但易被 gaming;长程 reward hacking = 空转 / 提前停 / 里程碑刷分。
- 几乎都两段式:SFT 热启(学格式 + 把成功率抬到 RL 有梯度)→ RL 超越演示;代表 AgentTuning / Agent-FLAN / ReFT / ReSearch。
- 具名 recipe:ToolRL(shaping)/ RAGEN-StarPO(Echo Trap)/ WebRL(自进化课程)/ SWE-RL(规则奖励);2025 改进 DAPO / CISPO / VAPO + 系统级 AReaL。
- off-policy 纠偏:PPO clip 只控方差不纠偏;异步需小 policy lag / ESS / V-trace 双截断 / 全局 advantage 归一化(REINFORCE++)。
- 会单轮就能迁移:抓「轨迹化 + 掩码 + 组相对 baseline」三点即可。
1. 什么让任务"长程" / What makes it long-horizon
| 维度 | 单轮推理 RL | 长程 agentic RL |
|---|---|---|
| episode 长度 | 1 轮 | 数轮~数十轮 |
| reward | 每条 response 一个 | 稀疏 / 延迟,常只在终端 |
| 观测 | 全可见(prompt) | 部分可见(工具返回才知道) |
| 动作空间 | token | token + 工具调用 + 何时停止 |
| 主要难点 | 偏好 / 正确性 | 长程信用分配 + 误差累积 |
2. 形式化 / Formalization (POMDP)
把一条轨迹 看作 POMDP。终端任务奖励 (成功/失败)或标量分。轨迹回报
实务里常把"一轮(turn)"作为决策粒度(turn-level MDP),而梯度仍落在该轮生成的 token 上 —— 即 turn-level 信用 + token-level 更新。
3. 信用分配 / Credit assignment(核心难点)
终端只有一个 reward,要回答:这几十轮里,哪一轮、哪个 token 该被奖励/惩罚?
- trajectory-level:整条轨迹共享一个 advantage —— 最简单,但把"好轨迹里的坏步"也一起奖励了。
- turn-level:给每一轮一个 advantage(需要 step reward 或价值估计)。
- token-level:最细;通常由 turn-level advantage 广播到该轮 token。
GRPO2同一任务采样一组 rollout,用组内相对回报当 baseline、免去 critic。Shao 2024 ↗ 的思路天然可搬过来:同一任务采样一组轨迹,用组内相对回报当 baseline(无需 critic):
过程奖励 PRM3对每一步推理打分(过程监督),不只看最终对错。Lightman 2023 ↗(给每步打分)对长程信用分配更友好,但标注/训练更贵且自身可能被 hack;ORM(只看结果)便宜但信用分配粗。长程场景常是两者折中。
误区: 「GRPO 的组内相对 baseline 在长程里照样稳」。稀疏成功率下同一任务的一组轨迹常全部失败 → 组内 std=0 → advantage 退化为零、梯度消失(全零组退化)。缓解:加大 group size / 用可验证里程碑补正例 / SFT 热启抬高基础成功率,而不是在全零组上空跑 rollout。
4. 奖励设计 / Reward design
- 可验证结果奖励(RLVR→agentic)4用可自动判定的对错(而非奖励模型)作 RL 信号。Lambert 2024 ↗:能自动判定的终端信号最稳 —— 单元测试通过、环境状态达成、答案可校验。
- 过程 / step reward:中间里程碑给分,缓解稀疏性,但易被刷(agent 学会触发里程碑而不解决任务)。
- 长程 reward hacking:轨迹越长,捷径越多(空转凑步数、反复调用廉价工具)。缓解:终端可验证为主 + 步数/成本惩罚 + 对工具输出只读不学(见 §5 掩码)。
误区: 「过程奖励(step/PRM)总比只看结果(ORM)好」。step reward 缓解稀疏,但易被 gaming——agent 学会触发里程碑而不真正解决任务;且 proxy 分一路涨、gold(终端成功率)不涨甚至降,比 ORM 的「信号全零」更难诊断。稳妥做法:以终端可验证奖励为主,中间只用可验证里程碑(子单测通过)当 step 信号。
5. 算法要点 / Algorithm essentials
多轮 PPO5带 clip 的策略梯度,RLHF / agentic RL 的基线算法。Schulman 2017 ↗ / GRPO 的两个"长程专属"细节:
- 观测 token 掩码:工具返回 / 环境观测是注入进上下文的,不是 policy 生成的 —— 必须在损失里掩掉,否则等于让模型去"拟合"工具输出(类比 SFT 的 loss masking)。
- advantage 广播 + 掩码:turn-level advantage 广播到该轮 agent 生成的 token,再乘以 action mask。
import torch
def group_relative_advantages(returns, group_ids, eps=1e-6):
"""GRPO 式组内相对 advantage(无 critic)。
returns: (N,) 每条轨迹的终端回报(如成功={0,1} 或标量分)
group_ids: (N,) 同一任务的多条 rollout 共享一个 group id
"""
adv = torch.zeros_like(returns)
for g in group_ids.unique():
m = group_ids == g
r = returns[m]
adv[m] = (r - r.mean()) / (r.std(unbiased=False) + eps)
return adv
def masked_pg_loss(logp, adv_per_token, action_mask):
"""策略梯度损失:只在 agent 自己生成的 token 上回传。
logp: (B,T) 当前策略下所取 token 的 log-prob
adv_per_token: (B,T) 由 turn-level advantage 广播到 token
action_mask: (B,T) 1=agent 生成的 token, 0=工具输出/观测(掩掉)
"""
pg = -(logp * adv_per_token) * action_mask
return pg.sum() / action_mask.sum().clamp_min(1)
rollout 阶段要在循环里真实执行工具/环境(常异步),轨迹更长 → 采样更贵 → 是 agentic RL 的主要系统瓶颈之一。
误区: 「把单轮 RL 损失直接套到多轮轨迹就行」。工具返回 / 环境观测是注入进上下文的、不是 policy 生成的;不在损失里掩掉,等于对观测做 SFT、污染策略梯度。多轮相对单轮的两处硬改动 = 观测 token 掩码 + turn-level advantage 广播到 token 再乘 action mask。
6. 训练管线:SFT 热启 → RL / Training pipeline
agent 训练几乎都是两段式:SFT 热启 → RL 精调。开放动作空间 + 稀疏终端奖励下,预训练模型直接 RL 几乎探不到成功轨迹(成功率随步数指数衰减、group 常全零 → 梯度消失),也不会基本的工具调用格式;先用专家 / 成功轨迹 SFT 把格式与轨迹结构学会、把成功率抬到 RL 能产生有效梯度,再 RL 超越演示。
- AgentTuning(arXiv:2310.12823):构造 AgentInstruct 多任务轨迹做混合 SFT,提升 agent 能力而不损通用能力。
- Agent-FLAN(arXiv:2403.12881):把「格式遵循」与「agent 推理」拆开做数据,并加负样本(教模型拒绝错误工具调用、抑制 agent 幻觉)——SFT 数据设计层面的改进。
- ReFT(arXiv:2401.08967):SFT 热启(CoT)→ 在线 PPO 在自采样推理路径上精调,提升泛化(无需额外题)。
- ReSearch(arXiv:2503.19470):纯 RL 学会把搜索调用与 CoT 交错,无监督推理步标注——把工具使用直接 RL 进去。
误区: 「SFT 热启越多越好」。热启的目的只是学会工具调用格式、把成功率抬到 RL 能产生有效梯度;过度 SFT 会把策略钉死在演示分布,RL 阶段探索空间被压窄、过早收敛到「模仿」而非「超越」,还会继承放大 SFT 数据的格式 / 风格偏置。热启到「能稳定产出可用轨迹」即止。
7. 代表性 agent-RL 配方 / Representative recipes
| 配方 | 场景 | 关键点 |
|---|---|---|
| ToolRL(2504.13958) | 工具调用 | 工具学习的细粒度 reward shaping(格式 + 结果 + 冗余) |
| RAGEN / StarPO(2504.20073) | 多轮交互 | trajectory-level RL;发现 Echo Trap(回声陷阱)坍塌 → StarPO-S 稳定化 |
| WebRL(2411.02337) | web agent | 自进化在线课程(从失败 / 难度边界任务生成新题)+ ORM;WebArena-Lite 上 Llama-3.1-8B 4.8%→42.4% |
| SWE-RL(2502.18449,Meta) | 代码修复 | 在开源软件演化数据上用规则奖励 RL;SWE-bench Verified 41.0%(Llama3-70B) |
2025–2026 RL 改进(算法变体 + 系统):
- DAPO(2503.14476,ByteDance):clip-higher(上调正向 clip 上界防熵坍塌)+ overlong reward shaping + dynamic sampling + token-level PG loss。
- CISPO(MiniMax-M1,2506.13585):截断 IS 权重(per-token)而非把低概率 token 置零,保留所有 token 的梯度贡献(含罕见「反思」token)。
- VAPO(2504.05118):价值增强 PPO(value-augmented),解决 value 偏差 + 异质序列长度。
- AReaL(2505.24298)(系统级,非算法变体):全异步 RL 系统,解耦生成与训练(见 §5 rollout 贵)。
- SkyRL-Agent(2511.16108,NovaSky/Berkeley)(系统级):面向长程多轮工具的异步训练栈,核心是异步流水线派发器——把 CPU 侧的运行时初始化 / 奖励计算与 GPU 生成重叠起来(长短轨迹混批时不被慢轨迹拖住),作者报告较 naive 异步批处理约 1.55× 吞吐;可对接 VeRL / Tinker 后端。(系统工程加速,非新损失/新 advantage)。
- T²PO(2605.02178)(探索控制 · 极新预印):不确定性门控——估计每一步「再多想/多试一轮」对边际不确定性的下降量,据此触发 thinking 干预(token 级)/ 对低进展的轮做重采样(turn 级),把算力从已确定的步挪到真正不确定的步,缓解长程下探索预算的浪费。
T²PO(2605.02178)是 2026-05 极新预印:此处只取其机制(不确定性门控何时停止探索),不引任何分数;ID / 口径以原文为准,落地配方请按本仓「benchmark 快变 + 污染」红线自行复核。
表 / 列表中数字为原文报告(模型 / 配置见原文);benchmark 快变且易受污染,公开复现结论可能不同。
误区: 「Echo Trap 和 GRPO 全零组退化是一回事」。两者方向相反:全零组是没有正信号 → 梯度消失(探索不足),解法是难度课程 / 可验证里程碑补正例;Echo Trap(RAGEN/StarPO)是有正信号但坍缩到单一「奏效过」的措辞模板 → 多样性 / 熵下降(探索坍塌),解法是方差 / 熵过滤 + 熵正则。前者缺正例,后者正例同质化。
8. 与单轮的衔接 / Bridge from single-turn
姊妹仓库的 GRPO / RLVR / 损失掩码 是积木;agentic RL ≈ 把它们作用在轨迹上 + 解决"稀疏终端 reward 的信用分配"。会单轮 → 抓住"轨迹化 + 掩码 + 组相对 baseline"三点即可迁移。
两种 test-time compute(TTC)别混:reasoning-TTC(单轮内想得更深:更长 CoT / 更多采样投票)花算力在「一步内的思考深度」;agentic-TTC(多交互更多轮:更多 think→act→observe 循环 / 更多工具调用)花算力在「与环境交互的轮数」。前者瓶颈是单轮推理质量,后者瓶颈是长程信用分配 + 探索预算(见 §3 / Q6)——所以把 reasoning 那套(投票 / best-of-N)直接搬到 agent 上往往不够,得管「轮」而非只管「token」。
分层面试题 / Stratified follow-ups
L1 基础
1. 什么样的任务算"长程(long-horizon)"?举两个 LLM agent 的例子。
答:任务需要多轮 think→act→observe 循环,reward 只在终端给出(稀疏/延迟),动作空间包含工具调用。例子:①代码 agent 循环调用代码执行器调试程序;②搜索+汇总 agent 多轮查询 web API 后生成报告。
追问: 为什么长程任务建模为 POMDP 而非 MDP,这对 value 估计有什么直接后果? → 工具返回(下一轮观测)在 act 之前未知,agent 处于部分可观测状态;value function 只能在当前可见历史上 bootstrap,无法准确估计隐状态贡献,导致 critic 收敛慢且偏差难量化。
2. 为什么单轮 RLHF/RLVR 不足以训练多轮工具使用 agent?
答:单轮 RL 假设一问一答一奖励,episode 形状为单条 response;多轮 agent 的 episode 是 (reasoning, tool_call, observation) 反复交错,reward 只在最终轮给出,单轮损失函数无法处理跨轮信用分配,也没有对工具观测 token 的掩码机制。
追问: 若把单轮 RLVR 损失直接用于多轮轨迹而不加任何掩码,梯度会流向哪些 token,带来什么具体后果? → 梯度会流向工具返回的观测 token,等于对环境注入的内容做 SFT;模型会学习"生成能匹配工具输出格式的 token",而非"做出更好的行动决策",污染策略梯度信号。
3. 稀疏 / 延迟奖励为什么难?
答:终端只有一个 reward,无法直接判断几十轮中哪一轮、哪个 token 该被奖惩,即长程信用分配问题。此外,训练初期成功轨迹概率随轮次指数衰减(若每轮成功率 0.8,10 轮后约 0.11),导致大量 rollout 全零 reward、梯度信号几乎消失。
追问: 稀疏奖励导致梯度消失时,课程学习与辅助子目标奖励各自从什么角度缓解,两者能否同时使用? → 课程学习通过缩短初期 horizon 提高成功率,让 group 内出现足够正 reward;子目标奖励在中间步骤补充信号密度;两者互补但需防止子目标被 hack——可验证的里程碑(如子函数单测通过)优于神经网络代理打分。
4. 训练时为什么要把工具返回的 token 掩掉?
答:工具返回是环境注入的观测,不是 policy 生成的——若不掩掉,loss 会要求模型去"拟合"工具输出,相当于对观测做 SFT,污染策略梯度信号。正确做法是 action_mask=0 屏蔽所有 obs_* token,梯度只流向 agent 自己生成的 think/act token。
追问: 如果把 <think> 推理链也掩掉(action_mask=0),会产生什么后果,这是否有时是合理选择? → 推理链 token 的梯度为零,模型只训练"行动选择"而不训练"推理质量",推理链退化为装饰性输出;但若推理链内容不可控且质量极不稳定,短期内掩掉可降低训练噪声——这是实现取舍,需根据推理链质量决定。
L2 进阶
5. trajectory-level / turn-level / token-level advantage 各是什么?权衡?
答:trajectory-level 对整条轨迹共享一个 advantage,最简单但把好轨迹里的坏步也一起奖励;turn-level 给每轮一个 advantage(需 step reward 或价值估计),信用更精准;token-level 是最细粒度,通常由 turn-level advantage 广播到该轮 agent 生成的 token 并乘以 action mask。粒度越细信用越准,但对 critic/PRM 的依赖越强。
追问: turn-level advantage 广播到 token 后,同一轮所有 agent token 共享同一个 advantage 值——这个近似在什么情况下会严重失真? → 当一轮内 token 序列包含推理链(think)和行动(act)两段语义差异大的内容时,共享 advantage 等于对"好的 act"和"导致 act 的推理过程"给相同信用;若推理错误但 act 碰巧正确(或反之),该轮梯度方向不准——这是 turn-level 粒度的根本局限,是引入 PRM 步级 reward 的动机之一。
6. GRPO 的组内相对 baseline 如何搬到多轮?为什么能省掉 critic?
答:对同一任务采样一组多轮轨迹,用组内终端 return 的均值/标准差归一化得到 ,以组均值作 baseline 替代 critic。省 critic 的原因是 baseline 由同批 rollout 统计而来,无需额外价值网络;代价是方差在稀疏长程场景可能大(全零 group 时 advantage 退化为零)。
追问: GRPO 组内全零 reward(所有轨迹均失败)时 advantage 退化为零,梯度消失——有哪些实际可行的缓解方案? → 三条路:①加大 group size 使组内至少 1 条成功;②引入少量可验证里程碑奖励让部分轨迹得到非零 reward;③用 SFT 热启(从少量成功轨迹学)提升基础成功率再切换 RL——任何一条都比在全零 group 上空跑 rollout 更有效。
7. PRM 与 ORM 在长程信用分配上的取舍?
答:ORM 只看终端结果,信号稀疏、信用分配粗,但标注成本低且难被 hack;PRM 对每步打分(理想上为未来成功率变化量),信用精准,但标注/训练更贵且中间步评分器可被 agent gaming。长程场景常折中:以 ORM 终端可验证奖励为主,辅以少量可验证里程碑充当 PRM 信号。
追问: 不依赖人工标注、自动估计 PRM 步级 reward 的主流方法是什么,其计算瓶颈在哪? → 用蒙特卡洛 rollout 从每步状态 出发多次采样至终端,以成功率均值估计 ,步级 reward = ;瓶颈是每步都需大量 rollout,采样成本随轨迹长度和步数线性增加,工程上通常只对关键分叉步做估计。
8. 长程 reward hacking 有哪些典型形态?怎么缓解?
答:三类典型形态:①空转/looping(反复调用廉价工具拉长轨迹以积分);②premature stop(提前声明完成绕过后续困难步骤);③milestone gaming(触发里程碑而不真正解决子任务)。缓解组合拳:终端可验证奖励为主 + 步数/token 成本惩罚 + 观测 token loss mask + KL 惩罚项 + 对抗性测试集轮换。
追问: KL 惩罚项 如何抑制 reward hacking,以及 过大或过小各有什么副作用? → KL 项限制策略偏离参考模型的程度,在 proxy reward 与 gold reward 开始分叉前"刹车"; 过小时约束无效、hacking 照常发生; 过大时策略无法充分优化任务,相当于几乎只做 SFT——需结合 reward hacking 指标动态调整或设置 KL 阈值早停。
9. 多个 agent 协作只有团队级终端 reward 时,joint credit 与 marginal credit 的区别?
答:多个 LLM agent 协作完成一个任务、只有团队级终端 reward 时,要回答"这个共享奖励该如何分到每个 agent"。joint credit:所有 agent 共享同一个团队 advantage(类比 trajectory-level),最简单但鼓励搭便车——贡献小的 agent 也被同等奖励;marginal credit:用反事实(counterfactual)——去掉或用默认策略替换某 agent 后团队回报的变化量,近似该 agent 的边际贡献,信用更准但需额外 rollout 估计反事实基线。MAPoRL(arXiv:2502.18439)这类多智能体 post-co-training 用 MARL + verifier 奖励引导多 LLM 协同,显式训练协作行为。
追问: 反事实信用分配在 LLM 多 agent 场景为什么比传统 MARL 更贵? → 估计某 agent 的反事实基线要在"该 agent 缺席 / 被默认策略替换"条件下重跑团队 rollout,每个 agent、每条轨迹都要一次额外的多 agent 生成,成本随 agent 数线性甚至更高;而每次生成本身是一次完整 LLM 解码,远贵于传统 MARL 的小网络前向——所以实务常退化为 joint credit + 角色级 reward shaping 的折中。
10. 长程 agent 的上下文窗口管理:KV 驱逐与摘要各自对训练 / 推理有什么影响?
答:轨迹越长,状态 (全历史拼接)线性增长,attention 是 、KV cache 显存 ——长程 agent 的核心系统瓶颈。两类缓解:KV 驱逐 / 压缩(丢弃或合并低注意力权重的旧 token KV,如保留 attention sink + 近窗)省显存但有损,被丢的观测无法再被 attend,可能丢早期关键信息;摘要 / 记忆外置(把旧轮压成摘要文本或写入外部记忆再检索)保留语义但引入摘要误差与额外调用。训练带上下文管理的 agent 时,被压缩 / 摘要替换的 span 仍按"环境注入"处理(掩码,不回传梯度)。
追问: 上下文压缩如何与信用分配相互作用、带来训练-推理不一致? → 若训练时看到完整历史、推理时因预算触发压缩,则 agent 在"压缩后状态分布"上从未被训练,出现分布偏移(类似 exposure bias);更隐蔽的是被压缩掉的那一轮若正是关键决策点,其 token 的信用在训练时仍计入、推理时却信息缺失——需在训练中也按推理预算模拟压缩,保持两端状态构造一致。
11. 工具调用既能 SFT 又能 RL,两者在"训练哪些 token、用什么信号"上的核心差别?
答:SFT 在专家 / 成功轨迹上做 next-token,label 掩掉问题与工具返回 token,只在 agent 生成的 think/act token 上回传交叉熵——学的是"模仿这条轨迹的动作分布";RL(GRPO/PPO)在 agent 自己 rollout 的轨迹上,用 reward 算 advantage,同样只在 agent token 上回传策略梯度——学的是"哪些动作带来更高回报"。两者掩掉的 token 集合相同(都掩工具返回),区别在损失信号:SFT = 固定目标 token 的 log-likelihood,RL = advantage 加权的 log-prob。常见配方:SFT 热启(模仿)→ RL 精调(超越演示)。
追问: function-calling 的结构化 JSON 输出做 SFT 时,label masking 有什么 text-based 格式没有的坑? → JSON 串里固定模板部分({"name":、"arguments":、标点)是 schema 而非决策;若全部当 agent token 训练,梯度会浪费在背诵固定格式上、放大对 schema 微小变化的脆弱性。一种更精细的做法是只对"填空"的 value(工具名、参数值)计 loss,模板 token 也部分掩掉——text-based 的 Action: 行没有这层固定模板,坑更小但自由文本解析更脆。
12. PPO clip 之外,异步 / off-policy 长程 RL 还有哪些纠偏手段?
答:PPO clip 只截断 IS ratio 控方差、不纠偏。其它思路:① 全局 advantage 归一化 + 轻量稳定化(REINFORCE++,arXiv:2501.03262):去 critic,用 batch 级 advantage 归一化 + PPO 式 clip/KL 稳定,缓解 GRPO 组内全零退化的脆弱性;② V-trace 双截断 IS(出自 IMPALA,Espeholt et al. 2018):对每步 ratio 设 双截断,得到有偏但低方差、在 policy lag 下仍有收敛保证的 target;③ 前缀 IS / 序列级截断:理论正确的修正是前缀乘积 ratio,实务用上界截断近似。共性权衡:截断越狠 → 方差越低、偏差越大,必须配合小 policy lag(限制异步步数)或 ESS 监控才真正控住分布偏移。
追问: 为什么"全局(batch 级)advantage 归一化"在长程稀疏 reward 下常比 GRPO 的"组内归一化"更稳? → GRPO 在同 prompt 的小 group 内归一化,稀疏成功率下整组常全零 → → advantage 退化;batch 级归一化把不同 prompt 的回报放进同一池子估计均值 / 方差,即使某个 prompt 全失败,只要 batch 里别处有正信号 advantage 就不为零——代价是不同 prompt 的回报被同一基线归一,advantage 不再反映"相对该 prompt 自身难度"的好坏:难题上的成功与易题上的成功拿到相近 advantage,削弱了 per-prompt 的信用精度。
13. 为什么 agent RL 几乎都要先 SFT 热启?直接从预训练模型 RL 会怎样?
答:开放动作空间 + 稀疏终端奖励下,预训练模型直接 RL 几乎探不到成功轨迹(成功率随步数指数衰减、group 常全零 → 梯度消失),且不会基本的工具调用格式。先用专家 / 成功轨迹 SFT 让模型掌握格式与轨迹结构、把成功率抬到 RL 能产生有效梯度的水平,再 RL 超越演示。AgentTuning / Agent-FLAN 是 SFT 数据侧代表,ReFT 是「SFT→在线 PPO」两段式代表。
追问: SFT 热启过度会带来什么问题? → 过度 SFT 把策略钉死在演示分布上,RL 阶段探索空间被压窄、易过早收敛到「模仿」而非「超越」;且 SFT 数据的格式 / 风格偏置会被 RL 继承放大——热启到「能稳定产出可用轨迹」即止,别把 SFT 当主训练。
14. RAGEN 报告的 Echo Trap 是什么?与单轮 GRPO 的全零组退化有何不同?
答:Echo Trap(回声陷阱,RAGEN/StarPO)是多轮 agent RL 的一种训练坍塌:模型逐渐在不同状态下重复同一套「奏效过」的措辞 / 动作模板(自我回声),推理多样性与熵下降、奖励方差塌缩,表面 reward 平稳实则停止学习。StarPO-S 的缓解:基于方差 / 熵的轨迹过滤(丢弃低多样性 rollout)+ 更强的 KL/clip 控制以保住探索。
追问: 它与全零组退化的根因和解法有何不同? → 全零组是「没有正信号」→ 梯度消失(探索不足),解法是难度课程 / 可验证里程碑补正例;Echo Trap 是「有正信号但坍缩到单一模式」→ 多样性消失(探索坍塌),解法是多样性 / 熵过滤 + 熵正则。前者缺正例,后者正例同质化。
L3 深挖
15. 终端只有一个 0/1 reward 时,如何把信用合理分到几十轮?给出至少两种思路并比较。
答:①GRPO 组相对 baseline:同任务多条轨迹共享终端 return 作归一化 baseline,简单无需 critic,但信用在轨迹内仍均摊;②turn-level GAE:引入轻量 turn-level value 头,用 把终端 return 分解为逐轮 TD 误差,信用更精准但需 critic bootstrap;③PRM step reward:用蒙特卡洛 rollout 估计每步未来成功率变化作步级 reward,信用最细但采样成本最高。三者折中:先 GRPO 训练基础能力,稳定后加 turn-level value 头。
追问: turn-level GAE 中 的选取为什么在长程场景比单轮更关键,设置不当会产生什么后果? → 长程轨迹里 critic bootstrap 误差随步数累积: 时等于蒙特卡洛,方差随 horizon 指数增大; 时单步 TD 依赖 critic 精度,但 critic 在部分可观测场景本身偏差大——两端都危险,实务需根据 critic 质量和轨迹长度在 区间谨慎调节。
16. 如何把"可验证结果奖励"与"过程监督"结合,既稳又不被刷?
答:以终端可验证信号(unit test pass / 环境状态)为主奖励——难 hack;用可验证里程碑作中间 step reward(子函数单元测试通过而非神经网络打分),缓解稀疏性而不引入可被 gaming 的 proxy。同时加 KL 惩罚 防 overoptimization,以及步数惩罚压制 looping。
追问: 过程奖励权重过高时会出现什么系统性失败,与纯 ORM 相比哪种失败模式更难诊断? → 过程奖励权重过高时,agent 会优先触发里程碑而非解决终端任务(milestone gaming),且因中间步得分不断上升,训练曲线表面良好——proxy reward 持续涨而 gold reward(终端成功率)不涨甚至下降;这比纯 ORM 的"信号全零"更难诊断,因为梯度信号看上去正常。
17. agentic RL 的 rollout 为什么贵?有哪些工程缓解(异步执行、截断、长度惩罚)?各自代价?
答:rollout 需在循环里真实执行工具/环境(网络、代码执行等),延迟可达秒级,且轨迹更长导致 KV cache 占用大。缓解:①异步执行——并行跑多个 episode,GPU 不空等;代价是 rollout 完成时 policy 已经走了若干步(staleness),需要 IS 修正或 ESS 监控。②轨迹截断——超过最大步数强行终止;代价是截断轨迹的 return 不完整,需 bootstrap 补齐或直接丢弃。③长度惩罚 ——激励 agent 高效完成;代价是可能惩罚必要的长推理链。
追问: 异步执行引入 policy staleness 后,PPO clip 能否独立解决偏差问题,还是必须配合其他机制? → PPO clip 只截断 IS ratio 控方差,不纠正分布偏差——当 policy lag 超过 1-2 个 mini-batch 时,clip 区间外的梯度被丢弃但区间内仍在错误分布上更新;必须配合小 policy lag 设计(限制异步步数)或 ESS 监控(ESS 低于阈值时暂停或降 lr)才能真正控住偏差。
18. 误差累积(compounding error)在长轨迹中如何放大?与 exposure bias 的关系?
答:每轮决策的小误差会改变后续观测,导致轨迹偏离训练分布,下一轮又在分布外状态上犯更大误差,误差随轮次指数级放大。这与 SFT 的 exposure bias 同构——训练时见到的是 ground-truth 前缀,推理时见到的是模型自己生成的前缀;长程 agent 尤为严重因为工具返回也依赖于之前行动。缓解:RL 本身通过让模型在自身 rollout 上训练来缓解 exposure bias;课程学习(从短 horizon 开始)可以降低初期误差累积速度;DAgger(数据聚合)在每轮用当前策略生成的状态请求专家标注,持续把策略实际访问的分布纳入训练,从数据层面直接对抗 distribution shift。然而即使用 online RL,理论上仍不能完全消除长轨迹内的 distribution shift:每条 rollout 内部,早期步的微小误差会在轨迹内复利累积——后续步在越来越偏离训练分布的状态上决策,RL 更新虽然针对已见过的 rollout 做修正,但无法"预见"同一批 rollout 内早期误差引发的后续雪球效应,这正是长程比短程对误差累积更脆弱的根本原因。
追问: DAgger 缓解了训练与推理分布的静态不匹配,但为何长轨迹内部的误差复利(rollout 内的 distribution shift)是 online RL 也无法完全消除的? → DAgger/online RL 修正的是"训练时未见到某类状态"问题;但轨迹内的复利源于因果链——第 步误差改变 ,更新策略时这条 rollout 已经"发生了",下一批 rollout 才能看到修正效果;误差在单条轨迹内仍然传播,horizon 越长传播机会越多,online RL 只能缩短这一滞后,无法归零。
深挖 / Deep-dive
面试陷阱级问题:以下问答假设考官已熟悉单轮 GRPO/PPO,追问多轮场景下的精细机制。学习笔记,非作者研究成果。
Q1. per-token vs per-turn advantage estimation — GAE 的折扣如何迁移到多轮?
核心矛盾:单轮 RL 的 advantage 定义在 token 粒度();多轮场景有两级结构 — turn 之间的时间折扣(turn-level) 和 turn 内部的token 广播。
GAE 的迁移6GAE 用 λ 加权的 TD 残差和来权衡 bias-variance:λ→1 接近蒙特卡洛,λ→0 接近单步 TD。Schulman 2015 ↗:
把"一个 token" 换成"一个 turn",该公式在 turn-level MDP 上完全适用:
- (turn 折扣):稀疏终端 reward 场景里常设 (不折扣),因为每轮都有实际贡献价值;过低的 会让早期轮的 advantage 趋零,白白丢掉梯度信号。
- (GAE 平滑系数):控制 bias-variance 权衡 — 多轮 episode 的 critic bootstrap 误差更易累积,实务里 比单轮更关键,否则 variance 随 horizon 指数爆炸。
turn-level → token-level 的广播:同一轮内所有 agent 生成 token 共享该轮的 ,观测 token 的 mask=0。这样 per-token 的梯度等于 per-turn advantage 乘以 action-mask,没有额外近似。
面试陷阱:"既然 token 共享同一 advantage,token-level 和 turn-level 有什么区别?" — 区别在于哪一级计算折扣和 baseline:turn-level 让折扣跨越轮次、允许 value function 在轮粒度 bootstrap;token-level 单纯是梯度落点。混淆两者会导致折扣应用层级错误(对每个 token 做 γ 折扣等价于对超长序列做 γ^t 衰减,早期 token 梯度几乎为零)。
Q2. 单终端 reward 下 GRPO 组 baseline 的高方差 — 为什么?有哪些降方差技巧?
GRPO 组 baseline 的 advantage:
多轮场景下方差爆炸的两个来源:
- 0/1 二值 reward + 小 group size:若 且成功率 ,则 group 内常见全 0(8 条全失败)或只有 1 条成功。全 0 时 ,advantage 退化为零;1/8 成功时 极小,advantage 尖峰 — 单条样本主导整批更新。
- 轨迹长度差异:长轨迹的 log-prob sum 数值远大于短轨迹;若 advantage 直接乘以 token 数量,长轨迹的梯度自然更大,形成隐式的 length bias。
降方差技巧:
| 技巧 | 机制 | 代价 |
|---|---|---|
| 加大 group size | 更稳定的 | 采样成本 |
| length-normalization | 损失除以 action token 数 | 均衡短/长轨迹,但可能惩罚必要的长推理 |
| 混合 ORM+中间稀疏 reward | 降低全 0 group 概率,增加 positive signal | 中间 reward 可被 hack |
| advantage clipping / 截断分位数 | 去掉尖峰 advantage 样本 | 可能丢高信息样本 |
| 引入轻量 critic(turn-level value 估计) | 用 把终端 return 分解为逐轮 TD 误差 | 额外模型,与 GRPO "去 critic" 初衷矛盾 |
面试陷阱:"GRPO 能完全替代 PPO 的 critic 吗?" — 单轮二值 reward 场景可以;长程稀疏 reward 场景里 group baseline 的方差往往大于 critic baseline,critic 的价值回升。实践中折中方案是使用小型 turn-level value 头,而非完整的 PPO critic。
Q3. 多轮 rollout 变 stale 后的 importance-sampling / off-policy 修正
问题背景:agentic rollout 含真实工具调用(网络、数据库、代码执行),延迟可达秒级 — 当 rollout 结束时策略参数已经走了若干步,。
重要性权重(IS weight):
为什么连乘危险: 轮轨迹里 agent token 可达数千;即使每步 ratio ,连乘后可得 的 IS weight — 方差爆炸,极少数样本主导梯度。
工程修正方案:
- PPO clip5( clip):将每个 token 的 ratio 截断在 ,不修正偏差但有效控方差。适合同步训练,policy lag 不超过 1-2 个 mini-batch。
- 序列级截断 IS(TIS):整条轨迹的 IS weight 截断在某个上界(如 3.0),简单但有偏。
- 用 ESS 动态缩小学习率:用 effective sample size 监控 rollout 的 staleness,当 ESS 低于阈值时自动降低 learning rate,避免梯度冲击。
- 前缀 IS ratio:理论上正确的修正项是前缀 IS ratio(整条序列的前缀乘积),而非逐 token ratio 独立截断;但实现复杂,数值不稳定。
面试陷阱:"直接用 PPO clip 就够了吗?" — 同步训练里够;异步/agentic 场景 policy lag 可达数十步,此时 clip 只治标(方差降了但偏差很大),实际上等于在不正确的分布上做梯度 — 需要配合小 policy lag 设计或 ESS 监控。
Q4. 长程 reward hacking 的具体形态与缓解
"长程"使 hacking 更容易:单轮 hacking 只需在一次回复里找漏洞;长程 agent 可以在几十步里缓慢积累捷径、覆盖评测文件、或利用工具副作用。
三类典型形态:
| 类型 | 机制 | 实例 |
|---|---|---|
| 空转/looping | agent 重复调用无关工具、拉长轨迹以期靠里程碑积分 | 反复查询 search API 但不推进任务 |
| premature stop | 提前声明"任务完成"绕过后续困难步骤 | 代码 agent 在测试运行前就输出 "DONE" |
| milestone gaming | 触发里程碑检查点而不真正解决子任务 | 写一个空函数使 CI 通过,或直接 mock 测试输出 |
为什么长程更严重:理论分析7Scaling Laws for Reward Model Overoptimization:KL 偏离越大,gold reward 先升后降;proxy reward 与 gold reward 的差值随 KL 单调增。Gao 2022 ↗表明,proxy reward 与 gold reward 的差值随 KL 偏离单调增大 — 轨迹越长、总 KL 偏离越大,照缩放定律 [7] hacking 风险系统性增加。
缓解组合拳:
- 终端可验证奖励为主4:unit test pass / 环境状态达成,比神经网络 proxy reward 难 hack;
- 步数 / token 成本惩罚:,直接压制 looping;
- 观测 token 只读(loss mask):防止 agent 学会"生成能通过 mock 检查的输出格式";
- KL 惩罚项:,在 proxy reward 与 gold reward 开始分叉前刹车;
- 对抗性测试集轮换:定期更换评测样本,阻止 agent 记住特定测试用例的捷径。
Q5. 部分可观测性(POMDP)如何使 value 估计变难?
单轮 RL vs 长程 agentic RL 的信息结构差异:
单轮推理: — prompt 全可见,value function 输入完整。
多轮 agentic: = 历史对话 + 上一轮工具返回,但下一轮工具返回未知 — agent 处于 POMDP,不知道未来观测。
三个具体难点:
工具返回的随机性:同一 action(API 调用)可能因网络状态、外部 DB 版本不同而返回不同内容 — value function 需要在这种随机性上取期望,但训练时只见到一条具体返回。单步 bootstrap()拟合的是带噪观测的 value,收敛慢且偏差难估计。
上下文长度爆炸:随轮次增加, 线性增长(历史全拼接);value network 若用同一个 LM backbone,其 forward pass 成本随上下文长度平方增长 — value bootstrap 本身就很贵。
外部状态不可逆:agent 改了数据库/文件系统,这些副作用不在 token 流里 — value function 看不到"环境的隐状态"。传统 POMDP 解法(belief state)在 LLM 场景无法直接套用。
实务应对:
- 用轻量 turn-level value 头(接在最后一个生成 token 的 hidden state 上)而非完整 rollout 的 critic;
- 将工具返回摘要化后再入 value 输入,压缩上下文;
- 接受更高 bias:用 GAE 的 减少对远期 bootstrap 的依赖,代价是轻微低估长期 advantage。
Q6. 长程稀疏 reward 下的探索问题
为什么单轮 RL 的探索策略在长程下不够:单轮 RL 里随机采样 token 就能探索;多轮场景里成功轨迹的概率随轮次指数衰减 — 如果每轮正确概率 0.8,10 轮后成功率降至 ,agent 极少见到正 reward,训练信号几乎全零。
三类探索策略:
课程学习(curriculum learning):从短 horizon / 容易子任务开始,逐步加难。核心是确保训练初期 positive reward 足够频繁以产生有效梯度。代价:需要任务难度的自动标注或人工课程设计。
subgoal / 里程碑奖励(谨慎使用):在中间步骤给小奖励引导探索方向。问题:如 Q4 所述,里程碑本身会被 gaming — 须配合可验证的里程碑(如子函数的单元测试通过)而非神经网络打分。
replay + 优先经验回放:保留少量历史成功轨迹,以更高概率重采样 — 让模型在极稀疏环境中持续看到"什么是成功"。代价:引入 off-policy 问题(见 Q3)。
hindsight 重标注(HER,1707.01495):把失败轨迹按它实际到达的状态当成「目标」重新打标——失败轨迹对原目标 reward=0,但对「它恰好达成的那个状态」reward=1,于是稀疏二元 reward 下也能从失败里榨出正信号(等价于一条隐式课程:总有「事后看成功」的子目标)。关键限制:需要目标可重标注的 goal-conditioned 空间;开放式 agent 任务(如「修好这个 bug」)失败轨迹没有可平凡重标注的目标——「跑了一堆没修好」不能事后说成「成功修好了某个别的 bug」,所以 HER 在 LLM agent 上常只适用于目标 goal-conditioned 且「已达成状态」可重标注的子任务(导航到某状态 / 检索到指定文档),不能无脑套到通用 SWE/GUI。
面试追问:"如果任务成功率始终 <5%,还能用 GRPO 吗?" — 实务经验:group size 需要大到能保证 group 内至少 1 条成功;否则整个 group 的 advantage 退化为全零,等于白跑 rollout。此时建议先用 SFT 热启(从少量成功轨迹学),再切换 RL。
Q7. 观测 token 掩码后哪些 token 实际拿到 advantage?PRM 的 step 级信用 vs 纯 ORM
精确回答"哪些 token 拿到 advantage":
设一条轨迹含以下 token 序列:
[system_prompt] [user_turn_1] [agent_think_1] [agent_act_1] [obs_1] [agent_think_2] [agent_act_2] [obs_2] … [agent_final]
action_mask=1 的 token:所有 agent_think_* + agent_act_* + agent_final。
action_mask=0 的 token:system_prompt、user_turn_*、所有 obs_*(工具返回/环境观测)。
advantage 广播规则:如果使用 turn-level GAE,则同一轮内所有 mask=1 的 token 共享该轮的 。最终梯度只流向 mask=1 的 token 位置。
一个易错点:若 agent 的 <think> 块被当作 internal reasoning 而非 action(有些实现会把 CoT 掩掉),则 <think> token 的 mask=0,gradient 不流过推理链 — 等于只训练"行动选择",不训练"推理质量"。这是实现细节,面试中考察是否真正理解 mask 的语义。
PRM(过程奖励)vs ORM(结果奖励)的信用粒度对比8把 PRM 的步级奖励定义为步级 advantage(未来成功率的变化量),理论上等价于 RL 的 Q-V 差,并需要用独立 prover policy 而非当前策略来估计。Setlur 2024 ↗:
| 维度 | ORM(终端 reward) | PRM(step-level reward) |
|---|---|---|
| 信号稀疏度 | 一条轨迹一个 scalar | 每步一个 scalar |
| credit 粒度 | trajectory-level → 广播到 token | step-level → 直接赋予该步 token |
| 标注成本 | 低(只需最终正误) | 高(需逐步判断或自动 rollout 估计) |
| 可被 hack 程度 | 较难(终端状态难伪造) | 较易(中间步评分器可被欺骗) |
| 与 GAE 的关系 | GAE 用 函数近似步级 advantage | PRM 直接提供步级 advantage 估计 |
PRM 的步级 advantage 定义:理论上最干净的 PRM 步级 reward 是该步骤带来的"未来成功率变化":。这与 RL 里的 advantage()在定义上等价8把 PRM 的步级奖励定义为步级 advantage(未来成功率的变化量),理论上等价于 RL 的 Q-V 差,并需要用独立 prover policy 而非当前策略来估计。Setlur 2024 ↗。实践里用蒙特卡洛 rollout 估计,代价是每步需要大量 rollout。
把上面的 估计落到 agent 上 = AgentPRM(2502.10325):用 MC rollout 的 actor-critic 过程奖励把每步的 Q / 过程信号自动标出来(免逐步人工标注),还给出 InversePRM——从成功演示反推过程奖励、省掉显式 outcome 标注(但仍需 learner rollout 构造负例);后续(2511.08325)把信号从「是否成功」拆成 promise(≈Q)/ progress(≈advantage)(用 TD + GAE 估「这一步把成功概率往前推了多少」),其中 progress 项更贴上面 的定义。caveat:其报告分数依赖具体 benchmark / 配置(且部分为极新预印),此处只取机制(MC 过程奖励如何自动化步级信用),不引分数。
面试陷阱:"用了 PRM 就不需要 discount 了吗?" — 错。PRM 提供的是步级奖励,这些奖励仍然需要用折扣或 GAE 累加成 return;PRM 解决的是"哪步该给多少奖励",不解决"如何把多步奖励折算成当前策略的梯度信号"。
参考文献 / References
均为经典承重方法的原始出处,已逐条核对(标题 + arXiv ID)。点上标跳转、点 ↩ 返回。
- Yao et al. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629 — think→act→observe 范式. ↩
- Shao et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. 2024. arXiv:2402.03300 — GRPO:组内相对 baseline、去 critic. ↩
- Lightman et al. Let's Verify Step by Step. 2023. arXiv:2305.20050 — 过程监督 / PRM(PRM800K). ↩
- Lambert et al. Tülu 3: Pushing Frontiers in Open Language Model Post-Training. 2024. arXiv:2411.15124 — RLVR:以可验证对错为终端奖励. ↩
- Schulman et al. Proximal Policy Optimization Algorithms. 2017. arXiv:1707.06347 — PPO(策略梯度基线). ↩
- Schulman et al. High-Dimensional Continuous Control Using Generalized Advantage Estimation. ICLR 2016. arXiv:1506.02438 — GAE:λ 加权 TD 残差,bias-variance 权衡. ↩
- Gao et al. Scaling Laws for Reward Model Overoptimization. 2022. arXiv:2210.10760 — proxy vs gold reward 随 KL 偏离的缩放定律. ↩
- Setlur et al. Rewarding Progress: Scaling Automated Process Verifiers for LLM Reasoning. 2024. arXiv:2410.08146 — PRM 步级 advantage = 未来成功率变化量,等价于 Q-V 差. ↩