巨臀 twitter

你的位置:汤唯车震 > 巨臀 twitter > 美国十次啦怡红院 DeepSeek V3 安宁解读:模子&Infra 缔造

美国十次啦怡红院 DeepSeek V3 安宁解读:模子&Infra 缔造

发布日期:2025-03-17 20:17    点击次数:197

美国十次啦怡红院 DeepSeek V3 安宁解读:模子&Infra 缔造

一、布景美国十次啦怡红院

本着求真求实的派头,咱们这里安宁先容一下 DeepSeek V3 本事讲演中的要害本事,也补充了一些细节;酌量到依然好多著述提到 DeepSeek V3 的多样评估目的,咱们这里就不再赘述,聚焦在模子结构和 Infra 缔造两个部分。

对应的论文为:[2412.19437] DeepSeek-V3 Technical Report [1]

对应的代码库为:GitHub - deepseek-ai/DeepSeek-V3 [2]

部老实容在咱们之前的著述中安宁先容过,可以参考:

“AI漫谈”的 2024 年终追溯

幻方 AI DeepSeek 模子背后的万卡集群缔造

大范围踱步式 AI 模子磨真金不怕火系列——大师并行

大范围踱步式 AI 模子磨真金不怕火系列——活水线并行

万字综述 LLM 磨真金不怕火中的 Overlap 优化:字节 Flux 等 7 种决策

万字综述:全面梳理 FP8 磨真金不怕火和推理本事

万字综述:全面梳理 FP8 磨真金不怕火和推理本事 -- 附录

FP8 预磨真金不怕火真实纯熟了吗:一些试验和分析

Meta 多头 LLM:速率和效力兼得,3 倍推理加快

LLaMA 3 本事讲演解读:全面梳理 LLM 关系本事栈

二、节录

DeepSeek-V3 是一个 MoE(Mixture-of-Experts)说话模子,总参数目 671B,每个 Token 激活的参数目为 37B。为收场高效磨真金不怕火与推理,DeepSeek-V3 陆续了 DeepSeek-V2 的 MLA(Multi-head Latent Attention)及 DeepSeekMoE 架构。此外,DeepSeek-V3 开创了无需辅助赔本的负载平衡战略,还使用了多 Token 展望磨真金不怕火办法以增强性能。

作家在 14.8T 高质地 Token 上对 DeepSeek-V3 进行预磨真金不怕火,随后通过监督微调与强化学习阶段充分挖掘自后劲。全面评估浮现,DeepSeek-V3 高出了其他开源模子,性能与最初的闭源模子极端。尽管推崇出色,DeepSeek-V3 的完竣磨真金不怕火仅需 2.788M H800 GPU 小时,且磨真金不怕火过程特别踏实,通盘这个词过程莫得遭受不可规复的 Loss Spike 或进行任何回滚操作。

三、模子架构3.1 模子结构概览

如下图 Figure 2 所示,DeepSeek-V3 的模子结构与 DeepSeek-V2 一致,依然是 MLA + DeepSeekMoE,总参数 671B,激活参数 37B。所有 61 层,Hidden 维度为 7168:

MLA:

Attention Head 个数 nh:128

每个 Head 的维度 dh:128(需要讲明的是,非 MLA 时,一般 nh * dh = Hidden 维度;而 MLA 中并不是这样,dh 会大于 Hidden 维度 / nh,比如这里 128 > 7168/128 = 56)

KV 压缩维度 dc:512

Q 压缩维度 d’c:1536

解耦的 Q 和 K(RoPE)的维度 dRh:64

MoE:

前 3 层 Transformer Layer 的 FFN 保抓为 Dense 结构(1 个大师),后续 Layer 的 FFN 替换为 MoE 结构。

MoE 中包含 1 个分享大师(Share Expert)和 256 个路由大师(Routed Expert),每个大师的 Hidden 维度为 2048。每个 Token 激活 8 个路由大师,况兼确保每个 Token 最多被发送到 4 个节点。

MTP:

MTP 的深度 D 为 1,也即是除了精准展望下一个 Token 外,每个 Token 还额外展望一个 Token。

图片

3.2 MLA

如下图公式 1-11 列出了 MLA 中的要害公式,咱们在这里标注了相应的 Shape 信息,以便与上图中相对应:

图片

图片

图片

如上图可知,关于每一个 Token,推理时在每一个 Transformer Layer 需要需要缓存的 Cache 为蓝色的两个方块,大小为 512+64=576。而轨范 MHA 需要缓存的大小为 2 * Hidden 维度 ,即 2*7168=14336,也即是 DeepSeek V3 的 MLA 的 Cache 大小只消 MHA 的 1/25。

3.3 MoE3.3.1 无需辅助赔本的负载平衡战略

具体来说,作家遴荐了 DeepSeek AI 论文 [2408.15664] Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts [3] 中的负载平衡战略,具体来说,其通过动态更新每个大师的偏置(b)来看护大师的负载平衡,而不会引入额外的扰乱梯度。如下图公式 16 和 Figure 1 所示:

