专栏名称: 吃果冻不吐果冻皮
专注于AI工程化(LLM、MLOps、LLMOps、RAG、Agent)落地。
目录
相关文章推荐
小张聊科研  ·  国自然马上提交了,你的实验设计严谨吗? ·  昨天  
募格学术  ·  有高校宣布禁用DeepSeek! ·  昨天  
51好读  ›  专栏  ›  吃果冻不吐果冻皮

增强大语言模型 Agents 的工作记忆能力

吃果冻不吐果冻皮  · 公众号  ·  · 2024-06-03 12:29

正文

【点击】 加入大模型技术交流群

原文:https://zhuanlan.zhihu.com/p/696105075

本篇文章将会对论文《Empowering Working Memory for Large Language Model Agents》进行解读分享。为了克服传统大语言模型(LLM)缺乏情景记忆和不同交互领域连续性的局限性,本文探讨了应用认知心理学工作记忆框架来增强 LLM 架构,并提出了一种创新模型。 该模型具有集中式工作记忆中心并提供对情景缓冲区的访问能力 ,用于构建具有复杂的、类人记忆功能的 LLM Agent,并强调需要进一步研究优化记忆编码、存储、优先级、检索和安全性以实现这个目标。总体而言,这篇论文为开发具有更复杂、类似人类的记忆能力的 LLM 智能体提供了战略蓝图,强调了记忆机制是人工通用智能的重要前沿。

背景介绍

大语言模型 LLM 的发展标志着人工智能领域的重大进步,特别是在语言理解、生成和推理领域。尽管 LLM 具有出色的语言能力,但存在一个难题: 如何有效管理记忆以实现更接近人类的智能? 为解决这个问题,人们借鉴了认知心理学基础框架,但在人工智能架构中的应用并不简单,并且这些以人为中心的概念如何转化为人工系统存在固有的局限性。

传统的 LLM Agent 设计缺乏强大的情景记忆和不同交互之间的连续性。 LLM Agent 通常具有有限的记忆容量,受到其 token 数量的限制可以在单个交互中处理。 这种局限限制了他们保留和利用先前交互中的上下文的能力。此外, 每次交互都被视为一个孤立的事件,连续对话之间没有联系。 这种孤立的短期记忆阻碍了 MAS(multi-agent system)系统中复杂的顺序推理和知识共享。缺乏强大的情景记忆和交互连续性会阻碍智能体执行复杂的顺序推理任务的能力,而这对于更高级的问题解决能力至关重要(图1)。


图1 传统 LLM 局限性解决方案

特别是在 MAS 系统中,Agent 之间缺乏合作通信可能会导致结果不佳。理想情况下,Agent 应该立即分享行动或学习经验,以有效地实现共同目标。人们提出了一些人工智能记忆架构,例如神经图灵机和记忆网络,以增强 LLM Agent 的记忆能力,旨在为内存管理提供更复杂的框架,更好地模仿类人智能和记忆功能。然而,这些模型经常面临与计算复杂性、集成困难、跨任务泛化有限、依赖大量训练数据以及记忆功能缺乏类似人类的灵活性和可解释性等挑战 技术难题

人类认知心理学中的工作记忆模型

20 世纪中期,在认知心理学领域兴起了 “多成分记忆模型”,使人们对工作记忆的概念产生了浓厚的兴趣。该模型将记忆分为感觉记忆、短期记忆和长期记忆。随后,1974 年引入了 “工作记忆模型” ,将其描述为不仅是短期记忆的替代品,而且是一种细致入微的多组件系统,致力于信息的瞬时存储和操作(图 2)。


图2 认知心理学中的工作记忆模型


这一模型的核心是中央执行机构(Central Executive),充当监督者 。它协调注意力分配,确定信息优先级,并确保其子系统之间的有效运作。该组件与两个关键子系统进行通信。 视觉空间(Visuospatial Sketchpad)模块专门研究空间和视觉信息 ,与我们的感知系统紧密相连。 语音循环(Phonological Loop)模块通常用户保存语音内容,但其存储时间短 情景缓冲区(Episodic Buffer)作为附加组件充当临时存储 ,合并不同来源的信息,从而在中央执行机构、视觉空间模块和语音模块之间建立连贯性。

但是 该模型的深度超出了它的组成部分 。工作记忆与长期记忆之间存在着很深很复杂的联系,信息根据需要在两者之间传递处理。

LLM Agent 中的工作内存架构

从人类的工作记忆模型中汲取灵感,LLM Agent 的工作记忆提供了独特但类似的架构(图 3)。


图3 当前 LLM Agents 中的工作记忆模型


中央处理器(Central Processor)本质上就是 LLM 本身,获取海量训练数据与实时输入,编排数据流并确保执行适当的信息处理、分析和决策。外部环境传感器(External Environment)作为网关,促进与外部系统和数据库的实时交互。交互历史窗口(Interaction History Window)保留了最近的交互记录,为正在进行的任务提供上下文锚点。

然而,该模型存在以下两个挑战:

  1. 由于 LLM 固有的 token 限制,只能保留有限的对话范围,在大量交互中可能会丢失超出其 token 容量的原上下文信息

  2. 缺少人类工作记忆模型所包含的情景缓冲区 。由模型中“任务域”(图3虚线内范围)的概念可知, 与 LLM 的每一次互动会话都被视为其单独的领域。当发起后续交互时,建立了一个新的域,没有与之前的域的直接链接。

解决方案

