Bye,英伟达!华为NPU,跑出了准万亿参数大模型
现在,跑准万亿参数的大模型,可以彻底跟英伟达 Say Goodbye 了。
完成此举的,正是华为!

技术报告:arxiv.org/abs/2505.04519
要知道,在此之前,训练万亿参数大模型这事,是有诸多 " 拦路虎 " 在身上的。
例如负载均衡难、通信开销大、训练效率低等等。
而华为盘古团队(包含诺亚方舟实验室、华为云等)基于昇腾国产算力平台,一举攻破了上述所有的挑战——
6000+ 块昇腾 NPU 集群上完成了7180 亿(718B)参数 MoE 模型的长期稳定训练,并通过多项突破性系统优化技术实现了显著性能提升。
这些创新大幅提高了训练效率,支撑了行业顶尖水平模型的开发!

不得不说," 国产 " 二字在大模型硬件上的含金量还在持续上升。
纯国产 NPU,丝滑跑通准万亿参数大模型
在拆解华为一系列 " 黑科技 " 之前,我们先需要更深入地了解一下训练超大参数 MoE 模型背后的困难。
总体来看,在这条路上有 " 四大金刚 " 在严阵把守。
首先就是架构参数优化难题,需在众多参数组合中探索最优配置,设计适配昇腾 NPU 的大规模 MoE 架构,实现计算资源的高效利用。
其次是动态负载均衡挑战,路由机制需要智能分配任务,避免专家资源分配不均;这种不平衡不仅会因 " 木桶效应 " 降低训练效率,更可能导致模型收敛异常,影响最终性能表现。
还有分布式通信的瓶颈,在近万亿参数规模下,token 在不同计算节点间的专家流转会产生巨大通信开销," 通信墙 " 问题成为制约训练效率的关键因素。
最后就是硬件适配复杂度,实现 MoE 算法与昇腾 NPU 等专用 AI 加速器的深度协同,需要打通算法设计、软件框架和硬件特性的全栈优化,充分释放硬件计算潜力。
针对这些问题,华为的这份技术报告分别从模型架构、MoE 训练分析、系统优化等方面,详细介绍了其如何见招拆招。
首先就是MoE 结构选型与昇腾亲和结构优化。
团队先进行先导实验,确定了细粒度专家加上共享专家这样的范式。随后在模型选型的时候,考虑了多个方面的因素。
在计算与访存亲和方面,通过增大模型里的 hidden size(隐藏层大小),同时降低激活参数量,这样不仅能提升模型的计算量,还可以降低访存量,提高了模型训练时对算力的利用率,以及推理时的吞吐量。
在多维并行亲和方面,采用数量为 2 的指数级的专家数量,达成了 TP8 × EP4 超融合并行的方式。
运用 TP-extend-EP 技术,避免因 TP 切分细粒度专家造成 MatMul(矩阵乘法)等算子的效率下降,同时使用分组 AllToAll 通信技术来减少 EP 通信所产生的开销。
在 DaVinci 架构亲和方面,将张量按照 256 进行对齐处理,使其能完美匹配 16 × 16 矩阵计算单元,充分释放昇腾 NPU 的算力。
在流水线编排亲和方面,采用 PP(流水线并行)、VPP(可变流水线并行)、空层等技术,实现 PP 和 VPP 的负载均衡,减少计算资源闲置(空泡)的情况。

在模型结构仿真方面,团队根据硬件的适配特点,对模型参数的选择范围进行了大幅调整,把原本庞大的参数搜索空间缩小到了 10000 个左右。
为了能更准确地知道不同模型的性能极限,团队开发了一套专门的建模仿真工具。这个工具很厉害,它把模型结构、运行时采用的策略,还有硬件系统,都拆分成了一个个小的参数。
通过对算子、Block、Layer 这些层级的计算、数据传输和读取操作进行模拟,就能算出模型从头到尾的整体性能。经过和实际测试数据对比,发现这个仿真工具的准确率能达到 85% 以上。
团队用这个建模仿真工具,把所有符合硬件适配要求的参数组合都测试了一遍,仔细评估它们在训练和推理时的数据处理速度,最后找到了性能相对更好的模型结构,具体情况可以看下面的图。

