QKV 三位一体是刚需吗?这篇论文把 Transformer 的三角恋拆成了二人转
> 论文:Do Transformers Need Three Projections? Systematic Study of QKV Variants > arXiv: 2606.04032 | 2026年6月 > 机构:BrainChip Inc.(来自论文Impact Statement推断) > 代码:https://github.com/Brainchip-Inc/Do-Transformers-Need-3-Projections
---
🔥 一句话总结
这篇论文问了一个"大逆不道"的问题:Transformer 的 Q、K、V 三个投影矩阵,真的缺一不可吗?实验证明:K 和 V 可以共享(Q-K=V),300M 模型只损失 3.1% 困惑度,但 KV Cache 直接砍半。更狠的是,和 GQA/MQA 叠加后,Cache 压缩率可达 96.9%。Attention 需要的是 Q 与 K/V 之间的方向性,不是三个独立投影。
---
🎯 问题:KV Cache 是显存刺客
上下文长度从 8K 飙到 128K,算力早不是唯一瓶颈。KV Cache 才是真正的"显存刺客"——每个 token 都要缓存 Key 和 Value,长度一涨,显存呈线性爆炸。
现有解法:
- MQA(Multi-Query Attention):所有 Query 头共享一组 K/V → Cache 砍到 1/H
- GQA(Grouped Query Attention):Query 分组共享 K/V → Cache 砍到 G/H
- 量化:INT8/INT4 压缩 Cache → 进一步砍半
---
⚙️ 三种投影共享方案
论文系统评估了三种 progressively aggressive 的共享约束:
方案1:Q=K-V(共享 Q 和 K,独立 V)
A = Softmax(α * K * K^T) * V
问题:Q=K 导致注意力矩阵对称(K*K^T 天然对称),破坏了因果语言建模需要的方向性。
结果:训练质量还行(+4.9% 困惑度),但零 Cache 收益——因为 K 和 V 仍然要分别缓存。
verdict:不推荐。
方案2:Q-K=V(独立 Q,共享 K 和 V)⭐
A = Softmax(α * Q * K^T) * K # V 就是 K!
关键洞察:K 和 V 在表示空间上高度重叠。论文分析了训练好的 QKV 模型:
- K 和 V 的投影矩阵余弦相似度:0.73
- K 和 V 的有效秩:687 vs 702(共 1024 维)
- Q 与 K/V 的相似度:仅 0.42 / 0.31
收益:
- 300M 模型:+3.1% 困惑度,50% KV Cache 减少
- 1.2B 模型:+2.48% 困惑度,相对排名稳定
- 下游任务(HellaSwag/PIQA/ARC 等):平均仅损失 0.41%
方案3:Q=K=V(单投影)
A = Softmax(α * K * K^T) * K
结果:灾难性质量损失(+25.4% 困惑度)。同时破坏了方向性和表征丰富度。
verdict:绝对不要。
---
📊 叠加 GQA/MQA:Cache 压缩的终极配方
投影共享和头共享是正交的,可以叠加:
| 配置 | KV Cache 压缩率 | 300M 困惑度损失 | 1.2B 困惑度损失 |
|---|---|---|---|
| QKV(基线) | 0% | — | — |
| Q-K=V | 50% | +3.1% | +2.48% |
| GQA-4 | 75% | +0.7% | — |
| MQA | 93.8% | +1.5% | +1.06% |
| Q-GQA-4 | 87.5% | +3.9% | — |
| Q-MQA | 96.9% | +4.8% | +4.16% |
- Q-K=V + MQA = 96.9% Cache 压缩,但质量损失仅 4.8%(300M)/ 4.16%(1.2B)
- 1.2B 模型上,Q-MQA 的 Cache 从 5.9GB → 88MB(67× 压缩)
- 下游任务上,Q-GQA-8 甚至超过了 QKV 基线(36.72% vs 36.40%)
32K 上下文,100 并发用户,A100 40GB:
- QKV:每人 2.62GB Cache → 15 用户/GPU → 需要 7 台 GPU($14k/月)
- Q-K=V:每人 1.31GB Cache → 30 用户/GPU → 需要 4 台 GPU($8k/月)
- 节省:$6k/月 = $72k/年(43% 成本降低)
---
🧠 深度解读:为什么 Q-K=V 有效
1. V 的角色被高估了
传统理解:
- Q:"我要找什么"(查询)
- K:"我有什么"(索引)
- V:"内容是什么"(载荷)
- K 的投影矩阵已经包含了足够的语义信息来同时充当"索引"和"载荷"
- Attention 的核心是 Q 和 K 之间的方向性(Q*K^T),不是 K 和 V 之间的差异
2. 为什么 Q=K-V 不行(对称注意力诅咒)
Q=K 导致注意力矩阵对称(K*K^T = (K*K^T)^T),这意味着:
- token i 对 token j 的注意力 = token j 对 token i 的注意力
- 因果语言建模中,这种对称性破坏了"只能看左边"的方向性
3. 与 MQA 的互补性
MQA 减少 Cache 的方式:减少 K/V head 的数量(从 H 个降到 1 个) Q-K=V 减少 Cache 的方式:每个 head 内部不再分别存 K 和 V
两者相乘:
- MQA 单独:Cache = 2 * 1 * d * n / H = 2dn/H → 压缩到 1/H
- Q-K=V + MQA:Cache = 1 * 1 * d * n / H = dn/H → 压缩到 1/(2H)
4. 规模效应:越大越robust
| 规模 | Q-K=V 困惑度损失 |
|---|---|
| 300M | +3.1% |
| 1.2B | +2.48% |
---
⚠️ 局限
1. 最大验证规模 1.2B:7B+ 模型的行为尚未验证。不过趋势是乐观的。
2. 序列长度限制:实验最长 2048 tokens,更长上下文的 extrapolation 行为未知。
3. 理论解释是经验性的:论文通过分析训练好的模型的 K/V 投影矩阵相似度来解释为什么 Q-K=V 有效,但缺乏 formal 的理论保证。
4. Q=V 消融缺失:论文没有测试 Q=V 共享(只保留 K 独立)。不过作者解释了原因:Q 不被缓存,其"寻址"角色与 V 的"载荷"角色根本不同,所以 Q=V 是最不自然的约束。
---
🔗 相关阅读
- 论文原文:arXiv:2606.04032
- 代码仓库:https://github.com/Brainchip-Inc/Do-Transformers-Need-3-Projections
- 相关工作:
- MQA(Shazeer, 2019):头共享的鼻祖
- GQA(Ainslie et al., 2023):Llama 2/Mistral 采用的方案
- DeepSeek-V2 MLA:通过压缩到 latent vector 减少 Cache
- He & Hofmann (2024):Simplifying Transformer Blocks,也质疑 V 的必要性
> 这篇论文的核心启示:Transformer 的 QKV 设计可能是一种"过度参数化"的历史惯性,而非最优解。 三个投影矩阵中,K 和 V 的独立性可能不是必要的——它们共享的表示空间足以同时承担"索引"和"载荷"的功能。而 Q 的独立性至关重要,因为它提供了注意力机制的方向性。这就像一个团队:需要有一个明确的"提问者"(Q),但"索引员"和"内容提供者"可以是同一个人(K=V)。把 QKV 从"三角恋"优化成"二人转",在几乎没有质量损失的情况下砍掉一半 KV Cache——这才是工程化的思维方式。
#Transformer #QKV #KVCahce #注意力机制 #模型压缩 #效率优化 #论文解读 #AI研究
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens