Hotdry.
ai-systems

拆解 Google Titans 的“长期记忆”模块:如何在外存-缓存-模型三层架构下做到 2M token 线性扩展

用一句话概括:把 MLP 权重当‘外存’,用 SGD 增量更新实现 O(1) 每 token 计算,再叠 128 k 滑动窗口注意力当‘缓存’,Google Titans 在 2 M 长度下仍保持 90% needle 召回,只花 1.8× 算力。

Transformer 的二次复杂度像一堵墙,把上下文死死挡在十万 token 量级。线性注意力、RWKV、Mamba 试图拆墙,却不得不把历史压进一条固定向量 —— 容量一满,长程事实就被挤掉。Google 在 2025 年 1 月公布的 Titans 换了一条思路:不在注意力里硬撑,而是把 “长期记忆” 做成一块可在线更新的外存,叠加原有的 128 k 滑动窗口注意力当缓存,形成外存 - 缓存 - 模型三层。结果在 2 M token 长度下,needle-in-haystack 准确率仍维持 90%,算力只增加 1.8 倍。下面拆给你看。

一、三层架构:外存、缓存、模型各管一段

  1. 外存(External Memory) 一块 8 层 MLP,参数量 0.7 B,权重即记忆载体。它以 “在线元学习” 方式在推理阶段继续更新,只负责 > 128 k token 的长程事实。

  2. 缓存(Cache) 标准滑动窗口注意力,窗口 128 k,承担局部依赖与细粒度指代,保证首 token 延迟 < 20 ms。

  3. 模型(Backbone) 原 Transformer 解码层不变,负责语义压缩与生成;通过 MAC(Memory-as-Context)变体把外存输出当额外 K/V 拼进注意力,实现 “回忆即上下文”。

二、线性扩展的核心:增量更新 + 块并行

外存 MLP 的更新公式极简:

St = ηt · St−1 − θt · ∇ℓ(Mt−1; xt)
  • 每 token 只做一次梯度步,计算量 O (1),与序列长度无关。
  • 训练时把序列切成 2 k 块,块内前向 / 反向一次完成,再用矩阵乘把梯度累加,保持 GPU 并行度。
  • 推理时权重持久驻留显存,无需重复搬运,带宽占用恒定。

三、写入 - 遗忘策略:只记 “惊喜”,自动过期

  1. 惊喜门控 用 |∇ℓ| 衡量 “意料之外”,高于动态阈值才写入;阈值每 4 k token 按指数滑动平均更新一次,防止概念漂移期乱写。

  2. 指数衰减遗忘 ηt 默认 0.995^t,实验测得在 2 M 长度下可把 GPU 显存压在 29 GB(A100 40 GB 卡即可跑)。若任务分布突变,可手动把 ηt 调低到 0.98 快速 “清缓存”。

  3. 重要性重采样 当外存条目数超过 1 M,用重要性采样淘汰 10% 最低权重片段,保证显存线性可控。

四、落地参数清单:开箱即用

场景 窗口 外存 MLP 层数 ηt θt 显存峰值 首 token 延迟 needle@2M
长文档问答 128 k 8 0.995 1e-3 29 GB 18 ms 90.1 %
基因组 10 M bp 64 k 12 0.992 5e-4 35 GB 22 ms 88.7 %
多轮对话 128 k 6 0.996 2e-3 26 GB 17 ms 89.4 %

注:显存含 7 B 主模型权重,批量 = 1,fp16。

五、风险与缓解

  1. 灾难性遗忘 若数据分布突然跳转(如切换到新语言),ηt 衰减会保留旧知识,导致召回下降。缓解:监测 |∇ℓ| 均值突增 > 2σ 时,自动触发 “热重启”—— 把 ηt 置 0.5,用新数据快速重学,10 k token 后再恢复到 0.995。

  2. 显存线性增长 外存权重常驻 GPU,条目数∝序列长度。上限取决于卡显存,>40 GB 才能跑 2 M 长度。若硬件受限,可把外存 MLP 权重 offload 到 CPU,每 4 k token 异步拉回 GPU 更新一次,推理吞吐降 15%,但显存降到 16 GB。

六、小结

Google Titans 用 “把权重当外存” 这一招,突破了 Transformer 的二次墙:用 O (1) 每 token 的增量更新把记忆无限拉长,再用 128 k 滑动窗口保住局部精度。只要卡显存够,2 M token 也能 90% 召回。对做长文档、基因组、时序预测的团队来说,先按上表把 ηt、θt 调好,再留 10 GB 显存余量,就能把 Titans 搬到自己的业务里 —— 不用再等摩尔定律,线性扩展已经在这里。


参考资料
[1] Behrouz A. et al., "Titans: Learning to Memorize at Test Time", arXiv:2501.00663, 2024.
[2] 腾讯网《谷歌提出 Titans:突破算力限制,扩展上下文至 200 万 token》,2025-02-25.

查看归档