type
status
password
date
slug
summary
category
URL
tags
icon
摘要
本文介绍了DeepSeek-V3,这是一款强大的混合专家(MoE)语言模型,总参数达6710亿,每个token激活370亿参数。为实现高效且低成本的训练和推理,DeepSeek-V3采用 Multi-head Latent Attention(MLA)和DeepSeekMoE架构,这两种架构在DeepSeek-V2中已得到充分验证。此外,DeepSeek-V3首创了无辅助损失的负载均衡策略,并设置了multi-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. 引言
近年来,大语言模型(LLMs)经历了快速的迭代和发展(Anthropic, 2024; Google, 2024; OpenAI, 2024a),与通用人工智能(AGI)的差距逐渐缩小。除了闭源模型,包括DeepSeek系列(DeepSeek-AI, 2024a,b,c; Guo等人, 2024)、LLaMA系列(AI@Meta, 2024a,b; Touvron等人, 2023a,b)、Qwen系列(Qwen, 2023, 2024a,b)和Mistral系列(Jiang等人, 2023; Mistral, 2024)在内的开源模型也在取得重大进展,努力缩小与闭源模型之间的差距。为了进一步拓展开源模型的能力边界,我们扩大了模型规模,推出了DeepSeek-V3,这是一个拥有6710亿参数的大型混合专家(MoE)模型,每个token会激活其中370亿参数。
从长远角度出发,我们一直致力于追求强大的模型性能和低成本。因此,在架构方面,DeepSeek-V3仍然采用多头潜在注意力(MLA)(DeepSeek-AI, 2024c)以实现高效推理,并采用DeepSeekMoE(Dai等人, 2024)来降低训练成本。这两种架构已在DeepSeek-V2(DeepSeek-AI, 2024c)中得到验证,证明了它们在实现高效训练和推理的同时,能够维持强大的模型性能。除了基本架构,我们还实施了另外两种策略来进一步提升模型能力。首先,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算法以实现高效的流水线并行,该算法的流水线气泡更少,并且通过计算 - 通信重叠,在训练过程中隐藏了大部分通信开销。这种重叠确保了随着模型规模的进一步扩大,只要我们保持计算与通信的比率不变,就可以在节点间采用细粒度的专家并行,同时实现近乎为零的全对全通信开销。此外,我们还开发了高效的跨节点全对全通信内核,以充分利用InfiniBand(IB)和NVLink的带宽。我们还对内存占用进行了细致的优化,使得在不使用昂贵的张量并行的情况下训练DeepSeek-V3成为可能。综合这些努力,我们实现了高训练效率。
在预训练阶段,我们使用14.8万亿高质量的token对DeepSeek-V3进行训练。预训练过程非常稳定,在整个训练过程中,我们没有遇到任何不可恢复的损失峰值,也无需进行回滚操作。接下来,我们对DeepSeek-V3进行了两个阶段的上下文长度扩展。在第一阶段,最大上下文长度扩展到32K,在第二阶段,进一步扩展到128K。之后,我们对DeepSeek-V3的基础模型进行了包括监督微调(SFT)和强化学习(RL)在内的后训练,使其更符合人类偏好,并进一步挖掘其潜力。在后训练阶段,我们从DeepSeekR1系列模型中提取推理能力,同时仔细平衡模型准确性和生成长度。
我们在一系列综合基准上对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小时的经济成本,我们完成了对DeepSeek-V3在14.8万亿token上的预训练,得到了目前最强的开源基础模型。预训练后的后续训练阶段仅需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)方面超越了这些模型,凸显了其在中文事实性知识方面的优势。
- 代码、数学和推理方面:(1)DeepSeek-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的基本架构,其特点是采用多头潜在注意力机制(MLA)(DeepSeek-AI, 2024c)实现高效推理,采用DeepSeekMoE(Dai等人, 2024)进行经济高效的训练。然后,我们提出一种多token预测(MTP)训练目标,经观察,该目标可在评估基准上提升整体性能。对于未明确提及的其他细节,DeepSeek-V3遵循DeepSeek-V2(DeepSeek-AI, 2024c)的设置。
2.1 基本架构
DeepSeek-V3的基本架构仍基于Transformer(Vaswani等人, 2017)框架。为实现高效推理和经济高效的训练,DeepSeek-V3同样采用了经DeepSeek-V2充分验证的MLA和DeepSeekMoE架构。与DeepSeek-V2不同的是,我们为DeepSeekMoE引入了一种无辅助损失的负载均衡策略(Wang等人, 2024a),以减轻为确保负载均衡而对模型性能造成的影响。图2展示了DeepSeek-V3的基本架构,在本节中,我们将简要回顾MLA和DeepSeekMoE的细节。
2.1.1 多头潜在注意力机制
对于注意力机制,DeepSeek-V3采用MLA架构。用表示嵌入维度,表示注意力头的数量,表示每个头的维度,表示在给定注意力层中第个token的注意力输入。MLA的核心是对注意力键和值进行低秩联合压缩,以减少推理过程中的键值(KV)缓存:
其中,是键和值的压缩潜在向量;表示KV压缩维度;是下投影矩阵;、分别是键和值的上投影矩阵;是用于生成携带旋转位置嵌入(RoPE)(Su等人, 2024)的解耦键的矩阵;RoPE表示应用RoPE矩阵的操作;表示连接操作。需要注意的是,对于MLA,在生成过程中仅需缓存蓝色框中的向量(即和),这在保持与标准多头注意力(MHA)(Vaswani等人, 2017)相当性能的同时,显著减少了KV缓存。
对于注意力查询,我们同样进行低秩压缩,这可以减少训练过程中的激活内存:
其中,是查询的压缩潜在向量;表示查询压缩维度;、分别是查询的下投影和上投影矩阵;是用于生成携带RoPE的解耦查询的矩阵。
最终,注意力查询()、键()和值()相结合,产生最终的注意力输出:
其中,是输出投影矩阵。
在推理过程中,合并与(因为注意力分数是标量,所以可以合并);合并与
2.1.2 采用无辅助损失负载均衡的DeepSeekMoE
- DeepSeekMoE的基本架构:对于前馈网络(FFNs),DeepSeek-V3采用DeepSeekMoE架构(Dai等人, 2024)。与传统的MoE架构(如GShard(Lepikhin等人, 2021))相比,DeepSeekMoE使用更细粒度的专家,并将部分专家设置为共享专家。用表示第个token的FFN输入,我们通过以下公式计算FFN输出:
其中,和分别表示共享专家和路由专家的数量;和分别表示第个共享专家和第个路由专家;表示激活的路由专家数量;是第个专家的门控值;是令牌与专家的亲和度;是第个路由专家的质心向量;表示在为第个token计算的所有路由专家亲和度分数中,由个最高分数组成的集合。
与DeepSeek-V2略有不同,DeepSeek-V3使用sigmoid函数计算亲和度分数,并对所有选定的亲和度分数进行归一化以生成门控值。
- 无辅助损失的负载均衡:对于MoE模型,专家负载不均衡会导致路由崩溃(Shazeer等人, 2017),并降低专家并行场景下的计算效率。传统解决方案通常依赖辅助损失(Fedus等人, 2021; Lepikhin等人, 2021)来避免负载不均衡。然而,过大的辅助损失会损害模型性能(Wang等人, 2024a)。为了在负载均衡和模型性能之间实现更好的平衡,我们首创了无辅助损失的负载均衡策略(Wang等人, 2024a)以确保负载均衡。具体而言,我们为每个专家引入一个偏差项,并将其添加到相应的亲和度分数中,以确定前路由:
需要注意的是,偏差项仅用于路由。与FFN输出相乘的门控值仍源自原始亲和度分数。在训练过程中,我们持续监控每个训练步骤中整个批次的专家负载。在每个步骤结束时,如果某个专家负载过高,我们将其偏差项减小;如果负载过低,则将其偏差项增加,其中是一个名为偏差更新速度的超参数。通过动态调整,DeepSeek-V3在训练过程中保持了均衡的专家负载,并且比仅通过辅助损失促进负载均衡的模型表现更优。
- 互补的序列级辅助损失:尽管DeepSeek-V3主要依靠无辅助损失策略来实现负载均衡,但为了防止单个序列内出现极端不均衡,我们还采用了互补的序列级平衡损失:
其中,平衡因子是一个超参数,对于DeepSeek-V3,其取值极小;表示指示函数;表示序列中的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实现的详细信息。

