DeepSeek MLA+MoE+FP8三招破局:系统级优化六个狠招

算力困局里杀出的效率之王!

DeepSeek没用任何新技术,却把大模型成本打下来十倍,这到底怎么做到的?

DeepSeek-V3仅用2048块H800显卡、557.6万美元完成训练,而GPT-4o等模型训练成本约1亿美元。一个零基础的小团队,在芯片被卡脖子的情况下,怎么把成本压到对手的二十分之一?答案就藏在四个字里:系统创新。

大模型不是发明家,是系统工程师

先抛一个反常识的判断:DeepSeek没有发明任何新技术。

KV缓存不是它发明的,那是Transformer的标准配件。混合专家模型不是它发明的,这个 idea 1991年就有了。FP8低精度训练也不是它发明的,英伟达的H800本来就支持这个格式。

那DeepSeek做了什么?

它把每一件现成的工具,都改造成了刚好能解决自己问题的形状。

这就怪了!一个没发明任何新东西的团队,怎么就成了全球AI圈最值得关注的玩家?

答案在于一个所有人都知道、但大部分人假装没看见的事实:从2022年开始,美国陆续收紧了对中国出口先进AI芯片的限制。DeepSeek拿不到最好的GPU,也没法假设“算力不够就再买一万块”。

别人的起跑线是“怎么用更多芯片跑得更快”。DeepSeek的起跑线是“怎么用更少的芯片跑出一样的效果”。

这两句话的区别,就是全部故事的起点。

压缩KV缓存:不是少存点,是存得更聪明

大模型生成回答时,每读一个词都要记住之前所有词的信息。这个“记忆”叫KV缓存。上下文越长,缓存越大,占用的显存和传输时间就越多。

传统做法是让多个注意力头共享一份缓存,这叫分组查询注意力;DeepSeek走了另一条路。

2024年5月,DeepSeek在V2模型中提出了多头潜在注意力!它不共享缓存,而是把需要记住的信息压缩成一个更小的“潜向量”,等到计算注意力的时候再还原出每个头需要的内容。

打个比方:别人是让十个读者共看一本书,DeepSeek是把整本书压缩成一张思维导图,每个读者从导图里提取自己需要的那部分。

效果呢?在DeepSeek V2的实测中,KV缓存减少了93.3%,生成速度提升了5.76倍。V3把这个设计继承下来,KV缓存低至每个token 70 KB,只有Llama-3.1缓存的七分之一。

KV缓存不是DeepSeek发明的!但MLA这个压缩方案,是DeepSeek的。

混合专家:医院不会让所有医生看一个病人

混合专家模型的想法很简单:与其让整个模型处理每个词,不如只激活一部分参数。

想象一家大医院。一个感冒患者进来,不需要心内科、骨科、神经外科的医生全部到场。叫呼吸科医生就够了。

DeepSeek-V3总共有6710亿参数,但处理每个词只激活约370亿参数。剩下的参数在那儿待命,不干活就不耗电。

但DeepSeek没止步于此。它把专家分得更细、更专——每个专家只学一小块知识。同时单独划出一批“共享专家”,负责处理所有任务都需要的通用知识。

这样做的好处是:专家不会重复学习同样的东西,每个专家都真正成了某个领域的“专”家。

MoE不是DeepSeek发明的。但DeepSeekMoE这套把专家切细、把共享知识隔离的设计,是DeepSeek的。

FP8混合精度:该省的地方省,该保的地方保

训练大模型时,计算机用多少位来存一个数字,直接决定了显存占用和计算速度。

传统训练用16位甚至32位。FP8只用8位。数字越小,占空间越少、跑得越快。代价是精度下降——8位能表示的数字范围比16位小得多。

DeepSeek的做法是:大部分计算用FP8,敏感部位保留更高精度。

这就像做饭:炒大锅菜用猛火快炒省时间,炖汤的时候调小火慢慢来。什么地方省、什么地方不能省,心里有数。

DeepSeek-V3是第一个在开源大模型中成功应用FP8训练的。训练成本降低了约50%,精度损失控制在0.25%以内。

FP8不是DeepSeek发明的。但把FP8用在一个6710亿参数的模型上、还能稳住训练不崩,这是DeepSeek的本事。

DualPipe:一边炒菜一边备料

MoE有个麻烦:不同专家在不同GPU上,token需要跨GPU传输才能找到对应的专家。

如果等一个GPU算完了再传数据,GPU就得干等着——算一下、等一会、再算一下。

DeepSeek设计了一种叫DualPipe的双向流水线并行算法。GPU在算当前这块的同时,系统已经把下一块需要的数据传过来了。

像厨师炒菜:锅里炖着汤,旁边已经把下一道菜的食材切好备好了。传输时间还在,但不再让你干等着。

DualPipe实现了前向和后向计算与通信阶段的完全重叠,有效减少了流水线气泡——也就是GPU闲着没事干的时间。

这不是什么高深的理论。就是一个调度问题。但正是这种“把每一秒GPU时间都榨干”的思路,让DeepSeek用2048块H800在不到两个月内完成了训练。

V4的混合注意力:近的细看,远的扫一眼,需要时再翻

V4把压缩这件事又往前推了一步。

百万token的上下文——相当于一次性读完《三体》三部曲的总字数。就算KV缓存已经被压缩过,每个新token都要重新扫一遍整个历史,成本还是太高。

DeepSeek-V4的做法是三管齐下:

把连续的历史段落压缩成更紧凑的KV条目。用一个“闪电索引器”只挑出可能相关的段落去读,而不是扫全文。保留一个滑动窗口,最近的信息保持最精细的细节。

这像一个熟练的资料管理员:最近几天的文件放在桌面随手可拿,旧文件打包存进档案盒,需要的时候通过索引快速调取。

V4把百万上下文下每个token的算力消耗降到了V3.2的27%,KV缓存占用只有10%。

DeepSeek系统级优化的六个狠招

DeepSeek-V3为突破算力瓶颈而采用的六项关键创新:

  1. 多头潜在注意力 (MLA):一种创新的注意力机制,通过将KV缓存压缩到传统方案的七分之一,显著降低了内存消耗和提升了推理效率。
  2. 混合专家模型 (MoE):通过仅激活模型中的部分专家(如V3的671B总参数中仅激活37B)来处理任务,大幅降低了计算负载。
  3. FP8混合精度训练:使用8位浮点数(FP8)进行训练,使内存消耗减半,同时保持了训练稳定性(准确率损失小于0.25%)。
  4. 多平面网络拓扑:一种优化集群内网络结构的技术,旨在最大限度地减少网络开销,提升数据传输效率。
  5. 计算与通信重叠:通过DualPipe等算法,让计算和数据传输同时进行,隐藏通信延迟,从而提升资源利用率。
  6. 高带宽纵向扩展网络:通过引入高带宽的纵向扩展网络来提升集群内部的互联带宽,解决互连瓶颈!