智东西(公众号:zhidxcom)
作者 | 中国AI算力大会
6月26日,2025中国AI算力大会在北京热烈召开。从国产AI算力的突围与崛起,到智算中心深层软硬件技术创新解决算力落地产业难题,近30位重量级嘉宾与会带来致辞、报告、演讲和对话,全方位解构DeepSeek引爆的AI算力变局。
摩尔线程副总裁王华在主会场以《基于FP8的国产集群训练》为题进行了主题演讲。在演讲中他提到2020至2025年间,大模型训练的算力需求激增近1000倍 ,而驱动力来自参数规模与数据量双向增长。
王华认为,大集群和FP8成为大模型现阶段的最强需求。对此,他围绕大模型算力需求、混合精度训练、FP8训练技术演进等方面进行了深入浅出地剖析阐释。
此外,王华还分享道,摩尔线程提供包括FP8在内的全精度算力,构建了支持多种不同数据类型的混合精度训练方案,还可以提供万卡集群开箱即用的产品,可以满足大模型的算力需求,并大幅提升其训练效果。
以下为王华的演讲实录精华:
首先来看一下大型训练需求的趋势。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训练面临什么挑战?首先我们看一下不同浮点数的值域。因为指数位不同,取值范围其实差别很大。比如BF16,忽略正负号,可以看到值域靠低端的部分可以到2-126,然后高端的可以到2127。FP16的值域会小很多,但有十位尾数,值域靠低端部分接近2-14,然后高端部分是六万多。
FP8有E4M3和E5M2两种,可以看到,E4M3的取值范围其实非常窄,只有2-6到448,E5M2跟FP16类似,但其实跟现在广泛用的BF16比,取值范围还是小很多。这里面有两个因素,一个是取值范围,一个是精度。
取值范围就是刚刚讲到的从小数到大数的范围,因为FP8的数值范围小,很可能在计算过程中遇到数值上溢和下溢的问题,如此就会带来一个典型问题:梯度爆炸和梯度消失。
精度就是尾数部分能够表达的数量。精度低会带来舍入误差的问题。例如在做数值转换的时候,可能BF16能表示的数在FP8里就会丢失掉一些小数。另外就是一个大数加一个很小的数,由于小数部分太小了,两者就相当于没加,这样就会造成信息丢失,对模型训练过程会带来梯度无法更新的问题。
这两年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训练上面的一些工作。
首先,摩尔线程的全功能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的影响。
今天我给大家汇报的内容就是这些,谢谢。
上一篇: (2分钟科普下🌈皇豪互娱金花房卡一手货源-教程房卡分享
下一篇: 新将军大厅开挂方法🌾🍃大神教你渠道