PAPER NOTES · 02 Memory for Large Language Models 原始论文 ↗

论文精研 · 架构阅读 · 本地实验

模型记忆的分水岭,
不是容量,而是写入权

《Memory for Large Language Models》把一个混乱的词重新拆开:记忆存在哪里、什么时候能写、能保留多久,是三件彼此独立的事。Explicit Memory 的价值不只在“记得更多”,而在于第一次让读、写、遗忘和更新成为可单独讨论的系统契约。

MEMORY CONTRACT v1 · 2026-07-28
01
谁控制读写implicit ↔ explicit
autonomy
02
什么时候能写offline ↔ online
update
03
影响能持续多久short ↔ long term
persistence
本文主轴

一旦记忆拥有独立写入权,问题就从容量工程转向记忆治理。

论文类型
架构导向综述
作者
Zhoubian · Zhang · Kharlamov · Tang
正文规模
20 页 · 4 图
本地证据
4 组机制探针 · 可复现
01

THE PAPER

一篇综述,为什么值得当作坐标系

这不是一篇发布新模型的论文。它没有提出一个统一记忆架构,也没有给出新的榜单成绩。Sining Zhoubian、Dan Zhang、Evgeny Kharlamov 和 Jie Tang 做的是更基础的工作:为迅速扩张的模型记忆研究建立一套能互相对话的术语。

在论文 v1 的源码中,主表收录了 47 个代表性系统,从 2017 年的 Transformer KV Cache 排到 2026 年的 Engram、GDWM 与 MemoryLLM;参考文献库有 85 条。真正的问题不是材料少,而是同一个“memory”同时被用来指上下文窗口、循环状态、缓存、可写参数、查找表、MoE、RAG 和 Agent 数据库。没有坐标系,比较很容易失真。

作者给出的三条轴是:表示方式(implicit / explicit)、更新时机(offline / online)和持久性(short / long term)。这三条轴彼此独立。长上下文不自动等于长期记忆,在线状态不自动等于显式记忆,一块可见的张量也不自动拥有可控的读写权。

FIGURE 01 · PAPER FRAME

三条轴,取代“上下文够不够长”的单一问题

图中的五个系统并非性能排序,而是用来说明三条坐标可以自由组合。

模型记忆的表示、更新和持久性三条坐标,以及五个代表性系统的位置
依据 论文 §2 taxonomy 重绘。论文特别说明:表中的方法按主要机制归类,单个系统可能同时具备多种属性。
重要性不在“又多一个分类法”

它把模型记忆从容量问题,改写成控制问题

只谈容量,讨论会停留在“能塞多少 token / 参数 / 槽位”。三轴框架迫使我们继续追问:谁拥有写入权,写入发生在训练还是推理,哪一条规则决定保留与遗忘,系统又怎样证明新信息没有破坏旧信息。到了这里,记忆已经接近一个受控的在线学习系统,而不再只是缓存。

02

THE BOUNDARY

记忆的分水岭是自主性

论文对 Explicit Memory 的定义比“模型外面再放一个库”严格,也比“额外参数就是显式记忆”宽。它的决定性属性是 autonomy:存储独立于眼前的计算图存在,并且可以通过不同于标准前向传播的机制被访问、更新或维护。

因此,KV Cache 虽然是一块真实存在的张量,仍被归为隐式记忆。它的写入由注意力计算自动发生,读回也由 attention 公式固定;调用者没有一个独立的 admission、update 或 reset 接口。反过来,一块原本普通的 MLP 矩阵,如果在推理时被指定为可写存储,并由专门目标更新,就可能成为功能意义上的显式记忆。

FIGURE 02 · AUTONOMY

可见的张量,不等于可治理的存储

判断重点是读写语义是否能被单独控制,而不是存储材料、物理位置或参与前向计算的频率。

隐式记忆与显式记忆的自主读写边界
定义来自论文 §2 与 §4。作者还讨论了一个边界案例:部分 TTT 键值绑定可以等价改写成线性注意力,所以只有具备明确、自主更新存储底座的变体,才应放进显式记忆主表。
INTERACTIVE INDEX

