多轮 agent 蒸馏的「师生状态错位」:只在状态匹配的轮次教,Qwen3-1.7B 上 ALFWorld 0.75 涨到 0.87

When Privileged Guidance Misaligns: State-Matched Routing and Contextualized Self-Distillation for Multi-Turn Agents

Junzhuo Liu, Weiwei Li, Jun Ling, Peng Wang

cs.AI

2026-08-05

特权蒸馏常拿不再适用的成功轨迹教学生。SMRC-SD 每步核对师生状态,只在匹配轮次蒸馏,Qwen3-1.7B 上 ALFWorld 0.746 提到 0.865、WebShop 0.574 提到 0.693。

这篇在解决什么

多轮 agent(在 ALFWorld 里做家务、在 WebShop 里网购)的训练有个老问题:结果奖励只告诉你整轮成没成,不告诉你中间哪步走错了。on-policy distillation(OPD,在线策略蒸馏)给了一个更密的信号,让一个和 student 同步的 teacher 重新给 student 每一步的回答打分,而且 teacher 能看到一些训练时才有的「特权」信息,比如一条成功的参考轨迹。

最直接的做法(FullPath-SD)是每一轮都把完整的成功轨迹塞给 teacher。但这有个被这篇挑出来的毛病:在交互环境里,student 之前几步的动作一直在改环境状态(位置、背包、当前页面、已完成的子目标)。student 可能走了不同的路、用不同的顺序完成子目标,于是它到的那一步状态根本不在参考轨迹覆盖的范围内。这时候参考轨迹虽然在任务层面仍然「正确」,却给不出一个从当前状态出发能走的下一步。论文管这叫 state-reference mismatch(状态与参考错配)。硬把这种错配的轨迹喂给 teacher 去重打分,反而可能压低那个本该正确的动作 token 的概率。

方法

SMRC-SD 把成功轨迹当成一个按状态索引的资源,而不是一段无脑全文。两个阶段:

状态匹配路由。每个轮次,先用一个环境适配器构造紧凑的状态签名:参考轨迹那边用动作前缀重建出每个位置的前置状态,student 这边用真实历史、观测、可行动作集构造当前状态。匹配器检查三件事:任务身份(精确取同任务的参考)、状态兼容(一个非对称关系 |=g,允许 student 多做一些进度但不能缺、不能矛盾于下一步所需)、候选可容许(参考的下一个动作能落到当前可行动作集里)。满足就标记为 matched,并选最晚的那个匹配位置(避免重复已完成子目标)。蒸馏只在 matched 轮次上施加,其余轮次只走 GRPO。

上下文化自蒸馏。对 matched 轮次,把 teacher 上下文 ct 渲染成三段:完整成功路径(全局结构)、当前状态一句话摘要(走到哪了)、落地的候选下一步动作(局部延续)。teacher 看着这三段去重打分 student 那条原本采样的回答。

最终损失是 GRPO 在所有轮次上照常,加上一项 SDL 只在 matched 轮次(λSDL=0.01)。重点:所有特权组件(参考、签名、匹配、候选、teacher 上下文)都是训练时专用,推理时 student 只用普通 prompt,啥特权都不带。

结果

两个互补的基准:ALFWorld(具身家务,TextWorld)和 WebShop(网页购物)。

模型 / 基准FullPath-SDSMRC-SD
Qwen3-1.7B ALFWorld Avg@40.7460.865
Qwen3-1.7B ALFWorld Pass@40.8360.914
Qwen3-1.7B WebShop Acc0.5740.693
Qwen2.5-3B ALFWorld Avg@40.7660.883

对照基线:Qwen3-1.7B 上纯 GRPO 在 ALFWorld 是 0.717,SDAR 是 0.578,SMRC-SD 的 0.865 都压过它们,也超过 SDAR 论文自己报的 0.844。

消融把两个设计分开测,结论很干净:

一个固定状态的 teacher 干预实验直接量了错配的危害:同样的 FullPath 干预,在 matched 轮次上把 teacher 偏好往候选动作上拉 +1.158,在 unmatched 轮次上反而拉低已对动作的分(均值 −0.052)。错配的参考确实会主动伤害,不只是没用。

顺带一个工程红利:SMRC-SD 的回答更短更不啰嗦,平均 78.8 token(接近 GRPO 的 79.5),而 FullPath-SD 是 142.6、Skill-SD 是 255.6;4-gram 重复率 8.8%,远低于 FullPath-SD 的 20.7% 和 Skill-SD 的 38.6%。

为什么重要

这篇给多轮 agent 蒸馏指出一个被普遍忽视的上游问题:成功轨迹是有局部有效性的,它的每一步只对它被演示出来的那个前置状态负责。一旦 student 的轨迹分叉,整条轨迹就不再是「无条件可教」的教材。把「轨迹当条件计划、用之前先确认局部有效性」做成显式检查,比各种事后给蒸馏信号加权或掩蔽的方法更治本。

对做 agent 训练的人,实操含义是:如果你在用成功轨迹做蒸馏(很多 RL agent 流水线都这么干),先问一句「student 现在的状态,这条轨迹还接得上吗」。接不上就别教那一轮,让 GRPO 自己管。代价是要给每个环境写一个状态签名适配器,这是这篇的主要工程门槛。

局限与存疑

论文承认:

读完还有几处存疑:只测了 ALFWorld 和 WebShop 两个相对结构化、状态离散的环境,签名好写。放到状态连续、观测高维的环境(真实浏览器操作、复杂工具调用),手工签名这套还撑不撑得住是个问号,论文没有碰。所有参考轨迹还是来自现成的成功演示(ALFWorld 的专家 walkthrough、WebShop 从目标商品构造的 trace),等于假设了高质量参考的存在;没有参考的任务这套就退回纯 GRPO。增益虽稳,但两个模型、两个环境的盘子不算大。

术语

原文与代码

相关论文

全部论文解读