Files
note_sync/大模型/deepseek/01-基础模型/04-DeepSeek-V3-2412.19437_abstract.md
T

17 KiB
Raw Blame History

DeepSeek-V3 技术报告(中文精读)

原文标题:DeepSeek-V3 Technical Report arXiv:2412.19437 | 发布:27 Dec 2024(最后修订 18 Feb 2025) 作者/机构:DeepSeek-AI(第一作者 Aixin Liu 等,全体作者署名 DeepSeek-AI);DeepSeek(深度求索) 原文 PDF:04-DeepSeek-V3-2412.19437.pdf

一、摘要(全文翻译)

我们提出 DeepSeek-V3,一个强大的混合专家(Mixture-of-Experts, MoE)语言模型,总参数量为 671B,每个 token 激活 37B 参数。为实现高效推理与高性价比训练,DeepSeek-V3 采用多头潜在注意力(Multi-head Latent Attention, MLA)与 DeepSeekMoE 架构,这两者在 DeepSeek-V2 中已得到充分验证。此外,DeepSeek-V3 开创了一种无辅助损失的负载均衡策略,并设置了多 token 预测(multi-token prediction)训练目标以获得更强的性能。我们在 14.8 万亿个多样且高质量的 token 上预训练 DeepSeek-V3,随后进行监督微调与强化学习阶段,以充分释放其能力。全面评测表明,DeepSeek-V3 优于其他开源模型,并达到与领先闭源模型相当的性能。尽管性能出色,DeepSeek-V3 的完整训练仅需 2.788M H800 GPU 小时。此外,其训练过程极其稳定。在整个训练过程中,我们没有遇到任何不可恢复的损失尖峰(loss spike),也没有执行任何回滚(rollback)。模型检查点可在 https://github.com/deepseek-ai/DeepSeek-V3 获取。

二、核心贡献

  1. 无辅助损失的负载均衡:靠辅助损失强制均衡会损害性能,V3 改用仅参与路由的专家偏置 b_i 并随负载动态调整。
  2. 多 token 预测(MTP):顺序预测额外 token 且保持完整因果链以密化训练信号,推理时可丢弃或用于投机解码。
  3. FP8 混合精度训练:首次在超大规模模型上验证 FP8 训练,相对损失误差低于 0.25%。
  4. DualPipe 与通信优化:攻克跨节点专家并行的计算通信比瓶颈,无需张量并行即可训练 671B 模型。
  5. 从 DeepSeek-R1 蒸馏推理能力:把长思维链模型的验证与反思模式注入标准 LLM。
  6. 极低训练成本:2.664M H800 GPU 小时完成 14.8T token 预训练,全流程 2.788M GPU 小时,约 5.576M 美元。

三、方法与技术要点

3.1 基础架构:MLA 与 DeepSeekMoE

DeepSeek-V3 仍在 Transformer 框架内,沿用 DeepSeek-V2 的 MLA + DeepSeekMoE 组合:MLA 负责高效推理,DeepSeekMoE 负责经济训练。

MLA 的核心是对键值(KV)做低秩联合压缩,以削减推理时的 KV 缓存:

\mathbf{c}_t^{KV} = W^{DKV}\mathbf{h}_t,\qquad [\mathbf{k}_{t,1}^C;\dots;\mathbf{k}_{t,n_h}^C]=\mathbf{k}_t^C = W^{UK}\mathbf{c}_t^{KV} \mathbf{k}_t^R = \operatorname{RoPE}(W^{KR}\mathbf{h}_t),\qquad \mathbf{k}_{t,i}=[\mathbf{k}_{t,i}^C;\mathbf{k}_t^R],\qquad \mathbf{v}_t^C = W^{UV}\mathbf{c}_t^{KV} \mathbf{o}_{t,i}=\sum_{j=1}^{t}\operatorname{Softmax}_j\!\left(\frac{\mathbf{q}_{t,i}^{T}\mathbf{k}_{j,i}}{\sqrt{d_h+d_h^{R}}}\right)\mathbf{v}_{j,i}^{C},\qquad \mathbf{u}_t=W^{O}[\mathbf{o}_{t,1};\dots;\mathbf{o}_{t,n_h}]