图3 多token预测(MTP)实现示意图。我们在每个深度的每个token预测中保持完整的因果链
2.2.1 MTP模块
具体来说,我们的MTP实现使用个顺序模块来预测个额外token。第个MTP模块由一个共享嵌入层、一个共享输出头、一个Transformer块和一个投影矩阵组成。对于第个输入token ,在第个预测深度,我们首先将第深度的第个token的表示与第个token的嵌入通过线性投影进行组合:
其中表示连接操作。特别地,当时,指的是主模型给出的表示。需要注意的是,每个MTP模块的嵌入层与主模型共享。组合后的作为第深度的Transformer块的输入,以产生当前深度的输出表示:
其中表示输入序列长度,表示切片操作(包含左右边界)。最后,以为输入,共享输出头将计算第个额外预测token 的概率分布,其中是词汇表大小:
输出头将表示线性映射到logits,随后应用Softmax函数计算第个额外token的预测概率。此外,每个MTP模块的输出头与主模型共享。我们保持预测因果链的原则与EAGLE(Li等人, 2024b)类似,但其主要目标是推测解码(Leviathan等人, 2023; Xia等人, 2023),而我们利用MTP来改进训练。
2.2.2 MTP训练目标
对于每个预测深度,我们计算一个交叉熵损失:
其中表示输入序列长度,表示第个位置的真实token,表示由第个MTP模块给出的的相应预测概率。最后,我们计算所有深度的MTP损失的平均值,并乘以一个加权因子,得到整体的MTP损失,作为DeepSeek-V3的额外训练目标:
2.2.3 MTP在推理中的应用
我们的MTP策略主要旨在提高主模型的性能,因此在推理时,我们可以直接丢弃MTP模块,主模型可独立正常运行。此外,我们还可以将这些MTP模块用于推测解码,以进一步降低生成延迟。
3. 基础设施
3.1 计算集群
DeepSeek-V3在一个配备2048块NVIDIA H800 GPU的集群上进行训练。H800集群中的每个节点包含8块通过NVLink和NVSwitch在节点内部互联的GPU。不同节点之间则利用InfiniBand(IB)互连来实现通信。
3.2 训练框架
DeepSeek-V3的训练由HAI-LLM框架支持,这是一个由我们的工程师全新打造的高效轻量级训练框架。总体而言,DeepSeek-V3采用16路流水线并行(PP)(Qi等人,2023a)、跨8个节点的64路专家并行(EP)(Lepikhin等人,2021)以及ZeRO-1数据并行(DP)(Rajbhandari等人,2020)。
为了便于DeepSeek-V3的高效训练,我们进行了细致的工程优化。首先,我们设计了DualPipe算法以实现高效的流水线并行。与现有的PP方法相比,DualPipe的流水线气泡更少。更重要的是,它在正向和反向传播过程中重叠了计算和通信阶段,从而解决了跨节点专家并行带来的高通信开销问题。其次,我们开发了高效的跨节点全对全通信内核,以充分利用IB和NVLink的带宽,并节省用于通信的流式多处理器(SM)资源。最后,我们对训练过程中的内存占用进行了细致优化,从而使我们能够在不使用昂贵的张量并行(TP)的情况下训练DeepSeek-V3。
3.2.1 DualPipe与计算 - 通信重叠
对于DeepSeek-V3,跨节点专家并行引入的通信开销导致计算与通信的比率约为1:1,效率较低。为应对这一挑战,我们设计了一种创新的流水线并行算法DualPipe,它不仅通过有效地重叠正向和反向计算 - 通信阶段来加速模型训练,还减少了流水线气泡。
DualPipe的核心思想是在一对单独的正向和反向块内重叠计算和通信。具体来说,我们将每个块分为四个部分:注意力计算、全对全分发、多层感知器(MLP)计算和全对全合并。特别地,对于反向块,注意力计算和MLP计算都进一步分为输入反向计算和权重反向计算两部分,就像在ZeroBubble(Qi等人,2023b)中那样。此外,我们还有一个PP通信部分。如图4所示,对于一对正向和反向块,我们重新排列这些组件,并手动调整用于通信和计算的GPU SM比例。在这种重叠策略下,我们可以确保全对全通信和PP通信在执行过程中都能被完全隐藏。基于这种高效的重叠策略,完整的DualPipe调度如图5所示。它采用双向流水线调度,同时从流水线的两端输入微批次数据,并且大部分通信都能被完全重叠。这种重叠还确保了随着模型规模的进一步扩大,只要我们保持计算与通信的比率不变,就可以在节点间采用细粒度的专家并行,同时实现近乎为零的全对全通信开销。

图4 一对正向和反向块的重叠策略(Transformer块的边界未对齐)。橙色表示正向,绿色表示“输入反向”,蓝色表示“权重反向”,紫色表示PP通信,红色表示屏障。全对全通信和PP通信都能被完全隐藏

图5 8个PP等级和20个微批次的双向DualPipe调度示例。反向的微批次与正向的微批次对称,为简化说明,我们省略了反向微批次的批次ID。由共享黑色边框包围的两个单元格的计算和通信相互重叠
此外,即使在通信负担不重的更一般场景中,DualPipe仍然具有效率优势。在表2中,我们总结了不同PP方法的流水线气泡和内存使用情况。如表所示,与ZB1P(Qi等人,2023b)和1F1B(Harlap等人,2018)相比,DualPipe显著减少了流水线气泡,同时仅将峰值激活内存增加了倍。虽然DualPipe需要保留两份模型参数,但由于我们在训练过程中使用了较大的EP规模,这并不会显著增加内存消耗。与Chimera(Li和Hoefler,2021)相比,DualPipe只要求流水线阶段数和微批次数能被2整除,而不要求微批次数能被流水线阶段数整除。此外,对于DualPipe,随着微批次数量的增加,气泡和激活内存都不会增加。

