更新:最新系统的分析了动态路由条件计算,也给出了一个小的switch Transformer模型的参考实现,供大家参考:
模型规模的演进太快了,没几个月就从千亿走向了万亿,真正的“军备竞赛“。
Google这篇最新发表的论文“SWITCH TRANSFORMERS: SCALING TO TRILLION PARAMETER MODELS WITH SIMPLE AND EFFICIENT SPARSITY”,提出了一种可以扩展到万亿参数的网络,刷新了GPT-3千亿规模的上限。
总结来说,该模型有两个比较大的创新,基于Transformer MoE网络结构,简化了MoE的routing机制,降低了计算量;进一步通过数据并行+模型并行+expert并行的方式降低了训练通信量,提升训练性能。下面我们从routing机制和并行策略来简单分析一下这个模型。
首先,Switch Transformer在网络结构上最大的改进是Sparse routing的稀疏结构,是一种网络结构的稀疏性,不需要稀疏算子,可以更好的适应当前的稠密硬件,如GPU、TPU等;而OpenAI在GPT-3里所使用的sparse attention,还需要用到稀疏算子,这些稀疏算子往往限制稠密硬件的算力发挥;所以这种MoE sparse routing的稀疏网络结构,更亲和稠密硬件,更加容易做计算加速。从论文中我们也可已看到这些性能加速效果,Switch Transformer虽然有万亿参数,但通过sparse routing,每轮迭代只会触发部分expert的计算,而每个token也只会路由给一个expert,对算力的需求并没有随着参数量的增加而大幅增长,使得这个模型更加容易训练。
其次,Switch Transformer用了一个非常有意思的并行策略,数据并行+模型并行+expert并行。Expert并行实际上就是一种算子间的并行,experts在计算图上是个多并行子图分支,每个分支是一个FFN结构。在FFN内部,再进一步进行算子级的模型并行。所以Switch Transformer的并行方式是数据并行+算子级模型并行+算子间模型并行,这种并行模型相较于数据并行+算子级模型并行的方式,在MoE网络结构上能够获得更低的通信开销,提高并行的效率。
从GPT-3和Switch Transformer来看,模型Scale up红利依然存在,“大就是好”持续被证明。Switch Transformer是基于tensorflow-mesh实现的,如何高效支持大模型训练,是深度学习框架的一个很大的技术挑战。
上面是初步的分析,还不全面,后续随着了解的深入再持续刷新。
另外,MindSpore的大规模并行特性,也一直在做这方面的工作,欢迎大家关注:
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有