其中 $\mathbf{c}_t^{KV}\in\mathbb{R}^{d_c}$($d_c\ll d_h n_h$)为 KV 压缩潜在向量,W^{KR} 产生携带 RoPE 的解耦键。推理时只需缓存 \mathbf{c}_t^{KV} 与 $\mathbf{k}_t^R$,KV 缓存大幅缩小而性能与标准多头注意力相当;查询侧同样低秩压缩。

DeepSeekMoE 相比 GShard 用更细粒度专家并隔离出共享专家:

\mathbf{h}_t'=\mathbf{u}_t+\sum_{i=1}^{N_s}\operatorname{FFN}_i^{(s)}(\mathbf{u}_t)+\sum_{i=1}^{N_r}g_{i,t}\operatorname{FFN}_i^{(r)}(\mathbf{u}_t),\qquad s_{i,t}=\operatorname{Sigmoid}(\mathbf{u}_t^{T}\mathbf{e}_i)

与 V2 不同:V3 用 sigmoid 计算亲和度,并对选中的亲和度归一化得到门控值。

3.2 无辅助损失的负载均衡

负载不均会导致路由崩溃并削弱专家并行的效率,而辅助损失过大又损害性能。V3 把均衡信号从损失挪进路由:为每个专家引入偏置 $b_i$,用它参与 top-K 路由决策,

g'_{i,t}=\begin{cases}s_{i,t}, & s_{i,t}+b_i\in\operatorname{Topk}(\{s_{j,t}+b_j\},K_r)\\ 0, & \text{otherwise}\end{cases}

偏置只参与路由、不参与门控。训练中每步监控批内负载:过载减 $\gamma$、欠载加 $\gamma$(前 14.3T token 取 0.001);另用极小的序列级互补辅助损失($\mathcal{L}_{\mathrm{Bal}}=\alpha\sum_i f_iP_i$,$\alpha=0.0001$)防单序列内极端失衡,并用节点受限路由限制每 token 至多发往 M=4 个节点。均衡良好,故训练与推理均不丢弃 token。

3.3 多 token 预测(MTP)

与 Gloeckle 等人并行预测 D 个额外 token 不同,V3 顺序预测并保持完整因果链。第 k 个 MTP 模块含共享嵌入层、共享输出头、Transformer 块与投影矩阵 $M_k\in\mathbb{R}^{d\times 2d}$:

\mathbf{h}_i'^{k}=M_k[\operatorname{RMSNorm}(\mathbf{h}_i^{k-1});\operatorname{RMSNorm}(\operatorname{Emb}(t_{i+k}))],\qquad \mathbf{h}_{1:T-k}^{k}=\operatorname{TRM}_k(\mathbf{h}_{1:T-k}'^{k}),\qquad P_{i+k+1}^{k}=\operatorname{OutHead}(\mathbf{h}_i^{k})

训练目标是各深度交叉熵损失的加权平均 $\mathcal{L}{\text{MTP}}=\frac{\lambda}{D}\sum{k=1}^{D}\mathcal{L}_{\text{MTP}}^{k}$。推理时 MTP 模块可整体丢弃,也可复用为投机解码。

3.4 训练基础设施:DualPipe、通信与显存

集群为 2048 张 H800(节点内 NVLink,跨节点 IB),采用 16 路流水线并行(PP)、跨 8 节点的 64 路专家并行(EP)与 ZeRO-1 数据并行。

DualPipe 针对约 1:1 的计算通信比,把 chunk 拆为注意力、dispatch、MLP、combine 四部分,反向 chunk 的注意力与 MLP 再分为对输入与对权重两部分,并按比例调配通信与计算的 SM,从而同时隐藏 all-to-all 与 PP 通信,并双向喂入微批次。其气泡为 $(\frac{PP}{2}-1)(F&B+B-3W)$,参数占用 2×、激活为 $PP+1$,但大 EP 规模下两份参数并不显著增加显存。

跨节点 all-to-all 内核与 MoE 门控及网络拓扑协同设计:NVLink 带宽 160 GB/s 约为 IB(50 GB/s)的 3.2 倍,故限制每 token 至多发往 4 个节点;token 先经 IB 到目标节点的同号 GPU,再经 NVLink 转发到承载目标专家的 GPU。实践中只选 8 个路由专家,该成本最多可支撑 13 个(4 节点 × 3.2);仅 20 个 SM 即可跑满带宽。

