支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


官方报告:DeepSeek-V3 模型是如何炼成的!

发布日期:2025-02-23 12:08:47 浏览次数: 2098 作者:云中江树
推荐语

解读DeepSeek-V3模型的官方报告,揭示开源大型语言模型的最新突破。

核心内容:
1. DeepSeek-V3的开发背景与目标:提升开源模型性能,经济高效的训练成本
2. 模型架构创新:Transformer框架下的多头潜在注意力和混合专家优化
3. DeepSeek-V3的性能目标:在特定领域接近闭源模型水平,超越其他开源模型

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

DeepSeek-V3 官方报告解读

https://arxiv.org/abs/2412.19437



1. 论文背景:为什么要开发 DeepSeek-V3?

近年来,大型语言模型(LLM)发展迅速,不仅闭源模型(如 GPT-4o、Claude-3.5-Sonnet)表现强劲,开源模型也在不断进步,比如 DeepSeek 系列、LLaMA 系列等。DeepSeek-V3 的目标是进一步提升开源模型的能力,缩小与闭源模型的差距,同时保持训练成本的经济性。

  • 模型规模:DeepSeek-V3 总共有 6710 亿个参数,但每次处理一个 token 时只激活 370 亿个参数,这种设计降低了计算成本。
  • 核心目标:在性能上,DeepSeek-V3 要达到甚至超过其他开源模型,并且在某些领域(如数学、编程)接近闭源模型的水平;同时,训练成本要尽可能低,做到“经济高效”。


2. DeepSeek-V3 的架构:它长什么样?

DeepSeek-V3 的架构基于 Transformer 框架,但加入了一些创新设计,主要包括以下几个关键部分:


2.1 多头潜在注意力(MLA)

  • 作用:MLA 是为了让模型在推理(inference)时更高效。它通过低秩压缩(low-rank compression)减少了键值缓存(KV cache)的占用空间。
  • 通俗解释:想象一下,模型在处理长文本时需要记住很多信息(键和值),但如果直接存储所有信息,内存会爆满。MLA 把这些信息压缩到一个更小的空间,只存储最重要的部分,这样既节省内存,又不影响性能。
  • 与 DeepSeek-V2 的关系:MLA 在 DeepSeek-V2 中已经验证过效果,DeepSeek-V3 继续沿用。


2.2 DeepSeekMoE:混合专家的优化

  • 什么是 MoE?:MoE 是一种模型结构,里面有很多“专家”(expert),每个 token 会选择一部分专家来处理。DeepSeekMoE 是 DeepSeek 团队特有的 MoE 设计,特点是专家分工更细(finer-grained experts),并且有一些专家是共享的(shared experts)。
  • 创新点:无辅助损失的负载均衡(Auxiliary-Loss-Free Load Balancing)
    • 问题:MoE 模型容易出现“专家负载不均衡”(有的专家忙死,有的专家闲着),传统的解决方法是加一个辅助损失(auxiliary loss),但这可能会损害模型性能。
    • 解决方案:DeepSeek-V3 引入了一种新方法,通过动态调整每个专家的“偏置项”(bias term),来平衡负载。这种方法不依赖辅助损失,减少了对性能的负面影响。
    • 额外措施:为了防止单个序列(sequence)内的极端不平衡,还加了一个很小的序列级辅助损失(sequence-wise balance loss),但影响很小。
  • 节点限制路由(Node-Limited Routing):为了减少训练时的通信成本,每个 token 最多只送到 4 个节点(node),这样可以更好地利用硬件资源。
  • 无 token 丢弃:由于负载均衡做得好,训练和推理时都不需要丢弃 token,效率更高。


2.3 多 token 预测(Multi-Token Prediction, MTP)

  • 作用:传统的语言模型一次只预测下一个 token,DeepSeek-V3 则可以同时预测未来两个 token(next 2 tokens)。
  • 好处
    • 训练信号更密集:一次预测多个 token,相当于给模型提供了更多的学习信号,提高了数据效率。
    • 推理加速:结合“推测解码”(speculative decoding),可以显著提升生成速度,达到 1.8 倍的每秒 token 生成速率(TPS)。
  • 实现方式
    • DeepSeek-V3 用了一个主模型(main model)预测下一个 token,再加了一个 MTP 模块预测第二个 token。
    • 训练时,MTP 模块的损失会加到总损失中,但推理时可以直接丢掉 MTP 模块,主模型照常工作。
  • 效果:实验表明,MTP 策略在大多数评估基准上都提升了模型性能,尤其是数学和编程任务。