方法 | Bubble | 参数 | 激活 |
1F1B | 1倍 | ||
ZB1P | 1倍 | ||
DualPipe(我们的方法) | 2倍 |
表2 不同流水线并行方法的流水线气泡和内存使用情况比较。表示正向块的执行时间,表示完整反向块的执行时间,表示“权重反向”块的执行时间,表示两个相互重叠的正向和反向块的执行时间
3.2.2 跨节点全对全通信的高效实现
为了确保DualPipe有足够的计算性能,我们定制了高效的跨节点全对全通信内核(包括分发和合并),以节省用于通信的SM数量。这些内核的实现与MoE门控算法和我们集群的网络拓扑进行了协同设计。具体来说,在我们的集群中,跨节点的GPU通过IB完全互连,节点内的通信则通过NVLink处理。NVLink的带宽为160GB/s,大约是IB(50GB/s)的3.2倍。为了有效利用IB和NVLink的不同带宽,我们将每个令牌最多分发到4个节点,从而减少IB流量。对于每个令牌,在做出路由决策后,它将首先通过IB传输到目标节点上具有相同节点内索引的GPU。一旦到达目标节点,我们将确保它能立即通过NVLink转发到承载目标专家的特定GPU,而不会被随后到达的令牌阻塞。通过这种方式,IB和NVLink的通信完全重叠,每个令牌在每个节点上平均可以高效选择3.2个专家,且不会产生额外的NVLink开销。这意味着,尽管DeepSeek-V3在实际中只选择8个路由专家,但在保持相同通信成本的情况下,这个数字最多可以扩展到13个专家(4个节点×每个节点3.2个专家)。总体而言,在这样的通信策略下,仅需20个SM就足以充分利用IB和NVLink的带宽。
详细来说,我们采用了warp specialization技术(Bauer等人,2014),并将20个SM划分为10个通信通道。在分发过程中,(1)IB发送、(2)IB到NVLink的转发以及(3)NVLink接收分别由不同的warp处理。分配给每个通信任务的warp数量会根据所有SM上的实际工作量进行动态调整。类似地,在合并过程中,(1)NVLink发送、(2)NVLink到IB的转发和累加以及(3)IB接收和累加也由动态调整的warp处理。此外,分发和合并内核都与计算流重叠,因此我们也考虑了它们对其他SM计算内核的影响。具体来说,我们采用了定制的PTX(并行线程执行)指令,并自动调整通信块的大小,这显著减少了L2缓存的使用以及对其他SM的干扰。
3.2.3 极低内存占用与最小开销
为了减少训练过程中的内存占用,我们采用了以下技术:
- RMSNorm和MLA上投影的重计算:在反向传播过程中,我们对所有RMSNorm操作和MLA上投影进行重计算,从而无需持久存储它们的输出激活。通过极小的开销,这一策略显著降低了存储激活所需的内存。
- CPU中的指数移动平均:在训练过程中,我们保存模型参数的指数移动平均(EMA),以便在学习率衰减后对模型性能进行早期评估。EMA参数存储在CPU内存中,并在每个训练步骤后异步更新。这种方法使我们能够在不增加额外内存或时间开销的情况下维护EMA参数。
- 多令牌预测的共享嵌入和输出头:通过DualPipe策略,我们将模型的最浅层(包括嵌入层)和最深层(包括输出头)部署在相同的PP等级上。这种安排使得MTP模块和主模型之间能够在物理上共享嵌入层和输出头的参数和梯度。这种物理共享机制进一步提高了我们的内存效率。
3.3 FP8训练
受近期低精度训练进展(Dettmers等人,2022;Noune等人,2022;Peng等人,2023b)的启发,我们提出了一种利用FP8数据格式训练DeepSeek-V3的细粒度混合精度框架。虽然低精度训练前景广阔,但它常常受到激活值、权重和梯度中的异常值的限制(Fishman等人,2024;He等人;Sun等人,2024)。尽管在推理量化方面已经取得了显著进展(Frantar等人,2022;Xiao等人,2023),但在大规模语言模型预训练中成功应用低精度技术的研究相对较少(Fishman等人,2024)。为了应对这一挑战并有效扩展FP8格式的动态范围,我们引入了一种细粒度量化策略:按tile分组(具有个元素)或按块分组(具有个元素)。在我们提高精度的累加过程中,相关的反量化开销在很大程度上得到了缓解,这是实现准确的FP8通用矩阵乘法(GEMM)的关键。此外,为了进一步减少MoE训练中的内存和通信开销,我们以FP8格式缓存和分发激活值,同时以BF16格式存储低精度优化器状态。我们在两个与DeepSeek-V2-Lite和DeepSeek-V2规模相似的模型上验证了所提出的FP8混合精度框架,训练了约1万亿个token(更多细节见附录B.1)。值得注意的是,与BF16基线相比,我们的FP8训练模型的相对损失误差始终保持在0.25%以下,这一水平完全在训练随机性的可接受范围内。
3.3.1 混合精度框架
基于在低精度训练中广泛采用的技术(Kalamkar等人,2019;Narang等人,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)。这种方法使得低精度训练对激活异常值高度敏感,这可能会严重降低量化精度。为了解决这个问题,我们提出了一种细粒度量化方法,在更细的粒度上进行缩放。如图7(a)所示,(1)对于激活值,我们以1x128的tile为单位(即每个令牌的128个通道)对元素进行分组和缩放;(2)对于权重,我们以128x128的块为单位(即每128个输入通道和128个输出通道)对元素进行分组和缩放。这种方法确保量化过程能够根据较小的元素组调整缩放比例,从而更好地适应异常值。在附录B.2中,我们进一步讨论了如果像权重量化那样以块为单位对激活值进行分组和缩放时,训练的不稳定性问题。

