智东西(公众号:zhidxcom)
作者 | 中国 AI 算力大会
6 月 26 日,2025 中国 AI 算力大会在北京热烈召开。从国产 AI 算力的突围与崛起,到智算中心深层软硬件技术创新解决算力落地产业难题,近 30 位重量级嘉宾与会带来致辞、报告、演讲和对话,全方位解构 DeepSeek 引爆的 AI 算力变局。
摩尔线程副总裁王华在主会场以《基于 FP8 的国产集群训练》为题进行了主题演讲。在演讲中他提到 2020 至 2025 年间,大模型训练的算力需求激增近 1000 倍 ,而驱动力来自参数规模与数据量双向增长。
王华认为,大集群和 FP8 成为大模型现阶段的最强需求。对此,他围绕大模型算力需求、混合精度训练、FP8 训练技术演进等方面进行了深入浅出地剖析阐释。
此外,王华还分享道,摩尔线程提供包括 FP8 在内的全精度算力,构建了支持多种不同数据类型的混合精度训练方案,还可以提供万卡集群开箱即用的产品,可以满足大模型的算力需求,并大幅提升其训练效果。
以下为王华的演讲实录精华:
一、5 年,大模型训练算力需求增长千倍
首先来看一下大型训练需求的趋势。2020 年,算力需求训练需求最高是在 1023flops。到 25 年,训练算力需求最高的是 xAI 的 Grok3,算力需求差不多到了 1026flops。从 1023 到 1026,算力需求增长了 1000 倍。
增长主要来自两个方面:一是模型参数。大模型的模型参数规模是在不断增加的,最近的模型动辙都是数千亿甚至到万亿的参数规模;第二是训练数据量。早期训练数据量可能到几百 B,稍微多一点到 1T,但现在基本都是十几 T。
所以,算力需求和模型参数数量与训练数据量的乘积成正比,而这两个维度的增长,带来模型训练算力需求的大幅增长。
再举一个例子,比如,Llama 3 70B 大概是在 1024flops 左右,然后更大一点 Llama 3 405B 在 1025flops 左右 ,GPT 4 也在 1025 左右 , 早期的 Llama 2 大概在 1023flops 左右。虽然 Llama 2 与 Llama 3 的模型参数和模型结构比较类似,但是因为 Llama 2 的训练数据量低一个数量级,所以它要求的算力也会低一个数量级。
不只是算力,这些大规模训练所需要的集群也越来越大。为了校正所需要的算力,用 H100 的千卡、五千卡到万卡量级的集群来作类比。表格中的数据是按照 MFU 算的,当然不同模型的参数大小对 MFU 有影响,另外集群规模增大之后由于加速比效应,MFU 会下降,所以这里只是大致的估算。
这个量级中,DeepSeek V3 的算力需求大概在 3.4×1024flops。在千卡集群上,1024 的训练时间大概是 97 天,五千卡集群需要 22 天,到万卡级别就只需要 13 天了。再举一个例子,Qwen 3 235B,虽然模型参数小一些,但因为数据集更大,它的实际算力会更高,所以 Qwen 3 235B 计算量约为 4.75×1024flops。再看一下训练时间,这个计算量在千卡集群上需要 136 天,五千卡上是 37 天,到万卡就只需要 18 天。这是两个比较典型的国内 MOE 模型的例子。
再比如说 Llama 3 370B,这是比较典型的 Dense 模型(稠密模型),训练数量也差不多在 1024flops 左右,训练时间也与 Qwen 3 差不多。
更大的模型,比如 GPT 4,训练数量有 1025flops,这几乎是千卡不可能完成的任务,到这个量级基本需要万卡级别的集群来支撑。尤其是现在大模型的训练参数基本都在向着万亿发展,数量级十分巨大,所以后续训练需要的算力也会非常大。
二、混合精度训练缓解算力需求激增难题
为了解决算力需求,摩尔线程采用混合精度训练的方法。在整个模型训练过程中,识别出对精度要求不高的操作,将其替换为低精度计算。
更低精度带来的优势,首先体现在算力层面:精度降低一半,算力翻倍,同时显存占用、显存带宽及传输带宽消耗均减半。本质上,采用更低精度的数据类型进行训练,相当于实现了算力的翻倍。但需注意,低精度替换只能部分进行,无法完全替代,精度敏感的环节仍需保留高精度计算。因此,降低精度可在一定程度上提升算力或降低模型训练的算力需求。
在精度策略的设计上,可从两个维度考量:第一个维度是模型权重。以相同算力条件为例,对比多参数低精度模型与少参数高精度模型 , 如 100B 参数规模的 FP16 模型和 200B 参数规模的 FP8 模型,从数学表达能力来看,其可表达的理论空间是等价的。
但当前行业趋势更倾向于优先扩展模型参数规模。这是因为模型训练中实际使用的精度范围仅占理论值域的一部分,造成 " 精度空间浪费 ",而增大参数规模能有效提升模型效果。
从行业技术演进来看,精度格式正沿着 FP32 → TF32 → FP16/BF16 → FP8 的路径发展。此前业界对 FP8 的应用尚处探索阶段,而 DeepSeek 已将其成功应用于模型训练,预计未来会有更多模型采用 FP8 精度。
三、FP8 训练挑战解析:数值范围局限与精度损失引发的梯度问题
FP8 训练面临什么挑战?首先我们看一下不同浮点数的值域。因为指数位不同,取值范围其实差别很大。比如 BF16,忽略正负号,可以看到值域靠低端的部分可以到 2-126,然后高端的可以到 2127。FP16 的值域会小很多,但有十位尾数,值域靠低端部分接近 2-14,然后高端部分是六万多。
FP8 有 E4M3 和 E5M2 两种,可以看到,E4M3 的取值范围其实非常窄,只有 2-6 到 448,E5M2 跟 FP16 类似,但其实跟现在广泛用的 BF16 比,取值范围还是小很多。这里面有两个因素,一个是取值范围,一个是精度。
取值范围就是刚刚讲到的从小数到大数的范围,因为 FP8 的数值范围小,很可能在计算过程中遇到数值上溢和下溢的问题,如此就会带来一个典型问题:梯度爆炸和梯度消失。
精度就是尾数部分能够表达的数量。精度低会带来舍入误差的问题。例如在做数值转换的时候,可能 BF16 能表示的数在 FP8 里就会丢失掉一些小数。另外就是一个大数加一个很小的数,由于小数部分太小了,两者就相当于没加,这样就会造成信息丢失,对模型训练过程会带来梯度无法更新的问题。
四、FP8 训练技术不断演进,4 大创新攻克低精度核心难题
这两年 FP8 训练技术取得多项进展,已经应用在一些模型的训练中。
模型训练中不同操作对精度的需求是不一样的:
1、矩阵乘操作:作为两数相乘的基础运算,FP8 的数值范围易于控制,可通过值域限定避免溢出,对精度要求较低;
2、累加与规约操作:矩阵乘中隐含的累加过程(尤其大矩阵运算时多数相加)存在值域溢出风险,对精度要求处于中等水平;
3、非线性函数运算:如指数函数等场景,数值易快速超出值域,对精度要求最高。
基于此,训练中可对不同操作采用差异化精度策略,通过中间过程的量化与反量化实现精度适配。
Tensor Core 技术提供了混合精度运算的硬件支持。自 2017 年引入以来,该技术持续进化,现可支持以 FP8 格式矩阵为输入,通过硬件级混合精度运算输出高精度矩阵结果。
此外,训练框架也在支持混合精度训练。例如在 BF16 与 FP32 的混合训练中,多数操作采用 BF16 执行,但权重更新时会切换至 FP32,通过维护 FP32 权重副本确保训练稳定性。
还有就是 Tensor Scaling(张量缩放)技术。在进行高精度向低精度转换时,由于值域范围不同,会出现信息丢失问题。因此在数据类型转换前,需先将高精度值域乘以 Scaling Factor(缩放因子)参数,使其缩放到低精度值域范围内,以此确保转换过程中尽可能减少数据丢失。
Scaling Factor 的选择可以有不同的策略。在时间维度上来看可以是在量化前直接计算,也可以采用基于历史数据的 Delayed Scaling Factor(延迟缩放因子)。
从颗粒度来看,既可以对整个 Tensor 应用统一的 Scaling Factor,也能进行更精细的选择,比如 Per-Channel(逐通道)缩放,甚至还能进一步细化到 Per-Channel 的子区域。DeepSeek 在其论文中提及,他们采用的是 Per-Block(逐块)的缩放策略。
简单说一下 DeepSeek 的论文。DeepSeek-V3 就使用了 FP8 混合精度训练,其中主要采用了以下策略:
1、前向和后向传播的 3 次 GEMM 使用 FP8;
2、激活值的缓存和传输使用 FP8;
3、Embedding、激活函数等模块使用高精度浮点数;
4、主权重、权重梯度、优化器状态使用高精度浮点数。
五、摩尔线程全栈支持 FP8 训练,性能提升 20%~30%,对标主流水平
那我们说回到摩尔线程在采用 FP8 训练上面的一些工作。
首先,摩尔线程的全功能 GPU 计算卡在精度上的支持非常全面,摩尔线程是国内少数可以支持 FP8 精度的 GPU 供应商。不同计算精度可以用在图形、计算等不同场景,摩尔线程计算卡的优势就是支持全精度计算。
第二点就是在集群方面的工作。摩尔线程可以说是在集群这一方面投入很大的国产 GPU 公司。我们的夸娥(KUAE)智算集群系列产品可以让客户实现开箱即用,已经做到千卡规模,可支持万卡,未来还会向着更大规模集群前进。
在这一整个过程中,我们积累了很多实践。摩尔线程搭建了完整的软硬件栈,从硬件设计到集群管理、调度等全部包含。在大规模集群的运维方面也积累了丰富的经验。在大规模训练时,经常会出现计算错误、卡异常等情况,如何快速定位出现故障的部分将其替换是很重要的。我们采用了分布式的故障监测方法,实现分钟级的故障定位和恢复。
另外还有支持 FP8 训练的摩尔线程软件栈。我们开源了 3 个组件:提供 MUSA 后端加速支持的 Torch-MUSA、混合并行训练框架 MT-MegatronLM 以及主要用于 Transformer 的高效训练和推理优化的 MT-TransformerEngine。基于摩尔线程软件栈,我们成功复现了 DeepSeek-V3 满血版训练。
在此之上我们做了一系列的实验,基于我们自己的夸娥(KUAE)集群,在性能方面,在 Llama3 8B、Qwen、DeepSeek-V2 16B 以及 V3 30B 上,目前采用 FP8 混合训练可以带来 20%~30% 的性能提升,且引入 FP8 前后 loss 曲线基本一致,在采用 FP8 训练方面,摩尔线程的 GPU 计算卡与国际主流的卡做精度对比也基本吻合。
此外,摩尔线程在 Scaling Factor 的选择上也做了许多探索,例如:amax 的统计信息表明 Per-Tensor 的 Scaling Factor 适合采用 Delayed Scaling 策略,而 Per-Block 则适合采用 JIT Scaling 策略。我们还用摩尔线程 GPU 计算卡做了 Smooth SwiGLU 论文的复现,我们发现,通过 Smooth SwiGLU 可以有效降低 outlier 的影响。
今天我给大家汇报的内容就是这些,谢谢。
登录后才可以发布评论哦
打开小程序可以发布评论哦