问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Agent技术解读:Memory记忆模块

创作时间:
作者:
@小白创作中心

Agent技术解读:Memory记忆模块

引用
1
来源
1.
https://www.53ai.com/news/LargeLanguageModel/2024081845381.html

记忆模块是Agent技术中的核心组件之一,它模拟了人类记忆的获取、存储和检索过程。本文将从记忆的定义、来源、保存方式和工作原理四个方面,深入解析Agent技术中的Memory记忆模块。

大半年前,介绍了基于LLM的Agent知识,文章《大模型智能体 LLM Agent》中提到:
Agent是大模型与场景间价值传递桥梁, 重要性不言而喻。

从功能上看,Agent有多个组件构成,规划、记忆和工具使用等
Agent

LLM

  • Planning + Feedback + Tool use
    今天聊聊其中的一个组件:Memory,记忆模块

什么是记忆?

记忆定义为用于获取、存储、保留和后续检索信息的过程,人类大脑中主要有三种类型的记忆。

  1. 感官记忆(Sensory memory)
  • 记忆最早阶段,提供原始刺激结束后保留感官信息(视觉,听觉等)印象的能力,通常只持续几秒钟。
  • 感官记忆的子类别包括图标记忆(视觉)、回声记忆(听觉)和触觉记忆(触觉)。
  1. 短时记忆(STM)或工作记忆(Working Memory)
  • 存储了当下能意识到的所有信息,以及执行复杂的认知任务(如学习和推理)所需的信息,大概可以存储7件事,持续20-30秒。
  1. 长期记忆(LTM)
  • 顾名思义,LTM可以将信息存储相当长的时间,范围从几天到几十年不等,具有基本上无限的存储容量。LTM有两种亚型:
  • 1)显式/陈述性记忆,即对事实和事件的记忆,指那些可以有意识地回忆起来的记忆,包括情景记忆(事件和经验)和语义记忆(事实和概念)。
  • 2)隐式/程序性记忆,这种类型的记忆是无意识的,包括自动执行的技能和例程,比如骑自行车或在键盘上打字。

对应语言模型概念:

  1. 作为原始输入(包括文本、图像或其他形式)的学习嵌入表征的感官记忆;
  2. 短期记忆就是上下文学习(in-context learning),非常短且影响范围有限,受到Transformer的上下文窗口长度的限制。
  3. 长期记忆作为智能体在查询时可用的外部向量存储,可通过快速检索访问。

可见,记忆模块像 Agent大脑,帮助积累经验,自我进化,让行为更加一致、合理和有效。
LLM Memory设计灵感来自人类记忆过程的认知科学研究。

  • 人类记忆发展:从感觉记忆开始,它记录感知输入;然后是短期记忆,暂时保持信息;最后是长期记忆,在更长的时间内巩固信息。
    Agent 记忆结构设计借鉴了人类记忆特点。
  • 短期记忆类似受限于transformers上下文窗口的输入信息。
  • 长期记忆则类似于外部向量存储,Agent可以根据需要快速查询检索。

LLM记忆从何而来?

记忆来源: 智能体记忆内容的出处。
三种类型记忆来源:

  • ①内部任务信息(Inside-trial Information): 当前任务执行信息
  • 单个任务或交互过程中收集的数据。仅与当前正在进行的任务有关。
  • 一个对话人物, Agent 要记住上下文信息, 以便生成连贯的回应
  • ②跨任务信息( Cross-trial Information ): 历史任务重的长期积累学习
  • 跨越了多个任务或交互过程,它包括了Agent在不同任务中积累的经验、学到的教训以及可能的模式识别
  • 旅行计划中, Agent 从用户预订过的机票酒店,用户反馈 这类跨任务信息优化改进执行策略
  • ③外部知识(External Knowledge)
  • Agent 与环境交互之外的信息。
  • 可能是通过API调用、数据库查询或访问在线资源(如维基百科)等方式获得的
    各个 记忆实现案例 分布对比
  • 参考:Agent memory大揭秘:记忆从哪儿来?

    其中,ExpeL的工作流程图包含以上三种方式

LLM记忆如何保存?

