9.4k Star!MemGPT:伯克利大学最新开源、将LLM作为操作系统、无限上下文记忆、服务化部署自定义Agent

cover_image

9.4k Star!MemGPT:伯克利大学最新开源、将LLM作为操作系统、无限上下文记忆、服务化部署自定义Agent

原创 Aitrainee | 公众号:AI进修生:AI算法工程师 / Prompt工程师 / ROS机器人开发者 | 分享AI动态与算法应用资讯,提升技术效率。

排版不佳,公众号阅读原文:9.4k Star!MemGPT:伯克利大学最新开源、将LLM作为操作系统、无限上下文记忆、服务化部署自定义Agent

🌟 MemGPT 允许你 使 用长期记忆和自定义 工具构建 LLM Agent 📚🦙

最近有个新项目 MemGPT
,这个东西真的挺有意思,它可以让大型语言模型,比如让GPT-4这样的llm处理比原生更长的上下文窗口,从而提高它们在复杂任务(如多会话对话和详细文档分析)中的性能。

教导llm管理自己的无限上下文内存!

▲ 在 MemGPT 中,固定上下文 LLM 处理器增强了分层内存系统和功能,使其可以管理自己的内存。LLM
的提示标记(输入)或主上下文由系统指令、工作上下文和 FIFO 队列组成。LLM 完成标记(输出)被函数执行器解释为函数调用。MemGPT
使用函数在主上下文和外部上下文(归档和调用存储数据库)之间移动数据。LLM 可以通过在其输出中生成特殊关键字参数 (
request_heartbeat=true )来请求立即后续 LLM 推理,以将函数调用链接在一起;函数链允许 MemGPT 执行多步骤检索来回答用户查询

  • • llm越来越多地被用于永久聊天

  • • 有限的上下文长度使得永久的聊天具有挑战性

  • • MemGPT通过管理一个虚拟上下文(受操作系统中虚拟内存的启发)来创建无限的LLM上下文

  • • 通过MemGPT,我们证明了llm可以被教会 管理 自己的内存!

通常像GPT-4这类大模型处理复杂的自然语言任务还行,但是当事情涉及到长期记忆或者需要推理一大堆数据时,它们就有点力不从心了。想想看,如果一个模型只能记住它最近看过的一点点信息,要是信息太多,它就处理不了了。

▲ 比较常用模型和 LLM API 的上下文长度(数据收集于 1/2024)。近似消息计数假设预提示有 1k 个令牌,平均消息大小为50
个代币。“Open”意味着该模型是开源的或开放权重的(而不是仅在 API 后面可用)。

但是,MemGPT这玩意儿来了就不一样了。加州大学伯克利分校的研究人员发明了这个技术,灵感来自于电脑操作系统怎样管理内存的。

这个技术其实挺简单的,就是把内存分成两部分:一部分像电脑的RAM一样直接用来处理信息,另一部分就像硬盘一样存放不是立刻需要的数据。当需要这些数据的时候,MemGPT就会把它们调出来。这就让模型能处理那些本来因为信息太多处理不了的任务。

▲ MemGPT(左)在收到有关上下文空间有限的系统警报后将数据写入持久内存

MemGPT通过将内存分为两个主要层进行操作:“主要上下文”,它包括LLM正在处理的直接数据,以及“外部上下文”,它存储可以根据需要带入主要上下文的额外数据。这种设计的灵感来自传统操作系统管理物理内存和虚拟内存的方式,即数据在
更快和更慢 的存储介质之间进行分页,以创建一个更大、无缝的内存空间的假象。

▲ MemGPT(左)可以搜索上下文外数据,将相关信息带入当前上下文窗口

该系统被设计为 自治的 ,根据手头任务的需求管理这些内存层之间的数据流。例如,MemGPT可以根据当前的上下文和用户交互的需求,动态地决定
何时从外部上下文检索数据 ,何时将不太重要的信息推送出去。

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

这种架构不仅允许处理更大的数据集和更长的对话,而且还提高了模型在扩展的交互中保持 一致性 的能力,这对于需要持续参与的应用程序特别有用,例如个性化
数字助理 和高级对话代理。

▲ MemGPT(左)解决文档 QA 任务的示例。维基百科文档的数据库被上传到档案存储。MemGPT
通过函数调用查询档案存储,将分页搜索结果拉入主上下文。

这个技术的重要性在于,它没有简单地增加模型的大小或者计算需求,而是通过一种更聪明的方式来优化模型的内存使用。这样做不仅能让现有的模型做得更好,还为未来的发展提供了新的方向。

MemGPT 还支持与 llama.cpp、vLLM、Ollama、LM Studio 等开源模型整合、以及与 AutoGen 等 MultiAgent
框架进行结合使用。 AutoGen是微软开源的多 Agent 的开发框架,目前 25.5K Star。

https://memgpt.readme.io/docs/local_llmhttps://github.com/microsoft/autogen

