paint-brush
语法无错误且可通用的 LLM 工具使用:ToolDec 支持通用工具选择经过@textmodels

语法无错误且可通用的 LLM 工具使用:ToolDec 支持通用工具选择

太長; 讀書

研究人员提出了 TOOLDEC,一种用于 LLM 的有限状态机引导解码,可减少错误并改善工具使用。
featured image - 语法无错误且可通用的 LLM 工具使用:ToolDec 支持通用工具选择
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

作者:

(1)加州大学圣巴巴拉分校的张克迅及其同等贡献;

(2)Northwood High School的Hongqiao Chen,以及同等贡献;

(3) 李蕾,卡内基梅隆大学;

(4)威廉杨·王(William Yang Wang),加州大学圣巴巴拉分校

链接表

5. 实验 II:TOOLDEC 实现通用工具选择

在实验 II 中,我们展示了 TOOLDEC 如何在没有额外训练数据和工具文档的情况下推广到未见过的工具。我们将 TOOLDEC 与两个强大的基线进行比较——ToolkenGPT(Hao 等人,2023 年)作为代表性的微调方法,RestGPT(Song 等人,2023 年)作为代表性的情境学习方法。我们在三个基准上进行了实验——FuncQA(Hao 等人,2023 年)和 KAMEL(Kalo & Fichtel,2022 年)以及 RestBench(Song 等人,2023 年)。这些基准需要来自不同领域的多种工具集,包括数学推理、知识问答和现实世界的 Web 服务。在这三个领域中,我们的结果表明 TOOLDEC 能够有效地推广到新工具,而无需对额外数据进行微调。

5.1 微调基线:TOOLKENGPT

ToolkenGPT 是一种工具使用微调方法,它为每个工具学习一个特殊标记。为了推广到新工具,ToolkenGPT 仍然需要额外的数据和涉及使用新工具的额外微调。我们证明,一旦对给定的一组可见工具进行微调,TOOLDEC 就不需要额外的数据和进一步的微调来采用未见工具。我们通过在同一组工具(称为“可见工具”)上对 TOOLDEC 和基线进行调整来比较它们,然后评估它们在“未见工具”上的表现。


为了保证公平比较,我们模仿 ToolkenGPT 的规划方法来解决“何时使用工具”问题。具体来说,我们微调单个特殊标记 <T> 的嵌入来表示所有工具,将额外词汇表的大小减少到 1。一旦生成 <T>,工具调用就开始了。


我们提示 LLM 生成一个工具名称。此工具名称的生成由从所有可用工具列表构建的 FSM 指导。然后,将此工具名称重新插入上下文以开始生成参数。我们在附录 A.2 中展示了此过程的一个示例。


我们从所有可用工具中选择了一小部分“可见工具”,并仅使用所选子集中的工具演示来调整嵌入。我们使用相同的子集对基线进行了微调。然后,我们在涉及子集中未见工具的任务上评估了我们的方法和基线,以展示 TOOLDEC 的泛化能力。


数学函数基准测试。我们使用 FuncQA 多跳问题来评估我们的方法。FuncQA 中的工具(例如 permutate、gcd、power)是数学函数,严格限制其参数为特定范围内的数字。我们从 13 个工具中选择 4 个作为可见子集来调整基线,并评估其余 9 个未知工具的不同方法。


知识图谱关系基准。为了进一步研究 TOOLDEC 在更大工具集上的通用性,我们还对 KAMEL (Kalo & Fichtel, 2022) 进行了评估,这是一个问答数据集,包含总共 234 个知识关系,这些关系与 API 的特征(例如子项数量)相似。更多示例可在附录 A.4 中找到。KAMEL 中的工具比 FuncQA 中的工具多得多。它们也更复杂和多样化,因为它们的工具的参数数量从 1 到 3 不等,并且它们的类型包括字符串、位置、日期、数字和其他临时类型。我们从 234 个工具中选择 30 个作为可见子集,并在 4 个不同的评估集上进行评估,分别有 30、60、100 和 234 个工具。按照 Hao 等人 (2023) 的做法,我们使用提示、少量样本和零样本作为额外基线。(1)提示依赖于 LLM 的内部知识,因为没有提供任何工具。 (2) 小样本通过小样本示例演示工具的使用。(3) 零样本提供上下文中所有可用工具的描述。由于 KAMEL 的训练和评估数据集对每个工具共享相同的问题模板,而这在现实环境中通常并非如此,因此我们仅将 TOOLDEC 与在原始研究提出的合成数据集上训练的 ToolkenGPT 进行比较。我们使用工具调用的准确性作为指标,该指标由调用正确知识关系的响应比例决定。

