本文题为“FSMoE: A Flexible and Scalable Training System for Sparse Mixture-of-Experts Models”,其作者包括Xinglin Pan, Wenxiang Lin, Lin Zhang, Shaohuai Shi, Zhenheng Tang, Rui Wang, Bo Li和Xiaowen Chu,分别所属以下机构:香港科技大学(广州)、哈尔滨工业大学(深圳)、香港科技大学等。该研究预计将在2025年的30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’25)会议中发表。文章DOI为10.1145⁄3669940.3707272。
当前自然语言处理、大规模视觉建模等使用的大型语言模型(LLM, Large Language Models)中,稀疏激活专家混合模型(MoE, Mixture-of-Experts)日益受到关注。MoE技术通过引入稀疏性大幅减少训练开销,同时还能实现非线性模型扩展。例如,Switch Transformer 以15个MoE层(每层包含2048个专家)的方式扩展了模型至1.5万亿参数,优于传统的密集模型。
然而,研究中仍然存在算法与系统层面的两个核心挑战:
基于此背景,本文提出了FSMoE系统,旨在通过灵活的模块化框架与近似最优的任务调度,提升MoE模型训练的高效性与扩展性。
FSMoE包括以下三大核心创新: 1. 模块化设计及统一抽象:对MoE的各个子模块(如Gate、Dispatch、Combine)进行模块化抽象以支持多种组件。 2. 任务调度的优化:提出了适配内节点和跨节点通信与计算任务的流水线调度策略。 3. 自适应梯度分区方法:设计了新的方法以实现梯度聚合的通信与计算完全重叠,减少通信开销。
模块化及非侵入式设计:
FSMoE将MoE层分为六个独立的子模块,包括Gating Function(路由函数)、数据排序模块(Order/I-Order)、通信分发/合并模块(Dispatch/Combine)以及专家计算模块(Expert)。同时提供了多种hooks机制,用户可以进行灵活的非侵入式自定义扩展。
任务调度优化:
通过性能模型(Performance Models)预测任务的开销,FSMoE设计了自动化调度策略。调度器分为前端(开发者选择模块接口)和后端(自动优化调度),并支持异构和复杂任务组合的高效执行。
梯度同步优化与分区设计:
在反向传播中,梯度同步(Gradient-AllReduce)的通信时间通常难以隐藏。为了最大限度地削减这部分开销,FSMoE提出了自适应梯度分区方法,将梯度划分并分布在可重叠的通信/计算过程中。
实验方法与测试平台:
研究团队在两种GPU集群环境(48 GPUs和32 GPUs)上进行了针对1458种配置的详尽实验,测试了FSMoE在MoE训练的实际性能,包括GPT-2和Mixtral模型。
FSMoE使用线性性能模型(包含启动时间和单位处理时间)来精确估算通信与计算任务开销。具体测试包括All-to-All通信(跨节点任务)和Reduce-Scatter等高性能计算任务。结果表明: - 性能模型拟合度相当高,通信任务的拟合度均接近99.999%,说明FSMoE可以有效预测和调优调度参数。
FSMoE通过模块化设计与近似最优的任务调度,不仅支持对多种MoE路由函数的灵活扩展,同时保证了更高的训练效率及通信性能。这一研究的主要意义包括: - 科学价值:为MoE算法提供了高性能的系统支持,帮助解决深度学习中大规模模型的训练瓶颈。 - 工业应用价值:FSMoE的灵活性与高效性使其适用于多模态、推荐系统、自然语言处理以及计算机视觉等领域中需要高效模型训练的场景。
未来工作可能包括支持更多类型的深度学习模型,进一步优化输入配置参数的自动化调节机制,以及支持更多复杂并行设置(如更多层数或稀疏级别的调整)。