为了解决上文 LLM Agent 工作内存机制提到的两个挑战,当前研究工作正在积极探索方法。针对第一个挑战,已经开发出技术来维持长期对话,有效克服上下文窗口的限制,如:递归总结、RecurrentGPT、长期记忆等,但是它们并没有解决记忆孤岛的问题。对于第二个挑战,可以将记忆直接纳入模型本身,从而产生个性化 Agent,但带来了更高的运行成本,并存在丢失工作内存中复杂细节的风险。

为了增强 LLM 代理的记忆能力,本文提出了一种创新的记忆架构(图4)。这种改进的模型结合了额外的组件来解决传统工作记忆模型的局限性。

图4 工作记忆创新模型


工作内存中心(Working Memory Hub)统一集线器协调其他组件之间的数据流。它存储所有输入、 输出和交互历史记录,提供交互历史记录窗口和情景缓冲区等其他元素,以解决组件之间记忆孤岛的问题。 与上述工作记忆模型类似,其核心是由 LLM 组成的中央处理器(Central Processor),充当大脑,确保信息得到处理、分析,并根据外部环境接口的历史和当前输入的和谐混合做出决策。此外,外部环境接口(External Environment)有利于动态外部数据持续流入系统。它从用户和外部源获取实时输入,并将其路由到中央处理器进行分析。同样,它捕获中央处理器的输出并将其作为响应进行传输。所有输入和输出都存储在工作内存中心中。通过交互历史记录窗口(Interaction History Window)保存最近交互记录的短期缓存,提供上下文锚点。历史记录可以根据需要采取多种形式,例如最新对话的滚动窗口、抽象摘要或相关摘录,这可以更灵活地使用聊天记录。 情景缓冲区(Episodic Buffer)从工作内存中心检索完整的情景,允许 Agent 访问与当前上下文相关的特定事件或对话的记忆,解决了传统 LLM token 限制的问题。

工作内存中心(Working Memory Hub)技术途径

要为 LLM 代理创建内存中心,可以使用第三方数据库作为外部内存存储库。通过访问这些内容,LLM 可以获取事实数据或嵌入,从而生成更精确和上下文准确的响应。

外部存储器模块使用的存储格式直接影响检索策略。自然语言存储提供丰富的语义信息,使其非常适合需要深入文本探索的基于关键字的搜索。然而,这种格式不适用于关注整体含义而不是特定关键字的更广泛语义的搜索场景。另一方面,嵌入通过封装语义上下文的向量表示来简化检索。虽然嵌入很高效,但缺乏自然语言的细致描述性。理想情况下,自然语言和嵌入将同时使用,以充分利用它们的互补优势。然而,底层数据库和平台的限制通常会限制可行的存储选项。例如,Postgres 和 Elasticsearch 有利于自然语言存储的原始文本数据,而 Picone 擅长矢量相似性搜索的嵌入。

Xata 等 PaaS 平台提供了强大的解决方案。MAS 的模块化特性意味着代理可以设计为与外部系统交互,包括 PaaS 平台上托管的数据库。大多数 PaaS 解决方案的 API 驱动架构如下:

  • Agent 可以配置为进行 API 调用,将其内存数据推送到数据库。

  • 可以通过 API 端点检索数据,Agent 发送请求并实时收到记忆数据。

  • 通过适当的身份验证和授权机制,只有指定的 Agent 或系统才能访问内存的特定段,从而确保数据的完整性和安全性。

从内存中心(Memory Hub)到情景缓冲区(Episodic)

MAS 中的内存访问机制

在 MAS 中,管理 Agent 对情景缓冲区内存的访问对于效率和安全性至关重要。内存访问策略根据代理角色、任务规范、协作需求和整体系统架构等因素而有所不同。常见技术包括基于角色的访问控制、任务驱动的内存分配、自主内存检索和专用内存管理代理。下面将详细探讨 Agent 不同内存访问机制。

  1. 基于角色的内存访问
    Agent 根据其在系统内指定的角色和职责分配内存访问权限,确保了高效内存利用。
    把一个 Agent 的角色设定为主管或监督者,它可能被授予全面的访问权限,允许它检索所有其他 Agent 的内存,使其能够监控、评估和协调其他 Agent 的活动,确保整个系统协调一致地运作。相反,专用于特定任务的 Agent 可能仅限于访问自己最近的记忆,确保其始终专注于当前任务,而不会因过去不相关的交互而造成潜在的干扰或计算开销。
    虽然基于角色的内存访问提供了结构化效率,但必须灵活地定制这些角色。过于严格的规则可能会抑制代理的适应性,而过于广泛的访问可能会导致效率低下或潜在的安全漏洞。关键是找到平衡点,确保每个代理都能获得其真正需要的信息,以最佳方式履行其职责。

  2. 基于任务的内存访问
    系统评估手头任务的确切性质和要求,然后为 MAS 提供与该任务直接相关的记忆。这确保了 Agent 接收到的信息是针对其当前的需要而优化的,从而可能更快、更准确地完成任务。

  3. 自主内存访问
    在高级设置中,Agent 被赋予自主权来自行确定他们需要哪些内存段,不依赖严格的预定义规则,而是使用任务中的上下文线索来获取最相关的内存部分。Agent 可以访问的内容没有严格的界限,允许它进行最优判断。
    相比之下,任务特定内存访问方法更加严格。该机制中,Agent 仅限于访问与其当前任务直接相关的那些内存段。

  4. 基于协作场景的内存访问
    当 Agent 协作工作时,内存访问机制可能会根据其协作的性质而有所不同。在并行协作中,Agent 需要完全访问共享内存。在串行顺序协作中,每个 Agent 会根据前一个 Agent 处理的内容来访问内存。







请到「今天看啥」查看全文