一 导读
最近阿里云机器学习PAI平台和达摩院智能计算实验室一起发布“低碳版”巨模型M6-10T,模型参数已经从万亿跃迁到10万亿,规模远超业界此前发布的万亿级模型,成为当前全球最大的AI预训练模型。同时,做到了业内极致的低碳高效,使用512 GPU在10天内即训练出具有可用水平的10万亿模型。相比之前发布的大模型GPT-3,M6实现同等参数规模,能耗仅为其1%。
M6模型训练使用的正是阿里云机器学习PAI平台自研的分布式训练框架EPL(Easy Parallel Library,原名whale)。EPL通过对不同并行化策略进行统一抽象、封装,在一套分布式训练框架中支持多种并行策略,并进行显存、计算、通信等全方位优化来提供易用、高效的分布式训练框架。
EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解。
二 EPL是什么
EPL(Easy Parallel Library)是阿里巴巴最近开源的,统一了多种并行策略、灵活易用的自研分布式深度学习训练框架。
1 项目背景
近些年随着深度学习的火爆,模型的参数规模也飞速增长,OpenAI数据显示:
- 2012年以前,模型计算耗时每2年增长一倍,和摩尔定律保持一致;
- 2012年后,模型计算耗时每3.4个月翻一倍,远超硬件发展速度;
近一年来,百亿、千亿级的参数模型陆续面世,谷歌、英伟达、阿里、智源研究院更是发布了万亿参数模型。随着模型参数规模的增大,模型效果逐步提高,但同时也为训练框架带来更大的挑战。当前已经有一些分布式训练框架Horovod、Tensorflow Estimator、PyTorch DDP等支持数据并行,Gpipe、PipeDream、PipeMare等支持流水并行,Mesh Tensorflow、FlexFlow、OneFlow、MindSpore等支持算子拆分,但当训练一个超大规模的模型时还是会面临一些挑战:
- 如何简洁易用:
- 接入门槛高:用户实现模型分布式版本难度大、成本高,需要有领域专家经验才能实现高效的分布式并行策略;
- 最优策略难:随着研究人员设计出越来越灵活的模型以及越来越多的并行加速方法,如果没有自动并行策略探索支持,用户很难找到最适合自身的并行策略;
- 迁移代价大:不同模型适合不同的混合并行策略,但切换并行策略时可能需要切换不同的框架,迁移成本高;
- 如何提高性价比:
- 业界训练万亿规模模型需要的资源:英伟达 3072 A100、谷歌 2048 TPU v3,资源成本非常高;
- 如何降本增效,组合使用各种技术和方法来减少需要的资源,提高训练的速度;
为了应对当前分布式训练的挑战,阿里云机器学习PAI团队自主研发了分布式训练框架EPL,将不同并行化策略进行统一抽象、封装,在一套分布式训练框架中支持多种并行策略。同时,EPL提供简洁易用的接口,用户只需添加几行annotation(注释)即可完成并行策略的配置,不需要改动模型代码。EPL也可以在用户无感的情况下,通过进行显存、计算、通信等全方位优化,打造高效的分布式训练框架。
2 主要特性
- 多种并行策略统一:在一套分布式训练