![](https://res.wx.qq.com/t/wx_fed/we-

emoji/res/v1.3.10/assets/newemoji/Party.png) 快速开始 ****

MemGPT 让构建和部署具有以下功能的有状态 LLM 代理变得简单:

  • • 长期记忆/状态管理

  • • 与 外部数据源 (例如 PDF 文件)的连接,用于 RAG

  • • 定义和调用 自定义工具 (例如 Google 搜索 )

您还可以使用 MemGPT 将代理部署为 服务 。您可以使用 MemGPT 服务器在支持的 LLM 提供者的基础上运行多用户、多代理应用程序。

安装与设置

安装 MemGPT:

pip install -U pymemgpt

要将 MemGPT 与 OpenAI 一起使用,请将环境变量 OPENAI_API_KEY 设置为您的 OpenAI 密钥,然后运行:

memgpt quickstart --backend openai

要使用 MemGPT 与免费托管的端点,请运行:

memgpt quickstart --backend memgpt

要获取更高级的配置选项或使用不同的 LLM 后端 或 本地 LLMs ,请运行 memgpt configure

快速入门(CLI)

您可以在 CLI 中运行 memgpt run 来创建并与 MemGPT 代理聊天。 run 命令支持以下可选标志(请参阅 CLI 文档
以获取完整的标志列表):

  • --agent :(str)要创建或恢复聊天的代理的名称。

  • --first :(str)允许用户发送第一条消息。

  • --debug :(bool)显示调试日志(默认=False)

  • --no-verify :(bool)绕过消息验证(默认=False)

  • --yes / -y :(bool)跳过确认提示并使用默认值(默认=False)

您可以在 CLI 文档 中查看可用的聊天命令列表(例如 /memory/exit )。

开发者门户(alpha 构建)

MemGPT 提供了一个开发者门户,使您可以轻松创建、编辑、监视和与您的 MemGPT 代理聊天。使用 docker 安装 MemGPT
是使用开发者门户的最简单方法(请参阅下面的说明)。

快速入门(服务器)

选项 1(推荐) :使用 docker compose 运行

  1. 1. 在您的系统上安装 docker

  2. 2. 克隆仓库: git clone git@github.com:cpacker/MemGPT.git

  3. 3. 运行 docker compose up

  4. 4. 在浏览器中转到 memgpt.localhost 查看开发者门户

选项 2: 使用 CLI 运行:

  1. 1. 运行 memgpt server

  2. 2. 在浏览器中转到 localhost:8283 查看开发者门户

服务器运行后,您可以使用 Python 客户端 或 REST API 连接到 memgpt.localhost (如果您使用 docker
compose 运行)或 localhost:8283 (如果您使用 CLI 运行)以创建用户、代理等。服务需要使用 MemGPT
管理员密码进行身份验证,可以使用运行 export MEMGPT_SERVER_PASS=password 设置密码。

当使用 MemGPT 与开放的 LLMs(例如从 HuggingFace 下载的)时,MemGPT 的性能将高度依赖于 LLM 的函数调用能力。您可以在
Discord 的 #model-chat 频道 以及 此电子表格 上找到已知与 MemGPT 配合良好的 LLMs/模型的列表。

参考链接

文档:https://memgpt.readme.io

论文:https://ar5iv.labs.arxiv.org/html/2310.08560

官网:https://research.memgpt.ai/

Github:https://github.com/cpacker/MemGPT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/320879.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

N7552A是德科技N7552A电子校准件

