MLA (Multi-head Latent Attention)
用一对低秩投影把 K、V 压成一个共享的低维 latent 向量缓存;attention 计算时再上投影回各 head 空间。KV cache 体积下降到 1/4 以下,推理时长上下文不再 OOM。
长上下文推理的真正瓶颈不是算力,是 KV cache 显存:
- 普通 MHA:每个 head 一份完整 K、V 缓存
- MQA:所有 head 共享一份 K、V,体积小但表达力损失明显
- GQA:分组共享,是个折中
MLA 给出一种新思路:不共享 K/V 本身,而是共享一个低维 latent;K、V 用 latent + 各 head 自己的上投影矩阵动态生成。这样:
- 缓存的只有 latent,体积 ≈ MQA 量级
- 但每个 head 仍有独立的”个性化” K、V(通过上投影)
数学 / 实现
Section titled “数学 / 实现”设 token 表示 ,潜在维度 ,head 数 ,每 head 维度 。
压缩(每步只算这一步缓存):
就是要写入 cache 的东西,远小于 。
上投影(attention 计算时即时做):
但这里有个坑:RoPE 不能直接施加在 latent 上(位置编码要在投影之后)。DeepSeek 的解法是 decoupled RoPE:单独留一小段 head 维度专门承载 RoPE 位置信息,与 latent 通路并行。
具体见 @/src/content/docs/deepseek/v4-research.md 的对应章节,以及原论文 §2.1。
在 DeepSeek 里的用法
Section titled “在 DeepSeek 里的用法”| 模型 | KV cache 相对 MHA | 备注 |
|---|---|---|
| DeepSeek-V2 | ~6.7% | MLA 首发 |
| DeepSeek-V3 | ~5% | 沿用 MLA + 优化 |
| DeepSeek-V4 | 进一步降 | MLA + 混合注意力(SWA/CSA/HCA) 协同 |
V4 在 MLA 基础上叠加分层稀疏,让百万 token 上下文成为可能。
- 原论文:DeepSeek-V2 §2.1
- 对比:GQA / MQA
- 相关词条:MoE · MTP
- 站内:V4 混合注意力