记忆如何保存? 文本形式、参数形式为主
文本形式的记忆和参数形式的记忆同样也是各有千秋,它们适合不同的应用场景。

  • 如果要快速回忆最近的对话,文本形式可能更合适;
  • 而如果要存储大量知识,或者需要一个稳定可靠的知识库,参数形式可能更有优势。
    各种记忆形式案例总结
  • Agent memory大揭秘:5种记忆形态,轻松拿捏

文本形式

分析

  • 好处: 易于理解和实现,而且读写速度都很快。
  • 但是,如果记忆太长,就会占用很多空间,影响处理速度。
    文本形式记忆可进一步细分为几种类型:
  • 存储完整的交互信息: ReAct
  • 最近的交互信息
  • 检索到的交互信息和外部知识。
    MemGPT 分别体现出了短期和召回记忆;
    Qwen-Agent中,通过 chatml 特有多轮格式 进行分割历史的会话,最后一轮才加上ReAct的prompt。

参数形式

这种方式更高级。不直接存储文字,而是把记忆转换成模型参数,就像是把知识压缩成精华。

  • 好处: 不受文本长度限制,而且存储效率更高。
  • 但是,写入时可能需要更多的计算,而且解释起来也不如文本形式直观。
    参数形式的记忆则涉及更复杂的技术,比如: fine-tuning 和 editing。
  • 微调可以帮助模型快速学习特定领域的知识
  • 而知识编辑则可以精确地更新或删除某些记忆,避免影响其他无关的知识。
    经典 Character-LLM: A Trainable Agent for Role-Playing,用微调方式

图谱

另外,也有更高级的形式:图谱
比如 微软推出的 GraphRAG,使用LLM从语料中挖掘实体、关系,组成知识图谱,供下游使用。
详见:https://microsoft.github.io/graphrag/
形态上越来越像人类。
不少人将知识图谱技术利用起来,比如 Neo4j,效果示例:
使用 Cypher语言查询节点,结果融入LLM

LLM记忆如何工作?

实际应用中

  • 有些系统只模拟人类的短期记忆,通过上下文学习实现,记忆信息直接写在prompt中。
  • 而有些系统则采用了hybird memory(混合记忆架构),明确模拟了人类的短期和长期记忆。短期记忆暂时缓冲最近的感知,而长期记忆则随着时间的推移巩固重要信息。
  • 记忆格式上,可以自然语言或嵌入向量形式存储。
  • 操作方面,Agent通过记忆阅读、记忆写入和记忆反思三个关键操作与外部环境进行交互。
  • 记忆阅读: 提取有意义的信息, 以增强Agent的行动;
  • 记忆写入: 将感知到的环境信息存储在记忆中;
  • 记忆反思: 模拟了人类审视和评估自己的认知、情感和行为过程的能力。
    记忆操作像 LLM大脑,三个部分组成:记忆写入、记忆管理和记忆读取。
  • ①记忆写入: LLM短期记忆, 接收到新信息时(聊天),以特殊编码方式存入"大脑"
  • MemGPT : 自我指导是否写入记忆,智能体根据上下文决定是否更新
  • MemoGPT : 聊天时做总结, 提取对话片段的主题, 关键词形式保存,便于查找, topic,summary,dialogues
  • ②记忆管理: LLM长期记忆, 整理短期记忆信息;信息归类, 找出最重要的部分,忘掉次要信息,保持大脑的清晰、高效
  • MemoryBank : 智能体从对话内容中提炼每日大事记, 同时不断评估,生成个性特征
  • Voyager : 智能体根据环境反馈优化记忆
  • Generative Agents : 智能体自我反思,获取更高层次的信息. 从事件信息中生成抽象想法
  • GITM : 记忆模块中总结多个计划的关键行动, 建立各种情况下的共同参考计划, 提取最重要的行动步骤
  • ③记忆读取: 使用LLM记忆解决问题
  • ChatDB : SQL操作完成记忆阅读
  • MPC : 从记忆池里检索相关记忆, 使用思维链示例方式,忽略次要信息
  • ExpeL : 用Faiss向量库作为记忆池, 找出与当前任务最相似的k个成功示例.
    参考:Agent memory大揭秘:轻松搞定记忆写入、管理、读取
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号