将大型语言模型模块化打造协作智能体

B UILDING C OOPERATIVE E MBODIED A GENTS MODULARLY WITH L ARGE L ANGUAGE M ODELS

1.概述

        在去中心化控制及多任务环境中,多智能体合作问题因原始感官观察、高昂的通信成本以及多目标任务的复杂性而显得尤为棘手。过往研究往往基于无成本通信的假设,或依赖于具备共享观察能力的集中控制器。

        LLMs在自然语言理解、对话生成、世界知识的丰富性以及复杂推理能力方面展现出了卓越的性能。尽管已有研究证明,LLMs能够借助零样本或少样本提示驱动具身智能体完成单智能体任务,但在去中心化设置下,特别是在通信成本高昂的情况下,构建合作智能体仍面临巨大挑战。

        本研究的核心目标是探讨如何有效利用LLMs来构建合作的具身智能体,这些智能体应能在充满挑战的去中心化环境中高效合作,与人类进行顺畅交流,并成功完成长期的多目标任务。

      因此,本研究提出了一种名为CoELA(Cooperative Embodied Language Agent)的认知启发模块化框架,该框架利用LLMs的强大推理能力及自然语言理解与生成能力,集成了感知、记忆、通信、规划和执行五大核心模块。

  •  感知模块:该模块负责处理从环境中接收到的复杂视觉观察,并从中提取有用信息。
  • 记忆模块:此模块模拟人类的长期记忆功能,用于维护智能体对物理环境及其他智能体的理解。
  • 通信模块:利用LLMs的能力,该模块负责生成有效的对话,并决定何时以及发送何种信息。
  • 规划模块:根据所有可用信息,该模块负责制定高层次的计划,包括通信时机的选择。
  • 执行模块:此模块负责通过生成原始动作来执行已制定的计划。

2.整体框架

        如图所示,CoELA由五个核心组件组成,包括:(a) 感知、(b) 记忆、(c) 通信、(d) 规划、(e) 执行。在每一次交互过程中,CoELA首先运用(a) 感知组件从环境中获取原始感官数据,随后更新(b) 记忆组件中的信息,该组件储存了智能体关于世界及其他智能体的知识与经验。接下来,CoELA通过两步法克服高效通信的难题:首先确定传递的信息内容,再判断是否发送此信息或选择其他方案,通过(c) 通信组件从(b) 中检索相关信息,并借助LLM生成最佳消息。之后,借助(d) 规划组件,CoELA运用强大的推理能力,根据(b) 中的相关信息和当前状态所提出的可行行动进行决策。生成的计划用于更新(b2) 情景记忆。最后,(e) 执行组件从(b3) 中检索存储的程序知识,将高层次计划转化为环境中可执行的原始动作。

(1)感知组件(Perception Component)

        为确保具身智能体在现实世界中的实用性,它们必须通过传感器捕获原始观察并提取对后续高阶推理有益的信息。我们通过训练一个Mask-RCNN模型(He et al., 2017),使其直接处理从环境中接收的复杂视觉数据,预测RGB图像中的分割掩码,并利用RGB-D图像构建3D点云,提取高层次有用信息,如关键对象的状态,并构建局部语义地图。

(2)记忆组件(Memory Component)

        对于智能体而言,维护其对世界及其他智能体的知识和经验的记忆至关重要。我们参考人类的长期记忆机制(Atkinson & Shiffrin, 1968; Wang & Laird, 2006; Nuxoll & Laird, 2012),为CoELA设计了语义记忆、情景记忆和程序记忆。

        语义记忆:储存CoELA关于世界的知识,涵盖语义地图、任务进度、自我状态及他人状态。每当新的观察被感知并处理后,语义记忆将相应更新。值得注意的是,由于其他智能体可能在CoELA不知情的情况下与对象互动并改变其状态,处理记忆与其他智能体描述的世界之间的不一致性增加了挑战。

        情景记忆:储存CoELA过去的经验,包括动作历史和对话历史。每当CoELA执行新动作(包括发送或接收消息),相关信息将被添加至情景记忆中。

        程序记忆:包含如何在特定环境中执行特定高层次计划的知识,涵盖实现这些计划的代码和神经模型参数。

(3)通信组件(Communication Component)

        为应对“发送什么”的问题,我们设计了一个通信组件,利用LLMs强大的自由形式语言生成能力作为消息生成器。为更好地调整LLMs以适应合作任务并避免无效的随意聊天,通信组件首先从记忆组件中检索相关信息(包括语义地图、任务进度、智能体状态、他人状态、动作和对话历史),然后使用模板将这些信息转换为文本描述,最终提示LLMs生成待发送的消息。为更好地约束LLMs生成的消息,我们在提示的结尾添加了一个注释,并在对话历史的开头附加了两个种子消息,以引导产生预期的有效通信行为。

