DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息!
引言:探索 AnyTool 的创新应用
在人类文明的发展历程中,我们不断探索和创新,利用各种工具增强我们的能力并提高生产效率。从简单的石器到复杂的机械,再到今天的人工智能技术,工具的演变一直在推动着社会的进步。特别是在大型语言模型(LLM)的最新进展中,我们看到了人工智能在工具使用上的巨大潜力。
AnyTool 是一个基于 GPT-4 的智能代理,它通过整合超过 16,000 个 API 来解决用户的查询问题。这一系统不仅包括一个层次化的 API 检索器,还整合了解决方案生成器和自我反思机制,形成一个闭环的解决方案系统。AnyTool 的创新之处在于它无需额外训练,直接利用 GPT-4 的功能调用特性,极大地提高了处理查询的效率和准确性。
在实际应用中,AnyTool 对比其他工具使用模型,如 ToolLLM 和专为工具使用定制的 GPT-4 变体,显示出了显著的优势。例如,在 ToolBench 测试中,AnyTool 的平均通过率比 ToolLLM 高出 35.4%。这一成绩的取得,得益于 AnyTool 在设计上的几个关键创新:即插即用的设计、层次化结构的 API 检索器、以及自我反思机制的有效整合。
通过这些创新,AnyTool 不仅提高了查询解决的效率,还通过自我反思机制,提升了处理复杂查询的能力。这种机制能够在初始解决方案不可行时重新激活 AnyTool,重新评估失败的原因和相关历史上下文,从而找到更合适的解决方案。这一过程在多个数据集上的实验中都证明了其有效性,AnyTool 在所有数据集中的表现均优于现有的基线模型。
论文标题:AnyTool: Self-Reflective, Hierarchical Agents for Large-Scale API Calls
机构:Tsinghua University, Microsoft Research Asia, University of Waterloo
论文链接:https://arxiv.org/pdf/2402.04253.pdf
项目地址:https://github.com/dyabel/AnyTool
AnyTool 的核心设计
1. 利用超过16,000个API的大规模API调用
AnyTool 设计的一个核心特点是能够接入超过16,000个API,这些API来源于Rapid API。这一庞大的API库为AnyTool提供了广泛的数据访问和功能执行能力,使其能够应对各种复杂的用户查询需求。通过这种设计,AnyTool能够在没有额外训练需求的情况下,直接利用GPT-4的功能调用特性,高效地处理和响应用户的各种请求。
2. 层次化的API检索器
AnyTool的API检索器采用了层次化的结构设计,这一结构包括三个层级,每个层级都包含一个或多个具有不同角色的代理(agents)。这种层次化的设计模仿了“分而治之”的策略,有效地将Rapid API建议的API分类整合到我们的层次结构中。这不仅显著减少了每个代理的搜索范围,还克服了与LLMs最大上下文长度相关的限制。
3. 自反思机制的整合
AnyTool的设计中还整合了自反思机制,该机制在初始解决方案不切实际时重新激活AnyTool。在接收到用户查询后,AnyTool提出一个解决方案,随后由GPT-4评估这一方案的可行性。如果方案被认为是不切实际的,AnyTool将重新激活,并考虑失败的原因及相关历史上下文。这种机制显著减少了对于简单查询的“过度搜索”,同时为复杂查询提供了更丰富的上下文和深入搜索,从而提高了查询解决过程的效率和有效性。
功能调用与问题解决
在功能调用方面,AnyTool利用GPT-4的功能调用特性,用户可以输入查询Q和一系列功能{Fi}M i=1,每个功能Fi都有可能解决Q的全部或部分,或者可能与Q无关。功能调用过程包括:用户输入查询Q和功能列表{Fi}M i=1,以及一个指定的“完成功能”F到GPT-4;GPT-4为用户生成一个功能调用请求,并清晰地指定输入参数;用户执行特定功能并将历史上下文和功能响应提供给GPT-4;这一系列步骤重复进行,直到GPT-4激活“完成功能”F,标志着查询Q的解决。
在问题解决方面,AnyTool的解决器(solver)使用生成的API候选池来解决用户的查询Q。解决器可以采用深度优先搜索决策树(DFSDT)或思维链(CoT)方法来实现。如果初始解决方案未能解决用户查询,自反思机制将按顺序重新激活API检索器和解决器。这种机制可以重复应用,直到满足终止条件。
自反思机制的详细分析
1. 自反思机制的定义与功能
自反思机制是AnyTool系统中的一个核心组成部分,它允许系统在初始解决方案不可行时重新激活,重新考虑失败的原因和相关的历史背景。这种机制显著减少了对简单查询的“过度搜索”,同时为复杂查询提供了更丰富的上下文和深入的搜索。通过自反思,AnyTool能够在多轮自反思迭代后显著提高解决方案的通过率,如图3所示,仅通过4-6轮自反思,通过率就能提高高达20%。
2. 自反思在API检索器中的应用
在API检索器中,自反思首先识别用户查询未解决的原因。如果解决器选择“放弃”,则使用解决器提供的理由;如果解决器提出了解决方案,但GPT-4评估认为它未能妥善解决查询,则使用GPT-4提供的理由。我们将识别的原因整合到所有这些历史背景中。由于API检索器的层次结构设计,我们系统地重新激活各种代理以提高效率,按照从工具代理到类别代理再到元代理的顺序进行。
3. 自反思在解决器中的应用
当解决器做出“放弃”决定时,它旨在识别与用户查询无关或不正确的API的功能名称。为了提高效率,我们首先从扩展的API候选池中移除这些API,并从解决器的历史背景中排除调用这些API的条目。然后,解决器使用新的引导提示、更新的API候选池和清理过的历史背景重新激活。剩余的过程与第4.2节中描述的相同。
实验设置与评估协议
1. 评估协议的修订
在先前的工作中,ToolLLM的评估协议开始于将用户查询分类为可解决或不可解决,使用一组参考API。然而,对于那些不可解决的查询,评估系统在计算通过率时将它们视为已解决,导致人为地高通过率。我们的研究深入这种评估方法的细节,并提出了一个更能反映实际应用场景的修订协议。如图4所示,我们绕过ToolLLM的第一阶段评估,直接使用GPT-4来确定代理提出的解决方案在解决查询方面的有效性。
2. 实验设置
我们在两个基准上进行实验:ToolBench和我们自己的基准,称为AnyToolBench。ToolBench包括六个子集,我们对ToolBench进行了手动审查,只保留可以使用特定API解决的查询。AnyToolBench包括400个实例。我们使用通过率(如方程2所定义)作为评估指标,评估一个由代理生成的解决方案是否能解决查询。
通过这些详细的机制和严格的评估协议,AnyTool在各种数据集上展示了其优越性,显著超过了如ToolLLM这样的强基线。
主要实验结果与分析
1. 实验设置与基准测试
在我们的实验中,AnyTool在两个基准测试上进行了评估:ToolBench和我们自己创建的AnyToolBench。ToolBench包含六个子集,分别是G1-Instruction、G1-Tool、G1-Category、G2-Instruction、G2-Category和G3-Instruction。我们对ToolBench进行了手动审查,排除了无法解决的查询。AnyToolBench包括400个实例,详细创建过程见附录A.8。
2. 主要结果
在ToolBench的过滤数据集上,AnyTool与ToolLLM及其变体以及多个为工具使用定制的GPT-4模型进行了比较。AnyTool在平均通过率方面显著优于ToolLLM和使用参考API的GPT-4,分别提高了32.6和19.3个百分点。这一结果证明了AnyTool在实际应用场景中的有效性和优越性。
讨论与未来研究方向
1. 讨论
AnyTool通过其独特的层次结构API检索器和自反思机制,显著提高了查询解决的效率和效果。这种设计允许AnyTool在不需要外部模块训练的情况下,直接利用GPT-4的功能调用特性,有效地处理和解决用户查询。此外,我们对评估协议的改进更符合实际应用场景,使得AnyTool在新的评估基准上表现出色。
2. 未来研究方向
尽管AnyTool在当前的实验中表现优异,但我们认为还有几个方向值得进一步探索:
- 优化API的组织:改进API的结构和分类,以提高检索效率和准确性。
- 开发专用的开源大型语言模型:为API使用定制开发高效的语言模型,这可能会进一步提升性能,并便于本地部署和实际应用。
此外,AnyTool的性能在极其复杂的场景中尚未得到验证,这是因为缺乏合适的数据集。未来的工作可以通过创建或利用更复杂的数据集来测试和提升AnyTool在这些场景下的表现。
总结
在本文中,我们介绍了AnyTool,这是一个先进的代理工具,能够利用超过16,000个API来有效处理现实用户查询。AnyTool的核心是一个分层的API检索器和一个解决器,此外,它还整合了一个独特的自反思机制,提高了对用户查询的响应能力。我们还修订了之前的评估协议,使其更好地反映现实应用场景。在ToolBench和我们自己的AnyToolBench上进行的严格实验显示,我们的方法优于现有模型。
尽管AnyTool显著提高了通过各种工具解决用户查询的有效性,但在极其复杂的场景中的表现尚未得到验证,这是因为缺乏适当的数据集。此外,由于AnyTool依赖于GPT-4的函数调用特性,GPT-4的能力也影响了它生成的解决方案的可行性。
未来的研究方向包括:1) 优化API的组织,以提高性能和效率;2) 开发一个专门用于API利用的高级开源大型语言模型,这可能有助于本地部署。
通过这些探索和改进,AnyTool不仅展示了在处理复杂查询中的潜力,也为未来的研究和应用开辟了新的道路。
关注DeepVisionary 了解更多深度学习前沿科技信息&顶会论文分享!