@che_shr_cat: 1/ 多年来我们一直通过头部共享(GQA/MQA)来优化KV缓存,但我们忽略了一个基本假设:为什么……

X AI KOLs Timeline 论文

摘要

这条推文挑战了关于Transformer需要独立的Q、K和V投影的基本假设,提出合并它们可以为KV缓存带来巨大的内存节省。

1/ 多年来我们一直通过头部共享(GQA/MQA)来优化KV缓存,但我们忽略了一个基本假设:为什么Transformer首先需要三个独立的Q、K和V投影? 事实是,它们不需要。合并它们可以解锁巨大的内存节省。🧵 https://t.co/AEkWVXpExg
查看原文
查看缓存全文

缓存时间: 2026/06/10 00:25

1/ 多年来,我们一直通过头共享(GQA/MQA)来优化 KV 缓存,但我们忽略了一个基本假设:为什么 Transformer 最初需要三个分离的 Q、K 和 V 投影?

事实证明,它们并不需要。合并它们能带来巨大的内存节约。

2/ 一篇新论文《Transformer 真的需要三个投影吗?》系统性地拆解了这一瓶颈。

Ali Kayyam、Anusha Madan Gopal 和 M Anthony Lewis 证明,共享 QKV 投影既可行又高效。

3/ 标准多头注意力独立地投影 Q、K 和 V。

作者分析了训练好的权重,发现了高度冗余:Key 和 Value 的投影空间余弦相似度为 0.73。Query 则明显不同(0.42)。

这为一种新变体 Q-K=V 提供了理由。

4/ 在 Q-K=V 配置中,我们将输入投影为 Q 和一个统一的 K 空间。

在自回归解码过程中,你只需在 KV 缓存中存储这个统一的 K 张量。这能立即将 KV 缓存内存占用减少 50%,且没有任何解压缩开销。

5/ 这并非要取代分组查询注意力(GQA)或多查询注意力(MQA),而是正交的。

将 Q-K=V 与 MQA 结合(Q-MQA)可使 KV 缓存内存减少惊人的 96.9%,在服务帕累托前沿上带来巨大转变。

6/ 这会不会破坏模型?几乎不会。

在 1.2B 参数规模下,Q-K=V 模型平均下游准确率仅下降 0.41%(HellaSwag、WinoGrande 等),困惑度仅增加 2.4%,影响微乎其微。

然而,对称变体 Q=K=V 在因果语言模型中则完全失败。

7/ 在重写训练流程之前,请注意以下事项: • 测试的最大规模为 1.2B 参数。 • 评估时上下文长度不超过 2k。 • 要获得实际速度提升,需要自定义 CUDA 内核,因为优化后的框架(如 FlashAttention)期望三个独立的 QKV 张量。

8/ 一个有趣的数学细节:作者证明,在完全 QKV 坍缩(Q=K=V)的情况下,线性核化注意力在数学上简化为一个具有自适应、输入条件更新的循环状态空间模型(SSM)。

这是注意力机制与 SSM 之间的一条优雅桥梁。

9/ 我认为这是一个被严重低估的架构变革。随着长上下文和边缘设备服务成为主要优先级,我们不能再容忍冗余的权重。

在训练中直接绑定 Key 和 Value 投影是一个简单且在数学上合理的胜利。

10/ 阅读完整论文和代码:

论文:https://arxiv.org/abs/2606.04032 代码:https://github.com/Brainchip-Inc/Do-Transformers-Need-3-Projections…

阅读我的完整技术解析:https://arxiviq.substack.com/p/do-transformers-need-three-projections…

你对坍缩 QKV 空间有何看法?

11/ 我还用漫画形式展示了这一架构变革,让原理更直观。请看下方!

相似文章

Transformer 真的需要三个投影矩阵吗?QKV 变体的系统性研究

Hacker News Top

本文系统研究了 Transformer 中 QKV 投影共享的各种变体,发现共享键和值投影(Q-K=V)可在仅造成 3.1% 困惑度下降的情况下实现 50% 的 KV 缓存压缩,结合 GQA/MQA 最高可达 96.9% 的缓存压缩率——以极小的质量损失实现实用的端侧推理。