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

记忆流:每条经历写下去,用时按三项打分取回

书架上的东西是 agent 自己写的:每条经历写下去,用时按最近、重要、相关打分取回。

这一页为什么在这里

揭开“全存起来、要用时查”的具体做法:记忆流里每一条记录长什么样、按什么取回。三项打分(最近、重要、相关)把“按什么决定放进输入”变成一个可以调的设计;学生在 LAB-B 里改权重,看取回的条目和答案怎样变。

上屏

  • 第 1 步:一条记录的三个字段:内容(一句自然语言)|时间戳|重要性 1–10。一行:写入时由模型打分:打扫房间 2,约心仪的人出去 8。
  • 第 2 步:问题“你现在最期待什么?”;伊莎贝拉的记忆,三项打分:最近(每过一个游戏小时 ×0.995)|重要|相关(与问题的向量相似度);三条候选:为聚会订购装饰|为聚会搜集点子|冰箱空着;一行:总分=最近+重要+相关(各归一到 0–1)。
  • 第 3 步:「这一次的输入」放进得分最高的两条:为聚会订购装饰|为聚会搜集点子;回答“最期待在 Hobbs 咖啡馆办的情人节聚会”。角注:2023;CoALA · 检索是读长期记忆,学习是写长期记忆。

讲

第 1 步 · 教师可说的话

一条记忆的三个字段

书架上每一条都是一句话,比如“为聚会订购装饰”,带着时间,还有一个重要性分,是写入时让模型自己打的,1 到 10。

指图与比较

沿内容、时间戳和重要性三个字段读,并指出重要性是写入时由模型给出的分数。

第 2 步 · 教师可说的话

最近、重要、相关

要用的时候,每条打三项分:离现在近不近,重不重要,和眼前的问题相不相关。相关性就是向量相似度,又是第三讲那一招。

指图与比较

对照三条记忆的最近、重要、相关三项,注意最近按游戏小时衰减,相关是与问题的向量相似度。

第 3 步 · 教师可说的话

按分数取回

三项加起来,分数最高的几条放进托盘。读和写都有了:写是把经历记下,读是按分数取回。Sumers、姚顺雨等人提出的 CoALA 框架就是这样划分的:检索是读长期记忆,学习是写长期记忆。

指图与比较

比较表中的前两条与下方输入框,再读伊莎贝拉最期待情人节聚会的回答和 CoALA 的读写划分。

本页衔接

光把经历原样存着,够不够?

连续教师稿原文

书架上每一条都是一句话,比如“为聚会订购装饰”,带着时间,还有一个重要性分,是写入时让模型自己打的,1 到 10。

要用的时候,每条打三项分:离现在近不近,重不重要,和眼前的问题相不相关。相关性就是向量相似度,又是第三讲那一招。

三项加起来,分数最高的几条放进托盘。读和写都有了:写是把经历记下,读是按分数取回。Sumers、姚顺雨等人提出的 CoALA 框架就是这样划分的:检索是读长期记忆,学习是写长期记忆。

完整推理

一条记录。 记忆流里的每条记录是一句自然语言描述,带着创建时间、最近一次被取用的时间,以及写入时由模型打出的重要性(1–10)。打分用的提示大意是:从 1(刷牙、铺床这类日常琐事)到 10(分手、被大学录取这类重大事件)给这件事打分;原文举例,打扫房间得 2,约心仪的人出去得 8。

三项打分。 要决定放进输入的记录时,每条记录算三项分。最近:按距上次被取用以来的游戏小时数指数衰减,衰减因子 0.995。重要:写入时的分数。相关:记录与当前查询的向量余弦相似度。三项分别归一到 0–1 后加权求和(原文三个权重都取 1),取总分最高、放得进窗口的若干条。

为什么要三项。 只看相关,会取回很久以前但字面相近的琐事;只看最近,会被刚发生的小事挤满;只看重要,会一直重复几件大事。三项合起来,是对“此刻什么值得放进来”的一个可调的猜测。

一个对应。 2023 年的 CoALA 框架把语言 agent 的内部动作分成几类,其中“检索”是从长期记忆读,“学习”是往长期记忆写。记忆流同时有读(三项打分取回)和写(每条经历写入、打重要性)。

学生可能的回答与误区

  • 第 1 步|“重要性应该由人标。”在一个连续运行的系统里没人来标;由模型在写入时打分可以扩展,代价是模型的判断可能有偏。
  • 第 2 步|“只按相关度取就够了。”在 LAB-B 里把各项权重调一调,看会取回什么。
  • 第 3 步|以为记忆流就是聊天记录。每条记录带结构化字段,按分数取回,不是按原顺序整段塞进去。

教学构造与出处

  • 教学构造:三条候选记录的条形长度只示意三项高低,不是论文给出的数;“冰箱空着”是为对比编的条目。
  • Generative Agents · §4.1:arXiv 2304.03442v2;记录字段、重要性打分提示与例子(打扫房间 2、约心仪的人出去 8)、最近的衰减因子 0.995、三项归一后相加。来源支持。
  • CoALA · Cognitive Architectures for Language Agents · §4:Sumers 等,arXiv 2309.02427(2023-09);把检索与学习对应到读、写长期记忆。

动手

  • LAB-B §2|自己调三项权重:Deepnote · B|记忆读写:写入、冲突、撤回。用的是 Q26 的钥匙记录。
  • 先写下:把“最近”调到最大,会取回哪两条、答案变不变。
  • 课前实测(纯 Python 规则机制,不调模型):默认权重取回 09:20 与 09:00 两条,答红柜;只把“最近”调到最大,取回 09:40 与 09:30,notebook 里故意写得很简单的阅读器答“查不到”。
  • 这是机制示意:LAB-B 不用语言模型打重要性,只让你看到“按什么取”怎样改变放进输入的东西。

在课堂中打开

这个页面有帮助吗?