图片

图片

3.3.2 补充的序列级辅助赔本

尽管 DeepSeek-V3 主要依赖于无辅助赔本的战略来收场负载平衡,但为了防患在职何单一序列中出现极点的不屈衡,作家遴荐了一种补充的序列级平衡赔本:

图片

其中,α 为平衡因子超参数,T 示意序列中 Token 个数,Nr 示意大师个数,Topk 示意取舍分数最大的 Kr 个大师,

图片

示意一个序列中归一化后第 t 个 Token 在第 i 个大师的分数。1(⋅) 示意招引函数,其值为 1 示意某条款成立,为 0 示意不成立,比如第 t 个 Token 未在大师 i 的 Topk 中,则值为 0。

本色上,Pi 可以分解为每个大师在通盘 Token 上的平平分数,fi 示意第 i 个大师在通盘这个词序列中的“被选中”频率,用来酌量它的负载相干于其他大师的踱步情况。这种序列级平衡赔本的目的是饱读舞每个序列中的大师负载愈加平衡,幸免负载荟萃在少数大师上,从而提高模子的效力和平允性。

3.3.3 节点不休路由

与 DeepSeek-V2 所遴荐的开拓不休路由访佛,DeepSeek-V3 相似使用了一种不休路由机制以限定磨真金不怕火过程中的通讯支出。简而言之,作家确保每个 Token 最多被发送至 M 个节点,这些节点的取舍依据是踱步在各节点上的大师中,其亲和度得分最高的 Kr/M 项之和。在此不休下,MoE 磨真金不怕火框架确凿能够收场料到与通讯的完全重复。

3.3.4 无 Token 丢弃

成绩于高效的负载平衡战略,DeepSeek-V3 在通盘这个词磨真金不怕火过程中保抓了邃密的负载平衡。因此,DeepSeek-V3 在磨真金不怕火时间未丢弃任何 Token。此外,作家还实施了特定的部署战略以确保推理过程中的负载平衡,故 DeepSeek-V3 在推理阶段相似不会丢弃 Token。

3.4 MTP3.4.1 MTP 收场

受 Meta 的 [2404.19737] Better & Faster Large Language Models via Multi-token Prediction [4](如下图所示,咱们之前也先容过)的启发,作家在 DeepSeek V3 中使用了多 Token 展望(Multi Token Predicton,MTP)办法,该办法将展望范围蔓延到每个位置上的多个翌日 Token。有两个克己:

增强了磨真金不怕火信号的密度,可能栽植数据应用效力。

有时能使模子事前筹谋其表征,以便更好地展望翌日 Token。

图片

如下图 Figure 3 展示了 MTP 的具体收场。与上图 Meta 论文中遴荐孤独输出 Head 并行展望 D 个额外 Token 不同,作家遴荐规律展望额外 Token 的情势,并在每一展望深度保抓完竣的因果链。

其中的 Main Model 即是轨范的 Next Token Prediction。

MTP Module 1 用于展望下下一个 Token,MTP Module 2 用于展望下下下一个 Token(与 LLM 推理中常见的多头投契采样念念路一致)。

MTP Module 中的输入皆包含两个部分,一个是上一个 Module 的 Output Head 的输入,以及上一个输入 Token,况兼其中的 Embedding Layer 和 Output Head 皆是分享自 Main Model,只消新增的 RMSNorm + Linear Projection 和一个 Transformer Block。由于这里有两个输入分别经过 RMSNorm 后 Concat 到一说念,因此需要一个额外的 Linear Projection 进行降维,保抓维度一致。

图片

3.4.2 MTP 推理

MTP 战略主要用于栽植 Main Model 的性能,因此在推理阶段,可以径直放胆 MTP Module,Main Model 仍能孤独且平方开动。此外,还可将这些 MTP Module 用于投契解码,以进一步缩小生成延长。

四、Infra 缔造4.1 料到集群

DeepSeek V3 在包含 2048 H800 GPU 的集群上磨真金不怕火,每个节点包含 8 个 H800 GPU,并使用 NVLink + NVSwitch 收场全互联(需要讲明的是,H800 的 NVLink 带宽为 400 GB/s,而 H100 的 NVLink 带宽为 900 GB/s,这亦然 H800 与 H100 的主要区别)。此外,节点间通过 IB 汇集收场互联。

PS:作家在后文中提到其 NVLink 提供了 160 GB/s 的通讯带宽,简陋是 IB(50 GB/s)的 3.2x。其 160 GB/s 与本色的 400 GB/s(双向)不符,推测这里是单向实测带宽。如下图所示,咱们在 8*H100 GPU 上实测单向的 device to device Memory 带宽,简陋为 900 GB/s * 80% / 2 = 360 GB/s。而 160 GB/s 为 400 GB/s * 80% /2 = 160 GB/s。

图片

