DeepSeek-V3 技术报告

1.摘要

为了减少开源模型与闭源模型的能力差距,我们提出了DeepSeek-V3,一个大的混合专家模型(Mixture-of-Experts (MoE) ),有6710亿参数,每个token会激活370亿参数。

DeepSeek-V3采用多头隐注意力(Multi-head Latent Attention (MLA))提升预测效率,和DeepSeekMoE节省训练成本。此外还采用了两个策略,1)auxiliary-loss-free策略进行负载平衡;2)采用了multi-token prediction(MTP)训练目标,增强整体表现。

为了进行高效的训练,我们采用了FP8混合精度训练;同时设计了DualPipe 算法进行并行;也开发了高效的跨节点多对多通信,充分利用InfiniBandNVLink带宽;也优化了内存脚本。

1)在预训练,我们使用了14.8T的高质量多样token。2)接着,我们对DeepSeek-V3进行了两阶段的上下文长度扩展,第1阶段,最大上下文长度扩展到32K,第2阶段,进一步扩展到128K。3)最后进行后训练,包括监督微调(Supervised Fine-Tuning (SFT))和强化学习(RL)。

上面三阶段训练时间和成本如下,采用了2048块H800 GPU。预训练2664K GPU小时,花了不到两个月时间(2664K/2048/24=54.19天)。DeepSeek-V3训练总共5百万多美元,而openai需要上亿美元。

2.模型结构

2.1Multi-Head Latent Attention

2.2DeepSeekMoE

主要讲FFN层(Feed-Forward Networks)。如最开始的架构图,FFN分为共享专家(shared experts)和路由专家(routed experts)。

​​​​​​​2.3Auxiliary-Loss-Free Load Balancing

对于一般混合专家模型(MoE),为了减少不平衡的专家使用,采用辅助损失函数(Auxiliary-Loss),而DeepSeek没有使用,故Auxiliary-Loss-free。其将FFN中的g改成如下,对每个专家引入偏置项b,来觉得top k个路由专家。公式如下:

​​​​​​​2.4Complementary Sequence-Wise Auxiliary Loss.

虽然DeepSeek-V3主要靠上面的Auxiliary-Loss-free,但为了防止任一序列的极端不均衡,还是引入了辅助损失函数,即序列级别辅助函数(Sequence-Wise Auxiliary Loss),如下:

其中α是超参数。T是一个序列的token数量。

上面损失函数鼓励在每一个序列上的专家加载是均衡的。

2.5​​​​​​​Multi-Token Prediction

就是上图除了main model,又额外增加了D个MTP model,来额外预测D个token,引入新的损失函数来校验这些额外token,提高模型准确度。增加的MTP model的embedding层和output head和main mode参数共享。而且MTP model只用来训练,在预测 时丢弃。

MTP训练目标函数如下:

3.基础设施

采用了2048块H800 GPU。每个集群节点包括8个GPU,节点内部是通过NVLink和NVSwitch连接。节点间是通过InfiniBand (IB) 连接通信。NVLink 是一种由 NVIDIA 开发的高速互连技术,可实现 GPU 之间的直接通信。NVSwitch 是一款GPU桥接设备(芯片),可提供所需的NVLink交叉网络。

​​​​​​​3.1双管(DualPipe)和计算-通信重叠

双管(DualPipe)主要是在一组独立的前向和后向模块中,重叠计算和通信。将每个模块分为4部分:attention、all-to-all dispatch、MLP、all-to-all combine。对于后向模块,attention和MLP又进一步分成输入和权重两部分。如下图所示:

​​​​​​​3.2跨节点通信

充分利用NVLink带宽(160GB/s)和IB带宽(50GB/s)。NVLink和IB通信时间重叠,节省时间。

​​​​​​​3.3节省内存使用

  1. RMSNorm and MLA Up-Projection在反向传播时重新计算,而不是存储上不用计算,节省内存使用。
  2. 在cpu中保存模型的指数移动平均(Exponential Moving Average (EMA) )
  3. 在Multi-token prediction中共享embedding和output head。
  • 3.4混合精度框架

如下图,FP8和BF16、FP32混用,其中General Matrix Multiplication (GEMM)采用FP8,如下图的Fprop (forward pass), Dgrad (activation backward pass), and Wgrad (weight backward pass)。另外如下保持原来的精度(BF16或FP32):the embedding module, the output head, MoE gating modules, normalization operators, and attention operators

​​​​​​​3.5精细量化

将输入向量的最大绝对值缩放(量化)到FP8范围内。

如下图,将input在1*128元素上作为一组,量化到FP8,即Tile-wise 量化。将weight,在128*128 block上做为一组,量化到FP8,即Block-wise 量化。

  • 4.预训练

    4.1训练数据构造

训练数据包括14.8T 高质量多样的token。

采用Prefix-Suffix-Middle (PSM) 框架构造训练数据 ,如下格式:

DeepSeek-V3 的采用Byte-level BPE 编码token,token词库是包含128k个token的词库。

  • 5 后训练

    5.1监督微调

部分训练数据有使用DeepSeek-V2.5生成。

​​​​​​​5.2强化学习

有采用基于规则(rule-based)的奖励模型和基于模型(model-based)的奖励模型。

基于模型(model-based)的奖励模型竟然使用DeepSeek-V3自身,从DeepSeek-V3中输出的几个结果投票评估。

同DeepSeek-V2,采用Group Relative Policy Optimization (GRPO)

​​​​​​​5.3模型效果

DeepSeek-V3相比开源和闭源模型都取得了较好的结果,尤其在数学评测方面,如下表所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI强仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值