显存优化:反向重算 RMSNorm 与 MLA 上投影,EMA 参数置于 CPU 异步更新,并把最浅层与最深层放在同一 PP rank 以物理共享嵌入层与输出头。

3.5 FP8 混合精度训练

低精度训练的难点在于激活、权重与梯度中的离群值。该框架让计算密集的 GEMM(Fprop/Dgrad/Wgrad)全部以 FP8 执行(输入 FP8、输出 BF16 或 FP32,理论上较 BF16 提速一倍),而嵌入、输出头、MoE 门控、归一化与注意力算子保留高精度。四项关键技术:

  • 细粒度量化:激活按 1\times128 tile、权重按 128\times128 block 分组缩放,避免以张量最大绝对值对齐 FP8 范围造成的离群值敏感。
  • 提升累加精度:H800 的 FP8 GEMM 累加仅约 14 位尾数,K=4096 时相对误差近 2%;做法是每累加 N_C=128 个元素就把部分和搬到 CUDA Core 的 FP32 寄存器做全精度累加。
  • 尾数优先于指数:以往 Fprop 用 E4M3、Dgrad/Wgrad 用 E5M2,V3 统一用 E4M3。
  • 在线量化:不做延迟量化,而是实时计算每个 tile/block 的最大绝对值再导出缩放因子。

配套措施:AdamW 动量用 BF16,Linear 激活以 FP8 缓存(注意力后的输入用定制 E5M6),MoE 上投影前的激活也量化为 FP8。相对损失误差始终低于 0.25%;附录 B.2 指出激活梯度若也块状量化会导致约 16B MoE 训练发散。

3.6 推理与部署

预填充最小单元为 4 节点 32 GPU,注意力用 TP4 + 序列并行(SP)配 DP8,MoE 用 EP32;为均衡负载引入冗余专家:复制高负载专家并每约 10 分钟按在线统计调整,预填充设 32 个(每卡除原有 8 个专家外再承载 1 个)。

解码把共享专家视为路由专家,故每 token 实际路由 9 个专家。最小单元为 40 节点 320 GPU,注意力用 TP4 + SP 配 DP80,MoE 用 EP320;每卡只承载一个专家,另有 64 张 GPU 承载冗余与共享专家;dispatch/combine 经 IB 点对点直传。

3.7 预训练:数据、超参与长上下文

语料提高了数学与编程样本比例、多语言覆盖超出中英,用文档打包但不做跨样本注意力掩码;沿用 DeepSeekCoder-V2 的中间填充(FIM)策略(PSM 结构,比例 0.1)。分词器为字节级 BPE,词表 128K,并随机拆分「标点+换行」组合 token 以缓解 token 边界偏差。

模型超参:61 层、隐藏维度 7168;MLA 中 $n_h=128$、$d_h=128$、$d_c=512$、$d_c'=1536$、$d_h^R=64$;除前 3 层外全部 FFN 换为 MoE,每层 1 个共享专家 + 256 个路由专家,专家中间维度 2048,每 token 激活 8 个、至多送往 4 个节点;MTP 深度 $D=1$。训练超参:AdamW($\beta_1=0.9$、$\beta_2=0.95$、weight decay 0.1),序列长度 4K,学习率在 2K 步内升至 $2.2\times10^{-4}$、10T token 后余弦衰减至 $2.2\times10^{-5}$,批次由 3072 增至 15360,MTP 权重 \lambda 前 10T token 取 0.3、其余取 0.1。

长上下文扩展:用 YaRN 分两阶段各 1000 步把窗口由 4K 扩到 32K 再到 128K,仅施加于解耦共享键 $\mathbf{k}_t^R$($s=40$、$\alpha=1$、$\beta=32$、$\sqrt{t}=0.1\ln s+1$),学习率 $7.3\times10^{-6}$。

3.8 后训练:SFT、RL 与 R1 蒸馏