而 IB(50 GB/s)可以分解为表面或本色 NIC 带宽,H100/H800 上后向汇集频繁皆会遴荐 400 Gb/s 的 NIC。如下图所示(使用 ib_write_bw 和 ib_read_bw 测试),当 Message 比较大时,发送或者经受实测带宽最大皆能达到 400 Gb/s,双向总带宽可以达到 800 Gb/s(这一丝与 NVLink 口径不同)。另外,也可以推测每个节点包含 8 个 400 Gb/s 的 NIC。

图片

4.2 磨真金不怕火框架4.2.1 概览

DeepSeek V3 使用自研的 HAI-LLM 框架磨真金不怕火(在幻方 AI 的本事博客有先容:HAI-LLM:高效且轻量的大模子磨真金不怕火器具 [5]),其相应的踱步式战略为:16 PP(Pipelining Parallelism),64 EP(Expert Parallelism)以及 ZeRO-1 DP(Data Parallelism)。此外,64 EP 踱步在 8 个节点上。

为了高效磨真金不怕火,作家实施了风雅的工程优化:

缠绵了 DualPipe 算法以收场高效的活水线并行。与现存 PP 行为比较,DualPipe 具有更少的 PP Bubble。更迫切的是,它在 Forward 和 Backward 过程中 Overlap 了料到与通讯,从而管理了跨节点 EP 引入的高通讯支出问题。

开发了高效的跨节点 All2All 通讯 Kernel,以充分应用 IB 和 NVLink 带宽,并省俭专用于通讯的 SM。

用心优化了磨真金不怕火过程中的内存支出,从而能够在无需使用奋发的 TP(Tensor Parallelism)的情况下磨真金不怕火 DeepSeek-V3。

4.2.2 DualPipe 算法

关于 DeepSeek V3 而言,跨节点 EP 引入的通讯支出导致料到与通讯比约为 1:1,效力很低。为了搪塞这一挑战,作家缠绵了一种立异的活水线并行算法 DualPipe。

DualPipe 的中枢念念想在于将一双孤独的 Forward 与 Backward Chunk 内的料到与通讯进行 Overlap。具体而言,将每个 Chunk 诀别为四个组件:Attention、All2All Dispatching、MLP 及 All2All Combining。

其中的 All2All Dispatching 和  All2All Combining 如下所示,即是 MoE Block 之前和之后的两个 All2All 通讯:

图片

罕倡导,关于 Backward Chunk,作家模仿了 ZeroBubble([2401.10241] Zero Bubble Pipeline Parallelism [6]),如下图 Figure 1 所示,Attention 与 MLP 均可进一步分为两部分:Backward for Input 及 Backward for Weight。此外,还有一个 PP 通讯组件。

图片

如下图 Figure 4 所示,针对一双 Forward 与 Backward Chunk,重新陈列这些组件,并手动疗养 GPU SM 在通讯与料到间的分派比例。在此 Overlap 战略下,能够确保 All2All 和 PP 通讯在推行过程中完全袒护,其中:

橙色示意 Forward

绿色示意 Backward for Input

蓝色示意 Backward for Weight

紫色示意 PP 通讯

红色示意 Barrier 同步

图片

完竣的 DualPipe 转变如下图 Figure 5 所示,其遴荐双向 PP 转变,同期从活水线两头输入 Micro Batch,使得大部分通讯得以完全 Overlap(PS:8PP,双向 20 Micro Batch,反标的 10-19 的 10 个 Micro Batch 并莫得列出来,因此咱们用红色 10-19 补充了部分 Micro Batch)。这种 Overlap 还确保了跟着模子进一步蔓延,只消保抓恒定的料到与通讯比,仍可在跨节点部署细粒度大师的同期,收场近乎零的 All2All 通讯支出。

PS:平方来说是无法收场双向 PP 转变的,主若是因为 Forward 推行规律是从赶赴后,比如从 Layer 0,1,2,...,14,15,而 Backward 推行规律是从后往前,比如 Layer 15,14,...,2,1,0。而常见 PP 中的 Layer 只会在某一个 PP Stage,比如 8 PP,那么:

Stage 0 上有 Layer 0 和 1 的权重

Stage 1 上有 Layer 2 和 3 权重

Stage 7 上有 Layer 14 和 15 的权重

Forward 的规律也只可从 Stage 0 到 Stage 7,不行从 Stage 7 到 Stage 0。

而 DeepSeek V3 的双向 PP 转变中,照旧 8 PP 为例:

Stage 0 上有 Layer 0, 1 以及 Layer 14, 15 的权重

Stage 1 上有 Layer 2, 3 以及 Layer 12, 13 的权重

Stage 7 上有 Layer 14, 15 以及 Layer 0, 1 的权重

极端于有 2 份调换的模子副本,Forward 的规律可以从 Stage 0 到 7,也可以从 Stage 7 到 0。

图片

此外,即便在通讯背负不重的更一般场景下,DualPipe 仍展现出效力上风。如下图 Table 2 所示,作家追溯了不同 PP 决策下的 PP Bubble 与内存使用情况。与 ZB1P 比较,DualPipe 在减少 PP Bubble 及优化内存占用方面推崇更佳。其中的 Parameter x2 是正如上述所示,存储了 2 份调换的模子参数,也就需要占用更大的内存(激活的占用也会略略加多),极端于用空间换时辰;但是,因为作家磨真金不怕火时遴荐了比较大的 EP,举座来说并不会加多太多内存占用。此外,DualPipe 仅要求 PP Stage 和 Micro Batch 可被 2 整除,无需 Micro Batch 可被 PP Stage 数整除。 

