Featured image of post 理解人工智能中的情景记忆 (Episodic Memory)

理解人工智能中的情景记忆 (Episodic Memory)

探索情景记忆如何通过让 AI 系统回忆过去的具体经历,来增强其决策能力、学习效率和个性化交互,从而推动 AI 迈向新的发展阶段。

阅读时长: 11 分钟
共 5510字
作者: eimoon.com

引言

人工智能 (AI) 已经从基于规则的自动化演进到能够学习、推理和对话的自适应、灵活性系统。尽管成就斐然,但当今最先进的语言模型 (language models) 和智能体 (intelligent agents) 仍然缺失人类智能的一个关键要素:回忆特定个人经历的能力。

这正是 AI 情景记忆 (Episodic Memory for AI) 发挥作用的地方。这是一个新兴领域,致力于构建新一代具备上下文感知和持续学习能力的智能体。

人类利用过去的经验来规划未来的行动。具备情景记忆的 AI 智能体 (AI agents) 也应该能做到同样的事情——通过存储、检索并从其独特的经历中学习。

本文将深入探讨情景记忆对 AI 智能体意味着什么,它与其他类型的记忆有何不同,为何如此重要,其工作原理,以及未来面临的挑战。

核心要点

  • 情景记忆 (Episodic Memory) 允许 AI 智能体 (artificial agents) 记忆和检索其过去经历中的特定事件,使其更具上下文感知能力,并能更好地从自身历史中学习。它提供详细的上下文信息,而语义记忆 (Semantic Memory) 则负责维护一般性事实。
  • 情景记忆能够实现累积学习 (cumulative learning)更优决策改进个性化提升效率
  • 在 AI 系统中,情景记忆通常通过专用的内存模块、向量数据库 (vector databases) 和检索算法来实现,其结构可以是时间索引日志、键值对或图谱。
  • 情景记忆也带来了关于准确性可扩展性隐私系统复杂性的新挑战,必须解决这些问题才能确保 AI 系统的安全和有效。

什么是 AI 中的情景记忆?

情景记忆 (Episodic memory) 指的是一种能够回忆其在运行过程中遇到的事件或经历的记忆能力。它非常类似于智能体内部的“日记”,由智能体亲身经历的离散事件组成。

例如,如果一个人类用户告诉虚拟助理取消订阅,因为价格上涨了,那么情景记忆会稍后将此事件(经历)回忆为用户明确指示要做的具体事情(取消订阅),并附带价格上涨的理由。情景记忆是基于事件和上下文的(与事件发生的时间和原因相关联)。

AI 智能体中的记忆类型

为了理解情景记忆在 AI 智能体认知架构中的位置,让我们来比较几种主要的记忆类型:

记忆类型 存储内容 AI 中的应用示例
短期(工作)记忆 即时上下文和最近的信息。 聊天机器人对话中最近几次的用户查询(在模型的上下文窗口内)。
情景记忆 特定的过去事件及其上下文(时间、空间、因果关系)。 记住*“用户 X 在周一请求技术支持并得到了解决方案 Y”*,并在下次跟进时使用该历史记录。
语义记忆 一般性事实、概念和世界知识。 知道*“巴黎是法国的首都”*或理解领域规则(不附带任何个人经验)。
程序记忆 技能和流程(如何执行任务)。 知道如何执行一个序列,如登录邮件服务器并发送邮件,这是通过实践或编程学会的。
(可选)情感记忆 偏好或情感关联(用户特定的细微差别)。 回忆起用户上周对友好语气反应积极,并在未来的回复中相应调整风格。

语义记忆存储一般性事实知识,而情景记忆包含带有上下文信息的个人经历。短期记忆是临时的(相当于模型的上下文窗口),程序记忆则编码了习得的技能或行动。

为何情景记忆对 AI 智能体至关重要?