接下来,我们再看下MoE 训练的分析。
在训练 MoE 模型的时候,和普通的稠密模型相比,有个特别让人头疼的问题,就是负载不均衡。
打个比方,就像一群人干活,有的人忙得不可开交,有的人却闲着没事干,这样效率肯定高不了。
为了解决这个问题,科研界从算法角度想了很多办法,提出了各种各样的辅助损失函数,这些函数关注的均衡范围不太一样。
比如,早期有专门针对序列级别的均衡辅助损失,还有通义千问提出的 DP - Group(也就是全局批次大小)均衡辅助损失。
这些辅助损失函数,就像是给 MoE 模型里的路由模块(负责分配任务的部分)定了规矩,通过不同程度的约束,让它把任务分配得更均匀一些。具体的约束情况,都整理在下面的表格里了。
△Balance BSZ 表示用来计算专家选择频率的 tokens 个数
团队还研发出了一种全新的 EP 组负载均衡损失算法。
和传统的 micro-batch 辅助损失相比,它不会过度强求局部任务分配的绝对均衡,避免了 " 矫枉过正 ";跟 DP 组的均衡损失比起来,它在数据传输时耗费的资源更少,能节省不少通信成本。
而且在对专家任务量的约束程度上,它处于两者之间,是个更折中的方案。
为了验证这个新算法的效果,团队在一个总参数量达 200 亿(20B)的先导 MoE 模型上,专门做了消融实验,具体情况如下:

为了应对专家负载不均的 " 木桶效应 ",MoE 可以采用 drop-and-pad 的方式来提升训练的吞吐。
团队首先在一个 20B 的先导 MoE 上对比了不同专家总数下 drop-and-pad 和 dropless 的性能:

结果显示,dropless 总是优于 drop-and-pad 方案。
并且这种性能的差距会随着专家数变多、模型参数变大而进一步放大。
因此在训练盘古 Ultra MoE 时采用了 dropless 的方案,并重点优化了这一策略下的训练效率。
具体而言,团队从四个关键方向对盘古 Ultra MoE 模型进行了全面优化,包括改进并行计算策略、优化数据传输效率、提升显存使用效果,以及让任务分配更均匀。
在由 6000+ 个昇腾 NPU 组成的大型计算集群上,模型的算力利用率(MFU,即 Model FLOPs Utilization)达到了 30.0% ,和优化前相比,提升幅度高达 58.7%。
团队用一套能模拟全流程的模型仿真系统,反复试验寻找最佳的并行计算方案。
最终确定的方案是:采用 16 路流水线并行、8 路张量并行、4 路专家并行、2 路虚拟流水线并行,以及 48 路数据并行。
在专家并行这块,团队用了 TP 拓展 EP 的策略。
简单来说,就是让 TP 组来划分专家数量,这样做能避免因为 TP 组拆分专家参数,导致 GMM 算子在处理小规模专家数据时效率暴跌的问题。
整个系统里,专家组总数是 32 组(TP 和 EP 组合计算得出),一共划分成 256 个专家。
虚拟流水线并行策略效果特别好,以前训练时,计算资源闲置(空泡率)的情况占 18.98%,用了新策略后,直接降到 10.49% 。
同时,通过合理分配 MTP 层和损失函数层的任务,把任务分配不均衡导致的负载溢出,控制在 5% 以内,大大减少了任务分配不均带来的负面影响。

为了解决并行扩展中的通信瓶颈,团队还设计了两个主要技术。
首先就是Hierarchical EP Communication 分级 EP 通信。
相比机内通信,跨机通信带宽较低。团队采用分级 EP 通信,减少跨机通信量。
具体来说,采用跨机 Allgather 通信将所有 tokens 同步到机内,然后在机内对 token 排序并采用机内 AlltoAll 通信对 tokens 重新分配。
机内通信和机间通信都可以通过前反向通信掩盖技术掩盖,从下图的通信量对比可以看到分级 EP 通信对跨机通信量减少的效果。

其次是Adaptive Pipe Overlap Mechanism 自适应前反向掩盖策略。
即使采用分级 EP 通信策略,EP 通信的耗时占比仍然很高。前反向的大部分 EP 通信与计算均具有依赖关系,自然掩盖策略会暴露大部分 EP 通信。
如果采用通算融合算子等自掩盖策略,又不可避免地会降低计算效率。
因此,团队采用基于 VPP 调度的自适应前反向掩盖策略,实现如下图流程的前向计算掩盖反向通信,反向计算掩盖前向通信。
核心设计包括:利用机间与机内通信链路带宽独立特点实现机内通信与机间通信的互相掩盖,利用算子的有效排布缓解 host bound,将专家反向 dw 计算与 dx 计算分离做更细粒度的掩盖。

