把轮次当成分配单位:TurnOPD 如何让长程 Agent 蒸馏提速 2.29 倍
你有没有被这样一种情况搞崩溃过:模型在长程 Agent 任务上跑 OPD(On-Policy Distillation),每一步都按部就班做了,KL 损失也在下降,log 看起来很正常——可最后的成功率死活上不去?
我之前在调类似流程的时候碰到过。当时第一反应是"teacher 是不是还不够强",第二反应是"rollout 太短了所以信号不够",第三反应是"loss 加权是不是不对"。但说真的,这三个直觉都没说清楚问题到底出在哪。
这篇 arXiv:2607.05804 给了我一记相当清醒的"诊断三连"。它先告诉你 vanilla OPD 在长程 Agent 任务里到底把钱(compute)和损失(loss)花在了哪些"轮次"上,再告诉你这个分配为什么本身就是结构性的浪费,最后才给出两个简单得有点不好意思的修复。
核心摘要
痛点:在长程语言 Agent 任务上,沿用 vanilla OPD(固定 rollout 深度 + trajectory 级 KL 归约)会把绝大部分 compute 浪费在尾部低信息轮次上,同时把绝大部分 KL 损失压在浅层 token 上。结果是:训得越久,越难看到准确率提升,wall-clock 时间却越堆越离谱。
核心方案:TurnOPD 用两个 turn-level 预算控制器把"分配单位"从 token 抬回"轮次"——(1)自适应 rollout 深度控制器 用周期性的探针 rollout 估算 survivor-weighted KL 质心 \(H_{\mathrm{eff}}\) 和成功完成深度的 80% 分位数 \(H_{\mathrm{cov}}\),取二者较大者作为下一轮的 rollout cap;(2)渐进式 turn 归一化损失 把 KL 聚合权重从 token mass 平滑地插值到按 turn 均匀的 \(q_t^{\mathrm{turn}}=1/T\),让训练后期能更公平地把梯度砸到深轮决策上。
关键效果:在 ALFWorld(Qwen3-1.7B 学生)、WebShop(Qwen3-1.7B)、Multi-Hop Search(Qwen3.5-2B)三个长程任务上,TurnOPD 把 100 步训练的 wall-clock 时间从 4.42h 砍到 1.93h(ALFWorld-1.7B),2.29 倍加速的同时 Same-Step Avg@4 从 83.0 涨到 86.3;WebShop 上 1.24h vs 1.57h,82.80 vs 76.98。
一针见血的评价:这不是模型架构创新,而是"训练循环里被默认假设拖垮的算力分配"的一次系统性重设。方法本身高度模块化,思路甚至可以照搬到 GRPO 类的策略优化上。如果你也在做长程 Agent 的训练,强烈建议先把这篇里的诊断图看一遍,再决定要不要改自己的 recipe。
论文信息
- 标题:TurnOPD: Making On-Policy Distillation Turn-Aware for Efficient Long-Horizon Agent Training
- 作者:Yuhang Zhou(复旦大学 / 腾讯混元)、Kai Zheng(腾讯混元,项目负责人)、Haoling Li(腾讯混元)、Dengyun Peng(复旦大学)、Can Xu(腾讯混元,通讯)、Jingjing Chen(复旦大学,通讯)
- 链接:https://arxiv.org/abs/2607.05804
- 会议:ICLR 2026 conference(参考 .bst 与 cls 命名)
问题动机:OPD 在长程 Agent 上的"水土不服"
On-Policy Distillation 的好处是"在学生自己的轨迹上对齐 teacher"——teacher 评估学生走过的状态,反向 KL 提供稠密 token 级监督。听起来对长程任务应该很香,理由是:
- 不依赖稀疏 reward;
- teacher 是在学生自己诱导的状态上查询,避免了 off-policy 分布漂移;
- token 级 KL 是稠密的,可以一直监督到 trajectory 末尾。
但问题来了:长程 Agent 的 trajectory 不是"一段文本",而是一串"轮次"。每轮里学生做出一个动作(带推理 + 工具调用),环境给一个观察,下一轮又基于这个新观察继续。这个 turn 结构和 vanilla OPD 的 token 级目标之间有一个根本性的错配。
具体两个错配,论文给了名字——外部错配和内部错配:
- 外部错配(rollout 深度层面):固定 rollout 深度意味着,不论每轮的"修正信号"有多强,都要采到最大 horizon。但实际上,越往后能"幸存"到那一轮的 trajectory 越少,深轮次 KL 的 survivor 权重迅速衰减。采到的尾部 token 大部分是"已经被 student 自己吃掉的 context"逼出来的低熵续写,KL 噪声大、信号弱。
- 内部错配(损失分配层面):trajectory 级 KL 归约用 token 数做分母。浅轮次 token 密度高(输入长、模型生成多),深轮次幸存少但每轮 token 也不少;综合下来浅轮次贡献了绝大部分 KL 损失,深轮次被结构性饿死。
直觉上的"加大 KL、加长 rollout"在这两个错配上都是错的——前者加深了损失不均,后者把算力塞进了噪声区。
诊断:把"轮次"作为分配单位会带来什么
论文用 vanilla OPD 在 ALFWorld-4B 和 Multi-Hop Search-2B 上跑了 100 步,把监督信号按 turn 展开。诊断一共有三张图,先看最直觉的那张。
诊断 1:每轮 KL 的真实分布

