无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制

这篇具有很好参考价值的文章主要介绍了无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前,ChatGPT、Llama 2、文心一言等主流大语言模型,因技术架构的问题上下文输入一直受到限制,即便是Claude 最多只支持10万token输入,这对于解读上百页报告、书籍、论文来说非常不方便。

为了解决这一难题,加州伯克利分校受操作系统的内存管理机制启发,提出了MemGPT。该模型的最大创新是模仿操作系统的多级内存管理机制,通过数据在不同的内存层级之间的传输,来打破大语言模型固定上下文的限定。

开源地址:https://github.com/cpacker/MemGPT

论文:https://arxiv.org/abs/2310.08560

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制,chatgpt,语言模型,人工智能

MemGPT主要包含主上下文和外部上下文两大内存类型。主上下文相当于操作系统的主内存,是大语言模型可以直接访问的固定长度上下文窗口。

外部上下文则相当于磁盘存储,保存了主上下文之外的额外信息。MemGPT还提供了丰富的功能调用,允许大语言模型主动管理自己的内存而无需人工干预。

这些功能调用可以将信息在主上下文和外部上下文之间进行导入导出。大语言模型可以根据当前任务目标,自主决定何时移动上下文信息以更好利用有限的主上下文资源。

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制,chatgpt,语言模型,人工智能

研究人员在多个测试环境中进行了评估,结果表明,MemGPT可以有效处理远超大语言模型上下文长度限制的文本内容,例如,MemGPT可以处理长度远超过GPT-3.5和GPT-4上下文限制的文档。

当取回的文档数增加时,固定上下文模型的性能受限于取回器的质量,而MemGPT可以通过调用分页机制取回更多文档,其问答准确率也获得提升。

在新提出的多步嵌套关键词提取任务中,MemGPT通过多次调用外部上下文,成功完成了需要跨文档进行多跳查询才能得出解的任务,而GPT-3.5和GPT-4的准确率在嵌套层数增加时急剧下降到0。

主上下文

MemGPT中的主上下文相当于操作系统中的“主内存”,是大语言模型可以直接访问的固定长度上下文窗口。研究人员将主上下文分为三个部分:

系统指令:这部分保存了MemGPT的基本控制逻辑,例如,函数调用模式等,长度固定且只读。

对话上下文:这是一个先入先出的队列,保存了最近的用户交互历史,只读且会在长度超限时裁剪前段对话。

工作上下文:这是一个读写临时存储,大语言模型可以通过功能调用自主向其中写入信息。

需要注意的是,这三个部分合起来,不能超过底层大语言模型的最大上下文长度。

外部上下文

外部上下文保存了主上下文之外的额外信息,相当于操作系统中的“磁盘存储”。外部上下文需要明确的函数调用才能将信息导入主上下文供模型访问,包括以下两种类型:

回溯存储:保存完整的历史事件信息,相当于对话上下文的无压缩版本。

归档存储:通用的读写数据库,可以作为主上下文的溢出空间保存额外信息。在对话应用中,归档存储可以保存有关用户或系统角色的事实、喜好等额外信息。

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制,chatgpt,语言模型,人工智能

回溯存储允许检索特定时间段的历史交互。在文档分析中,归档存储可以支持更大的文档集搜索。

自主编辑与检索

MemGPT通过大语言模型产生的函数调用在内存层级之间主动移动数据,实现自主的编辑与检索。例如,可以自主决定何时在上下文之间移动信息,以适应当前任务目标,无需人工参与。

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制,chatgpt,语言模型,人工智能

创新点在于系统指令中详细描述了内存体系结构和功能调用方法,指导大语言模型学习使用这些工具管理内存。

大语言模型可以根据反馈调整调用策略。同时,当主上下文空间不足时,系统会提醒大语言模型及时保存重要信息,引导其管理内存。

链式调用

在MemGPT中,各种外部事件会触发大语言模型进行推理,这包括用户消息、系统内存警告、用户交互事件等。

功能调用可以请求获取控制权,从而实现链式调用。例如,检索结果分页浏览时,连续调用可以将不同页面的数据收集到主上下文中。

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制,chatgpt,语言模型,人工智能

而Yield调用则会暂停大语言模型,直到下一个外部事件触发才再启动推理。这种基于事件的控制流协调了内存管理、模型推理和用户交互之间的顺畅沟通。

