菜单

模型架构概述

相关源文件

本文档提供了 DeepSeek-V3 模型架构的技术概述。它描述了使 DeepSeek-V3 能够以高效的参数利用率实现最先进性能的核心组件、架构创新和实现细节。有关如何运行和部署模型的详细信息,请参阅“入门指南”,有关详细的评估指标,请参阅“基准测试与评估”。

介绍

DeepSeek-V3 是一款最先进的语言模型,采用混合专家(MoE)架构,总参数为 671B,但每个 token 激活的参数仅为 37B。这种架构方法在训练和推理过程中,可以在保持合理计算需求的同时,显著提高模型容量。

该模型建立在 DeepSeek-V2 中引入的创新技术之上,特别是多头潜在注意力(MLA)和 DeepSeekMoE 架构。DeepSeek-V3 进一步推进了这些技术,通过以下方式:

  1. 无辅助损失的 MoE 负载均衡策略
  2. 用于提高性能的多 token 预测(MTP)训练目标
  3. 支持 128K token 上下文长度
  4. 原生 FP8 训练和推理优化

来源:README.md45-54 README.md63-67

整体架构

DeepSeek-V3 遵循基于 Transformer 的架构,并具有优化性能和计算效率的专用组件。

高层架构图

模型架构包含:

  • 输入嵌入:一个支持分布式处理的 ParallelEmbedding
  • Transformer 块:一系列 Transformer 层,包括密集型和 MoE 型
  • 层归一化:在注意力(Attention)和前馈(Feed-Forward)组件之前使用 RMSNorm 层
  • 输出投影:将模型维度映射到词汇 logits

该架构同时采用了张量并行(Tensor Parallelism)和专家并行(Expert Parallelism)来进行分布式训练和推理,并为每个并行维度配备了专用组件。

来源:inference/model.py760-766 inference/model.py703-732

Transformer 实现

DeepSeek-V3 中的核心 Transformer 类整合了所有架构组件。

Transformer 类负责处理:

  • 初始 token 嵌入
  • 位置编码(旋转嵌入)
  • 用于自回归生成的序列掩码
  • 跨多个 GPU 的并行处理协调

来源:inference/model.py735-794

多头潜在注意力 (MLA)

多头潜在注意力(Multi-head Latent Attention)是 DeepSeek-V3 的一项关键创新,与传统的 MHA 相比,提供了更高的效率。

MLA 架构

MLA 的关键创新包括:

  1. 潜在空间投影:使用低秩表示来降低计算复杂度
  2. 双路径注意力:分别处理位置和非位置嵌入
  3. 优化内核实现:支持 FP8 和 BF16 精度

MLA 实现支持两种不同的注意力实现:

  • "naive":传统实现,具有独立的键(key)和值(value)缓存
  • "absorb":优化实现,将权重矩阵吸收到注意力计算中

来源:inference/model.py393-494

DeepSeekMoE 架构

DeepSeekMoE 架构是一种特殊的混合专家实现,它允许模型拥有大量参数,同时保持计算需求在合理范围内。

MoE 组件

DeepSeekMoE 实现的关键特性:

  1. 门控机制:将输入路由到最相关的专家
  2. 无辅助损失策略:最小化负载均衡造成的性能下降
  3. 共享专家:对所有 token,始终与路由的专家一起激活
  4. 专家实现:使用具有乘法路径的 SiLU 激活(类似于 SwiGLU)

DeepSeek-V3 使用以下 MoE 配置:

  • 256 个总专家(n_routed_experts)
  • 每个 token 激活 6 个专家(n_activated_experts)
  • 用于高效路由的专家组
  • 无辅助损失的专家负载均衡

来源:inference/model.py532-690 README.md63-64

模型配置与规模

DeepSeek-V3 有多种模型尺寸变体,尽管该仓库主要关注 671B 参数版本。模型配置通过 ModelArgs 类定义。

关键参数

参数描述
dim2048+模型隐藏维度
n_layers27+Transformer 层数
n_heads16+注意力头的数量
n_routed_experts256MoE 专家数量
n_activated_experts6每个 token 激活的专家数
max_seq_len131072支持的最大序列长度(128K)
q_lora_rank0查询投影的低秩
kv_lora_rank512键值(key-value)投影的低秩

模型架构通过以下方式设计以实现高效扩展:

  1. 模型并行:将专家和层分布到多个设备上
  2. FP8 精度:在保持数值稳定性的同时减少内存占用
  3. 优化内核:关键操作的自定义 CUDA 内核

来源:inference/model.py19-84 README.md88-95

长上下文处理

DeepSeek-V3 通过在位置嵌入和注意力机制方面的创新,支持 128K token 的上下文窗口。

旋转位置嵌入 (RoPE) 扩展

该模型实现了一个 RoPE 的扩展版本,具有以下特性:

  1. YaRN 缩放:使用类似于 YaRN(Another RoPE Extension)的技术来扩展上下文长度
  2. 双路径注意力:在注意力中分离位置信息和非位置信息
  3. 频率调整:根据上下文长度修改位置嵌入的频率谱

RoPE 实现包括:

  • 基频缩放(rope_theta
  • 长上下文的扩展因子(rope_factor
  • 校正因子(beta_fastbeta_slow
  • 注意力缩放调整(mscale

来源:inference/model.py294-372 inference/model.py375-390

结论

DeepSeek-V3 的架构代表了大型语言模型设计的一个重要进步,它结合了多项创新,以同时实现高性能和高效的参数利用。该模型使用多头潜在注意力、DeepSeekMoE 和扩展的旋转嵌入,使其能够处理 128K token 的上下文,同时在广泛的任务中保持强大的性能。

该架构在不同精度格式(BF16 和 FP8)之间具有灵活性,并设计用于跨多个 GPU 节点的高效分布式训练和推理。

来源:README.md45-54 README.md227-238