用同一套坐标检查六种常被混用的“记忆”

点击系统名称。这里展示的是论文分类或本文据其边界做出的明确区分,不代表性能高低。

论文范围内

KV Cache

逐 token 保存高保真键值,但读写完全由 attention 前向计算决定,通常随会话结束丢弃。

表示隐式计算耦合
更新在线逐 token
持久性短期窗口 / 会话
论文明确排除

Prompt-level memory、RAG pipeline 和外部 Agent 数据库不在本文研究范围内。这并不是说它们不重要,而是它们属于更高一层的系统编排。后文“对我们的借鉴”会把两层重新接起来,但不会把系统级结论伪装成论文结论。

03

EXPLICIT MEMORY

三种代表性存储,对应三种完全不同的写入语义

01 · PARAMETRIC

可写参数

Titans、TTT-E2E、In-Place TTT 把部分参数当作推理期可更新的 fast weights。

02 · LOOKUP

可寻址槽位

kNN-LM、Engram、PlugLM、ExplicitLM 让容量随表项增长,并用内容或哈希寻址。

03 · LATENT SLOTS

潜在记忆池

MEMORYLLM、LM2 让专用槽位在层间参与计算,并用前向更新或门控维持固定池。

04 · CONDITIONAL

条件参数

论文把 MoE 视为离线显式记忆的边界类型:router 在持久专家库中做条件寻址。

METHOD A · ONLINE PARAMETRIC MEMORY

Titans:把推理上下文变成一次在线学习

重点不是“把整个模型继续训练”,而是冻结主干,只更新专用 neural memory。

ℓ(M; xₜ) = ‖M(kₜ) − vₜ‖² Sₜ = ηₜ Sₜ₋₁ − θₜ ∇ℓ Mₜ = (1 − αₜ) Mₜ₋₁ + Sₜ surprise · momentum · forgetting

Surprise 不是一个额外分类器的分数。在 Titans 的 associative-memory 目标里,模型先把输入投影成 key 和 value,再用记忆网络预测 value;当前样本对记忆参数造成的梯度越大,代表它越违背已有映射,也就越“惊讶”。

动量让惊讶跨 token 延续,遗忘门对应 weight decay。作者认为只看瞬时梯度会漏掉惊讶事件之后的相关片段,因此用 Sₜ 累积近期 surprise,再用 αₜ 控制旧记忆保留。我们的本地实验直接实现了这一线性化更新。

Titans 论文 ↗公式来自 Methods: Learning Process / Forgetting Mechanism

METHOD B · OFFLINE LOOKUP MEMORY

Engram:不让网络每次都“算”出静态局部模式

它把常见 n-gram 送进确定性哈希槽位,再用当前 hidden state 决定取回的信息是否值得融合。

压缩 tokenxₜ₋₂ · xₜ₋₁ · xₜ
多头哈希(⊕ xᵢmᵢ) mod pⱼ
embedding 表独立槽位查找
相似度门控与 hidden state 融合

官方示例先压缩 tokenizer 词表,再对 2-gram 到最大 n-gram 分别计算哈希。每一层使用确定性的奇数乘子;每个哈希头使用不同的质数表规模。地址不依赖扫描全表,因此表容量可以移到 host memory,并提前预取。

这里的 memory 是离线、静态、显式的:表项在预训练阶段形成,推理期只做条件查找。它擅长的是把局部、重复、相对静态的模式从昂贵的神经计算中剥离,而不是记录某个用户刚刚说过的话。

Engram 论文 ↗官方示例代码 ↗

METHOD C · SELF-UPDATABLE LATENT POOL

MEMORYLLM:固定池不增长,代价是必须明确淘汰

它让每层拥有一组不可由普通反向传播更新的 memory tokens,新上下文通过一次前向读取生成新的槽位。

旧池 · L × B·T × d
随机丢弃一部分
+ 追加新槽位
新池 · 容量不变

官方实现把 memory 定义成形状为 [num_layers, num_blocks × num_tokens, hidden_size] 的参数张量,并关闭常规梯度。inject_memory 读取上下文后返回各层新 memory;更新时用 randperm 从旧池中丢弃相同数量的槽位,再把新槽位拼回。