SFT 数据集含 1.5M 条多领域实例。推理类数据(数学、代码竞赛、逻辑谜题)由内部 DeepSeek-R1 生成,但 R1 数据有过度思考、格式差、过长等问题,故先用 SFT + RL 管线训练领域专家模型,为每条实例生成 <问题, 原始回答> 与 <系统提示, 问题, R1 回答> 两类样本,系统提示引导产出带反思与验证机制的响应;RL 阶段让模型融合 R1 模式,数百步后以拒绝采样筛选数据。非推理数据由 DeepSeek-V2.5 生成并经人工校验。SFT 微调 2 个 epoch,学习率由 5\times10^{-6} 余弦降至 $1\times10^{-6}$。

RL 使用规则奖励模型(数学题按格式校验、LeetCode 跑测试用例)与模型奖励模型(从 SFT 检查点训练,偏好数据含通向奖励的思维链)。算法为 GRPO:省去 critic,用组内得分估计基线,对组内采样 \{o_i\}_{i=1}^{G} 上取裁剪后的重要性比率乘优势 $A_i=\frac{r_i-\operatorname{mean}({r})}{\operatorname{std}({r})}$,并减去相对参考模型的 KL 惩罚。

四、主要实验结果

4.1 基座模型(DeepSeek-V3-Base)

基准 / 任务 本模型(37B 激活 / 671B 总参数) DeepSeek-V2 / Qwen2.5 72B / LLaMA-3.1 405B 说明
MMLU (EM, 5-shot) 87.1 78.4 / 85.0 / 84.4 全面领先
MMLU-Pro (EM, 5-shot) 64.4 51.4 / 58.3 / 52.8 领先幅度大
BBH (EM, 3-shot) 87.5 78.8 / 79.8 / 82.9 领先
DROP (F1, 3-shot) 89.0 80.4 / 80.6 / 86.0 领先
MATH (EM, 4-shot) 61.6 43.4 / 54.4 / 49.0 数学优势明显
GSM8K (EM, 8-shot) 89.3 81.6 / 88.3 / 83.5 领先
CMath (EM, 3-shot) 90.7 78.7 / 84.5 / 77.3 中文数学领先
HumanEval (Pass@1) 65.2 43.3 / 53.0 / 54.9 代码领先
LiveCodeBench-Base (Pass@1) 19.4 11.6 / 12.9 / 15.5 领先
CRUXEval-O (EM, 2-shot) 69.8 49.8 / 59.9 / 59.9 领先
C-Eval (EM, 5-shot) 90.1 81.4 / 89.2 / 72.5 中文领先
CMMLU (EM, 5-shot) 88.8 84.0 / 89.5 / 73.7 略低于 Qwen2.5 72B
MMMLU-non-English (EM) 79.4 64.0 / 74.8 / 73.8 多语言领先

V3-Base 在绝大多数基准上最佳,数学与代码尤为突出:相较 Qwen2.5 72B 仅用约一半激活参数即占优(仅 CMMLU 例外),相较激活参数为其 11 倍的 LLaMA-3.1 405B 在多语言、代码、数学上明显更好。

4.2 对话模型(标准与开放式评测)

基准 / 任务 DeepSeek-V3 Claude-3.5-Sonnet-1022 / GPT-4o-0513 说明
MMLU (EM) 88.5 88.3 / 87.2 同级
MMLU-Pro (EM) 75.9 78.0 / 72.6 略逊于 Claude
GPQA-Diamond (Pass@1) 59.1 65.0 / 49.9 仅次于 Claude,明显优于其他对手
SimpleQA (Correct) 24.9 28.4 / 38.2 落后,作者归因于中文学识的资源分配
C-SimpleQA (Correct) 64.8 51.3 / 59.3 中文学识领先
DROP (3-shot F1) 91.6 88.3 / 83.7 该类最佳
IF-Eval (Prompt Strict) 86.1 86.5 / 84.3 与顶级模型同级
LongBench v2 (Acc.) 48.7 41.0 / 48.1 同级最佳
LiveCodeBench (Pass@1-CoT) 40.5 36.3 / 33.4 领先
Codeforces (Percentile) 51.6 20.3 / 23.6 大幅领先
SWE Verified (Resolved) 42.0 50.8 / 38.8 略低于 Claude-Sonnet-3.5
Aider-Polyglot (Acc.) 49.6 45.3 / 16.0 领先
AIME 2024 (Pass@1) 39.2 16.0 / 9.3 大幅领先
MATH-500 (EM) 90.2 78.3 / 74.6 大幅领先
CNMO 2024 (Pass@1) 43.2 13.1 / 10.8 大幅领先
Arena-Hard 85.5 85.2 / 80.4 首个超过 85% 的开源模型
AlpacaEval 2.0(长度控制胜率) 70.0 52.0 / 51.1 领先约 18 个百分点
RewardBench(平均) 87.0(投票 maj@6 为 89.6) 88.7 / 84.7 与最佳版本相当

