基于 NVIDIA Megatron-Core 的 MoE LLM 实现和训练优化

简介: 本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大型语言模型(LLM)实现与训练优化上的创新工作。

作者:黄俊,阿里云资深算法专家

本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大型语言模型(LLM)实现与训练优化上的创新工作。分享内容将按以下脉络展开:

1.    首先简短回顾 MoE 技术的发展历程,提炼核心概念及其在实践应用中亟待解决的关键挑战;

2.    接着详述双方合作研发的 MoE 框架所具有的独特能力和卓越性能,展示其在提升模型训练效率、资源利用以及模型表现等方面取得的验证结果;

3.    最后,扼要介绍阿里云基于此合作成果所搭建的平台工具及推荐的最佳实践方案,赋能开发者高效运用 MoE 技术,促进大规模模型训练的深入探索与广泛应用。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

MoE 是一种模型结构,它将稠密模型结构拆分为多个子结构,每个子结构成为一个专家,通过在训练和推理过程中动态选择一组专家进行计算,实现了模型参数的稀疏更新。

简而言之,MoE 模型将整体模型拆分为多个专业子模块(专家),每次仅激活和更新少数与输入相关的专家子结构,而选择哪些专家参与计算则是通过一个路由机制决定。在 GPT 等超大规模语言模型中,采用 MoE 技术能够显著减少训练和推理时的计算负担,因为不是所有参数都需要在每次操作时都更新,这极大提高了训练效率,并且在推理阶段仅使用部分活跃的网络参数,极大地削减了计算资源需求。

 

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

2023 年末,Mistral AI 推出开源MoE 架构大语言模型 Mixtral 8x7B,凭借46.7B 参数量,在多项下游任务榜单的效果胜过当时的最佳开源稠密模型 Llama-2 70B。右侧图表揭示,在同等推理资源条件下,MoE 模型性能显著优于稠密模型。这一成就引发业界对 MoE 模型的强烈关注,进而推动阿里云与 NVIDIA Megatron-Core 团队,共同深化大模型领域 MoE 技术的合作与应用。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

 

为了描述使用 MoE 结构来实现工业级应用需要解决的问题,本文首先回顾 MoE 的发展历史。90 年代初提出的多专家模型概念为 MoE 打下了理论基础,即通过集合多个专家模型协同解决任务,并采用门控路由进行专家选择。

随着 2017 年深度学习突飞猛进,参数量对模型性能的重要性日益显现,传统稠密结构深度学习框架面临容量瓶颈。谷歌率先将 MoE 与深度学习结合,首次在 RNN 中验证了 MoE 的可行性。至 2020 年,Transformer结构在语言模型领域展现出卓越效果和优秀的可扩展性。此后,Google Gshard 项目将  MoE 融入 Transformer,通过深度设计与实验显著提升效果和性能,并在 Switch Transformers 中将参数总量推向万亿级别,奠定了 MoE 架构在大模型领域的基础。

后续研究如 ST-MoETutel MoEFasterMOE MegaBlocks 等,针对速度和稳定性进行深入探索。2023 年,GPT-4 的惊艳表现引发了业内对其是否采用 MoE 结构的热议。同年,Mixtral 的实现似乎验证了这一猜想,表明 MoE 在大模型架构中的应用正逐步走向成熟和广泛认可。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

后续我们将简要剖析几个标志性工作,首先是将 MoE 与深度学习融为一体的 Sparsely-Gated MoE。该研究将 RNN 网络划分为多个专家子网络,并采用 Softmax Gating 机制来控制 token 的路由分配。然而,原始 Softmax Gating 逻辑可能导致负载不均衡,随着训练推进,部分专家网络可能过于活跃,而其他专家的参数训练不足。

为解决此问题,研究者在计算 Softmax之前,对门控矩阵参数和输入特征进行噪声 (noise) 注入,以实现更为均衡的专家选择。此外,在门控网络损失函数 (loss function) 中增设辅助损失,引导模型实现更佳的负载分配。同时,路由策略上尝试每次挑选 top-2 top-4 的专家,这些优化举措最终助力模型参数容量首次突破千亿门槛。

 

  image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