图 1:turn-resolved 的教师熵(左)、每轮 reverse-KL(中)和 step-by-turn KL heatmap(右)。上排是 ALFWorld-4B,下排是 Multi-Hop Search-2B。颜色由深到浅对应 turn 0 → 41/11。ALFWorld 上教师熵随 turn 升高而下降,KL 集中在前 10 轮;Multi-Hop Search 上教师熵随 turn 升高,但 KL 仍然前重后轻。
论文的核心观察:KL 不是平的、也不是稳的。
- ALFWorld 上,turn 0 的 KL 在 0.4-0.5 之间,前 20 步就掉到 0.2 以下,剩下 20 步的深轮次 KL 几乎在 0.05-0.15 区间震荡。teacher entropy 也是随 turn 升高而下降的,但KL 的衰减比 entropy 的衰减更快。
- Multi-Hop Search 上更戏剧化:teacher entropy 反而随 turn 升高(深轮是 search/read,需要更长尾的分布),但 KL 仍然前重后轻。说明 KL 不完全被 teacher uncertainty 决定,还有别的结构在压它。
这种"KL 在尾部塌掉"的现象,第一直觉是"学生学会了",但论文立刻做了一组 control 来打脸这个直觉。
诊断 2:KL 还能不能区分成功/失败轨迹?
定义 \(G_t = K_t^{\mathrm{fail}} - K_t^{\mathrm{succ}}\),把成功和失败的 rollout 分别按 turn 算 KL 差。如果 KL 是干净的"还需修正"信号,失败轨迹应该 KL 更大,\(G_t > 0\)。