大多数 AI 模型(如标准的聊天机器人 (chatbots) 或游戏智能体)只能访问其预训练知识和短期上下文。会话结束后,所有关于过去交互的信息都会在对话或事件结束后丢失。情景记忆打破了这一限制,使智能体能够从经验中记忆和学习。以下是情景记忆如此重要的几个主要原因:

  • 从经验中学习:情景记忆允许 AI 智能体进行累积学习 (cumulative learning)。智能体可以因此在无需重新训练的情况下持续学习。
  • 改进决策与规划:情景记忆可以为智能体的思考过程提供宝贵的“后见之明”作为上下文。一个具备情景记忆的决策 AI 智能体,如果能回忆起与当前情况相似的场景,就能做出更明智的规划。
  • 个性化与上下文连续性:情景记忆可用于个性化 AI 助手或聊天机器人。它通过记住用户的偏好、过往问题和之前的互动,在多次交互中提供长期上下文。
  • 效率与适应性:记忆使智能体在探索和与世界互动时变得更有效率。智能体可以记住并重用其情景记忆,而无需重新计算或学习知识。
  • 迈向类人智能:情景记忆是自传式知识的基础,是实现人类水平的身份认同、创造力和灵活推理所必需的。它也被认为是迈向通用人工智能 (AGI) 的一步,因为具备此类能力的智能体可以从自己的“亲身”经历中进行类比。

AI 智能体中情景记忆的工作原理

AI 智能体的情景记忆通常实现为一个连接到智能体决策逻辑的记忆模块。

记忆存储

每当发生重要事件时,智能体会在记忆中创建一个新条目。每个记忆条目可能包含元数据特征(如时间戳、相关实体、结果,以及可能用于相似性搜索的嵌入向量)。

记忆检索

当智能体接收到新输入时,它会查询其情景记忆。这通常通过语义搜索 (semantic search) 完成。新查询被编码成一个向量表示,然后用这个向量在记忆库中搜索相似的向量(即与当前上下文相似的过去事件)。匹配度最高的“情节”被检索出来,并“注入”到智能体的推理过程中。

与智能体推理的集成

一旦相关的请教记忆被检索出来,它们必须影响智能体的输出。在实践中,这种集成有几种方式:

  • 上下文增强 (Context Augmentation):我们必须将检索到的记忆文本前置或嵌入到模型的提示/上下文窗口中。这样,模型在生成响应时就能“看到”那些过去的细节。通过选择性回忆,上下文窗口得以扩展。
  • 记忆增强模型 (Memory-augmented Models):一些模型集成了一个专用模块(如可微记忆网络、知识库等)来存储和访问信息。例如,智能体的策略/决策函数在达到某个状态时可能会显式调用一个记忆读取函数。
  • 规划器与工具使用 (Planner and Tool Use):在更复杂的智能体系统(例如,自主解决任务的智能体)中,一个规划器组件可能会决定何时查阅记忆。例如,一个智能体可以有一个高层循环:“如果当前目标与过去的目标相似,则回忆该情节的解决方案并重用它。”记忆可以被视为智能体在推理链中可以访问的额外工具/数据库。

在实际应用中,情景记忆通常被具体化为一个数据库或向量存储。许多现代 AI 智能体将过去交互的嵌入 (embeddings) 存储在外部的向量数据库(如 Pinecone、FAISS、Weaviate 等)中,然后使用相似性搜索来提取前 k 个最相关的记忆条目,并将其包含在提示中。

情景记忆工作流

一些遵循此模式的系统:

  • Auto-GPT 最初只有短期记忆,但因上下文长度限制而遇到瓶颈,后来通过向量搜索引入了长期记忆。
  • Teenage-AGI 智能体明确地将其思维链和结果存储在记忆数据库中。当开始新任务时,它会查询数据库以回忆早期的推理步骤。

通过将情景记忆作为外部知识库存储,智能体可以扩展到处理成百上千个过去的情节而不会耗尽上下文,因为它只获取相关的部分。

伪代码:存储和检索情景记忆

下面的伪代码描述了一个使用嵌入的情节记录和检索工作流。它可以适用于其他智能体框架。

伪代码流程图