而谷歌的 Gshard 项目进一步将 MoE 应用于 Transformer 架构中,其主要创新包括:

1.    设计了 MoE Transformer 的基本结构和并行模式,每间隔一层前向层采用MoE 层替代,专家分布在不同设备上独立计算,其他层的参数共享。

2.    针对专家负载均衡问题,提出了“专家容量(expert capacity)”概念,限制每个专家处理的 token 数量,并采用残差连接策略绕过已满负荷的专家。

3.    引入辅助损失与随机 top-k 路由策略,以优化专家选择过程。

4.    在通信效率上,创新提出“local group dispatching”方案,通过门控网络预筛选后再按专家 ID 分组传输数据,有效提升通信效率。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

实验结果显示,Gshard 成功将 Transformer 参数量从 150B 提升至 600B,而计算开销仅增加 50%,首次验证了 MoE 在模型扩展性上的显著优势。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

之后的 Switch Transformer 工作对 MoE Transformer 的训练流程进行了深度优化,以实现模型参数规模的极限拓展。首先,路由策略选择了更为激进的top-1 方案,即每次仅选择一个专家进行参数更新。此举不仅能显著降低路由的计算负担,与 top-2 策略相比计算量近乎减半,同时每个专家处理的 batch size 也因此减少,进一步减轻了通信成本。

 

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

其次,针对先前存在的专家负载均衡问题,工作引入了辅助损失函数。该函数中,N 代表专家总数,f 表示第 i 个专家分配到的token 比例,P 代表路由器分配给第i个专家的概率。优化目标旨在促使 token 均匀分配至每个专家。通过最小化损失函数,使得f P 趋向于 N 分之一,此时损失函数中的调节参数 α 通常取值 0.01 左右,能够实现较好的负载均衡效果。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

在分布式训练方面,除了先前提及的数据并行和专家并行外,该工作对非专家结构部分实施了模型并行策略,来进一步降低单卡显存需求,使得模型参数量得以显著提升。

针对路由负载均衡引起的模型训练随机性与不稳定问题,该工作提出了一系列稳定训练的策略。其中包括在本地计算时采用较高的FP32 精度,而在通信阶段使用较低的 BF16 精度的随机精度策略;采用具有较小缩放系数的正态分布初始化权重;引入专家dropout 即专家内部的 dropout 技术以减少过拟合现象。

通过这些优化措施,MoE transformer 的训练收敛速度相较于稠密模型在迭代次数和时间上均有数倍提升。其中,最大的 Switch-C 模型参数量高达 1.5 万亿。后续的 ST-MoE 工作则更深入地探究了如何进一步改善 MoE 模型的训练稳定性和提升模型性能。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

在预训练稳定性方面,为解决专家路由随机性和数值精度造成的 roundoff 误差,即路由网络计算 logits值过大导致的训练不收敛问题,工作提出了z-loss 函数。该函数中,B 表示一个 batch token 数量,N 代表专家数量,X 则对应输入路由网络的 logits 的维度。通过引入 z-loss 有效抑制了由精度等因素导致的 logits 值过高现象,从而增强了模型训练的稳定性,z-loss 同样适用于稠密 LLM 训练的稳定性提升。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

此外,该工作还深入探究了影响MoE 训练稳定性和效果均衡的多种因素,并通过细致实验归纳出一系列最佳实践。

譬如,向路由网络引入适量噪声 (noise),例如 dropout 操作,能够增强训练稳定性,但可能模型效果受损。在调优 (Fine-tuning) 阶段,ST-MoE 的研究进一步发现,增大 dropout 参数对稠密 MoE 模型和非稠密 MoE 模型的影响存在显著差异,对于稠密模型影响更大。同时,与稠密模型不同,小型 batch size 和较大学习率 (learning rate) MoE模型训练效果的提升更为有利。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

Mixtral 模型在实现上借鉴了 Megablocks 框架的独特思路,该框架的主要特点是将MoE 层的计算表述为块稀疏运算。面对前面提及的动态路由问题,即不同专家处理的 token 数量各异,导致用户在计算过程中需抉择使用 drop token padding,前者关乎模型性能,后者则会增加训练成本。