3. 训练过程:如何打造 DeepSeek-V3?

DeepSeek-V3 的训练分为三个阶段:预训练(Pre-Training)、长上下文扩展(Long Context Extension)和后训练(Post-Training)。训练成本总计 278.8 万 H800 GPU 小时,假设每小时 2 美元,费用约 557.6 万美元。


3.1 预训练:喂饱模型的大餐

  • 数据
    • 总共用了 14.8 万亿个高质量、多样化的 token,涵盖多种语言(主要是英语和中文),还特别增加了数学和编程相关的样本。
    • 数据处理上,减少了冗余,同时保持多样性。采用文档打包(document packing)方法,但不使用跨样本注意力掩码(cross-sample attention masking)。
    • 引入了填空(Fill-in-Middle, FIM)策略,类似于 DeepSeekCoder-V2,帮助模型学习上下文预测的能力。
  • 分词器
    • 使用字节级 BPE(Byte-level Byte Pair Encoding),词汇表大小为 128K。
    • 优化了多语言压缩效率,新增了一些特殊 token(如标点符号和换行符的组合),但为了避免 token 边界偏差(token boundary bias),训练时随机拆分了部分组合 token。
  • 超参数
    • Transformer 层数为 61,隐藏维度为 7168。
    • MoE 层从第 4 层开始,每层有 1 个共享专家和 256 个路由专家,每次激活 8 个路由专家。
    • 训练时,序列长度为 4K,批次大小从 3072 逐步增加到 15360。
    • 使用 AdamW 优化器,学习率从 0 增加到 2.2 × 10⁻⁴,然后逐步衰减。
  • 稳定性:整个预训练过程非常稳定,没有出现不可恢复的损失尖峰(loss spikes),也没有需要回滚(rollback)。


3.2 长上下文扩展:让模型能读长文

  • 目标:将模型的上下文窗口从 4K 扩展到 128K。
  • 方法
    • 第一阶段:从 4K 扩展到 32K,序列长度 32K,批次大小 1920,训练 1000 步。
    • 第二阶段:从 32K 扩展到 128K,序列长度 128K,批次大小 480,训练 1000 步。
    • 使用 YaRN(Yet Another Rope-based Extension)方法,分为两个阶段:
    • 学习率保持预训练结束时的值(7.3 × 10⁻⁶)。
  • 效果
    • 在“针在干草堆”(Needle In A Haystack, NIAH)测试中,DeepSeek-V3 在 128K 上下文长度下表现良好,证明了长上下文处理能力。


3.3 后训练:让模型更贴近人类需求

  • 监督微调(Supervised Fine-Tuning, SFT)
    • 推理数据(数学、编程、逻辑):使用内部 DeepSeek-R1 模型生成数据,但 R1 生成的答案可能过于冗长或格式不佳。通过设计系统提示(system prompt)和拒绝采样(rejection sampling),平衡了准确性和简洁性。
    • 非推理数据(写作、角色扮演、问答):用 DeepSeek-V2.5 生成答案,再由人工验证。
    • 数据集包含 150 万个实例,覆盖多个领域:
    • 训练两轮(2 epochs),学习率从 5 × 10⁻⁶ 衰减到 1 × 10⁻⁶,样本间使用掩码(sample masking)避免相互干扰。
  • 强化学习(Reinforcement Learning, RL)
    • 规则型 RM:对于有明确规则的任务(如数学题、编程题),用规则验证答案。例如,数学题要求答案在框中,编程题用编译器验证。
    • 模型型 RM:对于自由形式的任务(如写作),用 DeepSeek-V3 的 SFT 检查点训练 RM,并加入推理链(chain-of-thought)数据,防止奖励作弊(reward hacking)。
    • 奖励模型(Reward Model, RM)
    • 优化方法:使用 Group Relative Policy Optimization(GRPO),通过组内评分估计基线(baseline),避免使用庞大的 critic 模型。
    • 效果:RL 提升了模型在基准测试上的表现,尤其是在 SFT 数据有限的场景下。


4. 训练效率:为什么 DeepSeek-V3 训练成本低?

DeepSeek-V3 的训练效率得益于硬件、算法和框架的协同优化:


4.1 计算集群

  • 使用了 2048 个 NVIDIA H800 GPU 的集群,节点内通过 NVLink 连接,节点间通过 InfiniBand(IB)连接。


