目录
DeepSeek-V3是一款极具实力的混合专家(MoE)语言模型,其参数总量达6710亿,每个令牌能够激活370亿参数 。为达成高效推理以及兼具成本效益的训练过程,DeepSeek-V3采用了多头潜在注意力(MLA)和DeepSeekMoE架构,这些架构在DeepSeek-V2中已得到充分的验证与应用。不仅如此,DeepSeek-V3创新性地提出了一种用于负载均衡的辅助无损策略,同时设定了多标记预测训练目标,以此来进一步提升自身性能。
1.DeepSeek-V3原理介绍
DeepSeek-V3主要涉及到创新点包括混合专家(MoE)架构,多头潜在注意力(MLA)机制,多 Token 预测(MTP)训练目标,FP8混合精度训练框架,训练与部署效率的协同优化以及后训练阶段的创新知识蒸馏。
1.1 混合专家(MoE)架构
混合专家(Mixture of Experts,MoE)架构是一种在深度学习领域中用于提高模型性能和灵活性的技术。MoE模型的核心思想是将输入数据分配给不同的专家子模型,然后将所有子模型的输出进行合并,以生成最终结果。其结构如下:
MoE 架构包含多个不同的 “专家” 网络,每个专家网络都可以看作是一个具有特定功能或擅长处理特定类型信息的子模型。这些专家网络通常具有相似的结构,但参数是独立学习的,它们各自负责对输入数据的不同方面或模式进行建模。
为了确定在处理输入时应该使用哪些专家以及如何组合它们的输出,MoE 架构引入了门控网络(Gating Network)。门控网络的作用是根据输入数据来计算每个专家的权重或重要性,即对于给定的输入,门控网络会判断哪个专家更适合处理该输入,并为每个专家分配一个相应的权重。
而传统MoE模型依靠辅助损失函数平衡专家负载,过大的辅助损失可能损害性能。DeepSeek-V3首创动态偏置调整机制,通过实时监控专家负载,动态调整路由偏置项,无需辅助损失即可实现负载均衡,提升模型性能,降低通信开销。
每个MoE层有1个共享专家和256个路由专家,每个token激活8个专家。这种设计让共享专家捕捉通用知识,通过细粒度路由优化计算资源分配。限制每个token最多分配到4个计算节点,结合InfiniBand和NVLink的通信优化,实现计算与通信高度重叠,减少训练停滞。
混合专家架构通过将多个专家网络与门控网络相结合,为深度学习模型提供了一种更灵活、高效和强大的建模方式,在自然语言处理、计算机视觉等多个领域都有广泛的应用和良好的表现。
1.2 多头潜在注意力(MLA)机制
多头潜在注意力(Multi-Head Latent Attention,简称MLA)是一种改进的注意力机制,旨在提高自然语言处理(NLP)模型的推理效率和性能。其核心思想是通过低秩联合压缩键(Key)和值(Value),减少推理过程中所需的内存和计算资源,从而实现更高效的处理。
MLA运用低秩压缩技术,压缩将注意力键(Key)和值(Value)的维度,如从 7168 压缩至 512,显著减少推理时的键值(KV)缓存内存占用,降幅约 80%,同时保持与标准多头注意力(MHA)相当的性能。
MLA结构如下图所示:
多个头并行:MLA 机制包含多个 “头”(head),通常有h个,这些头在架构上是并行的。每个头都可以看作是一个独立的注意力机制,能够捕捉输入数据不同方面的依赖关系或特征。
查询、键、值计算:对于每个头,都需要对输入数据进行线性变换,以生成查询(Query,Q)、键(Key,K)和值(Value,V)三个矩阵。这些线性变换通常由可学习的权重矩阵来实现。
输出融合:每个头计算得到的结果会被拼接在一起,然后通过一个额外的线性层进行融合,得到最终的输出。
其大概原理如下:
MLA 机制通过多个头并行计算注意力,能够同时捕捉输入数据中不同层次和不同方面的依赖关系,从而提高模型对序列数据或具有空间结构数据的处理能力,在自然语言处理、计算机视觉等多个领域都取得了显著的效果。
1.3 多Token预测(MTP)训练目标
为了进一步提高模型的训练效率和性能,DeepSeek V3 引入了多 token 预测 (Multi-Token Prediction, MTP) 训练目标。其结构如下:
多Token预测任务设定:MTP训练目标旨在让模型能够预测输入序列中多个连续Token的内容。与传统的仅预测单个下一个Token不同,MTP考虑了更长期的上下文信息和多个Token之间的依赖关系,它假设一个句子或文本中的多个连续Token之间存在某种内在的关联性和可预测性,模型需要学习这种关系来进行准确预测。
利用上下文信息:模型在进行多 Token 预测时,会利用输入序列中当前位置之前和之后的上下文信息。通过对上下文的编码和理解,模型尝试推断出目标多 Token 的可能取值。例如在处理句子 “我 [今天] [去] [商店] 买东西” 时,模型要根据 “我” 以及后面 “买东西” 等上下文信息来预测出中间的 “今天”“去”“商店” 这几个Token。
训练模型捕捉语义和语法规律:通过大量的文本数据进行训练,模型逐渐学习到语言中的语义和语法规律,以及不同 Token 组合出现的概率分布等。例如,模型会学习到 “在” 后面接表示时间或地点的 Token 的概率较高等规律,从而提高多 Token 预测的准确性。
多Token预测训练目标有助于模型更好地理解语言的长序列依赖关系和复杂的语义结构,提高模型在自然语言处理任务中的性能,如文本生成、机器翻译等。
1.4 FP8混合精度训练框架
FP8 混合精度训练框架是在深度学习训练中,将FP8数据类型与其他精度(如 FP16、FP32)结合使用的训练框架。NVIDIA 的 Transformer Engine是较早兼容FP8的框架,微软也推出了专为大型语言模型训练量身定制的高效 FP8 混合精度框架。
DeepSeek-V3 是首个在 671B 参数规模上成功应用 FP8 混合精度训练的模型。通过分块量化和块级量化,结合 FP8 计算与 FP32 高精度累加,显著降低 GPU 内存占用约 40% 和计算开销,同时保持数值稳定性。针对不同算子如通用矩阵乘(GEMM)、注意力模块定制量化格式如 E4M3,并在关键模块如嵌入层、归一化层保留BF16或FP32精度,平衡效率与精度。
其结构如下图所示:
在训练过程中,框架会根据不同的计算操作和数据特点,灵活选择使用 FP8、FP16 或 FP32 等精度。例如,对于一些对精度要求不高但计算量较大的操作,如矩阵乘法等,可以使用 FP8 进行计算,以提高计算速度和减少内存占用;而对于一些关键的参数更新、梯度计算等操作,则可能使用 FP16 或 FP32 来保证数值的稳定性和准确性。
1.5 训练与部署效率的协同优化
DeepSeek V3设计了DualPipe算法,用于高效的流水线并行。DualPipe不仅可以减少流水线的气泡,还可以重叠计算和通信过程,从而解决跨节点专家并行带来的通信开销问题。通过将计算与通信阶段重叠,减少流水线气泡,提升训练吞吐量。结合 16 路流水线并行、64 路专家并行和 ZeRO-1 数据并行,实现大规模集群的高效协同。
同时采用YaRN方法分两阶段扩展上下文窗口,从4K至128K,结合旋转位置编码(RoPE)的改进,使模型在长文本任务中保持高性能。
1.6 后训练阶段的创新知识蒸馏
从DeepSeek-R1系列模型中提取思维链(CoT)的推理能力,通过监督微调(SFT)和强化学习(RL)整合到 DeepSeek-V3 中。该方法结合规则与模型驱动的奖励机制,显著提升模型在数学、代码等复杂任务中的表现。
2.DeepSeek-V3性能分析
相较于 DeepSeek-V2,DeepSeek-V3 在预训练语料库方面做出了优化。一方面,提高了数学和编程样本在其中所占的比例;另一方面,将多语言覆盖范围进一步拓展,不再局限于英语和中文。不仅如此,新版本还对数据处理流程进行了改良,旨在最大程度减少冗余,同时确保语料库的多样性得以维持。DeepSeek-V3 的训练语料经过 tokenizer 处理后,包含了 14.8 万亿个高质量且丰富多样的 token。
超参数设定
-
Transformer 相关参数:在模型超参数设置上,将 Transformer 的层数确定为 61,隐藏层维度设定为 7168。所有可学习参数均按照标准差为 0.006 的方式进行随机初始化。在多头潜在注意力(MLA)机制里,注意力头的数量被设置为 128,并且每个头的维度为 128。
-
MoE 层参数:除了前三层之外,其余的前馈神经网络(FFN)均被 MoE 层所替代。每个 MoE 层由 1 个共享专家以及 256 个路由专家构成,其中每个专家的中间隐藏维度是 2048。在路由专家中,每个 token 会激活 8 个专家,同时保证每个 token 最多被发送至 4 个节点。
-
其他特殊层参数:和 DeepSeek-V2 相似,DeepSeek-V3 在压缩潜在向量之后,使用了额外的 RMNSNorm 层,并且在宽度瓶颈处乘以额外的缩放因子。在这样的配置下,DeepSeek-V3 的参数总量达到 6710 亿,其中每个 token 能够激活 370 亿参数。
长上下文扩展
DeepSeek-V3 启用长上下文功能的方法与 DeepSeek-V2 类似。在完成预训练阶段后,运用 YaRN 进行上下文扩展,并开展两个额外的训练阶段,每个阶段包含 1000 个训练步。通过这两个阶段,逐步将上下文窗口从 4K 扩展至 32K,进而再扩展到 128K。
经过这种两阶段的扩展训练,DeepSeek-V3 能够处理长度达 128K 的输入,并且依然保持良好的性能表现。
性能
对比:
当o1、Claude、Gemini和Llama 3等模型还在为数亿美元的训练成本苦恼时,DeepSeek-V3用557.6万美元的预算,在2048个H800 GPU集群上仅花费3.7天/万亿tokens的训练时间,就达到了足以与它们比肩的性能。这个数字意味着每万亿tokens仅需180K个H800 GPU小时,总计278万 GPU小时的训练成本。而Llama 3.1的训练使用了16,384块Nvidia H100 GPU,总计2100多万GPU小时,翻了十倍。通过671B的总参数量,在每个token激活37B参数的精准控制下,DeepSeek-V3用14.8万亿高质量多样化token,构建出了一个能够超越所有开源模型,直逼GPT-4和Claude-3.5的AI巨人。
3.模型下载
原文链接: https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf
GitHub:https://github.com/deepseek-ai/DeepSeek-V3.git