一种基于细粒度并行假设的零冗余异构训练方法技术

技术编号:36551490 阅读:17 留言:0更新日期:2023-02-04 17:05
本发明专利技术公开了一种基于细粒度并行假设的零冗余异构训练方法,涉及预训练语言模型技术领域,包括以下步骤:S1:将连续的一部分参数集中到一个块当中,在EL中使用一系列同样大小的内存块来存放这些参数;该基于细粒度并行假设的零冗余异构训练方法,通过使用对称的基于块的内存管理技术,充分利用了GPU间通信带宽与CPU

【技术实现步骤摘要】
一种基于细粒度并行假设的零冗余异构训练方法


[0001]本专利技术涉及预训练语言模型
,具体为一种基于细粒度并行假设的零冗余异构训练方法。

技术介绍

[0002]随着预训练语言模型的流行,人们开始使用越来越大的深度学习模型。它们可以达到数以亿计的参数规模,这对运行它的计算与内存资源都提出了极高的要求。由于预训练语言模型数据无法容纳在单个GPU的内存中,因此大多数深度学习训练框架所采用的数据并行技术对其不适用。GPU硬件的有限的存储规模上限,像一堵墙限制了PTM的可训练规模,因此从业人员通常称之为“GPU内存墙”现象。为了解决这个问题,零冗余训练通过将参数切分存储在不同的GPU上,以消除单个GPU内存上限有限带来的限制。异构训练通过将参数卸载到RAM上,以打破GPU内存的限制,帮助无法获取大量GPU的用户训练大模型。
[0003]微软Deepspeed首先提出了零冗余优化器。假设使用N个GPU进行分布式训练,它将模型的每个参数切分为N份,每个GPU存储其中的1份。在某个参数参与计算时,通过GPU间通信,将参数还原为完整的参数,计算时每个GPU都有完整的参数。当这个参数参与的计算结束后,再将该参数重新切分为N份,每个GPU存储其中的1份。零冗余优化器使得每个GPU只用存储1/N的模型,使得大模型在每个GPU上的显存占用大幅度减小。在零冗余优化器的基础上,Deepspeed推出了新的异构训练系统——无限异构训练系统,该系统通过使用RAM与磁盘的存储空间,进一步提升可训练模型大小。
[0004]得益于AI技术的蓬勃发展,各项突破性新技术被不断提出。DS的异构训练系统在这时显得十分过时,受限于其做出的粗粒度并行配置的假设,DS无法支持目前最新的模型,例如由谷歌推出的ST(Switch Transformer)模型等,也无法支持最新的自动并行优化。过时的训练系统让提出支持新模型的新训练系统成为一件迫在眉睫的要事。
[0005]于此同时,DS在亲民方面无疑做的不够好。DS得益于微软的支持,拥有大量的计算设备,即GPU。为了充分利用可以使用的GPU,DS在设计训练系统之初,最主要的考虑就是训练系统的可扩展性,即在使用大量GPU时训练的绝对速度。这使得用户必须同样使用大量GPU才能体会到DS带来的高效训练。对于大部分普通研究者和用户而言,大量GPU是难以获取的。而在这最主要的小规模训练场景下,DS存在不可小觑的效率问题。在测试当中,DS在一张GPU上的训练效率仅仅达到正常训练效率的一半。
[0006]性能问题最主要的原因是DS的通信效率低,且可能存在冗余的通信。当模型的参数比较小时,每次进行参数合并时的通信量也较小,从而无法充分利用通信带宽。当模型的某个参数在临近的几次计算中被反复使用时,该参数可能处于被反复切分与合并的状态当中,从而产生了冗余的通信开销。DS也使用了异构训练技术,它的数据传输粒度也是参数。当模型的参数较小时,GPU内存与RAM的数据传输量也较小,同样无法充分利用数据传输带宽。因此我们提出了一种基于细粒度并行假设的零冗余异构训练方法。

技术实现思路

[0007]针对现有技术的不足,本专利技术提供了一种基于细粒度并行假设的零冗余异构训练方法,解决了上述
技术介绍
中提出的问题。
[0008]为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于细粒度并行假设的零冗余异构训练方法,包括以下步骤:
[0009]S1:将连续的一部分参数集中到一个块当中,在EL中使用一系列同样大小的内存块来存放这些参数;
[0010]S2:当模型初始化完毕后,对参数进行搜索,搜索出一个未利用空间最小的内存管理方案;
[0011]S3:在细粒度并行环境当中,根据不同的并行特征,将所有参数分为不同的分块组;
[0012]S4:在对块进行切分时,可以采取对称切分和非对称切分两种方式;
[0013]S5:在GPU上预留缓存空间,在拥有缓存空间后,将多个块滞留在GPU上;
[0014]S6:在细粒度并行环境当中,根据不同的并行特征,将所有参数分为不同的分块组;
[0015]S7:引入驱逐算法用以将部分块驱逐下GPU;
[0016]S8:通过利用网络模型训练的周期性,将第一个训练步骤作为热身步骤,在训练的同时,各个参数的使用顺序将会被记录下来,在之后的训练步骤当中,可以使用记录好的参数使用顺序以应用Belady算法,当有块需要被驱逐时,距离当前最晚将被使用的块会被驱逐。
[0017]其中本方法:基于细粒度并行假设的零冗余异构训练方法,统称为elixir,简称为EL,微软Deepspeed简称为DS。
[0018]可选的,所述S1将连续的一部分参数集中到一个块当中,在EL中使用一系列同样大小的内存块来存放这些参数的步骤,使用同样大小的块是为了减少内存碎片问题的影响。
[0019]可选的,所述S2当模型初始化完毕后,对参数进行搜索,搜索出一个未利用空间最小的内存管理方案的步骤进行完成后,在分块完成后,所有的CPU