4.2 训练框架(HAI-LLM)

  • 并行策略
    • 16 路流水线并行(Pipeline Parallelism, PP):将模型的不同层分配到不同 GPU。
    • 64 路专家并行(Expert Parallelism, EP):跨越 8 个节点,专家均匀分布。
    • ZeRO-1 数据并行(Data Parallelism, DP):减少内存占用。
  • DualPipe 算法
    • 创新的流水线并行算法,减少了流水线气泡(pipeline bubbles),并通过计算-通信重叠(computation-communication overlap)隐藏通信延迟。
    • 即使模型规模扩大,只要保持计算-通信比率恒定,跨节点专家并行的通信开销几乎为零。
  • 高效通信
    • 跨节点全对全(all-to-all)通信优化,利用 IB 和 NVLink 的带宽差异,每个 token 最多送到 4 个节点,减少 IB 流量。
    • 使用 warp specialization 技术,仅用 20 个 SM(流式多处理器)即可充分利用带宽。
  • 内存优化
    • RMSNorm 和 MLA 上投影(up-projection)采用重计算(recomputation),减少激活内存。
    • 指数移动平均(EMA)参数存储在 CPU,异步更新,节省 GPU 内存。
    • MTP 模块的嵌入层和输出头与主模型共享,进一步节省内存。


4.3 FP8 训练

  • 背景:FP8 是低精度格式,比传统的 BF16 更节省内存和计算资源,但容易出现溢出(overflow)和量化误差。
  • 创新点
    • 细粒度量化(Fine-Grained Quantization):激活按 1×128 瓦片(tile)量化,权重按 128×128 块(block)量化,减少量化误差。
    • 高精度累加(Increasing Accumulation Precision):在 Tensor Cores 处理 FP8 GEMM 时,每隔 128 个元素(4 个 WGMMA)将中间结果提升到 CUDA Cores 的 FP32 寄存器,减少累加误差。
    • 在线量化(Online Quantization):实时计算最大绝对值,简化量化流程。
    • 低精度存储和通信:激活和优化器状态(AdamW 的动量)用 FP8 或 BF16 存储,通信时部分激活用 FP8 量化,减少带宽压力。
  • 效果:与 BF16 训练相比,FP8 训练的损失误差低于 0.25%,在 16B 和 230B 规模模型上验证了可行性。


4.4 推理和部署

  • 部署单位
    • 预填充(prefilling)阶段:最小单位为 4 个节点(32 个 GPU),注意力部分用 4 路张量并行(TP4)+序列并行(SP)+8 路数据并行(DP8),MoE 部分用 32 路专家并行(EP32)。
    • 解码(decoding)阶段:最小单位为 40 个节点(320 个 GPU),注意力部分用 TP4+SP+DP80,MoE 部分用 EP320。
  • 负载均衡
    • 通过冗余专家(redundant experts)策略,动态复制高负载专家,定期调整(每 10 分钟)。
    • 探索动态冗余策略,每次推理前计算全局最优路由方案,但需要进一步优化。
  • 吞吐量提升
    • 同时处理两个微批次(micro-batches),一个的注意力与另一个的 MoE 通信重叠。
    • 解码阶段,注意力耗时较多,分配少量 SM 处理 MoE,保持整体性能。


4.5 硬件建议

  • 通信硬件
    • 当前通信依赖 SM,效率低,建议开发专用通信协处理器(如 NVIDIA SHARP),统一 IB 和 NVLink 网络,简化编程。
  • 计算硬件
    • 建议提升 Tensor Cores 的 FP8 GEMM 累加精度,至少支持 34 位。
    • 支持瓦片级和块级量化,避免 Tensor Cores 和 CUDA Cores 间频繁数据移动。
    • 支持在线量化,融合 FP8 转换和 TMA 访问,减少内存读写。
    • 支持转置 GEMM 操作,简化量化流程。


5. 性能评估:DeepSeek-V3 表现如何?

DeepSeek-V3 在多个基准测试上进行了评估,分为基模型(base model)和聊天模型(chat model)两部分。