图7 (a)我们提出一种细粒度量化方法来减轻由特征异常值引起的量化误差;为简化说明,仅展示了Fprop。(b)结合我们的量化策略,通过每隔个元素将计算提升到CUDA核心进行高精度累加,提高了FP8 GEMM的精度
我们方法中的一个关键改进是在GEMM操作的内维度上引入了每组缩放因子。标准的FP8 GEMM并不直接支持这一功能,但结合我们精确的FP32累加策略,它可以高效实现。
值得注意的是,我们的细粒度量化策略与微缩放格式(Rouhani等人,2023b)的理念高度一致,而NVIDIA下一代GPU(Blackwell系列)的张量核心已宣布支持具有更细量化粒度的微缩放格式(NVIDIA,2024a)。我们希望我们的设计能够为未来的工作提供参考,以跟上最新的GPU架构发展。
- 提高累加精度:低精度GEMM操作经常受到下溢问题的困扰,其准确性在很大程度上依赖于高精度累加,通常以FP32精度进行(Kalamkar等人,2019;Narang等人,2017)。然而,我们观察到NVIDIA H800 GPU上FP8 GEMM的累加精度仅限于保留约14位,这明显低于FP32累加精度。当内维度较大时(Wortsman等人,2023),这个问题会更加突出,这在大规模模型训练中是常见的场景,因为此时批量大小和模型宽度都会增加。以两个随机矩阵的GEMM操作()为例,在我们的初步测试中,张量核心有限的累加精度导致最大相对误差接近2%。尽管存在这些问题,有限的累加精度在一些FP8框架中仍然是默认选项(NVIDIA,2024b),严重限制了训练精度。
为了解决这个问题,我们采用了提升到CUDA核心以获得更高精度的策略(Thakkar等人,2023)。过程如图7(b)所示。具体来说,在张量核心执行矩阵乘法累加(MMA)时,中间结果使用有限的位宽进行累加。一旦达到个元素的间隔,这些部分结果将被复制到CUDA核心的FP32寄存器中,在那里进行全精度的FP32累加。如前所述,我们的细粒度量化在K维度上应用了每组缩放因子。这些缩放因子可以在CUDA核心上作为反量化过程进行高效乘法运算,且额外计算成本极小。
值得注意的是,这种修改降低了单个warp组的WGMMA(warp组级矩阵乘法累加)指令问题率。然而,在H800架构中,通常会同时执行两个WGMMA操作:当一个warp组执行提升操作时,另一个warp组能够执行MMA操作。这种设计使得两个操作可以重叠,保持了张量核心的高利用率。根据我们的实验,将设置为128个元素(相当于4个 WGMMA 操作),是能够在不引入大量额外开销的情况下显著提高精度的最小累加间隔。
- 尾数优先于指数:与先前工作(NVIDIA, 2024b; Peng等人, 2023b; Sun等人, 2019b)采用的混合FP8格式不同,这些工作在前向传播(Fprop)中使用E4M3(4位指数和3位尾数),在激活反向传播(Dgrad)和权重反向传播(Wgrad)中使用E5M2(5位指数和2位尾数),而我们在所有张量上均采用E4M3格式以获得更高精度。我们将这种方法的可行性归因于我们的细粒度量化策略,即按tile和块进行缩放。通过对较小的元素组进行操作,我们的方法有效地在这些分组元素之间共享指数位,减轻了有限动态范围的影响。
- 在线量化:在基于张量的量化框架(NVIDIA, 2024b; Peng等人, 2023b)中采用延迟量化,该方法通过记录先前迭代中的最大绝对值来推断当前值。为了确保缩放比例的准确性并简化框架,我们针对每个1x128的激活tile或128x128的权重块在线计算最大绝对值。基于此,我们推导出缩放因子,然后将激活值或权重在线量化为FP8格式。
3.3.3 低精度存储和通信
结合我们的FP8训练框架,我们通过将缓存的激活值和优化器状态压缩为更低精度的格式,进一步降低了内存消耗和通信开销。
- 低精度优化器状态:我们采用BF16数据格式而非FP32来跟踪AdamW(Loshchilov和Hutter, 2017)优化器中的一阶矩和二阶矩,且未观察到性能下降。然而,优化器存储的主权重和用于批量大小累加的梯度仍保留为FP32,以确保整个训练过程中的数值稳定性。
- 低精度激活:如图6所示,Wgrad操作以FP8精度执行。为降低内存消耗,在Linear算子的反向传播中以FP8格式缓存激活值是一种自然的选择。然而,对于一些算子,为实现低成本的高精度训练,我们进行了特殊考虑:
- 注意力算子之后的Linear算子的输入:这些激活值也用于注意力算子的反向传播,因此对精度较为敏感。我们专门为这些激活值采用定制的E5M6数据格式。此外,在反向传播中,这些激活值将从1x128的量化tile转换为128x1的tile。为避免引入额外的量化误差,所有缩放因子均进行舍入缩放,即2的整数次幂。
- MoE中SwiGLU算子的输入:为进一步降低内存成本,我们缓存SwiGLU算子的输入,并在反向传播中重新计算其输出。这些激活值也使用我们的细粒度量化方法存储为FP8格式,在内存效率和计算精度之间取得平衡。
- 低精度通信:通信带宽是MoE模型训练中的关键瓶颈。为缓解这一挑战,我们在MoE上投影之前将激活值量化为FP8,然后应用分发组件,这与MoE上投影中的FP8 Fprop兼容。与注意力算子之后的Linear算子的输入类似,这种激活值的缩放因子为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在节点间传输令牌,然后通过NVLink在节点内的GPU之间进行转发。特别地,对于浅层的密集MLP,我们使用1路张量并行以节省TP通信开销。
为实现MoE部分不同专家之间的负载均衡,我们需要确保每个GPU处理的令牌数量大致相同。为此,我们引入了冗余专家的部署策略,即复制高负载专家并进行冗余部署。高负载专家通过在线部署期间收集的统计信息进行检测,并定期(例如每10分钟)进行调整。在确定冗余专家集后,我们根据观察到的负载情况,在节点内的GPU之间仔细重新安排专家,力求在不增加跨节点全对全通信开销的情况下尽可能平衡GPU之间的负载。对于DeepSeek-V3的部署,我们在预填充阶段设置了32个冗余专家。对于每个GPU,除了原本承载的8个专家外,还将额外承载1个冗余专家。
此外,在预填充阶段,为提高吞吐量并隐藏全对全通信和TP通信的开销,我们同时处理两个计算工作量相似的微批次,将一个微批次的注意力和MoE计算与另一个微批次的分发和合并操作重叠进行。
最后,我们正在探索专家的动态冗余策略,即每个GPU承载更多专家(例如16个专家),但在每次推理步骤中仅激活9个。在每一层的全对全操作开始之前,我们实时计算全局最优路由方案。鉴于预填充阶段的计算量较大,计算此路由方案的开销几乎可以忽略不计。
3.4.2 解码
在解码过程中,我们将共享专家视为路由专家。从这个角度来看,每个令牌在路由时将选择9个专家,其中共享专家被视为高负载专家,始终会被选中。解码阶段的最小部署单元由40个节点和320个GPU组成。注意力部分采用TP4与SP相结合,并搭配DP80,而MoE部分使用EP320。对于MoE部分,每个GPU仅承载1个专家,64个GPU负责承载冗余专家和共享专家。分发和合并部分的全对全通信通过IB进行直接点对点传输,以实现低延迟。此外,我们利用IBGDA(NVIDIA, 2022)技术进一步降低延迟并提高通信效率。
与预填充阶段类似,我们根据在线服务中统计的专家负载,在特定间隔内定期确定冗余专家集。然而,由于每个GPU仅承载1个专家,我们无需重新安排专家。我们也在探索解码阶段的动态冗余策略,但这需要更仔细地优化计算全局最优路由方案的算法,并与分发内核进行融合以降低开销。
此外,为提高吞吐量并隐藏全对全通信的开销,我们也在探索在解码阶段同时处理两个计算工作量相似的微批次。与预填充阶段不同,解码阶段注意力计算消耗的时间占比较大。因此,我们将一个微批次的注意力计算与另一个微批次的分发 + MoE + 合并操作重叠进行。在解码阶段,每个专家的批次大小相对较小(通常在256个令牌以内),瓶颈在于内存访问而非计算。由于MoE部分仅需加载1个专家的参数,内存访问开销极小,因此分配较少的SM对整体性能影响不大。因此,为避免影响注意力部分的计算速度,我们可以仅为分发 + MoE + 合并操作分配一小部分SM。
3.5 硬件设计建议
基于我们对全对全通信和FP8训练方案的实现,我们向AI硬件供应商提出以下芯片设计建议。
3.5.1 通信硬件
在DeepSeek-V3中,我们通过计算和通信重叠来隐藏计算过程中的通信延迟,与串行计算和通信相比,这显著降低了对通信带宽的依赖。然而,当前的通信实现依赖于昂贵的SM(例如,我们在H800 GPU的132个SM中分配20个用于此目的),这将限制计算吞吐量。此外,使用SM进行通信会导致效率低下,因为张量核心会完全未被充分利用。
目前,SM在全对全通信中主要执行以下任务:
- 在IB(InfiniBand)和NVLink域之间转发数据,同时聚合从单个GPU发往同一节点内多个GPU的IB流量。
- 在RDMA缓冲区(注册的GPU内存区域)和输入/输出缓冲区之间传输数据。
- 执行全对全合并的归约操作。
- 在通过IB和NVLink域将分块数据传输到多个专家的过程中,管理细粒度的内存布局。
我们期望未来的供应商能够开发硬件,将这些通信任务从宝贵的计算单元SM中卸载,例如作为GPU协处理器或类似NVIDIA SHARP(Graham等人, 2016)的网络协处理器。此外,为降低应用程序编程的复杂性,我们希望这种硬件从计算单元的角度统一IB(横向扩展)和NVLink(纵向扩展)网络。有了这个统一的接口,计算单元可以通过基于简单原语提交通信请求,轻松地在整个IB - NVLink统一域中完成读取、写入、多播和归约等操作。
3.5.2 计算硬件
- 提高张量核心中FP8 GEMM的累加精度:在当前NVIDIA Hopper架构的张量核心实现中,FP8 GEMM的累加精度有限。在根据最大指数对32个尾数乘积进行右移对齐后,张量核心仅使用每个尾数乘积的最高14位进行加法运算,并截断超出此范围的位。将加法结果累加到寄存器中时也采用14位精度。我们的实现通过在CUDA核心中将128次FP8×FP8乘法的加法结果以FP32精度累加到寄存器中,部分缓解了这一限制。尽管这有助于成功进行FP8训练,但由于Hopper架构在FP8 GEMM累加精度方面的硬件缺陷,这只是一种折衷方案。未来的芯片需要采用更高的精度。
- 支持按tile和块量化:当前的GPU仅支持按张量量化,缺乏对我们这种按tile和块量化的细粒度量化的原生支持。在当前的实现中,当达到$N_{C}$间隔时,部分结果需要从张量核心复制到CUDA核心,乘以缩放因子,然后加到CUDA核心的FP32寄存器中。尽管结合我们精确的FP32累加策略,反量化开销显著降低,但张量核心和CUDA核心之间频繁的数据移动仍然限制了计算效率。因此,我们建议未来的芯片支持细粒度量化,使张量核心能够接收缩放因子并实现带分组缩放的MMA操作。这样,整个部分和累加以及反量化过程可以直接在张量核心内完成,直到产生最终结果,避免频繁的数据移动。
- 支持在线量化:尽管在线量化在我们的研究中显示出有效性,但当前的实现难以有效支持它。在现有过程中,我们需要从HBM(高带宽内存)读取128个BF16激活值(上一次计算的输出)进行量化,量化后的FP8值再写回HBM,然后再次读取用于MMA运算。为解决这种低效率问题,我们建议未来的芯片将FP8转换和TMA(张量内存加速器)访问集成到单个融合操作中,以便在激活值从全局内存传输到共享内存的过程中完成量化,避免频繁的内存读写。我们还建议支持warp级别的转换指令以提高速度,这进一步有助于更好地融合层归一化和FP8转换。或者,可以采用近内存计算方法,将计算逻辑放置在靠近HBM的位置。在这种情况下,BF16元素在从HBM读取到GPU时可以直接转换为FP8,从而将片外内存访问减少约50%。
- 支持转置GEMM操作:当前的架构使得矩阵转置与GEMM操作的融合变得繁琐。在我们的工作流程中,前向传播中的激活值被量化为1x128的FP8 tile并存储。在反向传播中,需要读取矩阵、反量化、转置、重新量化为128x1的tile,然后存储在HBM中。为减少内存操作,我们建议未来的芯片能够在MMA操作之前,直接从共享内存中以所需精度读取转置矩阵,这在训练和推理中都有需求。结合FP8格式转换和TMA访问的融合,这一改进将显著简化量化工作流程。
4. 预训练
4.1 数据构建
与DeepSeek-V2相比,我们优化了预训练语料库,提高了数学和编程样本的比例,同时扩大了多语言覆盖范围,涵盖了英语和中文以外的更多语言。我们还改进了数据处理流程,在保持语料库多样性的同时尽量减少冗余。受Ding等人(2024)的启发,我们采用文档打包方法来保证数据完整性,但在训练过程中未采用跨样本注意力掩码。最终,DeepSeek-V3的训练语料库包含了我们分词器处理后的14.8万亿个高质量且多样的token。
在DeepSeekCoder-V2(DeepSeek-AI,2024a)的训练过程中,我们观察到填充中间(Fill-in-Middle,FIM)策略在使模型能够根据上下文线索准确预测中间文本的同时,不会损害其下一个token的预测能力。与DeepSeekCoder-V2一致,我们在DeepSeek-V3的预训练中也采用了FIM策略。具体而言,我们使用前缀-后缀-中间(Prefix-Suffix-Middle,PSM)框架来构建数据,如下所示:
这种结构在文档层面作为预打包过程的一部分应用。FIM策略的应用比例为0.1,与PSM框架一致。
DeepSeek-V3的分词器采用字节级字节对编码(Byte-level BPE,Shibata等人,1999),词汇表扩展到128K个token。我们对分词器的预处理程序和训练数据进行了修改,以优化多语言压缩效率。此外,与DeepSeek-V2相比,新的预处理程序引入了将标点符号和换行符组合在一起的token。然而,当模型处理没有终端换行符的多行提示时,尤其是在少样本评估提示中,这种做法可能会引入token边界偏差(Lundberg,2023)。为解决这一问题,我们在训练过程中随机拆分一定比例的此类组合token,使模型接触到更广泛的特殊情况,从而减轻这种偏差。
4.2 超参数
- 模型超参数:我们将Transformer层数设置为61,隐藏层维度设置为7168。所有可学习参数均以标准差0.006进行随机初始化。在MLA中,我们将注意力头的数量设置为128,每个头的维度设置为128。键值压缩维度设置为512,查询压缩维度设置为1536。对于解耦的查询和键,我们将每个头的维度设置为64。除了前三层,我们将其余的前馈网络(FFN)替换为MoE层。每个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和Hutter,2017),超参数设置为,,权重衰减为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。
4.3 长上下文扩展
我们采用与DeepSeek-V2(DeepSeek-AI,2024c)类似的方法,赋予DeepSeek-V3长上下文处理能力。在预训练阶段之后,我们应用YaRN(Peng等人,2023a)进行上下文扩展,并执行两个额外的训练阶段,每个阶段包含1000步,逐步将上下文窗口从4K扩展到32K,然后再扩展到128K。YaRN的配置与DeepSeek-V2中使用的一致,仅应用于解耦的共享键。两个阶段的超参数保持相同,缩放因子,,,且缩放系数。在第一阶段,序列长度设置为32K,批次大小为1920。在第二阶段,序列长度增加到128K,批次大小减少到480。两个阶段的学习率均设置为,与预训练阶段的最终学习率相匹配。
通过这两个阶段的扩展训练,DeepSeek-V3能够处理长度高达128K的输入,同时保持强大的性能。图8表明,经过监督微调后,DeepSeek-V3在“大海捞针”(Needle In A Haystack,NIAH)测试中取得了显著成绩,展示了在长达128K的上下文窗口长度内始终如一的稳健性。

