作者:
(1)加州大学圣巴巴拉分校张克迅及同等贡献;
(2)Northwood High School的Hongqiao Chen,同等贡献;
(3) 李蕾,卡内基梅隆大学;
(4)威廉杨·王(William Yang Wang),加州大学圣巴巴拉分校
在本节中,我们将展示 TOOLDEC 可以在生成工具调用时消除语法错误。我们选择了两个最近的基线,ToolLLM 和 ToolkenGPT,代表了上下文学习和微调范式,以展示 TOOLDEC 的能力。由于两个基线的工具使用设置不同且不能相互应用,我们使用原始论文中的基准分别测试了 TOOLDEC 对这两个基线的性能。通过大量实验,我们表明 TOOLDEC 可以完全消除语法错误,从而提高准确性并缩短推理时间。
ToolLLM(Qin 等人,2023 年)。ToolLLM是一种基于上下文的学习方法,用于工具增强语言模型。它利用指令调整的 LLaMA-7B 模型(Touvron 等人,2023 年)来使用工具。给定与工具相关的任务的自然语言指令,API 检索器首先检索一小部分相关函数。这些相关函数的文本描述和模式在上下文中可用。然后,ToolLLM 使用这些函数进行多步骤推理过程以产生最终答案。
ToolLLM 是在同一篇论文中提出的数据集ToolEval上进行评估的。ToolEval 包含涉及大量(10,000 多个)公开可用的 REST API 的任务。我们使用 ToolEval 中最困难的子集来评估我们的方法——I2-Category 和 I3-Instruction。它们包含需要来自多个类别(例如地理位置、日期/时间等)的复杂和看不见的工具才能解决的任务。平均而言,I2-Category 任务需要 6.76 个工具,I3-Category 任务需要 8.24 个工具。ToolEval 有两个主要指标:通过率衡量模型在一定数量的推理步骤内得出答案的任务百分比。成功率利用由 LLM 驱动的自动评估器,按照预定义的一组标准来获得更好的路径。它将基线答案的质量和正确性与 ChatGPT 生成的参考答案进行比较。秦等人。 (2023)发现自动评估器与人工注释器具有 75.8% 的高相关性。除了这两个指标之外,我们还测量了工具错误率,即至少有一个与工具相关的错误的任务比例。
ToolkenGPT(Hao 等人,2023 年)。ToolkenGPT是一种工具使用的微调方法。ToolkenGPT 将每个工具表示为一个特殊标记,并仅优化工具标记的嵌入以供工具使用。在推理过程中,一旦预测到相应的特殊标记,ToolkenGPT 就会调用该工具。在工具调用期间,它通过从上下文演示中学习来传递参数。ToolkenGPT 使用 LLaMA-33B(Touvron 等人,2023 年)作为其基础模型。
ToolLLM+TOOLDEC。按照秦等人(2023)的方法,我们使用 ReAct(Yao 等人,2023)来规划 ToolLLM 的工具调用。这符合第 3.2 节中第二种模式切换的情况。ToolLLM 的 FSM 有三个部分。首先,格式 FSM 强制执行 ReAct 的“思想、动作、动作输入”语法。解码“Action:”后,此 FSM 转换到函数名 FSM 的起始状态,这保证解码的函数名始终有效。我们还构建了一个基于 JSON 的函数参数 FSM。我们允许 LLM 推理 5 个步骤,然后它必须调用完成操作才被视为“通过”。
ToolkenGPT+TOOLDEC。由于 ToolkenGPT 使用特殊标记来调用工具,因此仅应用 TOOLDEC 来保证参数的语法。在此实验中,我们的 FSM 保证每个参数都是有效数字,并且参数用逗号分隔。它还保证传递给函数的实际参数数量恰好是它所需的数量。我们将 TOOLDEC 与 Hao et al. (2023) 中的两种基线变体进行了比较,一种带有回溯,一种不带有回溯。Backtrace 尝试通过允许 LLM 返回并尝试下一个可能的标记来代替失败的工具调用,从而避免工具调用失败。为了评估 TOOLDEC,除了准确性之外,我们还报告了每个问题的平均推理时间和工具错误率。
TOOLDEC 增强了上下文学习工具 LLM。表 3 显示了 TOOLDEC 在 ToolEval 上的表现。TOOLDEC 在 I2-Category 上的成功率为 55%,在 I3-instruction 上的成功率为 60%。作为原始解码算法的直接替代品,TOOLDEC 消除了所有三种与工具相关的错误,并取得了最佳的胜率和通过率,甚至击败了 ChatGPT。
基线的高工具错误率表明,即使经过指令微调,ToolLLM 仍然缺乏从工具文档中准确调用外部工具的能力。当有多种工具可用时,这种无能为力就更加明显了,例如在 I3-Instruction 中。此外,这些错误严重影响了模型完成任务的能力。
图 4 中,我们展示了两个基准测试中每种错误类型的错误率。对于 ToolLLM,名称错误(即调用不存在的工具)是工具调用中最常见的语法错误。TOOLDEC 完全消除了所有三种错误。
由于函数名称幻觉是最常见的与工具相关的错误,因此一个稍微好一点的基线是使用后缀模糊匹配来缓解它。我们将使用模糊匹配的基线结果显示为 ToolLLM + 模糊匹配,不使用模糊匹配的基线结果显示为 ToolLLM。这种缓解措施提高了通过率,但对成功率影响不大,如表 3 所示,因为当模型无法精确调用所需的工具时,通常会选择错误的 API。总体而言,我们在 ToolLLM 上的实验表明,TOOLDEC 对上下文学习 LLM 非常有效。通过下一个基线 ToolkenGPT,我们表明 TOOLDEC 对微调工具 LLM 也有益。
TOOLDEC 增强了微调工具 LLM。表 4 显示了 FuncQAmulti 上的结果。尽管 ToolkenGPT 通过微调特殊的 token 嵌入消除了调用不存在的工具名称的可能性,但它仍然可能受到其他语法错误的影响,这从 27.9% 的工具错误率可以看出。作为替代品,TOOLDEC 提高了 ToolkenGPT 的准确性,同时推理速度更快。尽管 ToolkenGPT + backtrace 的准确性略高于 TOOLDEC,但它尝试不同工具的时间是 TOOLDEC 的 2 倍。请注意,由于 TOOLDEC 消除了所有工具错误,因此没有失败的工具调用需要 backtrace 重试。结果强调了与工具相关的错误的相关性以及 TOOLDEC 对最近的上下文学习和微调工具增强 LLM 的适用性。