图片

PS:关于一个里面框架(HAI-LLM)而言,完全可以针对我方的硬件环境(集群)以及模子场景(MLA + MoE)制定私有化的优化决策,比如手动疗养 SM 在料到和通讯中的比例,从而得回比开源决策更优的性能。

4.2.3 高效跨节点 All2All 通讯

为了确保 DualPipe 具有阔气的料到性能,作家定制了高效的跨节点 All2All 通讯 Kernel(包括 Dispatching 和 Combining),以省俭专用于通讯的 SM 数目。Kernel 的收场与 MoE Gating 算法及集群的汇集拓扑共同缠绵。

具体来说,在作家的集群中,跨节点 GPU 与 IB 完全互连,节点内通讯通过 NVLink 处理。NVLink 提供 160 GB/s 带宽,简陋是 IB(50 GB/s)的 3.2x。

为了灵验应用 IB 和 NVLink 的不同带宽,作家将每个 Token 限定为最多被发送到 4 个节点,从而减少 IB 流量。

色情 动漫

关于每个 Token,在作念出息由决策时,起始通过 IB 传输到其办法节点上具有调换节点内索引的 GPU。一朝到达办法节点,将努力确保它通过 NVLink 立即转发到承载办法大师的特定 GPU,而不会被随后到达的 Token 抑止。(PS:比如说,节点 A 上 GPU 0 的 Token 要发送到节点 B 上的 GPU 3,则对应的旅途为:节点 A GPU 0 -> 节点 B GPU 0 -> 节点 B GPU 3。这样作念是因为高性能 GPU 磨真金不怕火集群时常会遴荐轨说念优化,同号 GPU 在一个 Leaf Switch 下,如下图所示,因此可以应用高速的 NVLink 来代替从 Leaf Switch 到 Spine Switch 的流量,从而缩小 IB 通讯时延,况兼减少 Leaf Switch 和 Spine Switch 之间的流量)

图片

通过上述情势,IB 和 NVLink 的通讯也可以完全 Overlap,每个 Token 可以灵验地为每个节点平均取舍 3.2 个大师,而不会产生 NVLink 的额外支出。这意味着,尽管 DeepSeek V3 在试验中只取舍了 8 个路由大师,但它可以将这个数字蔓延到最多 13 个大师(4 个节点 × 3.2 个大师/节点),同期保抓调换的通讯资本。总的来说,在这样的通讯战略下,只用 20 个 SM 足以充分应用 IB 和 NVLink 的带宽。

具体而言,作家遴荐了 warp specialization 本事,并将 20 个 SM 诀别为 10 个通讯通说念。

在 All2All Dispatching 过程中,(1)InfiniBand(IB)发送、(2)IB 至 NVLink 转发,以及(3)NVLink经受分别由相应的 warp 处理。分派给每项通讯任务的 warp 数目会左证通盘 SM 的本色职责负载进行为态疗养。

相似,在 All2All Combining 过程中,(1)NVLink 发送、(2)NVLink 至 IB 转发与累加,以及(3)IB 经受与累加也由动态疗养的 warp 庄重处理。

此外,Dispatching 与 Combining Kernel 均与料到流 Overlap 推行,因此作家也酌量了它们对其他 SM 料到 Kernel 的影响。罕倡导,作家使用定制化的 PTX 教唆,自动疗养通讯 Chunk 大小,从而显贵减少 L2 Cache 的使用量及对其他 SM 的扰乱。

4.2.4 缩小内存支出

为缩小磨真金不怕火过程中的内存占用,作家遴荐了以下本事妙技。

RMSNorm 与 MLA 上投影重料到。在 Backward 阶段,对通盘 RMSNorm 操作及 MLA 上投影进行重料到,从而无需抓久化存储其输出激活值。此战略虽引入一丝额外料到支出,却显贵减少了存储激活值所需的内存空间。

CPU 中的指数迁移平均(EMA)。磨真金不怕火时间,为了在学习率衰减后尽早评估模子性能,作家保留了模子参数的 EMA。这些 EMA 参数存储于 CPU 内存中,并在每一步磨真金不怕火后异步更新。该行为使作家能在不加多额外内存或时辰支出的前提下预防 EMA 参数。

MTP 的分享 Embedding 与输出 Head。遴荐 DualPipe 战略,作家将模子的最浅层(含 Embedding)与最深层(含输出 Head)部署于祛除 PP Stage 上。这种安排使得 MTP Module 与 Main Model 之间能够物理分享 Embedding 与输出 Head 的参数及梯度。这一物理分享机制进一步栽植了内存使用效力(PS:也即是 Huggingface Transformers 中的 tie_word_embeddings)。

