【DeepSeek论文精读】5. DeepSeek-V3 技术报告

欢迎关注[【AIGC论文精读】](https://blog.csdn.net/youcans/category_12321605.html)原创作品
【DeepSeek论文精读】1. 从 DeepSeek LLM 到 DeepSeek R1
【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
【DeepSeek论文精读】3. DeepSeekMoE:迈向混合专家语言模型的终极专业化
【DeepSeek论文精读】4. DeepSeek-V2:强大、经济且高效的混合专家语言模型
【DeepSeek论文精读】5. DeepSeek-V3 技术报告
【DeepSeek论文精读】6. DeepSeek R1:通过强化学习激发大语言模型的推理能力


0. 论文概况

0.1 简介

2024 年 12 月,DeepSeek 发表「 DeepSeek-V3 技术报告 」(DeepSeek-V3 Technical Report) 。DeepSeek-V3 是一款性能卓越的混合专家(MoE) 语言模型,整体参数规模达到 671B,在性能上超越了其他开源模型。

  • 论文标题:DeepSeek-V3 Technical Report
  • 发布时间:2024 年 12 月
  • 论文地址:https://arxiv.org/abs/2412.19437
    https://github.com/LRriver/DeepSeek-V3/blob/main/DeepSeek_V3.pdf
  • Github地址:https://github.com/deepseek-ai/DeepSeek-V3
  • 主要内容:
    • DeepSeek-V3 是一款性能卓越的混合专家(MoE) 语言模型,整体参数规模达到 671B,其中每个 token 激活的参数量为 37B。
    • DeepSeek-V3 在性能上超越了其他开源模型,并能够与主流闭源模型相媲美。

在这里插入图片描述


0.2 摘要

DeepSeek V3(DeepSeek-V3)是一款强大的混合专家(Mixture-of-Experts, MoE)语言模型,总参数量为6710亿,每个token激活370亿参数。
为了实现高效的推理和成本效益高的训练,DeepSeek-V3采用了多头潜在注意力(Multi-head Latent Attention, MLA)和深度探索MoE架构,这些架构已经在深度探索V2中得到了充分验证。
此外,DeepSeek-V3开创了无辅助损失的负载均衡策略,并设定了多token预测训练目标以增强性能。
DeepSeek-V3在14.8万亿高质量且多样化的token上进行了预训练,随后经过监督微调和强化学习阶段,充分发挥了其能力。
全面的评估显示,DeepSeek-V3在性能上超越了其他开源模型,并达到了与领先闭源模型相当的水平。尽管性能卓越,DeepSeek-V3的完整训练仅需278.8万H800 GPU小时。此外,其训练过程非常稳定,整个训练过程中没有出现任何不可恢复的损失峰值,也未进行过回滚。模型检查点可在https://github.com/deepseek-ai/DeepSeek-V3获取。

  • 创新点

    • 架构设计:通过 MLA 和 DeepSeekMoE 架构实现高效的推理和低成本训练。
    • 辅助无损策略:采用了辅助无损策略来实现负载均衡。
    • 多 token 预测:通过多 token 预测训练目标提高数据效率和模型表现。
    • FP8 混合精度训练:在极大规模模型上验证了 FP8 训练的有效性,通过支持 FP8 计算和存储,实现加速训练和减少 GPU 内存使用。
  • 工作成果

    • 模型性能优秀:DeepSeek-V3 在多个基准测试中超越了其他开源模型,与领先的闭源模型相当。
    • 训练成本较低:完整训练仅需要 2.788M H800 GPU 小时,训练成本相对较低。
    • 良好的稳定性:在整个训练过程中,没有经历任何无法挽回的 loss spikes 或需要执行任何回滚操作。

在这里插入图片描述

0.3 结论

本研究介绍了 DeepSeek-V3 大规模混合专家语言模型,该模型总参数量达到 671B,每次处理激活 37B 参数,训练数据规模达 14.8T token。

模型在延续 MLA 和 DeepSeekMoE 架构优势的基础上,创新性地提出了无辅助损失负载均衡策略,并引入多 token 预测训练目标以提升性能。

通过采用 FP8 训练技术和精细的工程优化,模型实现了高效的训练过程。在后训练阶段,成功将 DeepSeek-R1 系列模型的推理能力迁移至新模型。

综合评估显示,DeepSeek-V3 不仅成为当前性能最强的开源模型,还达到了与 GPT-4o 和 Claude-3.5-Sonnet 等顶级闭源模型相当的水平。同时,模型维持了极具竞争力的训练成本,完整训练过程(包括预训练、上下文长度扩展和后训练)仅需 2.788M H800 GPU 小时。

尽管模型在性能和训练效率上表现出色,但仍存在一些局限性,特别是在部署方面:首先,为保证推理效率,模型的最小部署单元规模较大,可能超出小型团队的资源能力;其次,虽然当前部署方案使模型的端到端生成速度比上一代提升了两倍以上,但仍有优化空间。这些局限性有望随着硬件技术的进步得到自然解决。

秉持长期发展理念,DeepSeek 将继续坚持开源路线,稳步推进通用人工智能的研究。未来研究将重点关注以下方向:

  • 持续优化模型架构,提升训练和推理效率,探索支持无限上下文长度的高效方案。同时突破 Transformer 架构的固有局限,拓展模型的建模能力边界。
  • 深化训练数据的质量提升和规模扩展,探索新的训练信号来源,实现数据在多个维度的全面扩展。
  • 加强模型的深层推理能力,通过扩展推理的广度和深度,提升模型的智能水平和问题解决能力。
  • 建立更全面的多维度评估体系,避免过度优化特定基准测试集而产生的能力误判,确保模型评估的科学性和全面性。

1. 介绍

近年来,大型语言模型(LLM)正在经历快速迭代和进化(Anthropic,2024;Google,2024,OpenAI,2024a),逐渐缩小了与通用人工智能(AGI)的差距。除了闭源模型,还有开源模型,包括 DeepSeek系列(DeepSeek AI,2024a,b,c;Guo等人,2024)、LLaMA系列(AI@Meta2024a,b;Touvron等人,2023a,b)、Qwen系列(Qwen,2023,2024a,b)和Mistral系列(Jiang等,2023;Mistral,2024)也在取得重大进展,努力缩小与闭源同行的差距。
为了进一步拓展开源模型功能的边界,我们扩展了我们的模型,并引入了DeepSeek-V3,这是一个具有671B个参数的大型混合专家(MoE)模型,其中每个令牌激活37B个参数。

从前瞻性的角度来看,我们始终追求强大的模型性能和经济成本。因此,在架构方面,DeepSeek-V3 仍然采用多头潜在注意力(MLA)(DeepSeek AI,2024c)进行高效推理,并采用 DeepSeekMoE(Dai等,2024)进行经济高效的训练。这两种架构已在DeepSeek-V2(DeepSeek AI,2024c)中得到验证,证明了它们在实现高效训练和推理的同时保持稳健模型性能的能力。除了基本架构之外,我们还实施了两个额外的策略来进一步增强模型功能。

  • 首先,DeepSeek-V3开创了一种用于负载平衡的辅助无损耗策略(Wang等人,2024a),旨在最大限度地减少鼓励负载平衡对模型性能的不利影响。
  • 其次,DeepSeek-V3采用了多令牌预测训练目标,我们观察到这提高了评估基准的整体性能。

为了实现高效训练,我们支持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.8T高质量和多样化的 token 上训练DeepSeek-V3。预训练过程非常稳定。在整个训练过程中,我们没有遇到任何不可挽回的损失突增或需要回滚的情况。接下来,我们对DeepSeek-V3进行两个阶段上下文长度扩展。在第一阶段,最大上下文长度扩展到32K,在第二阶段进一步扩展到128K。在此之后,我们在DeepSeek-V3的基础模型上进行了后训练,包括监督微调(SFT)和强化学习(RL),以使其与人类偏好保持一致,并进一步释放其潜力。在后训练阶段,我们从DeepSeek-R1系列模型中提取推理能力,同时小心地保持模型精度和生成长度之间的平衡。

我们在一系列全面的基准上评估DeepSeek-V3。尽管训练成本低廉,但综合评估显示,DeepSeek-V3-Base 已成为目前最强大的开源基础模型,特别是在代码和数学方面。它的聊天版本也优于其他开源模型,并在一系列标准和开放式基准测试中实现了与领先的闭源模型(包括GPT-4o和Claude-3.5-Sonnet)相当的性能。

最后,我们再次强调DeepSeek-V3的经济培训成本,如表1所示,这是通过我们对算法、框架和硬件的优化协同设计实现的。在预训练阶段,在每万亿个令牌上训练DeepSeek-V3只需要180K H800 GPU小时,即在我们拥有2048个H800 GPU的集群上需要3.7天。因此,我们的预训练阶段在不到两个月的时间内完成,花费2664K GPU小时。结合119K GPU小时用于上下文长度扩展和5K GPU小时用于训练后,DeepSeek-V3的完整训练仅花费278.8万GPU小时。假设H800 GPU的租金为每GPU小时2美元,我们的总培训成本仅为557.6万美元。请注意,上述费用仅包括DeepSeek-V3的正式训练,不包括前期对架构、算法或数据的研究和消融实验相关的费用。

在这里插入图片描述

我们的主要贡献包括:

  • 架构:创新的负载平衡策略和训练目标

    • 在DeepSeek-V2高效架构的基础上,创新性提出了一种用于无辅助损失的负载均衡策略,最大限度地减少了因负载平衡而导致的性能下降。
    • 研究了多令牌预测(MTP)训练目标,并证明它对模型性能有益。该技术还可以用于推理加速的推测解码。
  • 预训练:迈向终极的训练效率

    • 我们设计了一个FP8混合精度训练框架,并首次在超大规模模型上验证了FP8训练的可行性和有效性。
    • 通过算法、框架和硬件的共同设计,我们克服了跨节点MoE训练中的通信瓶颈,实现了近乎完全的计算与通信高度重叠。这大大提高了我们的训练效率,降低了训练成本,使我们能够在不增加额外成本的情况下进一步扩大模型规模。
    • 我们仅以266.4万 H800 GPU小时的经济成本,在14.8T的 token 上完成了DeepSeek-V3的预训练,生成了目前最强大的开源基础模型。预训练后的后续训练阶段只需要0.1M GPU小时。
  • 后训练:从DeepSeek-R1中蒸馏知识

    • 我们引入了一种创新的方法,将思维链(CoT)模型(特别是DeepSeek R1系列模型)的推理能力迁移到标准 LLM中,特别是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-Connect-3.5等领先的闭源模型相媲美,缩小了该领域开源和闭源模型之间的差距。
    • (2) 对于真实性基准测试,DeepSeek-V3在SimpleQA和中文SimpleQA上的开源模型中表现出了卓越的性能。虽然它在英语事实知识(SimpleQA)方面落后于GPT-4o和Claude-Connect-3.5,但在汉语事实知识(Chinese SimpleQA)上超越了这些模型,突显了它在汉语事实信息方面的优势。
  • 代码、数学和推理:

    • (1)DeepSeek-V3在所有非长期CoT开源和闭源模型中的数学相关基准测试中取得了最先进的性能。值得注意的是,它甚至在特定的基准测试(如MATH-500)上表现优于o1预览版,展示了其强大的数学推理能力。
    • (2) 在编码相关任务方面,DeepSeek-V3成为LiveCodeBench等编码竞争基准测试中表现最佳的模型,巩固了其作为该领域领先模型的地位。对于工程相关任务,虽然DeepSeek-V3的性能略低于Claude-Connect-3.5,但它仍然远远超过了所有其他模型,这表明了它在各种技术基准上的竞争力。

2. 架构

我们首先介绍了DeepSeek-V3的基本架构,其特征是用于高效推理的多头潜在注意力(MLA)(DeepSeek AI,2024c)和用于经济训练的DeepSeekMoE(Dai等人,2024)。然后,我们提出了一个多令牌预测(MTP)训练目标,我们观察到该目标可以提高评估基准的整体性能。

在其他未特别说明的架构细节方面,DeepSeek-V3 延续了 DeepSeek-V2 的设计方案。


2.1 基本架构

DeepSeek-V3的基本架构仍在Transformer(Vaswani等人,2017)框架内。为了高效推理和经济训练,DeepSeek-V3还采用了MLA和DeepSeekMoE,这些都经过了DeepSeek-V2的充分验证。与DeepSeek-V2相比,一个例外是,我们为DeepSeekMoE额外引入了一种辅助的无损耗负载平衡策略(Wang等人,2024a),以减轻因努力确保负载平衡而导致的性能下降。图2展示了DeepSeek-V3的基本架构,本节我们将简要回顾MLA和DeepSeekMoE的细节。


2.1.1 多头潜在注意力

DeepSeek-V3 在注意力机制方面采用了 MLA 架构。设向量维度为 d d d,注意力头数为 n h n_h nh ,每个头的维度为 d h d_h dh ,在特定注意力层中第 t 个 token 的注意力输入表示为 h t ∈ R d h_t \in R^d htRd 。MLA 的核心是,对注意力键和值进行低秩联合压缩,以减少推理过程中的键值(KV)缓存开销:
在这里插入图片描述
其中:
c t K V ∈ R d c c^{KV}_t \in R_{dc} ctKVRdc 表示键值的压缩潜在向量, d c ( < < d h n h ) d_c (<< d_h n_h) dc(<<dhnh)表示 KV 压缩维度, W D K V W^{DKV} WDKV 为维度下投影变换矩阵, W U K W^{UK} WUK W U V W^{UV} WUV 分别为键和值的维度上投影变换矩阵。
W K R W^{KR} WKR 用于生成携带 旋转位置编码(Rotary Positional Embedding, RoPE) 的解耦键(Su等,2024);RoPE(·)表示旋转位置编码矩阵的应用操作;[·;·]表示向量连接操作

在 MLA 中,生成过程仅需缓存高亮标记的向量( c K V t c^{KV_t} cKVt k t R k^R_t ktR ),这种设计显著降低了 KV 缓存空间,同时保持了与标准 MHA(Vaswani等,2017)相当的性能水平。

对于注意力查询(Query)部分,模型同样采用低秩压缩技术,这种设计有效降低了训练过程中的激活值内存占用:

在这里插入图片描述

其中:

c t Q c^Q_t ctQ 表示查询的压缩潜在向量, d c ′ d'_c dc 表示查询压缩维度,
W D Q W^{DQ} WDQ W U Q W^{UQ} WUQ 分别为查询的维度降维和升维变换矩阵, W Q R W^{QR} WQR 用于生成携带旋转位置编码的解耦查询矩阵。
最终,通过组合注意力查询( q t , i q_{t,i} qt,i)、键( k j , i k_{j,i} kj,i)和值( v j , i C v^C_{j,i} vj,iC),得到注意力机制的最终输出 U t U_t Ut
在这里插入图片描述
其中 W o W^o Wo 为输出维度变换矩阵。


2.1.2 无辅助损耗的负载平衡方法

DeepSeekMoE的基本架构:

对于前馈网络(FFN),DeepSeek-V3采用DeepSeekMoE架构(Dai等人,2024)。与GShard(Lepikhin等人,2021)等传统MoE架构相比,DeepSeekMoE 使用更细粒度的专家,并将一些专家隔离为共享专家。设 u t u_t ut表示第 t t t个令牌的FFN输入,计算FFN输出 h t ′ h'_t ht如下:

在这里插入图片描述
其中, N s N_s Ns N r N_r Nr 分别表示共享专家和路由专家的数量; F F N i ( s ) ( ⋅ ) FFN_i^{(s)}(·) FFNi(s)() F F N i ( r ) ( ⋅ ) FFN_i^{(r)}(·) FFNi(r)()分别表示第 i 位共享专家和第 i 位路由专家; K r K_r Kr 表示已激活的路由专家的数量; g i , t g_{i,t} gi,t 是第 i 位专家的门控值; s i , t s_{i,t} si,t是专家亲和力的象征; e i e_i ei 是第n个路由专家的质心向量; T o p k ( ⋅ , K ) Topk(·,K) Topk(⋅,K) 表示在为第 K K K 个令牌和所有路由专家计算的亲和度得分中,包含 K 最高得分的集合。与DeepSeek-V2略有不同,DeepSeek-V3使用 sigmoid 函数计算亲和度分数,并在所有选定的亲和度分数之间应用归一化以产生门控值。

无辅助损耗的负载平衡:

对于MoE模型,不平衡的专家负载将导致路由崩溃(Shazeer等,2017),并降低专家并行场景中的计算效率。传统的解决方案通常依赖于辅助损耗(Fedus等,2021;Lepikhin等,2021)来避免不平衡负载。然而,过大的辅助损失将损害模型性能(Wang等,2024a)。为了在负载平衡和模型性能之间实现更好的权衡,我们开创了一种无辅助损耗的负载平衡策略(Wang等,2024a),以确保负载平衡。具体来说,我们为每个专家引入了一个偏置项 b i b_i bi,并将其添加到相应的亲和力得分 s i , t s_{i,t} si,t中,以确定前 top-K 个路由:

在这里插入图片描述

在这种设计中,偏置项仅用于路由选择,而门控值(用于与 FFN 输出相乘)仍基于原始相关度分数 s i , t s_{i,t} si,t 计算。训练过程中,系统会实时监控每个训练步骤中所有批次的专家负载分布。在每个步骤结束时,对于负载过高的专家,其偏置项会减少 𝛾;对于负载不足的专家,其偏置项会增加 𝛾 ,其中 𝛾是控制偏置更新速率的超参数。通过这种动态调整机制,DeepSeek-V3 在训练过程中实现了专家负载的均衡分布,其性能优于传统仅依靠辅助损失来实现负载均衡的模型。

**序列级辅助损失补充机制: **

虽然 DeepSeek-V3 主要采用无辅助损失策略来实现负载均衡,但为了防止单个序列中出现显著的负载不均衡现象,模型还引入了补充性的序列级平衡损失:

在这里插入图片描述
其中平衡因子 KaTeX parse error: Undefined control sequence: \alfa at position 1: \̲a̲l̲f̲a̲ 是一个超参数,在 DeepSeek-V3 中被设置为极小值; l ( ⋅ ) l(·) l() 表示指示函数; T 代表序列中的 token 总数。这种序列级平衡损失机制有助于保持单个序列内专家负载的均衡性。

**节点约束路由机制: **

类似于 DeepSeek-V2 的设备限制路由策略,DeepSeek-V3 采用了受控路由机制来优化训练过程中的通信开销。具体而言,系统限制每个 token 最多只能分配给 M 个计算节点,这些节点的选择基于每个节点上专家的最高 K r M \frac{K_r}{M} MKr 相关度分数总和。在这种约束下,MoE 训练框架能够实现计算与通信的近乎完全并行处理。

完整的 Token 保留机制: 得益于高效的负载均衡策略,DeepSeek-V3 在整个训练过程中都保持着良好的负载平衡状态。因此,训练过程中不存在 token 丢弃现象。同时,通过特定的推理部署策略,DeepSeek-V3 在推理阶段同样实现了完整的 token 保留。


2.2 多令牌预测机制

受Gloeckle等人(2024)的启发,我们为DeepSeek-V3研究并设置了一个多令牌预测( Multi-Token Prediction, MTP) 目标,该目标将预测范围扩展到每个位置的多个后续 token。

一方面,MTP目标使训练信号更加密集,并可能提高数据效率。另一方面,MTP可以使模型预先规划其表示,以便更好地预测后续的token。图3说明了我们对MTP的实现。与Gloeckle等人(2024)使用独立的输出头并行预测额外令牌不同,我们顺序预测额外的令牌,并在每个预测层级保持完整的因果链。我们将在本节中介绍MTP实施的详细信息。

在这里插入图片描述


MTP模块:

具体来说,我们的MTP实现使用 D 个顺序模块来预测 D 个额外的令牌。
k k k 个MTP模块由一个共享向量层 E m b ( ⋅ ) Emb(·) Emb()、一个共享输出头 O u t H e a d ( ⋅ ) OutHead(·) OutHead(),一个 Transformer 块 T R M ( ⋅ ) TRM(·) TRM() 和一个维度投影矩阵 M k ∈ R d ∗ 2 d M_k \in R^{d*2d} MkRd2d 组成。

对于输入序列中的第 i i i 个 token t i t_i ti ,在第 k 层预测时,模型首先将两个向量进行组合:该 token 在第 ( k − 1 ) (k-1) (k1) 层的特征表示 h i k − 1 h_i^{k-1} hik1 和第 ( i + k ) (i+k) (i+k) 个 token 的向量 E m b ( t i + k ) Emb(t_{i+k}) Emb(ti+k) ,通过线性变换进行融合:

在这里插入图片描述
其中 [ ⋅ ; ⋅ ] [·;·] [⋅;⋅] 表示向量拼接操作。
需要特别说明的是,在 k = 1 k=1 k=1 时, h i k − 1 h_i^{k-1} hik1 代表主模型输出的特征表示。
值得注意的是,每个 MTP 模块都与主模型共享同一个向量层。经过组合的特征向量 h i ′ k h'^k_i hik 随后输入到第 k 层的 Transformer 处理单元,生成该层的输出特征表示 h i k h^k_i hik

在这里插入图片描述
其中 T 代表输入序列的长度, i : j i:j i:j 表示包含两端的切片操作。接着,系统将 h i k h^k_i hik 输入到共享输出层,计算第 k 个预测 token 的概率分布 P i + 1 + k k P^k_{i+1+k} Pi+1+kk (V 为词表大小):
在这里插入图片描述
输出层 OutHead(·) 首先通过线性变换将特征表示转换为 logits,然后使用 Softmax(·) 函数计算第 k 个预测 token 的概率分布。与向量层类似,每个 MTP 模块的输出层也与主模型共享。这种保持预测因果链的设计思路与 EAGLE 相近,但两者目标不同:EAGLE 主要用于推测解码,而本研究中的 MTP 主要用于优化训练效果。

MTP 训练目标优化:

系统为每个预测层级计算交叉熵损失 L M T P k L^k_{MTP} LMTPk
在这里插入图片描述
其中, T T T 表示输入序列长度, t i t_i ti 代表第 i i i 个位置的目标 token, P i k [ t i ] P^k_i [t_i] Pik[ti] 表示第 k 个 MTP 模块对 t i t_i ti 的预测概率。最终,通过计算所有层级 MTP 损失的平均值并乘以权重系数 λ \lambda λ ,得到总体 MTP 损失 L M T P L_{MTP} LMTP ,作为 DeepSeek-V3 的补充训练目标:
在这里插入图片描述

推理阶段的 MTP:

我们的MTP策略主要是为了提高主模型的性能,因此在推理过程中,我们可以直接丢弃MTP模块,主模型可以独立正常运行。此外,我们还可以将这些MTP模块重新用于推测解码,以进一步改善生成延迟。


3. 基础设施

3.1 计算集群

DeepSeek-V3在配备2048个NVIDIA H800 GPU的集群上进行训练。
H800集群中的每个节点都包含8个GPU,通过节点内的NVLink和NVSwitch连接。在不同的节点上,InfiniBand(IB)互连被用来促进通信。


3.2 训练框架

DeepSeek-V3的培训得到了HAI-LLM框架的支持,这是一个由我们的工程师从头开始构建的高效轻量级的培训框架。总体而言,DeepSeek-V3应用了跨越8个节点的16路流水线并行(PP)(Qi等人,2023a)、64路专家并行(EP)(Lepikhin等人,2021)和ZeRO-1数据并行(DP)(Rajbhandari等人,2020)。
为了促进DeepSeek-V3的高效训练,我们实施了细致的工程优化。

  1. 首先,我们设计了双管道算法,以实现高效的管道并行。与现有的PP方法相比,DualPipe 算法显著减少了流水线停滞现象。更重要的是,它在前向和后向过程中重叠了计算和通信阶段,从而解决了跨节点专家并行性带来的繁重通信开销的挑战。
  2. 其次,我们开发了高效的跨节点全节点通信内核,以充分利用IB和NVLink带宽,并节省专用于通信的流式多处理器(SM)。
  3. 最后,我们在训练过程中精心优化了内存占用,从而使我们能够在不使用昂贵的Tensor并行性(TP)的情况下训练DeepSeek-V3。

3.2.1 DualPipe 技术与计算通信协同优化

对于DeepSeek-V3,跨节点专家并行性引入的通信开销导致计算与通信比率约为1:1,效率低下。为了应对这一挑战,我们设计了一种名为DualPipe的创新流水线并行算法,该算法不仅通过有效地重叠正向和反向计算通信阶段来加速模型训练,而且减少了流水线阻塞。

DualPipe的核心思想是在一对单独的正向和反向块内重叠计算和通信。具体来说,我们将每个块分为四个模块:注意力机制,全节点数据分发, MLP 处理,全节点数据整合。特别是,对于后向计算块,注意力和MLP进一步分为两部分:输入梯度计算和权重梯度计算,如ZeroBubble(Qi等人,2023b)。此外,我们还有一个PP通信组件。

如图4所示,对于一对正向和反向块,我们重新排列这些组件,并手动调整专用于通信与计算
并精确调控用于通信和计算的 GPU 流处理器资源分配比例,系统能够在运行过程中有效隐藏全节点通信和 PP 通信开销。

在这里插入图片描述

考虑到有效的重叠策略,完整的双管调度如图5所示。它采用创新的双向流水线调度策略,实现了从流水线两端同时输入微批次数据,使得大部分通信过程能够与计算过程完全重叠。这种设计确保了即使在模型规模进一步扩大的情况下,只要维持适当的计算通信比例,就能在节点间实现细粒度的专家分配,同时将全节点通信开销降至接近于零。

在这里插入图片描述

此外,即使在没有繁重通信负担的更一般场景中,DualPipe仍然表现出效率优势。在表2 中,我们总结了不同PP方法在流水线阻塞和内存使用的情况。如表2 所示,与ZB1P(Qi等人,2023b)和 1F1B(Harlap等人,2018)相比,DualPipe显著减少了流水线阻塞,同时仅将峰值激活记忆增加了1倍。尽管DualPipe需要保留模型参数的两个副本,但这并不会显著增加内存消耗,因为我们在训练过程中使用了大规模的EP。与Chimera(Li和Hoefler,2021)相比,DualPipe只要求管道阶段数和微批次数可被2整除,而不要求微批次可由管道阶段整除。此外,对于DualPipe,流水线阻塞和激活和内存都不会随着微批次数量的增加而增加。

在这里插入图片描述

3.2.2. 跨节点全节点通信的高效实现

为了确保DualPipe有足够的计算性能,我们定制了高效的跨节点全节点通信内核(包括调度和组合),以节省专用于通信的SM数量。内核的实现与MoE门控算法和我们集群的网络拓扑进行了代码设计。具体来说,在我们的集群中,跨节点GPU与IB完全互连,节点内通信通过NVLink处理。NVLink提供160 GB/s的带宽,大约是IB(50 GB/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 专业化技术(Bauer等人,2014),将20个SM划分为10个通信信道。在调度过程中,(1)IB发送,(2)IB到NVLink转发,以及(3)NVLink接收由各自的warp处理。分配给每个通信任务的扭曲数量根据所有SM的实际工作负载动态调整。同样,在组合过程中,(1)NVLink发送,(2)NVLink到IB的转发和累积,以及(3)IB接收和累积也由动态调整的扭曲处理。此外,调度和组合内核都与计算流重叠,因此我们还考虑了它们对其他SM计算内核的影响。具体来说,我们采用定制的PTX(并行线程执行)指令并自动调整通信块大小,这大大减少了L2缓存的使用和对其他SM的干扰。

3.2.3. 以最小的开销节省大量内存

为了减少训练过程中的内存占用,我们采用了以下技术:

  1. RMSNorm和MLA上投影的重新计算。
    我们在反向传播过程中重新计算所有RMSNorm操作和MLA向上预测,从而消除了持续存储其输出激活的需要。通过较小的开销,该策略显著降低了存储激活的内存需求。

  2. CPU中的指数移动平均线。
    在训练过程中,我们保留了模型参数的指数移动平均线(EMA),以便在学习率衰减后早期估计模型性能。EMA参数存储在CPU内存中,并在每个训练步骤后异步更新。这种方法允许我们维护EMA参数,而不会产生额外的内存或时间开销。

  3. MTP的共享向量和输出头。
    采用 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格式的动态范围,我们引入了一种细粒度量化策略:使用 1 × N c 1×N_c 1×Nc 元素进行分片分组,或使用 N c x N c N_cxN_c NcxNc 元素的分块分组。在我们提高精度的累积过程中,相关的去量化开销大大减轻,这是实现精确FP8通用矩阵乘法(GEMM)的关键方面。此外,为了进一步减少MoE训练中的内存和通信开销,我们在FP8中缓存和调度激活,同时在BF16中存储低精度优化器状态。我们在两个类似于DeepSeek-V2-Lite和DeepSeek-V2的模型尺度上验证了所提出的FP8混合精度框架,训练了大约 1T token(详见附录B.1)。值得注意的是,与BF16基线相比,我们的FP8训练模型的相对损失误差始终保持在0.25%以下,这一水平完全在训练随机性的可接受范围内。

3.3.1 混合精度框架

本研究在已有低精度训练技术的基础上,设计了专门的 FP8 训练混合精度框架。在这一框架中,大部分计算密集型操作采用 FP8 执行,而关键操作则保持原有数据格式,以实现训练效率和数值稳定性的最优平衡。

整体框架结构如图6所示。
在这里插入图片描述

首先,为提高模型训练速度,大部分核心计算操作(尤其是 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的最大可表示值,将输入分布与FP8格式的可表示范围对齐(Narang等人,2017)。这种方法使低精度训练对激活异常值高度敏感,这会严重降低量化精度。为了解决这个问题,我们提出了一种细粒度量化方法,该方法在更细粒度的级别上应用缩放。如图7(a)所示,
(1)对于激活,我们在1x128图块的基础上对元素进行分组和缩放(即每128个通道对应一个令牌);
(2)对于权重,我们以128x128块为基础(即每128个输入通道每128个输出通道)对元素进行分组和缩放。

这种方法通过根据较小的元素组调整尺度,确保量化过程能够更好地适应异常值。在附录B.2中,我们进一步讨论了当我们以与权重量化相同的方式在块的基础上对激活进行分组和缩放时的训练不稳定性。

我们方法的一个关键修改是沿GEMM操作的内部维度引入每组缩放因子。标准FP8 GEMM不直接支持此功能。然而,结合我们精确的FP32积累策略,它可以有效地实施。

值得注意的是,我们的细粒度量化策略与微尺度格式的理念高度一致(Rouhani等人,2023b),而NVIDIA下一代GPU(Blackwell系列)的Tensor内核已经宣布支持具有较小量化粒度的微尺度格式(NVIDIA,2024a)。我们希望我们的设计可以作为未来工作的参考,以跟上最新GPU架构的步伐。

在这里插入图片描述

提高累积精度。

低精度GEMM操作经常遇到下溢问题,其准确性在很大程度上取决于高精度累积,这通常在FP32精度下进行(Kalamkar等人,2019;Narang等人,2017)。然而,我们观察到,FP8 GEMM在NVIDIA H800 GPU上的累积精度仅限于保留约14位,远低于FP32的累积精度。当内部维度K较大时,这个问题将变得更加明显(Wortsman等人,2023),这是大规模模型训练中批量大小和模型宽度增加的典型场景。以K=4096的两个随机矩阵的GEMM运算为例,在我们的初步测试中,张量核中有限的累积精度导致最大相对误差接近2%。尽管存在这些问题,有限的累积精度仍然是少数FP8框架(NVIDIA,2024b)的默认选项,严重限制了训练精度。

为了解决这个问题,我们采取了推广CUDA核心以提高精度的策略(Thakkar等人,2023)。该过程如图7(b)所示。具体来说,在张量核上执行MMA(矩阵乘法累加)期间,使用有限的位宽累加中间结果。一旦达到Nc的间隔,这些部分结果将被复制到CUDA内核上的FP32寄存器,在那里进行全精度FP32累积。如前所述,我们的细粒度量化沿着内部维度K应用每组缩放因子。这些缩放因子可以在CUDA核心上有效地相乘,作为去量化过程,额外的计算成本最小。值得注意的是,此修改降低了单个战组的WGMMA(战组级矩阵乘累加)指令发布率。然而,在H800架构上,两个WGMMA同时存在是很典型的:当一个战组执行升级操作时,另一个能够执行MMA操作。这种设计实现了两个操作的重叠,保持了Tensor核心的高利用率。根据我们的实验,设置⻓⻒=128个元素,相当于4个WGMMA,代表了可以在不引入大量开销的情况下显著提高精度的最小累积间隔。

Mantissa超过指数。
与先前工作(NVIDIA,2024b;Peng等人,2023b;Sun等人,2019b)采用的混合FP8格式不同,该格式在Fprop中使用E4M3(4位指数和3位尾数),在Dgrad和Wgrad中使用E5M2(5位指数和2位尾数)。我们在所有张量上采用E4M3格式以获得更高的精度。我们将这种方法的可行性归因于我们的细粒度量化策略,即分片和分块缩放。通过对较小的元素组进行操作,我们的方法在这些分组的元素之间有效地共享指数位,减轻了有限动态范围的影响。

在线量化。
延迟量化用于张量量化框架(NVIDIA,2024b;Peng等人,2023b),该框架维护了先前迭代中最大绝对值的历史,以推断当前值。为了确保准确的比例并简化框架,我们在线计算每个1x128激活图块或128x128权重块的最大绝对值。在此基础上,我们推导出缩放因子,然后将激活或权重在线量化为FP8格式。

3.3.3. 低精度存储和通信

结合我们的FP8训练框架,我们通过将缓存的激活和优化器状态压缩为较低精度的格式,进一步减少了内存消耗和通信开销。

低精度优化器状态。
我们采用BF16数据格式而不是FP32来跟踪AdamW(Loshchilov和Hutter,2017)优化器中的第一和第二时刻,而不会导致可观察到的性能下降。然而,主权重(由优化器存储)和梯度(用于批量累积)仍保留在FP32中,以确保整个训练过程中的数值稳定性。

低精度激活。
如图6所示,Wgrad操作在FP8中执行。为了减少内存消耗,自然选择以FP8格式缓存激活,以便线性运算符反向传递。然而,对于低成本高精度培训,需要特别考虑几个操作员:
(1) 注意运算符后的线性输入。这些激活也用于注意力运算符的向后传递,这使得它对精度很敏感。我们采用专门针对这些激活的定制E5M6数据格式。此外,这些激活将在反向过程中从1x128量化块转换为128x1块。为了避免引入额外的量化误差,所有缩放因子都是四舍五入的,即2的整数幂。
(2) MoE中SwiGLU运算符的输入。为了进一步降低内存成本,我们缓存SwiGLU运算符的输入,并在反向过程中重新计算其输出。这些激活也通过我们的细粒度量化方法存储在FP8中,在内存效率和计算精度之间取得了平衡。

低精度通信。
通信带宽是MoE模型训练的关键瓶颈。为了缓解这一挑战,我们将MoE向上投影之前的激活量化为FP8,然后应用调度组件,该组件与MoE向上来投影中的FP8 Fprop兼容。与注意力运算符后的线性输入一样,此激活的缩放因子是2的整数次幂。在MoE向下投影之前,对激活梯度应用了类似的策略。考虑到训练精度的重要性,前向和反向传播中的组合运算环节都保持 BF16 格式,以确保训练管道关键环节的计算精度。


3.4 推理和部署

我们在H800集群上部署DeepSeek-V3,其中每个节点内的GPU使用NVLink互连,集群上的所有GPU通过IB完全互连。为了同时确保在线服务的服务水平目标(SLO)和高吞吐量,我们采用了以下部署策略,将预填充和解码阶段分开。

3.4.1. 预填充
预填充阶段的最小部署单元由4个节点和32个GPU组成。注意部分采用4路张量并行(TP4)和序列并行(SP),并结合8路数据并行(DP8)。其4的小TP大小限制了TP通信的开销。对于MoE部分,我们使用32路专家并行(EP32),这确保了每个专家处理足够大的批处理量,从而提高了计算效率。

对于MoE的全对全通信,我们使用与训练中相同的方法:首先通过IB在节点之间传输令牌,然后通过NVLink在节点内GPU之间转发。特别是,我们对浅层中的密集MLP使用单向张量并行性来节省TP通信。

为了在MoE部分的不同专家之间实现负载平衡,我们需要确保每个GPU处理的令牌数量大致相同。为此,我们引入了一种冗余专家的部署策略,该策略复制高负载专家并冗余部署。高负载专家根据在线部署期间收集的统计数据进行检测,并定期(例如每10分钟)进行调整。在确定冗余专家集后,我们根据观察到的负载在节点内的GPU之间仔细重新排列专家,努力在不增加跨节点全对全通信开销的情况下尽可能地平衡GPU之间的负载。为了部署DeepSeek-V3,我们在预填充阶段设置了32名冗余专家。对于每个GPU,除了它托管的原始8名专家外,它还将托管一名额外的冗余专家。

此外,在预填充阶段,为了提高吞吐量并隐藏所有对所有和TP通信的开销,我们同时处理具有相似计算工作负载的两个微批,将一个微批的注意力和MoE与另一个的调度和组合重叠。

最后,我们正在探索一种针对专家的动态冗余策略,其中每个GPU容纳更多的专家(例如,16名专家),但在每个推理步骤中只有9名专家会被激活。在每一层的全面操作开始之前,我们实时计算全局最优路由方案。考虑到预填充阶段涉及大量计算,计算此路由方案的开销几乎可以忽略不计。


3.4.2. 解码

在解码过程中,我们将共享专家视为路由专家。从这个角度来看,在路由过程中,每个令牌将选择9个专家,其中共享的专家被视为一个总是被选择的重载专家。解码阶段的最小部署单元由40个节点和320个GPU组成。注意力部分使用TP4和SP,结合DP80,而MoE部分使用EP320。对于MoE部分,每个GPU只托管一个专家,64个GPU负责托管冗余专家和共享专家。调度和组合部件的全对全通信是通过IB上的直接点对点传输来实现的,以实现低延迟。此外,我们利用IBGDA(NVIDIA,2022)技术进一步减少延迟并提高通信效率。

与预填充类似,我们根据我们在线服务的统计专家负载,在一定间隔内定期确定冗余专家集。但是,我们不需要重新安排专家,因为每个GPU只托管一个专家。我们也在探索解码的动态冗余策略。然而,这需要对计算全局最优路由方案的算法进行更仔细的优化,并与调度内核融合以减少开销。

此外,为了提高吞吐量并隐藏所有对所有通信的开销,我们还在探索在解码阶段同时处理具有相似计算工作负载的两个微批。与预填充不同,注意力在解码阶段消耗了更多的时间。因此,我们将一个微批量的注意力与另一个微批的调度+MoE+组合重叠。在解码阶段,每个专家的批处理大小相对较小(通常在256个令牌内),瓶颈是内存访问而不是计算。由于MoE部分只需要加载一位专家的参数,因此内存访问开销最小,因此使用较少的SM不会显著影响整体性能。因此,为了避免影响注意力部分的计算速度,我们可以只将一小部分SM分配给调度+MoE+组合。


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内存区域)和输入/输出缓冲区之间传输数据。
  • 对所有对所有联合收割机执行reduce操作。
  • 在跨IB和NVLink域向多个专家传输分块数据期间管理细粒度内存布局。

我们希望看到未来的供应商开发硬件,将这些通信任务从有价值的计算单元SM中卸载,作为GPU协处理器或网络协处理器,如NVIDIA SHARP Graham等人(2016)。此外,为了降低应用程序编程的复杂性,我们的目标是从计算单元的角度将IB(横向扩展)和NVLink(向上扩展)网络统一起来。有了这个统一的接口,计算单元可以通过基于简单原语提交通信请求,在整个IB-NVLink统一域内轻松完成读、写、组播和reduce等操作。

3.5.2. 计算硬件

  • Tensor内核中FP8 GEMM累积精度更高。
    在NVIDIA Hopper架构的当前Tensor Core实现中,FP8 GEMM(通用矩阵乘法)采用定点累加,根据加法前的最大指数右移来对齐尾数乘积。我们的实验表明,在符号填充右移后,它只使用每个尾数乘积的最高14位,并截断超过此范围的位。然而,例如,为了从32个FP8×FP8乘法的累积中获得精确的FP32结果,至少需要34位精度。因此,我们建议未来的芯片设计提高Tensor核心的累积精度,以支持全精度累积,或者根据训练和推理算法的精度要求选择合适的累积位宽。这种方法确保误差保持在可接受的范围内,同时保持计算效率。

  • 支持分片和分块量化。
    目前的GPU只支持每张量量化,缺乏对细粒度量化的原生支持,比如我们的分块量化。在当前实现中,当达到 N c N_c Nc间隔时,部分结果将从Tensor Core复制到CUDA Core,乘以缩放因子,并添加到CUDA内核上的FP32寄存器中。尽管结合我们精确的FP32累积策略,反量化开销得到了显著减轻,但张量核和CUDA核之间频繁的数据移动仍然限制了计算效率。因此,我们建议未来的芯片通过使Tensor Core能够接收缩放因子并实现具有组缩放的MMA来支持细粒度量化。通过这种方式,整个部分和的累积和去量化可以直接在张量核心内完成,直到产生最终结果,从而避免了频繁的数据移动。

  • 支持在线量化。
    尽管我们的研究证明了在线量化的有效性,但目前的实现很难有效地支持在线量化。在现有的过程中,我们需要从HBM(高带宽存储器)读取128个BF16激活值(之前计算的输出)进行量化,然后将量化的FP8值写回HBM,只为MMA再次读取。为了解决这种低效问题,我们建议未来的芯片将FP8 cast和TMA(Tensor Memory Accelerator)访问集成到一个融合操作中,这样量化就可以在激活从全局内存转移到共享内存的过程中完成,避免频繁的内存读写。我们还建议支持扭曲级投射指令以加速,这进一步促进了层归一化和FP8投射的更好融合。或者,可以采用近内存计算方法,将计算逻辑放置在HBM附近。在这种情况下,BF16元素可以在从HBM读取到GPU时直接转换为FP8,从而将片外内存访问减少约50%。

  • 支持转置GEMM操作。
    当前的架构使得将矩阵转置与GEMM操作融合起来很麻烦。在我们的工作流程中,前向传递期间的激活被量化为1x128 FP8块并存储。在反向传递过程中,矩阵需要被读出、去量化、转置、重新量化为128x1的块,并存储在HBM中。为了减少内存操作,我们建议未来的芯片在MMA操作之前从共享内存中直接转置读取矩阵,以达到训练和推理所需的精度。结合FP8格式转换和TMA访问的融合,这种增强将显著简化量化工作流程。


4. 预训练

4.1 数据结构

与DeepSeek-V2相比,我们通过提高数学和编程样本的比例来优化预训练语料库,同时将多语言覆盖范围扩展到英语和中文之外。此外,我们的数据处理管道经过改进,在保持语料库多样性的同时尽量减少冗余。受Ding等人(2024)的启发,我们实现了数据完整性的文档打包方法,但在训练过程中没有包含跨样本注意力掩蔽。最后,DeepSeek-V3的训练语料库由我们的标记器中的14.8T高质量和多样化的标记组成。

在DeepSeekCoder-V2(DeepSeek AI,2024a)的训练过程中,我们观察到填充中间(FIM)策略不会损害下一个令牌预测能力,同时使模型能够根据上下文线索准确预测中间文本。为了与DeepSeekCoder-V2保持一致,我们还将FIM策略纳入DeepSeek-V3的预培训中。具体来说,我们采用前缀后缀中间(PSM)框架来构建数据,如下所示:

< ∣ f i m b e g i n ∣ > f p r e < ∣ f i m h o l e ∣ > f s u f < ∣ f i m e n d ∣ > f m i d d l e < ∣ e o s t o k e n ∣ > <|fim_begin|> f_{pre}<|fim_hole|> f_{suf}<|fim_end|> f_{middle}<|eos_token|> <fimbegin>fpre<fimhole>fsuf<fimend>fmiddle<eostoken>

这种结构作为预包装过程的一部分应用于文档级别。FIM策略的应用率为0.1,与PSM框架一致。

DeepSeek-V3的标记器采用字节级BPE(Shibata等人,1999),扩展了128K个标记的词汇表。我们修改了标记器的预标记器和训练数据,以优化多语言压缩效率。此外,与DeepSeek-V2相比,新的预标记器引入了结合标点和换行的标记。然而,当模型处理没有终端断线的多行提示时,特别是对于少数镜头评估提示,这种技巧可能会引入令牌边界偏差(Lundberg,2023)。为了解决这个问题,我们在训练过程中随机分割了一定比例的这种组合令牌,这使模型暴露在更广泛的特殊情况下,并减轻了这种偏见。


4.2 超参数

模型超参数。
我们将Transformer层的数量设置为61,隐藏维度设置为7168。所有可学习的参数都以0.006的标准偏差随机初始化。在MLA中,我们将注意力头的数量 n h n_h nh设置为128,每个头的尺寸 d h d_h dh 设为128。KV压缩维度 d c d_c dc 设置为512,查询压缩维度 d c ′ d'_c dc 设置为1536。对于解耦的查询和键,我们将每头维度 d h R d^R_h dhR 设置为64。我们用MoE层替换除前三层之外的所有FFN。每个MoE层由1个共享专家和256个路由专家组成,其中每个专家的中间隐藏维度为2048。在路由的专家中,每个令牌将激活8个专家,并且每个令牌将确保发送到最多4个节点。多令牌预测深度 D 设置为1,即除了精确的下一个令牌外,每个令牌还将预测一个额外的令牌。与DeepSeek-V2一样,DeepSeek-V3在压缩的潜在向量之后还使用了额外的RMSNorm层,并在宽度瓶颈处乘以额外的缩放因子。在这种配置下,DeepSeek-V3包括671B个总参数,其中37B为每个令牌激活。

训练超参数。
我们使用AdamW优化器(Loshchilov和Hutter,2017),将超参数设置为𝛽1=0.9,𝛽2=0.95,并且weight_decay=0.1。我们在预训练期间将最大序列长度设置为4K,并在14.8T令牌上预训练DeepSeek-V3。对于学习率调度,我们首先在前2K个步骤中将其从0线性增加到2.2×10−4。然后,我们保持2.2×10−4的恒定学习率,直到模型消耗10T的训练 token。随后,我们按照余弦衰减曲线,在4.3T token中将学习率逐渐衰减到2.2×10−5。在最后500B个token的训练过程中,我们在前333B个token中保持2.2×10−5的恒定学习率,并在剩余的167B个token中将学习率切换到7.3×10-6的另一个恒定学习率。梯度剪裁规范设置为1.0。我们采用批量大小调度策略,在前469B个token的训练中,批量大小从3072逐渐增加到15360,然后在剩余的训练中保持15360。我们利用流水线并行性在不同的GPU上部署模型的不同层,对于每一层,路由专家将统一部署在属于8个节点的64个GPU上。
对于节点受限的路由,每个token 最多将发送到4个节点(即𝑀=4)。对于辅助无损耗负载平衡,我们将前14.3T token 的偏差更新速度𝛾设置为0.001,其余500B token的偏差升级速度𝛼设为0.0。对于平衡损失,我们将𝛼设置为0.0001,只是为了避免任何单个序列中的极端不平衡。MTP损失权重𝜆对于前10T token设置为0.3,对于剩余的4.8T代币设置为0.1。


4.3 长上下文扩展

DeepSeek-V3 采用与 DeepSeek-V2 相似的方法实现长上下文处理能力。预训练完成后,系统使用 YaRN 进行上下文扩展,通过两个各包含 1000 步的额外训练阶段,将上下文窗口从 4K 依次扩展至 32K 和 128K。系统沿用了 DeepSeek-V2 的 YaRN 配置,仅将其应用于解耦的共享键 k t R k^R_t ktR 。两个阶段采用相同的超参数设置:尺度 s = 40 s=40 s=40 α = 1 \alpha=1 α=1 β = 32 \beta=32 β=32,缩放因子 ( t ) = 0.2 l n s + 1 \sqrt{(t)} = 0.2 ln s+1 (t) =0.2lns+1

第一阶段将序列长度设为 32K,批量大小为 1920。第二阶段将序列长度提升至 128K,相应地将批量大小调整为 480。两个阶段均采用与预训练末期相同的学习率 7.3e-6 。

通过这个两阶段的扩展训练,DeepSeek-V3能够处理长达128K的输入,同时保持强大的性能。如图8 所示,在监督微调后,DeepSeek-V3 在“Needle In A Haystack”(NIAH)测试中取得了显著的性能,证明了在高达128K的上下文窗口长度上具有一致的鲁棒性。

在这里插入图片描述


4.4 评估

4.4.1. 评估基准

DeepSeek-V3的基础模型是在以英语和中文为主的多语言语料库上进行预训练的,因此我们主要在英语和中文的一系列基准以及多语言基准上评估其性能。我们的评估基于我们集成在HAI-LLM框架中的内部评估框架。考虑的基准分类如下,其中下划线基准为中文,双下划线基准为多语言基准:

  • 多学科多项选择题数据集包括MMLU(Hendrycks等人,2020)、MMLURedux(Gema等人,2024)、MMLU Pro(Wang等人,2024b)、MMMLU(OpenAI,2024 b)、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等人,2022年)。
  • 代码数据集包括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测试进行了基于语言建模的评估,并使用每字节比特数(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@Meta2024b)。我们使用内部评估框架评估所有这些模型,并确保它们共享相同的评估设置。

请注意,由于过去几个月我们的评估框架发生了变化,DeepSeek-V2-Base的性能与我们之前报告的结果略有不同。总体而言,DeepSeek-V3-Base在大多数基准测试中全面优于DeepSeek-V2-Base和Qwen2.5 72B Base,并超过LLaMA-3.1 405B Base,基本上成为最强大的开源模型。

在这里插入图片描述

从更详细的角度来看,我们将DeepSeek-V3-Base与其他开源基础模型进行了单独比较。
(1) 与DeepSeek-V2-Base相比,由于我们模型架构的改进、模型大小和训练令牌的扩展以及数据质量的提高,DeepSeek-V3-Base的性能明显优于预期。
(2) 与最先进的中国开源模型Qwen2.5 72B Base相比,DeepSeek-V3-Base也显示出显著的优势,特别是在英语、多语言、代码和数学基准测试方面。至于中国基准测试,除了中国多学科多项选择任务CMMLU外,DeepSeek-V3-Base的表现也优于Qwen2.5 72B。
(3) 与最大的开源模型LLaMA-3.1 405B Base相比,DeepSeek-V3-Base在多语言、代码和数学基准测试方面也表现出更好的性能。对于英语和汉语基准测试,DeepSeek-V3-Base显示出有竞争力或更好的性能,尤其在BBH、MMLU系列、DROP、C-Eval、CMMLU和CCPM上表现出色。

由于我们高效的架构和全面的工程优化,DeepSeek-V3实现了极高的训练效率。在我们的训练框架和基础设施下,在每万亿个代币上训练DeepSeek-V3只需要180K H800 GPU小时,这比训练72B或405B密集模型便宜得多。


4.5 讨论

4.5.1. 多令牌预测(MTP)策略的消融研究

表4显示了MTP策略的消融结果。
具体来说,我们在不同尺度的两个基线模型上验证了MTP策略。在小规模上,我们训练了一个基线MoE模型,该模型在1.33T令牌上包含15.7B个总参数。在大规模上,我们训练了一个基线MoE模型,该模型在540B令牌上包含228.7B个总参数。在它们之上,保持训练数据和其他架构不变,我们在它们上面附加了一个1深度的MTP模块,并使用MTP策略训练两个模型进行比较。请注意,在推理过程中,我们直接丢弃了MTP模块,因此比较模型的推理成本完全相同。从表中可以看出,MTP 策略在大多数评估基准上持续提高了模型性能。

在这里插入图片描述

4.5.2. 无辅助损失平衡策略的消融研究

在表5中,我们显示了无辅助损失平衡策略的消融结果。我们在不同尺度的两个基线模型上验证了这一策略。在小规模上,我们训练了一个基线MoE模型,该模型在1.33T令牌上包含15.7B个总参数。在大规模上,我们训练了一个基线MoE模型,该模型在578B个令牌上包含228.7B个总参数。

这两个基线模型都纯粹使用无辅助损失平衡策略来促进负载平衡,并使用带有 top-K 亲和度归一化的sigmoid门控函数。它们控制辅助损失强度的超参数分别与DeepSeek-V2-Lite和DeepSeek-V2相同。在这两个基线模型之上,在保持训练数据和其他架构不变的情况下,我们删除了所有辅助损耗,并引入了无辅助损失平衡策略进行比较。从表中我们可以观察到,无辅助损失平衡策略在大多数评估基准上始终取得了更好的模型性能。

在这里插入图片描述

4.5.3. 分批负载平衡与顺序负载平衡

无辅助损失平衡和按顺序辅助损耗之间的关键区别在于它们的平衡范围:按批次与按顺序。与顺序辅助损失相比,批量平衡施加了更灵活的约束,因为它不会对每个序列强制执行域内平衡。这种灵活性使专家能够更好地专注于不同的领域。为了验证这一点,我们记录并分析了桩试验集中不同域上基于16B辅助损失的基线和16B辅助无损失模型的专家载荷。如图9所示,我们观察到辅助无损失模型如预期的那样展示了更大的专家专业化模式。

为了进一步研究这种灵活性与模型性能优势之间的相关性,我们还设计并验证了一个分批辅助损失,该损失鼓励在每个训练批次而不是每个序列上进行负载平衡。实验结果表明,当实现类似水平的分批负载平衡时,分批辅助损耗也可以实现与无辅助损耗方法类似的模型性能。具体来说,在我们对1B MoE模型的实验中,验证损失为:2.258(使用顺序辅助损失)、2.253(使用无辅助损失方法)和2.253(采用批量辅助损失)。我们还在3B MoE模型上观察到类似的结果:使用顺序辅助损失的模型实现了2.085的验证损失,使用无辅助损失方法或批量辅助损失的模式实现了相同的2.080的验证损失。

此外,尽管逐批负载平衡方法显示出一致的性能优势,但它们在效率方面也面临着两个潜在的挑战:(1)某些序列或小批量内的负载不平衡,以及(2)推理过程中域偏移引起的负载不均衡。第一个挑战自然是通过我们的训练框架来解决的,该框架使用大规模的专家并行性和数据并行性,保证了每个微批的大容量。对于第二个挑战,我们还设计并实现了一个具有冗余专家部署的高效推理框架,如第3.4节所述,以克服它。

在这里插入图片描述


5. 后训练

5.1 监督微调(SFT)

研究构建了包含 150 万个多领域实例的指令调优数据集,针对不同领域特点采用了相应的数据创建方法。

推理数据处理: 在数学、代码竞赛和逻辑谜题等推理类任务中,系统采用内部 DeepSeek-R1 模型生成数据。虽然 R1 生成的数据具有较高的准确性,但同时存在推理冗长、格式不规范和输出过长等问题。因此,研究的核心目标是在保持 R1 模型高准确性的同时,实现输出的清晰简洁。

具体实施方法如下:首先针对特定领域(如代码、数学或通用推理)开发专家模型,采用 SFT 和 RL 相结合的训练流程。该专家模型随后作为最终模型的数据生成器。

对每个训练实例,系统生成两类 SFT 样本:一类是问题与原始答案的直接配对,另一类则引入系统提示词,将其与问题和 R1 答案组合。系统提示经过优化设计,包含了引导模型生成具有自我反思和验证机制响应的指令。

在RL阶段,模型通过高温采样生成响应,即使在没有明确系统提示的情况下,也能有效融合 R1 生成数据和原始数据的特征。经过数百轮RL迭代,中间模型成功整合了 R1 的响应模式,显著提升了整体性能。随后,研究采用拒绝采样方法,利用专家模型作为数据源,为最终模型筛选高质量的 SFT 数据。这种方法既保持了 DeepSeek-R1 的高准确性,又确保了输出的简洁性和有效性。

非推理数据处理:
对于创意写作、角色扮演和基础问答等非推理任务,系统利用 DeepSeek-V2.5 生成响应,并通过人工标注确保数据质量。

SFT 训练配置:
研究对 DeepSeek-V3-Base 进行了两轮 SFT 数据集训练,采用余弦衰减的学习率调度策略,初始学习率为 5e-6,逐步降低至 1e-6。训练过程中采用多样本序列打包技术,同时通过样本掩码机制确保各样本间的独立性。


5.2 强化学习(RL)

奖励模型设计

在强化学习过程中,系统同时采用规则型和模型型两种奖励模型(Reward Model, RM)。

规则型奖励模型:对于可通过明确规则验证的任务,系统采用规则型奖励机制进行反馈评估。例如,在处理具有确定性答案的数学问题时,要求模型在特定格式(如方框内)给出最终答案,从而可以通过规则进行自动验证。同样,在处理 LeetCode 编程题时,系统可通过编译器执行测试用例生成客观反馈。这种基于规则的验证方法具有较高的可靠性,能有效防止模型的投机行为。

模型型奖励模型:对于具有标准答案但形式灵活的问题,系统使用奖励模型评估输出与标准答案的匹配程度。而对于创意写作等缺乏标准答案的任务,奖励模型则基于问题和回答的整体性给出评估反馈。该奖励模型基于 DeepSeek-V3 的 SFT checkpoint 进行训练。为增强模型可靠性,系统构建的偏好数据不仅包含最终评分,还包含推导评分的完整推理过程,这种设计有效降低了特定任务中的奖励扭曲风险。

群组相对策略优化(GRPO)

系统采用与 DeepSeek-V2 相似的GRPO方法。这种方法不需要与策略模型规模相当的评论家模型,而是通过群组评分估计基线。具体实现中,对每个问题 q q q ,GRPO 从原策略模型 π θ o l d \pi _{\theta old} πθold 采样一组输出 { o 1 , o 2 , . . . , o G } \{ o_1, o_2, ...,o_G\} {o1,o2,...,oG} ,并通过最大化以下目标函数优化策略模型 π θ \pi_\theta πθ

在这里插入图片描述

其中𝜀和𝛽是超参数; π r e f \pi_{ref} πref 是参考模型; A i A_i Ai 是优势,来源于与每个组内的产出相对应的奖励 { r 1 , r 2 , . . . , r G } \{ r_1, r_2, ..., r_G\} {r1,r2,...,rG}
在这里插入图片描述
在强化学习过程中,我们整合了来自不同领域的提示,如编码、数学、写作、角色扮演和问答。这种方法不仅使模型更符合人类偏好,而且提高了基准测试的性能,特别是在可用SFT数据有限的情况下。


5.3 评估

5.3.1. 评估设置

评估基准。
除了我们用于基础模型测试的基准外,我们还进一步评估了IFEval(Zhou等人,2023)、FRAMES(Krishna等人,2024)、LongBench v2(Bai等人,2024)、GPQA(Rein等人,2023 AIME 2024)(MAA,2024)。

比较基线。
我们根据几个强基线对我们的聊天模型进行了全面评估,包括DeepSeek-V2-0506、DeepSeek-V2.5-0905、Qwen2.5 72B指令、LLaMA-3.1 405B指令、Claude-Connect 3.5-1022和GPT-4o-0513。对于DeepSeek-V2型号系列,我们选择最具代表性的变体进行比较。对于闭源模型,评估是通过其各自的API进行的。

详细评估配置。
对于包括MMLU、DROP、GPQA和SimpleQA在内的标准基准测试,我们采用简单evals框架4中的评估提示。我们在零样本设置中使用MMLU-Redux的零值提示格式(Lin,2024)。对于其他数据集,我们遵循其原始评估协议,并使用数据集创建者提供的默认提示。对于代码和数学基准测试,HumanEval-Mul数据集总共包括8种主流编程语言(Python、Java、Cpp、C#、JavaScript、TypeScript、PHP和Bash)。我们使用CoT和非CoT方法来评估LiveCodeBench上的模型性能,数据收集于2024年8月至2024年11月。Codeforces数据集是使用竞争对手的百分比来衡量的。使用无代理框架对验证的SWE Bench进行评估(Xia等人,2024)。我们使用“diff”格式来评估Aider相关的基准。对于数学评估,AIME和CNMO 2024在0.7的温度下进行评估,结果在16次运行中取平均值,而MATH-500采用贪婪解码。我们允许所有模型为每个基准输出最多8192个令牌。

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上表现出色,MMLU Pro是一个更具挑战性的教育知识基准,与Claude Sonnet 3.5非常接近。在MMLU Redux上,DeepSeek-V3超越了同行,这是MMLU的改进版本,标签已更正。此外,在博士级评估测试平台GPQA Diamond上,DeepSeek-V3取得了显著成绩,排名仅次于Claude 3.5 Sonnet,远远超过了所有其他竞争对手。
在DROP、LongBench v2和FRAMES等长上下文理解基准测试中,DeepSeek-V3继续证明其作为顶级模型的地位。它在DROP的3-shot设置中获得了令人印象深刻的91.6 F1分数,超过了该类别中的所有其他型号。在FRAMES上,一个需要回答超过10万个令牌上下文的基准测试,DeepSeek-V3紧随GPT-4o之后,同时以显著的优势超越了所有其他模型。这展示了DeepSeek-V3在处理超长上下文任务方面的强大能力。DeepSeek-V3的长上下文功能通过其在LongBench v2上的一流性能得到了进一步验证,LongBench v2是DeepSeek V3发布前几周发布的数据集。在事实知识基准SimpleQA上,DeepSeek-V3落后于GPT-4o和Claude Sonnet,主要是由于其设计重点和资源分配。DeepSeek-V3分配了更多的训练令牌来学习中文知识,从而在C-SimpleQA上取得了出色的表现。在遵循指令的基准测试中,DeepSeek-V3的表现明显优于其前身DeepSeek-V2系列,突显了其理解和遵守用户定义格式约束的能力得到了提高。

编程和数学基准。
对于LLM来说,编程是一项具有挑战性和实用性的任务,包括以工程为重点的任务,如SWE Bench Verified和Aider,以及算法任务,如HumanEval和LiveCodeBench。在工程任务中,DeepSeek-V3落后于Claude-Connect-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型模型非常有益。

中文基准。
Qwen和DeepSeek是两个具有代表性的模型系列,对中文和英文都有强大的支持。在事实基准中文SimpleQA上,DeepSeek-V3比Qwen2.5-72B高出16.4分,尽管Qwen2.5是在一个包含18T令牌的更大语料库上训练的,比DeepSeek-V3预训练的14.8T令牌多20%。
在中国教育知识评估的代表性基准C-Eval和CLUEWSC(中文Winograd Schema Challenge)上,DeepSeek-V3和Qwen2.5-72B表现出相似的性能水平,表明这两个模型都很好地针对具有挑战性的中文推理和教育任务进行了优化。
在这里插入图片描述

5.3.3. 开放式评估

除了标准基准测试外,我们还使用LLM作为评判标准,对开放式生成任务的模型进行评估,结果如表7所示。具体来说,我们坚持AlpacaEval 2.0(Dubois等人,2024)和Arena Hard(Li等人,2024a)的原始配置,它们利用GPT-4-Turbo-1106作为成对比较的判断标准。在Arena Hard上,DeepSeek-V3在GPT-4-0314的基础上取得了超过86%的胜率,与Claude-Connect 3.5-1022等顶级机型的表现不相上下。这突显了DeepSeek-V3的强大功能,特别是在处理复杂的提示方面,包括编码和调试任务。此外,DeepSeek-V3取得了突破性的里程碑,成为第一个在Arena Hard基准测试中超过85%的开源模型。这一成就显著弥合了开源和闭源模型之间的性能差距,为开源模型在具有挑战性的领域中可以实现的目标设定了新的标准。

同样,DeepSeek-V3在AlpacaEval 2.0上表现出色,表现优于闭源和开源模型。这表明它在写作任务和处理直截了当的问答场景方面表现出色。值得注意的是,它以20%的显著优势超过了DeepSeek-V2.5-0905,突出了在处理简单任务方面的实质性改进,并展示了其进步的有效性。

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和投票来对开放式问题提供自我反馈,从而提高了对齐过程的有效性和稳健性。

在这里插入图片描述


5.4 讨论

5.4.1. DeepSeek-R1蒸馏

我们消除了基于DeepSeek-V2.5的DeepSeek-R1的蒸馏贡献。基线是在短CoT数据上训练的,而其竞争对手使用上述专家检查点生成的数据。

表9展示了蒸馏数据的有效性,显示LiveCodeBench和MATH-500基准测试都有显著改进。我们的实验揭示了一个有趣的权衡:蒸馏可以带来更好的性能,但也大大增加了平均响应长度。为了在模型精度和计算效率之间保持平衡,我们仔细选择了蒸馏中DeepSeek-V3的最佳设置。
我们的研究表明,从推理模型中提取知识为训练后优化提供了一个有前景的方向。虽然我们目前的工作重点是从数学和编码领域提取数据,但这种方法在各种任务领域显示出更广泛的应用潜力。在这些特定领域证明的有效性表明,长CoT蒸馏对于提高其他需要复杂推理的认知任务中的模型性能可能很有价值。在不同领域进一步探索这种方法仍然是未来研究的重要方向。

5.4.2. 自我奖励

奖励在强化学习中起着关键作用,引导着优化过程。
在通过外部工具进行验证很简单的领域,例如一些编码或数学场景,强化学习表现出了非凡的功效。然而,在更一般的情况下,通过硬编码构建反馈机制是不切实际的。在DeepSeek-V3的开发过程中,对于这些更广泛的背景,我们采用了宪法AI方法(Bai等人,2022),利用DeepSeek-V3本身的投票评估结果作为反馈源。该方法产生了显著的对齐效果,显著提高了DeepSeek-V3在主观评价中的性能。通过整合额外的宪制输入,DeepSeek-V3可以朝着宪制方向进行优化。我们认为,这种将补充信息与LLM相结合作为反馈来源的范式至关重要。LLM是一个多功能处理器,能够将来自不同场景的非结构化信息转化为奖励,最终促进LLM的自我改进。除了自我奖励,我们还致力于发现其他通用和可扩展的奖励方法,以在一般场景中持续提高模型能力。

5.4.3. 多令牌(MTP)预测评估

DeepSeek-V3不是只预测下一个令牌,而是通过MTP技术预测接下来的2个令牌。结合推测解码框架(Leviathan等人,2023;Xia等人,2023),可以显著加快模型的解码速度。关于额外预测的令牌的接受率,出现了一个自然的问题。根据我们的评估,第二个令牌预测的接受率在各种代主题中在85%到90%之间,证明了一致的可靠性。这种高接受率使DeepSeek-V3能够显著提高解码速度,提供1.8倍的TPS(每秒token数)。


6. 结论,局限和未来的工作

本文介绍了 DeepSeek-V3 大规模混合专家语言模型,该模型总参数量达到 671B,每次处理激活 37B 参数,训练数据规模达 14.8T token。

模型在延续 MLA 和 DeepSeekMoE 架构优势的基础上,创新性地提出了无辅助损失负载均衡策略,并引入多 token 预测训练目标以提升性能。由于FP8训练和细致的工程优化的支持,DeepSeek-V3的训练具有成本效益。后训练也成功地从DeepSeek-R1系列模型中提取了推理能力。

综合评估表明,DeepSeek-V3已成为目前最强大的开源模型,其性能可与GPT-4o和Claude-3.5-Sonnet等领先的闭源模型相媲美。尽管其表现强劲,但它也保持了经济的培训成本。它只需要2.788M H800 GPU小时即可进行全面训练,包括预训练、上下文长度扩展和后训练。

同时,我们也认识到DeepSeek-V3存在一些局限性,特别是在部署方面。首先,为了确保高效推理,DeepSeek-V3的推荐部署单元相对较大,这可能会给小型团队带来负担。其次,尽管我们对DeepSeek-V3的部署策略实现了端到端的生成速度,是DeepSeek-V2的两倍多,但仍有进一步增强的潜力。幸运的是,随着更先进硬件的开发,这些限制有望自然得到解决。

DeepSeek始终坚持开源模型的长期化路线,稳步推进通用人工智能(AGI)的研究。未来的研究将重点关注以下方向:

  • 我们将持续研究和改进我们的模型架构,旨在进一步提高训练和推理效率,努力为无限上下文长度提供有效支持。此外,我们将尝试突破Transformer的架构限制,从而突破其建模能力的界限。
  • 我们将不断迭代训练数据的数量和质量,并探索引入额外的训练信号源,旨在推动数据在更全面的维度范围内扩展。
  • 我们将不断探索和迭代我们模型的深度思维能力,旨在通过扩展推理长度和深度来提高它们的智力和解决问题的能力。
  • 我们将探索更全面和多维的模型评估方法,以防止在研究过程中优化一组固定基准的趋势,这可能会对模型能力产生误导性印象,并影响我们的基础评估。

版权声明:
本文由 youcans@xidian 对论文 DeepSeek-V3 Technical Report 进行摘编和翻译。该论文版权属于原文作者,本译文只供研究学习使用。
本文借助 GPT4 和 DeepSeek 进行了翻译,作者进行了详细校对。

youcans@xidian 作品,转载必须标注原文链接:
【DeepSeek论文精读】5. DeepSeek-V3 技术报告
Copyright 2024 youcans, XIDIAN
Crated:2025-02

### 部署DeepSeek于飞书平台的方法 在飞书平台上利用DeepSeek进行应用开发,特别是针对多维表格的功能扩展,可以实现诸如批量文案改写、论文精读以及视频脚本生成等功能[^2]。为了达成这些目标,在飞书上部署DeepSeek并不直接涉及传统意义上的服务器端部署过程;相反,这更多是指通过集成特定API和服务来调用DeepSeek的能力。 对于希望使用DeepSeek R1模型的开发者而言,可以通过以下方式间接实现在飞书中对该模型的应用: #### 利用第三方服务桥接 如果想要快速接入并测试DeepSeek功能,可以选择借助已经集成了该模型的服务提供商。某些服务商可能提供了易于使用的接口,允许用户上传文档或输入文本片段至其平台,并返回由DeepSeek处理后的结果。这种方式不需要深入了解底层技术细节即可享受AI带来的便利。 #### 自定义集成方案 更进一步地,有能力的企业或个人开发者可以根据官方提供的SDK或其他开放资源自行构建连接器。此方法虽然初期投入较大,但从长远来看能够更好地满足定制化需求。例如,基于阿里云PAI Model Gallery的支持,可以在云端轻松获取到像DeepSeek-V3这样的先进算法模型[^1],之后再考虑如何将其能力嵌入到飞书的工作流当中去。 需要注意的是,无论是采用哪种途径来进行集成操作,都应当关注数据安全性和隐私保护措施,确保所有交互都在合法合规的前提下顺利开展。 ```python import requests def call_deepseek_api(text_input, api_key="your_api_key"): url = "https://api.deepseek.example.com/process" headers = {"Authorization": f"Bearer {api_key}"} payload = {"text": text_input} response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: result = response.json() return result[&#39;processed_text&#39;] else: raise Exception(f"Error calling API: {response.text}") ``` 上述代码展示了如何编写一个简单的函数用于向假设中的DeepSeek API发送请求,并接收经过处理的数据作为回应。实际应用场景下还需要根据具体的API文档调整参数设置等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youcans_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值