,据微软亚洲研究院发布,作为目前唯一被证明能够将深度学习模型扩展到万亿以上参数的方法,MoE 能让模型学习更多信息,并为计算机视觉,语音识别,自然语言处理和机器翻译系统等提供支持近期,微软亚洲研究院发布了一个高性能 MoE 库 ——Tutel,并在 8x 80GB NVIDIA A100 和 8x 200Gbps 的 InfiniBand 网络的 Azure NDm A100 v4 节点上进行了实验让我们来看一看,这个用于促进大规模 DNN 模型开发的高性能 MoE 库有哪些优势其表现又如何
混合专家是一种深度学习模型架构,其计算成本与参数的数量呈次线性关系,因此更容易扩展MoE 是目前唯一被证明能够将深度学习模型扩展到万亿以上参数的方法,它能让模型学习更多信息,并为计算机视觉,语音识别,自然语言处理和机器翻译系统等提供支持,从而以全新的方式为人类社会提供帮助
最近几天,微软亚洲研究院发布了一个用于促进大规模 DNN 模型开发的高性能 MoE 库 ——Tutel,并针对已普遍使用的新 Azure NDm A100 v4 系列进行了高度优化借助 Tutel 多样化和灵活的 MoE 算法支持,AI 领域的开发人员可以更轻松,高效地执行 MoE与最先进的 MoE 实现方式,如 fairseq相比,对于单个 MoE 层,Tutel 在具有 8 个 GPU 的单个 NDm A100 v4 节点上实现了 8.49 倍的加速,在具有 512 个 A100 GPU 的 64 个 NDm A100 v4 节点上实现了 2.75 倍的加速在端到端性能方面,得益于 all—to—all 通信优化,Tutel 在 Meta的 1.1 万亿参数的 MoE 语言模型中使用 64 个 NDm A100 v4 节点实现了 40% 以上的加速
Tutel 具有良好的兼容性和丰富的功能,确保了其在 Azure NDm A100 v4 群集上运行时可以发挥出色的性能目前,Tutel 已开源,并已集成到 fairseq 中
Tutel MoE 的三大优势
作为 fairseq,FastMoE 等其他高水平 MoE 解决方案的补充,Tutel 主要专注于优化面向 MoE 的计算和 all—to—all 通信,以及其他多样化和灵活的 MoE 算法支持Tutel 具有简洁的接口,可以轻松集成到其他 MoE 解决方案中当然,开发人员也可以从头开始,利用 Tutel 的接口将独立的 MoE 层合并到他们自己的 DNN 模型中,直接从高度优化的,最先进的 MoE 功能中受益
与现有的 MoE 解决方案相比,Tutel 具有以下三个主要优势:
优化面向 MoE 的计算由于缺乏高效的实现方法,目前基于 MoE 的 DNN 模型依赖于深度学习框架提供的多个现成 DNN 运算符的拼接来组成 MoE 计算由于需要冗余计算,这种做法会导致显著的性能开销Tutel 设计并实现了多个高度优化的 GPU 内核,为面向 MoE 的计算提供了运算符例如,Tute l 将调度输出选通的时间复杂度从 O 降低到 O ,显著提高了数据调度的效率Tutel 还实现了快速 cumsum—minus—one 运算符,与 fairseq 实现方式相比,达到了 24 倍的加速此外,Tutel 还利用 NVRTC进一步实时优化了定制的 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 聚合通信,其中包括 CPU—GPU 绑定和自适应路由调整在非一致存储访问结构系统上,尤其是在 NDv4 VM 上,正确的 CPU—GPU 绑定对于 all—to—all 性能非常关键但是,现有的机器学习框架并未提供高效的 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 节点的不同消息大小的 all—to—all 带宽Tutel 使用 512 个 A100 GPU,对大小为数百兆字节的消息实现了 2.56 倍到 5.93 倍的 all—to—all 加速
多样,灵活的 MoE 算法支持。Tutel 为最先进的 MoE 算法提供了多样化且灵活的支持,包括:
为 Top—K gating 算法设置任意 K 值。
不同的探索策略,包括批量优先路由,输入信息丢失,输入抖动。
不同的精度级别,包括半精度,全精度,混合精度等。
不同的设备类型,包括 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 维注意力头每 2 层中包含 1 个 MoE 层,而每个 GPU 都配有一名专家表 1 总结了模型的详细设置参数,图 3 则显示了 Tutel 的加速效果由于 all—to—all 通信成为瓶颈,所以伴随着 GPU 数量的增加,Tutel 带来的改进从 8 个 A100 GPU 的 131% 提升至 512 个 A100 GPU 的 40%研究员们将在下一个版本中对此做进一步优化
表 1:512 个 A100 GPU 的 MoE 语言模型配置
图 3:在端到端性能方面,Tutel 在 Meta 的 1.1 万亿参数的 MoE 语言模型中使用 64 个 NDm A100 v4 节点实现了 40% 以上的加速。
MoE 技术前景广阔,它可以基于许多领域的技术,实现整体训练,例如系统路由,海量节点的网络平衡,甚至可以从基于 GPU 的加速中受益微软亚洲研究院展示了一个高效的 MoE 实现方式 ——Tutel,它比 fairseq 框架有着显著的进步
现在,Tutel 也已集成到了 DeepSpeed 框架中相信 Tutel 和相关的集成将使更多 Azure 服务受益,特别是对于那些希望高效扩展自有大型模型的客户今天的 MoE 仍处于早期阶段,需要付出更多努力才能充分发挥 MoE 的潜力,因此研究员们也将继续优化 Tutel,希望未来可以给大家带来更多令人兴奋的研究和应用成果
。声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。