这段实现很能说明 Explicit Memory 的工程本质:固定容量并不会让生命周期问题消失,只会把它变成淘汰策略。随机替换简单、吞吐稳定,但未必知道哪些旧知识最值得保留。论文把这一类问题放入 stability–plasticity 与 interference 的核心挑战。

MEMORYLLM 论文 ↗官方实现 ↗

分类的边界案例

MoE 算不算 Explicit Memory?论文选择“算”,但这个决定值得保留争议

论文的理由是:专家参数长期存在,router 对其做显式、条件式寻址,因此它具备模块化知识存储的结构。反方也很清楚:普通 MoE 在推理时没有逐项写入、编辑或清除知识的接口,更像条件计算而不是经验记忆。这个边界提醒我们,autonomy 是比“模型内 / 模型外”更好的标准,但仍需要对写入语义提出更细的判据。

04

UPDATE RULES

写入不是一个动作,而是一整条生命周期

论文先用 offline / online 回答“什么时候能改”,又专门增加一张细表回答“究竟怎么改”。这是文章最有价值的补充之一。两种机制都叫 online memory,并不代表它们面对同一种风险:梯度写入会漂移,状态转移会压缩和饱和,信号门控会误判未来价值,淘汰则可能永久删除后来才显得重要的信息。

作者因此把更新规则看作 update dynamics 之下的第二层镜头,而不是第四条主轴。一种架构可以同时使用多条规则:Titans 既是 optimization-based writing,也用 surprise modulation;HAM 既做循环状态更新,也用预测误差决定 token 是否进入稀疏 KV cache。

更新规则实际改变什么代表方法主要风险
优化式写入

最小化显式目标,更新 memory parameters / fast weights

Titans · TTT-E2E · In-Place TTT

漂移 · 不稳定 · 目标错配
状态转移

用 recurrence、delta、投影或滤波方程更新状态

Mamba · DeltaNet · Kalman / Kaczmarz

压缩损失 · 状态干扰
信号门控

surprise、entropy、prediction error 决定是否写入或走昂贵路径

Titans · GDWM · AMOR · HAM

校准 · 阈值 · 延迟重要性
准入与巩固

决定哪些项被保留、压缩、淘汰或重写

StreamingLLM · RATTENTION · HAM

不可逆损失 · 检索偏差
结构式更新

用离线构建、辅助目标、专家布局或层级计划塑造 memory

Engram · MoE · Priming

僵化 · 推理期适应有限
FIGURE 03 · LIFECYCLE

“什么值得写”只是第一道门

每一个阶段都对应独立失败模式,也应有独立指标。只报一个 recall 分数无法说明系统是否可靠。

从观察、价值判断、准入、写入、读回到巩固和遗忘的显式记忆生命周期
根据论文的 update-rule taxonomy 与 Future Directions 重绘。原文强调,未来更新规则需要可诊断,在必要时可逆,并能承受长期分布变化。
05

LOCAL MECHANISM LAB

两组本地实验:压缩、干扰与碰撞

实验边界

这些结果不是论文 benchmark 的复现。综述本身没有发布一个统一可复现模型。这里用 NumPy 构造受控键值流,分别实现 Titans 的线性化关联记忆更新和 Engram 官方示例的哈希核心,用来观察机制的方向性后果。容量、延迟与稳定性曲线取 12 个固定随机种子的均值;哈希碰撞探针使用固定输入和固定哈希种子,做一次确定性运行。脚本、CSV、环境版本和哈希均可下载。

EXPERIMENT A

同样是“长期影响”,精确保存与压缩保留不是一回事