(4)规划组件(Planning Component)

        CoELA需要一个强大的规划组件来决定在利用所有收集和存储的可用信息的基础上采取何种行动,以最大限度地提升合作效率。从头开始设计这样的组件需要大量的专业人力资源,且难以普遍化。因此,我们直接利用强大的LLMs作为规划组件,首先从记忆组件中检索相关信息并将其转换为文本描述,然后根据当前状态和存储的程序知识编制所有可用高层次计划的行动列表,以供LLMs选择。这种形式化的过程使LLMs能更集中地进行推理并生成可执行计划,无需任何少样本演示。我们还采用Kojima等人(2022)介绍的零样本链式推理技术,鼓励LLMs在给出最终答案之前进行更多推理。

(5)执行组件(Execution Component)

        如(Deitke et al., 2022)所述,解决具有挑战性的具身任务需要模块化方法来应对任务的复杂性。我们发现,尽管LLMs在制定高层次计划方面表现卓越,但在制定低层次控制方面表现不佳。为实现不同环境中有效且通用的合作决策,我们设计了一个执行组件,将高层次计划转化为环境中可执行的原始动作,使规划组件能够泛化并专注于利用LLMs丰富的世界知识和强大的推理能力解决整体任务。从实际角度来看,这种设计还能减少LLMs的推理时间,节省时间和成本。CoELA从其记忆组件中检索与计划相关的程序知识,然后执行适合环境的原始动作。

3.实验

(1)实验设置

  •  ThreeDWorld Multi-Agent Transport (TDW-MAT)任务:该任务源自ThreeDWorld Transport Challenge的扩展,旨在通过增加对象与容器类型、优化对象放置的真实性,以及强化智能体间通信功能,进一步推进多智能体协同运输的研究。智能体需运用容器作为运输工具,将尽可能多的目标对象运送至指定位置。智能体以自我中心的512×512 RGB-D图像为观察依据,在低层次导航控制、互动与通信等多个动作空间中作出决策。我们选择了TDW-House数据集中的6个场景,并结合食物与物品两大任务类型,共构建24个测试集场景,每个场景包含3000帧。
  • Communicative Watch-And-Help (C-WAH)任务:C-WAH任务源于Watch-And-Help Challenge的扩展,基于VirtualHome-Social模拟平台,专注于智能体合作能力与通信机制的研究。任务涵盖五种常见的家庭活动,每种活动均设定了具体的谓词与满足条件。我们从中选取了10个测试集场景,每种活动类型各占2个,每个场景包含250步操作。

(2)基线方法:

  •  MCTS-based Hierarchical Planner (MHP):该方法沿用了原Watch-And-Help Challenge中的顶尖基线,结合了基于MCTS的高层次规划与基于回归规划的低层次规划策略。
  • Rule-based Hierarchical Planner (RHP):此方法继承自ThreeDWorld Transport Challenge的优质基线,结合基于启发式规则的高层次规划与A*算法的低层次规划,并采用了前沿探索策略。
  • Multi-Agent Transformer (MAT):MAT是基于多智能体强化学习(MARL)的基线方法,通过集中决策转换器从共享观察中生成动作。为适应本实验设置,MAT将语义地图与智能体状态作为观察对象,并采用50帧堆叠作为强化学习步骤。

(3)实现细节:

        在感知模块训练中,我们采用了Mask-RCNN。同时,通过OpenAI API实例化了顶尖LLM GPT-4,并设置了温度参数为0.7,top-p为1,最大tokens数为256。此外,我们还进行了使用LoRA技术微调LLAMA-2的实验。

(4)度量标准:

- 运输率(TR):用于评估TDW-MAT任务中子目标的完成比例。

- 平均步数(L):衡量C-WAH任务完成的效率。

- 合作智能体效率改进(EI):以量化方式反映智能体合作所带来的效果提升。

(5)实验结果

与AI智能体合作

        CoELA与基线智能体在合作中展现出更优的效果。据表1数据显示,相较于RHP单独完成任务的情况,与CoELA合作显著提升了运输率(TR)和效率提升(EI),分别为0.69(36%)和0.61(29%)。这充分表明,即便在不深入了解其他智能体内部工作机制的条件下,CoELA亦能有效推理其他智能体的状态。

        在C-WAH任务中,如表2所示,与CoELA合作实现的效率提升高达45%,而与MHP合作仅提升33%。进一步在符号观察和视觉观察的场景下,CoELA+CoELA的组合表现优于其他智能体组合。

        对于CoLLAMA与GPT-4的对比,当采用开源模型LLAMA-2替代GPT-4时,性能出现明显下降。然而,经过微调的CoLLAMA在TDW-MAT任务中取得了0.70的TR,并在部分子任务上超越了GPT-4。

        针对CoELA的合作表现,进行了定性分析。结果表明,CoELA能够有效分享进展与信息,适时请求帮助并响应他人请求,根据合作对象的情况调整计划,并明智地选择通信时机。