Megablocks创新性地将多个矩阵乘的操作统一定义为一个大型块稀疏矩阵,即将多位专家的计算视作一个固定尺寸的大矩阵,其中的计算任务则细分为多个小矩阵块的GEMMGeneral Matrix Multiply)操作。

为优化这种块稀疏矩阵的处理,Megablocks 框架利用了 Block Compressed Sparse Row (BCSR) 数据结构,对矩阵的行和列访问速度以及转换操作进行了优化。通过这种方法实现了路由矩阵的高效操作。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

上述 MoE 发展史详细说明了其开发需要解决的问题,下文将简介阿里云为解决这些问题,与NVIDIA Megatron-Core 团队的技术合作及产出。Megatron-Core 是一个成熟且轻量化的大规模LLM 训练框架,集成了训练大规模 LLM 的核心技术,比如多元化的模型并行支持、算子优化、通信优化、显存优化,以及低精度训练(如FP8)等先进技术。Megatron-Core 沿袭了 Megatron-LM 的优秀能力,并在代码质量、稳定性、功能完备度及测试覆盖范围等维度全面提升。尤为关键的是,该框架设计上更注重解耦和模块化,开发者在做二次开发或探索新模型架构时享有高度灵活性。因此我们选择了与Megatron-Core 团队开展合作。

 

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

接下来探讨 Megatron-Core MoE 架构的主要支持特性。在并行化方面,Megatron-Core MoE 不仅支持专家并行,还支持 3D 并行,包括数据并行、张量并行、流水并行以及序列并行等。对于超大规模MoE 模型,它能够灵活地将专家并行与其他并行策略有机结合。

token 分发机制上,Megatron-Core MoE 采用了 dropless MoE 操作,即不丢弃任何 token。在路由和负载均衡优化层面,它支持多种路由策略,如通用的top-k,并在负载均衡算法上支持 Sinkhorn 算法、z-loss 以及 load balancing loss 等多种方案。

此外,为解决多个专家接收变长输入问题,Megatron-Core MoE 引入了 GroupedGMM 技术,并优化效率较低的操作,将其替换为优化的CUDA kernel

同时,在模型迁移与适配上,Megatron-Core MoE 提供了丰富的模型 checkpoint 转换功能,允许用户导入HuggingFace 模型,并自由调整 TPtensor parallelism)、PPpipeline parallelism)和 EPexpert parallelism)等结构,随后利用 Megatron-Core 高效启动模型训练任务。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

阿里云人工智能平台 PAI 团队基于Megatron-Core,开发了一套简易、高效的大模型训练工具。依托阿里云灵骏计算服务,团队推出了 PAI-Megatron-Patch 工具库,可实现从十余种主流开源大模型的模型格式到 Megatron-LMMegatron-Core 的无缝转换。用户通过 PAI DSW DLC 等产品,能轻松启动 Megatron-LMMegatron-Core 进行大规模稠密模型和 MoE 模型训练。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

针对开源大模型多采用HuggingFace 格式,与 Megatron 训练框架存在一定差异的问题,PAI-Megatron-patch 的主要功能在于提供从 HuggingFace 模型到Megatron 框架的权重转换服务。该转换实质上是对模型命名空间进行映射,涵盖了 layernorm 层、attention 层以及 MLP 层等核心组件的定义转换。PAI-Megatron-patch 内置简洁的权重转换脚本,使得用户能够便捷地执行模型格式转换操作,极大地简化了迁移流程。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

在进行 MoE 模型转换时,需确保转换后的文件能直接用于分布式训练,为此我们也做了大量验证工作。以Mixtral 模型为例,在拥有 8 个专家和 16 张卡的场景下,采取 TP=4EP=4的切分策略。每个 TP 分区内的文件夹中包含四个文件,存储全部八个专家的 FFN 权重,即每个文件承载两位专家的 FFN 权重信息。

经过转换,模型在零样本(Zero-shot)损失精度方面的表现如途中下表所示,数据显示转换前后模型的精度差异非常微小,确保了模型转换的有效性和准确性。

 

我们的工作不仅关注模型的转换环节,同样严谨地验证了整个训练流程的稳健性。仍以Mixtral 8x7B 模型为例,我们在三个训练阶段——从头预训练、基于 checkpoint的续训及指令微调 (Finetune),均进行了细致测试。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