输入
48 维 key / value,48–768 次写入
近期 KV
只保留最后 96 项,按 cosine 最近邻读回
Fast weights
48×48 固定矩阵,按 Titans 线性化公式在线更新
显式 KV
保存全部键值对,作为可增长、可寻址上界
一次性事实与重复结构两种负载下的记忆召回曲线
左图是一批不可压缩的一次性随机关联。近期 KV 在 96 项内完全准确,随后按窗口占比下降;显式全量 KV 保持 100%;固定 fast-weight 矩阵随着写入增加迅速干扰。右图把数据改成 12 个可复用主题。写入增至 768 项时,Delta fast weights 仍约 82.8%,说明压缩记忆的有效容量来自结构,而不是物理槽位数量。
读法

这不是在证明 lookup 一定优于参数记忆。它说明两类存储优化的目标不同:查找表保留 item-level fidelity,参数或循环状态保留可压缩的规律。把后者的“影响跨度很长”直接写成“记住了每一个远期事实”,会高估它的精确回忆能力。

EXPERIMENT B

在线写得越快,旧映射越容易被一起改写

先让 fast-weight memory 学会 36 组关联,再把其中一半改成新 value;另一半保持不变。每轮只训练被改写的 18 组,分别比较纯 delta、带动量、带动量与 decay 三条规则。新映射代表 plasticity,未改知识代表 stability。

三种在线更新规则的塑性和稳定性曲线
在这个刻意简化的线性存储里,三条规则都能在约 4 轮内把新映射学到接近 99%;与此同时,没有直接更新的旧映射也因共享参数干扰而大幅下降。遗忘门能加快适应,却不提供旧知识隔离。这正是论文所说的 stability–plasticity conflict。
读法

“只更新 memory 参数、不碰 backbone”能保护预训练主干,但不能自动保护 memory 内部的历史。要做长期可写参数记忆,还需要分区、稀疏更新、回放、正交约束、版本或可逆机制;单靠一个 surprise 分数并不够。

EXPERIMENT C

Engram 式多头哈希,用更多地址换更少碰撞

按官方示例的核心逻辑生成 60,000 个三元 token 组合:每个位置乘以确定性奇数,结果按位 XOR,再对每个 head 使用不同质数取模。我们只测地址签名是否碰撞,不训练 embedding 或 backbone。

不同表规模与哈希头数量下的 Engram 式签名碰撞比例
单头 65K 表在 60K 样本下仍有约 34.2% 的重复地址;两个质数 head 已降到本轮样本中 0;1K 表从单头约 98.3% 碰撞降到双头约 2.9%、三头约 0.0017%。多头不是免费午餐:它减少别名,同时增加 embedding 表、带宽和融合参数。
读法

Engram 的关键不是“一个神奇哈希函数”,而是把静态模式的容量放进可独立扩展的地址空间。寻址步数不随表项数量线性增长,但内存占用、缓存命中、预取和碰撞仍决定实际效率。论文因此把硬件—算法协同列为核心方向。

06

CLAIM BOUNDARIES

这篇论文建立了语言,没有裁定赢家

01

没有统一对照实验

这是一篇 taxonomy survey,不是把 47 个系统放在同一训练预算、同一硬件和同一数据上的 benchmark。表格只能用于定位机制,不能用于性能排名。

02

Long-term 不等于高保真

固定大小循环状态可以让很早的信息继续影响输出,因此被归为长期;这不表示它能逐项、可编辑地取回所有远期事实。

03

Explicit 仍有灰区

MoE、activation-level retrieval 与部分 TTT 位于分类边界。自主性比物理位置更好,但未来仍需要更精确的读写和生命周期判据。

04

模型内结论不能直接外推

论文主动排除了 RAG 和 Agent memory。产品层的身份、权限、来源、用户撤销与跨设备一致性,需要独立的系统设计和评测。

05

v1 是研究快照

原文 2026-07-28 首次提交。分类表覆盖到 2026 年代表方法,但不是穷尽清单;新方法和作者修订都可能改变边界。

06

本地实验只测机制

48 维线性记忆与哈希签名不等于大模型。它们能暴露干扰、压缩和碰撞,却不能替代真实语料、预训练或端到端下游评测。

07

ENGINEERING LESSONS

对我们的借鉴:先设计写入权,再选择存储

