最近大型语言模型(LLM)的成功促使越来越多的人探索通过它解决各种复杂的任务,其中 LLM 增强的自主 agent(LAA)尤为引人瞩目。LLA 将 LLM 的智能扩展到了顺序动作执行中,在通过收集观察结果与环境交互并解决复杂任务方面展现出了优越性能。这类代表性工作有 BabyAGI、AutoGPT3、ReAct、Langchain 等。
但这些探索可能还不够,主要在以下三个方面存在局限:
首先,最优 agent 架构尚未确定。以 ReAct 为例,它向 agent 提示预定义的样本,LLM 学会通过上下文学习生成下一步动作。此外,ReAct 认为一个 agent 在动作执行之前应有中间推理步骤。
其次,现有 LAA 中 LLM 能否发挥多大功效,目前并没有全面的了解。现在的初步工作只比较了一些 LLM 骨干的性能,比如 ReAct 将 PaLM 作为骨干 LLM,ReWOO 则将 OpenAI 的 text-davinci-003 模型作为 agent 规划的指令调优 Alpaca 模型。同时目前很少有工作全面比较使用不同预训练 LLM 的 LAA 性能。最近虽有一些工作发布了评估 LLM 作为 agent 的基准,但未能共同考虑 agent 架构和它们的 LLM 骨干。
最后,越来越复杂的任务可能需要多个 agent 共同发挥作用。比如 ReWOO 最近发现将推理从观察中解耦出来可以提升 LAA 的效率。
在今天介绍的这篇论文中,来自 Salesforce Research 的研究者认为,随着任务复杂度的增加,特别是在开放域环境中,协调多个 agent 来完成一项任务会更好。举例而言, 对于网页导航任务,我们可以使用一个点击 agent 来与点击按钮进行交互,并请求另一个搜索智能体来检索其他资源。
论文链接:https://arxiv.org/pdf/2308.05960.pdf
研究者建议全面比较 LAA 的性能,并深入探索了 LAA 的 agent 架构和 LLM 骨干。具体地讲,他们基于现有环境构建了 agent 基准,从而评估建构在不同 LLM 骨干之上的不同 agent 架构的性能。该 agent 基准中的任务还划分了不同的复杂程度,使得 agent 性能与任务复杂度的关联分析成为可能。
此外,这些 agent 架构在设计上旨在广泛验证现有的设计选择。关于多个 LAA 的编排,研究者提出了一种新颖的架构 BOLAA,它在多个协作 agent 之上有一个控制器模块,用于多个分工 LAA 的选择和通信。
本文的贡献主要体现在以下几个方面:
- 开发了 6 种不同的 LAA agent 架构,并将这些架构与不同骨干 LLM 结合,从而在提示、自我思考和规划中验证 LAA 的设计直觉。同时开发了用于编排多 agent 策略的架构 BOLAA,增加了单体 agent 的动作交互能力;
- 在决策制定网页导航环境和知识推理任务环境中进行广泛实验,报告了最终稀疏奖励和中间召回方面的性能,这为 LAA 及其兼容的 LLM 的最优选择提供了定性指示;
- 结果显示,与其他 LAA 架构相比,BOLAA 在 WebShop 环境中始终取得了最佳性能。这些表明了在解决复杂任务时多个专业 agent 的协作至关重要,可以说应该与训练具有强泛化能力的大型 LLM 同等重要。
爱丁堡大学博士生符尧认为,这项工作揭示了一种新的分布式计算范式:分布式 AI 计算。在传统分布式计算中,每个节点处理部分任务;同样在分布式 AI 计算中,一个 agent 就变成了处理部分任务的节点。
Agent 架构
在这部分,研究者比较了不同的 LAA 架构。他们首先展示了如何基于现有工作的直觉来设计不同的单体 LAA,然后展示了多个 LAA 的编码设计,即 BOLAA。
每种类型的 LAA 都能够通过自己的交互策略与环境交互。常见的 agent 类型包括:
- Zeroshot LAA
- ZeroshotThink LAA
- ReAct LAA
- PlanAct LAA
- PlanReAct LAA
BOLAA:协调多个 agent
尽管现有的 LLM 在完成各种语言理解任务方面取得了成功,但仍有许多问题尚未得到充分探讨,如上下文长度限制、上下文内学习和泛化能力等。因此,采用单体 LAA 来完成所有任务具有挑战性,尤其是在任务复杂度较高的情况下。研究者因此提出了一种新的 agent 架构,用于协调多个 LAA。
如图 3 所示,BOLAA 有两个主要模块,即分工 agent 池和控制器。
分工 agent 池管理多个 LAA,每个 LAA 可能只专注于生成一种类型的执行。例如在网络导航环境中,可以建立点击 LAA 和搜索 LAA。这样,前者只生成下一个点击按钮,而后者只输出搜索查询,从而将复杂的任务划分为可行的任务。控制器的设计目的是从 agent 池中有选择地调用 LAA。
控制器有一个 agent 选择层,用于选择最相关的 LAA 进行调用。然后,控制器为选定的 LAA 构建信息并建立通信。从分工 LAA 获得响应后,控制器将其解析为可执行的操作,然后与环境交互。
请注意,也可以将这些分工 LAA 设计为思考 / 计划 agent。这样,自我思考和规划工作流也会被保留下来。
实验结果
研究者从两个环境中构建了评估基准,WebShop 和 HotPotQA 以及维基百科 API 的用例。
关于评估指标,研究者使用每个环境中的奖励得分来评估 LAA 性能。在 WebShop 环境中,奖励被定义为购买商品与 ground-truth 商品之间的属性重叠率。在 HotPotQA 环境中,奖励被定义为 agent 答案与 ground-truth 答案之间的 F1 分数分级。
此外,研究者为 WebShop 环境开发了召回性能,如果在一个任务会话中检索到 ground-truth 项目,召回性能定义为 1;如果没有检索到地面实况项目,召回性能定义为 0。召回率以 WebShop 环境中所有任务的平均召回分数来报告。
决策模拟
研究者比较了 WebShop 环境中 LAA 的决策性能。下表 1 列出了平均奖励方面的表现。Agent 提示是根据不同 LLM 模型的最大上下文长度构建的。关于 BOLAA,研究者设计了一个搜索 LAA 和一个点击 LAA,分别生成搜索查询和点击元素。观察结果如下:
- 与其他 LAA 架构相比,BOLAA 的性能最佳,尤其是在高性能 LLM 上构建时。
- 将 LLM 与最佳 LAA 架构配对至关重要。
- 强大的 LLM 能够在 Zeroshot LAA arch 下进行泛化。
- 当 Agent 基于开源 LLM 构建时,规划流通常可以提高性能。
知识推理模拟
随后,研究者在 HotPotQA 环境中进行了基准测试,以评估 LAA 的多步骤推理能力。由于在该环境中,可用的搜索、查找和完成运算都与知识推理有关,很难分开,因此他们将 BOLAA arch 留待此后工作中使用,只比较其他 agent arch 的性能。结果如下表 3 所示:
总体来说,ReAct agent 引擎的性能最好,这可以从几个方面来解释。
首先,少样本提示对于 LAA 的行为生成和推理能力是必要的,尤其是在使用较小规模语言模型进行实验时。其次,通过比较 ReAct、PlanAct 和 PlanReAct,可以得出结论:LAA 的规划流阻碍了其在知识推理环境和任务中的表现。原因在于,知识推理任务需要上下文信息来进行推理,而规划流是在交互之前执行的。因此,这些生成的规划往往会导致 LAA 产生更多幻觉。第三,在知识推理任务中,模型大小比上下文长度更重要。大型模型的推理能力更强,因此表现更好。
此外,OpenAI gpt-3.5 模型的卓越推理能力再次得到验证。研究者还观察到 Llama2-70b 在所有开源 LLM 中表现最佳,这表明 Llama-2 模型未来可能会进行微调。
在比较了 LAA 和 LLM 的总体性能之后,研究者对它们在任务复杂度方面的性能进行了更详细的研究,结果如下图所示:
更多研究细节,可参考原论文。