如果你回答“因为有更好的技术了呗”,恭喜你,出门右拐回家等通知吧。
为什么?
因为面试官真正想让你回答的是:MLA 压缩的是每份笔记的长度——每个 token 要存的 KV 数据变小了,但每个 token 还是要存一份。V4 的上下文窗口从 128K 扩容到了 1M,token 数翻了 8 倍,笔记再短,一百万份的总量仍然很大,意味着 GPU 显存仍然很吃紧。
于是 V4 换了新思路:不再计较单个 token 的 KV,直接从 token 的总份数上下手。

我翻了 DeepSeek V2 到 V4 的技术报告、vLLM 的推理优化博客,可以自信地、大方地、光明磊落地帮你搞清楚三件事:
- MLA 在 V2/V3 上做对了什么?
- 上下文窗口扩容到百万级,MLA 为什么顶不住了?
- V4 换了什么新思路?
哈喽大家好,我是二哥呀。今天用 3 分钟,给你讲清楚 DeepSeek 为什么要把多头潜在注意力机制 MLA 换掉。
系好安全带,我们粗粗粗出发了~
先说第一件事,MLA 做对了什么。
大模型每生成一个词元,都要回头看前面所有的输入。但它不是每次都重新读一遍原文,而是在第一次读的时候,给每个词元记一份笔记——这就是 KV Cache 里的 K 和 V。后面再回头看的时候,直接翻笔记就行。
问题是,传统的多头注意力 MHA(Multi-Head Attention)给每个词都记了一份笔记。模型有上百个注意力头,每个头都要单独记一份 K 和一份 V。上下文越长,笔记越多,显存就撑不下了。
MLA(Multi-head Latent Attention,多头隐式注意力)做了一个优化:把每个词的笔记压缩成了一份更薄的笔记。
怎么压缩的?
用一个投影矩阵,把高维的 K 和 V 映射到一个低维的 latent 向量里。你可以理解成:原来每个词要用一整页纸记笔记,MLA 发明了一种速记法,一行就够了。需要查阅的时候,再用另一个矩阵把这行速记展开还原。

笔记薄了,显存占用自然就小了。这就是 V2 和 V3 能在 128K 上下文上跑得又快又省钱的关键因素。
那聪明的你肯定想到了:既然 MLA 这么好使,V4 为什么要换掉?
因为上下文窗口从 128K 扩展到了 1M。
MLA 压缩的是每份笔记的长度或者叫厚度,但每个词还是要记一份。128K 的时候是 128K 份笔记,1M 就是 100 万份。翻了 8 倍。
笔记再薄或者再短,100 万份的总量还是太大了。一个百万 token 的请求,光 KV Cache 就能吃掉一整张顶配 GPU 卡的显存。意味着一张卡只能服务一个请求,没法同时服务其他请求了。

并发上不去,单个请求的分摊成本就很高。成本高,API 就贵。
那聪明的你肯定又要问了:V4 怎么解决这个问题的?
MLA 的思路是“把每份笔记压薄”——每个词的数据量小了,但词有多少份,笔记就有多少份。V4 的思路是“减少要记的份数”——不再给每个词单独记笔记,而是把相邻的好几个词合并在一起,记一份共享笔记。
打个比方。MLA 是给班上每个学生都发一张学霸笔记。学生越多,笔记越多。V4 的做法是不再按人头发了,按小组发——把几个学生编成一组,一组一张。学生数量没变,但笔记的份数大幅减少。
V4 用来实现这个思路的,是两个全新的注意力机制:CSA 和 HCA。一个负责精细地合并少量词,一个负责大刀阔斧地合并大量词。

最后简单总结下。
MLA 的贡献是把每份笔记压薄了,让 V2 和 V3 在 128K 上下文上又快又省。但到了百万上下文时代,瓶颈不再是每份笔记的厚度,而是笔记的份数。
这个知识点你学废了吗?想解锁更多 AI 硬核知识,点赞关注,我是二哥,咱们下期见!



