当前位置:   article > 正文

GitHub 8.9K Star,伯克利大学开源LLM记忆管理框架MemGPT

GitHub 8.9K Star,伯克利大学开源LLM记忆管理框架MemGPT

f4883eed703dbc26443a1b394a31fe35.gif

整理 | 王轶群

出品丨AI 科技大本营(ID:rgznai100)

5月1日晚间,字节跳动全栈开发者 Tom Huang 发 X 推文介绍了伯克利大学开源最专业的 LLM 记忆管理框架 MemGPT(Memory-GPT) 。目前, MemGPT 已在 GitHub 上收获 8.9K Star。

2f45b2c9444820e1f064429ae357e0a6.png

6b712f772de04faf7a124fe10cb80dc2.png

开源链接:

https://github.com/cpacker/MemGPT

MemGPT 的组件:

  • 主上下文 (Main Context): 就是大模型中固定的上下文窗口,这部分包含LLM的提示词,是大模型接收到的内容。

  • 外部上下文 (External Context): 需要在推理过程中被LLM使用,就必须显式地移动到主上下文中,大模型无法直接用。

MemGPT 会自动将多余的上下文经过整理后保存并持久化。

MemGPT 的特性包括:

  • 受 Agent/Tools 、LLM/AIOS 等理念启发,设计出的虚拟上下文管理的 LLM 系统,扩展 LLM 上下文。

  • 管理 Main Memory、外部存储有效「分页」进出信息与用户控制流。

  • 支持一致性、参与度评估。

根据《MemGPT:将大语言模型作为操作系统》论文,其研发灵感来自于操作系统的分层内存系统,通过在快速和慢速内存之间移动数据来提供大内存资源的外观。MemGPT系统,智能地管理不同的内存层,以有效地在LLM的有限上下文窗口内提供扩展上下文,并利用中断来管理自身与用户之间的控制流。

MemGPT的研究者写道:“大型语言模型 彻底改变了人工智能,但受到有限的上下文窗口的限制,阻碍了它们在扩展对话和文档分析等任务中的实用性。为了能够在有限的上下文窗口之外使用上下文,我们提出了虚拟上下文管理,这是一种从传统操作系统中的分层内存系统中汲取灵感的技术,该技术通过快速内存和慢速内存之间的数据移动提供大内存资源的外观。使用这种技术,我们引入了 MemGPT,这是一个智能管理不同内存层的系统,以便在 LLM 有限的上下文窗口内有效地提供扩展上下文,并利用中断来管理其自身和用户之间的控制流。我们在两个领域评估了受操作系统启发的设计,现代 LLM 的有限上下文窗口严重影响了其性能:文档分析,MemGPT 能够分析远远超出底层 LLM 上下文窗口的大型文档,以及多会话聊天,其中 MemGPT 能够分析远远超出底层 LLM 上下文窗口的大型文档。MemGPT 可以创建会话代理,通过与用户的长期交互来记忆、反映和动态发展。”

ca347d38dcac6a192641108ef62a59f2.png

上图为常用模型和 LLM API的上下文长度的比较(数据收集于 1/2024)。大概的消息假设是,一条预提示有 1k 个tokens,平均消息大小约 50 个tokens(约 250 个字符)。

MemGPT 的设计可以支持远超基础LLM上下文窗口的大型文档;多会话聊天领域,MemGPT 可以创建能够通过与用户的长期互动记住、反思和动态发展的对话 Agents。

be7242a127821d47d7089881ef6050f1.png

上图显示的是,MemGPT 的对话片段示例(左)更新存储的信息, 这里存储的是信息在工作上下文内存中(位于提示标记内)。

MemGPT 论文地址:

https://arxiv.org/abs/2310.08560

MemGPT 还支持与 llama.cpp、vLLM、Ollama、LM Studio 等开源模型整合、以及与 AutoGen 等 MultiAgent 框架进行结合使用:

local LLM:

https://memgpt.readme.io/docs/local_llm

AutoGen:

https://memgpt.readme.io/docs/autogen

其中,AutoGen 是微软开源的多 Agent 的开发框架,目前 25.3K Star。

Tom Huang表示:“有意思的是 MemGPT 定位于 OS 里面的存储处理模块,和最近的几项 AIOS/LLM OS 的研究有异曲同工之妙。比如 AIOS: LLM Agent Operating System。”

论文链接:

https://arxiv.org/abs/2403.16971

AIOS 的目的在优化资源分配,促进 Agents 之间的上下文切换,实现 Agents 的并发执行,为 Agents 提供工具服务,并维护 Agents 的访问控制。

AIOS 的研究团队写道:“基于大语言模型 (LLM) 的智能体的集成和部署充满了挑战,影响了其效率和功效。这些问题包括Agent通过 LLM 请求的次优调度和资源分配、代理与 LLM 之间交互期间维护上下文的困难,以及集成具有不同功能和专业的异构Agent所固有的复杂性。Agent数量和复杂性的快速增加进一步加剧了这些问题,通常会导致资源瓶颈和次优利用。受这些挑战的启发,本文提出了AIOS,一种LLM Agent操作系统,它将大语言模型嵌入到操作系统(OS)中,作为操作系统的大脑,使操作系统‘有灵魂’——迈向AGI的重要一步。具体来说,AIOS旨在优化资源分配,促进跨 Agent 的上下文切换,实现代理的并发执行,为代理提供工具服务,并维护代理的访问控制。我们提出了这样一个操作系统的架构,概述了它旨在解决的核心挑战,并提供了 AIOS 的基本设计和实现。我们对多个 Agent 并发执行的实验证明了我们的 AIOS 模块的可靠性和效率。通过这一点,我们的目标不仅是提高LLM代理的性能和效率,而且是未来更好地开发和部署 AIOS 生态系统的先锋。”

4f397d592ed7d5c2f98cbed2a782493a.png

AIOS 开源链接:

https://github.com/agiresearch/AIOS

同时,Tom Huang 表示除了 AIOS,MemGPT 也与  LLM as OS 有异曲同工之妙。

“本文设想了一个革命性的 AIOS-Agent 生态系统,其中大型语言模型 充当(人工)智能操作系统(IOS 或 AIOS)——一个‘有灵魂’的操作系统。在此基础上,开发了各种基于 LLM 的 AI 代理应用程序(Agent,或AAP),丰富了 AIOS-Agent 生态系统,标志着传统OS-APP生态系统的范式转变。我们预想LLM 的影响将不仅仅局限于人工智能应用层面,相反,它将彻底改变计算机系统、架构、软件和编程语言的设计和实现,其特点是以下几个主要概念:LLM 作为操作系统(system-级)、代理作为应用程序(应用程序级)、自然语言作为编程接口(用户级)以及工具作为设备/库(硬件/中间件级)。”其研究团队在论文中写道。

LLM as OS 论文链接:

https://arxiv.org/html/2312.03815v2

可见,业界就大语言模型目前存在的上下文长度受限、智能体集成与部署提效等现存问题,不断深入研究,正从记忆、Agent、生态等不同切入点提出行之有效的解决方案。

参考链接:

https://twitter.com/tuturetom/status/1785658632887230958

2bb41837e1782b9854aac0ae0d00169d.gif

d6c64e93057df09070aa0e2d06f56bf0.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/606163
推荐阅读
相关标签
  

闽ICP备14008679号