华为优化 DeepSeek 等 MOE 大模型部署:专家并行与超节点架构

华为优化 DeepSeek 等 MOE 大模型部署,提出超节点架构和 OmniPlacement 算法,提升资源利用率和推理效率。

原文标题:从 DeepSeek 部署看,华为如何让 MOE 架构“迎来”海量“专家”?

原文作者:AI前线

冷月清谈:

该文章介绍了华为在优化 DeepSeek 等 MOE (Mixture of Experts) 架构大模型部署方面的实践与创新。华为通过算子融合、低时延通信优化和动态负载均衡,提升算力效率。针对 MOE 架构中专家数量不断增长带来的挑战,华为提出了“超节点”架构,利用高速总线连接上百张 GPU 卡,减少通信延迟,提高训练吞吐率。此外,华为还研发了 OmniPlacement 算法,通过分析专家激活数据来识别热/冷专家,并进行动态优先级调整和通信优化,从而提升资源利用率和推理效率。文章还提到了华为在预训练、内存优化和推理方面的一系列技术方案,以及Atlas 900 A3 SuperCluster智算集群。

怜星夜思:

1、文章提到华为通过“超节点”架构来优化 MOE 模型的部署,减少通信延迟。那么,除了硬件层面的改进,软件层面是否也有相应的优化策略来配合超节点架构,以充分发挥其性能?
2、文章提到了OmniPlacement算法能够动态调整专家部署,提升推理效率,那么在实际应用中,这种动态调整会不会带来额外的开销,比如频繁的数据迁移?如何平衡动态调整的收益和开销?
3、文章中提到华为在A3超节点集群上完成了对DeepSeek V3的训练优化,达到了每卡1,216 TPS的吞吐率。这个数据在当前业界处于什么水平?还有哪些因素会影响大模型训练的吞吐率?

原文内容

作者 | 褚杏娟

“模型开发已经从早期的算法层优化,转向系统工程层面的深度创新。”华为技术专家说道。

如今已经从数字化时代的比特流量转向 Token 经济体系。国内 Token 日消耗量从千亿级跃升至十万亿级,DeepSeek 等头部平台日均处理 6000 亿 Token 的实践,验证了高吞吐、低时延系统的商业价值。

同时,随着模型结构从单一架构探索发展为多模态融合创新,大模型的驱动部署模式发生根本转变。传统单卡部署已无法满足大模型高吞吐、高并发的需求,分布式集群部署成为新常态。以 ChatGPT 和 DeepSeek 为例,用户规模突破亿级的时间从 1 个月压缩至 7 天,倒逼系统处理能力实现数量级提升。如何提供更高的吞吐能力、更低的时延成为系统,成为各基础设施厂商的必做题。

DeepSeek 专调

DeepSeek 本身已经在 infra 层做了很多优化,但在企业部署过程中,华为自己也针对 DeepSeek 的模型做了各种优化,帮助企业全面兼容和支持应用。

在鲲鹏昇腾开发者大会 2025(KADC2025)举办前,华为技术专家向 InfoQ 介绍了其为 DeepSeek 做的调优工作。总体来看,华为针对 DeepSeek 的优化主要包括下面三个方面:

  • 算子层面:实现了如 MRN 的 PO 融合算子,提升算子执行效率;

  • 计算与通信优化:进行了低时延通信优化,实现了双链路通信掩盖;

  • 在计算并行方面,支持多专家并行的动态负载均衡,这专家越多、越细粒度,资源调度的复杂性就越高,华为重点优化了如何将计算资源动态、均衡地分配给不同专家,避免资源一边空闲一边过载的情况。

这些既是对 DeepSeek 优化路径的延续和兼容,也是在其基础上的进一步突破。虽然是对 DeepSeek 的优化,但在模型架构没有发生大的变化的前提下都可以复用。华为团队也表示,会随着大模型架构演进同时跟进,比如 Qwen3 的调优部署等,同时增加对新技术、新框架、新架构的储备。

从整体看,华为的大模型训推底层优化策划也基本是围绕上述方面展开的。

大模型训推方案

预训练方面,华为首先完整复现了幻方的 DualPipe 技术(仅开源了框架,没有开源代码),但该方案存在静态显存占用较高的问题。然后,团队基于 VirtualPipe 改进的流水方案,通过 warm-up 多个 micro-batches,实现前后向交织通信掩盖,同时节省一份静态权重显存。但该方案继承了 VirtualPipe 的缺陷,即多了一个不小的激活值内存。最后,团队给出了 DualPipe-V 方案,进一步优化显存使用,是静态与动态显存占用最小的方案,已集成至 MindSeed。

内存优化方面,华为自研了重计算技术。不同于 PyTorch 的 checkpoint 机制,后者无法清除输出激活值,重计算技术方案则能清除这部分激活值,适用于计算量小但激活值大的操作(如 LayerNorm),可节省多个 GB 显存。具体做法是在 FC 层输出挂载 hook,在前向阶段清除激活值,反向阶段触发 hook 重计算。