图8 “大海捞针”(NIAH)测试评估结果。DeepSeek-V3在长达128K的所有上下文窗口长度上均表现良好
4.4 评估
4.4.1 评估基准
DeepSeek-V3的基础模型在以英语和中文为主的多语言语料库上进行预训练,因此我们主要在英语、中文以及多语言基准上评估其性能。我们的评估基于集成在HAI-LLM框架中的内部评估框架。考虑的基准测试分类如下,其中下划线标注的基准测试是中文的,双下划线标注的是多语言的:
- 多学科多项选择数据集:包括MMLU(Hendrycks等人,2020)、MMLURedux(Gema等人,2024)、MMLU-Pro(Wang等人,2024b)、MMMLU(OpenAI,2024b)、C-Eval(Huang等人,2023)和CMMLU(Li等人,2023)。
- 语言理解和推理数据集:包括HellaSwag(Zellers等人,2019)、PIQA(Bisk等人,2020)、ARC(Clark等人,2018)和BigBench Hard(BBH)(Suzgun等人,2022)。
- 闭卷问答数据集:包括TriviaQA(Joshi等人,2017)和NaturalQuestions(Kwiatkowski等人,2019)。
- 阅读理解数据集:包括RACE(Lai等人,2017)、DROP(Dua等人,2019)、C3(Sun等人,2019a)和CMRC(Cui等人,2019)。
- 指代消解数据集:包括CLUEWSC(Xu等人,2020)和WinoGrande(Sakaguchi等人,2019)。
- 语言建模数据集:包括Pile(Gao等人,2020)。
- 中文理解和文化数据集:包括CCPM(Li等人,2021)。
- 数学数据集:包括GSM8K(Cobbe等人,2021)、MATH(Hendrycks等人,2021)、MGSM(Shi等人,2023)和CMath(Wei等人,2023)。
- 代码数据集:包括HumanEval(Chen等人,2021)、LiveCodeBench-Base(0801 - 1101)(Jain等人,2024)、MBPP(Austin等人,2021)和CRUXEval(Gu等人,2024)。
- 标准化考试:包括AGIEval(Zhong等人,2023)。需要注意的是,AGIEval同时包含英语和中文子集。
遵循我们之前的工作(DeepSeek-AI,2024b,c),对于包括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-Byte,BPB)作为指标,以确保在使用不同分词器的模型之间进行公平比较。
4.4.2 评估结果
在表3中,我们将DeepSeek-V3基础模型与当前最先进的开源基础模型进行了对比,其中包括DeepSeek-V2-Base(DeepSeek-AI,2024c)(我们之前发布的模型)、Qwen2.5 72B Base(Qwen,2024b)和LLaMA-3.1 405B Base(AI@Meta,2024b)。我们使用内部评估框架对这些模型进行评估,并确保它们的评估设置相同。需要注意的是,由于近几个月我们评估框架有所变化,DeepSeek-V2-Base的性能表现与我们之前报告的结果略有差异。总体而言,DeepSeek-V3-Base在综合性能上超越了DeepSeek-V2-Base和Qwen2.5 72B Base,并且在大多数基准测试中优于LLaMA-3.1 405B Base,基本上成为了最强的开源模型。

