论文名称:TOOLGEN: UNIFIED TOOL RETRIEVAL AND CALLING VIA GENERATION
论文地址:https://arxiv.org/pdf/2410.03439
在人工智能飞速发展的今天,大语言模型(LLMs)已展现出处理自然语言、生成文本等强大能力。然而,在与外部工具交互以自主完成复杂任务方面,传统方法却存在诸多局限。当工具数量增长到数万级别时,现有工具检索与执行方法的效率问题愈发凸显。
传统方法依赖将工具描述作为上下文输入,这受限于上下文长度,还需要单独且低效的检索机制。而ToolGen的横空出世,带来了范式上的彻底转变。它通过将每个工具表示为独特令牌,把工具知识直接融入LLM的参数中,让LLM能将工具调用和参数生成为下一个令牌预测能力的一部分,实现了工具调用与语言生成的无缝融合。接下来,让我们深入探索ToolGen的奥秘。
传统工具交互方法的困境
在现实场景中,一种常见的方法是将工具检索与工具执行相结合。检索模型先筛选出相关工具,再将其传递给LLM进行最终选择和执行。虽然这种组合方法在一定程度上解决了处理大量工具的难题,但存在明显的局限性。
检索模型往往依赖小型编码器,难以充分捕捉复杂工具和查询的语义。而且,检索与执行的分离会导致效率低下,还可能在任务完成的不同阶段之间出现不一致。例如,当用户查询一个涉及多个领域知识的复杂问题时,检索模型可能因语义捕捉不足而筛选出不相关的工具,LLM基于这些不相关工具进行后续处理,自然无法得到准确结果。
此外,LLM及其分词器主要在自然语言数据上进行预训练,对工具相关功能的内在知识有限。这一知识缺口导致性能不佳,尤其是当LLM必须依靠检索到的工具描述来做决策时。就像一个人仅通过他人对工具的简单描述去使用不熟悉的工具,很容易出现操作失误。
随着工具数量增长到数万级别,这些问题更加突出。传统方法在面对如此庞大的工具库时,检索效率大幅下降,难以快速准确地找到所需工具,严重制约了LLM在实际应用中的能力发挥。
ToolGen的创新框架:工具虚拟化与三阶段训练
ToolGen的核心创新在于工具虚拟化和独特的三阶段训练过程,这一框架彻底改变了LLM与工具交互的方式。
工具虚拟化是ToolGen的基础。通过原子索引方法,每个工具被映射为LLM词汇表中一个独特的新令牌。每个工具令牌的嵌入初始化为其对应工具名称的平均嵌入,为每个工具提供了语义上有意义的起点。这种方法确保每个工具都由单个令牌表示,相比数字索引、层次索引和语义索引等其他方法,在效率上具有显著优势。
数字索引将每个工具映射为唯一数字,生成的令牌纯粹是数字,没有内在的语义信息。层次索引将工具聚类为不重叠的组,并递归划分这些聚类,形成层次结构,从根到叶的索引代表每个工具。语义索引则将每个工具映射到其名称,利用工具名称的语义内容指导LLM。
但数字索引编码工具时,编号在特定范围的工具需要N个令牌,会增加令牌数量;语义索引和层次索引产生的子令牌数量可变,语义索引还存在很多具有明显更长序列的异常值。而原子索引让每个工具都由单个令牌表示,减少了检索和代理场景中的生成令牌数量和推理时间。
在完成工具虚拟化后,ToolGen进入三阶段训练过程。第一阶段是工具记忆阶段,通过以工具描述作为输入、相应令牌作为输出来微调LLM,使模型将每个虚拟工具令牌与其文档相关联,为LLM配备工具及其相关操作的基本知识。这就像学生先记住各种工具的特性和用途,为后续使用打下基础。
第二阶段是检索训练阶段。模型学习根据用户查询生成相关工具令牌,将虚拟工具令牌(及其文档)的隐藏空间与用户查询空间联系起来。经过这一阶段的训练,ToolGen检索器能够根据用户查询生成合适的工具令牌,如同学生学会根据问题找到对应的工具。
第三阶段是端到端代理调优阶段。使用代理任务完成轨迹对模型进行微调,模型被训练成自主代理,生成计划和工具,并确定完成任务的适当参数。通过调用工具并接收外部环境的反馈,模型能够高效、综合地处理用户查询。就像学生在实际问题中运用所学知识,不断调整方法以完成任务。
实验验证:ToolGen的卓越性能
为了验证ToolGen的性能,研究人员进行了大量实验,涵盖工具检索和端到端代理任务等多个方面。
在工具检索评估中,使用了包含超过16k工具集合的ToolBench作为数据集,这些工具集合共包含47k个独特的API。实验设置了域内检索和多域检索两种场景。域内检索中,检索空间限制在同一域内的工具;多域检索则更复杂,检索空间扩展到包括所有三个域的工具,更能反映现实世界中检索任务可能涉及重叠或混合域的情况。
评估指标采用在排序任务中广泛使用的归一化折扣累积增益(NDCG),它同时考虑了检索工具的相关性和排名位置。对比的基线包括BM25、Long-Context LLMs、Embedding Similarity(EmbSim)、Re-Invoke、IterFeedback和ToolRetriever等。
实验结果显示,所有经过训练的模型在所有指标上都显著优于未训练的基线,证明了在工具检索数据上训练的益处。而ToolGen模型在两种设置下始终取得最佳性能。在域内设置中,ToolGen表现出极强的竞争力,与使用多个模型和反馈机制的IterFeedback系统性能相当,作为单一模型,它在所有指标上都大幅优于ToolRetriever,在某些情况下甚至超过了IterFeedback,如I1域的NDCG@5和I2域的NDCG@1、@3、@5。
在多域设置中,尽管搜索空间更大且整体性能普遍下降,但ToolGen仍然保持稳健,优于ToolRetriever,并在其他基线中保持优势。这表明ToolGen作为单一模型,能够与复杂的检索系统相竞争,展现出处理复杂现实世界检索任务的能力。
不同索引方法的比较也进一步凸显了原子索引的优势。语义索引在各种指标和场景中表现出最佳的检索性能,原子索引在许多情况下紧随其后。但语义索引与LLM的预训练数据更一致的优势会随着训练数据和类型的增加而减弱,且结合约束束搜索会导致工具使用的偏差。综合考虑,原子索引是ToolGen工具虚拟化的理想选择。
消融研究评估了ToolGen不同训练阶段的影响。结果表明,检索训练是工具检索性能的关键因素,直接与以查询为输入、工具令牌为输出的检索任务相匹配。移除工具记忆会导致性能略有下降,尽管它在提高泛化能力方面发挥作用。约束束搜索虽然对检索任务贡献不大,但有助于防止幻觉,在端到端代理任务中很有用。
在端到端评估中,对ToolBench的轨迹数据进行了修改以适应ToolGen框架。基线包括GPT-3.5、ToolLlama-2和ToolLlama-3。实验设置了使用ground truth工具和使用检索器两种场景。评估指标采用StableToolBench,包括可解决通过率(SoPR)和可解决胜率(SoWR)。
结果显示,在ground truth工具设置中,ToolGen取得了54.19的最佳平均SoPR分数,优于GPT-3.5和ToolLlama,SoWR也以49.70位居榜首。在检索器设置中,ToolGen保持领先,平均SoPR为53.28,SoWR为51.51。
不同索引方法在端到端代理任务中的比较表明,原子方法在四种索引方法中性能最佳,这归因于其他方法中较高的幻觉率。在幻觉评估中,ToolGen在使用约束解码时不会产生任何不存在的工具,而ToolLlama和GPT-3.5即使在提示中提供了五个ground truth工具,仍然会产生幻觉。如果没有约束,ToolGen在动作生成阶段使用原子索引会生成7%的非工具令牌,使用语义索引则更多。
ToolGen与相关工作的对比
与之前的相关工作相比,ToolGen在多个方面展现出独特优势。此前的Toolformer和ToolkenGPT虽然也采用了词汇扩展用于工具学习,但主要表明通过SFT或添加具有预计算嵌入的新工具令牌,LLMs可以学习使用数量很少的工具。而在现实世界的工具调用(代理)场景中,这些方法需要在提示中列出可用工具,极大地限制了其实用性。
ToolGen无需在提示中提及具体工具,能够直接生成工具令牌,摆脱了对提示中工具列表的依赖,更适应现实中大量工具的使用场景。例如,当处理一个需要调用多种不同类型工具的复杂任务时,ToolGen无需用户在提示中一一列出可能用到的工具,就能自主生成所需工具令牌并完成调用。
其他研究如ToolPlanner和AutoACT通过强化学习或开发多代理系统来增强工具学习或任务完成能力。但ToolGen与这些方法并不冲突,反而可以相互集成。ToolGen的统一设计使其易于与链式思维、人类反馈的强化学习和推理时间缩放等技术相结合,为进一步提升性能开辟了道路。
ToolGen的优势与未来展望
ToolGen的优势十分显著。它将工具检索和执行整合到LLM的生成过程中,无需额外的检索步骤,显著提高了性能和可扩展性。通过工具虚拟化和三阶段训练,ToolGen能够高效处理数万级别的工具,在工具检索和自主任务完成方面都取得了优异成果。
在效率方面,由于无需额外的检索步骤,减少了计算开销和 latency。在处理大量工具时,这种效率提升更为明显,能够快速响应用户查询。在准确性上,ToolGen通过将工具知识融入模型参数,提高了对工具语义的理解,减少了因检索不准确导致的错误。
ToolGen还为AI代理开启了新纪元,使其能够适应不同领域的工具。它支持端到端的工具学习,并为与链式思维和强化学习等其他先进技术的集成创造了机会,从而扩展了LLMs在实际应用中的能力。
未来,ToolGen有广阔的发展前景。在工具扩展和维护方面,目前对于工具的重大更改或新增工具,ToolGen还无法有效利用,但可以借鉴持续训练和约束优化等现有方法来缓解这一挑战。
将ToolGen与其他先进技术更深入地集成是未来的重要方向。例如,结合链式思维推理,使ToolGen在处理复杂任务时能进行更深入的逻辑思考;利用强化学习,通过反馈不断优化工具使用策略,进一步提升性能。
此外,探索ToolGen在不同规模LLMs上的表现也很有意义。实验表明,较大规模的模型在工具检索和代理任务中表现更好,当模型大小达到7B时,性能趋于稳定,将14B模型进一步扩展并不一定能提高性能。这为在实际应用中选择合适规模的模型提供了参考,在保证性能的同时降低计算成本。
同时,提高ToolGen的泛化能力也是未来的研究重点。虽然工具记忆阶段在一定程度上有助于泛化,但在面对未见过的工具时,ToolGen的性能仍有提升空间。可以通过优化训练数据、改进训练方法等方式增强其泛化能力,使其能更好地应对未知工具和任务。
ToolGen代表了工具交互领域的范式转变,通过将检索和生成合并到一个统一的模型中,为更通用、高效和自主的AI系统铺平了道路。随着研究的不断深入和技术的持续发展,ToolGen必将在更多领域发挥重要作用,推动AI技术在实际应用中取得更大的突破。它不仅改变了LLMs使用工具的方式,更开启了AI自主完成复杂任务的新篇章,相信在不久的将来,我们会看到基于ToolGen的更多创新应用。