大规模多机多卡预训练方法、系统、设备及服务器集群技术方案

技术编号:31090124 阅读:20 留言:0更新日期:2021-12-01 12:51
本发明专利技术属于分布式训练技术领域,公开了一种大规模多机多卡预训练方法、系统、设备及服务器集群,在多个服务器上部署多机多卡,进行同构机型和异构混合机型的多机多卡并行;基于slurm框架进行大规模多机多卡训练及评测,以无监督特征学习BYOL算法为例予以实施;基于Horovod框架进行大规模多机多卡训练及评测,以视频语义无监督学习PRP算法予以实施;所述训练包括环境配置、任务配置、通信配置、任务加速。本发明专利技术涉及的多机多卡大规模训练实验,batchsize之高,训练时间压缩之短,验证鹏城云脑I大科学装置的并行能力,拓展并行训练的集群规模,对于利用超大规模集群开展分布式训练具有指导意义。具有指导意义。具有指导意义。

【技术实现步骤摘要】
大规模多机多卡预训练方法、系统、设备及服务器集群


[0001]本专利技术属于分布式训练
,尤其涉及一种大规模多机多卡预训练方法、系统、设备及服务器集群。

技术介绍

[0002]目前,针对我国对于AI开源开放共享创新平台的建设需求,鹏城实验室推出了鹏城云脑一期平台,鹏城云脑I是以英伟达GPU服务器为基础设施建设的一套大型集群系统,作为AI大科学装置用以支撑构造更好的AI生态,鹏城云脑I具备集群管理工具和资源调度平台,支持在GPU集群中运行AI任务。在智慧城市的建设升级过程中,数据量急剧增长,而且随着人工智能任务越来越复杂、越来越多样,模型规模也越来越大,目前实际应用中面临很多利用大规模数据对大模型进行训练的需求,利用多机多卡开展分布式训练是应对此类需求的必要途径。因此,基于鹏城云脑I进行大规模多机多卡分布式训练,能够显著地提高模型训练效率。
[0003]就目前分布式训练使用的资源规模而言,OpenMMLab复现的BYOL算法公开的数据显示,最高仅用到128块GPU卡进行测试,batchsize最大为4096,目前国内外很少有单位能完成强大算力的大规模多机多卡运算,且超大数据集大batchsize训练时存在模型精度下降问题。另外,如何有效利用混合异构机器进行并行训练也是并行计算领域的一个难点,对于实际应用具有重要意义。因此,亟需一种新的大规模多机多卡预训练方法。
[0004]通过上述分析,现有技术存在的问题及缺陷为:目前多机多卡数据训练中,现有技术很少有单位能完成强大算力的大规模多机多卡运算,且超大数据集大batchsize训练时存在模型精度下降问题;同时如何有效利用混合异构机器进行并行训练也是并行数据计算领域的一个难点。
[0005]解决以上问题及缺陷的难度为:大规模多机多卡训练时的通信瓶颈和异常监测问题,大batchsize训练时如何选用合适的参数调整策略使得模型收敛且精度有所提升,保证稳定运行的同时确保算法性能。另外,随着技术发展和需求不同,不能保证资源池里都为同种类型机器,不同类型机器配置不同,怎样有效利用混合异构机器进行并行训练。
[0006]解决以上问题及缺陷的意义为:更大规模集群的使用和模型成功训练极大地压缩了模型训练时间,提升了模型精度,为利用超大规模数据训练和使用通用大模型提供了技术途径,在保证算法性能的同时可以支撑更多的下游任务;混合异构机器的并行训练可提升资源利用率,进一步提升并行训练规模。

技术实现思路

[0007]针对现有技术存在的问题,本专利技术提供了一种大规模多机多卡预训练方法、系统、设备及服务器集群,尤其涉及一种基于鹏城云脑I的大规模多机多卡(GPU)预训练方法、系统、设备及服务器集群。
[0008]本专利技术是这样实现的,一种大规模多机多卡预训练方法,包括:
[0009]在多个服务器上部署多机多卡,进行同构机型和异构混合机型的多机多卡并行;
[0010]基于slurm框架进行大规模多机多卡训练及评测,以无监督特征学习BYOL算法为例予以实施;
[0011]基于Horovod框架进行大规模多机多卡训练及评测,以视频语义无监督学习PRP算法予以实施;
[0012]所述训练包括环境配置、任务配置、通信配置、任务加速等。
[0013]具体包括:
[0014]步骤一,无监督特征学习:采用BYOL算法进行多机多卡部署;
[0015]步骤二,视频语义无监督学习:采用PRP算法进行多机多卡部署;
[0016]步骤三,多机多卡预训练:进行多机多卡混合机型训练。
[0017]进一步,步骤一中,进一步包括:
[0018]使用N台DGX2共16
×
N块V100,采用无监督特征学习BYOL算法对Imagenet2012数据集进行训练,获得预训练模型,将训练时间从7天压缩到5小时6分钟,所述方案包括:设置一个CPU服务器作为主节点,其他GPU服务器作为计算节点,主节点和其中一台GPU服务器共享;主节点和各子节点提交相应部署脚本。
[0019]进一步,步骤一中,进一步包括:
[0020](1)在云脑I上基于slurm进行多机部署,由于控制节点,即主节点不参与计算,仅为控制节点申请CPU即可;
[0021]若服务器机型为DGX2,则所述节点参数的配置情况,包括:
[0022]1)以镜像的方式为每个节点配置运行环境;
[0023]2)控制节点的配置为:控制节点任务不申请GPU,CPU核数申请6核,内存申请100G,并设置为主干任务;子节点的配置为:每个子节点任务申请16个GPU,CPU核数申请80核,内存申请1T;根据控制节点和子节点共享一台服务器,总共使用的机器数量等于子节点的数量;
[0024]3)控制节点和子节点均采用IB/RDMA进行多机通信,将内存的一半配置为共享内存;
[0025]4)配置启动命令和训练脚本,开始运行并行训练任务。
[0026](2)基于debug模式配置多机slurm环境。
[0027]通过debug模式对DGX2的机器进行调试:通过SSH进入到DGX2上执行的任务中;若环境中没有安装slurm相关软件,则进行安装,若已经预先安装好slurm相关软件,则通过slurmd

