DeepSeek 如何重写 Transformer:MLA 的 57 倍压缩魔法
原视频:How DeepSeek Rewrote the Transformer [MLA] by Welch Labs
视频链接:http://www.youtube.com/watch?v=kYI-U1_I3mQ
论文:DeepSeek-V2 (arXiv:2405.04434), DeepSeek-V3 (arXiv:2412.19437), DeepSeek-R1 (arXiv:2501.12948)
引子:4MB 一个 token 的灾难
想象一下,你正在和一个大模型聊天。它每说一个词,就要在 GPU 显存里存一份"记忆"——也就是注意力机制里的 Key 和 Value(KV 缓存)。
对于 DeepSeek-R1 这种级别的模型,如果用最传统的多头注意力(MHA),每生成一个 token,KV 缓存要消耗约 4MB 显存。
4MB?听起来不多?
但如果上下文是 1 万个 token,那就是 40GB。这已经超过大多数消费级 GPU 的显存上限了。如果是 10 万 token?400GB。你得租一整台服务器来跑一段长对话。
这就是传统 Transformer 的致命瓶颈:KV 缓存随上下文线性增长,随模型大小也线性增长,双重爆炸。
DeepSeek 的答案是:MLA(Multi-head Latent Attention,多头潜在注意力)。它不是换了个更贵的 GPU,而是把 Transformer 的内存效率提升了 57 倍(V3/R1 估计值)。
相当于把一整个数据中心的显存需求,压缩到了一张显卡里。
为什么 KV 缓存会爆炸?从 MHA 说起
要理解 MLA 的魔法,先得看看它替代的是什么。
传统多头注意力(MHA)
在 Transformer 的每一层,模型有多个"注意力头"(比如 64 个)。每个头都维护自己的一组 Key 和 Value 向量。
假设:
- 模型有 \(L\) 层
- 每层有 \(h\) 个注意力头
- 每个头的维度是 \(d_k\)
- 序列长度是 \(N\)
那 KV 缓存的总大小是:
\(2\) 是因为 Key 和 Value 各一份。\(L\) 是层数,\(h\) 是头数,\(d_k\) 是每头维度,\(N\) 是序列长度。
对于 DeepSeek-R1(671B 参数,37B 激活),如果用标准 MHA,这个数会大到离谱。Welch Labs 的计算显示,每个 token 的 KV 缓存约为 3,997,696 个参数。
从 MHA 到 MQA/GQA:砍头换内存
研究界早就意识到这个问题,解决方案是"砍头":
- MQA(Multi-Query Attention):所有 Query 头共享 1 个 KV 头。KV 缓存降到 \(1/h\)。
- GQA(Grouped-Query Attention):Query 头分组,每组共享少量 KV 头。KV 缓存降到 \(h_{group}/h\)。
这些方案确实减少了内存,但代价是效果下降。共享的 KV 头无法捕捉不同 Query 头需要的多样化信息。就像让 64 个记者共用 1 个录音笔——便宜是便宜,但信息丢失严重。
DeepSeek 说:不砍头,我们改压缩。
MLA 的核心洞察:低秩压缩
MLA 的核心想法是:不要把 KV 的"完整版"存进缓存,存一个高度压缩的"潜在向量"(Latent Vector),用到的时候再解压。
这就像是:
- MHA 把高清电影的每一帧都原封不动存进硬盘
- MQA/GQA 把电影切成更少的副本,但分辨率还是原生的
- MLA 把电影压缩成 MP4 存进硬盘,播放时再实时解码
数学直觉
对于每个 token,传统 MHA 存的是:
MLA 改为存一个低维的潜在向量:
其中 \(d_c \ll d_k\)(比如 \(d_c = 512\),\(d_k = 4096\))。\(W^{DK}\) 和 \(W^{DV}\) 是压缩矩阵(Down Projection),把高维 KV 压缩到低维空间。
当需要计算注意力时,用解压矩阵(Up Projection)把 \(c_t^{KV}\) 还原回多头 KV:
然后就可以正常做多头注意力了。
效果有多夸张?
DeepSeek-V2 论文声称 KV 缓存减少了 93.3%。Welch Labs 根据 V3/R1 的架构参数重新计算,估计实际减少 56.9 倍(从 3,997,696 参数降到 70,272 参数)。
不管是 93.3% 还是 56.9 倍,结果都是同一个:128K 的上下文长度,在普通 GPU 上轻松跑。
吸收式投影:数学家的"偷懒"
MLA 的第一个版本已经很好了,但 DeepSeek 还有一招更精妙的:
吸收式投影(Absorbed Projections)。
问题:解压步骤的冗余
在原始 MLA 中,计算流程是:
- 把缓存的潜在向量 \(c_t^{KV}\) 解压回多头 KV:\(\tilde{K} = W^{UK} c^{KV}\)
- 用多头 Query \(Q\) 和 \(\tilde{K}\) 算注意力分数:\(Q \tilde{K}^T\)
- 用注意力权重和 \(\tilde{V}\) 加权求和
- 把结果投影回模型维度:\(O = W^O \cdot \text{AttentionOutput}\)
这里有两次矩阵乘法:先解压(\(W^{UK} c^{KV}\)),再注意力;最后还要投影(\(W^O\))。
技巧:矩阵乘法的结合律
数学家看这个问题会立刻想到:矩阵乘法是结合的。\(W^{UK}\) 和 \(W^O\) 都是固定权重矩阵,为什么不把它们"吸收"进其他矩阵里?
具体来说:
-
Query 端吸收:\(W^{UQ}\)(Query 的解压矩阵)可以和 \(W^{UK}\) 合并。实际上 DeepSeek 的设计更巧妙——Query 不是直接解压,而是先算低维 Query,再"共享"解压路径。
-
Output 端吸收:\(W^{UV}\)(Value 的解压矩阵)和 \(W^O\)(输出投影)可以合并成一个矩阵。
-
V 从 K 复用:在 DeepSeek 的实现中,Value 向量不需要单独存,它直接从 Key 向量的前 \(d_c\) 维截取。这进一步减少了存储和计算。
Welch Labs 在视频里展示了这个数学技巧的本质:
"这意味着在推理过程中,模型可以跳过显式的解压步骤,直接在压缩后的低维空间进行部分计算。"
这不是近似,不是有损压缩——是严格的数学等价。通过重新排列乘法顺序,省去了中间步骤的显式计算,结果分毫不差,但运算量大幅减少。
与 RoPE 的舞蹈:解耦位置编码
MLA 有一个隐含的难题:RoPE(旋转位置编码)。
传统 Transformer 用 RoPE 给 Q 和 K 注入位置信息。但 MLA 的 Q 和 K 是在低维潜在空间计算后再解压的——如果直接对低维向量应用 RoPE,解压后的高维向量位置信息会失真。
DeepSeek 的解决方案是解耦 RoPE(Decoupled RoPE):
- 对于参与 RoPE 的维度,Q 和 K 保留一个小的、独立的向量(带位置编码)
- 对于不参与 RoPE 的维度,走低秩压缩路径
- 两者拼接后一起使用
这样,位置信息通过独立的"快捷通道"传递,压缩信息通过低秩路径传递,互不干扰。
Welch Labs 的视频里可能忽略了这部分(作者备注第5条提到"忽略了位置嵌入"),但这恰恰是 MLA 工程实现中最精妙的地方之一。
为什么 DeepSeek 的 API 能便宜到离谱?
MLA 的 57 倍压缩,不只是技术炫技,它有直接的商业意义:
1. 更少的 GPU 就能跑更大的模型
因为 KV 缓存极小,同样的 GPU 显存可以支持更长的上下文。DeepSeek-R1 可以在更少的 H100 上服务更多用户。
2. 推理速度提升
Welch Labs 引用了 DeepSeek-V2 论文的数据:使用 MLA 后,吞吐量提升了略低于 6 倍。对于 V3/R1 的更大架构,实际提升可能超过 6 倍。
3. 内存带宽不再是瓶颈
Transformer 推理的主要瓶颈不是计算,而是内存带宽——从显存读取 KV 缓存的速度。MLA 把要读取的数据量压缩了 57 倍,带宽瓶颈瞬间缓解。
这就是 DeepSeek API 价格能打到行业最低价的底层原因:
不是模型变小了,是模型变"聪明"了——它知道怎么把记忆压缩到极致,用到的时候再解压。
从 MHA 到 MLA:注意力机制的进化树
| 机制 | 核心思想 | KV 缓存 | 效果代价 | 代表模型 |
|---|---|---|---|---|
| MHA | 每个 Query 头独享 KV 头 | \(2 \times h \times d_k\) | 基准(无代价) | GPT-3, LLaMA-1 |
| MQA | 所有 Query 头共享 1 个 KV 头 | \(2 \times d_k\) | 效果下降明显 | PaLM, Falcon |
| GQA | Query 头分组,组内共享 KV 头 | \(2 \times g \times d_k\) | 效果中等下降 | LLaMA-2, Mistral |
| MLA | 低秩压缩 + 吸收式投影 | \(2 \times d_c\)(\(d_c \ll d_k\)) | 几乎无下降 | DeepSeek-V2/3/R1 |
MLA 的突破在于:它不是用"砍头"来换内存,而是用"压缩"来换内存。 这意味着它保留了多头注意力的表达能力(每个头仍能关注不同信息),同时把存储开销降到接近 MQA 的水平。
硬件视角:MLA 不只是算法,是架构
一篇 2025 年的硬件分析论文(Robin Geens, KU Leuven)指出:
MLA 不仅减少带宽使用,还能让注意力计算从内存带宽受限(memory-bound)转向计算受限(compute-bound)。
在带宽受限的硬件上,MHA 的大部分时间花在"从显存读取 KV 缓存"上。MLA 把要读取的数据量压缩 57 倍,GPU 的计算单元终于能忙起来,而不是干等数据。
这意味着:未来专门为 MLA 优化的 AI 加速器,可能比优化 MHA 的加速器快一个数量级。MLA 是一个软硬件协同设计的机会。
局限与开放问题
MLA 不是银弹:
-
训练成本更高:低秩压缩矩阵需要额外训练。虽然推理时零成本,但预训练阶段需要学习压缩/解压的权重。
-
与现有生态的兼容:MLA 是 DeepSeek 特有的架构,HuggingFace、vLLM 等主流推理框架需要专门适配。FlashMLA 等内核优化也是 DeepSeek 团队自己写的。
-
注意力模式的灵活性:虽然 MLA 保留了多头结构,但压缩/解压的固定矩阵是否限制了某些注意力模式的学习?目前尚无定论。
-
超长上下文(>128K):MLA 在 128K 内表现优异,但 1M+ token 的极端长上下文下,压缩/解压的误差是否会累积?这还需要更多研究。
结语:重写 Transformer 的不是参数,是哲学
DeepSeek 对 Transformer 的改写,本质上是一场关于"记忆如何存储"的哲学革命。
传统 Transformer 说:记忆必须原封不动地存储。MQA/GQA 说:记忆可以共享,但会丢失细节。MLA 说:记忆可以压缩,只要在计算时精确还原。
这 57 倍的压缩不是 magic,是数学——低秩近似、矩阵吸收、解耦 RoPE。每一个技巧都是严谨的线性代数操作,组合起来却产生了质变。
Welch Labs 的视频用了一个精妙的比喻:
"就像是把高清电影压缩成了 MP4 格式存储,只有播放(计算)时才实时解码。"
但更深层的问题是:如果 LLM 的"记忆"可以压缩 57 倍而不失精度,人类大脑的压缩率是多少?我们记住的不是事件的每一个细节,而是压缩后的"语义向量"——在需要时,大脑也能实时"解压"出细节。
MLA 也许不只是让 Transformer 更快。它可能是让我们第一次看到了人工神经网络的"压缩记忆"——一种不同于参数权重的、外化的、可实时解压的信息存储方式。
DeepSeek 用 MLA 把 KV 缓存压缩了 57 倍。下一步,会不会有人把整层权重也压缩到潜在空间?会不会把模型的全部知识,都变成一组随时可以解压的"潜在向量"?
如果是那样,Transformer 就不只是被改写了——它会被重新定义。
参考信息
- 视频:How DeepSeek Rewrote the Transformer [MLA] by Welch Labs
http://www.youtube.com/watch?v=kYI-U1_I3mQ - 论文:
- DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model (arXiv:2405.04434)
- DeepSeek-V3: arXiv:2412.19437
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning (arXiv:2501.12948)
- 硬件分析:Hardware-Centric Analysis of DeepSeek's Multi-Head Latent Attention (Robin Geens, KU Leuven, 2025)
- 迁移方法:MHA2MLA: Towards Economical Inference (arXiv:2502.14837) — 让 Llama 等 MHA 模型快速适配 MLA,仅需 0.3%-0.6% 数据,KV 缓存减少 92.19%
- 视频作者备注:
- DeepSeek-V2 论文声称 KV 缓存减少 93.3%
- V3/R1 估计减少 56.9 倍(3,997,696/70,272)
- 吞吐量提升:V2 论文称略低于 6 倍,V3/R1 可能更大
- 注意力模式忽略了句首标记和偏置项矩阵
- 位置嵌入(RoPE)被简化处理,参见论文原文
#论文 #DeepSeek #MLA #Transformer #注意力机制 #KV缓存 #低秩压缩 #推理优化 #小凯
讨论回复
1 条回复推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。