网站空间指的是什么意思,网站后台优化,怎样说服企业做网站建设推广,用vs2013做网站教程注#xff1a;此文章内容均节选自充电了么创始人#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》#xff08;人工智能科学与技术丛书#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列一DeepSeek核心算法解析#xff1a;如何…注此文章内容均节选自充电了么创始人CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》人工智能科学与技术丛书【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列一DeepSeek核心算法解析如何打造比肩ChatGPT的国产大模型更多技术内容 总结 DeepSeek大模型技术系列一
DeepSeek核心算法解析如何打造比肩ChatGPT的国产大模型
DeepSeek核心算法解析如何打造比肩ChatGPT的国产大模型DeepSeek-AI 摘要 我们推出 DeepSeek-V3这是一款强大的混合专家MoE语言模型总参数达 6710 亿每个 token 激活 370 亿参数。为实现高效推理和经济高效的训练DeepSeek-V3 采用多头潜在注意力MLA和 DeepSeekMoE 架构这些架构在 DeepSeek-V2 中已得到充分验证。此外DeepSeek-V3 首创了无辅助损失的负载均衡策略并设置了多 token 预测训练目标以提升性能。我们在 14.8 万亿多样且高质量的 token 上对 DeepSeek-V3 进行预训练随后通过监督微调Supervised Fine-Tuning和强化学习Reinforcement Learning阶段充分发挥其能力。综合评估显示DeepSeek-V3 性能优于其他开源模型与领先的闭源模型相当。尽管性能卓越但 DeepSeek-V3 的完整训练仅需 278.8 万个 H800 GPU 小时训练过程也非常稳定在整个训练过程中未出现任何不可恢复的损失峰值也无需进行回滚操作。模型检查点可在https://github.com/deepseek-ai/DeepSeek-V3获取。 目录 1.引言 - 4 2.架构 - 6 2.1 基本架构 - 6 2.1.1 多头潜在注意力 - 7 2.1.2 采用无辅助损失负载均衡的 DeepSeekMoE - 8 2.2 多 token 预测 - 10 1.基础设施 - 11 3.1 计算集群 - 11 3.2 训练框架 - 12 3.2.1 DualPipe 与计算通信重叠 - 12 3.2.2 跨节点全对全通信的高效实现 - 13 3.2.3 极低的内存占用与最小开销 - 14 3.3 FP8 训练 - 14 3.3.1 混合精度框架 - 15 3.3.2 量化与乘法的精度提升 - 16 3.3.3 低精度存储与通信 - 18 3.4 推理与部署 - 18 3.4.1 预填充 - 19 3.4.2 解码 - 19 3.5 硬件设计建议 - 20 3.5.1 通信硬件 - 20 3.5.2 计算硬件 - 20 2.预训练 - 22 4.1 数据构建 - 22 4.2 超参数 - 22 4.3 长上下文扩展 - 23 4.4 评估 - 24 4.4.1 评估基准 - 24 4.4.2 评估结果 - 25 4.5 讨论 - 26 4.5.1 多 token 预测的消融研究 - 26 4.5.2 无辅助损失平衡策略的消融研究 - 27 4.5.3 批量负载平衡与序列负载平衡 - 27 3.后训练 - 28 5.1 监督微调 - 28 5.2 强化学习 - 28 5.2.1 奖励模型 - 29 5.2.2 组相对策略优化 - 30 5.3 评估 - 30 5.3.1 评估设置 - 30 5.3.2 标准评估 - 32 5.3.3 开放评估 - 33 5.3.4 DeepSeek-V3 作为生成式奖励模型 - 33 5.4 讨论 - 34 5.4.1 从 DeepSeek-R1 蒸馏知识 - 34 5.4.2 自奖励 - 34 5.4.3 多 token 预测评估 - 35 4.结论、局限性与未来方向 - 35 A. 贡献与致谢 - 45 B. 低精度训练的消融研究 - 47 B.1 FP8 与 BF16 训练对比 - 47 B.2 关于块量化的讨论 - 47 C. 基于 160 亿参数有辅助损失和无辅助损失模型的专家专业化模式 - 48
引言 近年来大语言模型LLMs迅速迭代发展Anthropic, 2024; Google, 2024; OpenAI, 2024a与通用人工智能AGI的差距逐渐缩小。除了闭源模型包括 DeepSeek 系列DeepSeek-AI, 2024a,b,c; Guo 等人2024、LLaMA 系列AIMeta, 2024a,b; Touvron 等人2023a,b、Qwen 系列Qwen, 2023, 2024a,b和 Mistral 系列Jiang 等人2023; Mistral, 2024在内的开源模型也在不断进步努力缩小与闭源模型的差距。为进一步拓展开源模型的能力边界我们扩大模型规模推出了具有 6710 亿参数的大型混合专家MoE模型 DeepSeek-V3每个 token 激活 370 亿参数。
我们以前瞻性的视角始终追求强大的模型性能和经济的成本。因此在架构方面DeepSeek-V3 仍采用多头潜在注意力MLADeepSeek-AI, 2024c实现高效推理采用 DeepSeekMoEDai 等人2024进行经济高效的训练。这两种架构在 DeepSeek-V2 中已得到验证证明它们能够在实现高效训练和推理的同时保持强大的模型性能。除了基本架构我们还实施了两种额外策略来进一步提升模型能力。首先DeepSeek-V3 首创了无辅助损失的负载均衡策略Wang 等人2024a旨在最小化因鼓励负载均衡而对模型性能产生的不利影响。其次DeepSeek-V3 采用多 token 预测训练目标我们发现这可以提高模型在评估基准上的整体性能。 为实现高效训练我们支持 FP8 混合精度训练并对训练框架进行全面优化。低精度训练已成为高效训练的一种有前景的解决方案Dettmers 等人2022; Kalamkar 等人2019; Narang 等人2017; Peng 等人2023b其发展与硬件能力的提升密切相关Luo 等人2024; Micikevicius 等人2022; Rouhani 等人2023a。在本研究中我们引入了 FP8 混合精度训练框架并首次在超大规模模型上验证了其有效性。通过支持 FP8 计算和存储我们实现了训练加速和 GPU 内存占用的减少。在训练框架方面我们设计了 DualPipe 算法实现高效的流水线并行该算法减少了流水线气泡并通过计算 - 通信重叠在训练过程中隐藏了大部分通信开销。这种重叠确保了随着模型规模的进一步扩大只要我们保持恒定的计算与通信比率就可以在跨节点使用细粒度专家的同时实现近乎为零的全对全通信开销。此外我们还开发了高效的跨节点全对全通信内核以充分利用 InfiniBandIB和 NVLink 带宽。我们还精心优化了内存占用使得在不使用昂贵的张量并行的情况下也能训练 DeepSeek-V3。综合这些努力我们实现了高训练效率。 在预训练阶段我们使用 14.8 万亿高质量且多样的 token 对 DeepSeek-V3 进行训练。预训练过程非常稳定在整个训练过程中我们没有遇到任何不可恢复的损失峰值也无需回滚。接下来我们对 DeepSeek-V3 进行了两个阶段的上下文长度扩展。在第一阶段最大上下文长度扩展到 32K在第二阶段进一步扩展到 128K。之后我们对 DeepSeek-V3 的基础模型进行后训练包括监督微调SFT和强化学习RL使其符合人类偏好并进一步释放其潜力。在后训练阶段我们从 DeepSeekR1 系列模型中提取推理能力同时仔细平衡模型准确性和生成长度。
训练成本 预训练 上下文扩展 后训练 总计 H800 GPU 小时数 266.4 万 11.9 万 0.5 万 278.8 万 美元成本 532.8 万美元 23.8 万美元 1 万美元 557.6 万美元
表 1 DeepSeek-V3 的训练成本假设 H800 的租用价格为每 GPU 小时 2 美元 我们在一系列综合基准上对 DeepSeek-V3 进行评估。尽管训练成本经济但综合评估显示DeepSeek-V3 基础模型已成为目前最强的开源基础模型特别是在代码和数学领域。其聊天版本在一系列标准和开放基准上也优于其他开源模型性能与领先的闭源模型如 GPT-4o 和 Claude-3.5-Sonnet相当。
最后我们再次强调 DeepSeek-V3 经济的训练成本总结在表 1 中这是通过我们对算法、框架和硬件的优化协同设计实现的。在预训练阶段训练 DeepSeek-V3 每万亿 token 仅需 18 万 H800 GPU 小时即在拥有 2048 个 H800 GPU 的集群上训练 3.7 天。因此我们的预训练阶段在不到两个月的时间内完成耗费 266.4 万 GPU 小时。结合上下文长度扩展的 11.9 万 GPU 小时和后训练的 0.5 万 GPU 小时DeepSeek-V3 的完整训练仅需 278.8 万 GPU 小时。假设 H800 GPU 的租用价格为每 GPU 小时 2 美元我们的总训练成本仅为 557.6 万美元。需要注意的是上述成本仅包括 DeepSeek-V3 的官方训练成本不包括与架构、算法或数据的前期研究和消融实验相关的成本。 我们的主要贡献包括 架构创新的负载均衡策略和训练目标 在 DeepSeek-V2 高效架构的基础上我们首创了无辅助损失的负载均衡策略最小化了因鼓励负载均衡而导致的性能下降。 我们研究了多 token 预测MTP目标并证明其对模型性能有益。它还可用于推测解码以加速推理。 预训练追求极致训练效率 我们设计了 FP8 混合精度训练框架并首次在超大规模模型上验证了 FP8 训练的可行性和有效性。 通过算法、框架和硬件的协同设计我们克服了跨节点 MoE 训练中的通信瓶颈实现了近乎完全的计算 - 通信重叠。这显著提高了我们的训练效率降低了训练成本使我们能够在不增加额外开销的情况下进一步扩大模型规模。以仅 266.4 万 H800 GPU 小时的经济成本我们完成了在 14.8 万亿 token 上对 DeepSeek-V3 的预训练生成了目前最强的开源基础模型。预训练后的后续训练阶段仅需 10 万 GPU 小时。 后训练从 DeepSeek-R1 进行知识蒸馏 我们引入了一种创新方法将长思维链CoT模型具体为 DeepSeek R1 系列模型之一的推理能力蒸馏到标准大语言模型中特别是 DeepSeek-V3。我们的流程巧妙地将 R1 的验证和反思模式融入 DeepSeek-V3显著提高了其推理性能。同时我们还控制了 DeepSeek-V3 的输出风格和长度。 核心评估结果总结 知识1在 MMLU、MMLU-Pro 和 GPQA 等教育基准上DeepSeek-V3 优于所有其他开源模型在 MMLU 上得分为 88.5在 MMLU-Pro 上得分为 75.9在 GPQA 上得分为 59.1。其性能与 GPT-4o 和 Claude-Sonnet-3.5 等领先的闭源模型相当缩小了开源和闭源模型在该领域的差距。2在事实性基准上DeepSeek-V3 在 SimpleQA 和 Chinese SimpleQA 上均展示了开源模型中的卓越性能。虽然在英语事实知识SimpleQA方面落后于 GPT-4o 和 Claude-Sonnet-3.5但在中文事实知识Chinese SimpleQA方面超过了这些模型凸显了其在中文事实知识方面的优势。 代码、数学和推理1DeepSeek-V3 在所有非长 CoT 的开源和闭源模型中在数学相关基准上取得了最先进的性能。值得注意的是它在特定基准如 MATH-500上甚至超过了 o1-preview展示了其强大的数学推理能力。2在编码相关任务中DeepSeek-V3 在编码竞赛基准如 LiveCodeBench中表现最佳巩固了其在该领域的领先地位。在工程相关任务中虽然 DeepSeek-V3 的表现略低于 Claude-Sonnet-3.5但仍大幅领先其他模型展示了其在各种技术基准上的竞争力。 在本文的其余部分我们首先详细介绍 DeepSeek-V3 模型架构第 2 节。随后我们介绍基础设施包括计算集群、训练框架、FP8 训练支持、推理部署策略以及对未来硬件设计的建议。接下来我们描述预训练过程包括训练数据的构建、超参数设置、长上下文扩展技术、相关评估以及一些讨论第 4 节。之后我们讨论后训练工作包括监督微调SFT、强化学习RL、相应的评估和讨论第 5 节。最后我们总结这项工作讨论 DeepSeek-V3 的现有局限性并提出未来研究的潜在方向第 6 节。 2. 架构 我们首先介绍 DeepSeek-V3 的基本架构其特点是采用多头潜在注意力MLADeepSeek-AI, 2024c实现高效推理采用 DeepSeekMoEDai 等人2024进行经济高效的训练。然后我们提出多 token 预测MTP训练目标我们发现这可以提高模型在评估基准上的整体性能。对于未明确提及的其他细节DeepSeek-V3 遵循 DeepSeek-V2DeepSeek-AI, 2024c的设置。 2.1 基本架构 DeepSeek-V3 的基本架构仍基于 TransformerVaswani 等人2017框架。为实现高效推理和经济高效的训练DeepSeek-V3 还采用了经 DeepSeek-V2 充分验证的 MLA 和 DeepSeekMoE。与 DeepSeek-V2 不同的是我们为 DeepSeekMoE 引入了无辅助损失的负载均衡策略Wang 等人2024a以减轻为确保负载均衡而对模型性能造成的影响。图 2 展示了 DeepSeek-V3 的基本架构我们将在本节简要回顾 MLA 和 DeepSeekMoE 的细节。
图 2 DeepSeek-V3 基本架构示意图。遵循 DeepSeek-V2我们采用 MLA 和 DeepSeekMoE 实现高效推理和经济高效的训练 2.1.1 多头潜在注意力 对于注意力机制DeepSeek-V3 采用 MLA 架构。设表示嵌入维度表示注意力头数表示每个头的维度表示给定注意力层中第个 token 的注意力输入。MLA 的核心是对注意力键值进行低秩联合压缩以减少推理时的键值KV缓存
其中是键值的压缩潜在向量表示 KV 压缩维度表示下投影矩阵、分别是键值的上投影矩阵是用于生成携带旋转位置嵌入RoPESu 等人2024的解耦键的矩阵RoPE 表示应用 RoPE 矩阵的操作表示拼接。需要注意的是对于 MLA在生成过程中仅需缓存蓝色框中的向量即和这显著减少了 KV 缓存同时保持与标准多头注意力MHAVaswani 等人2017相当的性能。 对于注意力查询我们也进行低秩压缩这可以减少训练期间的激活内存 其中是查询的压缩潜在向量表示查询压缩维度、$W^{U Q 、分别是查询的下投影和上投影矩阵是用于生成携带 RoPE 的解耦查询的矩阵。 最终注意力查询、键和值相结合产生最终的注意力输出 其中表示输出投影矩阵。 2.1.2 采用无辅助损失负载均衡的 DeepSeekMoE
DeepSeekMoE 基本架构对于前馈网络FFNsDeepSeek-V3 采用 DeepSeekMoE 架构Dai 等人2024。与传统的 MoE 架构如 GShardLepikhin 等人2021相比DeepSeekMoE 使用更细粒度的专家并将部分专家设置为共享专家。设表示第个 token 的 FFN 输入我们按如下方式计算 FFN 输出 否则 其中和分别表示共享专家和路由专家的数量和分别表示第个共享专家和第个路由专家表示激活的路由专家数量是第个专家的门控值是 token 与专家的亲和度是第个路由专家的质心向量表示在为第个 token 和所有路由专家计算的亲和度分数中包含个最高分数的集合。与 DeepSeek-V2 略有不同DeepSeek-V3 使用 sigmoid 函数计算亲和度分数并对所有选定的亲和度分数进行归一化以生成门控值。 无辅助损失负载均衡对于 MoE 模型专家负载不均衡会导致路由崩溃Shazeer 等人2017并在专家并行的场景中降低计算效率。传统解决方案通常依赖辅助损失Fedus 等人2021Lepikhin 等人2021来避免负载不均衡。然而过大的辅助损失会损害模型性能Wang 等人2024a。为了在负载均衡和模型性能之间实现更好的平衡我们首创了无辅助损失的负载均衡策略Wang 等人2024a来确保负载均衡。具体来说我们为每个专家引入一个偏差项并将其添加到相应的亲和度分数中以确定前路由 否则 注意偏差项仅用于路由。与 FFN 输出相乘的门控值仍由原始亲和度分数导出。在训练过程中我们持续监控每个训练步骤中整个批次的专家负载。在每个步骤结束时如果相应专家负载过高我们将偏差项减小如果负载过低则将其增大其中是一个称为偏差更新速度的超参数。通过动态调整DeepSeek-V3 在训练过程中保持专家负载平衡并且比仅通过辅助损失鼓励负载均衡的模型表现更好。 互补的序列级辅助损失虽然 DeepSeek-V3 主要依靠无辅助损失策略来实现负载平衡但为了防止单个序列内出现极端不平衡我们还采用了互补的序列级平衡损失 其中平衡因子是一个超参数对于 DeepSeek-V3其取值极小表示指示函数表示序列中的 token 数量。序列级平衡损失鼓励每个序列上的专家负载保持平衡。
图 3 多 token 预测MTP实现示意图。我们在每个深度保持每个 token 预测的完整因果链 节点限制路由与 DeepSeek-V2 使用的设备限制路由类似DeepSeek-V3 也采用受限路由机制来限制训练期间的通信成本。简而言之我们确保每个 token 最多被发送到个节点这些节点根据分布在每个节点上的专家的最高个亲和度分数之和来选择。在这种约束下我们的 MoE 训练框架几乎可以实现完全的计算 - 通信重叠。 无 token 丢弃由于有效的负载均衡策略DeepSeek-V3 在整个训练过程中保持良好的负载平衡。因此DeepSeek-V3 在训练过程中不会丢弃任何 token。此外我们还实施了特定的部署策略来确保推理负载平衡所以 DeepSeek-V3 在推理过程中也不会丢弃 token。 2.2 多 token 预测 受 Gloeckle 等人2024的启发我们为 DeepSeek-V3 研究并设置了多 token 预测MTP目标将预测范围扩展到每个位置的多个未来 token。一方面MTP 目标使训练信号更密集可能提高数据效率。另一方面MTP 可能使模型能够预先规划其表示以便更好地预测未来 token。图 3 展示了我们的 MTP 实现。与 Gloeckle 等人2024使用独立输出头并行预测个额外 token 不同我们顺序预测额外 token并在每个预测深度保持完整的因果链。我们在本节介绍 MTP 实现的详细信息。
MTP 模块具体来说我们的 MTP 实现使用个顺序模块来预测个额外 token。第个 MTP 模块由一个共享嵌入层、一个共享输出头、一个 Transformer 块和一个投影矩阵组成。对于第个输入 token 在第个预测深度我们首先将第深度的第个 token 的表示与第个 token 的嵌入通过线性投影组合
其中表示拼接。特别地当时指的是主模型给出的表示。需要注意的是每个 MTP 模块的嵌入层与主模型共享。组合后的作为第深度的 Transformer 块的输入以产生当前深度的输出表示
其中表示输入序列长度表示切片操作包括左右边界。最后以为输入共享输出头将计算第个额外预测 token 的概率分布其中是词汇表大小
输出头将表示线性映射到 logits然后应用 Softmax 函数计算第个额外 token 的预测概率。此外每个 MTP 模块的输出头也与主模型共享。我们保持预测因果链的原则与 EAGLELi 等人2024b类似但 EAGLE 的主要目标是推测解码Leviathan 等人2023Xia 等人2023而我们利用 MTP 来改进训练。 MTP 训练目标对于每个预测深度我们计算交叉熵损失
其中表示输入序列长度表示第个位置的真实 token表示由第个 MTP 模块给出的的相应预测概率。最后我们计算所有深度的 MTP 损失的平均值并乘以加权因子得到整体的 MTP 损失作为 DeepSeek-V3 的额外训练目标 MTP 在推理中的应用我们的 MTP 策略主要旨在提高主模型的性能因此在推理时我们可以直接丢弃 MTP 模块主模型可以独立正常运行。此外我们还可以将这些 MTP 模块用于推测解码以进一步提高生成速度。 3. 基础设施 3.1 计算集群 DeepSeek-V3 在一个配备 2048 个 NVIDIA H800 GPU 的集群上进行训练。H800 集群中的每个节点包含 8 个通过 NVLink 和 NVSwitch 在节点内部连接的 GPU。在不同节点之间使用 InfiniBandIB互连来促进通信。
图 4 单个前向和后向块对的重叠策略Transformer 块的边界未对齐。橙色表示前向绿色表示 “输入的反向”蓝色表示 “权重的反向”紫色表示 PP 通信红色表示屏障。全对全通信和 PP 通信都可以完全隐藏 3.2 训练框架 DeepSeek-V3 的训练由 HAI-LLM 框架支持这是一个由我们的工程师全新开发的高效轻量级训练框架。总体而言DeepSeek-V3 应用 16 路流水线并行PPQi 等人2023a、跨 8 个节点的 64 路专家并行EPLepikhin 等人2021和 ZeRO-1 数据并行DPRajbhandari 等人2020。 为便于 DeepSeek-V3 的高效训练我们进行了细致的工程优化。首先我们设计了 DualPipe 算法实现高效的流水线并行。与现有 PP 方法相比DualPipe 的流水线气泡更少。更重要的是它在正向和反向过程中重叠了计算和通信阶段从而解决了跨节点专家并行带来的高通信开销问题。其次我们开发了高效的跨节点全对全通信内核以充分利用 IB 和 NVLink 带宽并节省用于通信的流式多处理器SM。最后我们精心优化了训练期间的内存占用从而使我们能够在不使用昂贵的张量并行TP的情况下训练 DeepSeek-V3。 3.2.1 DualPipe 与计算通信重叠 对于 DeepSeek-V3跨节点专家并行带来的通信开销导致计算与通信比率约为 1:1效率较低。为应对这一挑战我们设计了一种创新的流水线并行算法 DualPipe它不仅通过有效重叠正向和反向计算 - 通信阶段加速模型训练还减少了流水线气泡。 DualPipe 的关键思想是在单个前向和后向块对中重叠计算和通信。具体来说我们将每个块分为四个部分注意力、全对全分发、MLP 和全对全合并。特别地对于后向块注意力和 MLP 都进一步分为两个部分输入的反向和权重的反向类似于 ZeroBubbleQi 等人2023b。此外我们还有一个 PP 通信部分。如图 4 所示对于一对前向和后向块我们重新排列这些部分并手动调整用于通信和计算的 GPU SM 比率。在这种重叠策略中我们可以确保在执行过程中全对全通信和 PP 通信都能完全隐藏。鉴于这种高效的重叠策略完整的 DualPipe 调度如图 5 所示。它采用双向流水线调度从流水线的两端同时输入微批次并且大部分通信可以完全重叠。这种重叠还确保了随着模型进一步扩展只要我们保持恒定的计算与通信比率就可以在跨节点使用细粒度专家的同时实现近乎为零的全对全通信开销。
表 2 不同流水线并行方法的流水线气泡和内存使用情况比较。表示前向块的执行时间表示完整后向块的执行时间表示 “权重的反向” 块的执行时间表示两个相互重叠的前向和后向块的执行时间
此外即使在通信负担不重的更一般场景中DualPipe 仍然具有效率优势。在表 2 中我们总结了不同 PP 方法的流水线气泡和内存使用情况。如表所示与 ZB1PQi 等人2023b和 1F1BHarlap 等人2018相比DualPipe 显著减少了流水线气泡同时仅将峰值 激活内存增加了倍。虽然 DualPipe 需要保留两份模型参数但由于我们在训练期间使用了较大的 EP 规模这并不会显著增加内存消耗。与 ChimeraLi 和 Hoefler2021相比DualPipe 只要求流水线阶段数和微批次数量能被 2 整除而不要求微批次数量能被流水线阶段数整除。此外对于 DualPipe随着微批次数量的增加气泡和激活内存都不会增加。 3.2.2 跨节点全对全通信的高效实现 为确保 DualPipe 有足够的计算性能我们定制了高效的跨节点全对全通信内核包括分发和合并以节省用于通信的 SM 数量。这些内核的实现是与 MoE 门控算法以及我们集群的网络拓扑共同设计的。具体而言在我们的集群中跨节点的 GPU 通过 IB 完全互连而节点内的通信则通过 NVLink 处理。NVLink 提供的带宽为 160GB/s大约是 IB50GB/s的 3.2 倍。为有效利用 IB 和 NVLink 的不同带宽我们将每个 token 最多分配到 4 个节点从而减少 IB 流量。对于每个 token在做出路由决策后它将首先通过 IB 传输到目标节点上具有相同节点内索引的 GPU。一旦到达目标节点我们会确保它能立即通过 NVLink 转发到承载目标专家的特定 GPU而不会被后续到达的 token 阻塞。通过这种方式IB 和 NVLink 的通信得以完全重叠并且每个 token 在每个节点上平均可以高效地选择 3.2 个专家而不会产生 NVLink 的额外开销。这意味着尽管 DeepSeek-V3 在实际中只选择 8 个路由专家但在保持相同通信成本的情况下它最多可以将这个数量扩展到 13 个专家4 个节点 ×3.2 个专家 / 节点 。总体而言在这样的通信策略下仅需 20 个 SM 就足以充分利用 IB 和 NVLink 的带宽。 详细来说我们采用了 warp specialization 技术Bauer 等人2014并将 20 个 SM 划分为 10 个通信通道。在分发过程中1IB 发送、2IB 到 NVLink 的转发以及3NVLink 接收分别由各自的 warp 处理。分配给每个通信任务的 warp 数量会根据所有 SM 上的实际工作量动态调整。类似地在合并过程中1NVLink 发送、2NVLink 到 IB 的转发和累加以及3IB 接收和累加也由动态调整的 warp 处理。此外分发和合并内核都与计算流重叠因此我们也考虑了它们对其他 SM 计算内核的影响。具体来说我们采用了定制的 PTX并行线程执行指令并自动调整通信块大小这显著减少了 L2 缓存的使用以及对其他 SM 的干扰。 3.2.3 极低的内存占用与最小开销 为减少训练期间的内存占用我们采用了以下技术 RMSNorm 和 MLA 上投影的重计算在反向传播过程中我们对所有 RMSNorm 操作和 MLA 上投影进行重计算从而无需持久存储它们的输出激活。通过极小的开销该策略显著减少了存储激活所需的内存。 CPU 中的指数移动平均在训练过程中我们保存模型参数的指数移动平均EMA以便在学习率衰减后对模型性能进行早期估计。EMA 参数存储在 CPU 内存中并在每个训练步骤后异步更新。这种方法使我们能够在不产生额外内存或时间开销的情况下维护 EMA 参数。 多 token 预测的共享嵌入和输出头通过 DualPipe 策略我们将模型的浅层包括嵌入层和深层包括输出头部署在相同的 PP 等级上。这种安排使得 MTP 模块和主模型之间能够在物理上共享嵌入和输出头的参数和梯度。这种物理共享机制进一步提高了我们的内存效率。 3.3 FP8 训练 受近期低精度训练进展Dettmers 等人2022Noune 等人2022Peng 等人2023b的启发我们提出了一种使用 FP8 数据格式训练 DeepSeek-V3 的细粒度混合精度框架。虽然低精度训练前景广阔但它常常受到激活、权重和梯度中的异常值的限制Fishman 等人2024He 等人Sun 等人2024。尽管在推理量化方面已经取得了显著进展Frantar 等人2022Xiao 等人2023但在大规模语言模型的训练中成功应用低精度技术的研究相对较少Fishman 等人2024。为应对这一挑战并有效扩展 FP8 格式的动态范围我们引入了一种细粒度量化策略具有个元素的 tile-wise 分组或具有个元素的 block-wise 分组。在我们提高精度的累加过程中相关的反量化开销在很大程度上得到了缓解这对于实现准确的 FP8 通用矩阵乘法GEMM至关重要。此外为进一步减少 MoE 训练中的内存和通信开销我们以 FP8 格式缓存和分发激活同时以 BF16 格式存储低精度优化器状态。我们在两个与 DeepSeek-V2-Lite 和 DeepSeek-V2 规模相似的模型上验证了所提出的 FP8 混合精度框架训练了约 1 万亿个 token更多细节见附录 B.1。值得注意的是与 BF16 基线相比我们的 FP8 训练模型的相对损失误差始终保持在 0.25% 以下这一水平完全在训练随机性的可接受范围内。 3.3.1 混合精度框架 基于在低精度训练中广泛采用的技术Kalamkar 等人2019Narang 等人2017我们提出了一种用于 FP8 训练的混合精度框架。在这个框架中大多数计算密集型操作以 FP8 精度执行而一些关键操作则战略性地保持其原始数据格式以平衡训练效率和数值稳定性。整体框架如图 6 所示。
图 6 采用 FP8 数据格式的整体混合精度框架。为清晰起见仅展示了线性算子
首先为加速模型训练大多数核心计算内核即 GEMM 操作以 FP8 精度实现。这些 GEMM 操作接受 FP8 张量作为输入并生成 BF16 或 FP32 格式的输出。如图 6 所示与线性算子相关的三个 GEMM 操作即前向传播Fprop、激活反向传播Dgrad和权重反向传播Wgrad均以 FP8 精度执行。从理论上讲这种设计使计算速度比原始的 BF16 方法提高了一倍。此外FP8 的 Wgrad GEMM 操作允许以 FP8 格式存储激活以供反向传播使用这显著降低了内存消耗。
尽管 FP8 格式具有效率优势但某些算子由于对低精度计算敏感仍然需要更高的精度。此外一些低成本算子也可以使用更高的精度而对整体训练成本的影响可忽略不计。因此经过仔细研究我们对以下组件保持原始精度例如 BF16 或 FP32嵌入模块、输出头、MoE 门控模块、归一化算子和注意力算子。这些有针对性的高精度保留确保了 DeepSeek-V3 训练过程的稳定性。为进一步保证数值稳定性我们以更高的精度存储主权重、权重梯度和优化器状态。虽然这些高精度组件会带来一些内存开销但通过在我们的分布式训练系统中跨多个 DP 等级进行高效分片其影响可以最小化。 3.3.2 量化与乘法的精度提升 基于我们的 FP8 混合精度框架我们引入了几种策略来提高低精度训练的准确性重点关注量化方法和乘法过程。 细粒度量化在低精度训练框架中由于 FP8 格式的动态范围有限受其减少的指数位限制溢出和下溢是常见问题。作为一种标准做法通过将输入张量的最大绝对值缩放到 FP8 的最大可表示值使输入分布与 FP8 格式的可表示范围对齐Narang 等人2017。这种方法使低精度训练对激活异常值高度敏感会严重降低量化精度。为解决这个问题我们提出了一种细粒度量化方法在更细的粒度上应用缩放。如图 7a所示1对于激活我们以的 tile 为单位对元素进行分组和缩放即每个 token 每 128 个通道2对于权重我们以的块为单位对元素进行分组和缩放即每 128 个输入通道每 128 个输出通道。这种方法确保量化过程能够根据较小的元素组调整缩放从而更好地适应异常值。在附录 B.2 中我们进一步讨论了如果像权重量化那样对激活进行块级分组和缩放时训练的不稳定性问题。
图 7 a我们提出一种细粒度量化方法来减轻由特征异常值引起的量化误差为简化说明仅展示了 Fprop。b结合我们的量化策略通过每隔个元素的 MMA 提升到 CUDA 核心进行高精度累加提高 FP8 GEMM 的精度 我们方法的一个关键改进是在 GEMM 操作的内维度上引入了每组缩放因子。标准的 FP8 GEMM 并不直接支持此功能但结合我们精确的 FP32 累加策略可以高效地实现。 值得注意的是我们的细粒度量化策略与微缩放格式Rouhani 等人2023b的思想高度一致而 NVIDIA 下一代 GPUBlackwell 系列的张量核心已宣布支持具有更细量化粒度的微缩放格式NVIDIA2024a。我们希望我们的设计能够为未来的工作提供参考以跟上最新的 GPU 架构发展。 提高累加精度低精度 GEMM 操作经常受到下溢问题的困扰其准确性在很大程度上依赖于高精度累加通常以 FP32 精度进行Kalamkar 等人2019Narang 等人2017。然而我们观察到 NVIDIA H800 GPU 上 FP8 GEMM 的累加精度仅限于保留约 14 位这明显低于 FP32 累加精度。当内维度较大时Wortsman 等人2023这个问题会更加突出这是大规模模型训练中增加批量大小和模型宽度时的典型场景。以两个的随机矩阵的 GEMM 操作为例在我们的初步测试中张量核心有限的累加精度导致最大相对误差接近 2%。尽管存在这些问题但有限的累加精度在一些 FP8 框架中仍是默认选项NVIDIA2024b严重限制了训练精度。 为解决这个问题我们采用提升到 CUDA 核心以获得更高精度的策略Thakkar 等人2023。过程如图 7b所示。具体来说在张量核心执行 MMA矩阵乘累加时中间结果使用有限的位宽进行累加。一旦达到的间隔这些部分结果将被复制到 CUDA 核心的 FP32 寄存器中在那里进行全精度的 FP32 累加。如前所述我们的细粒度量化沿内维度应用每组缩放因子。这些缩放因子可以在 CUDA 核心上作为反量化过程高效地相乘且额外计算成本极小。
值得注意的是这种修改降低了单个 warp 组的 WGMMAwarp 组级矩阵乘累加指令发射率。然而在 H800 架构中通常可以同时执行两个 WGMMA当一个 warp 组执行提升操作时另一个 warp 组能够执行 MMA 操作。这种设计使两个操作能够重叠保持张量核心的高利用率。根据我们的实验将设置为 128 个元素相当于 4 个 WGMMA是能够显著提高精度且不会引入大量开销的最小累加间隔。 尾数优先于指数与先前工作NVIDIA2024bPeng 等人2023bSun 等人2019b采用的混合 FP8 格式在前向传播中使用 E4M34 位指数和 3 位尾数在 Dgrad 和 Wgrad 中使用 E5M25 位指数和 2 位尾数不同我们在所有张量上都采用 E4M3 格式以获得更高的精度。我们将这种方法的可行性归因于我们的细粒度量化策略即 tile 和 block 级缩放。通过对较小的元素组进行操作我们的方法有效地在这些分组元素之间共享指数位减轻了有限动态范围的影响。 在线量化在张量级量化框架NVIDIA2024bPeng 等人2023b中采用延迟量化它通过保留先前迭代中的最大绝对值历史来推断当前值。为确保准确的缩放并简化框架我们为每个的激活 tile 或的权重块在线计算最大绝对值。基于此我们导出缩放因子然后在线将激活或权重量化为 FP8 格式。 3.3.3 低精度存储与通信 结合我们的 FP8 训练框架我们通过将缓存的激活和优化器状态压缩为低精度格式进一步降低内存消耗和通信开销。 低精度优化器状态我们采用 BF16 数据格式而不是 FP32 来跟踪 AdamWLoshchilov 和 Hutter2017优化器中的一阶和二阶矩且不会导致可观察到的性能下降。然而优化器存储的主权重和用于批量大小累加的梯度仍保留为 FP32以确保整个训练过程中的数值稳定性。 低精度激活如图 6 所示Wgrad 操作以 FP8 精度执行。为减少内存消耗自然的选择是以 FP8 格式缓存激活以供线性算子的反向传播使用。然而对于一些算子为实现低成本的高精度训练我们进行了特殊考虑 注意力算子之后线性层的输入这些激活也用于注意力算子的反向传播因此对精度敏感。我们专门为这些激活采用定制的 E5M6 数据格式。此外在反向传播中这些激活将从的量化 tile 转换为的 tile。为避免引入额外的量化误差所有缩放因子均进行舍入缩放即 2 的整数次幂。 MoE 中 SwiGLU 算子的输入为进一步降低内存成本我们缓存 SwiGLU 算子的输入并在反向传播中重新计算其输出。这些激活也使用我们的细粒度量化方法存储为 FP8在内存效率和计算精度之间取得平衡。 低精度通信通信带宽是 MoE 模型训练中的关键瓶颈。为缓解这一挑战我们在 MoE 上投影之前将激活量化为 FP8然后应用分发组件这与 MoE 上投影中的 FP8 前向传播兼容。与注意力算子之后线性层的输入类似这种激活的缩放因子为 2 的整数次幂。在 MoE 下投影之前的激活梯度也采用类似策略。对于前向和后向合并组件我们将其保留为 BF16以在训练流程的关键部分保持训练精度。 3.4 推理与部署 我们在 H800 集群上部署 DeepSeek-V3集群内每个节点的 GPU 通过 NVLink 互连整个集群的所有 GPU 通过 IB 完全互连。为同时确保在线服务的服务级别目标SLO和高吞吐量我们采用以下将预填充和解码阶段分离的部署策略。 3.4.1 预填充 预填充阶段的最小部署单元由 4 个节点和 32 个 GPU 组成。注意力部分采用 4 路张量并行TP4与序列并行SP相结合并结合 8 路数据并行DP8。其较小的 TP 大小 4 限制了 TP 通信的开销。对于 MoE 部分我们使用 32 路专家并行EP32这确保每个专家处理足够大的批次大小从而提高计算效率。对于 MoE 的全对全通信我们使用与训练相同的方法首先通过 IB 在节点间传输 token然后通过 NVLink 在节点内的 GPU 之间转发。特别地对于浅层的密集 MLP我们使用 1 路张量并行以节省 TP 通信。 为实现 MoE 部分不同专家之间的负载均衡我们需要确保每个 GPU 处理的 token 数量大致相同。为此我们引入了冗余专家的部署策略即复制高负载专家并进行冗余部署。高负载专家是根据在线部署期间收集的统计信息检测出来的并定期例如每 10 分钟进行调整。在确定冗余专家集之后我们根据观察到的负载在节点内的 GPU 之间仔细重新安排专家力求在不增加跨节点全对全通信开销的情况下尽可能平衡 GPU 之间的负载。对于 DeepSeek-V3 的部署我们为预填充阶段设置了 32 个冗余专家。对于每个 GPU除了其原本承载的 8 个专家外还将承载一个额外的冗余专家。 此外在预填充阶段为提高吞吐量并隐藏全对全通信和 TP 通信的开销我们同时处理两个计算工作量相似的微批次将一个微批次的注意力和 MoE 操作与另一个微批次的分发和合并操作重叠。 最后我们正在探索一种专家动态冗余策略即每个 GPU 承载更多专家例如 16 个专家但在每次推理步骤中仅激活 9 个。在每一层的全对全操作开始之前我们实时计算全局最优路由方案。鉴于预填充阶段涉及大量计算计算此路由方案的开销几乎可以忽略不计。 3.4.2 解码 在解码过程中我们将共享专家视为路由专家。从这个角度来看每个 token 在路由时会选择 9 个专家其中共享专家被视为高负载专家始终会被选中。解码阶段的最小部署单元由 40 个节点和 320 个 GPU 组成。注意力部分采用 TP4 与 SP 相结合并结合 DP80而 MoE 部分使用 EP320。对于 MoE 部分每个 GPU 仅承载一个专家64 个 GPU 负责承载冗余专家和共享专家。分发和合并部分的全对全通信通过 IB 直接点对点传输来实现低延迟。此外我们利用 IBGDANVIDIA2022技术进一步降低延迟并提高通信效率。 与预填充类似我们根据在线服务中统计的专家负载在特定间隔内定期确定冗余专家集。然而由于每个 GPU 仅承载一个专家我们无需重新安排专家。我们也在探索解码阶段的动态冗余策略。不过这需要更仔细地优化计算全局最优路由方案的算法并将其与分发内核融合以降低开销。 此外为提高吞吐量并隐藏全对全通信的开销我们也在探索在解码阶段同时处理两个计算工作量相似的微批次。与预填充不同解码阶段注意力消耗的时间占比更大。因此我们将一个微批次的注意力与另一个微批次的分发 MoE 合并操作重叠。在解码阶段每个专家的批次大小相对较小通常在 256 个 token 以内瓶颈在于内存访问而非计算。由于 MoE 部分仅需加载一个专家的参数内存访问开销极小因此使用较少的 SM 不会显著影响整体性能。所以为避免影响注意力部分的计算速度我们可以仅为分发 MoE 合并分配一小部分 SM。 3.5 硬件设计建议 基于我们对全对全通信和 FP8 训练方案的实现我们向 AI 硬件供应商提出以下芯片设计建议。 3.5.1 通信硬件 在 DeepSeek-V3 中我们通过计算与通信重叠来在计算过程中隐藏通信延迟这与串行计算和通信相比显著降低了对通信带宽的依赖。然而当前的通信实现依赖于昂贵的 SM例如我们在 H800 GPU 的 132 个 SM 中分配 20 个用于此目的这会限制计算吞吐量。此外使用 SM 进行通信会导致效率低下因为张量核心会完全未被充分利用。 目前SM 在全对全通信中主要执行以下任务 在 IBInfiniBand和 NVLink 域之间转发数据同时聚合从单个 GPU 发往同一节点内多个 GPU 的 IB 流量。 在 RDMA 缓冲区已注册的 GPU 内存区域和输入 / 输出缓冲区之间传输数据。 执行全对全合并的归约操作。 在通过 IB 和 NVLink 域将分块数据传输到多个专家的过程中管理细粒度的内存布局。 我们期望未来的供应商开发能够将这些通信任务从宝贵的计算单元 SM 中卸载的硬件例如作为 GPU 协处理器或类似 NVIDIA SHARPGraham 等人2016的网络协处理器。此外为降低应用程序编程的复杂性我们希望这种硬件从计算单元的角度统一 IB横向扩展和 NVLink纵向扩展网络。有了这个统一的接口计算单元可以通过基于简单原语提交通信请求轻松地在整个 IB-NVLink 统一域中完成读取、写入、多播和归约等操作。 3.5.2 计算硬件 提高张量核心中 FP8 GEMM 的累加精度在当前 NVIDIA Hopper 架构的张量核心实现中FP8 GEMM通用矩阵乘法采用定点累加在加法之前根据最大指数对尾数乘积进行右移对齐。我们的实验表明它在符号填充右移后仅使用每个尾数乘积的最高 14 位并截断超过此范围的位。然而例如为了从 32 次 FP8×FP8 乘法的累加中获得精确的 FP32 结果至少需要 34 位精度。因此我们建议未来的芯片设计提高张量核心中的累加精度以支持全精度累加或者根据训练和推理算法的精度要求选择合适的累加位宽。这种方法可确保误差保持在可接受的范围内同时维持计算效率。 支持 tile 和 block 级量化当前的 GPU 仅支持张量级量化缺乏对像我们的 tile 和 block 级量化这样的细粒度量化的原生支持。在当前的实现中当达到间隔时部分结果需要从张量核心复制到 CUDA 核心与缩放因子相乘然后加到 CUDA 核心的 FP32 寄存器中。尽管结合我们精确的 FP32 累加策略反量化开销显著降低但张量核心和 CUDA 核心之间频繁的数据移动仍然限制了计算效率。因此我们建议未来的芯片通过使张量核心能够接收缩放因子并实现带分组缩放的 MMA 来支持细粒度量化。这样整个部分和累加与反量化过程可以直接在张量核心内完成直到产生最终结果避免频繁的数据移动。 支持在线量化尽管在线量化在我们的研究中显示出有效性但当前的实现难以有效支持它。在现有过程中我们需要从 HBM高带宽内存读取 128 个 BF16 激活值前一次计算的输出进行量化量化后的 FP8 值再写回 HBM之后又要再次读取用于 MMA。为解决这种低效率问题我们建议未来的芯片将 FP8 转换和 TMA张量内存加速器访问集成到单个融合操作中以便在激活从全局内存传输到共享内存的过程中完成量化避免频繁的内存读写。我们还建议支持 warp 级转换指令以加速这进一步有助于更好地融合层归一化和 FP8 转换。或者可以采用近内存计算方法将计算逻辑放置在靠近 HBM 的位置。在这种情况下BF16 元素在从 HBM 读取到 GPU 时可以直接转换为 FP8从而将片外内存访问减少约 50%。 支持转置 GEMM 操作当前的架构使得将矩阵转置与 GEMM 操作融合变得繁琐。在我们的工作流程中前向传播中的激活被量化为的 FP8 tile 并存储。在反向传播中需要读取矩阵、反量化、转置、重新量化为的 tile然后存储在 HBM 中。为减少内存操作我们建议未来的芯片对于训练和推理所需的精度能够在 MMA 操作之前直接从共享内存中进行矩阵的转置读取。结合 FP8 格式转换和 TMA 访问的融合这一增强将显著简化量化工作流程。 4. 预训练 4.1 数据构建 与 DeepSeek-V2 相比我们优化了预训练语料库提高了数学和编程样本的比例同时将多语言覆盖范围扩展到英语和中文之外。我们还改进了数据处理流程在保持语料库多样性的同时尽量减少冗余。受 Ding 等人2024的启发我们采用文档打包方法来保证数据完整性但在训练过程中不采用跨样本注意力掩码。最终DeepSeek-V3 的训练语料库包含 14.8 万亿经过我们分词器处理的高质量且多样的 token。 在 DeepSeekCoder-V2DeepSeek-AI2024a的训练过程中我们观察到填充中间Fill-in-MiddleFIM策略在不影响下一个 token 预测能力的同时能使模型根据上下文线索准确预测中间文本。与 DeepSeekCoder-V2 一致我们在 DeepSeek-V3 的预训练中也采用了 FIM 策略。具体来说我们使用前缀 - 后缀 - 中间Prefix-Suffix-MiddlePSM框架来构建数据如下所示 |fim_begin| pre|fim_hole| suf|fim_end| middle|eos_token| 这种结构在文档级别作为预打包过程的一部分应用。FIM 策略的应用比例为 0.1与 PSM 框架一致。 DeepSeek-V3 的分词器采用字节级 BPEShibata 等人1999词汇表扩展到 128K 个 token。我们对预分词器和训练数据进行了修改以优化多语言压缩效率。此外与 DeepSeek-V2 相比新的预分词器引入了结合标点和换行符的 token。然而当模型处理没有终端换行符的多行提示时尤其是在少样本评估提示中这个技巧可能会引入 token 边界偏差Lundberg2023。为解决这个问题我们在训练过程中随机拆分一定比例的此类组合 token使模型接触到更广泛的特殊情况从而减轻这种偏差。 4.2 超参数 模型超参数我们将 Transformer 层数设置为 61隐藏层维度设置为 7168。所有可学习参数均以标准差 0.006 进行随机初始化。在 MLA 中我们将注意力头数设置为 128每个头的维度设置为 128。KV 压缩维度设置为 512查询压缩维度设置为 1536。对于解耦的查询和键我们将每个头的维度设置为 64。除前三层外我们用 MoE 层替换所有 FFN 层。每个 MoE 层由 1 个共享专家和 256 个路由专家组成每个专家的中间隐藏层维度为 2048。在路由专家中每个 token 会激活 8 个专家并且每个 token 最多被发送到 4 个节点。多 token 预测深度设置为 1即除了准确预测下一个 token 外每个 token 还将预测一个额外的 token。与 DeepSeek-V2 一样DeepSeek-V3 在压缩后的潜在向量后也采用了额外的 RMSNorm 层并在宽度瓶颈处乘以额外的缩放因子。在这种配置下DeepSeek-V3 总参数达到 6710 亿每个 token 激活 370 亿参数。 训练超参数我们采用 AdamW 优化器Loshchilov 和 Hutter2017超参数设置为权重衰减为 0.1。在预训练期间我们将最大序列长度设置为 4K并在 14.8 万亿个 token 上对 DeepSeek-V3 进行预训练。在学习率调度方面在最初的 2K 步中我们将学习率从 0 线性增加到。然后在模型消耗 10 万亿个训练 token 之前保持的恒定学习率。随后在 4.3 万亿个 token 的训练过程中我们按照余弦衰减曲线将学习率逐渐衰减到。在训练最后 500 亿个 token 时前 333 亿个 token 保持的恒定学习率剩余 167 亿个 token 切换到的恒定学习率。梯度裁剪范数设置为 1.0。我们采用批次大小调度策略在训练前 469 亿个 token 时批次大小从 3072 逐渐增加到 15360在剩余训练过程中保持 15360 不变。我们利用流水线并行将模型的不同层部署在不同的 GPU 上对于每一层路由专家将均匀部署在属于 8 个节点的 64 个 GPU 上。对于节点限制路由每个 token 最多被发送到 4 个节点即。对于无辅助损失的负载均衡在前 14.3 万亿个 token 的训练中我们将偏差更新速度设置为 0.001在剩余 500 亿个 token 的训练中设置为 0.0。对于平衡损失我们将设置为 0.0001只是为了避免单个序列内出现极端不平衡。MTP 损失权重在前 10 万亿个 token 的训练中设置为 0.3在剩余 4.8 万亿个 token 的训练中设置为 0.1。
图 8 “大海捞针”NIAH测试的评估结果。DeepSeek-V3 在长达 128K 的所有上下文窗口长度上均表现良好 4.3 长上下文扩展 我们采用与 DeepSeek-V2DeepSeek-AI2024c类似的方法为 DeepSeek-V3 赋予长上下文能力。在预训练阶段之后我们应用 YaRNPeng 等人2023a进行上下文扩展并执行两个额外的训练阶段每个阶段包含 1000 步逐步将上下文窗口从 4K 扩展到 32K然后再扩展到 128K。YaRN 的配置与 DeepSeek-V2 中使用的一致仅应用于解耦的共享键。两个阶段的超参数保持相同缩放因子并且缩放系数。在第一阶段序列长度设置为 32K批次大小为 1920。在第二阶段序列长度增加到 128K批次大小减少到 480。两个阶段的学习率均设置为与预训练阶段的最终学习率相匹配。 通过这两个阶段的扩展训练DeepSeek-V3 能够处理长度高达 128K 的输入同时保持强大的性能。图 8 表明经过监督微调后DeepSeek-V3 在 “大海捞针”NIAH测试中取得了显著的成绩在长达 128K 的上下文窗口长度上始终保持稳健的性能。 4.4 评估 4.4.1 评估基准 DeepSeek-V3 的基础模型在以英语和中文为主的多语言语料库上进行预训练因此我们主要在英语、中文以及多语言基准上评估其性能。我们的评估基于集成在 HAI-LLM 框架中的内部评估框架。考虑的基准分类如下其中下划线标注的基准为中文基准双下划线标注的基准为多语言基准 多学科多选数据集包括 MMLUHendrycks 等人2020、MMLUReduxGema 等人2024、MMLU-ProWang 等人2024b、MMMLUOpenAI2024b、C-EvalHuang 等人2023和 CMMLULi 等人2023。 语言理解与推理数据集包括 HellaSwagZellers 等人2019、PIQABisk 等人2020、ARCClark 等人2018和 BigBench HardBBHSuzgun 等人2022。 闭卷问答数据集包括 TriviaQAJoshi 等人2017和 NaturalQuestionsKwiatkowski 等人2019。 阅读理解数据集包括 RACELai 等人2017、DROPDua 等人2019、C3Sun 等人2019a和 CMRCCui 等人2019。 指代消解数据集包括 CLUEWSCXu 等人2020和 WinoGrandeSakaguchi 等人2019。 语言建模数据集包括 PileGao 等人2020。 中文理解与文化数据集包括 CCPMLi 等人2021。 数学数据集包括 GSM8KCobbe 等人2021、MATHHendrycks 等人2021、MGSMShi 等人2023和 CMathWei 等人2023。 代码数据集包括 HumanEvalChen 等人2021、LiveCodeBench-Base0801 - 1101Jain 等人2024、MBPPAustin 等人2021和 CRUXEvalGu 等人2024。 标准化考试包括 AGIEvalZhong 等人2023。需要注意的是AGIEval 包括英语和中文子集。 遵循我们之前的工作DeepSeek-AI2024bc对于包括 HellaSwag、PIQA、WinoGrande、RACE-Middle、RACE-High、MMLU、MMLU-Redux、MMLU-Pro、MMMLU、ARC-Easy、ARC-Challenge、C-Eval、CMMLU、C3 和 CCPM 在内的数据集我们采用基于困惑度的评估方法对于 TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、MGSM、HumanEval、MBPP、LiveCodeBench-Base、CRUXEval、BBH、AGIEval、CLUEWSC、CMRC 和 CMath我们采用基于生成的评估方法。此外对于 Pile-test我们采用基于语言建模的评估方法并使用比特每字节Bits-Per-ByteBPB作为指标以确保在使用不同分词器的模型之间进行公平比较。
基准指标 射击次数 DeepSeek-V2 基础版 Qwen2.5 72B 基础版 LLaMA-3.1 405B 基础版 DeepSeek-V3 基础版
架构 MoE 密集型 密集型 MoE
激活参数数量 210 亿 720 亿 4050 亿 370 亿英语 总参数数量 1 2360 亿 720 亿 4050 亿 6710 亿 Pile-testBPB 0.606 0.638 0.542 0.548 BBHEM 3 次射击 78.8 79.8 82.9 87.5 MMLUEM 5 次射击 78.4 85.0 84.4 87.1 MMLU-ReduxEM 5 次射击 75.6 83.2 81.3 86.2 MMLU-ProEM 5 次射击 51.4 58.3 52.8 64.4 DROPF1 3 次射击 80.4 80.6 86.0 89.0 ARC-EasyEM 25 次射击 97.6 98.4 98.4 98.9 ARC-ChallengeEM 25 次射击 92.2 94.5 95.3 95.3 HellaSwagEM 10 次射击 87.1 84.8 89.2 88.9 PIQAEM 0 次射击 83.9 82.6 85.9 84.7 WinoGrandeEM 5 次射击 86.3 82.3 85.2 84.9 RACE-MiddleEM 5 次射击 73.1 68.1 74.2 67.1 RACE-HighEM 5 次射击 52.6 50.3 56.8 51.3 TriviaQAEM 5 次射击 80.0 71.9 82.7 82.9 NaturalQuestionsEM 5 次射击 38.6 33.2 41.5 40.0 AGIEvalEM 0 次射击 57.5 75.8 60.6 79.6 代码 HumanEval通过率 1 0 次射击 43.3 53.0 54.9 65.2 MBPP通过率 1 3 次射击 65.0 72.6 68.4 75.4 LiveCodeBench-Base通过率 1 3 次射击 11.6 12.9 15.5 19.4 CRUXEval-IEM 2 次射击 52.5 59.1 58.5 67.3 CRUXEval-OEM 2 次射击 49.8 59.9 59.9 69.8 数学 GSM8KEM 8 次射击 81.6 88.3 83.5 89.3 MATHEM 4 次射击 43.4 54.4 49.0 61.6 MGSMEM 8 次射击 63.6 76.2 69.9 79.8 CMathEM 3 次射击 78.7 84.5 77.3 90.7 中文 CLUEWSCEM 5 次射击 82.0 82.5 83.0 82.7 C-EvalEM 5 次射击 81.4 89.2 72.5 90.1 CMMLUEM 5 次射击 84.0 89.5 73.7 88.8 CMRCEM 1 次射击 77.4 75.8 76.0 76.3 C3EM 0 次射击 77.4 76.7 79.7 78.6 CCPMEM 0 次射击 93.0 88.5 78.6 92.0 多语言 MMMLU - 非英语EM 5 次射击 64.0 74.8 73.8 79.4
表 3 DeepSeek-V3 基础版与其他代表性开源基础模型的比较。所有模型均在我们的内部框架中进行评估并共享相同的评估设置。得分差距不超过 0.3 的被认为处于同一水平。DeepSeek-V3 基础版在大多数基准上取得了最佳性能尤其是在数学和代码任务上 4.4.2 评估结果 在表 3 中我们将 DeepSeek-V3 的基础模型与当前最先进的开源基础模型进行比较包括 DeepSeek-V2 基础版DeepSeek-AI2024c我们之前发布的模型、Qwen2.5 72B 基础版Qwen2024b和 LLaMA-3.1 405B 基础版AIMeta2024b。我们使用内部评估框架对所有这些模型进行评估并确保它们共享相同的评估设置。需要注意的是由于过去几个月我们评估框架的变化DeepSeek-V2 基础版的性能与我们之前报告的结果略有差异。总体而言DeepSeek-V3 基础版全面超越 DeepSeek-V2 基础版和 Qwen2.5 72B 基础版在大多数基准上超过 LLaMA-3.1 405B 基础版基本上成为了最强的开源模型。 从更详细的角度来看我们将 DeepSeek-V3 基础版与其他开源基础模型逐一进行比较。1与 DeepSeek-V2 基础版相比由于我们在模型架构上的改进、模型规模和训练 token 数量的增加以及数据质量的提升DeepSeek-V3 基础版如预期般取得了显著更好的性能。2与目前最先进的中文开源模型 Qwen2.5 72B 基础版相比DeepSeek-V3 基础版的激活参数仅为其一半但在英语、多语言、代码和数学基准上也展现出显著优势。在中文基准方面除了中文多学科多选任务 CMMLU 外DeepSeek-V3 基础版的表现也优于 Qwen2.5 72B。3与拥有 11 倍激活参数的最大开源模型 LLaMA-3.1 405B 基础版相比DeepSeek-V3 基础版在多语言、代码和数学基准上也表现得更好。在英语和中文语言基准上DeepSeek-V3 基础版表现出有竞争力或更优的性能在 BBH、MMLU 系列、DROP、C-Eval、CMMLU 和 CCPM 等基准上表现尤为突出。 由于我们采用了高效的架构和全面的工程优化DeepSeek-V3 实现了极高的训练效率。在我们的训练框架和基础设施下训练 DeepSeek-V3 每万亿 token 仅需 18 万 H800 GPU 小时这比训练 720 亿或 4050 亿参数的密集型模型成本低得多。
基准指标 射击次数 小型 MoE 基线 小型 MoEMTP 大型 MoE 基线 大型 MoEMTP 推理时激活参数数量亿 24 24 209 209 推理时总参数数量亿 157 157 2287 2287 训练 token 数量万亿 1.33 1.33 0.54 0.54 Pile-testBPB 0.729 0.729 0.658 0.657 BBHEM 3 次射击 39.0 41.4 70.0 70.7 MMLUEM 5 次射击 50.0 53.3 67.5 66.6 DROPF1 1 次射击 39.2 41.3 68.5 70.6 TriviaQAEM 5 次射击 56.9 57.7 67.0 67.3 NaturalQuestionsEM 5 次射击 22.7 22.3 27.2 28.5 HumanEval通过率 1 0 次射击 20.7 26.8 44.5 53.7 MBPP通过率 1 3 次射击 35.8 36.8 61.6 62.2 GSM8KEM 8 次射击 25.4 31.4 72.3 74.0 MATHEM 4 次射击 10.7 12.6 38.6 39.8
表 4 MTP 策略的消融实验结果。MTP 策略在大多数评估基准上持续提升模型性能 4.5 讨论 4.5.1 多 token 预测的消融研究 在表 4 中我们展示了 MTP 策略的消融实验结果。具体来说我们在两个不同规模的基线模型上验证了 MTP 策略。在小规模上我们在 1.33 万亿 token 上训练了一个总参数为 157 亿的基线 MoE 模型。在大规模上我们在 540 亿 token 上训练了一个总参数为 2287 亿的基线 MoE 模型。在这些模型的基础上保持训练数据和其他架构不变我们为它们添加一个深度为 1 的 MTP 模块并训练两个采用 MTP 策略的模型进行比较。需要注意的是在推理时我们直接丢弃 MTP 模块因此比较的模型推理成本完全相同。从表中可以看出MTP 策略在大多数评估基准上持续提升了模型性能。
基准指标 射击次数 基于辅助损失的小型 MoE 无辅助损失的小型 MoE 基于辅助损失的大型 MoE 无辅助损失的大型 MoE 激活参数数量亿 24 24 209 209 总参数数量亿 157 157 2287 2287 训练 token 数量万亿 1.33 1.33 0.578 0.578 Pile-testBPB 0.727 0.724 0.656 0.652 BBHEM 3 次射击 37.3 39.3 66.7 67.9 MMLUEM 5 次射击 51.0 51.8 68.3 67.2 DROPF1 1 次射击 38.1 39.0 67.1 67.1 TriviaQAEM 5 次射击 58.3 58.5 66.7 67.7 NaturalQuestionsEM 5 次射击 23.2 23.4 27.1 28.1 HumanEval通过率 1 0 次射击 22.0 22.6 40.2 46.3 MBPP通过率 1 3 次射击 36.6 35.8 59.2 61.2 GSM8KEM 8 次射击 27.1 29.6 70.7 74.5 MATHEM 4 次射击 10.9 11.1 37.2 39.6
表 5 无辅助损失平衡策略的消融实验结果。与纯粹基于辅助损失的方法相比无辅助损失策略在大多数评估基准上持续实现更好的模型性能 4.5.2 无辅助损失平衡策略的消融研究 在表 5 中我们展示了无辅助损失平衡策略的消融实验结果。我们在两个不同规模的基线模型上验证了该策略。在小规模上我们在 1.33 万亿 token 上训练了一个总参数为 157 亿的基线 MoE 模型。在大规模上我们在 578 亿 token 上训练了一个总参数为 2287 亿的基线 MoE 模型。这两个基线模型都纯粹使用辅助损失来鼓励负载平衡并使用带有 top-K 亲和度归一化的 sigmoid 门控函数。它们控制辅助损失强度的超参数分别与 DeepSeek-V2-Lite 和 DeepSeek-V2 相同。在这两个基线模型的基础上保持训练数据和其他架构不变我们移除所有辅助损失并引入无辅助损失平衡策略进行比较。从表中可以看出无辅助损失策略在大多数评估基准上持续实现了更好的模型性能。 4.5.3 批量负载平衡与序列负载平衡 无辅助损失平衡和序列级辅助损失的关键区别在于它们的平衡范围批量级与序列级。与序列级辅助损失相比批量级平衡施加了更灵活的约束因为它不对每个序列强制进行域内平衡。这种灵活性使专家能够更好地在不同领域进行专业化。为了验证这一点我们记录并分析了一个 160 亿参数基于辅助损失的基线模型和一个 160 亿参数无辅助损失模型在 Pile 测试集不同领域上的专家负载。如图 9 所示我们观察到无辅助损失模型如预期般展示出更大的专家专业化模式。
图 9 基于辅助损失和无辅助损失模型在 Pile 测试集三个领域上的专家负载。无辅助损失模型比基于辅助损失的模型展示出更大的专家专业化模式。相对专家负载表示实际专家负载与理论平衡专家负载的比率。由于空间限制我们仅展示两层的结果作为示例所有层的结果见附录 C 为了进一步研究这种灵活性与模型性能优势之间的相关性我们额外设计并验证了一种批量级辅助损失该损失鼓励在每个训练批次上进行负载平衡而不是在每个序列上。实验结果表明当实现相似程度的批量级负载平衡时批量级辅助损失也能实现与无辅助损失方法相似的模型性能。具体来说在我们对 10 亿参数 MoE 模型的实验中验证损失分别为使用序列级辅助损失时为 2.258使用无辅助损失方法时为 2.253使用批量级辅助损失时为 2.253。在 30 亿参数 MoE 模型上我们也观察到了类似的结果使用序列级辅助损失的模型验证损失为 2.085使用无辅助损失方法或批量级辅助损失的模型验证损失均为 2.080。 此外尽管批量级负载平衡方法表现出一致的性能优势但它们在效率方面也面临两个潜在挑战1某些序列或小批次内的负载不平衡2推理期间由于领域转移导致的负载不平衡。第一个挑战可以通过我们使用大规模专家并行和数据并行的训练框架自然解决该框架保证了每个微批次的大小足够大。对于第二个挑战我们也设计并实现了一种带有冗余专家部署的高效推理框架如 3.4 节所述来克服它。 5. 后训练 5.1 监督微调 我们精心整理了指令调整数据集包含 150 万个跨越多个领域的实例每个领域根据其特定需求采用不同的数据创建方法。
推理数据对于与推理相关的数据集包括专注于数学、代码竞赛问题和逻辑谜题的数据集我们利用内部的 DeepSeek-R1 模型生成数据。具体而言虽然 R1 生成的数据具有很高的准确性但存在过度思考、格式不佳和长度过长等问题。我们的目标是在 R1 生成的 推理数据的高准确性与常规格式推理数据的清晰简洁之间取得平衡。 为确立我们的方法我们首先针对特定领域如代码、数学或通用推理开发一个专家模型采用监督微调SFT和强化学习RL相结合的训练流程。这个专家模型作为最终模型的数据生成器。训练过程中针对每个实例生成两种不同类型的 SFT 样本第一种将问题与其原始答案以 问题原始答案 的格式配对第二种则在问题和 R1 答案的基础上加入系统提示格式为 系统提示问题R1 答案 。 系统提示经过精心设计包含引导模型生成带有反思和验证机制的答案的指令。在 RL 阶段模型利用高温采样生成的答案即使在没有明确系统提示的情况下也能融合 R1 生成的数据和原始数据中的模式。经过数百次 RL 步骤后中间 RL 模型学会融入 R1 模式从而战略性地提升整体性能。 在完成 RL 训练阶段后我们采用拒绝采样为最终模型筛选高质量的 SFT 数据其中专家模型作为数据生成源。这种方法确保最终训练数据既保留了 DeepSeek-R1 的优势又能生成简洁有效的答案。 非推理数据对于非推理数据如创意写作、角色扮演和简单问答我们利用 DeepSeek-V2.5 生成答案并邀请人工标注员验证数据的准确性和正确性。 SFT 设置我们使用 SFT 数据集对 DeepSeek-V3 基础模型进行两轮微调采用余弦退火学习率调度从开始逐渐降至 。在训练过程中每个单独的序列由多个样本打包而成。然而我们采用样本掩码策略以确保这些示例相互隔离且不可见。 5.2 强化学习 5.2.1 奖励模型
我们在 RL 过程中采用基于规则的奖励模型RM和基于模型的 RM。 基于规则的 RM对于可以使用特定规则验证的问题我们采用基于规则的奖励系统来确定反馈。例如某些数学问题有确定的结果我们要求模型以指定格式如框内给出最终答案以便应用规则验证其正确性。同样对于 LeetCode 问题我们可以利用编译器根据测试用例生成反馈。只要有可能我们就利用基于规则的验证以确保更高的可靠性因为这种方法不易被操纵或利用。 基于模型的 RM对于具有自由格式标准答案的问题我们依靠奖励模型来确定回答是否符合预期的标准答案。相反对于没有明确标准答案的问题如涉及创意写作的问题奖励模型根据问题和相应答案作为输入提供反馈。奖励模型从 DeepSeek-V3 SFT 检查点进行训练。为增强其可靠性我们构建偏好数据不仅提供最终奖励还包括得出奖励的思维链。这种方法有助于降低特定任务中奖励作弊的风险。 5.2.2 组相对策略优化 与 DeepSeek-V2DeepSeek-AI, 2024c类似我们采用组相对策略优化GRPOShao 等人2024它摒弃了通常与策略模型大小相同的评论家模型而是从组分数中估计基线。具体来说对于每个问题GRPO 从旧策略模型中采样一组输出然后通过最大化以下目标来优化策略模型 其中、是相关参数是优势由每组输出对应的奖励得出 我们在 RL 过程中纳入来自不同领域如编码、数学、写作、角色扮演和问答的提示。这种方法不仅使模型更符合人类偏好还提升了在基准测试中的性能特别是在可用 SFT 数据有限的场景中。 5.3 评估 5.3.1 评估设置 评估基准除了用于基础模型测试的基准外我们还在 IFEvalZhou 等人2023、FRAMESKrishna 等人2024、LongBench v2Bai 等人2024、GPQARein 等人2023、SimpleQAOpenAI, 2024c、CSimpleQAHe 等人2024、SWE-Bench VerifiedOpenAI, 2024d、Aider 1、LiveCodeBenchJain 等人20242024 年 8 月至 11 月的问题、Codeforces 2、中国国家高中数学奥林匹克竞赛CNMO 20243、美国数学邀请赛 2024AIME 2024MAA, 2024等基准上评估指令模型。 对比基线我们对聊天模型与几个强大的基线进行全面评估包括 DeepSeek-V2-0506、DeepSeek-V2.5-0905、Qwen2.5 72B Instruct、LLaMA-3.1 405B Instruct、Claude-Sonnet-3.5-1022 和 GPT-4o-0513。对于 DeepSeek-V2 模型系列我们选择最具代表性的变体进行比较。对于闭源模型通过它们各自的 API 进行评估。 详细评估配置对于包括 MMLU、DROP、GPQA 和 SimpleQA 在内的标准基准我们采用 simple-evals 框架 4 中的评估提示。对于 MMLU-Redux我们在零样本设置下使用 Zero-Eval 提示格式Lin, 2024。对于其他数据集我们遵循其原始评估协议使用数据集创建者提供的默认提示。在代码和数学基准方面HumanEval-Mul 数据集总共包含 8 种主流编程语言Python、Java、Cpp、C#、JavaScript、TypeScript、PHP 和 Bash。我们使用思维链CoT和非思维链方法评估模型在 LiveCodeBench 上的性能其中数据收集于 2024 年 8 月至 11 月。Codeforces 数据集通过参赛者的百分比进行衡量。SWE-Bench verified 使用无代理框架Xia 等人2024进行评估。我们使用 “diff” 格式评估与 Aider 相关的基准。对于数学评估AIME 和 CNMO 2024 在温度为 0.7 的情况下进行评估结果取 16 次运行的平均值而 MATH-500 采用贪心解码。我们允许所有模型在每个基准上最多输出 8192 个 token。
基准指标DeepSeek-V2-0506DeepSeek-V2.5-0905Qwen2.5 72B-InstLLaMA-3.1 405B-InstClaude-3.5-Sonnet-1022GPT-4o-0513DeepSeek-V3架构MoEMoE密集型密集型--MoE激活参数数量210 亿210 亿720 亿4050 亿--370 亿总参数数量2360 亿2360 亿720 亿4050 亿--6710 亿英语MMLUEM78.280.685.388.688.387.288.5MMLU-ReduxEM77.980.385.686.288.988.089.1MMLU-ProEM58.566.271.673.378.072.675.9DROP3-shot F183.087.876.788.788.383.791.6IF-EvalPrompt Strict57.780.684.186.086.584.386.1GPQA-DiamondPass135.341.349.051.165.049.959.1SimpleQACorrect9.010.29.117.128.438.224.9FRAMESAcc66.965.469.870.072.580.573.3LongBench v2Acc31.635.439.436.141.048.148.7代码HumanEval-MulPass169.377.477.377.281.780.582.6LiveCodeBenchPass1-Cor18.829.231.128.436.333.440.5LiveCodeBenchPass120.328.428.730.132.834.237.6CodeforcesPercentile17.535.624.825.320.323.651.6SWE VerifiedResolved22.623.824.550.838.842.0Aider-EditAcc60.371.665.463.984.272.979.7Aider-PolyglotAcc18.27.65.845.316.049.6数学AIME 2024Pass14.616.723.323.316.09.339.2MATH-500EM56.374.780.073.878.374.690.2CNMO 2024Pass12.810.815.96.813.110.843.2中文C-EvalEM89.990.491.484.785.487.990.9CLUEWSCEM78.679.586.161.576.776.086.5C-SimpleQACorrect48.554.148.450.451.359.364.8表 6 DeepSeek-V3 与其他代表性聊天模型的比较。所有模型均在输出长度限制为 8K 的配置下进行评估。包含少于 1000 个样本的基准使用不同温度设置进行多次测试以得出可靠的最终结果。DeepSeek-V3 是性能最佳的开源模型并且与前沿闭源模型相比也具有竞争力5.3.2 标准评估表 6 展示了评估结果表明 DeepSeek-V3 是性能最佳的开源模型。此外它与前沿闭源模型如 GPT-4o 和 Claude-3.5-Sonnet相比也具有竞争力。英语基准MMLU 是一个广泛认可的基准用于评估大语言模型在不同知识领域和任务上的性能。DeepSeek-V3 表现出有竞争力的性能与顶级模型如 LLaMA-3.1-405B、GPT-4o 和 Claude-Sonnet 3.5相当同时显著优于 Qwen2.5 72B。此外DeepSeek-V3 在 MMLU-Pro一个更具挑战性的教育知识基准上表现出色与 Claude-Sonnet 3.5 非常接近。在 MMLU-ReduxMMLU 的改进版本修正了标签上DeepSeek-V3 超过了其他同行。在 GPQA-Diamond一个博士水平的评估测试平台上DeepSeek-V3 取得了显著的成绩仅次于 Claude 3.5 Sonnet并且大幅领先其他竞争对手。在长上下文理解基准如 DROP、LongBench v2 和 FRAMES中DeepSeek-V3 继续展示其顶级模型的地位。它在 DROP 的 3-shot 设置中取得了令人印象深刻的 91.6 F1 分数超过了该类别中的所有其他模型。在 FRAMES一个需要在 100k token 上下文上进行问答的基准中DeepSeek-V3 紧随 GPT-4o 之后同时大幅领先其他模型。这展示了 DeepSeek-V3 在处理极长上下文任务方面的强大能力。DeepSeek-V3 的长上下文能力在 LongBench v2在 DeepSeek V3 发布前几周发布的数据集上的最佳性能进一步得到验证。在事实知识基准 SimpleQA 上DeepSeek-V3 落后于 GPT-4o 和 Claude-Sonnet这主要是由于其设计重点和资源分配。DeepSeek-V3 将更多训练 token 用于学习中文知识因此在 C-SimpleQA 上表现出色。在指令跟随基准上DeepSeek-V3 显著优于其前身 DeepSeek-V2 系列突出了其在理解和遵守用户定义格式约束方面的改进能力。代码和数学基准编码是大语言模型面临的一项具有挑战性和实用性的任务涵盖了像 SWE-Bench-Verified 和 Aider 这样的工程任务以及像 HumanEval 和 LiveCodeBench 这样的算法任务。在工程任务中DeepSeek-V3 落后于 Claude-Sonnet-3.5-1022但显著优于开源模型。开源的 DeepSeek-V3 有望推动编码相关工程任务的进展。通过提供其强大的能力DeepSeek-V3 可以在软件工程和算法开发等领域推动创新和改进使开发者和研究人员能够拓展开源模型在编码任务中的能力边界。在算法任务中DeepSeek-V3 展示了卓越的性能在 HumanEval-Mul 和 LiveCodeBench 等基准上超过了所有基线。这一成功可归因于其先进的知识蒸馏技术该技术有效地增强了其在算法相关任务中的代码生成和问题解决能力。在数学基准上DeepSeek-V3 展示了卓越的性能显著超越基线为非 o1 类模型树立了新的最先进水平。具体来说在 AIME、MATH-500 和 CNMO 2024 上DeepSeek-V3 的绝对得分比第二好的模型 Qwen2.5 72B 高出约 10%对于如此具有挑战性的基准而言这是一个巨大的差距。这一卓越能力突出了从 DeepSeek-R1 蒸馏知识的有效性已证明这对非 o1 类模型非常有益。
模型 Arena-Hard AlpacaEval 2.0 DeepSeek-V2.5-0905 76.2 50.5 Qwen2.5-72B-Instruct 81.2 49.1 LLaMA-3.1 405B 69.3 40.5 GPT-4o-0513 80.4 51.1 Claude-Sonnet-3.5-1022 85.2 52.0 DeepSeek-V3 85.5 70.0
表 7 英文开放式对话评估。对于 AlpacaEval 2.0我们使用长度控制胜率作为指标 5.3.3 开放评估 除了标准基准测试我们还使用大语言模型作为评判者对模型在开放式生成任务上进行评估结果见表 7。具体来说我们遵循 AlpacaEval 2.0Dubois 等人2024和 Arena-HardLi 等人2024a的原始配置利用 GPT-4-Turbo-1106 作为评判者进行两两比较。在 Arena-Hard 上DeepSeek-V3 与基线 GPT-4-0314 相比胜率超过 86%与 Claude-Sonnet-3.5-1022 等顶级模型表现相当。这突出了 DeepSeek-V3 强大的能力特别是在处理复杂提示包括编码和调试任务方面。此外DeepSeek-V3 成为第一个在 Arena-Hard 基准上超过 85% 胜率的开源模型这一成就显著缩小了开源模型和闭源模型之间的性能差距为开源模型在具有挑战性的领域中设定了新的标准。 同样DeepSeek-V3 在 AlpacaEval 2.0 上也展现出卓越的性能超过了闭源模型和开源模型。这展示了它在写作任务和处理简单问答场景方面的出色能力。值得注意的是它比 DeepSeek-V2.5-0905 的胜率高出 20%这突出了它在处理简单任务方面的显著改进也展示了其改进的有效性。 5.3.4 DeepSeek-V3 作为生成式奖励模型 我们将 DeepSeek-V3 的评判能力与最先进的模型即 GPT-4o 和 Claude-3.5进行比较。表 8 展示了这些模型在 RewardBenchLambert 等人2024上的性能。DeepSeek-V3 的表现与 GPT-4o-0806 和 Claude-3.5-Sonnet-1022 的最佳版本相当同时超过了其他版本。此外DeepSeek-V3 的评判能力还可以通过投票技术得到增强。因此我们使用 DeepSeek-V3 结合投票为开放式问题提供自我反馈从而提高对齐过程的有效性和稳健性。
模型 Chat Chat-Hard Safety Reasoning Average GPT-4o-0513 96.6 70.4 86.7 84.9 84.7 GPT-4o-0806 96.1 76.1 88.1 86.6 86.7 GPT-4o-1120 95.8 71.3 86.2 85.2 84.6 Claude-3.5-sonnet-0620 96.4 74.0 81.6 84.7 84.2 Claude-3.5-sonnet-1022 96.4 79.7 91.1 87.6 88.7 DeepSeek-V3 96.9 79.8 87.0 84.3 87.0 DeepSeek-V3maj6 96.9 82.6 89.5 89.2 89.6
表 8 GPT-4o、Claude-3.5-sonnet 和 DeepSeek-V3 在 RewardBench 上的性能
模型 LiveCodeBench-CoT MATH-500 Pass1 Length Pass1 Length DeepSeek-V2.5 Baseline 31.1 718 74.6 769 DeepSeek-V2.5 R1 Distill 37.4 783 83.2 1510
表 9 从 DeepSeek-R1 蒸馏知识的贡献。LiveCodeBench 和 MATH-500 的评估设置与表 6 相同 5.4 讨论 5.4.1 从 DeepSeek-R1 蒸馏知识 我们基于 DeepSeek-V2.5 对从 DeepSeek-R1 蒸馏知识的贡献进行了消融研究。基线模型在短思维链CoT数据上进行训练而其竞争模型使用上述专家检查点生成的数据。 表 9 展示了蒸馏数据的有效性在 LiveCodeBench 和 MATH-500 基准测试中都显示出显著的改进。我们的实验揭示了一个有趣的权衡蒸馏带来了更好的性能但也大幅增加了平均响应长度。为了在模型准确性和计算效率之间保持平衡我们为 DeepSeek-V3 精心选择了蒸馏的最佳设置。 我们的研究表明从推理模型中进行知识蒸馏为后训练优化提供了一个有前景的方向。虽然我们目前的工作主要集中在从数学和编码领域蒸馏数据但这种方法在各种任务领域具有更广泛的应用潜力。在这些特定领域展示的有效性表明长思维链蒸馏对于提高其他需要复杂推理的认知任务的模型性能可能是有价值的。进一步探索这种方法在不同领域的应用仍然是未来研究的一个重要方向。 5.4.2 自奖励 奖励在强化学习中起着关键作用指导优化过程。在可以通过外部工具轻松验证的领域如某些编码或数学场景中强化学习表现出卓越的效果。然而在更一般的场景中构建有效的反馈机制具有挑战性。自奖励是一种有潜力的解决方案它使模型能够根据自己的输出评估奖励。在 DeepSeek-V3 中我们探索了使用模型自身的预测作为奖励信号的一部分。初步实验表明这种方法在某些任务中可以提高模型的性能但也面临着一些问题如奖励信号的一致性和稳定性。未来的研究需要更深入地探讨如何设计有效的自奖励策略以提高模型在各种场景下的性能。 5.4.3 多 token 预测评估 尽管多 token 预测MTP在训练过程中显示出提高模型性能的潜力但在评估方面仍存在挑战。传统的评估指标如准确率、F1 值等可能无法充分捕捉 MTP 对模型能力的影响。例如MTP 可能使模型生成更连贯和准确的长文本但这些改进可能不会直接反映在标准评估指标中。此外MTP 的训练目标与实际应用中的推理场景之间存在差异这也给评估带来了困难。我们需要开发新的评估方法能够更好地衡量 MTP 对模型性能的影响特别是在长文本生成和复杂任务处理方面。这将有助于更准确地评估模型的能力并指导未来的模型改进。 6. 结论、局限性和未来方向
DeepSeek-V3 是一个强大的混合专家语言模型在多个基准测试中取得了优异的成绩展示了其在知识、代码、数学和推理等领域的卓越能力。通过创新的架构设计如无辅助损失的负载均衡策略和多 token 预测训练目标、高效的训练框架支持 FP8 混合精度训练和优化的通信机制以及精心策划的训练数据我们实现了强大的模型性能和经济高效的训练过程。DeepSeek-V3 不仅在开源模型中表现最佳而且与前沿闭源模型相比也具有竞争力。 然而DeepSeek-V3 仍然存在一些局限性。在模型性能方面尽管它在许多任务中表现出色但在处理某些复杂或特定领域的问题时仍有改进的空间。例如在一些需要深入领域知识和专业推理的任务中模型的表现可能不尽如人意。此外虽然我们在训练效率方面取得了显著进展但进一步提高训练和推理效率仍然是一个重要的目标特别是在处理大规模数据和长上下文时。 在模型架构方面虽然 Transformer 架构在大语言模型中取得了巨大成功但它也存在一些固有的局限性如计算复杂度随序列长度增加而增加。突破 Transformer 架构的限制探索新的架构设计对于提升模型的能力至关重要。 在数据方面尽管我们使用了大量高质量的训练数据但数据的质量和多样性仍有提升的空间。探索更多样化的数据来源和更有效的数据增强技术将有助于进一步提高模型的泛化能力和性能。 未来我们计划从以下几个方向继续推进研究 持续提高模型的性能特别是在复杂任务和特定领域中的表现。我们将探索更先进的训练方法和架构改进以增强模型的推理能力和知识理解能力。例如研究如何更好地整合外部知识源使模型能够处理更专业和复杂的问题。 进一步提高训练和推理效率。我们将探索新的硬件加速技术和算法优化以减少训练时间和资源消耗。同时我们将努力提高模型对长上下文的处理能力实现更高效的无限上下文长度支持。 突破 Transformer 架构的限制探索新的模型架构。这可能包括研究基于不同原理的架构设计或者对 Transformer 进行创新性的改进以克服其当前的局限性提升模型的建模能力。 不断迭代训练数据的数量和质量探索引入额外的训练信号源。我们将尝试从更多样化的领域收集数据并开发更有效的数据处理和增强技术以推动数据在更全面的维度上进行扩展。 持续探索和迭代模型的深度思考能力通过扩展推理长度和深度来提高其智能水平和问题解决能力。例如研究如何让模型进行更深入的推理和更复杂的逻辑思考以应对更具挑战性的任务。 探索更全面和多维的模型评估方法避免在研究过程中过度优化固定的基准测试集。这将有助于更准确地评估模型的能力避免对模型性能产生误导性的评价确保我们对模型的基础评估更加可靠。 通过不断努力解决这些问题并探索新的方向我们相信能够进一步提升大语言模型的能力为人工智能的发展做出更大的贡献。
更多技术内容
更多技术内容可参见 《自然语言处理原理与实战》人工智能科学与技术丛书【陈敬雷编著】【清华大学出版社】书籍。 更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。
总结
此文章有对应的配套新书教材和视频
【配套新书教材】 《自然语言处理原理与实战》人工智能科学与技术丛书【陈敬雷编著】【清华大学出版社】 新书特色本书从自然语言处理基础开始逐步深入各种NLP热点前沿技术使用了Java和Python两门语言精心编排了大量代码实例契合公司实际工作场景技能侧重实战。 全书共分为19章详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型Language Model、分布式深度学习实战等内容同时配套完整实战项目例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。 本书理论联系实践深入浅出知识点全面通过阅读本书读者不仅可以理解自然语言处理的知识还能通过实战项目案例更好地将理论融入实际工作中。 《分布式机器学习实战》人工智能科学与技术丛书【陈敬雷编著】【清华大学出版社】 新书特色深入浅出逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。
【配套视频】
推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】 视频特色把目前互联网热门、前沿的项目实战汇聚一堂通过真实的项目实战课程让你快速成为算法总监、架构师、技术负责人包含了推荐系统、智能问答、人脸识别等前沿的精品课程下面分别介绍各个实战项目 1、推荐算法系统实战 听完此课可以实现一个完整的推荐系统下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目 2、智能问答/对话机器人实战 由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程 3、人脸识别实战 从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向从理论到源码实战、再到服务器操作给大家深度讲解
自然语言处理NLP原理与实战 视频教程【陈敬雷】 视频特色《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理以及源码级别的应用操作实战直接讲解自然语言处理的核心精髓部分自然语言处理从业者或者转行自然语言处理者必听视频
人工智能《分布式机器学习实战》 视频教程【陈敬雷】 视频特色视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战推荐算法系统实战、人脸识别实战、对话机器人实战。
上一篇自然语言处理系列六十八》搜索引擎项目实战》搜索引擎系统架构设计 下一篇自然语言处理系列七十》搜索引擎项目实战》搜索Query意图识别和智能纠错