30 秒看懂
2023 年 10 月,Matthew Berman 介绍了 MemGPT 借鉴操作系统、在模型固定上下文与外部存储之间移动信息的方法。他回顾作者的对话和文档实验,演示早期安装过程,并与两名研究团队成员讨论未来方向。
- 1虚拟上下文MemGPT 借鉴操作系统内存,在有限的模型上下文和外部存储之间移动信息。
- 2两种外部存储回忆存储记录过去事件,归档存储则支持通用信息和文档的读写。
- 3对话评估研究人员在特定条件下测试从先前对话中检索信息以及生成个性化开场白。
- 4文档实验图表显示,在所测试的文档和嵌套检索任务中,MemGPT 的表现相对稳定。
- 5文件检索演示系统从归档记忆中检索材料,但生成的财务数字必须与原始资料核对。
- 6作者的路线图Packer 和 Fang 介绍了计划中的工作流程集成,以及减少对 GPT-4 依赖的目标。
要点建议
- MemGPT 使用外部存储和函数调用扩展可访问信息,但模型实际的上下文窗口仍然固定。
- 回忆存储保存过去事件,归档存储则为事实和文档提供通用读写空间。
- 记忆检索和编辑可能失败或引入错误信息;保存的数据并不自动可靠。
- 报告的提升适用于论文中测试的对话和文档任务,并非所有可能的工作负载。
- 系统指令、重复调用和检索会增加上下文占用、延迟和成本。
- 展示的安装方法、模型限制和计划反映的是 2023 年早期项目的情况。
按章节阅读整理后的全文
记忆问题
Berman 介绍 MemGPT 及其操作系统类比。外部存储扩展了可访问信息,而底层模型的上下文仍然固定。
2023 年 10 月,Matthew Berman 解读 UC Berkeley 论文《MemGPT:将大语言模型作为操作系统》,演示早期代码,并介绍作者 Charles Packer 和 Vivian Fang。研究要解决的问题是:对话智能体如何保留和使用超出模型固定上下文窗口的信息。
论文考虑了长期对话和文档分析。Berman 将提出的虚拟上下文比作操作系统内存:有限的主上下文类似 RAM,外部存储类似磁盘。MemGPT 在两者之间移动选定的信息;它并没有真的为底层模型提供无限上下文窗口,也不能保证完美回忆。
Berman 解释,扩展传统 Transformer 上下文可能很昂贵,因为标准自注意力的计算量随长度呈平方增长,而长上下文模型也可能难以利用中间位置的信息。这些观察促使研究人员设计检索和记忆管理系统,但性能取决于架构与工作负载,而非适用于所有模型的普遍规律。
主上下文与外部上下文
函数调用在活动窗口与存储之间移动信息。Berman 解释工作记忆、对话历史、回忆存储和归档存储。
MemGPT 为语言模型提供读取和更新记忆的函数调用。解析器处理用户消息和文档等事件,模型可以在一个任务中执行多次记忆操作后再回答。论文将此描述为在明确系统指令下自主管理,而不是独立学习模型权重。

主上下文具有固定 token 预算,包含系统指令、近期对话和可编辑的工作上下文。外部存储可以大得多,但仍受物理资源、检索质量和成本制约。系统指令和先前消息也会消耗部分上下文预算,留给新用户内容的空间因此减少。
Berman 将其与递归摘要作比较:后者反复压缩旧材料以适应窗口。经过多轮处理,摘要可能丢失细节。他用反复压缩视频作类比:检索保存的历史可能找回摘要遗漏的信息,但检索同样可能漏掉信息或返回错误内容。
论文的主上下文层级固定系统指令、保留近期对话队列,并允许模型通过函数编辑工作上下文。Berman 展示一个例子:智能体从对话中记录生日和最喜欢的蛋糕,然后回复用户。它从消息日期推断生日,既展示了有用的记忆选择,也说明推断可能出错。

