💡 答案要点
MLA 是 DeepSeek 提出的新一代注意力范式——用低秩分解替代传统的独立 Q/K/V 投影。
GQA 仍然存在的冗余:
GQA 的改进思路:多个 Query head 共享一组 KV head
但本质上是独立的投影矩阵:
W_Q[i]: d_model → d_head (独立学习)
W_K[v]: d_model → d_head (独立学习)
W_V[v]: d_model → d_head (独立学习)
冗余之处:
每个 head 的 Q/W/Q 都是独立的 d_model × d_head 矩阵
但这些投影之间可能有高度相关性(都在学类似的注意力映射)
→ 有没有办法"共享知识"同时又能"区分任务"?MLA 的核心创新:低秩分解 Q/K/V 投影
传统多头注意力(MHA/GQA):
W_Q: (num_heads × d_head, d_model) ← 独立大矩阵
W_K: (num_kv_heads × d_head, d_model) ← 独立大矩阵
W_V: (num_kv_heads × d_head, d_model) ← 独立大矩阵
MLA(Multi-Latent Attention):
第一步:共同压缩
C_c: (d_model, d_comp) ← 共同压缩矩阵 (小!)
c = C_c @ x 把 x 压缩到低维 latent space
第二步:解耦展开
W_Q_h: (num_heads × d_head, d_comp) ← 按头拆分
W_K_v: (num_kv_heads × d_head, d_comp) ← 按 KV group 拆分
W_V_v: (num_kv_heads × d_head, d_comp) ← 按 KV group 拆分
Q_h = W_Q_h @ c
K_v = W_K_v @ c
V_v = W_V_v @ cMLA 与传统方式的对比:
假设 d_model=8192, num_heads=64, d_head=128, num_kv=8, d_comp=512
传统 GQA 的 KV 投影矩阵大小:
W_K: (8 × 128, 8192) = (1024, 8192) = 8.4M 参数
W_V: (8 × 128, 8192) = (1024, 8192) = 8.4M 参数
MLA 的 KV 投影矩阵大小:
压缩: C_kv (512, 8192) = 4.2M 参数
展开: W_K_v (8×128, 512) = 0.52M 参数
展开: W_V_v (8×128, 512) = 0.52M 参数
总计: 5.2M 参数
节省: (16.8M - 5.2M) / 16.8M ≈ 69% 的 KV 投影参数!KV Cache 的巨大优势:
MLA 的 KV Cache 只有低维 latent 向量 c_v
而非高维的 K_v 和 V_v
KV Cache 大小对比:
GQA: 层数 × seq_len × num_kv × d_head × 2 × bytes (如前面计算的 ~82MB/token)
MLA: 层数 × seq_len × d_comp × 1 × bytes (仅存储压缩后的 c_v)
MLA 可以将 KV Cache 压缩到原来的 1/10~1/5
这意味着:
✓ 同样的显存可以支持更长上下文
✓ 同样的上下文可以支持更大 batch size
✓ 长文本推理成本大幅降低MLA 的完整推理流程:
推理时每步的新 token 处理:
x_new → C_c (压缩) → c_v (低维 latent) → 存入 KV Cache
生成下一个 token:
c_cache (全部历史的 latent) → W_V_v (展开) → V_cache
x_new → C_c (压缩) → c_q (query latent) → W_Q_h (展开) → Q_new
注意力: Softmax(Q_new @ K_cache^T / √d) @ V_cache
关键点:K_cache 也是由 c_cache 经 W_K_v 展开得到的
所以 KV Cache 只需要存 c_v,不用存展开后的 K/V!为什么 DeepSeek v3 选择 MLA:
Trade-off 分析:
MLA 优点:
✓ KV Cache 缩减 5-10x → 长上下文和大批量更易实现
✓ KV 投影参数减少 ~70% → 模型更紧凑
✓ 低秩表示天然有正则化效果
MLA 缺点:
d_comp 太小有表达能力瓶颈(经验值 512-1024 比较安全)
需要额外的 C_c 和 W_h/v 矩阵训练
理论上可能不如独立投影灵活(受限的秩)
结论:在追求长上下文和高效推理的场景下,MLA 的 trade-off 非常值得。
DeepSeek 实测发现 d_comp=512 时对性能影响微乎其微MLA vs GQA 总结对比:
| 维度 | GQA | MLA |
|-------------|--------------------|------------------------|
| KV Cache | 中高 | 极低(低秩压缩) |
| 参数效率 | 中 | 高(参数减 70%) |
| 表达能力 | 高(独立投影) | 中-高(受 d_comp 限制) |
| 实现复杂度 | 低 | 中 |
| 适用场景 | 通用推理 | 长上下文、大批量场景 |
| 代表模型 | Llama-3.1 等 | DeepSeek-V3 |面试话术:
"MLA 的核心思想是把 Q/K/V 投影做低秩分解——先用一个共同的压缩矩阵把高维嵌入降到低维 latent,再分别展开成 Q/K/V。这样做的好处是 KV Cache 可以直接存低维 latent,不用存展开后的高维张量,从而把 KV Cache 压缩到原来的十分之一左右。DeepSeek V3 选择 MLA 不是为了刷指标,而是为了在有限的显存下跑更长的上下文和更大的 batch。理论上有微小的表达能力折损,但实践证明 d_comp=512 足够用。"
⭐ 面试加分项:
- 能手推 MLA 的矩阵维度变化(特别是低秩分解的形状)
- 理解为什么 KV Cache 只需存 c_v 而不用存 K_v/V_v
- 能定量估算 MLA 带来的 KV Cache 节省比例
- 知道 d_comp 的选择对表达能力的 trade-off
| 日期 | 版本 | 更新内容 |
|---|---|---|
| 2026-08-21 | v3.136 | 新增 Q20-Q26(Scaling Laws&Chinchilla、Tokenization/BPE、ALiBi详解、Sliding Window Attention、Causal Decoder-Only主导原因、LayerNorm vs RMSNorm、训练Loss Curve诊断)7 道 |
| 2026-08-14 | v3.135 | 新增 Q15-Q19(FlashAttention、MoE稀疏架构、PagedAttention/KV Cache管理、SwiGLU门控机制、MLA低秩注意力)5 道 |
| 2026-04-13 | 新增 Q10 Transformer+SSM混合架构(Mamba核心原理、2026年主流模型混合策略) | |
| 2026-03-05 | 新增 Transformer 架构与注意力机制面试题 7 道 |