通过开放世界API增强大模型处理复杂任务的能力

人工智能咨询培训老师叶梓 转载标明出处

让基础模型如LLMs具备学习使用外部工具的能力,是实现通用人工智能的关键一步。然而,以往的研究多集中在模型微调和上下文学习策略上,这些方法并没有充分利用LLMs的能力,导致在处理复杂任务时面临挑战。为了克服这一难题,西安交通大学人工智能与机器人研究所、复旦大学和华为诺亚方舟实验室的研究者们提出了Sum2Act工具调用流程,这一流程模仿人类解决问题的过程,通过控制大量真实世界的API来应对复杂的用户查询。在每一步中,引导LLMs总结已获得的结果,并决定下一步的行动。这一流程的核心在于,它允许模型在每一步之后总结历史信息,这有助于保持上下文长度在可控范围内,并且帮助LLMs明确理解其当前任务状态。

通用工具学习框架
用户向LLM提供指令,LLM迭代选择工具集中的工具,并在历史记录中记录结果,直到认为指令完成,然后响应用户

方法

Sum2Act 框架的组件和工作流程如图2。框架的核心是两个主要的组件:路由器(Router)和状态管理器(State Manager)。

路由器(Router):

路由器是 Sum2Act 框架的决策中心,负责根据用户的指令和当前状态来决定下一步行动。它通过分析用户的需求和当前任务的进展情况,选择最合适的API来执行。路由器还负责调用API,并根据API返回的结果来决定是否继续执行其他API或者结束任务。

状态管理器(State Manager):

状态管理器负责维护和更新系统的状态信息。它根据API的观察结果来总结信息,并更新状态,确保系统具有对当前任务进展的清晰理解。状态管理器还包括一个反思能力,允许LLM识别和纠正在任务解决过程中出现的错误。

工作流程

  1. 接收用户指令:用户向系统提供指令或问题,这将作为任务解决过程的起点。

  2. API检索:路由器根据用户指令检索和选择相关的工具或API。

  3. 行动提议:路由器提出行动计划,决定是调用新的API还是结束任务。

  4. 执行API:根据路由器的决定,系统调用相应的API并执行操作。

  5. 观察和总结:状态管理器接收API执行的观察结果,并进行总结,更新系统状态。

  6. 状态更新:状态管理器根据观察结果更新当前任务的状态,包括当前结果和失败历史。

  7. 任务完成:当路由器判断任务已经完成或达到目标时,系统结束流程,并向用户提供答案。

Sum2Act框架的核心在于两个阶段:行动提议阶段和总结阶段。这一架构利用大型语言模型和开放世界API来解决实际任务。首先,通过检索器根据用户指令与工具(或API)之间的相关性获取相应的工具。然后,框架进入迭代循环,在行动提议阶段,路由器评估任务进度,决定是结束任务还是提出进一步行动的工具。在总结阶段,状态管理器根据这些行动的观察结果更新整体状态。整个过程在任务完成并提供解决方案时结束。算法1提供了Sum2Act的简要描述。

在行动提议阶段,路由器负责规划和执行下一步行动。这里使用了语言模型M和精心设计的动作提示(promptplan)作为路由器。路由器基于当前状态、指令和可用工具进行思考和推理,选择下一个行动和行动参数。如果行动的值为“Finish”,则表示任务完成;否则,路由器将执行指定的行动并获得相关观察结果。

行动提议阶段之后,Sum2Act进入被称为“总结”的新颖阶段。在这个阶段,状态管理器是核心组件,负责维护系统的状态。状态管理器的工作是处理过去行动的结果,突出重要结果,过滤掉与任务无关的信息,并帮助个人规划后续行动。与传统记忆结构不同,系统中的状态是根据之前所有行动的观察动态表示当前情景,与传统记忆不同,后者主要记录过去行动的观察结果,而没有随着上下文发展的理解。

状态包含两个主要元素:当前结果和失败历史。当前结果反映了任务完成的进展,而失败历史记录了使用工具时遇到的问题,指导路由器避免重复选择有问题的选项。

