Magnet: Multi-turn Tool-use Data Synthesis and Distillation via Graph Translation¶
会议: ACL 2025
arXiv: 2503.07826
代码: 未公开
作者: Fan Yin, Zifeng Wang, I-Hung Hsu, Jun Yan, Ke Jiang, Yanfei Chen, Jindong Gu, Long T. Le, Kai-Wei Chang, Chen-Yu Lee, Hamid Palangi, Tomas Pfister
机构: Google, UCLA
领域: 模型蒸馏 / 工具使用 Agent
关键词: Function Calling, 多轮对话, 图翻译, 数据合成, 上下文蒸馏, DPO, 偏好优化
一句话总结¶
提出 Magnet 框架,基于函数依赖图的随机游走和节点操作(Insert/Merge/Split)构建高质量多轮 Function Calling 训练轨迹,结合基于提示的上下文蒸馏生成正负对比轨迹进行 SFT + mDPO 训练,使 14B 模型 Magnet-14B-mDPO 在 BFCL-v3 上达到 68.01(排名第 4),在多轮场景上大幅超越教师模型 Gemini-1.5-pro-002。
研究背景与动机¶
领域现状:LLM Agent 需要调用外部工具(API/函数)来完成复杂任务。当前模型在单步 FC 上表现不错,但在 多轮、多步骤交互中仍面临挑战。
多轮 FC 的三大挑战: - 嵌套 FC(Nested FCs):某些轮次需要多个甚至嵌套的函数调用,但查询中并未显式提及 - 长依赖(Long Dependency):某些轮次需要使用对话历史中远处的信息来组装 FC - 无关性(Irrelevance):某些轮次的功能或参数缺失,需要模型提出澄清问题
数据瓶颈:BFCL-v3 上最佳开源模型多轮成功率仅 ~10%,现有模型在多轮场景上的低性能导致难以收集高质量训练轨迹
核心动机:设计一个有原则的数据合成管道,从图的视角构建可靠的多轮 FC 训练数据
方法详解¶
整体流程¶
四阶段管道:函数池与依赖图构建 → 节点操作增强 → 来回翻译生成查询-FC 对 → 上下文蒸馏生成正负轨迹
阶段一:函数依赖图构建¶
- 函数收集:从 StableToolBench 和 BFCL-v3 收集 5,011 个可执行 API,涵盖 49 个类别
- 局部依赖图:将函数作为图节点,为每个节点从同类别中采样 30 个邻居候选,用 LLM 判断是否存在输入-输出依赖关系。若源节点的输出与目标节点的输入相关,则建立有向边
- 初始 FSP 采样:从每个节点出发进行 S=7 步随机游走,沿依赖边采样,形成初始函数签名路径 \(\tilde{\phi} = (\tilde{f}_1, \tilde{f}_2, \cdots, \tilde{f}_H)\)
阶段二:节点操作增强¶
设计三种图级操作来覆盖多轮 FC 的三大挑战:
操作 1: Insert(插入)—— 解决嵌套 FC 和长依赖
- 遍历 FSP 中每个轮次的最后一个函数签名 \(\tilde{f}_{hk}\),用 LLM 检查是否有邻居函数满足嵌套调用条件
- 若存在,将嵌套函数追加到当前轮或插入到后续随机位置(模拟长依赖)
- 示例:查询"从旧金山到圣马特奥多少公里"→ 需调用 get_distance()(返回英里)+ convert_unit()(隐式嵌套)
操作 2: Merge(合并)—— 创建单轮多 FC - 以概率 p=0.3 将相邻两轮合并为一轮,模型需理解前一函数的输出来组装后续函数 - 与 Insert 的区别:Merge 合并的函数相关但不一定嵌套
操作 3: Split(分裂)—— 模拟缺失信息 - 随机选择一轮,在其后插入空节点 {},标记为 'miss params' 或 'miss func' - 模型需识别信息缺失并提出澄清问题
执行顺序:先 Merge → 再 Insert → 生成增强 FSP ϕ;额外对 ϕ 使用 Split 生成带缺失信息的 FSP ϕ̂
阶段三:来回翻译(Back-and-Forth Translation)¶
迭代地将增强 FSP 转换为查询-FC 对: - 反向翻译 \(\mathcal{M}_b(f_h) = q_h\):将函数签名转换为模拟用户查询 - 正向翻译 \(\mathcal{M}_f(q_h, f_h, t_{h-1}) = fc_h\):将查询转换为可执行 FC(利用上一轮输出 \(t_{h-1}\)) - 逐轮迭代确保前轮输出就绪后再传递给后续轮次
阶段四:上下文蒸馏生成轨迹¶
正轨迹生成: - 受上下文蒸馏(Context Distillation)启发,在教师模型(Gemini-1.5-pro-002)生成轨迹时,将 FC 引用作为 [Hint] 添加到查询后 - 确保教师模型尽可能准确地生成动作
负轨迹生成: - 收集 SFT 模型在每条数据上的 10 条推理轨迹 - 用 LLM 评判每轮是否包含错误 FC - 将错误 FC 作为误导性 [Hint] 提供给 SFT 模型重新生成负轨迹 - 形成正负轨迹对用于 mDPO 训练
训练损失¶
mDPO(multi-turn DPO)将多轮中每轮的动作分别与参考策略对比,而非整体对比。
数据统计¶
| 类别 | SFT 数量 | mDPO 数量 |
|---|---|---|
| 单轮 | 20,000 | 1,556 |
| 多轮 | 7,800 | 2,250 |
| 无关类 | 6,200 | 750 |
| 多轮平均轮数 | 4.71 | 5.22 |
| 多轮平均 FC 数 | 15.13 | 14.98 |
总训练集 38,556 条,仅约为 APIGen (60K)、Hammer (67.5K) 的一半。
实验¶
BFCL-v3 主结果¶
| 模型 | Overall | 单轮 | 多轮 | 无关性 |
|---|---|---|---|---|
| watt-tool-70B | 74.31 | — | 58.75 | 76.32 |
| GPT-4o (Prompt) | 72.08 | — | 47.62 | 83.76 |
| GPT-4o (FC) | 69.58 | — | 41.00 | 83.15 |
| o1 | 66.73 | — | 28.25 | 89.62 |
| Gemini-1.5-pro-002 | 62.19 | — | 20.75 | 78.15 |
| Magnet-14B-mDPO | 68.01 | — | 37.88 | 84.78 |
| Magnet-14B-SFT | 66.83 | — | 33.38 | 82.59 |
| Magnet-7B-mDPO | 64.64 | — | 27.75 | 78.51 |
| Qwen2.5-Coder-14B (base) | 51.88 | — | 5.38 | 44.58 |
| Qwen2.5-Coder-7B (base) | 53.13 | — | 8.25 | 65.39 |
关键发现: - Magnet-14B-mDPO 在 BFCL-v3 排名 第 4,超越 o1 和教师模型 Gemini-1.5-pro-002 - 多轮场景:14B 从基座的 5.38 → 37.88(+32.5),7B 从 8.25 → 27.75(+19.5) - 所有 Magnet 模型在多轮场景均超越教师模型 Gemini-1.5-pro-002(20.75) - mDPO 相比纯 SFT 在多轮上提升约 2.5-4.5 个百分点
ToolQuery 结果¶
| 模型 | 成功率 | 进度率 |
|---|---|---|
| Magnet-14B-mDPO | 73.3 | 78.7 |
| Gemini-1.5-pro-002 | 68.3 | 74.6 |
| GPT-4o | 63.3 | 80.1 |
| Magnet-7B-mDPO | 67.7 | 73.4 |
| Qwen-Coder-14B | 51.7 | 68.7 |
14B 模型在 ToolQuery 上也达到最佳成功率。
消融实验¶
| 组件 | Overall | 多轮 |
|---|---|---|
| 初始图(无节点操作) | 58.54 | 12.75 |
| +Merge | 60.83 | 20.63 |
| +Merge+Insert | 64.39 | 29.25 |
| +全部操作(SFT) | 66.83 | 33.38 |
| -正轨迹上下文蒸馏 | 60.26 | 18.88 |
| SFT+mDPO | 68.01 | 37.88 |
| -负轨迹上下文蒸馏 | 67.35 | 36.25 |
关键发现: 1. 每个节点操作都带来显著提升:Merge(+7.9 多轮)→ Insert(+8.6)→ Split(+4.1) 2. 正轨迹上下文蒸馏贡献巨大:移除后多轮从 33.38 降至 18.88(-14.5) 3. 负轨迹蒸馏对 mDPO 有贡献但幅度较小(-1.63 多轮) 4. 数据合成可推广到不同基座模型和自训练场景
数据源对比¶
- APIGen+ToolAce 训练的 7B 模型多轮仅 7.13,远低于 Magnet-7B 的 26.50
- 加入无关类数据后整体提升(57.24)但多轮反而微降
亮点与洞察¶
- 图视角的创新性:将多轮 FC 挑战抽象为图节点操作(Insert/Merge/Split),这是一种优雅的结构化方法
- 以少胜多:仅 38K 训练数据(约为 APIGen/Hammer 的一半)即实现排名第 4 的性能
- 学生超越教师:所有 Magnet 模型在多轮场景上均超越教师模型 Gemini-1.5-pro-002,说明合成管道引入了额外监督信号
- 正向提示蒸馏的巨大贡献:消融显示移除正轨迹提示后多轮性能几乎减半
- 多轮 FC 仍是前沿挑战:即使 Magnet-14B-mDPO 多轮成功率也仅 37.88%,最强模型 watt-tool-70B 也仅 58.75%
局限性¶
- 依赖教师模型(Gemini-1.5-pro-002)的质量——尽管学生已超越教师,但初始数据质量仍受教师制约
- 函数池主要来源于 StableToolBench 和 BFCL-v3,API 种类和复杂度可能不完全覆盖真实场景
- 随机游走采样可能错过某些复杂的函数组合模式
- 负轨迹生成依赖 SFT 模型自身犯错——若 SFT 模型过弱或过强,负样本质量可能受影响
- 仅在 Qwen2.5-Coder 系列上验证
相关工作¶
- FC 评估基准:BFCL-v3(综合性)、ToolBench / StableToolBench(多步骤)、ToolQuery(多轮多步骤)
- FC 训练数据合成:Toolformer(文本中插入 API)→ APIGen/xLAM(格式统一+自动查询生成)→ Hammer(函数遮蔽+无关函数)→ Magnet(图结构+节点操作+对比蒸馏)
- 偏好优化:DPO → mDPO(多轮扩展)
评分¶
⭐⭐⭐⭐ (4/5)
- 创新性: ⭐⭐⭐⭐ — 图视角+节点操作+对比蒸馏的组合新颖
- 实验充分性: ⭐⭐⭐⭐⭐ — 两个基准、多个模型规模、详尽消融、数据源对比
- 写作质量: ⭐⭐⭐⭐ — 管道说明清晰,符号一致
- 实用价值: ⭐⭐⭐⭐⭐ — 直接可部署的数据合成管道,效果超越专有模型
- 局限: 多轮 FC 成功率绝对值仍不高,距离实用仍有差距
相关论文¶
- [ACL 2025] Graph Counselor: Adaptive Graph Exploration via Multi-Agent Synergy to Enhance LLM Reasoning
- [ACL 2026] Find Your Optimal Teacher: Personalized Data Synthesis via Router-Guided Multi-Teacher Distillation
- [ICLR 2026] Pedagogically-Inspired Data Synthesis for Language Model Knowledge Distillation
- [ACL 2026] Robust Tool Use via Fission-GRPO: Learning to Recover from Execution Errors
- [ACL 2025] AlignDistil: Token-Level Language Model Alignment as Adaptive Policy Distillation