解析器与优化

MemGPT使用解析器验证大语言模型生成的函数调用,检查参数等是否正确。调用后会将结果反馈给模型,这样可以学习调整策略,减少错误。

此外,MemGPT的系统指令可以进行实时更新,以便在不同任务上给模型加入定制化的内存管理指导,实现持续优化。

本文素材来源加州伯克利分校MemGPT论文,如有侵权请联系删除文章来源地址https://www.toymoban.com/news/detail-741025.html

到了这里,关于无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python_上下文管理器

    目录 上下文管理器类 多上下文管理器 contextmanager实现上下文管理器 上下文管理器(context manager)是 Python 编程中的重要概念,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with...as... 为了确

    2024年02月11日
    浏览(43)
  • Python函数-上下文管理器

    上下文管理协议(Context Management Protocol):包含方法 enter () 和 exit (),支持该协议的对象要实现这两个方法。 上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了__enter__() 和 exit () 方法。 上下文管理器定义执行 with 语句时要建立的运行时上下文,负

    2024年02月12日
    浏览(33)
  • 【Python】Flask上下文管理

    current_app 类型:用用上下文的代理对象 主要用途:提供对当前激活的Flask应用实例的访问。通常访问应用配置,注册的蓝图,应用级别的数据等等 使用场景:在视图函数,错误处理器或者其他任何需要访问应用配置和属性的地方 实际数据实例:‘current_app.config[‘DEBUG’]’可

    2024年03月18日
    浏览(48)
  • python 上下文管理器 with 语句

    上下文管理器 with 语句可以自动地分配和释放资源。 这篇文章中介绍了文件读写的方法,每次读取文件时要使用 open() 函数打开文件,使用结束后要用 close() 函数关闭文件。有时,我们会忘记关闭文件,或者打开了许多文件占用太多资源。使用上下文管理器 with 语句可以方便

    2023年04月09日
    浏览(44)
  • Zustand 和 React 上下文状态管理

    Zustand 是客户端全局状态管理的一个很棒的库。它简单、快速,并且包大小小。然而,有一件事我不一定喜欢它:这些 Store 是全局性的。 但这不是全局状态管理的重点吗?要使该状态在您的应用程序中随处可用。不过当我回顾过去几年中使用 zustand 的情况时,我意识到,更多

    2024年04月25日
    浏览(29)
  • 现有大语言模型(ChatGPT)的上下文理解能力还是假象吗?

    人工智能的一个重要方面是人机交互智能,人机交互智能的核心在于机器对自然语言的理解,而机器翻译是衡量这种理解的有效方式。 按照目前LLM的技术路线,仅仅靠计算语言形式的概率能否产生人类式理解还是未知,但我们知道人类式理解是能够反语言形式概率的,这可以

    2023年04月15日
    浏览(28)
  • pymysql 上下文管理器控制事务提交和回滚

    示例: 从上面例子看出, 在with结构进入时,事务开始begin 在with结构退出时,会根据是否产生异常进行commit和rollback操作,并关闭连接

    2024年01月25日
    浏览(45)
  • Python高级语法:with语句和上下文管理器

    1.文件操作说明: ①文件使用完后必须关闭。 ②因文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。 例如:  2. 存在的安全隐患: ① 由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。 例如: 运行结果: 3.try…except…

    2024年02月04日
    浏览(41)
  • 三分钟4行命令构建chatgpt webapp,支持高并发以及上下文对话功能

    个人主页:https://yang1he.gitee.io 干货会越来越多的,欢迎来玩 纯纯不是标题党,昨天找了一下午,有用flask框架的,有还得qtdesinger框架的,这不纯纯骗小白吗,最近比较常用streamlit,所以萌发了能不能用这个做个简单的app.说干就干 你的chatgpt秘钥,说多了我这篇问这个那就发不

    2023年04月16日
    浏览(24)
  • Python教程(27)——如何使用Python中的上下文管理器

    当我们在编写代码时,经常会遇到需要管理资源的情况,比如打开和关闭文件,如果遇到了一些异常情况,我们需要关闭资源,不然会导致资源泄露,虽然我们可以通过手动的方式来关闭,但如果有多个异常情况需要考虑的话,万一不小心漏了一处,就芭比Q了。所以,如果有

    2024年02月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包