# 将情节存储到向量数据库的函数
def store_episode(episode_text: str, metadata: dict, vector_store):
    # 使用 LLM 或嵌入模型将文本情节转换为嵌入
    embedding = embed_text(episode_text)
    # 存储嵌入和元数据(如时间戳、用户ID、任务)
    vector_store.add(embedding, metadata)

# 检索相关过去情节的函数
def recall_episodes(query: str, vector_store, top_k=5):
    query_embedding = embed_text(query)
    # 执行向量相似性搜索以检索 top_k 个相关情节
    results = vector_store.search(query_embedding, k=top_k)
    # 提取情节文本和元数据用于上下文
    return [(item.text, item.metadata) for item in results]

# 智能体交互过程中的步骤
def agent_step(observation):
    # 总结当前观察并将其作为情节存储
    episode_text = summarise_observation(observation)
    metadata = {"timestamp": current_time(), "task": current_task()}
    store_episode(episode_text, metadata, episodic_memory_store)
    
    # 回忆相关的过去情节以辅助决策
    retrieved = recall_episodes(observation, episodic_memory_store)
    
    # 将检索到的上下文与新观察组合成提示
    prompt = compose_prompt(retrieved, observation)
    
    # 查询 LLM 并生成行动
    response = llm.generate(prompt)
    return response

请注意,此伪代码同时突出了写操作(存储情节)和读操作(检索情节)。智能体通常在存储前使用自然语言摘要来总结情节,以减少存储占用。检索通常基于向量相似性或图遍历来找到与当前上下文相关的情节。

记忆组织

情景记忆通常以一种适合高效检索的数据结构来组织。流行的技术包括:

维护和修剪记忆

随着情景记忆库的增长,智能体也需要决定记住什么和忘记什么。记忆管理策略因不同事件的重要性而异。这些策略可能包括:

  • 基于相关性的保留:只保留具有高影响力结果的情节。(例如,琐碎的用户交互可能会被修剪或存档。)
  • 摘要化:完整存储最近的情节,但将长期记忆压缩成摘要。例如,一年前的聊天会话可能会被压缩成一个包含关键点的简短笔记。
  • 基于时间的衰减:除非被频繁访问,否则记忆会被赋予一个“年龄分数”并最终随着时间的推移而淘汰。
  • 用户控制与安全:特别是对于个人 AI 助手,用户应该能够删除或审查已存储的任何记忆。

构建情景记忆需要软件架构(处理存储和检索的记忆模块)和算法智能(识别在何种情况下从存储中调用哪些记忆)。这个领域的研究进展迅速,不断有新的框架和技术被提出来赋予 AI 智能体更强的记忆能力。

情景记忆的应用和用例

情景记忆为 AI 智能体开启了众多的应用和用例。它使智能体在涉及长期理解和适应的场景中变得更加能干和实用。以下是一些情景记忆应用和使用领域的例子:

应用/用例 描述与优势
个性化虚拟助手 在数字助手(如客户支持、生产力工具)中使用情景记忆来回忆偏好、历史和会话间的上下文。这可以带来用户推荐(例如,记住用户的首选靠窗座位或酒店类型),提供量身定制的服务(就像人类助手会学习和记住客户的习惯一样)。
持续学习智能体 诸如家教或人力资源入职助理之类的智能体使用情景记忆进行终身学习 (lifelong learning)。它们根据先前会话中发生的情况,为每个用户调整教学方式和内容,从而避免重复或坚持无效的方法。它们赋予智能体泛化知识的能力,并防止“灾难性遗忘 (catastrophic forgetting)”,因为过去的重要经验被明确存储并可供访问。
增强的强化学习 在机器人和游戏领域,智能体可以使用情景记忆来回忆成功的策略或重要的错误。例如,一个扫地机器人可以记住房屋的布局以及哪些区域更容易脏,从而在未来更高效地清洁。
复杂任务自动化(智能体工作流) 对于需要处理电子邮件、日历或项目的 LLM 智能体,情景记忆非常有用,因为它们必须记住过去采取的行动以防重复同样的错误(例如,重复预订会议)。决策及其结果的日志可以保存在情景记忆中,使智能体的行为可审计和可解释。
协作与多智能体系统 它可以用来在多个智能体或人机团队之间保持共享的上下文。智能体可以通过同步其知识库(例如,在机器人技术中以地图共享的形式交换情景记忆)来维持一致的视角。
领域特定专家系统 在医学、法律或客户支持等领域,智能体可以使用情景记忆来学习和检索匿名的案例知识(症状、诊断、解决方案等)。当新案例出现时,智能体可以检索相似的情节来为当前的问题解决提供信息。