表3 DeepSeek-V3-Base与其他代表性开源基础模型的比较。所有模型均在我们的内部框架中进行评估,并具有相同的评估设置。得分差距不超过0.3的被认为处于同一水平。DeepSeek-V3-Base在大多数
从更详细的角度来看,我们将DeepSeek-V3-Base与其他开源基础模型逐一进行比较。(1)与DeepSeek-V2-Base相比,由于模型架构的改进、模型规模和训练token数量的增加,以及数据质量的提升,DeepSeek-V3-Base如预期般取得了显著更好的性能。(2)与当前最先进的中文开源模型Qwen2.5 72B Base相比,DeepSeek-V3-Base的激活参数仅为其一半,但仍展现出显著优势,尤其是在英语、多语言、代码和数学基准测试中。在中文基准测试中,除了中文多学科多项选择任务CMMLU外,DeepSeek-V3-Base的表现也优于Qwen2.5 72B。(3)与拥有11倍激活参数的最大开源模型LLaMA-3.1 405B Base相比,DeepSeek-V3-Base在多语言、代码和数学基准测试中也表现得更为出色。在英语和中文语言基准测试中,DeepSeek-V3-Base表现出了竞争力或更优的性能,尤其在BBH、MMLU系列、DROP、C-Eval、CMMLU和CCPM测试中表现突出。
由于采用了高效的架构和全面的工程优化,DeepSeek-V3实现了极高的训练效率。在我们的训练框架和基础设施下,训练DeepSeek-V3每万亿token仅需18万个H800 GPU小时,这比训练720亿或4050亿参数的密集型模型成本低得多。
4.5 讨论
4.5.1 多令牌预测的消融研究
在表4中,我们展示了MTP策略的消融实验结果。具体来说,我们在两个不同规模的基线模型上验证了MTP策略。在小规模实验中,我们训练了一个总参数为157亿的基线MoE模型,使用1.33万亿个令牌进行训练。在大规模实验中,我们训练了一个总参数为2287亿的基线MoE模型,使用540亿个令牌进行训练。在这些基线模型的基础上,保持训练数据和其他架构不变,我们添加了一个深度为1的MTP模块,并训练了两个采用MTP策略的模型进行比较。需要注意的是,在推理时,我们直接丢弃MTP模块,因此对比模型的推理成本完全相同。从表中可以看出,MTP策略在大多数评估基准上持续提升了模型性能。

