24年3月CMU和上海交大的论文“What Are Tools Anyway? A Survey from the Language Model Perspective”。
到底什么是工具? 接下来,工具在哪里以及如何帮助语言模型? 在综述中,对语言模型使用的外部程序工具进行了统一定义,并对语言模型工具场景和方法进行了系统回顾。 测量各种基准上所需的计算和性能增益,以及该领域的挑战和潜在的未来研究,本文实证研究了各种工具方法的效率。
首先提出工具的统一定义,并解释为什么工具有助于解决任务。 介绍基本的工具使用范例,并通过枚举存在哪些工具以及它们适用于哪些任务来研究各种工具使用场景。 接下来,研究复杂工具使用的高级方法,甚至在无法完成任务时制作新工具。 然后,总结LM 工具工作中的现有测试平台和评估指标,并通过具体的指标建议强调了几个缺失的方面。 最后,根据对工具何时有效的实证分析,确定了最有效的工具方法以及从工具中受益最多的任务。
工具可以以不同的方式帮助解决任务,具体取决于各个工具的功能。 工具功能总结为三大类:感知、行动和计算。 一个工具可能属于这三个类别中的一个或多个。
感知。感知工具提供或收集环境信息。 一个例子是使用 get time() API 来获取当前时间,该时间不包含在 LM 从训练中学到的参数知识中。
动作。动作工具可以对环境施加动作并改变其状态。 例如,turn left() 可以改变具身智体的方向,或者执行 make post(website, post) 可以更改网站上的内容。
计算。计算工具不一定感知或修改外部环境,而是使用程序来处理复杂的计算任务。 例如,计算器是一种用于数学计算的计算工具。 请注意,计算还包括数值计算之外的更一般的计算行为。 因此,翻译器也是一种可用于语言之间翻译的计算工具。
Russell & Norvig (2010) 将智体定义为“任何可以被视为通过传感器感知环境并通过执行器对该环境采取行动的事物”。 根据这个定义,智体是使用感知工具来感知所处环境的程序,或者是使用动作工具与环境交互的程序。 根据此定义,仅使用计算工具且不通过感知或动作工具与环境交互的模型可以说不属于“智体”类别。
为了让语言模型能够使用这种使用工具的基本范式,当前的工作主要利用推理时提示和训练时学习方法。
推理时提示利用。LM 在上下文中学习的能力(Brown,2020),许多工作通过提示提供工具信息,并期望 LM 获得从输入上下文中使用这些工具的能力。 这是通过提供有关任务的说明、查询示例对和使用工具的解决方案来实现的(Gupta & Kembhavi,2022;Lu,2023a;Paranjape ,2023;Shen,2023a;Yang, 2023)和/或工具功能的文档(Hsieh,2023)。
通过训练学习。除了从测试时环境中学习工具之外,LM 还可以从训练期间使用这些工具的示例中学习。 可以简单地训练语言模型来生成使用工具的解决方案,其中示例可以由人类手动注释(Li et al., 2023),并由更大的教师语言模型合成(Tang, 2023;Qin, 2024; Huang,2024),或由测试时 LM 本身引导(Schick,2023)。
如图所示:相对于基本 LM 或基本动作,工具可以引用内置函数、外部库或特定于任务的实用函数(从左到右)。
现有的工具基准测试只能受益于有限的工具集,但可以利用更多的工具来执行现实世界中的多功能任务,特别是由人类开发人员创建的网络上开发API 工具。 因此,最近的许多工作聚集来自各种网络来源的 API 工具,并创建了使用这些 API 的基准,如表所示。
利用工具通常会带来更好的性能,但是,应该总用工具吗? 更具体地说,使用工具所带来的性能提升是否值得 LM 学习使用工具所花费的计算成本,或者测试的推理成本? 现有的工作主要关注任务准确性,但当考虑到其他因素时,就会出现更微妙的情况。 根据下表中实验数据集的计算成本和性能增益,研究了各种方法的性能增益和学习成本,发现了从工具中受益并更有效(即用更少的计算实现更大的增益)的方法和任务。