图 2:\(G_t = K_t^{\mathrm{fail}} - K_t^{\mathrm{succ}}\) 随 turn 的变化。Early / Mid / Late 分别对应训练 0-30 / 30-60 / 60-100 步。ALFWorld 上 \(G_t\) 随 turn 上升而变负:深轮次反而是成功轨迹 KL 更大;Multi-Hop Search 上 \(G_t\) 始终为正但随 turn 衰减。
结果让人意外:
- ALFWorld 上 \(G_t\) 是负的——尤其在深轮次。看到这个负号挺反直觉的:deep turn 的 KL 不是"还需修正",反而是"成功轨迹在更复杂的 context 上 teacher 也更不确定"。失败轨迹在 deep turn 的低 KL,是因为它已经陷入重复/模板化 context,teacher 也懒得给信号了。
- Multi-Hop Search 上 \(G_t\) 为正但很弱,且随 turn 衰减。说明即便在有成功/失败区分的任务上,深轮次 KL 的"结果预测力"也在弱化。
这个 control 实验直接把"深轮次 KL 低 = 学得好"这个直觉打掉了。
诊断 3:污染-压缩机制(Contamination-Compression)
论文给了一个形式化解释。学生和 teacher 在某个 context \(c\) 下的 next-token 分布可以分解为
其中 \(p_F\) 是被 context 几乎"锁死"的那部分(重复字符串、格式、抄录实体、闭合分隔符等),\(\lambda(c)\) 是 context-forced mass。
由 KL 联合凸性立得(论文里给了证明):
这就是 Proposition 1 里的 contamination compression bound:观测到的 KL 只能捕捉到"自由分量"中 \(\le 1-\lambda(c)\) 的那部分。
直觉含义非常朴素——在 student 自己生成的 context 上,两边都被 context 拉成同一个 surface continuation,policy 级的真实分歧被压缩进自由分量。越长的 rollout、越多 student 自己的输出,\(\lambda(c)\) 越大,观测到的 KL 越虚。
由此得到非对称推论:失败轨迹往往陷入重复动作、循环、模板化续写——这些恰恰是 \(p_F\) 最强的位置,因此 \(\lambda_t^{\mathrm{fail}} > \lambda_t^{\mathrm{succ}}\),失败轨迹的 KL 被更狠地压下去。这就解释了图 2 里 \(G_t\) 变负。
诊断 4:损失预算的去向
把诊断推进到"优化器把钱花到了哪"。定义 turn-\(t\) 的损失占比 \(s_t^{\mathrm{traj}}\) 为该 turn 的 KL 总和除以整 batch 的 KL 总和。

图 3:ALFWorld-4B 与 Multi-Hop Search-2B 上每轮 KL 损失占比。线条面板给出每轮随训练步的曲线,heatmap 给出原始 step-by-turn 分布。ALFWorld 上 turn 0 一个轮就吃掉约 25% 的 KL 损失,前 3 轮接近 50%,可靠深轮次(第 3 段)只分到 3.6%–4.5%;Multi-Hop Search 上前 3 轮占 38%–40%,深轮次 11%–13%。
把这张图和论文里 Table 2 的数字合在一起看(深/浅 raw KL 比、deep support、deep loss budget):
| 任务 | 阶段 | Deep/Shallow raw KL | Deep support | Deep loss budget |
|---|---|---|---|---|
| ALFWorld | 早训 | 31% | 23.0% | 3.6% |
| ALFWorld | 晚训 | 42% | 18.2% | 4.5% |
| Multi-Hop Search | 早训 | 90% | 17.3% | 12.9% |
| Multi-Hop Search | 晚训 | 92% | 15.5% | 11.1% |
两点结论:
- trajectory 级归约产生预算错配——深轮次从优化器拿到的损失份额严重不足;
- 硬性 turn-level 归约(直接给每轮等权)可能矫枉过正——ALFWorld 深轮次的 raw KL 只有浅轮的 31%–42%,Multi-Hop Search 上 raw KL 几乎平,但 deep support 只有 15%–17%。一上来就把所有 turn 等权,会过快地放大低支持度的深轮估计。
TurnOPD 的方法:把"轮次"做成真正的分配单位
基于诊断,论文提出两个 turn-level 预算控制器。一个管"采多深"(rollout 深度),一个管"怎么分"(loss 归一化)。

