论文
工具调用在语言模型中是线性可读和可操纵的
Tool Calling is Linearly Readable and Steerable in Language Models
摘要
语言模型代理可以通过调用工具来采取实际行动,因此选择错误的工具可能会导致难以挽回的错误。大多数评估仅在模型生成调用后观察工具选择。我们在生成之前从模型中读取此选择,并对其进行引导。对于每个工具,我们从几个示例请求中对模型的隐藏状态进行平均,以获得工具向量。将新请求与这些工具向量进行比较可以预测它需要哪种工具。两个工具向量之间的差异给出了一个转向方向,可以将模型移向所选工具而无需重新训练。在从 4B 到 27B 参数的八个指令调整模型中,转向将生成的调用更改为 56-78% 的保留工具对中选定的目标工具,具体取决于模型。我们还从 $τ$-bench 和 ToolBench 观察真实 API 的转向,尽管不太可靠。在最后一层,只需提高目标工具名称的分数即可进行转向。为了测试这一点,我们将转向方向与仅提高分数的方向逐层进行比较。在中间层,在我们深入研究的三个模型中,转向方向比提高分数方向切换更多的调用。因此,工具向量在最后一层之前捕获了部分工具选择。相同的工具向量还有助于在生成之前识别可能的工具选择错误。当请求同样接近两个工具向量时,调用更有可能出错。在四个模型中,该信号的 AUROC 达到 0.61-0.78,并且优于其中三个模型的第一个词元置信基线。总之,这些结果表明模型的隐藏状态提供了一种在调用之前读取、引导和检查工具选择的方法。