作者:杨军
链接:https://www.zhihu.com/question/456443707/answer/1856521043
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
大模型训练的几个分布式策略的技术点,数据并行、算子拆分、流水并行、优化器模型并行、重算,从原理上,在之前的工作都有过比较细致的讨论,数据并行比如Horovod、算子拆分比如Mesh-TF,Megatron-LM、流水并行比如GPipe、PipeDream,优化器模型并行比如DeepSpeed里的ZeRO的工作,重算在GPipe甚至更早在天奇的工作里也有讨论过。难点在于新硬件+新框架上把这一砣东西在工程实现上全部组织起来,跑出体面的性能并且保证易用性和通用性。
在这一点上要为坚持硬核技术投入的同行鼓掌。期待看到国内更多类似的工作。图算融合,在GPU上我们关注比较多,有相对成体系化的作法,在昇腾这种偏DSA的架构上,做好确实会有不少挑战,因为融合与否对性能的影响直觉上更为critical,而DSA上做算子融合既会有更大的性能空间,实现的挑战也会相应更大一些。
在图算融合的介绍里我看似乎没有提到算子融合可能带来计算优化和通信优化的trade-off的问题,也许同行在实现过程中已经注意到了,略提一下。如果稍微picky一些的话,就是在这个工作里,还是看到了更多在follow和实现已有工作,重在工程实现,摘除硬件和自研框架因素以外技术上的原创相对少了一些,当然,能够把这么多pieces组织在一起,形成一个有机的系统也是非常不容易的。不过在看到这个工作的通用性被充分证明之前,我还是会稍微保留一些观点。原因是Transformer类模型因为其规整的结构,其实对于做大模型训练系统是相对友好的。这也是我们看DeepSpeed和Megatron-LM的会发现代码量并不大,但针对Transformer类大模型训练的支持确还不错的原因,因为有一些domain-specific system的味道了。如果内举不避亲的话,我其实觉得之前国平主持的DAPPLE的工作在分布式策略的自动化探索上会更究竟通用一些,但相较同行的工作在系统工程实现上欠缺了一些。另一个值得思考的点就是微软最近的ZeRO-Infinity的工作,通过精细的设计GPU/CPU内存/NVMe外存的swap-in/out策略,使得单机八卡/16卡的GPU机型也可能训练起超大规模的模型,这就有了一些以巧破局的味道,和友商的这个工作也可以算相映成趣。当然,我相信以友商的系统实现能力,把ZeRO-Infinity的功能支持在MindSpore里不会有本质上的挑战。实际上ZeRO-Infinity的工作和其他工作也是存在近似正交互补性的。 除了用超大规模集群训练超大规模模型以外,大模型的业务benefit还需要更多的证明,只看几篇PR是不够的,还是需要有更多真实的业务把大模型的应用实在的体现出来,才可能把大模型的技术更加普及起来。与此同时,把大模型的训练/finetune/布署平民化,也是一个非常值得关注的话题,所谓的affordable AI了。毕竟,我们需要更多人可以参与到一个新技术的研究中,才可能加快促进这项技术的演化发展。
作者:杨军
链接:https://www.zhihu.com/question/456443707/answer/1856521043
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
大模型训练的几个分布式策略的技术点,数据并行、算子拆分、流水并行、优化器模型并行、重算,从原理上,在之前的工作都有过比较细致的讨论,数据并行比如Horovod、算子拆分比如Mesh-TF,Megatron-LM、流水并行比如GPipe、PipeDream,优化器模型并行比如DeepSpeed里的ZeRO的工作,重算在GPipe甚至更早在天奇的工作里也有讨论过。难点在于新硬件+新框架上把这一砣东西在工程实现上全部组织起来,跑出体面的性能并且保证易用性和通用性。
在这一点上要为坚持硬核技术投入的同行鼓掌。期待看到国内更多类似的工作。图算融合,在GPU上我们关注比较多,有相对成体系化的作法,在昇腾这种偏DSA的架构上,做好确实会有不少挑战,因为融合与否对性能的影响直觉上更为critical,而DSA上做算子融合既会有更大的性能空间,实现的挑战也会相应更大一些。
在图算融合的介绍里我看似乎没有提到算子融合可能带来计算优化和通信优化的trade-off的问题,也许同行在实现过程中已经注意到了,略提一下。如果稍微picky一些的话,就是在这个工作里,还是看到了更多在follow和实现已有工作,重在工程实现,摘除硬件和自研框架因素以外技术上的原创相对少了一些,当然,能够把这么多pieces组织在一起,形成一个有机的系统也是非常不容易的。不过在看到这个工作的通用性被充分证明之前,我还是会稍微保留一些观点。原因是Transformer类模型因为其规整的结构,其实对于做大模型训练系统是相对友好的。这也是我们看DeepSpeed和Megatron-LM的会发现代码量并不大,但针对Transformer类大模型训练的支持确还不错的原因,因为有一些domain-specific system的味道了。如果内举不避亲的话,我其实觉得之前国平主持的DAPPLE的工作在分布式策略的自动化探索上会更究竟通用一些,但相较同行的工作在系统工程实现上欠缺了一些。另一个值得思考的点就是微软最近的ZeRO-Infinity的工作,通过精细的设计GPU/CPU内存/NVMe外存的swap-in/out策略,使得单机八卡/16卡的GPU机型也可能训练起超大规模的模型,这就有了一些以巧破局的味道,和友商的这个工作也可以算相映成趣。当然,我相信以友商的系统实现能力,把ZeRO-Infinity的功能支持在MindSpore里不会有本质上的挑战。实际上ZeRO-Infinity的工作和其他工作也是存在近似正交互补性的。 除了用超大规模集群训练超大规模模型以外,大模型的业务benefit还需要更多的证明,只看几篇PR是不够的,还是需要有更多真实的业务把大模型的应用实在的体现出来,才可能把大模型的技术更加普及起来。与此同时,把大模型的训练/finetune/布署平民化,也是一个非常值得关注的话题,所谓的affordable AI了。毕竟,我们需要更多人可以参与到一个新技术的研究中,才可能加快促进这项技术的演化发展。