多教师在线策略蒸馏中工具调用边界漂移的诊断与校准 Diagnosing and Calibrating Tool-Call Boundary Drift in Multi-Teacher On-Policy Distillation
发现多教师蒸馏会把工具调用边界推向过度调用,提出 Soft Clamp 局部校准方案
前置知识
广义知识蒸馏(GKD, Generalized Knowledge Distillation)
知识蒸馏让"学生"模型学习"教师"模型的输出分布。GKD 是一种 on-policy 形式:学生先从自己的当前策略采样生成续写轨迹,再在这些自己生成的样本上最小化学生与教师 next-token 分布之间的散度(如 JSD/KL),而不是在固定的教师硬标签上做监督。由于训练数据来自学生自身的 rollout,分布更贴合学生,区别于传统的监督微调(SFT)。
本文比较的所有方法(vanilla GKD、Hard Clip、Global Reweight、Soft Clamp)都建立在 GKD 的 token 级 JSD 损失之上,理解它是读懂"边界漂移"失败和各校准方案的前提。
多教师在线策略蒸馏(Multi-Teacher On-Policy Distillation, MOPD)
在 on-policy 蒸馏中使用多个教师,每个教师擅长不同行为模式。本文设置两个教师:tool-call 教师专门处理结构化工具调用,response 教师专门处理直接自然语言回答。每个训练样本带一个 teacher tag $m \in \{tool, response\}$,把样本路由到对应教师;学生仍从自己的 rollout 中学习,但在工具调用样本上学工具教师的分布。两个教师从同一基模型初始化并冻结,作为在线监督者而非可部署的平衡基线。
MOPD 正是本文要诊断的对象——作者发现路由固定之后,不同教师的信号会在"何时调用工具"这一行为边界上产生不一致的杠杆效应,从而推动整个学生行为偏移。
工具调用边界与行为杠杆(Tool-Call Boundary & Behavior Leverage)
智能体模型在对话轨迹中需要决定何时发起工具调用(如 `` 标记、函数名)以及何时直接回答。"行为杠杆"指某个 token 位置对未来生成模式的控制程度:模式入口 token(如 ``、函数名)杠杆很高,改写它们会改变整条轨迹类型;而普通内容 token 即使损失大,纠正它通常只改一个局部短语。这与普通"token 难度"概念不同。
本文的核心解释框架"行为杠杆不平衡"正是用这一概念说明为什么少量局部信号能弯曲全局行为,是理解诊断结论与 Soft Clamp 局部作用设计的关键。
Jensen-Shannon 散度与 token 级散度(JSD, Token-level Divergence)
JSD 是衡量两个概率分布差异的对称散度,由两个 KL 散度的平均定义,值域有界 $[0, \ln 2]$。本文在教师的 top-32 返回 token 上对教师分布 $p_t$ 与学生分布 $p_s$ 重归一化,计算每个监督位置的 token 级散度 $d_i = \mathrm{JSD}(p_t(\cdot|x,y_{<i}) \| p_s(\cdot|x,y_{<i}))$,并以此作为蒸馏损失的逐 token 单位;这是 top-k 近似的全词表 JSD。
Soft Clamp 直接作用在这些 token 级 JSD 上做动态压缩,理解散度如何计算以及"极端值集中"现象,是理解校准机制为什么有效的前提。
研究动机
在交织对话与工具调用的智能体轨迹中,模型不仅要学会"怎么用工具",还要学会"何时用、何时直接回答"。多教师在线策略蒸馏(MOPD)看似很契合:一个 tool-call 教师专攻结构化调用、一个 response 教师专攻直接回答。但作者发现一个隐蔽的失败:vanilla GKD 虽然把 should-call 的召回率提升到 91.5%,却也把 over-calling(在本应直接回答的样本上发起工具调用)从 base SFT 的 4.9% 抬高到 14.2%。更棘手的是,常规的聚合训练统计无法解释这一现象——response 样本反而获得了更多 token 暴露、更大的全序列逐 token JSD 和相当甚至更大的平方散度代理,工具调用教师的总散度并不占优。在多轮部署中,这种过度调用进一步恶化为工具调用循环:vanilla GKD 平均每轮 1.515 次调用、Loop@3 达 15.1%、重复同款调用 17.7%,严重拖累可用性。
本文的目标是作者的目标是双重的。第一,诊断这个"边界漂移"到底源自哪里:既然聚合损失看起来平衡,就要在 token 级别、决策级别和多轮级别上找到信号真正起作用的位置。第二,提供一组可对比的校准方案,让 GKD 学生在保留对 SFT 的 call-recall 增益的同时,把 over-calling 从约 14.2% 压回约 9%,并降低多轮循环风险,且保持决策精度(约 88.6%)。他们特别希望得到一种局部的、训练时即可生效、保留非零梯度、且不需要按检查点做推理时验证调参的方案,最终以 Soft Clamp 作为落地选项。
与已有工作不同的是,已有 MOPD 工作主要关心"如何组合或选择教师"(路由机制),而本文的独特切入点是问:路由固定之后,教师信号到底把学生的行为边界推到了哪里?作者引入"行为杠杆不平衡"这一被聚合分析遗漏的变量——token 的学习信号重要性不只取决于幅值,更取决于它落在生成过程的什么位置;落在模式入口等高杠杆位置的小信号,足以改变整条轨迹类型。这种"看信号作用位置而非只看总量"的诊断视角,把多教师蒸馏重新定义为一个行为边界校准问题,弥补了纯聚合损失分析的盲区。
核心方法
方法整体分"先诊断、再校准"两步。直觉是:工具调用边界漂移并非因为总散度大,而是因为极少数高杠杆 token 吞掉了大部分散度质量——vanilla GKD 中 top 1% 的 token 占了 41.2% 的诊断样本 JSD。因此校准应当局部作用在极端散度上,而不是均匀改写所有 token。技术路线上,作者以 GKD 的 token 级 JSD 为基础损失,叠加一个仅作用于 dataset 来源轨迹的 SFT 格式锚($\mathcal{L} = \mathcal{L}_{distill} + \alpha\,\mathbb{1}[z=dataset]\,\mathcal{L}_{SFT}$,$\alpha=0.3$),该锚在所有 GKD 变体中固定不变,用于稳定结构化调用的文本协议。学生采用混合 rollout(概率 $\lambda=0.8$ 取学生自身采样,否则用数据集轨迹),主实验用 Qwen3.5-9B 学生与冻结的 9B 教师对。
核心创新是 Soft Clamp:对一批监督 token 的散度 $\{d_i\}$,取一个被停梯度的批次自适应阈值 $C = \mathrm{stopgrad}(k\cdot \mathrm{mean}_i(d_i))$;对 $d_i \le C$ 的普通 token 完全不动,只对 $d_i > C$ 的极端 token 做前向封顶——前向值等于 $C$、梯度被缩放为 $C/d_i$ 而非归零。这与三类已有方案有本质区别:相对 Hard Clip 它保留非零梯度,相对 Global Reweight(对所有 token 做批次相对加权)它只动极端值、其余 token 一成不变,相对推理时 entry bias 它无需按检查点做验证调参。停梯度的阈值既随当前批次尺度自适应,又不让梯度反传通过批次均值,巧妙地把"前向封顶"和"梯度保留"解耦。
方法步骤详情
完整流程:(1) 对每个监督位置算 token 级散度 $d_i = \mathrm{JSD}(p_t(\cdot|x,y_{<i}) \| p_s(\cdot|x,y_{<i}))$,$p_t,p_s$ 在教师 top-32 token 上重归一化;(2) 轨迹来源按 $\lambda=0.8$ 在学生采样与数据集轨迹间混合;(3) 算阈值 $C = \mathrm{stopgrad}(k\cdot\mathrm{mean}_i(d_i))$($k\in\{2,3,4\}$ 均有效);(4) 逐 token 校准:$d_i\le C$ 时 $d'_i=d_i$,否则 $d'_i=d_i\cdot C/\mathrm{stopgrad}(d_i)$(前向值=$C$、梯度缩放 $C/d_i$);(5) 损失取 $\mathrm{mean}_i(d'_i)$ 加数据集来源轨迹的 SFT 格式锚($\alpha=0.3$);(6) 在 APIGen-MT、BFCL、When2Call 与 BFCL 多轮循环诊断上评估,并以 4B 学生复现。
技术新颖性
新颖性体现在四点。首先是"失败发现":在监督式 MOPD(而非 RL/搜索)中识别出可复现的工具调用边界漂移,证明漂移在聚合损失看似平衡时已悄然发生。其次是诊断框架:把聚合训练统计、稀疏 token 级散度集中度、response 侧决策压力、全生成决策与多轮循环行为串联起来,形成支撑"行为杠杆"解释的多层证据。第三是校准对比:在同教师、同数据、同 OPD 设置下,系统比较 Hard Clip、Global Reweight、Soft Clamp 与推理时 entry bias,明确揭示梯度保留、局部性、种子间变异、call recall 与部署成本之间的权衡。第四是 Soft Clamp 本身:以停梯度的批次自适应阈值实现"前向封顶 + 非零缩放梯度",填补了 Hard Clip(丢梯度)与 Global Reweight(全局改写所有 token)之间的局部空白。
实验结果
核心结果:其一,聚合统计无法解释漂移——response 样本反而获更多 token 暴露与更大全序列 JSD,而 token 级散度高度集中:vanilla GKD 中 top 1% token 占 41.2±0.4% 的 JSD、top 5% 占 76.8±2.9%,Soft Clamp 压到 15.4±3.2% 与 50.7±2.1%。其二,主结果(表 3,三种子):vanilla GKD 决策精度 88.6±0.3、over-calling 14.2±2.1、call recall 91.5±1.7;Soft Clamp 为 88.7±0.7、9.0±0.2、86.5±1.4,把 over-calling 降 5.2 个百分点且标准差最小,代价是 call recall 略降。其三,多轮循环(表 4):Soft Clamp 把 calls/turn 从 1.515 降到 1.289、Loop@3 从 15.1% 降到 10.3%;4B 复现把 over-calling 从 12.8 降到 9.2。BFCL 整体无 GKD 变体超 base SFT,方法针对训练诱发失效。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| APIGen-MT 决策集 over-calling(9B,三种子均值) | over-calling 率(越低越好,%) | Soft Clamp 9.0±0.2 | vanilla GKD 14.2±2.1;Global Reweight 9.7±0.8;Hard Clip 11.9±0.9 | 相对 vanilla 降低 5.2 个百分点,标准差从 2.1 降到 0.2,且决策精度 88.7±0.7 基本持平 |
| APIGen-MT 决策精度(9B,三种子均值) | decision accuracy(越高越好,%) | Soft Clamp 88.7±0.7 | vanilla GKD 88.6±0.3;base SFT 85.3;base 80.7 | 相对 base SFT 提升约 3.4 个百分点,与 vanilla 持平 |
| APIGen-MT call recall(9B,三种子均值) | should-call recall(越高越好,%) | Soft Clamp 86.5±1.4 | vanilla GKD 91.5±1.7;base SFT 75.5 | 相对 base SFT 仍提升约 11 个百分点,但相对 vanilla 降约 5 个百分点(recall/over-call 权衡) |
| BFCL 多轮循环诊断 calls/turn(9B) | 平均每轮工具调用数(越低越好) | Soft Clamp 1.289±0.023 | vanilla GKD 1.515±0.122;Global Reweight 1.297±0.088;base SFT 0.974 | 相对 vanilla 降低约 0.226,三种子标准差最小 |
| BFCL 多轮 Loop@3(9B) | 3 步内循环率(越低越好,%) | Soft Clamp 10.3±0.4 | vanilla GKD 15.1±3.0;Global Reweight 10.8±1.4 | 相对 vanilla 降低约 4.8 个百分点,变异最小 |
| token 级 JSD 集中度(top 1% 占比) | top 1% token 的 JSD 份额(越低越平滑,%) | Soft Clamp 15.4±3.2 | vanilla GKD 41.2±0.4;Global Reweight 32.7±2.4 | 极端信号集中度从 41.2% 降到 15.4%,印证 Soft Clamp 的局部压缩意图 |
| Qwen3.5-4B 小模型复现 over-calling | over-calling 率(越低越好,%) | Soft Clamp 4B 9.2±1.2 | vanilla GKD 4B 12.8±0.7;Global Reweight 4B 9.5±0.8 | 跨学生规模再现同一校准规律,消除单模型疑虑 |
局限与改进
作者承认五点:(1) 主实验只用 Qwen3.5-9B 与单一两教师设置,4B 复现仅固定 9B 教师验证,跨规模/教师对/异构技能广度待补;(2) 机制证据是诊断性而非完整因果证明,多种子决策压力与 token 集中度指明信号位置但未隔离每个 token 成因,附录 C.2 的推理时 entry bias 近似复现循环控制效果却留有 non-tool-final/invalid-call 残差;(3) BFCL 多轮循环诊断是固定模拟环境下的可用性风险度量,non-tool final 只是终止指标、非任务成功精度,不能替代官方基准;(4) 主 GKD 变体共享 SFT 格式锚,纯 OPD 对比同时移锚并改 rollout,只能当 schema 稳定性压力测试而非锚的因果消融;(5) 教师 API 散度基于 top-32 截断重归一化,记录的 JSD 是支撑截断近似而非全词表散度。我额外观察到:BFCL 整体无 GKD 变体超 base SFT、When2Call 非调用情形更差,说明校准只针对训练诱发失效,泛化边界较窄。
独立分析的弱点
第一个弱点是校准只针对"已经偏向过度调用"的 GKD 运行,若起点不同(如本身欠调用)反而可能有害——改进方向是把 Soft Clamp 与自适应的方向感知判据结合,按当前 over/under-calling 状态动态启停。第二个弱点是 Global Reweight 在多指标上与 Soft Clamp 非常接近、4B 多轮均值甚至略优,Soft Clamp 的绝对优势(尤其方差优势)仅基于三个种子,统计把握度较弱——改进方向是扩大种子数并用配对显著性检验给出更稳健结论。第三个弱点是格式锚的存在构成混杂,纯 OPD(去锚、全学生 rollout)在工具调用 schema 上不稳定,使方法对锚有隐性依赖——改进方向是设计不依赖外部 SFT 锚的自洽格式约束。第四个弱点是 top-32 截断 JSD 可能低估真实散度,校准阈值 $C$ 基于截断分布——改进方向是评估全词表或更大 top-k 下的阈值敏感性。第五个弱点是方法未识别 mode-entry token,靠"压缩极端值"间接作用,可解释性有限——改进方向是显式建模行为杠杆并做位置感知加权。
未来方向
作者明确指出未来需在更多规模、更多教师对、异构技能上验证泛化性,并把纯 OPD 的 schema 稳定性与锚的关系理清。基于成果可延伸的方向有:一是把"行为杠杆"从诊断概念升级为可优化的训练目标,显式探测并加权高杠杆位置(mode-entry token、结构标记),可能超越靠极端散度间接作用的 Soft Clamp;二是把 entry bias 与训练时 Soft Clamp 结合,研究"训练时局部压缩 + 推理时轻量偏置"的联合最优;三是把校准推广到多于两个模式(如工具调用/追问澄清/拒答的三分类边界),对应 When2Call 上仍弱的 request-info/cannot-call 情形;四是把 token 级散度校准与 RL 阶段的工具调用崩溃/重复调用问题统一建模,因为本文已显示相关漂移可早在监督蒸馏阶段出现。
复现评估
复现评估偏中等。有利因素:方法描述具体(给出损失式、阈值 $C=\mathrm{stopgrad}(k\cdot\mathrm{mean}_i(d_i))$、校准分支判据、$\lambda=0.8$、$\alpha=0.3$、top-32 截断等超参),主结果报告了 42/44/60 三个种子的均值与标准差,评估协议(APIGen-MT 决策集构造、BFCL 多轮循环诊断的指标定义)写得很清楚,附录给出 trade-off 图、targeted-clamp 对照、clamp 因子敏感性等消融。不利因素:数据集 APIGen-MT 的具体划分、教师模型权重、训练代码与评估 harness 尚未公开——作者仅在文末表示"计划在内部评审后发布训练代码、分析脚本与评估 harness",截至论文发布时尚无链接;算力门槛较高(9B 学生 + 两个冻结 9B 教师 + 多种子),个人或小团队复现困难;部分诊断(process metrics、targeted-clamp)仅用代表性单种子运行,完整复现需要自行重跑日志管线。
论文图表