LLM中外部工具的利用已成为一个快速发展的研究领域(Mialon,2023;Qin,2023a)。当前的方法可以分为两个不同的类别。第一类利用LLM的能力,促使他们与各种工具进行交互,包括高度专业化的工具,例如代码解释器(Gao et al. 2022;Chen et al. 2022)、搜索引擎(Yao et al. 2022)、 检索模型(Khattab,2023)和 AI 模型(Shen,2023;Lu,2023),到更通用的工具集(Qin,2023a;Li,2023;Song,2023)。语言大模型已经在工具使用方面展现了强大的泛化能力,并能够通过提示来装备许多未见的工具。相比之下,第二类集中于专门为专用工具设计的数据集进行微调,增强紧凑语言模型的特定工具使用能力(Parisi、Zhao & Fiedel,2022;Schick,2023;Xu,2023)。同时,GPT4Tools(Yang et al. 2023)对紧凑模型进行了微调,以合并多模态工具,该工具集中于一组非常相似的多模态工具。ToolLLM(Qin,2023b)有助于语言模型掌握海量 API。但他们的数据采集策略需要事先积累大量真实的API,需要人工获取和验证。尽管它们很有效,但紧凑语言模型的通用工具使用能力域在很大程度上仍未得到探索。本研究旨在通过自动构建包含各种工具使用场景的多样化工具使用数据集来弥补这一研究差距。
许多研究都采用LLM进行数据生成,重点关注各种任务,例如问答(Wang et al. 2021;Agrawal et al. 2022;Chen, Chen, & Wen-tau Yih 2023)、语义相似性预测(Schick and Schu ̈tze 2021) )和指令调整(Honovich,2022;Wang,2023)。此外,在工具使用的背景下,一些工作(Schick et al. 2023;Patil et al. 2023;Yang et al. 2023)已经采用模型合成数据来增强特定的工具使用能力。然而,广义工具使用数据的生成提出了更重大的挑战,因为它涉及广泛且多样化的工具以及更复杂的多轮交互。
如图是ToolAlpaca 的高级概述,由三个组件组成:(1)工具集构建,根据公共 API 提供的简要介绍生成每个工具的结构化文档。(2)通过多智体模拟生成工具使用实例。(3)ToolAlpaca模型训练,在生成的工具使用语料库上微调语言模型获得ToolAlpaca。整个ToolAlpaca框架由两个阶段组成:
从互联网上积累广泛的 API 集,反映了现实世界的工具使用场景。考虑到这些 API 的基本描述和缺乏统一的表示,进一步利用 LLM 的生成能力为每个工具创建全面的文档。本文档可帮助语言模型理解每个工具的功能和用法。随后,遵循OpenAPI标准,为每个API生成统一的规范,从而实现自动化的计算机调用并方便后续的工具执行模拟。这样,每个工具就可以表示为一个五元组{名称、简介、描述、功能文档、OpenAPI规范}。如图提供了一个示例,其中名称、描述和简介提供了公共假期工具的基本信息和用途,功能文档提供了工具中包含的各种函数(getHolidays、searchHolidays、getHolidayDetails)的功能、输入和输出 ,而 OpenAPI 规范提供了更全面、更结构化的文档。
人类普遍使用各种工具,通常以基于 Web 的 API 形式体现。为了促进这些 API 的利用和发现,互联网上存在大量的存储库,聚集了大量实用且常用的 API。因此利用代表性 API 存储库-public APIs (
https://github.com/public-apis/public-apis
)作为目标工具集。这个存储库包含 1400 多个 API,涵盖 50 多个不同类别。