Skip to content

DeepSeek 架构解析: MLA 与极致 MoE 优化

摘要: DeepSeek 系列模型之所以能以极低的成本取得 SOTA 效果,核心在于其对 Transformer 架构的激进改造。本文将深入解析其两大杀手锏:Multi-Head Latent Attention (MLA)DeepSeekMoE

1. 痛点:显存墙与通信墙

在万卡集群上训练万亿参数模型,面临两个物理瓶颈:

  1. KV Cache 显存占用: 推理时长序列不仅吃显存,还限制了 Batch Size(吞吐量)。
  2. MoE 通信开销: 传统的 MoE (Mixture of Experts) 在专家路由时,跨节点通信量巨大 (All-to-All)。

DeepSeek 的架构正是为了解决这两个 HPC 问题而生。


2. Multi-Head Latent Attention (MLA)

传统的 Llama 模型使用 GQA (Grouped Query Attention) 来减少 KV Cache,但这还不够。DeepSeek 提出了 MLA,通过低秩压缩 (Low-Rank Compression) 进一步将 KV Cache 压缩到了极致。

2.1 核心原理

MLA 引入了 KV 压缩向量 (Compressed KV)。它不再直接存储巨大的 Key 和 Value 矩阵,而是存储一个低维的潜在向量 {KV}$。

2430940 c_{KV} = W_{DKV} \cdot h 2430940

在推理时,通过上投影矩阵 {UK}$ 和 {UV}$ 恢复出 Key 和 Value。 由于在推理阶段,我们可以将投影矩阵吸收到 Query 的计算中(矩阵结合律),**实际上我们只需要缓存极小的压缩向量 {KV}*。

2.2 收益

  • 显存节省: 相比标准 MHA,KV Cache 显存占用减少 93%
  • 吞吐提升: 更小的 KV Cache 意味着可以支持更大的 Batch Size,从而大幅提升推理吞吐量。

3. DeepSeekMoE: 细粒度专家与共享专家

传统的 MoE (如 Mixtral 8x7B) 通常采用 "Top-2 Routing",即从 8 个大专家中选 2 个。这存在知识混合不足路由崩塌的问题。

DeepSeek 引入了两个改进:

3.1 细粒度专家 (Fine-Grained Experts)

将一个“大专家”切分成许多“小专家”。

  • 传统: 8 个专家,每个 FF 维度 4096。
  • DeepSeek: 64 个专家,每个 FF 维度 512。
  • 路由: 选 Top-8 而不是 Top-2。

优势: 更灵活的专家组合,能更精确地拟合不同的知识领域。

3.2 共享专家 (Shared Experts)

无论输入是什么,总有几个固定的专家(Shared Experts)会被激活。

  • 目的: 捕捉通用知识(如语法、逻辑),让路由专家(Routed Experts)专注于垂直领域知识。
  • 效果: 类似于在 MoE 中嵌入了一个 Dense 模型,稳定了训练过程。

4. 负载均衡与无辅助 Loss

在 MoE 训练中,最怕所有 token 都涌向同一个专家(负载不均)。传统做法是加一个 Auxiliary Loss (辅助损失) 强行惩罚不均。

但这会干扰模型的主任务学习。DeepSeek 采用了 无辅助 Loss (Auxiliary-Loss-Free) 策略,仅通过调整路由器的 Bias 项来动态平衡负载。

2430940 g_i(x) = \text{Softmax}(u_i + b_i) 2430940

如果某个专家过载,就动态降低其 Bias $,减少被选中的概率。这种方法在保证 HPC 效率(各卡负载均衡)的同时,不损害模型性能。

5. 总结

DeepSeek 的成功是 HPC 工程师与算法工程师 紧密合作的胜利。

  • MLA 解决了推理显存瓶颈。
  • DeepSeekMoE 解决了训练收敛与知识表达的矛盾。
  • Bias-only Balancing 解决了集群负载均衡问题。

理解 DeepSeek 架构,对于设计下一代大模型基础设施至关重要。

AI-HPC Organization