图 4:TurnOPD 总体框架。左边(红)是 vanilla OPD 的两个错配:external mismatch(采到最大 horizon 浪费尾部 compute)和 internal mismatch(trajectory 级归约把 KL 损失压在浅 token 上,深轮次饿死)。右边(青)是 TurnOPD 的两个修复:自适应 rollout 深度控制器 + 线性 round-normalization mixing。底部:训练过程产生更好的 accuracy-time frontier。
控制器 1:自适应 rollout 深度
设 \(H^\star\) 是最优(但不可观测)的 rollout 深度——浅了欠探索,深了浪费 compute。论文假设它存在(附录里给了一个 efficiency-coverage sandwich 的存在性证明),然后用两个互补信号构造一个在线代理:
(a)效率侧 \(H_{\mathrm{eff}}\):把每轮 KL 当成"蒸馏价值"的一个代理,乘以该轮的幸存率 \(n_t/n_0\),得到一个 survivor-weighted 分布 \(q_t\),再取一阶矩:
直觉上:\(H_{\mathrm{eff}}\) 跟着"监督信号的 centroid"走,浅轮次 KL 大时它浅,深轮次持续有信号时它自然加深。
(b)覆盖侧 \(H_{\mathrm{cov}}\):只看成功轨迹的完成深度,取 80% 分位数 \(H_{\mathrm{cov}} = \hat Q_{0.8}(L_{\mathrm{succ}})\)。这是一个下界——确保 rollout 不会短到丢掉大多数成功完成。
最后:
外加一个 EMA 平滑:\(\bar H_k = (1-\alpha_{\mathrm{ema}}) \bar H_{k-1} + \alpha_{\mathrm{ema}} H_{\mathrm{ctrl},k}\),再用 \(\hat H_{k+1} = \mathrm{clip}(\mathrm{round}(\bar H_k)+1, H_{\min}, H_{\max})\) 作为下一次的 rollout cap。
实现上的一个细节是 probe rollout——每隔 \(r_{\mathrm{probe}}\) 步(论文设 8 步)做一次完整 horizon 的 rollout,只用 probe 出来的未截断轨迹去估 \(H_{\mathrm{eff}}\) 和 \(H_{\mathrm{cov}}\)。常规训练步用当前 cap \(\hat H_k\) 截断即可。这一步对正确性很关键,否则用截断后的轨迹估 \(H_{\mathrm{eff}}\) 会持续系统性低估。
控制器 2:渐进式 turn 归一化
损失归一化用线性插值:
其中 \(q_t^{\mathrm{traj}} = n_t / \sum_j n_j\) 是 trajectory 级(token 质量加权),\(q_t^{\mathrm{turn}} = 1/T\) 是 turn 级(轮次均匀)。插值系数 \(\alpha\) 绑在训练进度上:
论文里 \(s=0, e=1\),\(\mathrm{progress} = k/K\)。也就是 \(\alpha\) 从 0 线性增长到 1。
直觉含义:早期保持 token-level 归约稳定(KL 自然集中在浅轮次,token-level 归约不会引入额外噪声),后期逐渐把"注意力"挪到深轮次,让那些 survivor 少但有信号的位置也能拿到梯度。
两个控制器一前一后地接上:rollout 深度决定"采多深",loss 归一化决定"采到之后怎么分"。
实验:把 frontier 往外推
主结果
| 任务 | 学生 | Teacher | 方法 | Least-Time Avg@4 | Same-Step Avg@4 | Wall (h) | Speedup |
|---|---|---|---|---|---|---|---|
| ALFWorld | Qwen3-1.7B | Qwen3-8B-GRPO | Zero-Shot | 0.00 | 0.00 | -- | -- |
| ALFWorld | Qwen3-1.7B | Qwen3-8B-GRPO | Teacher | 90.75 | 90.75 | -- | -- |
| ALFWorld | Qwen3-1.7B | Qwen3-8B-GRPO | Vanilla OPD | 73.52 | 83.00 | 4.42 | 1.00× |
| ALFWorld | Qwen3-1.7B | Qwen3-8B-GRPO | TCOD-F2B | 80.06 | 80.06 | 1.87 | 2.37× |
| ALFWorld | Qwen3-1.7B | Qwen3-8B-GRPO | TurnOPD | 85.60 | 86.29 | 1.93 | 2.29× |
| ALFWorld | Qwen3-4B | Qwen3-8B-GRPO | Vanilla OPD | 90.79 | 91.81 | 2.86 | 1.00× |
| ALFWorld | Qwen3-4B | Qwen3-8B-GRPO | TCOD-F2B | 86.50 | 86.50 | 1.89 | 1.51× |
| ALFWorld | Qwen3-4B | Qwen3-8B-GRPO | TurnOPD | 91.73 | 92.21 | 2.16 | 1.33× |
| Multi-Hop Search | Qwen3.5-2B | Qwen3.5-9B-GRPO | Vanilla OPD | 45.77 | 47.82 | 4.45 | 1.00× |
| Multi-Hop Search | Qwen3.5-2B | Qwen3.5-9B-GRPO | TCOD-F2B | 45.64 | 47.77 | 3.80 | 1.17× |
| Multi-Hop Search | Qwen3.5-2B | Qwen3.5-9B-GRPO | TurnOPD | 47.24 | 47.24 | 2.94 | 1.51× |
| WebShop | Qwen3-1.7B | Qwen3-8B-GRPO | Vanilla OPD | 76.98 | 81.65 | 1.57 | 1.00× |
| WebShop | Qwen3-1.7B | Qwen3-8B-GRPO | TCOD-F2B | 80.45 | 81.66 | 1.33 | 1.18× |
| WebShop | Qwen3-1.7B | Qwen3-8B-GRPO | TurnOPD | 82.80 | 82.80 | 1.24 | 1.26× |
把数字串成 accuracy-time frontier 图:

