跳到内容
Coding with AI · Lecture 08
Esc
↑↓导航↵打开⌘J预览
本页内容

MemGPT:谁来决定什么留在窗口

MemGPT 把读写交给模型自己:像操作系统换页一样,决定什么留在窗口、什么存到外面。

这一页为什么在这里

第三站的第三个决策点:窗口满了,谁来决定什么留下?固定规则还是模型自己?MemGPT 借操作系统的分层存储,让模型自己调用函数把信息存出去、读回来。这一页让学生看到“谁来放”从设计者移到了 agent 自己。右下角出口接第 10 讲。

上屏

  • 第 1 步:题面:窗口满了,谁来决定什么留下:固定规则(比如截掉最早的),还是模型自己?两张卡并排:固定规则(比如截掉最早的)|模型自己。
  • 第 2 步:MemGPT 的结构(2023)。主上下文(像内存):系统指令(只读)|工作上下文(可读写)|消息队列(先进先出,附被挤出消息的递归摘要)。外部上下文(像硬盘):归档存储|回忆存储。
  • 第 3 步:五步示意日志:1 用户:“我生日是 3 月 14 日”|2 窗口用到 70%,系统插入“内存压力”警告|3 模型写入工作上下文:用户生日 3/14(写)|4 窗口写满:队列挤出一半旧消息、写递归摘要,旧消息留在回忆存储|5 几十轮后用户问“我生日哪天?”,模型从工作上下文读到,答 3 月 14 日(读)。右下角出口:→ 第 10 讲|一个 agent 自己管窗口。

讲

第 1 步 · 教师可说的话

谁决定窗口里留下什么

窗口满了,总得有人决定什么留下。可以写死一条规则,比如截掉最早的;也可以交给模型自己。2023 年 10 月,MemGPT 押了后者。

指图与比较

先比较固定规则与模型自己两张卡。

第 2 步 · 教师可说的话

内存与硬盘类比

它的思路是把模型当成操作系统:窗口像内存,外部存储像硬盘,装不下就换页。

指图与比较

对照主上下文的三个部分与外部上下文的两种存储,说明像内存、像硬盘的类比。

第 3 步 · 教师可说的话

模型自己决定存取

关键是谁来决定换什么:模型自己。在这个生日例子里,它把生日写入工作上下文,几十轮后再从这里读到;存在外面的东西,仍然要被取回到窗口里才能起作用。

指图与比较

沿五行日志看第 3 行“写”和第 5 行“读”,注意生日保存在工作上下文,旧消息留在回忆存储。

本页衔接

读写都能自动了。能写,就会写错。

连续教师稿原文

窗口满了,总得有人决定什么留下。可以写死一条规则,比如截掉最早的;也可以交给模型自己。2023 年 10 月,MemGPT 押了后者。

它的思路是把模型当成操作系统:窗口像内存,外部存储像硬盘,装不下就换页。

关键是谁来决定换什么:模型自己。在这个生日例子里,它把生日写入工作上下文,几十轮后再从这里读到;存在外面的东西,仍然要被取回到窗口里才能起作用。

讲授出口

→ 第 10 讲|一个 agent 自己管窗口。可以展开:改一个大代码库时,哪些文件留在窗口、哪些存到外面、什么时候再读回来?编程智能体每天都在做 MemGPT 式的换页。

完整推理

两难。 窗口满了,总得有人决定什么留下。固定规则(截掉最早的、按时间压缩)简单可预测,但不知道哪些信息以后有用;交给模型自己,它可能更懂哪些重要,但多了出错和花费的可能。

MemGPT 的押法(2023-10)。 借操作系统的分层存储和换页:窗口像内存,外部存储像硬盘。主上下文里有三块:系统指令(只读)、工作上下文(模型可以用函数读写的一块,放关键事实)、消息队列(先进先出,旧消息被挤出时附上递归摘要)。外部上下文有两块:回忆存储(全部历史消息,可搜索)和归档存储(任意长的文本,可搜索)。模型通过函数调用在两层之间搬运信息。

系统给的提示。 当窗口用到一定比例(原文举例 70%),系统往输入里插一条“内存压力”警告,提醒模型把重要的东西存好;写满时,队列管理器挤出一部分旧消息(原文举例为窗口的 50%),生成新的递归摘要,原消息仍可在回忆存储里检索到。

日志怎么读。 画面里的生日例子是课件构造的:它展示“写”(模型把生日写进工作上下文)和“读”(几十轮后从工作上下文读出来)两个动作,以及被挤出的旧消息并没有消失,只是移到了外面。

和前面的关系。 第一站,设计者决定每题查一次;第二站,模型决定何时查;这里,模型连自己的窗口也自己管。代价是模型的每一次存取决定都可能出错,而且这些决定会影响以后的所有对话。

学生可能的回答与误区

  • 第 1 步|多数人选“模型自己”。追问:模型怎么知道哪条以后有用?它决定错了,谁来发现?
  • 第 2 步|“外部上下文就是聊天记录。”回忆存储是全部历史消息,归档存储是任意文本,两者都要通过函数检索才会回到窗口。
  • 第 3 步|“挤出去的消息就丢了。”在 MemGPT 里,旧消息仍在回忆存储里,可以再检索;丢的是它们在窗口里的位置。

教学构造与出处

  • 教学构造:第 1 步 的两张卡和 第 3 步 的生日日志是课件编的示意,不是原文的对话记录。
  • MemGPT · Towards LLMs as Operating Systems:Packer 等(加州大学伯克利分校),arXiv 2310.08560v2;读 §2–§3:主上下文的三块(系统指令、工作上下文、先进先出队列与递归摘要),外部上下文的回忆存储与归档存储,内存压力警告(例 70%)与挤出(例 50%),函数调用读写。来源支持。

在课堂中打开

这个页面有帮助吗?