181/2461/8938产品概述: 更小巧轻便的 2 端口模块,支持 3.5 mm 或 N 型 50 Ω 连接器,能够将校准时间缩短一半 特点 频率范围:直流至 9 GHz 使用 N 型或 3.5 mm 连接器 更小巧轻便的 2 端口电子校准件(ECal&#xff…

力扣刷题--数组--第一天

一、数组 数组特点: 连续内存空间存储得数据元素类型一致数组可以通过下标索引查找数据元素,可以删除、替换、添加元素等 1.1 二分查找 使用二分查找需满足得条件: 数组是有序的;数组中没有重复元素;查找的target…

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令,这里补充两个: 导出镜像文件:[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…

关于Oracle 23ai 你要知道的几件事情

1.版本生命周期 23ai发布后的Oracle版本生命周期图,可以看到23ai是长期支持版本可以到2032年。 引申 Oracle版本分为两类 Innovation Release--创新版本,一般提供至少两年技术支持 Long Term Release --长期支持版本,一般提供5年premier和…

护眼灯排名前十的品牌有哪些?护眼灯品牌排行前十名推荐

近视在儿童中愈发普遍,许多家长开始认识到,除了学业成绩之外,孩子的视力健康同样重要。毕竟,学业的落后可以逐渐弥补,而一旦孩子近视,眼镜便可能成为长期伴随。因此,专业的护眼台灯对于每个家庭…

MySQL 中的HASH详解

MySQL中的哈希索引(Hash Index)是一种特殊的数据库索引类型,它利用哈希表(Hash Table)的数据结构来存储索引项。哈希表通过哈希函数(Hash Function)将索引列的值转化为一个固定长度的哈希码&…

腾锐D2000-8 MXM VPX,全国产,可广泛应用于边缘计算网关、入侵检测、VPN、网络监控等等应用领域

腾锐D2000-8 MXM VPX 1. 概述 XMVPX-108 是一款基于飞腾 D2000/8 处理器的低功耗逻辑运算和图形处理 VPX 刀片, 板贴 32GB DDR4 内存,搭载飞腾 X100 套片,满足通用 IO 接口功能。GPU 采用 MXM 小型插卡形式, 搭配 8GB 显卡。提供…

SAP 定义冻结库存不参与MRP运算简介

在MRP中,有着各种类型的特殊库存,在运行MRP时,某些特殊库存将被考虑,某些特殊库存又不被考虑,在实际过程中某个物料的库存,存在冻结库存,质检库存,调拨的在途库存,业务部门并不希望一味的将库存地点排除到MRP计算之外。希望在跑MRP的时候只考虑非限制库存。 针对以上…

使用STM32的FLASH保存数据

使用STM32的FLASH保存数据 为了防止“掉电丢失数据”,我们最先想到的是EEPROM,但是若考虑到降低成本和PCB布线的空间,使用CPU内部的FLASH空间来保存数据,是最好的选择。尤其是在STM32芯片上,应用案例还是比较多的。 …

使用Beego创建API项目并自动化文档

最近需要使用Go写一个Web API项目,可以使用Beego与Gin来写此类项目,还是非常方便的,这里就介绍一下使用Beego来创建的Web API项目并自动化文档的方法。 使用Gin创建API项目并自动化文档参见:使用Gin编写Web API项目并自动化文档 …

软件FMEA的时机:架构设计、详设阶段——FMEA软件

免费试用FMEA软件-免费版-SunFMEA 软件FMEA(故障模式与影响分析)是一种预防性的质量工具,旨在识别软件中可能存在的故障模式,并分析其对系统性能、安全性和可靠性的影响。在软件开发生命周期中,选择适当的时机进行FME…

十七岁少女夸小沈阳:我瞅你长得有一种大海的感觉呢!

十七岁少女夸小沈阳:我瞅你长得有一种大海的感觉呢! ——小品《超级大明星》(上)的台词 小沈阳:THANK YOU 哦了 不用拍 感谢大家 非常的感谢所有的好朋友们 把你们热情而洋溢的掌声呢 送给我们所有的演员 这…

[VulnHub靶机渗透] Hackademic: RTB1

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

linux内核网络源码--通知链

内核的很多子系统之间有很强的依赖性,其中一个子系统侦测到或者产生的事件,其他子系统可能都有兴趣,为了实现这种交互需求,linux使用了所谓的通知链。 本章我们将看到 通知链如何声明以及网络代码定义了哪些链 内核子系统如何向通…

【yolov8】yolov8剪枝训练流程

yolov8剪枝训练流程 流程: 约束剪枝微调 一、正常训练 yolo train model./weights/yolov8s.pt datayolo_bvn.yaml epochs100 ampFalse projectprun nametrain二、约束训练 2.1 修改YOLOv8代码: ultralytics/yolo/engine/trainer.py 添加内容&#…

深度学习之基于Vgg19预训练卷积神经网络图像风格迁移系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在数字艺术和图像处理领域,图像风格迁移技术一直备受关注。该技术可以将一幅图像的内容和…

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速: 杜拉德公式是用来计算非均质固液混合料浆在输送管中的临界速度的公式,具体形式为: uL FL (2gD / (ρ0 - ρ1))^(1/2) 其中: uL:表示料浆的临界速度,…

什么是泛域名证书?与普通SSL证书有什么区别

随着互联网的发展,越来越多的网站开始使用SSL证书来保护用户的隐私和安全。在SSL证书中,泛域名SSL证书和普通域名证书是两种常见的类型。那么,什么是泛域名SSL证书,与普通域名证书有什么区别呢? 首先,我们来…

投资者悄然收购二手楼梯楼,在杭州豪掷巨资购买12套!

独家首发 -------------- 日前杭州中介流传,一名投资客大举收购二手楼梯楼,下手就是12套,显示出一些具有前瞻性眼光的投资者悄悄放弃电梯楼,选择了处于价格洼地的楼梯楼。 二手楼梯楼当下被严重低估,在一线城市的二手楼…

【文献阅读】 The ITS Irregular Terrain Model(Longely-Rice模型)海上电波传播模型

前言 因为最近在做海上通信的一个项目,所以需要对海上的信道进行建模,所以才阅读到了这一篇文献,下面的内容大部分是我的个人理解,如有错误,请见谅。欢迎在评论区和我一起讨论。 Longely-Rice模型介绍 频率介于 20 …