5.1 基模型表现

  • 比较对象:DeepSeek-V2、Qwen2.5 72B、LLaMA-3.1 405B(均为基模型)。
  • 关键结果
    • 英语基准:在 MMLU(87.1%)、MMLU-Pro(64.4%)、DROP(89.0 F1)等任务上全面领先,尤其是知识密集型任务。
    • 代码基准:在 HumanEval(65.2%)、MBPP(75.4%)、LiveCodeBench(19.4%)等任务上表现出色,远超其他开源模型。
    • 数学基准:在 GSM8K(89.3%)、MATH(61.6%)、MGSM(79.8%)等任务上大幅领先,接近闭源模型水平。
    • 中文基准:在 C-Eval(90.1%)、CMMLU(88.8%)等任务上优于 Qwen2.5 72B。
    • 多语言基准:MMMLU 非英语部分(79.4%),表现优异。
  • 结论:DeepSeek-V3 是目前最强的开源基模型,尤其在代码和数学领域。


5.2 聊天模型表现

  • 比较对象:DeepSeek-V2、DeepSeek-V2.5、Qwen2.5 72B、LLaMA-3.1 405B、Claude-3.5-Sonnet、GPT-4o。
  • 关键结果
    • 在 Arena-Hard(85.5%)和 AlpacaEval 2.0(70.0%)上,首次将开源模型推向 85% 以上,接近闭源模型。
    • 在 C-Eval(86.5%)、C-SimpleQA(64.8%)上优于 Qwen2.5 72B。
    • 在 AIME 2024(39.2%)、MATH-500(90.2%)、CNMO 2024(43.2%)上大幅领先,创非 o1 类模型新纪录。
    • 在 HumanEval-Mul(82.6%)、LiveCodeBench(37.6%)等算法任务上领先。
    • 在 SWE-Bench(42.0%)、Aider(79.7%)等工程任务上,仅次于 Claude-3.5,但远超其他开源模型。
    • MMLU(88.5%)、MMLU-Pro(75.9%)、GPQA-Diamond(59.1%)接近闭源模型,优于所有开源模型。
    • 长上下文任务(如 DROP 91.6 F1、LongBench v2 48.7%)表现出色。
    • 事实性任务(如 SimpleQA 24.9%)稍逊于 GPT-4o 和 Claude,但中文事实性任务(C-SimpleQA 64.8%)领先。
    • 英语基准
    • 代码基准
    • 数学基准
    • 中文基准
    • 开放式评估
  • 结论:DeepSeek-V3 是最强的开源聊天模型,在多个领域接近或超过闭源模型,尤其在数学和编程任务上表现突出。


5.3 消融研究

  • MTP 策略:在不同规模模型上验证,MTP 提升了大多数基准的性能,尤其在代码和数学任务上。
  • 无辅助损失负载均衡:相比传统辅助损失方法,新策略在大多数基准上表现更好,且专家分工更明确。
  • 批次级 vs 序列级负载均衡:批次级均衡(如无辅助损失方法)更灵活,允许专家在不同领域更专注,性能更优。


6. 创新点总结:DeepSeek-V3 做了哪些突破?

  • 架构创新
    • 无辅助损失负载均衡策略,减少性能损失。
    • MTP 训练目标,提升数据效率和推理速度。
  • 预训练效率
    • FP8 混合精度训练,首次在大规模模型上验证可行性。
    • DualPipe 算法和通信优化,实现计算-通信近乎完全重叠。
    • 总训练成本仅 278.8 万 H800 GPU 小时,经济高效。
  • 后训练优化
    • 从 DeepSeek-R1 蒸馏推理能力,显著提升数学和编程性能。
    • 自奖励(self-rewarding)方法,通过投票反馈优化对齐效果。


7. 局限性和未来方向


7.1 局限性

  • 部署成本:推荐部署单位较大(预填充 32 GPU,解码 320 GPU),对小型团队有一定负担。
  • 推理速度:虽然比 DeepSeek-V2 快 2 倍,仍有提升空间。


7.2 未来方向

  • 架构优化:进一步提升训练和推理效率,探索无限上下文长度支持,突破 Transformer 架构限制。
  • 数据扩展:增加训练数据量和质量,探索更多训练信号来源。
  • 推理能力:提升模型的深度思考能力,延长推理链长度。
  • 评估方法:开发更全面的评估方法,避免过度优化特定基准,误导能力评估。


8. 总结:DeepSeek-V3 的意义

DeepSeek-V3 是目前最强大的开源语言模型,特别是在代码和数学领域,性能接近甚至超过闭源模型(如 GPT-4o、Claude-3.5-Sonnet)。它的训练成本低(557.6 万美元),得益于 FP8 训练、通信优化和架构创新。DeepSeek 团队秉持开源精神,致力于推动 AGI(通用人工智能)发展,未来将继续优化架构、数据和推理能力,为开源社区带来更多突破。



53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询