5.2 情境学习基线:RESTGPT

RestGPT (Song et al., 2023) 是一种上下文学习方法,它从上下文工具文档中学习工具的使用。我们展示了 TOOLDEC 增强型 RestGPT 的泛化能力,通过展示使用 TOOLDEC 的 RestGPT 在没有上下文文档的情况下比有文档的 RestGPT 基线具有更高的准确性。由于 TOOLDEC 需要访问下一个标记分布,我们使用基于 Vicuna (Zheng et al., 2023) 的 RestGPT 作为基线。对于我们的方法,我们从提示中删除了所有工具文档,只留下推理指令。


在真实世界 Web 服务的 API 上进行基准测试。我们在 RestBench (Song 等人,2023) 上进行评估。它由真实世界场景中的任务组成,包括电影信息网站 TMDB 和在线音乐播放器 Spotify。这些任务直接来自真实用户指令,需要使用 RESTful API 形式的多个工具来解决。RESTful API 是使用 HTTP 方法操作资源的 Web 服务 (Li 等人,2016) 的事实标准。地面实况解决方案由人类以工具调用链的形式注释。我们在 TMDB 上评估我们的方法和基线,它由 55 个 RESTful API 组成。由于 HTTP 方法(例如 GET 和 POST)的格式与 TOOLDEC 的工具调用、工具参数格式不同。我们重写了这些 API 以遵循这种格式。我们使用原始论文提出的正确路径率 (CP%) 作为衡量准确性的指标。正确路径率是包含人类注释的正确工具调用路径的模型输出的比例。

5.3 实验结果

推广到看不见的数学函数。在图 5a 中,我们展示了 FuncQA 上的结果。虽然 ToolkenGPT 和 TOOLDEC 在仅涉及可见工具的任务上实现了类似的准确度,但 ToolkenGPT 未能推广到看不见的工具,导致性能显著下降。另一方面,TOOLDEC 即使在看不见的工具上也能保持相当的准确度,并在多跳问题上实现 8 倍的准确度,凸显了其通用性。因此,TOOLDEC 在总体准确度上明显优于 ToolkenGPT。


表 5:RestBench 上的结果。基线需要更长的提示和上下文工具文档来学习工具的使用,而我们的方法则不需要。然而,我们的方法仍然具有比基线高得多的正确路径率 (CP%)。


图 5:KAMEL 和 FuncQA 上的结果。随着未见工具数量的增加,所有基线的性能都显著下降。但 TOOLDEC 保持了类似的高性能,尽管它只见过一小部分工具(KAMEL 上 234 个工具中的 30 个,FuncQA 上 13 个工具中的 4 个)。


推广到未见知识图谱函数。我们在图 5b 中展示了我们在 KAMEL 上的结果。随着可用工具数量的增加,两种 ICL 方法受到上下文长度限制(Hao 等人,2023 年)的影响,准确率显著下降。ToolkenGPT 在前 30 个工具上进行了微调,也无法推广到更多工具。提示保持稳定的低准确率,因为它不依赖于上下文工具文档。另一方面,即使未见工具的数量达到 204 个,TOOLDEC 也能够保持其准确性。


推广到未见过的 Web 服务。RestBench上的结果报告在表 5 中。TOOLDEC 使模型能够使用没有上下文文档的 Web 服务 API,从而将提示大小从 1974 个标记减少到仅 880 个标记。尽管如此,TOOLDEC 在正确路径率 (CP%) 所指示的正确性方面仍然明显优于基线,提高了 8 个百分点。这些结果表明,TOOLDEC 还可以提高现实世界 Web 应用程序中上下文学习工具使用的通用性。


所有三种设置的结果都表明,TOOLDEC 不仅有助于微调工具 LLM 在没有额外训练数据的情况下进行泛化,而且还有助于上下文学习工具 LLM 在没有上下文文档的情况下进行泛化。TOOLDEC 的这种能力已在三个不同的领域得到证实。