表4 MTP策略的消融实验结果。MTP策略在大多数评估基准上持续提升了模型性能
4.5.2 无辅助损失平衡策略的消融研究
在表5中,我们展示了无辅助损失平衡策略的消融实验结果。我们在两个不同规模的基线模型上验证了该策略。在小规模实验中,我们训练了一个总参数为157亿的基线MoE模型,使用1.33万亿个令牌进行训练。在大规模实验中,我们训练了一个总参数为2287亿的基线MoE模型,使用578亿个令牌进行训练。

表5 无辅助损失平衡策略的消融实验结果。与纯粹基于辅助损失的方法相比,无辅助损失策略在大多数评估基准上始终实现了更好的模型性能
这两个基线模型都纯粹使用辅助损失来促进负载平衡,并使用带有前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基础模型进行两个epoch的微调,采用余弦退火学习率调度,从开始逐渐降至。在训练过程中,每个单一序列由多个样本打包而成。然而,我们采用样本掩码策略,以确保这些示例相互隔离且不可见。
5.2 强化学习
5.2.1 奖励模型
我们在RL过程中采用基于规则的奖励模型(RM)和基于模型的RM。
- 基于规则的RM:对于可以使用特定规则验证的问题,我们采用基于规则的奖励系统来确定反馈。例如,某些数学问题有确定的答案,我们要求模型以指定格式(如在框内)提供最终答案,以便我们应用规则来验证其正确性。同样,对于LeetCode问题,我们可以利用编译器根据测试用例生成反馈。只要有可能,利用基于规则的验证可以确保更高的可靠性,因为这种方法不易被操纵或利用。
- 基于模型的RM:对于具有自由格式标准答案的问题,我们依靠奖励模型来确定响应是否符合预期的标准答案。相反,对于没有明确标准答案的问题,如涉及创意写作的问题,奖励模型根据问题和相应答案作为输入提供反馈。奖励模型从DeepSeek-V3 SFT检查点进行训练。为了提高其可靠性,我们构建偏好数据,不仅提供最终奖励,还包括导致该奖励的思维链。这种方法有效减少在特定任务中奖励机制被欺诈的风险。
5.2.2 组相对策略优化
与DeepSeek-V2(DeepSeek-AI, 2024c)类似,我们采用组相对策略优化(GRPO)(Shao等人, 2024),该方法放弃了通常与策略模型大小相同的评论家模型,而是从组分数中估计基线。具体而言,对于每个问题,GRPO从旧策略模型中采样一组输出,然后通过最大化以下目标来优化策略模型:
其中和是超参数;是参考模型;是优势值,通过每组输出对应的一组奖励计算得出:
策略更新:根据相对优势更新策略模型的参数,增加高奖励输出的概率,减少低奖励输出的概率。同时,通过KL散度约束确保策略更新的稳定性。
我们在RL过程中纳入来自不同领域的提示,如编码、数学、写作、角色扮演和问答。这种方法不仅使模型更符合人类偏好,还提高了在基准测试中的性能,特别是在可用SFT数据有限的情况下。
5.3 评估
5.3.1 评估设置
- 评估基准:除了用于基础模型测试的基准外,我们还在IFEval(Zhou等人, 2023)、FRAMES(Krishna等人, 2024)、LongBench v2(Bai等人, 2024)、GPQA(Rein等人, 2023)、SimpleQA(OpenAI, 2024c)、CSimpleQA(He等人, 2024)、SWE-Bench Verified(OpenAI, 2024d)、Aider 1、LiveCodeBench(Jain等人, 2024)(2024年8月至11月的问题)、Codeforces 2、中国国家高中数学奥林匹克竞赛(CNMO 2024)3、美国数学邀请赛2024(AIME 2024)(MAA, 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框架的评估提示。我们在零样本设置下,对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。

表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-Redux(MMLU的改进版本,标签经过修正)上,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 和 2024 年中国数学奥林匹克竞赛(CNMO 2024)等测试中,DeepSeek - V3 的绝对得分比排名第二的模型 Qwen2.5 72B 高出约 10%,对于如此具有挑战性的基准测试而言,这是相当大的差距。这一出色表现凸显了从 DeepSeek - R1 进行知识蒸馏技术的有效性,事实证明,该技术对非 o1 类模型极为有益。
- 中文基准测试:Qwen 和 DeepSeek 是两个对中英文都有强大支持的代表性模型系列。在事实性基准测试 Chinese SimpleQA 上,DeepSeek-V3 比 Qwen2.5-72B 高出 16.4 分,尽管 Qwen2.5 是在更大的语料库上进行训练的,包含 18 万亿个 token,比 DeepSeek-V3 预训练所用的 14.8 万亿个 token 多了 20%。
在 C-Eval(一个具有代表性的中文教育知识评估基准测试)和 CLUEWSC(中文 Winograd Schema Challenge)上,DeepSeek-V3 和 Qwen2.5-72B 表现出相似的性能水平,这表明两个模型在应对具有挑战性的中文推理和教育任务方面都进行了良好的优化。
5.3.3 开放式评估
除了标准基准测试,我们还使用大语言模型作为评判者,对我们的模型在开放式生成任务上进行评估,结果如表7所示。具体来说,我们遵循AlpacaEval 2.0(Dubois等人,2024)和Arena - Hard(Li等人,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%胜率的开源模型,实现了一个开创性的里程碑。这一成就显著缩小了开源模型和闭源模型之间的性能差距,为开源模型在具有挑战性的领域中所能达到的水平设定了新的标准。
模型 | 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,我们使用长度控制的胜率作为指标
同样,DeepSeek - V3在AlpacaEval 2.0上也展现出卓越的性能,超过了闭源和开源模型。这展示了它在写作任务和处理简单问答场景方面的出色能力。值得注意的是,它比DeepSeek - V2.5 - 0905的胜率高出20%,这突出了它在处理简单任务方面的显著改进,也显示了其改进的有效性。
5.3.4 DeepSeek - V3作为生成式奖励模型
我们将DeepSeek - V3的评判能力与最先进的模型(即GPT - 4o和Claude - 3.5)进行比较。表8展示了这些模型在RewardBench(Lambert等人,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 - V3(maj@6) | 96.9 | 82.6 | 89.5 | 89.2 | 89.6 |
表8 GPT - 4o、Claude - 3.5 - sonnet和DeepSeek - V3在RewardBench上的性能
5.4 讨论
5.4.1 来自DeepSeek-R1的知识蒸馏
我们基于DeepSeek-V2.5对来自DeepSeek-R1的知识蒸馏的贡献进行了消融实验。基线模型在短思维链(CoT)数据上进行训练,而其对比模型则使用上述专家检查点生成的数据。
表9展示了蒸馏数据的有效性,在LiveCodeBench和MATH-500基准测试中均显示出显著的性能提升。我们的实验揭示了一个有趣的权衡:知识蒸馏带来了更好的性能,但也显著增加了平均响应长度。为了在模型准确性和计算效率之间保持平衡,我们为DeepSeek-V3在知识蒸馏过程中精心选择了最优设置。

表9 来自DeepSeek-R1的知识蒸馏的贡献。LiveCodeBench和MATH-500的评估设置与表6相同
我们的研究表明,从推理模型进行知识蒸馏为后训练优化提供了一个有前景的方向。虽然我们目前的工作主要集中在从数学和编码领域进行数据蒸馏,但这种方法在更广泛的任务领域中具有潜在的应用价值。在这些特定领域中所展示的有效性表明,长思维链蒸馏对于提升其他需要复杂推理的认知任务的模型性能可能是有价值的。在不同领域进一步探索这种方法仍然是未来研究的一个重要方向。
5.4.2 自我奖励
奖励在强化学习中起着关键作用,引导优化过程。在通过外部工具进行验证较为直接的领域,如某些编码或数学场景中,强化学习展现出了卓越的效果。然而,在更一般的场景中,通过硬编码构建反馈机制并不实际。在开发DeepSeek-V3的过程中,对于这些更广泛的场景,我们采用了符合伦理的人工智能方法(Bai等人,2022),利用DeepSeek-V3自身的投票评估结果作为反馈源。这种方法产生了显著的对齐效果,显著提升了DeepSeek-V3在主观评估中的性能。通过整合额外的符合伦理的输入,DeepSeek-V3可以朝着符合伦理的方向进行优化。我们认为,这种将补充信息与大语言模型作为反馈源相结合的范式至关重要。大语言模型作为一个通用处理器,能够将来自不同场景的非结构化信息转化为奖励,最终促进大语言模型的自我改进。除了自我奖励,我们还致力于探索其他通用且可扩展的奖励方法,以持续提升模型在一般场景中的能力。
5.4.3 多令牌预测评估
DeepSeek-V3通过MTP技术预测接下来的2个令牌,而不是仅仅预测下一个单一令牌。结合推测解码框架(Leviathan等人,2023;Xia等人,2023),它可以显著加快模型的解码速度。一个自然的问题是额外预测令牌的接受率。根据我们的评估,在各种生成主题中,第二个令牌预测的接受率在85%到90%之间,显示出较高的可靠性。如此高的接受率使得DeepSeek-V3能够显著提高解码速度,达到每秒1.8倍的令牌生成量(TPS,Tokens Per Second)。
6. 结论、局限性和未来方向
在本文中,我们介绍了DeepSeek-V3,这是一个大规模的混合专家(MoE)语言模型,总参数达6710亿,激活参数为370亿,在14.8万亿个token上进行训练。除了MLA和DeepSeekMoE架构外,它还首创了无辅助损失的负载均衡策略,并设置了多token预测训练目标以提升性能。由于采用了FP8训练和精细的工程优化,DeepSeek-V3的训练成本效益高。后训练也成功地从DeepSeek-R1系列模型中提炼出推理能力。综合评估表明,DeepSeek-V3已成为目前最强的开源模型,性能与GPT-4o和Claude-3.5-Sonnet等领先的闭源模型相当。尽管性能强大,但它的训练成本依然经济,包括预训练、上下文长度扩展和后训练在内,整个训练过程仅需278.8万个H800 GPU小时。
尽管DeepSeek-V3性能强大且成本效益高,但我们也认识到它存在一些局限性,尤其是在部署方面。首先,为确保高效推理,DeepSeek-V3推荐的部署单元相对较大,这可能会给小型团队带来负担。其次,虽然我们为DeepSeek-V3设计的部署策略使端到端生成速度达到了DeepSeek-V2的两倍以上,但仍有进一步提升的空间。幸运的是,随着更先进硬件的发展,这些局限性有望自然得到解决。
DeepSeek始终坚持长期主义的开源模型路线,旨在稳步向通用人工智能(AGI)的最终目标迈进。未来,我们计划在以下几个方向进行深入研究:
- 持续研究和优化模型架构,进一步提高训练和推理效率,努力实现对无限上下文长度的高效支持。此外,尝试突破Transformer架构的限制,拓展其建模能力的边界。
- 不断迭代训练数据的数量和质量,探索纳入更多的训练信号源,全面推动数据规模的扩展。
- 持续探索和提升模型的深度思考能力,通过拓展推理长度和深度,增强其智能水平和问题解决能力。
- 探索更全面、多维度的模型评估方法,避免在研究过程中过度优化固定的基准测试集,防止对模型能力产生误导性评估,影响基础评价的准确性。
附录
A. 贡献与致谢
略
B. 低精度训练的消融研究


图10 BF16和FP8训练的损失曲线比较。结果通过指数移动平均(EMA)进行平滑处理,系数为0.9
B.1 FP8与BF16训练对比
我们在两个不同规模的基线模型上,将FP8混合精度框架与BF16训练进行对比,以验证前者的有效性。在小规模实验中,我们训练了一个总参数约160亿的基线MoE模型,使用1.33万亿个token。在大规模实验中,我们训练了一个总参数约2300亿的基线MoE模型,使用约900亿个token。图10展示了训练曲线,结果表明,通过我们的高精度累加和细粒度量化策略,相对误差始终保持在0.25%以下。
B.2 关于块级量化的讨论
尽管我们的按tile细粒度量化有效地减轻了由特征异常值引入的误差,但它对激活量化的分组方式有不同要求,即前向传播中为1x128,反向传播中为128x1。激活梯度也需要类似的处理过程。一种简单直接的策略是像对模型权重进行量化那样,对每128x128个元素进行块级量化。这样,在反向传播时只需要进行转置操作。因此,我们进行了一项实验,对与Dgrad相关的所有张量都进行块级量化。结果显示,计算激活梯度并以链式方式反向传播到浅层的Dgrad操作对精度非常敏感。具体来说,对激活梯度进行块级量化会导致一个总参数约160亿的MoE模型在训练约300亿个token时出现模型发散的情况。我们推测,这种敏感性源于激活梯度在不同token之间存在高度不平衡,从而产生与token相关的异常值(Xi等人,2023)。而块级量化方法无法有效处理这些异常值。
C. 160亿参数基于辅助损失和无辅助损失模型的专家专业化模式
我们记录了160亿参数的基于辅助损失的基线模型和无辅助损失模型在Pile测试集上的专家负载情况。如图10所示,无辅助损失模型在所有层中往往展现出更高程度的专家专业化。