对 Coro 这类长期协作型 Agent,最有价值的不是照抄 Titans 或 Engram,而是接受论文隐含的一条工程纪律:只要信息能跨 turn、跨 session 影响行为,写入就不应是模型的隐含副作用。它必须经过一套能解释、能隔离、能审计的控制面。

下面的映射是本文基于论文做出的系统设计推论,不是论文作者对 Agent memory 的主张。

FIGURE 04 · SCOPE BRIDGE

模型级存储是底座;身份、权限和审计属于外层

两层可以协同,但用同一个“memory”词把它们压平,会掩盖安全和一致性责任。

模型级记忆与产品和 Agent 系统级记忆的边界
内层对应论文研究范围,外层是本文面向 Coro 的工程推论。RAG / Agent 数据库被原论文明确排除。
论文给出的压力在 Coro 中应落实为必须单独测什么
Autonomy:读写要有独立接口

MemoryApi 作为唯一门面;模型只产生候选,不直接越过作用域、权限和版本约束。

旁路写入率 · 越权召回率 · 接口一致性
Online write 会漂移

保留 propose / commit / rollback 两阶段语义;持久 commit 强一致,候选只在 session 内可见。

重复提交 · 冲突 · 回滚完整性 · 跨端可见性
Surprise 不等于未来价值

准入同时看用户纠正、重复频率、任务价值、敏感度和来源;高影响项需要确认或延迟巩固。

准入 precision / recall · 延迟重要信息漏写
Persistence 不是一个布尔值

工作记忆、持久 SoT 与 archive 分层;过期、巩固和删除各有明确策略,不让“长期”变成永不清理。

衰减曲线 · 过期命中 · 删除证明 · 归档可恢复
Stability–plasticity 无法回避

用户偏好、项目事实和模型自总结分区;更新尽量局部化,并保留 provenance、版本与旧值。

新知识适应率 · 旧知识干扰 · 污染半径
Recall 不是唯一分数

评测矩阵同时覆盖 fidelity、persistence、interference、latency、growth、privacy 与 reversibility。

按 scope / tier / writer / age 分桶的全链路曲线
结论

Explicit Memory 真正开启的,不是“无限上下文”,而是一种新的系统责任:模型开始拥有学习中的状态,架构就必须回答谁允许它学、从什么学、学错后怎么撤销。容量会继续增长,但长期可用性最终取决于这份写入契约。

08

SOURCES & REPRODUCTION

证据、代码与复现入口

主论文

  1. Memory for Large Language ModelsZhoubian et al. · arXiv:2607.25380 · v1
  2. arXiv HTML 全文本文 taxonomy、Explicit Memory、evaluation 与 future directions 的首要依据
  3. 本地 PDF 快照850,193 bytes · SHA-256 4b239639…a8367e26

代表方法的一手资料

  1. Titans: Learning to Memorize at Test Timesurprise、momentum、forgetting 与 associative-memory 目标
  2. Conditional Memory via Scalable LookupEngram 论文
  3. deepseek-ai/Engram官方 standalone demo · 本地核对 commit fb7f84a
  4. MEMORYLLM固定潜在 memory pool 与前向 self-update
  5. wangyu-ustc/MemoryLLM官方实现 · 本地核对 commit 5acaf52
  6. LM2: Large Memory Models专用 slots、cross-attention-like interaction 与 gates
  7. TTT-E2E official implementation推理时 next-token learning 的另一条路线

本地实验

  1. memory_lab.pyNumPy + Matplotlib;完整固定种子策略
  2. run_metadata.jsonPython 3.14.4 · NumPy 2.3.5 · Matplotlib 3.10.7
  3. retention_by_load.csv一次性事实与重复结构的容量曲线
  4. delay_profile.csv近期窗口与远期回忆曲线
  5. stability_plasticity.csv在线重映射干扰
  6. engram_hashing.csv60,000 个三元 token 组合的签名碰撞
证据政策

微信文章只作为选题线索,不承担技术结论。论文事实以 arXiv v1 正文和源码为准;算法细节再与方法原论文、官方实现交叉核对;本地结果统一标记为机制实验;面向 Coro 的部分明确标记为本文推论。

选题线索(微信)↗