MLA 多头潜在注意力

定义

MLA(Multi-head Latent Attention,多头潜在注意力) 是 DeepSeek 在 V2(2024.05)中首次引入的核心注意力机制创新。它通过将 KV cache 压缩到低维潜在空间,在几乎不损失模型质量的前提下,将推理时的 KV cache 内存减少 93.3%,解决了 MoE 大模型推理效率的核心瓶颈。

为什么需要 MLA

MoE 推理的 KV Cache 困境

  • MoE 模型的参数总量很大(DeepSeek-V2: 236B,V3: 671B),但每次推理只激活部分专家
  • 计算是稀疏的,但 KV cache 是稠密的:每层每个 token 都要存储完整的 K 和 V
  • KV cache 内存成为推理吞吐量的首要瓶颈
  • 常规的 KV cache 压缩方法(如 Grouped Query Attention, GQA)压缩率有限(4-8x)

MLA 的解决方案:从源头压缩

MLA 不在推理后压缩 KV cache,而是在注意力计算本身中引入低秩结构:

  1. 低秩联合压缩:将 Key 和 Value 投影到一个共享的低维潜在空间
  2. 上投影恢复:从潜在向量上投影恢复完整的 K 和 V 用于注意力计算
  3. 推理时只缓存潜在向量:而非完整的 KV 矩阵

技术细节

标准 Multi-Head Attention (MHA)

Q = W_Q * x          // d -> d_q * n_heads
K = W_K * x          // d -> d_k * n_heads  
V = W_V * x          // d -> d_v * n_heads
O = softmax(Q @ K.T / sqrt(d)) @ V

KV cache 大小:2 * n_layers * d_head * n_heads * seq_len

MLA 的改进

C_KV = W_DKV * x          // 压缩:d -> d_c(d_c << d_k*n_heads)
K = W_UK * C_KV            // 上投影恢复 K
V = W_UV * C_KV            // 上投影恢复 V

推理时只缓存 C_KV(d_c 维),而非完整的 K 和 V。

与 RoPE 的兼容性

MLA 的一个关键工程挑战是 RoPE 与低秩压缩的冲突

  • RoPE 在 Q 和 K 上分别施加旋转位置编码
  • 如果 Q 和 K 都来自压缩潜在空间,RoPE 会使低秩结构退化
  • DeepSeek 的解决方案:解耦 RoPE——在压缩的 K 之外,额外计算一个小的 RoPE 分量(decoupled RoPE),将位置信息与内容信息分开处理

压缩比

  • V2 配置:KV 潜在维度 d_c ≈ 512,原始 KV 维度 = d_head × n_heads ≈ 128 × 128
  • 压缩比:~128× 的 KV 维度 → ~1/128 的 KV cache
  • 实际端到端:推理总内存减少至原来的 1/15(约 93.3% 减少),因为其他组件仍占内存

MLA 的价值链

直接影响

  1. 推理吞吐量大幅提升:更小的 KV cache → 更大 batch size → 更高吞吐
  2. 长上下文支持:KV cache 内存不再是限制,可以支持更长的序列
  3. 训练成本降低 42.5%(V2 paper 报告):MoE 训练中通信减少

间接影响

  1. 使 DeepSeek 的 MoE 架构在经济上可行:没有 MLA,MoE 的显存优势会被 KV cache 拖累
  2. 让 128K+ 长上下文成为可能:Kimi k1.5 的 128K 上下文 + Kimi K2 的 MoE 也有类似的效率考量
  3. 启发了后续的注意力效率研究(NSA、MLA-v2 等)

MLA 的局限

  1. 训练时有额外开销:上投影和下投影增加了计算,但 V2 paper 报告通过层融合等优化补偿了大部分
  2. 压缩率的天花板:潜在维度 d_c 不能无限缩小,需要在质量和压缩之间 trade off
  3. 与某些注意力变体不兼容:与 FlashAttention 的集成需要额外适配

与已有 Wiki 的连接

深度分析

MLA 的策略意义:让 MoE 从”训练经济”走向”推理经济”

在 MLA 之前,MoE 的叙事是”训练便宜但推理贵”(因为 KV cache 稠密)。MLA 补上了 MoE 推理效率这块短板,使”训练用 MoE 最大化参数效率 + 推理用 MLA 最大化吞吐”成为完整的成本最优策略。

这也是为什么在 DeepSeek 之后,Kimi K2、Qwen3-MoE 等几乎所有国产大模型都采用了 MoE 架构——MLA 让 MoE 推理不再是问题。

MLA 是一个”设计妥协”的胜利

MLA 最巧妙的地方不是低秩压缩本身(这并不新鲜),而是解耦 RoPE 的设计。它表明:不是所有信息都适合放进低秩空间——位置信息天生是结构化的,强制压缩只会破坏它。将内容信息(语义)和位置信息(结构)分离处理,是一个深思熟虑的工程决策。

一个开放问题:MLA 的通用性

MLA 当前主要在 DeepSeek 内部使用。它能否在非 MoE 架构中带来同等收益?能否应用到视觉 Transformer(ViT)的多模态模型中?如果 MLA 的思想可以跨模态迁移——比如压缩视觉 token 的 attention cache——其价值将远超当前范围。