V3 在数学(AIME 2024、MATH-500、CNMO 2024 均超第二名约 10 个百分点)与算法竞赛类代码上取得非长 CoT 模型的最优结果,开放式评测双双领先闭源模型;差距仍在英文事实性知识、SWE 任务及 GPQA、MMLU-Pro。

4.3 消融与效率

实验 设置 结果
MTP 消融 小规模 15.7B(1.33T token)、大规模 228.7B(540B token) 多数基准稳定提升,大规模 HumanEval 44.5 → 53.7、GSM8K 72.3 → 74.0
无辅助损失均衡消融 同上两规模,对比纯辅助损失基线 一致更优:大规模 HumanEval 40.2 → 46.3、GSM8K 70.7 → 74.5、MATH 37.2 → 39.6
批次级 vs 序列级均衡 1B / 3B MoE 验证损失 序列级 2.258/2.085;无辅助损失 2.253/2.080;批次级辅助损失 2.253/2.080
FP8 vs BF16 约 16B(1.33T token)、约 230B(0.9T token) 相对损失误差始终低于 0.25%
R1 蒸馏 基于 DeepSeek-V2.5 LiveCodeBench-CoT 31.1 → 37.4,MATH-500 74.6 → 83.2,但响应长度显著增加(769 → 1510)
MTP 投机解码 第二 token 接受率 各主题下 85%–90%,解码速度达 1.8 倍 TPS

成本:预训练 2664K H800 GPU 小时、上下文扩展 119K、后训练 5K,合计 2788K GPU 小时(约 5.576M 美元);每训练 1T token 仅需 180K GPU 小时,即在 2048 卡集群上约 3.7 天。

五、结论、局限与影响

  • 结论:DeepSeek-V3 是总参数 671B、激活 37B、在 14.8T token 上训练的 MoE 模型,以 MLA、无辅助损失负载均衡、MTP 与 FP8 训练压低成本,并从 DeepSeek-R1 蒸馏出推理能力;它已是当前最强开源模型,完整训练仅需 2.788M H800 GPU 小时。
  • 局限性(作者自述,集中于部署):推荐部署单元相对庞大,对小团队构成负担;端到端生成速度虽已超 DeepSeek-V2 两倍,仍有提升空间,作者认为这些局限有望随更先进硬件解决。上述成本仅含正式训练。
  • 影响:V3 把同性能训练成本压到百万美元量级并坚持开源,缩小了开源与闭源模型的差距;其 FP8 方案、DualPipe 调度与通信内核设计对后续训练系统与芯片设计有参考价值。未来将改进架构以逼近无限上下文、扩展数据与训练信号来源、拓展深度思考的推理深度,并建立更全面多维的评测方法。

六、关键术语对照表

English 中文
Mixture-of-Experts (MoE) 混合专家
Multi-head Latent Attention (MLA) 多头潜在注意力
Auxiliary-Loss-Free Load Balancing 无辅助损失负载均衡
Multi-Token Prediction (MTP) 多 token 预测
Expert Parallelism (EP) 专家并行
Pipeline Parallelism (PP) 流水线并行
Node-Limited Routing 节点受限路由
DualPipe 双向流水线调度算法(论文自研)
All-to-All Communication 全对全通信
FP8 Mixed Precision Training FP8 混合精度训练
Fine-Grained Quantization 细粒度量化
Group Relative Policy Optimization (GRPO) 组相对策略优化
Speculative Decoding 投机解码
Redundant Experts 冗余专家
Knowledge Distillation 知识蒸馏