在CoT(Chain of Thought)过程中,随着观察结果的累积,记忆的长度可能变得笨重。实际应用通常采用截断方法来管理这种情况,但这不可避免地导致信息丢失。这提出了一个基本的权衡:在记忆的完整性和可管理性之间取得平衡。过长的记忆可能会因为不相关数据过载而妨碍路由器的效率和决策能力。另一方面,过度截断的记忆可能使路由器在处理复杂任务时信息不足。

为了解决这个问题,状态管理器在路由器执行的每个行动之后综合观察结果并相应更新状态。这个过程的形式化表示如下:

这里,observation表示工具执行的结果,而promptstate是相关的提示。与记忆不同,状态中文本内容的长度保持在合理的限制内。它包含了所有先前行动观察结果的摘要,从而最小化了信息丢失。因此,状态中的信息密度通常比记忆中的要高得多,这是在开放世界场景中API经常产生大量但无关数据的关键特性。在总结观察结果并更新状态后,状态管理器有效地简化了后续行动的决策过程。

实验

研究者们使用了ToolBench数据集来评估Sum2Act的性能,该数据集包含超过16000个实时API,覆盖了49个粗粒度类别和500多个细粒度类别。测试集由三种不同难度级别的指令组成,包括:(1) Inst.:训练数据中相同工具集的未见指令;(2) Tool.:需要同一类别中未见工具的指令;(3) Cat.:需要不同类别中未见工具的指令。评估涉及三种场景:单一工具指令(I1)、同一类别多工具指令(I2)和同一集合多工具指令(I3)。最终评估协议产生了6个子集进行测试,每个子集包含100个测试示例。

为了衡量性能,研究者们采用了ToolEval提出的两个评估指标:通过率(Pass Rate)和胜率(Win Rate)。通过率反映了在有限次数的行动内成功完成任务的比例,而胜率则考虑了总执行步骤、答案质量和使用的API多样性,以评估任务完成的优劣。

为了消除API检索器的影响,研究者们直接使用了ToolBench提供的地面真实API。这样,任务解决性能仅取决于提示方法和LLM本身。他们使用ChatGPT作为评估工具。

在Table 1和Table 2中,研究者们展示了三种不同方法在ToolBench的六个测试集上的比较分析。ReACT-CoT方法在研究中获得了最低的平均通过率,为41.1%。相比之下,DFSDT方法在几乎所有测试场景中表现出一致的性能,平均通过率达到了67.0%。而Sum2Act方法则超越了ReACT-CoT和DFSDT,为70.0%的通过率。在考虑胜率时,Sum2Act方法在与ReAct-CoT和DFSDT的比较中分别达到了67.8%和54.6%的胜率,均超过了50%的阈值,展现了其优越的性能。

表3展示了当采用任务分解模块时,对工具调用的平均通过率和胜率的影响。当采用任务分解时,LLM会根据可用工具先将目标任务分解为几个子任务,然后将分解的任务作为提示附加到路由器的提示中。消融研究表明,任务分解模块可以略微提高平均通过率和胜率,但这种改进并不显著。这是因为准确的任务分解本身仍然是一个开放性问题。

ToolBench基准测试包括49个类别的API,大多数面向基于文本和查询相关的功能。研究者们在现有框架的基础上,整合了额外的视觉处理API。通过整合视觉API,模型获得了提高的能力,能够执行图像处理领域内复杂的任务。

Figure 3和Figure 4展示了Sum2Act在视觉任务上的多功能性,包括条件图像生成、视觉问答(VQA)和图像编辑。例如,模型可以使用视觉API来执行条件图像生成任务,或者使用VQA工具询问猫的颜色,然后相应地改变狗的颜色。

Figure 5展示了Sum2Act在处理复杂任务时,通过结合开放世界API和视觉API的熟练程度。在左侧的场景中,网络摄像头图像经历了风格转换;而在右侧的场景中,根据搜索到的素食食谱生成了相应的图像。

通过这些实验,研究者们证明了Sum2Act在理解和执行复杂用户指令方面的专业能力。Sum2Act作为一个高效且适应性强的框架,不仅在文本处理上表现出色,还成功地扩展到了视觉数据处理,使其成为一个多模态的强大工具。

论文链接:https://arxiv.org/abs/2402.18157

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能大模型讲师培训咨询叶梓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值