对显存进行优化时,团队采用了新的计算方式。
不再使用传统的全重计算,而是对细粒度模块,像 MLA、Permute 和激活函数进行重新计算,这样能避免额外的计算消耗。
同时,运用 Tensor Swapping 技术,把重新计算不太划算的激活值,先转移到 CPU 那边,等需要反向计算时再提前取回来,让 NPU 内存得到更高效的利用。
团队还在研究新的显存节省方法,准备把多种优化策略组合起来,根据不同的设备配置,找到最适合的组合,既能提高显存利用率,又不会降低模型性能。
让每台设备上专家处理的任务量(token 数量)尽量均匀,能大幅提升训练效率。
为此,团队设计了一套动态的设备级负载均衡机制。
首先,规划器就像一个 " 小管家 ",通过观察一段时间内专家的工作负载情况,预测未来的任务量,再用贪心算法规划出如何重新分配专家,让设备间的任务更均衡。
然后,执行器定期行动,把不同 Transformer 层的专家参数和优化器状态在设备间转移。通过这种动态调整,模型的 MFU 提高了 10%。

除了上面这些,团队还开发了一些专门适配昇腾设备的技术,包括主机端优化、计算卸载与数据共享,以及融合算子。
算子下发优化:为了解决 host 端性能瓶颈问题,团队减少了那些需要频繁同步操作的算子,避免不必要的等待。同时,使用细粒度 CPU 绑核技术,让 CPU 和 NPU 配合得更好,任务下发更顺畅。
计算卸载与数据共享:当遇到 NPU 处理起来效率低的数据计算,或者在 TP 区域内数据传输慢的情况,作者把这些不适合 NPU 的计算从主计算流程中分离出来,交给 CPU 在数据加载时处理。再结合数据共享技术,让同一节点内的计算和数据传输速度都大大提高。
融合算子:除了盘古稠密模型里已有的 FlashAttention 和 RMSNorm 融合算子,团队在 MoE 模型里又加入了 GMMAdd、Permute 和 Umpermute 融合算子。GMMAdd 融合算子把 GroupedMatMul 的反向计算和梯度累加放在一起处理,利用并行和流水线技术减少调度时间。Permute 和 Unpermute 融合算子整合了多种操作,能更快地读写内存。

实验结果
在训练数据集构建过程中,团队实施严格的数据质量控制,并着重强调语料库的多样性、复杂性和全面性。
针对长链思维样本引入特殊标记符号对推理轨迹与最终答案进行结构化分隔。
后训练阶段采用指令微调策略,数据涵盖领域广泛,包含通用问答、文本生成、语义分类、代码编程、数理逻辑推理及工具使用等。
特别将推理与非推理样本比例设定为 3:1,进一步提升推理性能。
实验表明,盘古 Ultra MoE 对话版本在多领域均展现出卓越竞争力,在大多数 benchmark 上与 DeepSeek-R1 表现相当。比如通用理解任务(如 CLUEWSC 94.8 分、MMLU 91.5 分)中展现卓越理解力,在数学推理与代码生成等高难度测试(如 AIME2024 81.3 分、MBPP+ 81.2 分)中表现优异,具备突出的代码与数学解题能力。

团队还对盘古 Ultra MoE 进行了专家专业度分析。
在不同任务中,同一网络层的 token 会被优先路由至不同专家,专家专业化程度存在显著任务差异性。
这证实了盘古 Ultra MoE 已形成显著的专家差异化,这种特性不仅增强了模型的表达能力,更为其卓越性能提供了关键支撑。

盘古 Ultra MoE 的 MoE 层输出由共享专家和路由专家共同贡献的加权和构成。
因此,保持二者输出的平衡至关重要。
下图中展示了路由专家在各网络层均保持着与共享专家相当的贡献强度,这种均衡的协同作用有效提升了模型的整体表征能力。

团队还分析了专家的共激活现象,激活分数越高,说明两个专家之间的相关性越强。
在下图中,除少数例外情况外,这三层中的专家之间并未出现明显的共激活现象,这反映了盘古 Ultra MoE 的专家冗余度较低。

以上便是华为国产 NPU 跑准万亿参数大模型背后的奥义了。
华为盘古 Ultra MoE 技术的突破,不仅标志着国产算力平台在 AI 大模型训练领域迈入世界领先行列,更彰显了中国科技自主创新的强大实力。
它证明了中国企业在全球 AI 竞赛中已具备从跟跑到并跑,甚至领跑的实力。
未来,随着技术的持续迭代与应用场景的拓展,盘古 Ultra MoE 将为千行百业的智能化转型注入强劲动力,助力中国在新一轮科技革命中占据制高点,为人类科技进步贡献更多 " 中国智慧 "。
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
点亮星标
科技前沿进展每日见