推理与部署大模型推理注意力机制KV Cache速答 · 约 6 分钟更新 2026-09-28

GQA、MQA、MLA 是什么?为什么推理部署都在用?

一句话结论

它们都是为缩减大模型推理时 KV 缓存显存占用而设计的注意力变体。MQA 共享一个 KV 头,GQA 分组共享,MLA 则将 KV 压缩成低秩潜在向量并解耦 RoPE。

先这样答

GQA、MQA、MLA 都是用来减少大模型推理时 KV 缓存显存占用的注意力机制变体。大模型自回归解码时,每生成一个 token 都要把整条序列的 KV 重新读一遍,导致推理瓶颈卡在显存带宽而非计算量上。为突破这个访存密集瓶颈,业界演进出了这三种技术。

MQA 也就是多查询注意力,让所有 Query 头共享唯一一组 KV 头。这能最大幅度降低缓存,但有轻微质量下降。为平衡质量和显存,GQA 将 Query 头分组,每组共享一个 KV 头。只需 5% 原预训练算力进行继续训练,GQA 就能做到质量接近标准多头注意力,速度接近 MQA。

MLA 是多头潜在注意力,它不走共享 KV 头的路线,而是将 K 和 V 联合压缩成一个低秩的潜在向量缓存。为避免 RoPE 破坏矩阵吸收,MLA 设计了解耦 RoPE。它每 token 缓存 576 个元素,包含 512 维潜在向量和 64 维解耦 RoPE 键。DeepSeek-V2 论文报告该设计使 KV 缓存减少 93.3%,最大生成吞吐提升至 5.76 倍。

总的来说,从 MQA 到 GQA 再到 MLA,核心逻辑都是在保证模型表达力的前提下缩减数据量,突破显存带宽上限,以支撑长上下文和高并发。

面试官会怎么追问

  • 「为什么大模型解码慢在显存带宽而不是算力」 自回归解码是一个访存密集型任务。计算单元大部分时间在等待历史 KV 数据从显存搬运过来,算力无法跑满,所以瓶颈在带宽。

  • 「MLA 为什么要专门设计解耦 RoPE」 MLA 的高效推理依赖矩阵吸收,解码时需把上投影矩阵提前吸收进 Query 或输出投影中。RoPE 是一种位置相关的旋转操作,直接应用会破坏线性矩阵吸收的条件,必须单独拿出一个 64 维向量携带 RoPE 信息。

  • 「既然 MLA 这么省显存,它在部署上有什么局限性」 局限是实现复杂且需定制算子。MLA 缓存的是压缩潜在向量,注意力内核形状与标准机制不同,无法直接使用标准 FlashAttention,工程落地时需专门编写解码内核。

回答的坑

  • 认为 MLA 的缓存体积绝对比 GQA 小。正确方向是说明 MLA 的优势依赖具体配置,在某些小宽度配置下,单 KV 头的 GQA 缓存可能比 MLA 的 576 个元素更小。
  • 说 MQA 能让解码速度提升十几倍。正确方向是不提未经证实的绝对加速倍数,只强调它突破了带宽瓶颈,具体加速效果受硬件和序列长度影响。
—— 本题完 ——