本文档提供了 DeepSeek-V3 模型架构的全面技术解释。它涵盖了核心架构组件、它们的实现以及它们如何交互以创建一个高效的语言模型,该模型拥有 671B 的总参数,但每次处理 token 仅激活 37B。有关部署和运行 DeepSeek-V3 推理的信息,请参阅推理管道。
DeepSeek-V3 是一个混合专家(MoE)语言模型,它建立在 DeepSeek-V2 的高效架构之上,并进行了一些关键创新。该模型实现了基于 Transformer 的架构,其中包含专门的组件,可同时实现高性能和高效的计算利用。
来源: inference/model.py735-794 README.md47-52
DeepSeek-V3 提供以下配置
| 参数 | 值 |
|---|---|
| 总参数 | 671B |
| 激活参数 | 每个 token 37B |
| 上下文长度 | 128K |
| 层数 | 27 |
| 隐藏层维度 | 7168 |
| 注意力头数 | 16 |
| 路由专家数量 | 256 |
| 激活专家数量 | 每个 token 6 |
来源: inference/model.py19-84 README.md91-95
DeepSeek-V3 模型遵循基于 Transformer 的架构,并进行了多项关键修改。主要实现位于Transformer 类中,该类协调通过所有组件的向前传播。
模型通过以下步骤处理输入
Transformer 块包含 attention 和前馈网络,其中第一个层使用密集 MLP,后续层使用 MoE。
来源: inference/model.py735-794 inference/model.py693-732
DeepSeek-V3 中的每个 Transformer 块包含两个主要组件
该块使用残差连接和层归一化来提高训练稳定性和性能。一个关键的架构选择是使用 MoE 层来处理网络的大部分,这使得模型能够拥有大量参数,同时将计算成本控制在可接受的范围内。
来源: inference/model.py693-732 inference/model.py497-529 inference/model.py633-690
多头潜在注意力是一种高效的注意力机制,在 DeepSeek-V2 中得到了充分验证,并被 DeepSeek-V3 采用。MLA 架构使用一种新颖的注意力计算方法,该方法可减少内存和计算需求。
MLA 设计中的关键创新
DeepSeek-V3 中的 MLA 实现包含几个值得注意的组件
MLA 实现包含针对 FP8 和 BF16 推理的优化,并根据配置具有不同的注意力计算路径。
DeepSeek-V3 使用混合专家架构来实现高参数量(671B),同时将每个 token 的激活参数(37B)控制在可管理的范围内。MoE 层取代了大多数 Transformer 块中的标准前馈网络。
DeepSeek-V3 的 MoE 实现中的路由机制包含几项创新
MoE 路由过程
DeepSeek-V3 引入了多 token 预测 (MTP) 训练目标。这种方法允许模型一次预测多个 token,从而提高了训练效率,并可在推理过程中用于投机解码。
MTP 模块由一组独立的权重(14B 参数)组成,专门用于预测超出即时下一个 token 的未来 token。在推理过程中,这些预测可用于一次投机解码多个 token,从而显着加快生成速度。
来源: README.md65-67 README.md99-100
DeepSeek-V3 是第一个大规模验证 FP8 训练可行性和有效性的超大模型。模型架构包含针对使用 FP8 或 BF16 精度进行高效推理的优化。
模型包含用于高效 FP8 操作的专用内核,这些内核使用 Triton JIT 编译实现 GPU 加速。
来源: inference/model.py129-161 README.md73-74
DeepSeek-V3 内置了对各种并行策略的分布式计算支持
此并行支持允许 DeepSeek-V3 在多 GPU 或多节点上进行高效部署。
模型架构高度可配置,通过 ModelArgs dataclass 定义,该类定义了模型的所有超参数。
DeepSeek-V3 包含针对各种模型尺寸的配置预设,尽管 671B 版本是主要发布版本。
DeepSeek-V3 的架构代表了构建强大且计算高效的大型语言模型的先进方法。通过结合多头潜在注意力 (MLA)、混合专家 (MoE) 和多 token 预测 (MTP),DeepSeek-V3 在性能上可与领先的闭源模型相媲美,同时所需的激活参数却显著减少。
有关特定组件的更多详细信息