【技术实现步骤摘要】
一种基于细粒度并行假设的零冗余异构训练方法
[0001]本专利技术涉及预训练语言模型
,具体为一种基于细粒度并行假设的零冗余异构训练方法。
技术介绍
[0002]随着预训练语言模型的流行,人们开始使用越来越大的深度学习模型。它们可以达到数以亿计的参数规模,这对运行它的计算与内存资源都提出了极高的要求。由于预训练语言模型数据无法容纳在单个GPU的内存中,因此大多数深度学习训练框架所采用的数据并行技术对其不适用。GPU硬件的有限的存储规模上限,像一堵墙限制了PTM的可训练规模,因此从业人员通常称之为“GPU内存墙”现象。为了解决这个问题,零冗余训练通过将参数切分存储在不同的GPU上,以消除单个GPU内存上限有限带来的限制。异构训练通过将参数卸载到RAM上,以打破GPU内存的限制,帮助无法获取大量GPU的用户训练大模型。
[0003]微软Deepspeed首先提出了零冗余优化器。假设使用N个GPU进行分布式训练,它将模型的每个参数切分为N份,每个GPU存储其中的1份。在某个参数参与计算时,通过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之间的通信都将以块为单位;灵活地设置标准块的大小来保证在各种通信...
【专利技术属性】
技术研发人员:黄海晨,柳泓鑫,方佳瑞,李升桂,卞正达,李永彬,麦思琪,刘育良,吴俊铭,陈巍文,路广阳,娄宇轩,
申请(专利权)人:北京潞晨科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。