GPU通信以及GPU之间的通信都将以块为单位;灵活地设置标准块的大小来保证在各种通信环境中,GPU之间的通信带宽和PCI

E带宽可以被充分利用。
[0020]可选的,所述S3在细粒度并行环境当中,根据不同的并行特征,将所有参数分为不同的分块组的步骤中在细粒度并行环境当中,每个参数拥有自己的并行特征;根据不同的并行特征,将所有参数分为不同的分块组;在每个分块组中,所有参数的并行特征相同;对于每个组,单独对组中的所有参数进行分块操作,但是所有组共享同样的标准块大小。
[0021]可选的,所述S4在对块进行切分时,可以采取对称切分和非对称切分两种方式的步骤中非对称切分即每个GPU保存一些完整的块,而对称切分则进一步将这些块均分为N份,每个GPU保存其中的1份。
[0022]可选的,所述S5在GPU上预留缓存空间,在拥有缓存空间后,将多个块滞留在GPU上的步骤中因在参数局部性丧失的情况下,连续使用参数意味着反复调用块,在异构训练系统中,这通常伴随着CPU

GPU通信,为了保持参数局部性以减少CPU

GPU通信、提高系统工作
效率,引入在GPU上预留的缓存空间。
[0023]可选的,所述S7引入驱逐算法用以将部分块驱逐下GPU的步骤中由于缓存的空间有限,无法保存下所有的块,通过驱逐算法的引入可以将部分块驱逐下GPU。
[0024]本专利技术提供了一种基于细粒度并行假设的零冗余异构训练方法,具备以下有益效果:
[0025]该基于细粒度并行假设的零冗余异构训练方法,通过使用对称的基于块的内存管理技术,充分利用了GPU间通信带宽与CPU

GPU间的PCI

E带宽,且减少了冗余的GPU间通信与CPU

GPU间数据传输,从而大大提升了零冗余训练时的GPU通信效率,同时通过引入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于细粒度并行假设的零冗余异构训练方法,其特征在于:包括以下步骤:S1:将连续的一部分参数集中到一个块当中,在EL中使用一系列同样大小的内存块来存放这些参数;S2:当模型初始化完毕后,对参数进行搜索,搜索出一个未利用空间最小的内存管理方案;S3:在细粒度并行环境当中,根据不同的并行特征,将所有参数分为不同的分块组;S4:在对块进行切分时,可以采取对称切分和非对称切分两种方式;S5:在GPU上预留缓存空间,在拥有缓存空间后,将多个块滞留在GPU上;S6:在细粒度并行环境当中,根据不同的并行特征,将所有参数分为不同的分块组;S7:引入驱逐算法用以将部分块驱逐下GPU;S8:通过利用网络模型训练的周期性,将第一个训练步骤作为热身步骤,在训练的同时,各个参数的使用顺序将会被记录下来,在之后的训练步骤当中,可以使用记录好的参数使用顺序以应用Belady算法,当有块需要被驱逐时,距离当前最晚将被使用的块会被驱逐。2.根据权利要求1所述的一种基于细粒度并行假设的零冗余异构训练方法,其特征在于:所述S1将连续的一部分参数集中到一个块当中,在EL中使用一系列同样大小的内存块来存放这些参数的步骤,使用同样大小的块是为了减少内存碎片问题的影响。3.根据权利要求1所述的一种基于细粒度并行假设的零冗余异构训练方法,其特征在于:所述S2当模型初始化完毕后,对参数进行搜索,搜索出一个未利用空间最小的内存管理方案的步骤进行完成后,在分块完成后,所有的CPU

GPU通信以及GPU之间的通信都将以块为单位;灵活地设置标准块的大小来保证在各种通信...

【专利技术属性】
技术研发人员:黄海晨柳泓鑫方佳瑞李升桂卞正达李永彬麦思琪刘育良吴俊铭陈巍文路广阳娄宇轩
申请(专利权)人:北京潞晨科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1