DeepSeek V3 详细解读

1.摘要

DeepSeek-V3 是一个 MoE(Mixture-of-Experts)语言模型,总参数量 671B每个 Token 激活的参数量为 37B。为实现高效训练与推理,DeepSeek-V3 延续了 DeepSeek-V2 的 MLA(Multi-head Latent Attention)及 DeepSeekMoE 架构。此外,DeepSeek-V3 首创了无需辅助损失的负载均衡策略,还使用了多 Token 预测训练目标以增强性能。 作者在 14.8T 高质量 Token 上对 DeepSeek-V3 进行预训练,随后通过监督微调与强化学习阶段充分挖掘其潜力。全面评估显示,DeepSeek-V3 超越了其他开源模型,性能与领先的闭源模型相当。尽管表现出色,DeepSeek-V3 的完整训练仅需 2.788M H800 GPU 小时,且训练过程异常稳定,整个过程没有遭遇不可恢复的 Loss Spike 或进行任何回滚操作 1.模型结构概览

 如下图 Figure 2 所示,DeepSeek-V3 的模型结构与 DeepSeek-V2 一致,依然是 MLA + DeepSeekMoE,总参数 671B,激活参数 37B。总共 61 层,Hidden 维度为 7168:

2.MLA

如下图公式 1-11 列出了 MLA 中的关键公式,我们在这里标注了相应的 Shape 信息,以便与上图中相对应:

如上图可知,对于每一个 Token,推理时在每一个 Transformer Layer 需要需要缓存的 Cache 为蓝色的两个方块,大小为 512+64=576。而标准 MHA 需要缓存的大小为 2 * Hidden 维度 ,即 2*7168=14336,也就是 DeepSeek V3 的 MLA 的 Cache 大小只有 MHA 的 1/25。

3.MOE

3.1 无需损失均衡负载策略

具体来说,作者采用了 DeepSeek AI 论文 [2408.15664] Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts [3] 中的负载均衡策略,具体来说,其通过动态更新每个专家的偏置(b)来维持专家的负载均衡,而不会引入额外的干扰梯度。如下图公式 16 和 Figure 1 所示:

 

3.2 补充的序列级辅助损失

尽管 DeepSeek-V3 主要依赖于无辅助损失的策略来实现负载平衡,但为了防止在任何单一序列中出现极端的不平衡,作者采用了一种补充的序列级均衡损失:

 

其中,α 为平衡因子超参数,T 表示序列中 Token 个数,Nr 表示专家个数,Topk 表示选择分数最大的 Kr 个专家,

 

表示一个序列中归一化后第 t 个 Token 在第 i 个专家的分数。1(⋅) 表示指示函数,其值为 1 表示某条件成立,为 0 表示不成立,比如第 t 个 Token 未在专家 i 的 Topk 中,则值为 0。

 

实际上,Pi 可以理解为每个专家在所有 Token 上的平均分数,fi 表示第 i 个专家在整个序列中的“被选中”频率,用来衡量它的负载相对于其他专家的分布情况。这种序列级均衡损失的目的是鼓励每个序列中的专家负载更加均衡避免负载集中在少数专家上,从而提高模型的效率和公平性。

3.3 节点约束路由

与 DeepSeek-V2 所采用的设备约束路由类似,DeepSeek-V3 同样使用了一种约束路由机制以控制训练过程中的通信开销。简而言之,作者确保每个 Token 最多被发送至 M 个节点,这些节点的选择依据是分布在各节点上的专家中,其亲和度得分最高的 Kr/M 项之和。在此约束下,MoE 训练框架几乎能够实现计算与通信的完全重叠

3.4 无token丢弃

得益于高效的负载均衡策略,DeepSeek-V3 在整个训练过程中保持了良好的负载平衡。因此,DeepSeek-V3 在训练期间未丢弃任何 Token。此外,作者还实施了特定的部署策略以确保推理过程中的负载均衡,故 DeepSeek-V3 在推理阶段同样不会丢弃 Token

4.MTP

4.1 MTP实现

受 Meta 的 [2404.19737] Better & Faster Large Language Models via Multi-token Prediction [4](如下图所示,我们之前也介绍过)的启发,作者在 DeepSeek V3 中使用了多 Token 预测(Multi Token Predicton,MTP)目标,该目标将预测范围扩展到每个位置上的多个未来 Token。有两个好处:

  • 增强了训练信号的密度,可能提升数据利用效率。

  • 或许能使模型预先规划其表征,以便更好地预测未来 Token。

如下图 Figure 3 展示了 MTP 的具体实现。与上图 Meta 论文中采用独立输出 Head 并行预测 D 个额外 Token 不同,作者采用顺序预测额外 Token 的方式,并在每一预测深度保持完整的因果链。

 

  • 其中的 Main Model 就是标准的 Next Token Prediction。

  • MTP Module 1 用于预测下下一个 Token,MTP Module 2 用于预测下下下一个 Token(与 LLM 推理中常见的多头投机采样思路一致)。

  • MTP Module 中的输入都包含两个部分,一个是上一个 Module 的 Output Head 的输入,以及上一个输入 Token,并且其中的 Embedding Layer 和 Output Head 都是共享自 Main Model,只有新增的 RMSNorm + Linear Projection 和一个 Transformer Block。由于这里有两个输入分别经过 RMSNorm 后 Concat 到一起,因此需要一个额外的 Linear Projection 进行降维,保持维度一致。

4.2MTP策略

MTP 策略主要用于提升 Main Model 的性能,因此在推理阶段,可以直接舍弃 MTP Module,Main Model 仍能独立且正常运行。此外,还可将这些 MTP Module 用于投机解码,以进一步降低生成延迟。

 

附录:

b33d6bd21b3dcd36a375c07304023823

 

image

 

posted on 2025-03-10 20:00  limingqi  阅读(1254)  评论(0)    收藏  举报

导航