图 5:横轴是累计 wall-clock 训练时间(小时),纵轴是 Val Avg@4。浅青为 vanilla OPD baseline,中蓝为 TCOD-F2B,深蓝为 TurnOPD。四张子图分别是 ALFWorld-1.7B / ALFWorld-4B / Multi-Hop Search 2B / WebShop-1.7B。TurnOPD 的曲线整体处于 frontier 的左上外侧。
Least-Time 评估(看最小 wall-clock 即可达到的精度)下,TurnOPD 在所有 4 组 (任务, 学生) 设定上都是最强学生训练方法。Same-Step 评估(同 100 步后看精度)下,ALFWorld-1.7B / 4B、WebShop 上 TurnOPD 也是最优;Multi-Hop Search 上 vanilla OPD 略胜(47.82 vs 47.24),但 TurnOPD 的 wall-clock 仅 2.94h,是 vanilla 的 66%。
特别值得注意的是 ALFWorld-4B 上 TurnOPD(91.73)甚至超过了 teacher 引用(90.75)。这一度让我有点怀疑是不是 teacher 引用没给对——但论文里 teacher 的 GRPO 训练是独立的、引用为 90.75 没有算错,TurnOPD 真的超过了 8B-GRPO teacher。这在 OPD 类工作里其实并不奇怪(student 走自己的轨迹,teacher 给的 KL 信号会被"再加工"),但能稳超 1 个点说明两个控制器一起工作确实让优化过程非常高效。
Diagnostic–Controller Alignment:控制器真的在做它该做的事吗?
论文在主结果之外专门验证了 \(H_{\mathrm{eff}}\) / \(H_{\mathrm{cov}}\) 的实际行为。