论文区分了包含已处理对话历史的回忆存储,以及用于事实、喜好和文档等信息的通用读写归档存储。实验使用数据库,并按时间、文本和嵌入向量搜索,将相关内容带回有限的主上下文。这些是外部系统组件,而不是自动嵌入模型参数中的记忆。
记忆编辑与对话实验
智能体可以更新保存的细节并搜索过去的对话。论文在特定设置下评估检索和个性化开场白。
明确的指令说明了记忆层级和可用函数格式。收到上下文警告时,智能体可以移动或编辑信息;当用户说自己喜欢浪漫喜剧而非恐怖片时,它也可以修正保存的偏好。Berman 注意到一个示例提到了画面中对话没有出现的游戏,并提出可能存在幻觉。
研究人员评估多会话对话的一致性和参与度。深层记忆检索任务会就过去的对话提出范围狭窄的问题,例如之前提到过的某位歌手。MemGPT 可以搜索回忆存储并利用检索到的片段回答;论文在指定实验条件下将其结果与固定上下文基线比较。

另一项对话开场白评估测试智能体在问候用户时是否会利用早期信息。Berman 展示了一个准备 LSAT 考试的人,以及其咖啡或茶偏好的例子。这些示例说明了个性化,但不能证明每次引用都准确或受欢迎。
文档分析与局限
Berman 回顾文档和嵌套检索实验。系统开销、检索错误、成本和函数调用可靠性限制了结果。
谈到文档分析,Berman 解释为什么一组较长的企业文档可能超过 2023 年可用的上下文容量。他讨论了长输入不同位置的检索表现不均衡的研究,并将其与课堂记忆练习作比较。这只是说明性类比,不能证明语言模型和人类记忆的运作方式相同。
论文展示的文档问答和嵌套键值检索图表,比较了输入增长时 MemGPT 与 GPT-3.5、GPT-4 基线的表现。在这些实验中,MemGPT 曲线相对稳定,而一些基线结果下降。这是针对所测试任务和设置的证据,并不意味着对任意数量的文档都能保持恒定准确率。

这里存在权衡:系统指令占用底层模型有限上下文的一部分,反复调用模型和检索也会增加成本及延迟。论文还报告,在测试的 GPT-3.5 和 Llama 2 变体中,函数调用错误比 GPT-4 函数调用模型更多。这些发现描述的是 2023 年的模型和实验,并不适用于之后的所有开放模型。
Berman 对将 MemGPT 接入 AutoGen 等多智能体工具感兴趣,但他将其描述为未来可能的集成。外部存储可以扩展可访问信息,却不会创造真正无限且没有错误的智能体记忆。
安装与文档演示
Berman 展示早期安装方式以及对申报文件的归档搜索。生成的答案需要独立核对来源。
在历史安装演示中,Berman 打开项目代码库并克隆,创建和激活 Python 3.10 Conda 环境、安装依赖,然后通过环境变量提供 OpenAI API 密钥。这些是他为早期版本展示的步骤,项目当前的设置可能不同。
他演示将文本文档载入归档存储,并为 SEC 申报文件示例计算嵌入向量。画面中三份文档的估算费用为 12 美分,他说计算嵌入约花了六分钟。这些数字只属于他的演示,不是普遍的成本或速度承诺。
他的第一个问题没有明确要求系统使用归档记忆。随后他根据归档记忆询问 Lyft 和 Uber 的营收,界面显示了分别进行的归档搜索及生成的回答。使用这些生成数字前需要与原始申报文件核对;检索和流畅回答并不能保证事实正确。
Berman 开始第二个查询,询问一个词在申报文件中出现了多少次,但担心反复调用可能变得昂贵,于是中途停止。他说这个早期项目正在发展,并希望它支持开放模型。用户也可以调整人物设定或指令,控制智能体何时搜索记忆。
作者的计划
Packer 和 Fang 解释方法,介绍可能支持的工作流程,以及减少对 GPT-4 依赖的目标。
最后,Charles Packer 和 Vivian Fang 自我介绍为 MemGPT 团队成员。Packer 解释,可以指示上下文有限的模型注意记忆警告,并在对话继续前将相关事实保存到持久存储中。这扩展了系统之后可以检索的信息,但不会改变底层固定窗口。
短期内,作者希望支持更多工作流程,包括文档嵌入搜索及可能的 AutoGen 集成。长期来看,他们希望通过改进其他模型或为语言模型层微调开放模型,减少对 GPT-4 的依赖。这些是录制时的研究计划,并不保证后来一定发布。
同频道的其他文章
34:21EN → 简体中文
0:36EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文
1:03:37EN → 简体中文
0:53EN → 简体中文