推理:开发超节点新架构

系统架构方面,华为也提出并实现业界当前常用的 PD(Prompt Decoder)分离部署。推理过程中,首 token 的生成(Profile 阶段)对计算资源的消耗极大,因为需要对所有输入数据进行完整计算;而之后的 token 生成阶段则更多依赖存储和带宽。通过 PD 分离部署和 PD 优化,来降低了首 token 的延迟并提升整体推理效率。

同时,面对应用日益广泛的 MOE 架构,华为也做了针对性的底层优化。

MOE 架构的核心特点是引入了大量的专家模块和复杂的路由机制。在早期,单个模型中包含几十个、上百个专家已经算是规模较大的设计。但随着 MOE 架构的不断发展与优化,主流模型在不断扩展专家数量,DeepSeek V3/R1 已经有 288 个专家,未来专家数量可能还会进一步提升。

这个背景下,模型处理的核心挑战转向了如何高效地将这些专家模块分布到多张 GPU 卡上。

传统方案通常在不同节点之间进行专家通信,但这引入了通信瓶颈。以现有主流通信能力为例,基于原来的 Rookie,单链路带宽最大约为 400Gbps,双向带宽为 800Gbps,这样的通信能力已远远无法满足 MOE 模型越来越多专家带来的带宽需求。

为解决这一瓶颈,华为研发了新的“超节点”架构:通过高速总线将上百张 GPU 卡互联成一个超大节点,所有专家模块被合理地分布在这些卡上运行。卡与卡之间通过高速总线互联,其中高速总线带宽远高于传统以太网通信,从而显著减少了通信时延,提升训练吞吐率。采用总线互联的技术实现统一内存编辑、统一内存语义通信,通信机制更加接近语义层面的协同处理,这是整个架构上的创新机制。团队还做成了 MRN OP 大融合算子,通过双流通信掩盖、并行通信以及原来的 HCCI 性能提升,从多个维度进行通信优化。

值得注意的是,超节点结构是通用的,只是更亲和 MOE 架构。

另外,基于超节点,针对大模型训练的负载特征,华为还自上而下设计了 AI 的智算集群 Atlas 900 A3 SuperCluster。该集群在测试中突破 Scale up 物理节点计算瓶颈,让成百上千个 NPU 以 TB 级带宽超高速互联、内存统一编址。通过算、网、存等跨域技术协同,进一步提升 Scale Out 的集群计算效率和可靠性。据悉,Atlas 900 A3 Super Cluster 的平均无故障运行时长从几小时提升到几天,训练效率也提升了 2.7 倍。

目前,华为已在 A3 超节点集群(256 卡)上完成了对 DeepSeek V3 的训练优化,达到了每卡 1,216 TPS 的吞吐率,MFU 可达 44.57%。值得注意的是,这一成绩是在 B16 精度模式下完成的,若使用 FP8 模式,性能还将进一步提升。

大 EP 下的负载均衡问题

据了解,华为团队在过去两个月内已经将推理效率提升了近 20 倍。实现这一增长的核心技术包括:引入动态专家并行策略,取代传统张量并行,规避张量并行阶段由路由计算量膨胀带来的显存和计算浪费;引入数据并行,相对张量并行,可以解决 DeepSeek MoE 架构中的 KV Cache 跨卡复制问题;提供长序列并行策略,提升在长序列场景下的推理能力。

华为是最早提出“大规模专家并行(大 EP)方案”的团队之一。目前,无论是头部大模型的互联网场景,还是部分运营商场景,大 EP 方案都已开始落地应用。

但专家并行并非是一本万利的,还会带来负载均衡方面的挑战。华为团队通过静态、分段及动态均衡负载算法,重新对专家按照负载进行排序,达到削峰填谷的目的,以保障在推理阶段各个卡上专家所处理 token 数量近似,很大程度上规避负载不均衡问题。

近日,华为发布了 OmniPlacement 算法,通过分析专家激活数据来识别热 / 冷专家,并提出基于计算均衡的优化算法。其特点包括:

  • 动态优先级调整,实时统计专家调用频率,优先将高频专家部署到强计算节点。

  • 通信优化:分析批次激活模式,减少跨节点通信延迟。

  • 层间差异化部署:根据各层负载特性,灵活配置专家部署策略。

官方介绍,相较 DeepSeek 的 EPLB 算法,OmniPlacement 在动态适应性、理论收敛性和高并发场景下表现更优,显著提升资源利用率。在昇腾平台测试中,OmniPlacement 在理论上可降低约 10% 推理延迟,提升 10% 吞吐量。

活动推荐

AICon 2025 强势来袭,5 月上海站、6 月北京站,双城联动,全览 AI 技术前沿和行业落地。大会聚焦技术与应用深度融合,汇聚 AI Agent、多模态、场景应用、大模型架构创新、智能数据基建、AI 产品设计和出海策略等话题。即刻扫码购票,一同探索 AI 应用边界!