4.3 FP8 磨真金不怕火4.3.1 空洞

NVIDIA 和零一万物等皆先容过在 Hopper GPU 上使用 FP8 磨真金不怕火来栽植磨真金不怕火速率的决策(咱们在之前的著述中也有安宁的先容)。受此启发,作家也在磨真金不怕火 DeepSeek V3 的过程中遴荐了 FP8 的细粒度夹杂精度磨真金不怕火。

作家通过与两种不同范围基线模子的 BF16 磨真金不怕火进行对比,考据了提议的 FP8 夹杂精度框架的灵验性。

在小范围实验中,磨真金不怕火了一个包含约 16B 总参数的基线 MoE 模子,使用约 1.33T Token。

在大范围实验中,磨真金不怕火了一个包含约 230B 总参数的基线 MoE 模子,使用约 0.9T Token。

如下图 Figure 10 展示了其磨真金不怕火弧线,解释遴荐高精度累加和细粒度量化战略后,相对差错恒久保抓在 0.25% 以下。

图片

4.3.2 夹杂精度框架

作家的 FP8 夹杂精度磨真金不怕火框架中,大多数料到密集型操作以 FP8 推行,而少数要害操作则保留其原始数据形势,以平衡磨真金不怕火效力与数值踏实性。举座框架如下图 Figure 6 所示。

起始,为加快模子磨真金不怕火,要害料到 Kernel(比如,GEMM 操作)大多遴荐 FP8 精度收场。这些 GEMM 操作剿袭 FP8 Tensor 动作输入,并输出 BF16 或 FP32 形势的终结。如下图 Figure 6 所示,与线性算子关系的三个 GEMM 操作,包括 Forward(Fprop)、激活 Backward(Dgrad)和权重 Backward(Wgrad),均以 FP8 推行。这一缠绵表面上使料到速率较原 BF16 行为栽植一倍。此外,FP8 Wgrad GEMM 允许激活值以 FP8 存储,供 Backward 使用,从而显贵缩小内存铺张。

图片

尽管 FP8 形势具灵验率上风,但某些算子因对低精度料到比较明锐仍需更高精度。同期,一些低资本算子也可遴荐更高精度,对举座磨真金不怕火性能的影响聊胜于无。因此,作家对以下组件保抓原始精度(如 BF16 或 FP32):Embedding Module、输出 Head、MoE 门控模块、归一化算子及 Attention 算子。这些有针对性的高精度保留确保了 DeepSeek-V3 的磨真金不怕火动态踏实性。为进一步保证数值踏实性,作家将主权重、权重梯度和优化器景况以更高精度存储。尽管这些高精度组件带来一定的内存支出,但通过踱步式磨真金不怕火系统中跨多个 DP Rank 的灵验分片,其影响很小。

4.3.3 栽植精度

作家还引入了多少战略以栽植低精度磨真金不怕火的准确性,重心在于量化行为与乘法过程的优化。

细粒度量化。由于 FP8 形势动态范围有限,上溢和下溢是常见的挑战。轨范作念法是 Per Tensor 量化,会导致低精度磨真金不怕火对激活特别值极为明锐,严重缩小量化精度。为管理此问题,作家提议了一种细粒度量化行为。如下图 7a 所示:

关于激活值,以 1x128 的 Tile 为单元(比如,每 Token 每 128 Channel)进行分组与缩放;

关于权重,以 128x128 的 Block 为单元(即,每 128 输入 Channel 每 128 输出 Channel)进行分组与缩放。

此行为通过更小的元素组疗养缩放比例,确保量化过程能更好地安妥特别值。

图片

该行为的要害更始是在 GEMM 操作中引入按组缩放因子。不外,这一功能在轨范的 FP8 GEMM 中并未径直赞成。但是,集结精准的 FP32 累加战略,它可以被高效收场。值得预防的是,这里的细粒度量化战略与 Microscaling Format([2310.10537] Microscaling Data Formats for Deep Learning [7])的理念高度一致,而 NVIDIA 下一代 GPU(Blackwell 系列)的 Tensor Core 已告示赞成具有更小量化粒度的 Microscaling Format。

栽植累加精度。低精度的 GEMM 操作常靠近下溢问题,其准确性很猛进度上依赖于高精度的累加,频繁遴荐 FP32 进行。但是,作家不雅察到,在 NVIDIA H800 GPU 上,FP8 GEMM 的累加精度仅能保留约 14 位,远低于 FP32 的累加精度。当里面维度 K 较大时,这一问题愈加凸起,这在大范围模子磨真金不怕火中尤为常见。以 K=4096 的两个赶紧矩阵的 GEMM 操动作例,在作家的初步测试中,Tensor Core 受限的累加精度导致最大相对差错接近 2 %。尽管如斯,有限的累加精度仍是部分 FP8 框架的默许选项,严重制约了磨真金不怕火精度。