在从头预训练阶段,我们设定的参数包括:global_size=256, LR (learning rate) =1e-4seq_len=2048TP=4。经过 24 小时至 2.4K 个训练步骤后,损失loss 成功收敛至约 1.9

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

在继续预训练阶段,设定global_size = 256LR=5e-5seq_len=2048TP=4。在 18 小时达到 2,000个训练步骤后,loss 亦表现出正常的收敛行为。 image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

针对 Finetune 阶段,我们做了三组测试:

1.    橙色曲线代表 finetune base 模型,设定 global_size=128LR=1e-5seq_len=2048,TP=4

2.    蓝色曲线代表 finetune instruct 模型,其参数配置与橙色曲线一致

3.    红色曲线代表仅计算 answer lossfinetune instruct 模型,其global_size=32LR 依旧为1e-5seq_len 调整为 128TP 依旧为4

所有模型在训练过程中均呈现出正常收敛态势,其中finetune base 模型导致 loss 下降幅度较大,这一现象符合预期。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

为了进一步验证 Finetune 的效果,我们选取了一个代码生成任务作为评估基准。我们利用大约 80K 条公开的代码训练样本,测试集在HumanEvol 平台上进行评估,此处的参数配置沿袭了上述 SFT 设定。经过2,500 步训练后,模型在 HumanEvol 上的性能指标从最初的45.73% 显著提升至 53.05%,有力证明了训练流程的合理性和有效性。此外,在速度对比方面,该方法优于同等资源条件下运行的Megablocks

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

我们通过阿里云人工智能平台 PAI 提供了一套官方最佳实践指南,指南是对我们从数据处理、训练、推理、评估、直至在线服务部署的完整AI开发流程的测试成果总结。

该指南涵盖了从数据准备阶段起,指导用户如何从 OSS (对象存储服务)和 NAS (网络附加存储)读取原始数据,并在 PAI DSW 环境中执行高效的数据预处理操作。预处理后的数据能够方便地回存至 NAS OSS,以为后续的模型训练做好准备。

这种方式的模型训练支持在 PAI DLC 进行大规模分布式训练,同时也兼容DSW 提供的单机训练环境,确保用户可根据实际需求灵活选择训练方式。训练完成后,模型的 checkpoint 可以直接导出至 OSS NAS 存储系统。

完成训练的 checkpoint 可先进行离线推理和模型性能评估。一旦推理和评估验证无误,开发者只需一键即可部署至 EAS 提供的模型在线服务。依托此服务的接口,开发者可以轻松构建各类 APP 和业务场景。

image.png

图片来源于 GTC 2024 大会 China AI Day 线上专场的演讲《基于 NVIDIA Megatron-Core MoE LLM 实现和训练优化》

这份最佳实践指南提供了详细的步骤说明,确保用户能清晰掌握每一步骤的操作方法。

未来,阿里云人工智能平台PAI 团队将继续深化与 NVIDIA Megatron-Core 团队的合作,致力于在密集型和稀疏型模型的训练表现和效率上取得更大突破,为推进AGI(通用人工智能)技术的发展贡献力量。我们热忱欢迎全球开发者共同参与到开源社区项目以及阿里云的建设之中,携手共进,共创智能未来。

 

 

 

