← 返回博客列表
论文 ICLR'25 (Spotlight)

Hammer: Robust Function-Calling for On-Device Language Models via Function Masking

日期:2024/10/04 作者:Qiqiang Lin, Muning Wen, Qiuying Peng, et al.

研究问题

在真实场景中,函数名和参数名往往简短、带有个人命名风格,而且同名函数在不同系统里可能对应不同语义。模型如果过度依赖这些紧凑名称,就会出现两类典型错误:

  • 函数选择错误:看到熟悉的函数名就优先匹配,即使实际功能并不一致。
  • 参数填充错误:沿用训练中学到的旧参数用法,而忽略当前任务里的参数描述。

论文进一步指出,函数调用还有一个常被忽略的问题:当候选函数里根本不存在正确工具时,模型也需要学会输出空列表而不是强行调用。

技术方案

1. Function Masking:训练时主动削弱命名线索

Hammer 的训练框架通过遮蔽候选函数中的显式名称信息,让模型被迫阅读描述字段:

  • 将候选函数名替换为随机字符串,降低模型对函数名模式的记忆依赖。
  • 将参数名也替换为随机字符串,迫使模型依据参数描述理解参数用途。
  • 将默认参数值随机化,并附加到参数描述中,继续把注意力推向描述文本。
  • 同步更新训练标签中的函数名和参数名,保证监督信号与遮蔽后的候选列表一致。

这套做法的目标很明确:让模型在训练时更关注“函数做什么、参数怎么用”,而不是“它叫什么名字”。

2. Irrelevance-Augmented Dataset:专门训练“不要乱调用”

模型在函数选择任务上变强时,可能反而更不愿意承认“当前没有合适函数”。为了解决这一点,Hammer 在原始 xlam-function-calling-60k 数据上构造了一个增强集:

  • 从原训练集采样 7,500 条样本。
  • 故意把正确函数从候选列表里删掉。
  • 将标签改为空列表。

这相当于把“相关性拒识”单独做成训练目标,使模型在没有合适工具时更可能选择 abstain,而不是输出错误调用。

实验与结果

BFCL 排名

BFCL 结果显示,Hammer-7B 的整体准确率为 83.92,仅次于三个 GPT-4 变体,高于 GPT-4-turbo-2024-04-0983.89GPT-4o-mini-2024-07-1883.35。这说明一个 7B 级别的开源模型,在函数调用任务上已经逼近顶级闭源模型。

跨 benchmark 泛化

本文在 API-Bank、ToolAlpaca、Seal-Tools、Nexus、Raven 等多组学术 benchmark 上比较不同模型,强调 Hammer 的优势不只是单点成绩,而是跨数据集更稳定:

  • Hammer-7BFunc.+Args 平均 F1 为 76.21
  • 同规模的 xLAM-7B-fc67.65
  • 更大的 Granite-20B-FunctionCalling72.56

这与论文的问题设定一致:Hammer 不是只追求某个榜单最优,而是追求跨命名风格、跨 benchmark 的稳健泛化。

细粒度分析

在 BFCL 的细分任务中,本文指出 Hammer-7B 在更贴近真实使用的 Executable Function Evaluation 上甚至超过 GPT-4;在更复杂的并行多函数调用任务上,函数遮蔽训练的优势更明显。论文据此认为,任务越复杂,模型越需要真正理解函数描述,而不是依赖短名字进行模式匹配。

消融结论

  • 遮蔽比例过大,会拖慢同任务场景下的学习速度。
  • 但更高的遮蔽比例有助于跨场景泛化,说明函数遮蔽确实在抑制训练集命名模式上的过拟合。
  • 无关函数增强数据的占比与调用能力之间存在权衡。
  • 在当前实验设置下,增强数据占比约 10% 时整体效果最好,这也是他们将增强集规模定为 7.5k 的依据。

与相关文档的对照理解

结合仓库里另外 3 篇相近文档,可以更清楚地看出 Hammer 的定位:

  • HammerBench 指出,移动助手场景中的多轮函数调用错误里,参数名错误是重要失败来源。Hammer 则把“命名误导”直接上升为训练目标,两者在问题定义上高度一致。
  • MobileUse 处理的是移动 GUI 代理的长程执行、反思与恢复能力。Hammer 解决的是更底层的工具调用鲁棒性,因此更像代理系统中的“调用层能力模块”,而不是完整代理框架。
  • KnowU-Bench 表明真实个人助理系统的瓶颈并不只在 GUI 操作,还在偏好获取、干预时机和同意机制。Hammer 能提升“调用是否正确”,但不能替代“是否该调用、何时该询问用户”的上层决策能力。

可复用启发

这篇论文对工具使用类代理系统有几个可迁移的方法论价值:

  • 当 schema 中存在大量人为命名差异时,应优先训练模型理解描述字段,而不是强化对名称模式的记忆。
  • “没有可用工具时拒绝调用”应被视为独立能力,而不是函数选择能力的自然副产物。
  • 评估函数调用模型时,不能只看单一 benchmark;跨 benchmark 稳定性更能反映真实可部署性。
  • 对端侧或小模型而言,结构化训练策略可能比单纯扩大参数规模更有效。

局限与边界

  • 本笔记主要依据 arXiv 摘要页与 HTML 正文整理,未补读 PDF 附录中的全部实验细节。
  • 文中可以确认 Hammer 提供了训练框架、增强数据集和 1.5B/4B/7B 模型,但部署开销、推理延迟、端侧资源占用等工程细节在当前材料中未系统展开。
  • 论文证明了函数调用鲁棒性提升,但并未解决完整 agent 系统中的规划、记忆、偏好建模与安全授权问题。

结论

Hammer 的关键价值,在于把函数调用错误中的“命名诱导偏差”明确建模,并用函数遮蔽加无关函数增强数据两个简单而直接的机制,提升小到中等规模模型的跨场景泛化能力。若目标是构建可部署的端侧工具调用模型,这篇工作提供了一个比“继续堆数据和参数”更有针对性的训练思路。

来源:[[Hammer_ Robust Function-Calling for On-Device Language Models via Function Masking]]