[发明专利]大规模多机多卡预训练方法、系统、设备及服务器集群在审
| 申请号: | 202111042840.0 | 申请日: | 2021-09-07 |
| 公开(公告)号: | CN113723552A | 公开(公告)日: | 2021-11-30 |
| 发明(设计)人: | 李革;任俞睿;王耀威;白鑫贝;郭明月 | 申请(专利权)人: | 北京大学深圳研究生院 |
| 主分类号: | G06K9/62 | 分类号: | G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 北京京万通知识产权代理有限公司 11440 | 代理人: | 万学堂 |
| 地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 大规模 多机多卡预 训练 方法 系统 设备 服务器 集群 | ||
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/RDMA
1)选用Nvidia NGC19.10作为基础镜像,镜像链接为:https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel_19-10.html#rel_19-10;
2)在训练脚本中指定IB网卡:
①os.environ['NCCL_IB_HCA']=mlx5_0;
②os.environ['NCCL_DEBUG']=INFO;
(4)大规模任务的加速方案
采用如下措施对训练过程进行加速:
1)数据集存储加速:采用开辟一个专用数据集存储空间并挂载内存的方式,在不重启的情况下一直使用数据集,通过加速数据读取达到加速训练的目的;
2)采用IB/RDMA进行多机通信,通过加速训练中的多台机器之间的数据交互过程,达到提高训练速度的目的;
3)采用Apex混合精度的方式进行训练,占用显存相较单精度浮点型减少一半,因此也可以将batchsize扩大一倍;
4)采用适合大规模大batchsize情况的优化器,例如lars、lamb、yogi等,通过优化器加速达到提高训练速度的目的;
5)针对slurm优化了CPU核数的分配,在总核数一定的情况下,尽可能提高CPU分配job效率;
(5)基于步骤(1)~步骤(4),将BYOL算法的slurm框架下多机多卡并行版本进行大规模多机多卡的模型预训练;
(6)利用单机多卡对BYOL算法的预训练模型进行评测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学深圳研究生院,未经北京大学深圳研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111042840.0/1.html,转载请声明来源钻瓜专利网。