图 6:横轴是训练步(注意 x 轴标签与论文正文一致,单位是 step 而非小时——这是图本身的轴),纵轴是 rollout depth(0-based turn index,实际 cap 大约 +1)。浅青是 \(H_{\mathrm{eff}}\),深蓝是 \(H_{\mathrm{cov}}\),红色是 EMA 后的实际 cap。ALFWorld 上 \(H_{\mathrm{cov}}\) 主导(深轮次出现成功完成时驱动 cap 加深),WebShop 上保持温和的中等长度,Multi-Hop Search 上 \(H_{\mathrm{eff}}\) 和 \(H_{\mathrm{cov}}\) 交替主导。
这张图说明:
- ALFWorld 上,\(H_{\mathrm{cov}}\) 在训练中段之后稳定主导。当成功 rollout 出现,coverage 拉高 cap;这恰好对应 rollout 长度的 5 → 25 跳变;
- WebShop 上,\(H_{\mathrm{cov}}\) 始终温和(保持在 5-8 区间),这与 WebShop 任务相对短是一致的;
- Multi-Hop Search 上,\(H_{\mathrm{eff}}\) 在前期主导(任务长尾但前几轮信号强),到训练后期 \(H_{\mathrm{cov}}\) 偶尔拉高。
这其实是非常好的"代理变量对齐 sanity check"——控制器没有出现"统一拍一个常数"或者"震荡"那种失控行为,而是跟着任务和训练阶段自适应。
消融:两个控制器各干了什么
拆解两个控制器
ALFWorld-1.7B 上的 Same-Step Avg@4 / 100 步 wall time:
| 配置 | Adaptive Depth | Linear Blend | Avg@4 | Wall (h) |
|---|---|---|---|---|
| Vanilla OPD | 83.0 | 4.42 | ||
| + Adaptive Depth | ✓ | 82.8 | 1.96 | |
| + Linear blend norm | ✓ | 85.1 | 2.59 | |
| TurnOPD | ✓ | ✓ | 86.3 | 1.93 |
配合训练曲线:

图 7:5 个变体——Vanilla OPD、Linear Blend Norm、Adaptive Rollout Depth、TurnOPD(两者合用)、Adaptive Rollout Depth + Turn Norm。横轴是 wall time(小时),纵轴是 Val Avg@4。Adaptive Depth 单用省时间但精度持平;Linear Blend 单用涨精度但耗时间;二者合用在 1.9h 处达到 86.3 最高点。
两个控制器功能正交:
- Adaptive Depth 是"效率杠杆":单用能把 wall time 从 4.42h 砍到 1.96h(-56%),但精度只微降 0.2 个点(83.0 → 82.8)。说明单纯截断 rollout 不够,还得让优化器把钱花对地方。
- Linear Blend 是"优化杠杆":单用让精度涨 2.1 个点(83.0 → 85.1),wall time 只降到 2.59h。说明 turn 归一化直接提升了训练效率,但没解决"采到尾部低信息"问题。
- 合用:精度 86.3(最高),wall time 1.93h(最低之一)。两个杠杆叠加,既有免费的 compute 节省,又有精度提升。
这印证了论文的核心论点:external mismatch 和 internal mismatch 是两个独立的问题,必须分别处理。
KL 归一化方案的对比
| KL 归一化方案 | Same-Step Avg@4 | Deep budget (E/M/L) | α (E/M/L) |
|---|---|---|---|
| Trajectory-level | 83.0 | 3.2% / 0.7% / 1.2% | 0 / 0 / 0 |
| Turn-level(硬切) | 85.0 | 29.9% / 32.0% / 31.9% | 1 / 1 / 1 |
| Linear blend (ours) | 85.1 | 12.8% / 21.6% / 27.7% | 0.17 / 0.50 / 0.83 |
trajectory-level 把深轮次预算压到几乎 0;硬切直接给 30%+,但早训阶段会过快地放大低支持度估计;Linear blend 在早训时 α=0.17(基本还是 token 主导),到中训 α=0.50,到晚训 α=0.83。进度条式的迁移让深轮次的预算份额从 12.8% 涨到 27.7%,稳且有用。
覆盖分位数 \(p\) 的敏感性

