Browse this library

Chinese source article

5.3 · Attention、递归状态与参数记忆

按状态、写入、读取和生命周期比较 attention、SSM、RWKV、TTT 与 Titans,划清持续学习边界。

View original Markdown ↗

长上下文模型都要回答两个问题: 过去的信息存在哪里, 当前查询怎样取回. full attention 保留每个 token 的 KV, 读取时对全部位置做内容寻址;SSM、RWKV 和线性注意力把历史递推进固定状态;TTT 与 Titans 让写入规则带有预测误差、梯度或记忆模块. 这些路线常被一起称作「记忆」, 但它们在容量、精确性和生命周期上差别很大.

统一写成

St=U(St−1,xt),yt=R(St,qt).S_t=U(S_{t-1},x_t),\qquad y_t=R(S_t,q_t).

attention 的 StS_t 是不断增长的 KV 集合;递归模型的 StS_t 维度固定;TTT 的 StS_t 是 fast model 参数. UU 是否依赖预测残差、能否并行、是否有显式遗忘, 决定模型把什么写进去. 复杂度只描述状态怎样增长, 不说明它能否精确恢复过去的信息.

1. 显式 KV 与固定状态

full attention 将每个位置的键和值保留到缓存, 查询可直接选择某个 token. 只要位置仍在上下文内, 原始表示没有被递归压缩;代价是 prefill 计算和 KV cache 随长度增长. FlashAttention 改善 IO 和计算排布, 没有改变精确 attention 的语义或 KV 容量增长.

线性注意力利用核分解将历史汇总成矩阵 St=St−1+vtϕ(kt)⊤S_t=S_{t-1}+v_t\phi(k_t)^\top, 查询用 Stϕ(qt)S_t\phi(q_t). 状态大小不随长度增长, 不同键却会叠加. 归一化、衰减和 delta rule 分别处理尺度、过时信息与重复写入, 仍无法保证任意键完全可分.

SSM 用线性或选择性递推传播状态. Mamba 让输入决定部分状态转移与写入, 可以跳过无关 token、保留有用信号. 它擅长累计趋势和局部模式, 精确内容寻址并非天然能力. 状态维度与衰减时间尺度决定能保留多远, 扩大上下文长度不会自动扩大容量.

2. RWKV 与矩阵值递归

RWKV 将 attention 风格的键值加权写成递归, 使用时间衰减控制旧信息. 早期形式按通道累计, 后续 Eagle、Finch 与 RWKV-7 引入矩阵值状态和更动态的更新, 提升关联表达力. 它与线性 attention、delta rule 的关系应从具体递推式判断, 不能只按模型品牌归类.

显式衰减提供可控遗忘: 稳定主题可以慢慢积累, 突然变化时门控加快更新. 衰减率若与数据时间尺度不匹配, 长程信息会过早消失或旧状态长期干扰. 多头、多尺度状态能够覆盖不同时间范围, 也增加参数和训练选择.

递归模型训练时常用并行 scan 或分块算法, 推理时逐步更新. 并行形式需要满足结合律或特殊结构;引入强非线性、输入依赖优化后, 训练并行难度增加. 理论 O(n)O(n) 之外, kernel 融合、矩阵形状和内存访问决定实际速度.

3. TTT 与 Titans 的参数记忆

TTT 将状态写成模型参数, 用自监督预测误差做梯度更新. 预测正确时少改, 残差大时写入, 因而具有内容依赖的纠错机制. TTT-MLP 提供非线性地址空间, 代价是每步反向与更复杂的外循环训练. 序列结束后状态重置, 它仍是序列模型状态.

Titans 将长期记忆设计成测试时更新的神经记忆模块, 以 surprise、动量和遗忘控制写入. 动量能累计持续证据, 衰减允许旧内容退出;窗口 attention 保留近期精确细节. 它体现了混合结构的常见分工: 短期显式访问、长期压缩状态、持久知识留在慢参数.