今日荐文

图片

你也「在看」吗?👇

这个问题很有意思!软件层面肯定需要配合的。我认为可以从以下几个方面考虑:

1. 更智能的任务调度算法: 超节点虽然提供了更快的通信,但如何高效地将计算任务分配到不同的 GPU 卡上仍然至关重要。需要开发能够充分利用超节点内部高速互联特性的调度算法,比如根据数据的局部性进行调度,减少跨卡数据传输。

2. 优化的通信原语: 传统的通信原语可能无法充分利用超节点的高速互联能力。需要针对超节点架构设计专门的通信原语,例如支持直接内存访问(DMA)等,以进一步减少通信开销。

3. 更细粒度的并行策略: 除了专家并行(EP)和数据并行(DP)之外,可以探索更细粒度的并行策略,例如算子内并行,充分利用超节点内部的并行计算资源。

与其说是优化策略,不如说是必须的配套措施!超节点只是提供了硬件基础,软件上不跟进就是浪费!个人觉得更重要的是开发一套面向超节点的统一编程框架,让开发者能够方便地利用超节点的强大计算能力,而不需要关心底层的硬件细节。这个框架应该提供高级的抽象接口,例如自动并行化、分布式训练等,降低开发门槛。

当然,配套的性能分析工具也必不可少,帮助开发者定位性能瓶颈,针对性地进行优化。

1216 TPS/卡,这个数据相当不错了,绝对是业界领先水平!但是,要注意这个是在B16精度下测得的,如果换成FP32,吞吐率肯定会下降。

除了精度之外,影响大模型训练吞吐率的因素太多了:

* 硬件: GPU型号、互联带宽、内存大小等等,都是瓶颈。
* 软件: 深度学习框架的效率、优化器的选择、batch size的设置,都会影响训练速度。
* 模型结构: 模型越大、越复杂,计算量越大,训练速度自然就慢。
* 数据: 数据质量、数据预处理方式,都会影响模型的收敛速度,进而影响训练时间。

与其关注绝对的TPS值,不如关注MFU (Model FLOPs Utilization)!MFU更能体现硬件的利用率,更能反映系统整体的效率。同样的硬件,MFU越高,说明软件优化越好,硬件利用越充分。

另外,可扩展性也很重要。即使单卡性能很高,如果集群规模增大后性能下降明显,也说明系统存在瓶颈。

同意楼上的看法!软件层面的优化至关重要。我补充一个角度:

资源管理和监控: 超节点内部资源高度共享,需要精细化的资源管理和监控机制,避免资源争用和浪费。可以考虑引入容器化技术或者进程隔离技术,为不同的任务分配独立的资源配额,并实时监控资源使用情况,动态调整资源分配策略。

此外,我认为编译器优化也很有潜力。针对超节点架构定制的编译器可以更好地利用硬件特性,例如通过指令调度优化数据局部性,减少跨卡数据传输。

这个问题问到了点子上!动态调整肯定会带来额外的开销,关键是如何控制这个开销,让收益大于成本。我认为可以从以下几个方面考虑:

1. 调整频率控制: 不能过于频繁地调整专家部署,否则大部分时间都在进行数据迁移,反而降低了效率。需要根据实际负载情况,设置合理的调整频率,例如每隔一段时间或者当负载变化超过一定阈值时才进行调整。

2. 增量式迁移: 每次调整时,尽量只迁移需要调整的专家,而不是全部重新部署。可以使用增量式迁移技术,只传输专家模型中发生变化的部分,减少数据传输量。

3. 预取技术: 可以预先预测接下来可能需要用到的专家,提前将这些专家加载到计算节点上,减少实际使用时的延迟。

同意楼上的看法,影响因素很多。我补充几点:

* 并行策略: 数据并行、模型并行、流水线并行,不同的并行策略有不同的优缺点,需要根据实际情况选择合适的策略。
* 通信效率: 分布式训练中,节点间的通信是关键瓶颈。需要优化通信协议、减少通信量,提高通信效率。
* 负载均衡: 确保每个计算节点上的负载尽量均衡,避免出现“长短板效应”。

除了控制调整频率和采用增量式迁移之外,我认为还可以从以下方面入手:

1. 使用更高效的通信技术: 使用RDMA(Remote Direct Memory Access)等高效的通信技术,减少数据迁移的延迟。

2. 数据压缩: 在数据迁移之前,对专家模型进行压缩,减少数据传输量。可以使用模型剪枝、量化等技术。

3. 异步迁移: 将数据迁移操作放到后台异步执行,避免阻塞推理过程。可以使用多线程或者异步IO等技术。

平衡收益和开销,关键在于精准的预测!如果能准确预测未来的负载情况,就可以提前进行静态部署,避免频繁的动态调整。可以利用历史数据训练预测模型,预测不同时间段的专家访问频率,然后根据预测结果进行预先部署。

当然,预测模型本身也需要一定的开销,需要权衡预测精度和预测开销之间的关系。