V和slurmd

C指令进行验证,并查看CPU核数;在云脑版slurm多机部署中,修改masterip.txt和slaveip.txt,在masterip.txt中添加主节点,即控制节点的ip;在slaveip.txt中添加子节点,即计算节点的ip,并修改slurm_autoconfig.sh脚本中的ControlMachine变量,再执行bash slurm_autoconfig.sh脚本,即可完成多机slurm环境的配置。
[0028](3)启动云脑I高速多机通信IB/RDMA
[0029]1)选用Nvidia NGC19.10作为基础镜像,镜像链接为:https://docs.nvidia.com/deeplearning/frameworks/pytorch

release

notes/rel_19

10.html#rel_19

10;
[0030]2)在训练脚本中指定IB网卡:
[0031]①
os.environ['NCCL_IB_HCA']="mlx5_0";
[0032]②
os.environ['NCCL_DEBUG']="INFO"。
[0033](4)大规模任务的加速方案
[0034]采用如下措施对训练过程进行加速:
[0035]1)数据集存储加速:采用开辟一个专用数据集存储空间并挂载内存的方式,在不重启的情况下一直使用数据集,通过加速数据读取达到加速训练的目的;
[0036]2)采用IB/RDMA进行多机通信,通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大规模多机多卡预训练方法,其特征在于,所述大规模多机多卡预训练方法包括:在多个服务器上部署多机多卡,进行同构机型和异构混合机型的多机多卡并行;基于slurm框架进行大规模多机多卡训练及评测,以无监督特征学习BYOL算法为例予以实施;基于Horovod框架进行大规模多机多卡训练及评测,以视频语义无监督学习PRP算法予以实施;所述训练包括环境配置、任务配置、通信配置、任务加速。2.如权利要求1所述大规模多机多卡预训练方法,其特征在于,所述大规模多机多卡预训练方法包括以下步骤:步骤一,基于slurm框架的多机多卡并行的无监督特征学习:采用BYOL算法进行多机多卡部署;步骤二,基于Horovod框架的多机多卡并行的视频语义无监督学习:采用PRP算法进行多机多卡部署;步骤三,进行多机多卡混合机型训练。3.如权利要求2所述大规模多机多卡预训练方法,其特征在于,所述步骤一进一步包括:使用N台DGX2共16
×
N块V100,采用无监督特征学习BYOL算法对Imagenet2012数据集进行训练,获得预训练模型,将训练时间从7天压缩到5小时6分钟;设置一个CPU服务器作为主节点,其他GPU服务器作为计算节点,主节点和其中一台GPU服务器共享;主节点和各子节点提交相应部署脚本。4.如权利要求2所述大规模多机多卡预训练方法,其特征在于,所述步骤一进一步包括:(1)在云脑I上基于slurm进行多机部署,由于控制节点,即主节点不参与计算,仅为控制节点申请CPU即可;若服务器机型为DGX2,则所述节点参数的配置情况,包括:1)以镜像的方式为每个节点配置运行环境;2)控制节点的配置为:控制节点任务不申请GPU,CPU核数申请6核,内存申请100G,并设置为主干任务;子节点的配置为:每个子节点任务申请16个GPU,CPU核数申请80核,内存申请1T;根据控制节点和子节点共享一台服务器,总共使用的机器数量等于子节点的数量;3)控制节点和子节点均采用IB/RDMA进行多机通信,将内存的一半配置为共享内存;4)配置启动命令和训练脚本,开始运行并行训练任务;(2)基于debug模式配置多机slurm环境;通过debug模式对DGX2的机器进行调试:通过SSH进入到DGX2上执行的任务中;若环境中没有安装slurm相关软件,则进行安装,若已经预先安装好slurm相关软件,则通过slurmd

V和slurmd

C指令进行验证,并查看CPU核数;在云脑版slurm多机部署中,修改masterip.txt和slaveip.txt,在masterip.txt中添加主节点,即控制节点的ip;在slaveip.txt中添加子节点,即计算节点的ip,并修改slurm_autoconfig.sh脚本中的ControlMachine变量,再执行bash slurm_autoconfig.sh脚本,即可完成多机slurm环境的
配置;(3)启动云脑I高速多机通信IB/RDMA1)选用Nvidia NGC19.10作为基础镜像,镜像链接为:https://docs.nvidia.com/deeplearning/frameworks/pytorch

release

notes/rel_19

10.html#rel_19

10;2)在训练脚本中指定IB网卡:

os.environ[...

【专利技术属性】
技术研发人员:李革任俞睿王耀威白鑫贝郭明月
申请(专利权)人:北京大学深圳研究生院
类型:发明
国别省市:

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

1