Hotdry.
ai-systems

Google Titans 架构:神经长期记忆模块实现 2M token 线性推理成本

拆解 Titans 如何通过深度 MLP 记忆单元、惊喜指标与在线元学习,在仅 1.8× 算力增幅下将上下文窗口扩至 200 万 token 并保持推理成本线性增长。

Transformer 的二次方复杂度让「长上下文」成为昂贵奢侈品:每翻一倍序列长度,计算量翻四倍。Google 在 NeurIPS 2025 提出的 Titans 系列架构,用一颗可动态更新的「神经长期记忆模块」把上下文窗口推到 200 万 token,同时把推理成本压回 线性增长曲线。更关键的是,它只比同尺寸 Transformer 多出 1.8× 峰值算力,就能在 BABILong 等极端任务上击败 GPT-4、Gemini-1.5 等数十倍参数量的模型。

1. 二次方爆炸与容量瓶颈:长上下文的两大拦路虎

传统 Transformer 的自注意力必须在每一层实例化 QK^T 矩阵,显存与序列长度 L 呈 O (L²) 关系;线性注意力或低秩近似把复杂度降到 O (L),却把历史信息压成固定向量,容量立刻见顶。循环模型(RNN/Mamba)用隐藏状态 h_t 递推,理论上 O (L),但 h 维度固定,一长就「失忆」。Titans 的做法是保留注意力的高精度,同时外挂一块可成长的「深度记忆硬盘」,让容量与长度解耦。

2. 三脑协同:短期注意力 + 长期神经记忆 + 持久知识库

Titans 把推理流程拆成三路:

  1. 短期工作记忆:128 k token 窗口内的稀疏注意力,负责精细依赖。
  2. 长期情景记忆:深度 2 层 MLP,权重在推理时实时更新,用来压缩 128 k 以前的历史。
  3. 持久知识库:跨任务共享的参数子集,存储通用常识,训练后冻结。

主体模型(Transformer 或 DeltaNet)参数完全不动,只通过「读」「写」接口与长期记忆交互,实现测试时学习而不破坏预训练知识。

3. 神经长期记忆模块拆解:在线元学习 + 惊喜指标

3.1 深度 MLP 作为记忆载体

与把历史压成向量或低秩矩阵不同,Titans 用 2 层 MLP(隐藏维度 4× 模型宽度)充当键值关联记忆:

memory(·) = W2 σ(W1 ·)

MLP 的权重在训练阶段随机初始化,在推理阶段通过梯度下降实时更新,相当于让模型自己学会「该记什么、怎么记」。深度结构带来高容量,又不会把参数膨胀到主模型里。

3.2 惊喜指标:只记「出乎意料」的东西

人类对「猫」很容易遗忘,对「香蕉皮」却印象深刻。Titans 把梯度幅值 ∇_θ Loss (x_t) 作为「惊喜值」:

  • 惊喜低 → 信息可预测 → 跳过写入,节省算力与内存。
  • 惊喜高 → 信息偏离预期 → 触发在线更新,把键值对写进 MLP。

为防止偶发噪声刷屏,框架引入动量惊喜

S_t = β·S_{t-1} + (1-β)·|∇_θ Loss(x_t)|

只有 S_t 超过阈值 τ 才执行更新。β 取 0.9 时,既能捕捉持续话题,也能抑制瞬时抖动。

3.3 自适应遗忘与权重衰减

记忆容量终究有限。Titans 在每次更新后给 MLP 权重施加逐元素衰减:

θ ← θ ⊙ (1 − λ·η_t)

η_t 与当前惊喜成反比:高频写入时衰减更强,防止旧信息堆积;稀疏写入时衰减趋零,保留长期知识。λ 典型值 1×10⁻⁵,可调。

3.4 检索:只读一次,不更新

当主模型需要历史信息时,用当前输入 x_t 生成查询向量 q_t,前向通过 MLP 得到记忆输出,不反向传播,保证检索开销恒定 O (1)。

4. 三种集成变体:MAC 最香,线性成本实测

Titans 给出三种把记忆接入主模型的方式:

变体 记忆用法 推理成本 适用场景
MAC 记忆输出作为额外上下文拼接到 Attention Key/Value O(L) 超长文档、大海捞针
MAG 用记忆输出做门控,调节当前隐藏态比例 O(L) 流式对话、权重可调
MAL 记忆模块当成一层网络,直接输出特征 O(L) 对延迟极度敏感的场景,精度略低

论文在 360 M、760 M 参数规模下测试:MAC 在 2 M token 长度下每 token 延迟仍保持线性,相比 Transformer++ 的 40× 延迟增幅,Titans-MAC 仅 1.8×。显存占用随长度线性增加,但斜率远低于自注意力,单卡 A100 可跑 1 M token 批量推理。

5. 落地参数与调优清单

超参 推荐值 作用
记忆深度 2 再深带来收益递减,训练时间平方增长
隐藏维度 4× model dim 容量与显存折中
惊喜阈值 τ 0.3 ∼ 0.5 × 梯度历史均值 太高→漏记,太低→噪声
动量 β 0.9 平滑突发梯度
遗忘系数 λ 1×10⁻⁵ ∼ 5×10⁻⁵ 序列越长可越小
最大记忆容量 50 M 参数 超过后收益递减,可切换分层记忆

调优步骤

  1. 在验证集跑一遍,记录梯度历史分布,取 70 分位做初始 τ。
  2. 用网格搜索 λ∈{1,3,5}×10⁻⁵,挑困惑度最低值。
  3. 若出现「记住噪声」导致幻觉,升高 τ 或加大 λ;若「遗忘关键事件」导致指代错误,反向操作。

6. 风险与工程限制

  • 写入噪声:记忆模块深度高,异常梯度可能被过度拟合;建议对输入先做一次异常检测(如 z-score>3 丢弃)。
  • 跨会话持久化:论文仅验证单会话。生产环境需要把更新后的 MLP 权重序列化保存(≈50 MB),下次服务启动时加载;注意版本对齐,防止主模型升级后记忆分布漂移。
  • 多租户隔离:同一服务若给多用户共享记忆,需按用户 ID 分片,否则会出现「记忆污染」。

7. 结论

Titans 用「深度 MLP + 在线元学习」把「记忆」从静态参数变成可生长、可选择、可遗忘的动态模块,在 2 M token 级别首次实现推理成本线性精度超越超大模型。对于需要一次读完百篇论文、整本手册或基因组全序列的场景,MAC 变体提供了立即可落地的方案:只加 1.8× 算力、50 M 额外参数,就能把上下文窗口放大两个数量级,而无需重写 GPU 内核。


参考资料
[1] Behrouz A. et al., Titans: Learning to Memorize at Test Time, arXiv:2501.00663
[2] Zhang P. et al., MIRAS: A Unified Framework for Memory-Based Sequence Modeling, arXiv:2504.13173

查看归档