重命名: deepseek论文md加_abstract后缀, 消除与pdf同名冲突(修复SilverBullet 404)

This commit is contained in:
ylhan
2026-09-20 17:52:13 +08:00
parent 14c280ffee
commit f5b825bd4a
34 changed files with 66 additions and 66 deletions
@@ -0,0 +1,119 @@
# DeepSeek-V2:一个强劲、经济且高效的混合专家语言模型
> **原文标题**:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
> **arXiv**:[2405.04434](https://arxiv.org/abs/2405.04434) | **发布**:2024-05-07(最后修订 2024-06-19)
> **作者/机构**:DeepSeek-AI,Aixin Liu、Bei Feng、Bin Wang 等(DeepSeek(深度求索))
> **原文 PDF**:[03-DeepSeek-V2-2405.04434.pdf](./03-DeepSeek-V2-2405.04434.pdf)
## 一、摘要(全文翻译)
我们提出 DeepSeek-V2,一个强劲的混合专家(Mixture-of-Experts, MoE)语言模型,其特点是训练经济、推理高效。它包含 236B 总参数,其中每个 token 激活 21B 参数,并支持 128K token 的上下文长度。DeepSeek-V2 采用了包括多头潜在注意力(Multi-head Latent Attention, MLA)与 DeepSeekMoE 在内的创新架构。MLA 通过将键值(Key-Value, KV)缓存显著压缩为一个潜在向量来保证高效推理,而 DeepSeekMoE 则通过稀疏计算使得以经济成本训练强劲模型成为可能。与 DeepSeek 67B 相比,DeepSeek-V2 取得了显著更强的性能,同时节省了 42.5% 的训练成本,将 KV 缓存减少了 93.3%,并把最大生成吞吐提升到 5.76 倍。我们在一个由 8.1T token 组成的高质量、多来源语料上预训练 DeepSeek-V2,并进一步执行监督微调(Supervised Fine-Tuning, SFT)与强化学习(Reinforcement Learning, RL)以充分释放其潜力。评估结果显示,即使仅有 21B 激活参数,DeepSeek-V2 及其对话版本仍然在开源模型中达到顶尖性能。模型 checkpoint 可在 https://github.com/deepseek-ai/DeepSeek-V2 获取。
## 二、核心贡献
1. **多头潜在注意力(MLA)**:针对多头注意力(MHA)推理时 KV 缓存过大、而 MQA/GQA 又牺牲性能的两难,提出用低秩联合压缩把键和值压成一个潜在向量,KV 缓存降至 $(d_c+d_h^R)l \approx \frac{9}{2}d_h l$,仅相当于 2.25 组的 GQA,但性能反而强于 MHA。
2. **解耦旋转位置编码(Decoupled RoPE)**:解决 RoPE 与低秩 KV 压缩不兼容(上投影矩阵无法被吸收进 $W^Q$,导致推理时须重算全部前缀 key)的矛盾,用额外的多头查询与共享 key 单独承载位置信息。
3. **DeepSeekMoE 稀疏架构**:沿用细粒度专家切分与共享专家隔离,实现 236B 总参数、仅 21B 激活;并配套设备受限路由、三种负载均衡损失与 token 丢弃,控制专家并行的通信与负载。
4. **训练经济性**:在 8.1T token 上预训练,每训练 1T token 仅需 172.8K GPU 小时,相比稠密的 DeepSeek 67B(300.6K GPU 小时)节省 42.5% 训练成本。
5. **推理高效性**:KV 缓存减少 93.3%,单节点 8×H800 上生成吞吐超过 50K tokens/s,为 DeepSeek 67B 最大生成吞吐的 5.76 倍,prompt 输入吞吐超过 100K tokens/s。
6. **性能与开源**:21B 激活参数即成为最强开源 MoE 语言模型;同时开源 15.7B 总参数、2.4B 激活的 DeepSeek-V2-Lite。
## 三、方法与技术要点
### 3.1 背景:为什么 KV 缓存是推理瓶颈
标准 MHA 先用 $W^Q,W^K,W^V\in\mathbb{R}^{d_h n_h\times d}$ 生成 $\mathbf{q}_t,\mathbf{k}_t,\mathbf{v}_t$,再切成 $n_h$ 个头做注意力。推理时所有 key 和 value 都必须缓存,因此 MHA 每个 token 需要缓存 $2n_h d_h l$ 个元素($l$ 为层数)。这一沉重缓存在部署中限制了最大 batch size 与序列长度——这正是 MQA($2d_h l$)和 GQA($2n_g d_h l$)想要缓解的问题,但它们以性能下降为代价(附录 D.1:7B 稠密模型 MMLU 上 MHA 45.2 明显优于 GQA 41.2 与 MQA 37.9)。
### 3.2 低秩键值联合压缩
MLA 的核心是把 key 与 value 联合压缩到低维潜在向量:先下投影 $\mathbf{c}_t^{KV}=W^{DKV}\mathbf{h}_t$($\mathbf{c}_t^{KV}\in\mathbb{R}^{d_c}$,$d_c\ll d_h n_h$),再由上投影还原 $\mathbf{k}_t^{C}=W^{UK}\mathbf{c}_t^{KV}$、$\mathbf{v}_t^{C}=W^{UV}\mathbf{c}_t^{KV}$。推理时只需缓存 $\mathbf{c}_t^{KV}$,KV 缓存降为 $d_c l$ 个元素;而且 $W^{UK}$ 可以被吸收进 $W^Q$、$W^{UV}$ 可以被吸收进 $W^O$,因此甚至不必显式计算 key 与 value。此外,查询也被低秩压缩($\mathbf{c}_t^{Q}=W^{DQ}\mathbf{h}_t$,$\mathbf{q}_t^{C}=W^{UQ}\mathbf{c}_t^{Q}$,$d_c'=1536$),虽然这不能减少 KV 缓存,但能降低训练时的激活显存。
### 3.3 解耦旋转位置编码
RoPE 对 key 和 query 都是位置敏感的。若直接对 $\mathbf{k}_t^{C}$ 施加 RoPE,$W^{UK}$ 就会与位置相关的 RoPE 矩阵耦合,而矩阵乘法不满足交换律,$W^{UK}$ 便无法再被吸收进 $W^Q$,推理时必须为所有前缀 token 重算 key,严重拖慢推理——这就是"RoPE 与低秩 KV 压缩不兼容"的实质。解决方案是让额外的多头查询 $\mathbf{q}_{t,i}^{R}\in\mathbb{R}^{d_h^{R}}$ 与共享 key $\mathbf{k}_t^{R}=\operatorname{RoPE}(W^{KR}\mathbf{h}_t)$ 单独承载 RoPE,再与压缩分支拼接后计算注意力。代价是解耦 key 也须缓存,故总 KV 缓存为 $(d_c+d_h^{R})l$。论文取 $d_c=4d_h$、$d_h^{R}=\frac{d_h}{2}$,于是得到 $\frac{9}{2}d_h l$,恰等于只有 2.25 组的 GQA,却强于 MHA。
### 3.4 设备受限路由、负载均衡与 Token 丢弃
对 FFN 部分,DeepSeekMoE 把专家切得更细以获得更高专家专业化,并隔离出一批共享专家以缓解路由专家间的知识冗余:$\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)$,其中门控值 $g_{i,t}$ 只在亲和度 $s_{i,t}=\operatorname{Softmax}_i(\mathbf{u}_t^{T}\mathbf{e}_i)$ 的 top-$K_r$ 上非零。由于专家切分很细、激活专家数多,专家并行下的通信代价很高,因此引入**设备受限路由**:先选出亲和度分数最高的 $M$ 台设备,再只在这 $M$ 台设备上的专家里做 top-K 选择;实验发现 $M\geqslant 3$ 时性能已与无限制 top-K 路由大致对齐。为抑制路由坍缩并平衡计算与通信,训练中叠加三种辅助损失:专家级 $\mathcal{L}_{\mathrm{ExpBal}}=\alpha_1\sum_{i=1}^{N_r}f_iP_i$、设备级 $\mathcal{L}_{\mathrm{DevBal}}=\alpha_2\sum_{i=1}^{D}f_i'P_i'$、通信级 $\mathcal{L}_{\mathrm{CommBal}}=\alpha_3\sum_{i=1}^{D}f_i''P_i''$($f$ 为被选中/被发送的比例,$P$ 为平均亲和度)。设备受限路由保证每台设备最多发送 $MT$ 个隐状态,通信均衡损失则鼓励每台设备接收约 $MT$ 个,从而均衡设备间信息交换。最后,由于均衡损失无法保证严格均衡,训练时采用**设备级 token 丢弃**:以容量因子 1.0 为预算,丢弃各设备上亲和度最低的 token,但保证约 10% 训练序列的 token 永不被丢弃,从而在训练与推理间保持一致。
### 3.5 预训练设置与长上下文扩展
模型为 60 层、隐维度 5120,参数按标准差 0.006 随机初始化;MLA 中 $n_h=128$、$d_h=128$、$d_c=512$、$d_c'=1536$、$d_h^{R}=64$。除第一层外所有 FFN 替换为 MoE 层,每层 2 个共享专家 + 160 个路由专家,专家中间维度 1536,每 token 激活 6 个路由专家。由于低秩压缩与细粒度专家切分会改变层的输出尺度,论文在压缩潜在向量后加 RMS Norm,并在"宽度瓶颈"处(压缩潜在向量与专家中间隐状态)乘额外缩放因子以保证训练稳定。训练用 AdamW($\beta_1=0.9$、$\beta_2=0.95$、weight decay 0.1),学习率按 warmup-and-step-decay 调度:前 2K 步线性升到 $2.4\times10^{-4}$,训练约 60% 和 90% token 时各乘 0.316;梯度裁剪范数为 1.0;batch size 在首个 225B token 内从 2304 渐增至 9216 后保持不变;最大序列长度 4K,共训练 8.1T token。路由方面 $D=8$(每层专家均摊到 8 台设备)、$M=3$,三个均衡因子取 $\alpha_1=0.003$、$\alpha_2=0.05$、$\alpha_3=0.02$。基础设施基于内部 HAI-LLM 框架,采用 16 路 zero-bubble 流水线并行、8 路专家并行与 ZeRO-1 数据并行;因激活参数少且部分算子重算以省激活显存,无需张量并行,通信开销更低;共享专家计算与 all-to-all 通信重叠,并为通信、路由与跨专家融合线性计算定制了 CUDA kernel,MLA 基于改进版 FlashAttention-2 优化;实验在 NVIDIA H800 集群上完成。预训练后使用 YaRN 把上下文从 4K 扩到 128K,且只作用于承载 RoPE 的解耦共享 key $\mathbf{k}_t^{R}$;参数取 $s=40$、$\alpha=1$、$\beta=32$、目标最大长度 160K,并把长度缩放因子调整为 $\sqrt{t}=0.0707\ln s+1$ 以调制注意力熵、最小化困惑度;额外只以 32K 长度、576 条序列的 batch 训练 1000 步,却能在 128K 上下文上保持稳健(NIAH 测试在直至 128K 的窗口长度上表现良好)。
### 3.6 数据与对齐
数据构建沿用 DeepSeek 67B 的处理阶段,但扩大数据量并提升质量:优化清洗流程找回被误删数据、纳入更多中文数据、改进质量过滤算法,并过滤有争议内容以缓解区域文化带来的数据偏差;分词器与 DeepSeek 67B 相同(Byte-level BPE,词表 100K)。最终语料 8.1T token,其中中文 token 比英文多约 12%。对齐阶段先用 1.5M 条指令数据(1.2M 有用性 + 0.3M 安全性)做 2 个 epoch 的 SFT,学习率 $5\times10^{-6}$;随后用 GRPO 做强化学习,它省去通常与策略模型同规模的 critic 模型,改由组内得分估计基线:对每个问题采样一组输出 $\{o_1,\dots,o_G\}$,目标为裁剪后的重要性比率乘优势 $A_i=\frac{r_i-\mathrm{mean}(\{r_1,\dots,r_G\})}{\mathrm{std}(\{r_1,\dots,r_G\})}$,并加 KL 惩罚项 $\beta\mathbb{D}_{KL}(\pi_\theta||\pi_{ref})$。RL 分两阶段:先做推理对齐(用 $\mathrm{RM}_{reasoning}$ 反馈优化代码与数学能力),再做人类偏好对齐($r_i=c_1\mathrm{RM}_{helpful}+c_2\mathrm{RM}_{safety}+c_3\mathrm{RM}_{rule}$)。工程上提出训练/推理使用不同并行策略的混合引擎、以 vLLM 大 batch 作推理后端,并设计 CPU offload 与回载调度,在速度与显存间取得近最优平衡。
## 四、主要实验结果
**基座模型开源对比(Table 2,同一内部评测框架)**
| 基准 / 任务 | 本模型(DeepSeek-V2,21B 激活) | 对比对象 | 说明 |
|---|---|---|---|
| MMLU (Acc., 5-shot) | 78.5 | LLaMA3 70B 78.9;Mixtral 8x22B 77.6;Qwen1.5 72B 77.2;DeepSeek 67B 71.3 | 差距 0.3 内视为同级 |
| Pile-test (BPB) | 0.606 | LLaMA3 70B 0.602;Mixtral 0.623;Qwen1.5 0.637;DeepSeek 67B 0.642 | 仅略逊于 LLaMA3 |
| BBH (EM, 3-shot) | 78.9 | LLaMA3 81.0;Mixtral 78.9;DeepSeek 67B 68.7 | 与 Mixtral 持平 |
| DROP (F1, 3-shot) | 80.1 | LLaMA3 82.5;Mixtral 80.4 | |
| TriviaQA (EM) / NaturalQuestions (EM) | 79.9 / 38.7 | Mixtral 82.1 / 39.6;LLaMA3 81.6 / 40.2 | 与英文常识知识强相关的短板 |
| AGIEval (Acc., 0-shot) | 51.2 | Qwen1.5 64.4;LLaMA3 49.8;Mixtral 43.4 | 明显落后 Qwen1.5 |
| HumanEval (Pass@1) / MBPP | 48.8 / 66.6 | Mixtral 53.1 / 64.2;LLaMA3 48.2 / 68.6 | 代码与 Mixtral 相当 |
| CRUXEval-I / CRUXEval-O (Acc.) | 52.8 / 49.8 | Mixtral 52.4 / 52.8;LLaMA3 49.4 / 54.3 | |
| GSM8K (EM) / MATH (EM) | 79.2 / 43.6 | LLaMA3 83.0 / 42.2;Mixtral 80.3 / 42.5 | MATH 上为对比中最高 |
| CMath (EM, 3-shot) | 78.7 | Qwen1.5 77.8;LLaMA3 73.9;Mixtral 72.3 | 中文数学领先 |
| C-Eval (Acc.) / CMMLU (Acc.) | 81.7 / 84.0 | Qwen1.5 83.7 / 84.3;LLaMA3 67.5 / 69.3 | Qwen1.5 在中文多学科选择题上更好 |
| CMRC (EM) / C3 (Acc.) / CHID (Acc.) / CCPM (Acc.) | 77.5 / 77.4 / 92.7 / 93.1 | Qwen1.5 66.6 / 78.2 / — / 88.1;DeepSeek 67B 73.4 / 75.3 / 92.1 / 88.5 | 中文全面领先 |
**对话模型与开放式生成(Table 3–5)**
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| MT-Bench | Chat (RL) 8.97 | LLaMA3 70B Inst. 8.95;Qwen1.5 72B Chat 8.61;Mixtral 8x22B Inst. 8.66 | Chat (SFT) 为 8.62 |
| AlpacaEval 2.0(长度控制胜率) | Chat (RL) 38.9 | Qwen1.5 36.6;LLaMA3 34.4;Mixtral 30.9 | Chat (SFT) 为 30.0 |
| AlignBench(总分,GPT-4-0613 打分) | Chat (RL) 7.91 / Chat (SFT) 7.74 | ERNIEBot-4.0 7.89;GPT-4-0613 7.53;GPT-4-1106-Preview 8.01 | 中文超越全部开源模型与多数闭源模型 |
| MMLU / IFEval(chat) | SFT 78.4 / 64.1;RL 77.8 / 63.8 | LLaMA3 70B Inst. 80.3 / 79.7 | RL 反而略降,且指令跟随明显落后 |
| GSM8K / MATH / HumanEval | RL 92.2 / 53.9 / 81.1 | LLaMA3 93.2 / 48.5 / 76.2;Mixtral 87.9 / 49.8 / 75.0 | RL 相比 SFT(90.8 / 52.7 / 76.8)进一步提升 |
| LiveCodeBench (Pass@1) | RL 32.5 | LLaMA3 30.5;Mixtral 25.0 | SFT 为 28.7 |
| SC-Math6(中文数学,综合分) | RL 83.35 | GPT-4-1106-Preview 90.71;ERNIEBot 4.0 85.60;Qwen-110B-Chat 83.25 | 优于所有中文 LLM,仍低于 GPT-4 |
**效率与消融**
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| 训练成本(每 1T token) | 172.8K GPU 小时 | DeepSeek 67B 300.6K GPU 小时 | 节省 42.5% |
| KV 缓存 / token(大 MoE,Table 9) | MLA 34.6K 元素 | MHA 860.2K 元素 | 约为 4%(小 MoE 为 14%) |
| 生成吞吐(单节点 8×H800) | >50K tokens/s(prompt 输入 >100K tokens/s) | DeepSeek 67B | 最大生成吞吐的 5.76 倍 |
| 大 MoE 消融 MMLU / BBH(Table 9) | MLA 59.0 / 50.7 | MHA 57.5 / 46.6 | MLA 性能更强且缓存小两个数量级 |
| DeepSeek-V2-Lite 基座 MMLU / GSM8K | 58.3 / 41.1 | DeepSeekMoE 16B 45.0 / 18.8;DeepSeek 7B 48.2 / 17.4 | 15.7B 总参、2.4B 激活、5.7T token |
总体来看,DeepSeek-V2 以 21B 激活参数在绝大多数基准上显著超过 DeepSeek 67B,并与 70B 级稠密模型同级:数学(MATH 43.6 为对比最高)、中文(C-Eval/CMMLU/CCPM/CMRC 等)与代码多处领先;短板集中在与英文常识知识强相关的 TriviaQA、NaturalQuestions、HellaSwag,中文多学科选择题略逊于 Qwen1.5 72B,指令跟随(IFEval 64.1 对 79.7)明显落后 LLaMA3 70B。对话版本中 RL 阶段在数学、代码与开放式生成上进一步提升,AlpacaEval 2.0 与 MT-Bench 均超过同期开源模型,AlignBench 中文总分超过 ERNIEBot-4.0 与 GPT-4-0613,但推理能力仍落后巨型模型。
## 五、结论、局限与影响
- **结论**:DeepSeek-V2 是一个支持 128K 上下文的大型 MoE 语言模型,凭借 MLA 与 DeepSeekMoE 同时实现了强劲性能、经济的训练成本与高效的推理。相比 DeepSeek 67B,它性能显著更强,同时节省 42.5% 训练成本、减少 93.3% KV 缓存、把最大生成吞吐提升到 5.76 倍;仅用 21B 激活参数即成为最强开源 MoE 模型。
- **局限性**:作者自述与其他 LLM 共有的局限包括:预训练后缺乏持续的知识更新、可能生成未经核实的建议等非事实信息、以及存在幻觉;由于训练数据以中英文为主,其他语言能力可能有限,中英文之外应谨慎使用。附录 E 另指出,为对预训练语料去偏(过滤争议性内容),模型在与特定区域文化紧密相关的测试集上表现略差:如 MMLU 的 Humanity-Moral 子集落后于 Mixtral 8x22B,而人工标注者在该子集 420 个道德情景上与标准答案的一致性很低(与标注者 3 之间仅 42.1%)。讨论部分还指出 SFT 数据少于 10K 条时 IFEval 显著下降、RL 存在"对齐税"(损害 BBH 等基准),且在线 RL 明显优于离线 RL。
- **影响**:MLA 与 DeepSeekMoE 证明稀疏架构能在压缩 KV 缓存的同时不牺牲(甚至提升)性能,确立了"总参数大、激活参数小、缓存极小"的工程范式;模型权重与 DeepSeek-V2-Lite 均已开源。作者表示下一步目标是在后续版本中达到与 GPT-4 相当的性能,并继续在保持经济成本的前提下扩大 MoE 规模、把模型从纯文本扩展到多模态。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Mixture-of-Experts (MoE) | 混合专家 |
| Multi-head Latent Attention (MLA) | 多头潜在注意力 |
| Key-Value (KV) Cache | 键值缓存 |
| Low-Rank Key-Value Joint Compression | 低秩键值联合压缩 |
| Decoupled Rotary Position Embedding | 解耦旋转位置编码 |
| Rotary Position Embedding (RoPE) | 旋转位置编码 |
| Multi-Head Attention (MHA) | 多头注意力 |
| Grouped-Query Attention (GQA) | 分组查询注意力 |
| Multi-Query Attention (MQA) | 多查询注意力 |
| DeepSeekMoE | DeepSeek 混合专家架构 |
| Fine-Grained Expert Segmentation | 细粒度专家切分 |
| Shared Expert Isolation | 共享专家隔离 |
| Device-Limited Routing | 设备受限路由 |
| Expert Parallelism | 专家并行 |
| Auxiliary Loss for Load Balance | 负载均衡辅助损失 |
| Token-Dropping Strategy | Token 丢弃策略 |
| Group Relative Policy Optimization (GRPO) | 组相对策略优化 |
| Supervised Fine-Tuning (SFT) | 监督微调 |
| Alignment Tax | 对齐税 |
| Bits-Per-Byte (BPB) | 每字节比特数 |