总结
和原生的transformer架构的decoder部分相比,deepseek架构有几点不同
- layernorm替换为RMSnorm
- FFN替换为DeepSeekMoE
- Attention层使用的是MLA
与DeepSeek-V2相比,多了用于负载均衡的辅助无损策略,另外设置了多token预测训练目标函数
Abstract
DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 DeepSeekMoE 架构,这些架构在 DeepSeek-V2 中得到了彻底的验证。此外,DeepSeek-V3 开创了一种用于负载均衡的辅助无损策略,并设置了多token预测训练目标函数以获得更强的性能。
1 Introduction
在这项工作中,我们引入了 FP8 混合精度训练框架,并首次在超大规模模型上验证了其有效性。
在pre-training过程中,我们在 14.8T 优质多样的token上训练 DeepSeek-V3。接下来,我们对 DeepSeek-V3 进行两阶段的上下文长度扩展。在第一阶段,最大上下文长度扩展到 32K,在第二阶段,进一步扩展到 128K。在此之后,我们在 DeepSeek-V3 的基础模型上进行post-training,包括SFT和RL,以使其与人类偏好保持一致,并进一步释放其潜力。在post-training阶段,从deepseek-r1蒸馏出推理能力,同时维持模型能力和生成长度的平衡。
主要贡献:
- Architecture: Innovative Load Balancing Strategy and Training Objective.1)在 DeepSeek-V2 的高效架构之上,我们开创了一种无损耗的负载均衡辅助策略;2)们研究了多token预测 (MTP) 目标
- Pre-Training: Towards Ultimate Training Efficiency. 设计了FP8混合精准训练框架;克服跨节点教MoE训练中的通信瓶颈;经济成本仅为 2.664M H800 GPU 小时。
- Post-Training: Knowledge Distillation from DeepSeek-R1
- Summary of Core Evaluation Results. 在知识、代码、推理和数学等能力方面展现了很好的效果。
2 Architecture
Multi-head Latent Attention (MLA) + DeepSeekMoE + Multi-Token Prediction (MTP) training objective
2.1 Basic Architecture
和DeepSeek V2的架构基本上一致,也是采用的Transformer架构,用的MLA+DeepSeekMoE,与V2唯一不同的点在于,V3额外引入了auxiliary-loss-free负载均衡策略,以减轻因确保负载平衡而引起的性能下降。
2.1.1 Multi-Head Latent Attention
MLA 的核心是对注意力键和值进行低秩联合压缩,以减少推理过程中的键值 (KV) 缓存
其中
- 计算latent vector
,通过矩阵
降维压缩初始的ht的维度
-
对
进行升维到
,然后分解为多头
-
是k的位置编码向量,并concat到每个
的头上,也就是concat
- 同步骤2,
对
进行升维到
,然后分解为多头
在生成过程中只需要缓存 和
,这导致 KV cache显著减少,同时保持与标准多头注意力 (MHA) 相当的性能
对于注意力的query,也进行了低秩压缩,这可以减少训练过程中的激活内存:
最后,得到最终的attention输出
2.1.2 DeepSeekMoE with Auxiliary-Loss-Free Load Balancing
基础DeepSeekMoE架构
DeepSeekMoE 的基本架构。对于前馈网络(FFN),DeepSeek-V3 采用 DeepSeekMoE 架构。与 GShard 等传统 MoE 架构相比,DeepSeekMoE 使用更细粒度的专家,并将一些专家隔离为共享专家。
与 DeepSeek-V2 略有不同,DeepSeek-V3 使用 sigmoid 函数来计算亲和力分数,并在所有选定的亲和力分数之间应用normalization以生成gating value
Auxiliary-Loss-Free Load Balancing
传统的解决负载不均衡的方案依赖于辅助损失函数,然而过大的辅助损失会损害模型性能。为了在负载均衡和模型性能之间实现更好的权衡,我们开创了一种辅助无损负载均衡策略。具体来说,我们为每个专家引入一个偏差项,并将其添加到相应的亲和力分数中,以确定top-K路由
偏差项bi仅用于路由, 将与 FFN 输出相乘的gating value仍源自原始亲和力分数 。在训练期间,我们会持续监控每个训练步骤整个batch的专家负载。在每个步骤结束时,如果其相应的专家过载,我们将偏差项减少 y,如果其相应的专家负载不足,将其增加 y,其中y是一个称为 bias 更新速度的超参数。通过动态调整,DeepSeek-V3 在训练过程中保持了专家负载的平衡,并且比通过纯辅助损耗鼓励负载平衡的模型取得了更好的性能。
Complementary Sequence-Wise Auxiliary Loss
虽然 DeepSeek-V3 主要依赖于辅助无损策略进行负载平衡,但为了防止任何单个序列内出现极端不平衡,我们还采用了互补的序列平衡损失
Node-Limited Routing
No Token-Dropping
2.2. Multi-Token Prediction
设定了 DeepSeek-V3 的多token预测(MTP)目标函数,该目标函数将预测范围扩展到每个位置的多个未来token。一方面,MTP目标函数使训练信号致密化,并可能提高数据效率。另一方面,MTP 可能使模型能够预先规划其表示,以便更好地预测未来的tokens。与 Gloeckle 等人使用独立输出头并行预测额外tokens不同,我们按顺序预测附加tokens并在每个预测深度保留完整的因果链。
MTP Modules.
本文的 MTP 实现使用D个顺序模块来预测额外的D个tokens。第k个MTP模块由一个共享的embedding层、一个共享的输出头、一个transformer block以及一个投影矩阵
MTP Training Objective.
每个预测深度,我们计算一个交叉熵损失
左区间是2+k的原因是:输入第1个token,主模型预测的是第2个token,对于MTP1模块预测的是第3个,即2+k;T+1是在原始的序列长度上加了eos的token。
ti表示第i个位置的真实token,
MTP in Inference.
MTP策略主要用于改善主模型的性能,因此在推理阶段,可以直接丢弃MTP模块,主模型可以独立正常运行。当然也可以将这些 MTP 模块重新用于推测解码,以进一步改善生成延迟。
4 Pre-Training
4.1 Data Construction
与 DeepSeek-V2 相比,我们通过提高数学样本和编程样本的比例来优化预训练语料库,扩大多语言覆盖范围。14.8T 高质量和多样化的 token 组成
5 Post-Training
5.1 SFT
指令调整数据集,包括跨多个域的 1.5M 实例。
5.2 RL
我们在 RL 流程中采用基于规则的奖励模型(RM)和基于模型的RM。
Rule-Based RM.对于可以使用特定规则进行验证的问题,我们采用基于规则的奖励系统来确定反馈
Model-Based RM.对于具有自由形式基本事实答案的问题,我们依靠奖励模型来确定响应是否与预期的基本事实相匹配。