参数量不能直接当作记忆容量. 相似键、优化步长、曲率和数值精度都会影响写入;模型还可能学会将大部分能力放在慢参数, fast state 只做微调. 状态干预与容量扫描是确认记忆作用的必要实验.

4. 三种「持续」不能混在一起

序列模型状态在一条上下文内持续, Test-Time Adaptation 状态可能跨一段部署流持续, 经典 Continual Learning 将新任务写入长期参数或记忆. 三者都能写成 St=U(St−1,xt)S_t=U(S_{t-1},x_t), 但边界、监督和评测完全不同. 长上下文 loss 改善不能证明跨任务不遗忘, TTA 适应 corruption 也不能证明精确回忆早期 token.

区分它们最有效的办法是问状态何时初始化、何时清空、由什么信号写入、谁能读到. 每序列重置的 fast weights 不影响下一个用户;跨请求共享的 TTA 参数会传播错误;长期 adapter 或底座更新需要用旧能力集评测. 「TTT 接近持续学习」可以作为研究上的连接, 不能把两者写成同义词.

5. 选择路线看信息形态

任务需要逐字引用、复制或随机访问罕见事实时, 显式 attention 或外部检索最稳妥. 历史主要表现为主题、局部规律和缓慢趋势时, SSM、RWKV 或线性状态能用固定预算累计. 上下文不断提出新约定、预测残差本身能指导写入时, TTT 和参数记忆值得考虑.

实际模型常将窗口 attention、递归状态和外部检索组合. 分支不一定自动形成互补, 强分支可能包办任务. 逐分支清空、交换状态和限制窗口, 可以验证每条通道承担的时间尺度. 与 attention、SSM、RWKV、Titans 的边界 进一步推导状态更新与容量实验.

6. 同一复杂度下仍有不同硬件行为

递归状态理论上每 token 常数成本, 训练时的 scan、矩阵状态大小和 kernel 融合仍决定吞吐. full attention 是二次算术, FlashAttention 通过 IO-aware 实现显著改变可运行长度. 因而路线比较要同时报告渐近复杂度、状态字节、实测 prefill 和 decode, 不能用一个 O(n)O(n) 结论替代硬件数据.

序列长度也会改变交叉点. 短序列上 attention kernel 成熟、并行度高, 固定状态模型未必更快;长序列时 KV 与二次计算占主导, 递归路线才显出优势. 扫描长度而不是只测最大点, 能看见系统在目标工作负载下是否真正越过交叉点.

比较时还要固定训练预算. 更复杂的状态更新可能需要更多数据才能学会稳定读写, 给它额外 token 会混入数据收益;完全固定 token 又可能让新结构欠训. 同时给出等 token、等 FLOPs 和接近收敛三组曲线, 才能判断算法效率、训练效率与最终能力分别来自哪里.

状态可解释性也随载体变化. KV cache 能定位到原 token, 外部检索还能返回来源;固定矩阵和神经记忆把多条信息叠在参数里, 很难删除某一项或给出引用. 需要合规删除、精确出处和事实更新时, 这种差别可能比困惑度更重要. 压缩状态适合统计规律, 可审计事实更适合显式存储.

混合模型因此需要明确数据流: 哪些 token 进入短窗口, 哪些特征写入递归状态, 哪些内容送往外部索引. 只画模块框图看不出信息归属. 用构造任务分别要求逐字复制、长期趋势和来源引用, 再做通道干预, 才能验证三类存储形成了预期分工.

这些干预还应在相同训练预算下进行, 防止某条通道因训练不足而被误判为没有价值.

推理长度跨过训练长度以后再重复干预, 可以检查这种分工能否外推.

若分支贡献在外推区间消失, 训练长度仍是实际能力边界.

参考文献

边界真正落在哪里,要看状态由什么信号更新、保存多久,以及它能否被后续 token 主动改写。