限制与挑战

情景记忆潜力巨大,但也带来了一些挑战和潜在的陷阱。以下是情景记忆的一些挑战和局限性。在设计记忆增强型智能体时,必须牢记这些问题:

挑战 摘要
记忆的准确性与相关性 确保检索到的记忆准确且相关非常困难。过时或脱离上下文的情节可能导致错误的输出。智能体需要强大的检索、持续更新和验证机制。
可扩展性与性能 记忆数据可能会无限增长,导致检索缓慢和成本增加。压缩和索引等优化对于大规模的快速、高效访问至关重要。
知识保留与遗忘 过多的记忆可能存储不相关或敏感的数据,引发隐私/安全问题。智能体需要记忆治理、删除和匿名化功能以避免问题。
一致性与对齐 过去错误或有偏见的记忆可能会影响智能体的决策。必须对智能体进行测试,以确保其学习与用户意图和道德规范保持一致,尤其是在高风险场景中。
实现的复杂性 情景记忆增加了系统和调试的复杂性。设计不佳可能导致不可预测的行为。管理触发器、检索和更新增加了开发挑战。
替代方案与局限性 更长的上下文窗口或微调模型有所帮助,但各有权衡。情景记忆更具可解释性,但并非万能解决方案。混合方法正在兴起。

常见问题解答 (FAQ)

问:AI 中的情景记忆是什么?
答:在人工智能的背景下,情景记忆是一种机制,通过它,智能体可以存储和回忆其遇到的经历或事件,以及相关的上下文信息(如时间、地点和结果)。

问:情景记忆与智能体中的语义记忆有何不同? 答:情景记忆包含智能体经历过的特定上下文事件的信息(例如,“我上个月为用户 X 预订了去巴黎的航班”)。语义记忆是事实和知识的汇编,与特定事件无关(例如,“巴黎是法国的首都”)。

问:强化学习智能体如何使用情景记忆? 答:在强化学习智能体中,情景记忆使其能够回忆特定的事件或情节,包括过去经历的一系列动作、状态和奖励。这样,智能体可以记住成功或失败的经验,并在遇到类似情况时利用这些信息做出更明智的决策。

问:大语言模型中使用情景记忆吗? 答:大多数 LLM,如 GPT-3 或 GPT-4,不具备在会话之间持久存在的情景记忆。然而,开发者可以为 LLM 增加外部记忆模块,使其能够存储过去的用户交互,并在之后引用这些交互。

问:实现情景记忆的常用工具有哪些?
答:流行工具包括用于存储和检索经验嵌入的向量数据库(如 Pinecone、FAISS、Weaviate 等),用于存储事件间关系的图数据库,用于将记忆构建到 LLM 智能体中的框架(如 LangChain),以及用于特定应用的定制记忆模块。

结论

情景记忆是使智能体变得智能和自适应的基石。通过赋予智能体记忆、检索和从自身独特经验中学习的能力,我们可以从静态的、一刀切的自动化过渡到能够像人类一样随时间个性化、适应和改进的系统。

尽管仍有许多技术和伦理挑战需要解决,但持续的研究和开发正在迅速克服这些障碍。

随着 AI 智能体变得越来越具上下文感知能力和终身学习能力,情景记忆将成为下一代值得信赖、有效且类人的人工智能的构建块。而像 Gradient GPU Droplets 这样可扩展和高性能的基础设施,将使开发者能够轻松地训练、部署和迭代支持记忆的 AI 系统。

参考与资源

关于

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计