图 8:四张子图——(a) Success-CDF 下的 Val Avg@4 随 wall time;(b) Success-CDF 下的 ema-H 随 step;(c) Full-CDF 下的 Val Avg@4 随 wall time;(d) Full-CDF 下的 ema-H 随 step。三条曲线分别是 \(p=0.4, 0.6, 0.8\)。Full-CDF 的 ema-H 整体被推高(30-50),Success-CDF 保持 5-25。
两个观察:
- \(p\) 直接控制 horizon。\(p=0.6\)(Full-CDF)下达到 85.1 / 1.66h,\(p=0.8\) 下达到 85.8 / 1.83h——稍高的 \(p\) 换稍高的精度和稍多的时间。这是一个可调旋钮,不是固定超参。
- CDF 来源显著影响效率。Full-CDF 比 Success-CDF 激进——它把所有 trajectory(含卡到 max horizon 的失败)都算进去,会系统性高估需要的深度。这给了一个有用的工程提示:如果你的任务很难定义"成功"(比如开放式 web research),用 Full-CDF 时把 \(p\) 调小(比如 0.4-0.6)就能匹配 Success-CDF 的效率。
我的判断
读完后我有几个比较明确的感受,按重要性排:
第一,诊断是这篇最值钱的部分。两张诊断图(per-turn KL、loss share)一旦看进去,就很难再用"loss 在掉、reward 在涨但准确率不动"来搪塞自己了。它把"为什么长程 OPD 训不到位"从一句感叹,拆成了两个可观测、可定位的错配。这个分析能力本身比 TurnOPD 方法更值得带回家。
第二,方法本身的"工程聪明"大于"理论突破"。两个控制器用到的工具都很标准——EMA、quantile、线性插值——但合起来恰好踩中两个错配。这其实是个非常"研究员式"的判断:不要在每个错配上各拍一个超参,先把结构性的分配错误识别出来,再各给一个对应的修。这种思路在 GRPO 类工作里也很容易复用(reward shaping、curriculum 设计都能用类似框架)。
第三,contribution 是真实但不夸张的。ALFWorld-1.7B 的 Same-Step Avg@4 涨 3.3 个点(83.0 → 86.3),ALFWorld-4B 涨 0.4 个点(91.81 → 92.21),WebShop 涨 1.15 个点,Multi-Hop Search 在 Least-Time 上涨 1.47 个点。没有一个任务有"突破性"涨幅,但全部任务都同时涨精度和降时间。这正是把 frontier 外推应有的样子:不是单点大胜,是整条曲线被推出去。
第四,与 TCOD-F2B 的对比值得展开说一下。TCOD-F2B 是同期工作,用 curriculum over trajectory length 来节省 compute。在 ALFWorld-1.7B 上它比 TurnOPD 还快(1.87h vs 1.93h),但精度掉到 80.06。它只解决 external mismatch,不解决 internal mismatch——这正好印证了 TurnOPD 的论点:只截 rollout 不重分配 loss,省下的时间是被错配的优化浪费的。我反而觉得 TurnOPD 的 ablation 表比它的主结果更说服人。
第五,几个我有点想追问的细节:
- probe rollout 的频率 8 步是否普遍合适?论文没给 sensitivity study 扫 probe_interval。直觉上,频率太低会让控制器跟不上训练动态,太高又稀释了 compute 节省。这是一个值得在你自己场景里重新调的超参。
- teacher query 的成本没讨论。OPD 本身要 teacher 在 student 的 prefix 上 forward 一次;如果 student rollout 变短,teacher 的总 query 量等比下降,这是 TurnOPD 真正能省 compute 的地方。但论文没量化这个 teacher 端的节省,给的 wall-clock 是总训练时间。
- 深轮次的 raw KL 衰减到底在 ALFWorld 上是 teacher 自身 entropy 衰减造成的,还是 contamination compression 造成的?论文做了一个"非对称压缩解释 \(G_t\) 变负"的理论,但没有用 entropy normalization 控制变量来切分两者的相对贡献。这是一个可以做 follow-up 的方向。
最后一个比较元层面的感受:长程 Agent 训练这个领域,目前最缺的不是"再训一个 SOTA 模型",而是把 compute 分配这件事讲清楚。Rollout 太长、token-level 归约、token-level reward shaping、token-level advantage、token-level credit assignment——这些"默认假设"在 turn 这个粒度上其实都站不住。这篇论文做的事就是把其中两个默认假设显式化,然后用"两个简单的控制器"修复。对任何在长程 Agent 训练里摸爬滚打过的人,这种"把经验直觉形式化"的工作比又一个新 benchmark 实在得多。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我。