有趣的 BDH 之问:如果 LLM 的记忆驻留在网络权重中,而非不断膨胀的 KV cache 里,会怎样?

Reddit r/singularity 论文

摘要

本文分析了 Jan Chorowski 提出的 BDH 架构方案,该方案探讨了一种替代传统 KV cache 的思路:利用稀疏高维 key-query 空间,将 LLM 的记忆直接嵌入到网络权重中。

我在几个讨论串中看到过 BDH,但没找到关于该架构核心主张的简明解释。我找到了 Jan Chorowski 的研讨会视频并做了笔记,所以在这里发个精简版,希望能帮大家省去看完整个视频的时间。我目前正在探索 post-transformer 架构,所以请将此视为我对该架构的个人理解,欢迎指正,这并非定论。 我越来越多地看到用“顺行性遗忘症”(anterograde amnesia)来形容 Transformer 的记忆机制:它们无法形成新的长期记忆,只能靠 Markdown 笔记来弥补。因此,Transformer 的记忆是压缩在权重中的静态预训练上下文,与编码在 KV cache 中的极短期上下文(当前用户会话)的结合体。 注意力(attention)部分最让我感兴趣。标准 attention 通过将 query 与过去的 key 进行比较来检索 value。Jan 的想法是停止将 key/query 视为小型抽象向量。在(附带的)幻灯片照片中,他将 key 和 query 等同于高维空间中的神经元激活值,因此 sigma 是累积的连接矩阵,读取记忆就变成了图传播(graph propagation)。 因此,这不仅仅是像原始 SSM 那样将 attention 线性化,以性能换取效率。他的原话是:你基本上不能只是把非线性 attention 层换成线性 attention 层,而模型的其他部分保持不变。换句话说:如果你将 attention 线性化,Jan 的主张是你还需要改变记忆空间。 key/query 空间变得非常庞大、稀疏且为正/类似神经元,因为模型处理的是非负激活值。另一张幻灯片指出,BDH 的 key-query 维度 `>10^7`,而 Transformer 仅为 `~10^3`;因此,短期记忆状态被投影到固定的、正的且极高维的空间中,变得比 KV cache 更具表达力和可操作性。 实际问题显而易见:完整的 `Neurons x Neurons` 连接矩阵太大了。该实现采用低秩分解加上 ReLU 阈值处理,保持图的压缩和稀疏状态,而不是直接实例化 `N x N` 矩阵。 其他似乎很重要但需要后续验证的主张: * RNN 的记忆/计算比例可能有问题:O(N^2) 的转移参数,但只有 O(N) 的状态 * BDH 记忆更像一个带噪声的固定大小哈希表:稀疏的 key 写入少数 bucket,碰撞会增加噪声,但记忆不会随每个 token 逐个增长 * 恢复出的图显示出模块化/重尾分布的结构特征 * 一个 Europarl 示例显示,某个突触在遇到 "US dollar" 后会激活,但在仅遇到 "US" 时不会 * 重复的事实会随时间推移导致更少的活跃神经元/更少的写入,活跃神经元比例大致从 6% 降至约 2%。 我会将这些结果视为值得审视的有趣主张,而非确凿证据。以下注意事项很重要: * 这不是对现有 Transformer 权重的转换;Jan 表示 BDH 模型需要从头训练,或者最多进行蒸馏。 * 长期权重仍使用反向传播,而类赫布(Hebbian)风格的部分属于短期突触记忆 * 稀疏硬件仍是一个限制。目前的 GPU 在处理大量零值时仍会执行许多无用计算。 我仍有一些疑问: * 恢复出的连接图是真正的可解释性切入点,还是依赖于基底的表述? * 固定大小的带噪声记忆在实际中能否胜过不断增长的 KV cache? * 什么样的基准测试能让人信服这不仅仅是一个优雅的概念框架?很好奇大家的看法,尤其是关注 post-transformer 架构、SSM、linear attention 或持续学习(continual learning)的朋友。
查看原文

相似文章

内存

Reddit r/artificial

解释了为什么由于KV缓存随上下文长度和并发用户数扩展,LLM推理越来越受内存带宽限制,以及像vLLM和PagedAttention这样的系统如何提高内存利用率。

KV Packet: 免重计算的上下文无关KV缓存用于大语言模型

Hugging Face Daily Papers

KV Packet 提出了一种免重计算的缓存复用框架,用于大语言模型。该框架使用可训练的软标记适配器来弥合上下文不连续性,消除了开销,同时在 Llama-3.1 和 Qwen2.5 上的性能与完全重计算基线相当。