为管理此问题,作家遴荐了 Cutlass(GitHub - NVIDIA/cutlass: CUDA Templates for Linear Algebra Subroutines [8])中的决策,借助 CUDA Core 以获取更高精度。具体来说,该过程如上图 7b 所示,在 Tensor Core 上推行 MMA,中间终结以有限位宽累加。一朝达到 Nc 完了,这些中间终结将被复制到 CUDA Core 的 FP32 寄存器中,进行全精度的 FP32 累加。然后可以集结前边的细粒度量化,沿里面维度 K 应用每组的缩放因子。这些缩放因子在 CUDA Core 上高效地动作反量化过程进行乘法运算,额外料到资本极低。

值得预防的是,这一修改会缩小单个 WGMMA(Warpgroup Level 矩阵乘加)教唆辐射率。但在 H800 架构上,频繁两个 WGMMA 会同期存在:当一个 Warpgroup 推行 promotion 操作时,另一个可推行 MMA 操作。此缠绵收场了两个操作的 Overlap 推行,确保了 Tensor Core 的高应用率。左证据验数据,设定 Nc 为 128 个元素,极端于 4 次 WGMMA 操作组成最小累加完了,这一建设能在不引入显贵支出的前提下显贵栽植料到精度。

余数优先于指数。与先前商讨遴荐的夹杂 FP8 形势不同,该形势在前向传播中使用 E4M3(4 位指数和 3 位余数),在数据梯度和权重梯度中使用 E5M2(5 位指数和 2 位余数),作家则对通盘 Tensor 遴荐 E4M3 形势以追求更高精度。此行为可行主若是使用了细粒度的量化战略,通过对更小的元素组进行操作,可以灵验地在这些分组元素间分享指数位,从而缓解了有限动态范围的影响。

在线量化。常见的 Tensor level 量化框架中遴荐 Delayed Scaling,通过保留先前迭代中的 amax(最大完全值)history 来推断刻下值。为了确保量化 Scale 准确并简化框架,作家在线料到每个 1x128 激活 Tile 或 128x128 权重 Block 的 amax,基于此推导出 scaling 因子,随后在线将激活或权分量化为 FP8 形势。

如下图为 NVIDIA Transformer Engine 中的 Delayed Scaling 收场决策,其 amax history 最多可以存储 1024 个 history。在进行刻下 Tensor 的 Scaling 操作时,会使用刻下 Tensor 之前的 amax history 来展望刻下的 amax(比如之前 history 的最大值),然后进行 Scaling 操作;Scaling 操作的同期司帐算刻下的 amax,并更新 amax history。

图片

4.3.4 低精度存储和通讯

作家还通过将缓存的激活值和优化器景况压缩为低精度形势,进一步减少内存铺张和通讯支出。

低精度优化器景况。遴荐 BF16 而非 FP32 来存储 AdamW 优化器中的一阶矩和二阶矩,而不会引起可不雅察到的性能下跌。但是,主权重(由优化器存储)和梯度仍使用 FP32 存储,以确保通盘这个词磨真金不怕火过程中的数值踏实性。

低精度激活。如上图 Figure 6 所示,Wgrad 操作使用 FP8 推行。为了减少内存铺张,作家将激活值以 FP8 形势缓存用于线性算子的 Backward。不外,关于低资本高精度磨真金不怕火,会对几个算子特殊处理:

Attention 算子后的线性算子输入。这些激活值也用于 Attention 算子的 Backward,其对精度比较明锐。作家有利为这些激活值定制了 E5M6 数据形势。此外,在 Backward 过程中,这些激活值将从 1x128 量化 Tile 转变为 128x1 Tile。为了幸免引入额外的量化差错,通盘缩放因子均为四舍五入的 2 的整数幂。

MoE 中 SwiGLU 算子的输入。为了进一步缩小内存资本,作家缓存了 SwiGLU 算子的输入,并在 Backward 时重新料到其输出。这些激活值也以 FP8 形势存储,遴荐细粒度量化行为,可以在内存效力和料到精度之间取得平衡。

低精度通讯。在 MoE 模子磨真金不怕火中,通讯带宽是一个要害瓶颈。为缓解这一挑战,作家在 MoE 上投影前将激活量化为 FP8,随后应用 Dispatching,这与 MoE 上投影中的 FP8 Forward 兼容。如同 Attention 算子后线性层的输入,此激活的缩放因子为 2 的整数幂,访佛战略也应用于 MoE 下投影前的激活梯度。关于 Forward 和 Backward 的 Combining,保抓其 BF16 形势,以确保磨真金不怕火进程要害部分的磨真金不怕火精度。

4.4 推理部署

作家在 H800 集群上部署 DeepSeek-V3,其中每个节点内的 GPU 通过 NVLink 互连,而集群中的通盘 GPU 则通过 IB 收场全互联。为了同期确保在线业绩的 SLO 和高浑沌量,作家遴荐了以下部署战略,该战略将 Prefill 阶段和 Decoding 阶段分离。

4.4.1 Prefill

Prefill 阶段的最小部署单元由 4 个节点组成,共 32 个 H800 GPU。

Attention 部分遴荐 4 TP 集结 SP(Sequence Parallelism),并与 8 DP 相集结。其较小的 TP 范围(4)限定了 TP 通讯的支出。

