跳转至

Key-Value Means: Transformers with Expandable Block-Recurrent Compressed Memory

论文基本信息

  • arXiv ID: 2605.09877
  • 作者: Daniel Goldstein, Eugene Cheah
  • 机构: Featherless AI
  • 发表日期: 2026-05-11
  • 类别: cs.LG (Machine Learning)
  • 代码: https://github.com/featherless-ai/KVM-paper
  • 模型: https://huggingface.co/collections/featherless-ai/kvm-paper

摘要

本文提出 Key-Value Means(KVM),一种新型的块级循环(block-recurrence)注意力机制,可以兼容固定大小或可增长的记忆状态。为强基线 Transformer 配备固定大小 KVM 注意力层,可得到一个强大的 O(N) 分块 RNN,同时仅增加极少量新参数。

研究者训练了配备可增长 KVM 缓存的 Transformer,发现其在长上下文测试中具有竞争力的性能,且预填充(prefill)时间为亚二次方、状态增长为亚线性。KVM 可用标准操作实现,无需自定义 CUDA 内核,支持分块级并行训练和预填充。它在单一统一包中提供了传统 Transformer(可扩展上下文记忆、分块级并行训练和预填充)和线性 RNN 的诸多优势。

KVM 可在每一层使用,节省 KV-cache 内存,并允许在 O(N) 和 O(N²) 之间的预填充时间复杂度连续选择。也可与传统注意力层混合使用,在需要时补充 LRNN 层,实现更长的上下文。

核心贡献

1. 块级循环注意力(Block-Recurrent Attention)

将注意力计算限制在固定大小的块内,通过循环机制在块之间传递隐藏状态: - 固定大小 KVM:产生 O(N) 分块 RNN,仅增加少量参数 - 可增长 KVM:支持 KV-cache 动态增长,性能逼近全注意力

2. 亚线性状态增长

相比标准 Transformer 的线性 KV-cache 增长,KVM 的状态增长为亚线性,大幅降低长序列的内存占用。

3. 亚二次方预填充时间

预填充时间复杂度可在 O(N) 到 O(N²) 之间连续选择,允许在速度和性能之间权衡。

4. 分块级并行化

训练和预填充均可分块级并行,无需串行处理整个序列,支持 GPU 高效利用。

5. 标准操作实现

无需自定义 CUDA 内核,用 PyTorch 标准操作即可实现,降低部署门槛。

为什么重要

Transformer 的 KV-cache 随序列长度线性增长是长上下文应用的主要瓶颈。现有方法如线性 RNN(LRNN)虽能压缩状态,但损失了 Transformer 的可扩展上下文记忆能力。KVM 在两者之间提供了灵活的权衡:

特性 标准 Transformer 线性 RNN KVM
上下文记忆 可扩展 有限 可扩展/固定可选
预填充复杂度 O(N²) O(N) O(N) ~ O(N²) 连续
状态增长 O(N) O(1) O(1) ~ O(N) 可选
并行训练 全序列 分块 分块

这种灵活性使 KVM 可以根据硬件和任务需求动态调整,对移动端/端侧部署尤为重要——可以根据设备能力选择合适的权衡点。

与移动端/端侧的相关性

  • 端侧长上下文:KVM 的亚线性状态增长使在移动设备上处理长文档、多轮对话成为可能,无需完整加载到 GPU。
  • 可配置效率:O(N) ~ O(N²) 的连续权衡让开发者可以在手机、嵌入式设备上选择合适的性能-效率平衡点。
  • 标准实现:无需自定义内核,可以用标准 PyTorch 部署,降低了端侧门槛。

参考文献

本文参考文献待从原文补充。