微软亚洲研究院发布高性能MoE库Tutel,为大规模DNN模型开发提速!
编者按:作为目前唯一被证明能够将深度学习模型扩展到万亿以上参数的方法,MoE 能让模型学习更多信息,并为计算机视觉、语音识别、自然语言处理和机器翻译系统等提供支持。近期,微软亚洲研究院发布了一个高性能 MoE 库——Tutel,并在 8x 80GB NVIDIA A100 和 8x 200Gbps 的 InfiniBand 网络的 Azure NDm A100 v4 节点上进行了实验。让我们来看一看,这个用于促进大规模 DNN 模型开发的高性能 MoE 库有哪些优势?其表现又如何?
混合专家(Mixture-of-Experts,简称 MoE)是一种深度学习模型架构,其计算成本与参数的数量呈次线性关系,因此更容易扩展。MoE 是目前唯一被证明能够将深度学习模型扩展到万亿以上参数的方法,它能让模型学习更多信息,并为计算机视觉、语音识别、自然语言处理和机器翻译系统等提供支持,从而以全新的方式为人类社会提供帮助。
近日,微软亚洲研究院发布了一个用于促进大规模 DNN 模型开发的高性能 MoE 库——Tutel,并针对已普遍使用的新 Azure NDm A100 v4 系列进行了高度优化。借助 Tutel 多样化和灵活的 MoE 算法支持,AI 领域的开发人员可以更轻松、高效地执行 MoE。与最先进的 MoE 实现方式,如 fairseq(Meta的Facebook AI 研究院基于 PyTorch 的 Sequence to Sequence 工具包)相比,对于单个 MoE 层,Tutel 在具有8个 GPU 的单个 NDm A100 v4 节点上实现了8.49倍的加速,在具有512个 A100 GPU 的64个 NDm A100 v4 节点上实现了2.75倍的加速。在端到端性能方面,得益于 all-to-all 通信优化,Tutel 在 Meta(原 Facebook 公司)的1.1万亿参数的 MoE 语言模型中使用64个 NDm A100 v4 节点实现了40%以上的加速。
Tutel 具有良好的兼容性和丰富的功能,确保了其在 Azure NDm A100 v4 群集上运行时可以发挥出色的性能。目前,Tutel 已开源,并已集成到 fairseq 中。
Tutel GitHub 链接:
https://github.com/microsoft/tutel
Tutel MoE的三大优势
作为 fairseq、FastMoE 等其他高水平 MoE 解决方案的补充,Tutel 主要专注于优化面向 MoE 的计算和 all-to-all 通信,以及其他多样化和灵活的 MoE 算法支持。Tutel 具有简洁的接口,可以轻松集成到其他 MoE 解决方案中。当然,开发人员也可以从头开始,利用 Tutel 的接口将独立的 MoE 层合并到他们自己的 DNN 模型中,直接从高度优化的、最先进的 MoE 功能中受益。
与现有的 MoE 解决方案相比,Tutel 具有以下三个主要优势:
优化面向 MoE 的计算。由于缺乏高效的实现方法,目前基于 MoE 的 DNN 模型依赖于深度学习框架(如 PyTorch、TensorFlow 等)提供的多个现成 DNN 运算符的拼接来组成 MoE 计算。由于需要冗余计算,这种做法会导致显著的性能开销。Tutel 设计并实现了多个高度优化的 GPU 内核,为面向 MoE 的计算提供了运算符。例如,Tute l将调度“输出选通(gating output)”的时间复杂度从 O(N^3)降低到 O(N^2),显著提高了数据调度的效率。Tutel 还实现了快速 cumsum-minus-one 运算符(fast cumsum-minus-one operator),与 fairseq 实现方式相比,达到了24倍的加速。此外,Tutel 还利用 NVRTC(CUDA C++ 的运行时编译库)进一步实时优化了定制的 MoE 内核。
图1对比了 Tutel 与 faireseq 在 Azure NDm A100 v4 平台上的运行结果,如前所述,使用 Tutel 的单个 MoE 层在8个 A100 GPU 上实现了8.49倍的加速,在512个 A100 GPU 上实现了2.75倍的加速。
图1:与 fairseq 相比,对于单个 MoE 层,Tutel 在具有8个 GPU 的单个 NDm A100 v4 节点上实现了8.49倍的加速,在具有512个 A100 GPU 的64个 NDm A100 v4 节点上实现了2.75倍的加速。详细设置为:batch_size = 32, sequence_length = 1,024, Top_K = 2, model_dim = 2,048, ands hidden_size = 2,048
在 Azure NDm A100 v4 群集上实现底层 all-to-all 通信优化。Tutel 针对 Azure NDm A100 v4 群集上的大规模 MoE 训练,优化了 all-to-all 聚合通信(collective communication),其中包括 CPU-GPU 绑定和自适应路由(AR)调整。在非一致存储访问结构(NUMA)系统上,尤其是在 NDv4 VM上,正确的 CPU-GPU 绑定对于 all-to-all 性能非常关键。但是,现有的机器学习框架(TensorFlow、PyTorch 等)并未提供高效的 all-to-all 通信库,导致大规模分布式训练的性能下降。
Tutel 可以自动优化绑定,并为用户微调提供简洁的接口。此外,Tutel 在 NDm A100 v4 集群上使用了多路径技术,即 AR。对于 MoE 中的 all-to-all 通信,每个 GPU 通信的总数据流量规模并不会发生变化,但每个 GPU 之间的数据规模会随着 GPU 数量的增加而变小。而更小的数据规模会在 all-to-all 通信中产生更大的开销,导致 MoE 训练性能下降。借助 Azure NDm A100 v4 集群提供的 AR 技术,Tutel 提高了小消息组的通信效率,并在 NDv4 系统上提供了高性能的 all-to-all 通信。得益于 CPU-GPU 绑定和AR调整,Tutel 使用512个 A100 GPU,对通常用于 MoE 训练的每次交换的数百兆字节的消息,实现了2.56倍到5.93倍的 all-to-all 加速,如图2所示。
图2:在应用 Tutel 前后,具有64个 NDm A100 v4 节点(512个 A100 GPU)的不同消息大小的 all-to-all 带宽。Tutel 使用512个 A100 GPU,对大小为数百兆字节的消息实现了2.56倍到5.93倍的 all-to-all 加速。
多样、灵活的 MoE 算法支持。Tutel 为最先进的 MoE 算法提供了多样化且灵活的支持,包括:
- 为 Top-K gating 算法设置任意K值(大多数实现方法仅支持 Top-1 和 Top-2 )。
- 不同的探索策略,包括批量优先路由、输入信息丢失、输入抖动。
- 不同的精度级别,包括半精度(FP16)、全精度(FP32)、混合精度等(下一个版本中将支持 BF16)。
- 不同的设备类型,包括 NVIDIA CUDA 和 AMD ROCm 设备等。
Tutel 将积极整合来自开源社区的各种新兴 MoE 算法。
Tutel与Meta的MoE语言模型集成
此前,Meta 就开源了自己的 MoE 语言模型,并利用 fairseq 实现了 MoE。微软亚洲研究院与 Meta 合作将 Tutel 集成到了 fairseq 工具包中。Meta 也一直用 Tutel 在 Azure NDm A100 v4 上训练其大型语言模型,该模型中基于注意力的神经架构类似于 GPT-3。
微软亚洲研究院的研究员们使用 Meta 的语言模型评估了 Tutel 的端到端性能。该模型有32个注意力层,每个层都有32个128维注意力头(32x128-dimension heads)。每2层中包含1个 MoE 层,而每个 GPU 都配有一名专家(expert)。表1总结了模型的详细设置参数,图3则显示了Tutel的加速效果。由于 all-to-all 通信成为瓶颈,所以随着 GPU 数量的增加,Tutel 带来的改进从8个 A100 GPU 的131%提升至512个 A100 GPU 的40%。研究员们将在下一个版本中对此做进一步优化。
表1:512个 A100 (80G) GPU 的 MoE 语言模型配置
图3:在端到端性能方面,Tutel 在 Meta 的1.1万亿参数的 MoE 语言模型中使用64个 NDm A100 v4 节点实现了40%以上的加速。
Tutel将继续进化,充分发挥MoE潜力
MoE 技术前景广阔,它可以基于许多领域的技术,实现整体训练,例如系统路由、海量节点的网络平衡,甚至可以从基于 GPU 的加速中受益。微软亚洲研究院展示了一个高效的 MoE 实现方式——Tutel,它比 fairseq 框架有着显著的进步。
现在,Tutel 也已集成到了 DeepSpeed 框架中。相信 Tutel 和相关的集成将使更多 Azure 服务受益,特别是对于那些希望高效扩展自有大型模型的客户。今天的 MoE 仍处于早期阶段,需要付出更多努力才能充分发挥 MoE 的潜力,因此研究员们也将继续优化 Tutel,希望未来可以给大家带来更多令人兴奋的研究和应用成果。
作者:系统与网络组
来源:微软研究院AI头条

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
NDPQ(NDP+PQ),定义分布式数据库新方向
摘要:云服务提供商构建新的云原生关系数据库系统,专门为云基础架构设计,通常采用将计算和存储分离到独立扩展的分布式层的设计。 本文分享自华为云社区《性能提升100倍!GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势》,作者: GaussDB 数据库。 业务增长对数据库吞吐量和响应能力提出新挑战 随着企业和政府机构将其应用程序迁移到云端,对基于云的数据库即服务(DBaaS)产品的需求也在迅速增长。传统上的DBaaS产品,是云服务提供商基于现有的数据库软件本身,将常规数据库部署在云端虚拟机上,使用的是本地或者云存储。这种方法易于实施,但是未能提供足够的性能和可扩展性,而且由于需要复制数据,存储成本也很高。 为了应对这些挑战,云服务提供商开始构建新的云原生关系数据库系统,专门为云基础架构设计,通常采用将计算和存储分离到独立扩展的分布式层的设计。这种方法具有多种优势,包括数据库存储的自动扩展、按使用付费功能、跨多个AZ部署的高可靠性以及故障快速切换和恢复。这些云原生设计还有助于减少只读副本的数据更新时延,并提高硬件共享和可扩展性。华为云数据库GaussDB(for MySQ...
- 下一篇
云原生PaaS平台LIGHT-CORE实践之道:基于K8s,聚焦服务与价值
“没有集装箱,就没有全球化。” 在集装箱物流运输崛起前,码头是货物流转的核心地。人工装货、卸货的货物处理流程复杂、耗时、成本高昂。 于是,最初的集装箱运输理念出现了。从航海革命到世界经济的重塑,是运输技术的优化变革对全球产业链产生了巨大的经贸效应。 而集装箱所代表的标准化、集成化、组装化等先进的效能生产理念正延展到其他行业,对非物流领域带来了诸多启发,比如计算机行业的容器化部署和应用。 数字化转型期,金融机构的最佳实践路径便是以容器化技术为核心的云原生演进。 为满足金融业务敏捷交付的需求,金融机构的容器应用部署方案经历了不同阶段的发展,从原来单体架构时期的虚拟化技术跨越至应用容器化,如今又进一步朝云原生PaaS平台演进。 从虚拟化技术到容器化应用 单机时代,硬件成本高昂,资源利用率不高。虚拟化技术成为最早解决开发中各种资源利用率不高、成本居高不下等问题的关键方案。 目前大部分金融机构的数据中心都采用了硬件虚拟化,但应用部署效率并不高,因此更轻量的方案“操作系统虚拟化”诞生了。 所谓操作系统虚拟化,即“容器化”技术。由操作系统创建虚拟的系统环境,使应用独立部署,在整个环境中可做到无感知运...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- 2048小游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8