MoE 部分遴荐 32 EP,确保每个大师处理阔气大的 Batch Size,从而栽植料到效力。

在 MoE 的 All2All 通讯中,遴荐与磨真金不怕火阶段调换的行为:起始通过 IB 在节点间传输 Token,然后通过 NVLink 在节点内的 GPU 间转发。罕倡导,关于浅层密集 MLP,遴荐 1TP 以省俭 TP 通讯支出。

为了收场 MoE 部分不同大师间的负载平衡,需确保每个 GPU 处理大致调换数目的 Token。作家引入了一种冗余大师部署战略,即对高负载大师进行复制并冗余部署。高负载大师基于在线部署时间收罗的统计数据检测并如期疗养(如每 10 分钟一次)。详情冗余大师围聚后,左证不雅察到的负载情况,在节点内的 GPU 间用心重新安排大师,奋力在不加多跨节点 All2All 通讯支出的前提下,尽可能平衡各 GPU 的负载。关于 DeepSeek-V3 的部署,作家为 Prefill 阶段建设了 32 个冗余大师。每个 GPU 除了本来承载的 8 个大师外(256/32),还将额外承载一个冗余大师。

此外,在 Prefill 阶段,为了提高浑沌量并袒护 All2All 和 TP 通讯的支出,作家同期处理两个料到职责量邻近的 Micro Batch,将一个 Micro Batch 的 Attention 和 MoE 料到与另一个 Micro Batch的 Dispatching 和 Combining Overlap 推行。

