AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Agent技术解读:Memory记忆模块
发布日期:2024-09-13 13:04:33 浏览次数: 1574



引言  

介绍了Agent组件里的记忆功能如何实现



大半年前,介绍了基于LLM的Agent知识,文章《大模型智能体 LLM Agent》中提到:

Agent是大模型与场景间价值传递桥梁, 重要性不言而喻。

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

Agent = LLM + Planning + Feedback + Tool use

今天聊聊其中的一个组件:Memory,记忆模块

(1)什么是记忆?

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

  1. 感官记忆(Sensory memory)

  • 记忆最早阶段,提供原始刺激结束后保留感官信息(视觉,听觉等)印象的能力,通常只持续几秒钟。

  • 感官记忆的子类别包括图标记忆(视觉)、回声记忆(听觉)和触觉记忆(触觉)。

  • 短时记忆(STM)或工作记忆(Working Memory)

    • 存储了当下能意识到的所有信息,以及执行复杂的认知任务(如学习和推理)所需的信息,大概可以存储7件事,持续20-30秒。

  • 长期记忆(LTM)

    • 顾名思义,LTM可以将信息存储相当长的时间,范围从几天到几十年不等,具有基本上无限的存储容量。LTM有两种亚型:

    • 1)显式/陈述性记忆,即对事实和事件的记忆,指那些可以有意识地回忆起来的记忆,包括情景记忆(事件和经验)和语义记忆(事实和概念)。

    • 2)隐式/程序性记忆,这种类型的记忆是无意识的,包括自动执行的技能和例程,比如骑自行车或在键盘上打字。


    对应语言模型概念:

    1. 作为原始输入(包括文本、图像或其他形式)的学习嵌入表征的感官记忆;

    2. 短期记忆就是上下文学习(in-context learning),非常短且影响范围有限,受到Transformer的上下文窗口长度的限制。

    3. 长期记忆作为智能体在查询时可用的外部向量存储,可通过快速检索访问。



    可见,记忆模块像 Agent大脑,帮助积累经验,自我进化,让行为更加一致、合理和有效。

    LLM Memory设计灵感来自人类记忆过程的认知科学研究

    • 人类记忆发展:从感觉记忆开始,它记录感知输入;然后是短期记忆,暂时保持信息;最后是长期记忆,在更长的时间内巩固信息。


    Agent 记忆结构设计借鉴了人类记忆特点。

    • 短期记忆类似受限于transformers上下文窗口的输入信息。

    • 长期记忆则类似于外部向量存储,Agent可以根据需要快速查询检索。


    (2)LLM记忆从何而来?

    记忆来源: 智能体记忆内容的出处。

    三种类型记忆来源:

    • 内部任务信息(Inside-trial Information): 当前任务执行信息

      • 单个任务或交互过程中收集的数据。仅与当前正在进行的任务有关。

      • 一个对话人物, Agent 要记住上下文信息,以便生成连贯的回应

    • 跨任务信息( Cross-trial Information ): 历史任务重的长期积累学习

      • 跨越了多个任务或交互过程,它包括了Agent在不同任务中积累的经验、学到的教训以及可能的模式识别

      • 旅行计划中, Agent 从用户预订过的机票酒店,用户反馈 这类跨任务信息优化改进执行策略

    • 外部知识(External Knowledge)

      • Agent 与环境交互之外的信息。

      • 可能是通过API调用、数据库查询或访问在线资源(如维基百科)等方式获得的


    各个 记忆实现案例 分布对比

    • 参考:Agent memory大揭秘:记忆从哪儿来?

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


    (3)LLM记忆如何保存?

    记忆如何保存? 文本形式、参数形式为主

    文本形式的记忆和参数形式的记忆同样也是各有千秋,它们适合不同的应用场景。

    • 如果要快速回忆最近的对话,文本形式可能更合适;

    • 而如果要存储大量知识,或者需要一个稳定可靠的知识库,参数形式可能更有优势。


    各种记忆形式案例总结

    • Agent memory大揭秘:5种记忆形态,轻松拿捏

    (a) 文本形式

    分析

    • 好处: 易于理解和实现,而且读写速度都很快。

    • 但是,如果记忆太长,就会占用很多空间,影响处理速度。

    文本形式记忆可进一步细分为几种类型:

    • 存储完整的交互信息: ReAct

    • 最近的交互信息

    • 检索到的交互信息和外部知识。

    MemGPT 分别体现出了短期和召回记忆;

    Qwen-Agent中,通过 chatml 特有多轮格式<im_start> <im_end>进行分割历史的会话,最后一轮才加上ReAct的prompt。

    (b) 参数形式

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

    • 好处: 不受文本长度限制,而且存储效率更高。

    • 但是,写入时可能需要更多的计算,而且解释起来也不如文本形式直观。

    参数形式的记忆则涉及更复杂的技术,比如: fine-tuning 和 editing。

    • 微调可以帮助模型快速学习特定领域的知识

    • 而知识编辑则可以精确地更新或删除某些记忆,避免影响其他无关的知识。

    经典 Character-LLM: A Trainable Agent for Role-Playing,用微调方式


    (c)图谱

    另外,也有更高级的形式:图谱

    比如 微软推出的 GraphRAG,使用LLM从语料中挖掘实体、关系,组成知识图谱,供下游使用。

    详见:https://microsoft.github.io/graphrag/

    形态上越来越像人类。

    不少人将知识图谱技术利用起来,比如 Neo4j,效果示例:

    使用 Cypher语言查询节点,结果融入LLM


    (4)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大揭秘:轻松搞定记忆写入、管理、读取


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询