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

183 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DeepSeek-V3 技术报告(中文精读)
> **原文标题**:DeepSeek-V3 Technical Report
> **arXiv**:[2412.19437](https://arxiv.org/abs/2412.19437) | **发布**:27 Dec 2024(最后修订 18 Feb 2025)
> **作者/机构**:DeepSeek-AI(第一作者 Aixin Liu 等,全体作者署名 DeepSeek-AI);DeepSeek(深度求索)
> **原文 PDF**:[04-DeepSeek-V3-2412.19437.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 | 知识蒸馏 |