8.6 技术创新:MLA 和 MoE

用更聪明的方式而不是更大的规模来实现更好的性能

8.6.1 传统注意力的浪费

为了理解 DeepSeek 为什么需要 MLA,先看看传统 Transformer 注意力机制的问题:

spinner

8.6.2 MLA:多头潜在注意力

DeepSeek 引入的 MLA(Multi-head Latent Attention)解决了这个问题。

核心思想

spinner

如何工作?

MLA的工作流程:

输入:序列 [token1, token2, ..., tokenN]

投影到潜在空间:
├─ 将高维的Q,K,V投影到低维潜在空间
├─ 假设原始维度是4096(embed_dim)
├─ 投影到256维的潜在空间
├─ 这一步压缩比 = 4096/256 = 16倍
└─ 节省93%+的KV缓存!(关键:只存储256维的缓存)

注意力计算(在潜在空间中进行):
├─ 在低维空间中计算标准注意力
├─ 复杂度仍然是O(N²),但N是序列长度(较小)
├─ 矩阵维度从4096×4096降到256×256
├─ 内存占用从16MB → 256KB(减少99%)
└─ 计算量相应减少64倍

解压层(投影回原始维度):
├─ 使用学习的映射矩阵将结果恢复
├─ 从256维映射回4096维
├─ 这个映射是在训练中优化的,丢失的信息很少
├─ 关键:解压层很轻量(只是矩阵乘法)
└─ 恢复的质量接近原始注意力

输出:与传统注意力相同的质量

推理优化的关键(KV缓存):
传统Transformer:
├─ 处理1000个token,需要存储1000×4096维的K和V
├─ 总占用内存 = 1000 × 4096 × 4bytes = 16MB(仅KV)
└─ 序列越长,内存爆炸

MLA方式:
├─ 处理1000个token,只需存储1000×256维的压缩K和V
├─ 总占用内存 = 1000 × 256 × 4bytes = 1MB(仅压缩KV)
└─ 节省93%的KV缓存!这正是长序列推理的瓶颈

数学直觉(简化版)

KV 缓存压缩的实际影响

8.6.3 MoE:混合专家

第二个创新:不是所有 token 都需要所有参数

spinner

具体工作方式:路由器如何工作

公司部门分工的比喻:

spinner

MoE的路由机制详解:

  1. 路由网络(Gating Network)的结构: ├─ 输入:token的嵌入表示(比如4096维) ├─ 简单的线性层:4096维 → 8个专家分数 ├─ 输出:8个softmax分数 [0.3, 0.4, 0.2, 0.05, ...] └─ 速度:非常快(只是一次矩阵乘法)

  2. Top-K选择: ├─ DeepSeek-V3使用K=2(每个token激活2个专家) ├─ 路由权重:假设分数是[0.4, 0.35, 0.15, 0.1, ...] ├─ 硬选择:选择最高的2个(0.4和0.35) │ └─ 专家A: 40%, 专家B: 35%, 其他: 0% │ └─ 软选择(也叫平衡选择): └─ 按照概率分配(基于分数) └─ 专家A: 40%, 专家B: 35%, 专家C: 15%, ...

  3. 负载均衡:防止所有token都选择同一个专家 ├─ 问题:如果路由器总是倾向于选择专家A │ 那么其他专家就会被浪费 │ ├─ 解决方案:添加辅助损失函数 │ ├─ 在训练时添加额外的损失: │ │ “确保每个专家被使用的次数相近” │ │ │ ├─ 如果有8个专家和1000个token │ │ └─ 理想情况:每个专家处理 1000/8 = 125个token │ │ └─ 如果某个专家只被选了10次,就增加损失 │ │ │ └─ 训练到收敛:负载均衡自动实现 │ └─ 效果:即使MoE参数很多,也能高效使用

MoE 在 DeepSeek-V3 中的实现

稀疏激活的力量

8.6.4 DeepSeek 如何结合 MLA 和 MoE

两大创新的协同

8.6.5 这为什么节省了这么多成本?

训练成本的分解

8.6.6 实际的性能影响

推理成本

8.6.7 本节小结

DeepSeek 的成本优势来自于两个关键创新:

  1. MLA(多头潜在注意力)

    • 压缩注意力的表示

    • 减少内存和计算

    • 保持性能

  2. MoE(混合专家)

    • 稀疏激活参数

    • 更多知识,更少计算

    • 高效的权衡

加上聪明的工程和数据策略,DeepSeek 实现了:

  • 相当的模型性能

  • 18 倍更低的训练成本

  • 100 倍更低的推理成本

这改变了 AI 产业的格局:不再需要巨额融资才能做出顶级模型。

8.6.8 思考题

  1. 如果 MoE 这么高效,为什么其他公司(OpenAI、Anthropic)不大规模使用?

  2. MoE 有什么缺点?是否所有问题都适合用 MoE?

  3. MLA 和 MoE 的组合还有改进空间吗?下一个创新可能是什么?

最后更新于