以上内容来源于 GTC 2024 大会 China AI Day线上中文演讲专场。扫描图片二维码,或登陆大会官网后,可观看演讲视频,下载讲义。

  image.png

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5月前
|
存储 人工智能 数据中心
138_绿色计算:碳排放优化 - 估算部署的碳足迹与LLM环境友好型部署最佳实践
随着大语言模型(LLM)在各个行业的广泛应用,其计算需求和环境影响正日益受到关注。根据最新研究,训练一个大型LLM模型可能产生数百吨二氧化碳当量的排放,这相当于普通家庭几十年的碳足迹。在全球气候变化和可持续发展的背景下,如何优化LLM部署的碳足迹,实现环境友好型AI应用,已成为行业面临的重要挑战。
|
5月前
|
机器学习/深度学习 缓存 监控
139_剪枝优化:稀疏模型压缩 - 分析结构化剪枝的独特速度提升与LLM部署加速实践
随着大语言模型(LLM)规模的不断增长,模型参数量已从最初的数亿扩展到数千亿甚至万亿级别。这种规模的模型在推理过程中面临着巨大的计算和内存挑战,即使在最先进的硬件上也难以高效部署。剪枝优化作为一种有效的模型压缩技术,通过移除冗余或不重要的参数,在保持模型性能的同时显著减少计算资源需求。
1024 139
|
5月前
|
存储 机器学习/深度学习 PyTorch
119_LLM训练的高效内存管理与优化技术:从ZeRO到Flash Attention
大型语言模型(LLM)的训练面临着前所未有的计算和内存挑战。随着模型规模达到数百亿甚至数千亿参数,高效的内存管理成为训练成功的关键因素之一。2025年,LLM训练的内存优化技术已经取得了显著进展,从ZeRO优化器到Flash Attention等创新技术,为训练超大规模模型提供了可能。
|
5月前
|
人工智能 自然语言处理 TensorFlow
134_边缘推理:TensorFlow Lite - 优化移动端LLM部署技术详解与实战指南
在人工智能与移动计算深度融合的今天,将大语言模型(LLM)部署到移动端和边缘设备已成为行业发展的重要趋势。TensorFlow Lite作为专为移动和嵌入式设备优化的轻量级推理框架,为开发者提供了将复杂AI模型转换为高效、低功耗边缘计算解决方案的强大工具。随着移动设备硬件性能的不断提升和模型压缩技术的快速发展,2025年的移动端LLM部署已不再是遥远的愿景,而是正在成为现实的技术实践。
|
5月前
|
机器学习/深度学习 缓存 PyTorch
131_推理加速:ONNX与TensorRT深度技术解析与LLM模型转换优化实践
在大语言模型(LLM)时代,高效的推理加速已成为部署高性能AI应用的关键挑战。随着模型规模的不断扩大(从BERT的数亿参数到GPT-4的数千亿参数),推理过程的计算成本和延迟问题日益突出。ONNX(开放神经网络交换格式)和TensorRT作为业界领先的推理优化框架,为LLM的高效部署提供了强大的技术支持。本文将深入探讨LLM推理加速的核心原理,详细讲解PyTorch模型转换为ONNX和TensorRT的完整流程,并结合2025年最新优化技术,提供可落地的代码实现与性能调优方案。
|
5月前
|
存储 监控 算法
117_LLM训练的高效分布式策略:从数据并行到ZeRO优化
在2025年,大型语言模型(LLM)的规模已经达到了数千亿甚至数万亿参数,训练这样的庞然大物需要先进的分布式训练技术支持。本文将深入探讨LLM训练中的高效分布式策略,从基础的数据并行到最先进的ZeRO优化技术,为读者提供全面且实用的技术指南。
|
6月前
|
机器学习/深度学习 测试技术 决策智能
SAPO去中心化训练:多节点协作让LLM训练效率提升94%
SAPO(Swarm Sampling Policy Optimization)提出去中心化异步强化学习框架,通过节点间共享rollouts提升大模型后训练效率。实验显示,在数千节点上可实现94%回报提升,尤其助力中等规模模型突破性能瓶颈。
378 0
SAPO去中心化训练:多节点协作让LLM训练效率提升94%
|
7月前
|
数据可视化 物联网 开发者
深度解析四大LLM微调工具:从单卡到千亿级训练的四大解决方案
本文详解大语言模型微调四大工具——Unsloth、Axolotl、LlamaFactory、DeepSpeed,覆盖从单卡实验到万亿参数分布式训练场景,助你掌握主流框架选型策略,提升微调效率。建议点赞收藏。
2320 1
|
8月前
|
弹性计算 关系型数据库 API
自建Dify平台与PAI EAS LLM大模型
本文介绍了如何使用阿里云计算巢(ECS)一键部署Dify,并在PAI EAS上搭建LLM、Embedding及重排序模型,实现知识库支持的RAG应用。内容涵盖Dify初始化、PAI模型部署、API配置及RAG知识检索设置。
自建Dify平台与PAI EAS LLM大模型

热门文章

最新文章