终末,作家还在探索一种动态大师冗余战略,其中每个 GPU 承载更多大师(举例,16 个大师,每次推理设施仅激活 9 个。在每层 All2All 操作启动前,及时料到全局最优路由决策。鉴于 Prrefill 阶段触及大宗料到,料到此路由决策的支出确凿可忽略不计。

4.4.2 Decoding

在 Decoding 过程中,将分享大师视为路由大师之一。由此视角开拔,每个 Token 在路由时会取舍 9 个大师,其中分享大师被视为高负载大师,恒久被选中。Decoding 阶段的最小部署单元由 40 个节点组成,共 320 H800 GPU。

Attention 部分遴荐 4 TP 集结 SP,并与 80 DP 协同职责,而 MoE 部分则遴荐 320 EP。

MoE 部分,每个 GPU 仅承载一位大师,其中 64 个 GPU 庄重承载冗余大师及分享大师。Dispatching 与 Combining 部分的 All2All 通讯通过 IB Direct P2P 传输收场,以收场低延长。此外,还应用 IBGDA 本事进一步缩小延长,栽植通讯效力。

与 Prefill 阶段访佛,基于在线业绩的大师负载统计数据,在特定完了内如期详情冗余大师围聚。但是,由于每个 GPU 仅承载一位大师,因此无需重新安排大师。作家也在探索 Decoding 阶段的动态冗余战略,但这需要对料到全局最优路由决策的算法进行更为风雅的优化,并与 Dispatching Kernel 和会以减少支出。

此外,为栽植浑沌量并掩盖 All2All 通讯的支出,作家还在探索 Decoding 阶段同期处理两个料到负载邻近的 Micro Batch。与 Prefill 阶段不同,Attention 机制在 Decoding 阶段占据更大比例的时辰铺张。因此,将一个 Micro Batch 的 Attention 料到与另一个 Micro Batch 的 Dispatching + 大师夹杂 + Combining Overlap。在 Decoding 阶段,每位大师处理的 Batch 范围相对较小(频繁不逾越 256 个 Token),此时瓶颈在于内存拜谒而非料到自身。鉴于大师夹杂部分仅需加载单一大师的参数,内存拜谒支出极低,故减少 SM 的使用不会显贵影响举座性能。因此,为幸免对 Attention 部分的料到速率形成影响,作家仅需为 Dispatching + 大师夹杂 + Combining 分派一丝 SM 资源。

4.5 磨真金不怕火资本

DeepSeek V3 的磨真金不怕火资本很低,如下图 Table 1 所示,所有磨真金不怕火 2788K H800 小时,按照每个 H800 每小时 2 好意思元的资本,总资本简陋为 560 万好意思元。

图片

但是咱们也看到好多著述中宣称 “DeepSeek 把磨真金不怕火资本打下来 99%”,如下图所示,其宣称 “LLaMA-3.1 的磨真金不怕火资本逾越 5 亿好意思元”,Meta 真实这样拉胯吗?

图片

图片

如下图为 LLaMA 3.1 的磨真金不怕火资本(来自 meta-llama/Llama-3.1-8B · Hugging Face [9]),以 LLaMA 3.1 405B 为主,其所有的磨真金不怕火资本为 30.84M H100 GPU 小时:

图片

H800 比较 H100 主若是阉割了 NVLink 的通讯带宽,举座资本并不会进出太大,比如 Pricing | Lepton AI [10]  每个 H100 每小时 3 好意思元。自建集群或者大范围租借频繁会低于这个数值,假定为 2.5 好意思元,那么 LLaMA 3.1 405B 的磨真金不怕火资本应该为 30.84M * 2.5 = 7710 万好意思元,宣称 LLaMA 3.1 的磨真金不怕火资本为 5 亿好意思元照实相等不当。

图片

除此以外,LLaMA 3.1 的磨真金不怕火资本应该还包含实验、以及故障等问题导致的资本支出,如果只酌量灵验磨真金不怕火时长,上述资本应该会更低。

其实左证料到量也可以浅近预估出资本差距应该在 10 倍傍边,而不是 100 倍。

LLaMA 3.1 405B 和 DeepSeek V3 皆是 15T 傍边 Token 磨真金不怕火。

H100 与 H800 算力调换,资本进出不大。

MoE 的磨真金不怕火 MFU 频繁会比 Dense 模子更低,但是酌量 DeepSeek 使用了 FP8 夹杂精度磨真金不怕火,假定其等效 MFU 调换,也即是 FP8 夹杂精度磨真金不怕火的加快对消了 MoE 的减慢。

中枢的资本互异应该是激活参数的互异 405B vs 37B,简陋是 11 倍。

4.6 磨真金不怕火 MFU 预估4.6.1 料到公式

左证每个 Token 料到量(6N)、总的 Token 数,以及料到资源就可以概况预估出磨真金不怕火的总时长。如下所示:

磨真金不怕火天数 = Token 数 * Ctoken / (GPU 数 * GPU FLOPs * MFU * 3600 * 24)

左证以上公式可以预估使用 8192 H100-80G GPU(BF16 FLOPs 为 989T),10T Token 数据磨真金不怕火 175B 模子的天数为 30 天,其中假定 MFU 为 50%:

10T*6*175B/(8192*989T*50%)/3600/24=30 天

4.6.2 DeepSeek V3 MFU

DeepSeek V3 模子比较特殊,包含了 MLA 和 MoE,统计每个 Token 的安宁料到量也相对复杂。但是,酌量到其中最主要的料到仍是矩阵乘法,依然可以用 6N 来近似,不外这里的 N 为每个 Token 的激活参数,而不是总参数目。

左证上述公式也可以概况推出 DeepSeek V3 预磨真金不怕火的 MFU:

MFU = (Token 数 * Ctoken) / (磨真金不怕火天数 * GPU 数 * GPU FLOPs * 3600 * 24) 

MFU = (Token 数 * Ctoken) / (磨真金不怕火 GPU 小时数 * GPU FLOPs * 3600)

而 DeepSeek-V3 预磨真金不怕火 14.8T Token,在 2048 H800 GPU 磨真金不怕火了不到 2 个月(2664K GPU 小时, 3.7*24*2048*14.8=2692K),如果上述磨真金不怕火时长是贞洁的灵验磨真金不怕火时长,则可以估算其 MFU 为(按 BF16 料到):

(14.8T*37B*6) / (2664K*989T*3600) = 34.7%

除此以外,作家也提到其遴荐了 FP8 夹杂精度磨真金不怕火,其磨真金不怕火速率频繁至少是纯 BF16 磨真金不怕火速率的 1.2x-1.3x,则对应 BF16 磨真金不怕火的 MFU 很可能在 20%-30% 之间。关于 DeepSeek V3 这种 MLA + 细粒度 MoE 的模子,也算是一个很可以的性能。

4.6.3 LLaMA-3.1 MFU

相应地,LLaMA 3.1 70B 所有磨真金不怕火了 15T Token,磨真金不怕火了 7.0M H100 小时,如果按照上述情势推导出的 MFU 为:

(15T*70B*6) / (7000K*989T*3600)= 25.2%

同理,推算出 LLaMA 3.1 405B 的 MFU 为:

(15T*405B*6) / (30.84M*989T*3600)= 33.2%

但是,作家在本事讲演 The Llama 3 Herd of Models | Research - AI at Meta [11] 中提到,405B 模子磨真金不怕火的 MFU 也能达到 40% 傍边。此外,左证咱们的西席,70B Dense 模子预磨真金不怕火的 MFU 应该在 40% 以上的水平。而上述料到出 LLaMA 3.1 70B 的 MFU 只消 25% 傍边,那么很可能的原因是上述 7.0M H100 小时包含了实验,容错等时辰。

图片

五、参考联结

https://arxiv.org/abs/2412.19437

https://github.com/deepseek-ai/DeepSeek-V3

https://arxiv.org/abs/2408.15664

https://arxiv.org/abs/2404.19737

https://www.high-flyer.cn/blog/hai-llm/

https://arxiv.org/abs/2401.10241

https://arxiv.org/abs/2310.10537

https://github.com/NVIDIA/cutlass

https://huggingface.co/meta-llama/Llama-3.1-8B

https://www.lepton.ai/pricing

https://ai.meta.com/research/publications/the-llama-3-herd-of-models/美国十次啦怡红院

本站仅提供存储业绩,通盘内容均由用户发布,如发现存害或侵权内容,请点击举报。