MQA、GQA 和 MLA 分别怎样减少 KV?
共享 KV 头与压缩潜变量是不同的设计。
内容修订 4 · 2026-10-24
I02 · 修订 1 · 2026-10-21
- MHA:每头独立 KV
- GQA / MQA:组内共享 KV
- MLA:压缩潜变量 + 位置分量
问题从哪里来
Query 头可以学习不同的关注方式,但为每个 Query 头保留独立 K/V 会扩大缓存。2019 年 MQA、2023 年 GQA 探索共享 K/V;DeepSeek 的 MLA 则改变缓存表示。
关键机制
MHA 中 H_kv=H_q;MQA 中所有 Query 头共享一组 KV,H_kv=1;GQA 则有 1<H_kv<H_q 个组。MLA 使用低维联合潜变量及其解压映射,并处理位置表示相关分量。它不是简单把 GQA 组数继续减小。
MHA → GQA: ideal KV ratio = H_kv / H_q
算例与证据
教学配置 32 个 Query 头、8 个 KV 头,在其余条件相同时,GQA 载荷为 MHA 的四分之一。Meta Llama 3 的 8B/70B 披露 GQA;DeepSeek-V3 披露 MLA;这些是具体型号的证据。
收益之外的新约束
共享程度与模型质量存在取舍,需要训练或转换与验证;压缩表示依赖模型结构和内核支持。不能仅改服务端参数就无损把任意模型改成 MLA,也不能直接用载荷比推断吞吐比。
原始来源
- Fast Transformer Decoding: One Write-Head is All You Need · 2019-11-05 · 核对 2026-10-21
- GQA: Training Generalized Multi-Query Transformer Models · 2023-05-22 · 核对 2026-10-21
- Meta Llama 3 · 2024-04-18 · 核对 2026-10-21
- DeepSeek-V3 Technical Report · 2024-12-27 · 核对 2026-10-21
启用脚本后可使用手动本地阅读记录和交互计算器。