与人类合作

        关于与人类合作的重要性,我们进行了一项人类实验。在C-WAH环境中,让8位受试者与智能体Alice进行合作。实验涵盖了四种场景:与MHP合作、与CoELA合作、无通信的CoELA合作以及单独完成任务。受试者可通过点击可见对象并选择动作与智能体进行交互,包括导航至各个房间以及通过聊天框进行通信。

        每次实验后,受试者根据与智能体的合作情况进行了7点Likert量表的评分,评估标准涵盖通信的有效性、智能体对信息的理解与分享程度、帮助程度以及信任度。

        实验结果如图4a所示,CoELA在与人类合作时表现优于MHP,即便在无通信条件下,CoELA的表现亦优于MHP。图4b进一步显示,人类更倾向于信任与他们进行自然语言交流的CoELA(信任评分6.3对比无通信CoELA的4.7,p=0.0003),从而实现了更佳的合作效果。与采用模板语言交流的MHP相比,人类更倾向于与能够理解和响应人类对话的CoELA进行合作。

 (6)分析        

我们需要强大的LLM用于规划和通信模块吗?

  • 如图4c所示,当我们用GPT-3.5替换GPT-4来驱动CoELA时,智能体需要更多的步骤来完成任务。GPT-3.5在状态推理方面犯的错误更多,因此生成的计划不太合理,导致CoELA完成任务的时间更长。GPT-3.5也倾向于更频繁地生成无用信息。性能差距可以归因于GPT-4更高级的推理和理论心智能力,这一点也在Bubeck et al. (2023)中有所观察。

通信是否有效?

  • 尽管在某些情况下通信仍然失败,但如图3所示,我们的智能体表现出有效的通信行为,如分享信息、请求帮助、响应请求以及知道何时不进行通信。更重要的是,自然语言通信为我们提供了一种透镜,用于理解人类和AI之间的决策,这可能导致更好的合作。如图4c所示,在禁用智能体之间的通信时没有观察到显著的性能下降,因为在我们的设置中,进行高效通信非常具有挑战性,要求智能体准确建模他人并理解自然语言的模糊性,这对当前LLMs来说仍然难以做到稳健。

记忆模块和执行模块是否有效?

  • 如图4c所示,智能体在没有记忆模块的情况下完成任务所需的步骤几乎翻倍,这表明记忆模块在存储和更新对场景和其他智能体的知识和经验方面的重要性。我们还尝试移除执行模块并让规划模块进行低层次控制,发现同样效果不佳。

(7)LLM的失败案例和局限性

        尽管使用最先进的LLMs构建的CoELA表现出色并取得了令人印象深刻的结果,但我们发现智能体在几个基本能力上仍然存在不足。我们提供了对这些局限性的深入分析,并分享了一些关于未来设计更好合作具身智能体的见解。

        限制3D空间信息的使用

  • CoELA没有有效引入对象和房间的空间信息到纯文本语言模型中,这可能导致智能体提出的探索计划在语义上合理但实际上耗时。利用能够有效处理视觉模态并生成自然语言的多模态大型模型可以克服这一局限性,构建更好的具身智能体(Huang et al., 2023; Driess et al., 2023; Lu et al., 2022)。

        缺乏对低层次动作的有效推理

  • 为了帮助LLMs更好地专注于解决总体任务,我们抽象出高层次计划供LLMs直接推理,但这也使得LLMs无法执行低层次动作的推理,可能导致看似合理但实际上无效的决定。例如,在图5a中,Alice看到Bob同时拿着一个容器和一个目标物体,并认为他可能不知道如何使用容器,于是发送消息指示他将物体放入容器,尽管Bob实际上已经在执行这一动作。开发能够直接进行低层次控制的智能体对于构建更好的合作智能体至关重要。

在复杂推理上的不稳定表现

  • 尽管LLMs在大多数情况下能做出正确的推理,但它们仍偶尔犯错,包括误解环境规则和对未满足目标的错误推理(如图5b所示)。这些错误可能导致任务失败,这呼吁我们开发具有更强指令遵循和推理能力的LLMs。

              

 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 02:22:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 02:22:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 02:22:05       57 阅读
  4. Python语言-面向对象

    2024-07-11 02:22:05       68 阅读

热门阅读

  1. QT实现WebSocket通信

    2024-07-11 02:22:05       24 阅读
  2. Text2SQL提问中包括时间的实战方案

    2024-07-11 02:22:05       21 阅读
  3. 进程与线程的区别

    2024-07-11 02:22:05       23 阅读
  4. HTTP有哪些请求方式?

    2024-07-11 02:22:05       20 阅读
  5. 笔记

    2024-07-11 02:22:05       20 阅读
  6. 代码随想录Day76(图论Part11)

    2024-07-11 02:22:05       24 阅读
  7. 优雅下线的艺术:Eureka服务管理深度解析

    2024-07-11 02:22:05       22 阅读
  8. 【LeetCode】12. 小张刷题计划

    2024-07-11 02:22:05       22 阅读
  9. samout 最新版本state 逐层控制加速收敛

    2024-07-11 02:22:05       24 阅读
  10. 【个人笔记】跨域问题

    2024-07-11 02:22:05       21 阅读
  11. webpack 打包配置

    2024-07-11 02:22:05       20 阅读
  12. 人类历史时间轴

    2024-07-11 02:22:05       19 阅读