MoE简介:

​ 目前深度学习模型的发展方向还是验证了模型参数量越大,效果越好,以传统的Dense型模型来看,参数量与需要的计算力基本是线性关系,而MoE模型能够消除这种线性关系。混合专家(Mixture-of-Expert,MoE)是目前非常流行的一种预训练模型,也是一种稀疏模型,使得训练万亿级别的参数模型成为可能。

MoE采用的思路:模型中包含了多个子网络模块组成的专家,通过一个门网络模块来对专家进行选择,达到的效果是:

  • 模型大小被扩大,模型能力增强

  • 专家是稀疏激活的,节省了额外的计算量

一、从FastMoE、FasterMoE、SmartMoE看MoE的优化:

FastMoE:

FasterMoE:

FasterMoE: Modeling and Optimizing Training of Large-Scale Dynamic Pre-Trained Models

专家并行存在的挑战:

1、由于负载不均衡导致的拖慢训练速度的问题

image-20240906212802789

专家负载不均衡,并且随着训练的过程是动态变化的,同时这个问题是和模型相关的。

2、粗粒度all_to_all通信带来的低效问题

image-20240906215835049

3、网络拥塞问题:

​ 跨节点网络通信的拥塞,这里提到了样本均衡分配的角度来说,节点内的发送的样本数小于发送给其他节点的,不能有效利用机内带宽。

image-20240906223908606

论文提出的解决方案:

1、影子专家 Expert Shadowing

image-20240906213434269

​ 通过一个性能预测器,在每次MOE层开始之前,去=预测每一个专家设置成为影子专家后是否能够带来性能收益

2、细粒度通信方案:

使用Pair-Wise Exchange算法来实现all_to_all:

image-20240906222328325

image-20240906222353134

image-20240906222459685

image-20240906222530420

image-20240906222258631

image-20240906222615276

MOE层计算需要进行的操作:

image-20240906222811591

image-20240906222835223

image-20240906222858100

image-20240906223034438

3、设计了一个拓扑相关的门网络:

限制了发送给其他节点的样本数量,剩余的样本数从同一节点内的专家上进行选择。

image-20240906224402888

Roofline模型刻画分布式深度学习的负载:

image-20240906224753077

image-20240906224947095

【参考】

1、原作者B站视频解读论文:https://www.bilibili.com/video/BV1oS4y1q7g3/?spm_id_from=333.337.search-card.all.click&vd_source=053931b91535af248d6f6f7e2e3fe8ca

2、https://blog.csdn.net/weixin_45745854/article/details/127145086

SmartMoE:

​ 23年1月这个时间点,SmartMoE是首个支持混合并行策略的系统(DP、TP、PP、EP)

为了处理 MoE 的动态计算负载,SmartMoE 独特设计了专家放置(Expert Placement)策略,在经典并行策略组合的基础上,实现了动态负载均衡。

SmartMoE 独创性地将自动并行搜索过程分为两阶段:

  • 训练开始前,使用经典算法搜索,获得一个较小的候选策略集合
  • 训练过程中,根据当前负载,在候选策略集合中动态调整,由于候选策略集合大小有限,此过程的开销可以得到控制。

对比FasterMoE,有1.88倍性能提升

动态调整专家分布的必要性:

image-20240907155907165

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信