有效
一种视觉大模型分布式训练方法及系统
白鑫贝、李革、王耀威、纪雯
鹏城实验室
摘要
本发明公开了一种视觉大模型分布式训练方法及系统,所述方法包括:构建分布式训练系统,包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;根据视觉大模型训练所用数据集的大小,确定数据加载方式;根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练;本发明实现了视觉大模型的高效训练。
1.一种视觉大模型分布式训练方法,其特征在于,所述视觉大模型分布式训练方法包括:构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载;根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练;所述采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练,具体包括:获取GPU服务器和GPU板卡数量,为所述GPU服务器集群配置工作参数;将所述视觉大模型分割得到的若干子模型依次部署到不同的GPU上,串联起来视为一个实现整个模型训练的子系统,并将所述子系统复制为多份;完成所有训练参数配置、子模型初始化以及优化器配置的操作;所有子系统从本地专用存储空间或者所述分布式存储系统中并行地加载一定批量的训练数据,并拷贝至模型输入层所在的GPU显存上;所有子系统并行地执行前向传播计算,每个子系统内部按照子模型连接顺序在GPU之间传递神经网络层的中间计算结果;所有子系统并行地执行误差反向传播计算,对于每个子系统,按照误差传播顺序依次得到每个GPU上子模型的梯度更新信息,在GPU之间传递累积的梯度信息;所有子系统基于本地梯度数据对各自的模型进行更新;所有子系统的模型参数更新信息经过压缩后传输至所述主控服务器进行模型聚合和全局模型更新,所述主控服务器将更新后的模型播发到所有子系统中,完成所有子系统模型的同步更新;每隔若干周期利用某个子系统加载验证集对模型性能进行测评,输出评估结果;其中,所述评估结果包括损失值和算法评估指标,所述算法评估指标包括准确率和召回率;对所述视觉大模型进行训练,若所述视觉大模型收敛则停止训练。
2.根据权利要求1所述的视觉大模型分布式训练方法,其特征在于,所述构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机,具体包括:所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
3.根据权利要求2所述的视觉大模型分布式训练方法,其特征在于,所述GPU服务器集群包括多个GPU服务器;所述分布式存储服务器包括一系列具有独立控制器的存储服务器集群,存储介质采用全SSD阵列或者SSD与HDD混合阵列构成,对于SSD与HDD混合阵列,将SSD配置为缓存空间;前端接口使用IB接口或FC接口。
4.根据权利要求2所述的视觉大模型分布式训练方法,其特征在于,所述存储网络交换机为FC-NVMe交换机、IB交换机、FC交换机或者万兆交换机中的任意一种。
5.根据权利要求2所述的视觉大模型分布式训练方法,其特征在于,所述存储网络交换机和所述分布式存储服务器共同构成所述分布式存储系统。
6.根据权利要求5所述的视觉大模型分布式训练方法,其特征在于,所述根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载,具体包括:获取所述GPU服务器的硬件资源信息,所述硬件资源信息包括内存大小、显存大小、算力大小以及硬盘容量;获取所述视觉大模型训练所用数据集占用的存储空间大小;将所述数据集占用存储空间与所述GPU服务器内存进行比较,当所述数据集占用存储空间与所述GPU服务器内存之比小于预设阈值时,从所述GPU服务器内存中划分出一块空间专门用于存储数据集,在训练开始前事先将全部数据集加载至该内存专用存储空间中供训练时直接读取;若所述数据集的大小超过预设等级时,将所述数据集存储在所述分布式存储系统中,对于训练过程的每个迭代周期,多个所述GPU服务器通过所述存储网络交换机从所述分布式存储服务器中并发地读取对应批量的数据,暂存至多个所述GPU服务器各自的内存中以供训练使用。
7.根据权利要求1所述的视觉大模型分布式训练方法,其特征在于,所述根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案,具体包括:当所述视觉大模型为三维卷积神经网络时,根据所述三维卷积神经网络中不同类型网络层的特点,将所述三维卷积神经网络按照网络结构进行分组,得到若干卷积层组和全连接层组;其中,卷积层参数量小计算量大,全连接层参数量大计算量小;计算每个卷积层组和每个全连接层组的参数量及对应的一次训练过程所需占用的显存大小,评估一次训练过程所需的理论计算量,并与GPU板卡的算力和显存资源进行比对;根据各个GPU板卡负载均衡原则对所述视觉大模型进行拆分,得到若干子模型,所述子模型包含一至多个网络层分组;将主要由卷积层组成的子模型部署于多个GPU板卡上,用于数据并行训练,将主要由全连接层组成的子模型部署于其他若干GPU板卡上,用于模型并行训练。
8.根据权利要求1所述的视觉大模型分布式训练方法,其特征在于,所述对所述视觉大模型进行训练,之后还包括:若所述视觉大模型无收敛趋势,则结合训练集和验证集的损失值变化曲线调整参数配置,并重新训练,直到所述视觉大模型收敛为止。
9.一种视觉大模型分布式训练系统,其特征在于,所述视觉大模型分布式训练系统包括:主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;所述主控服务器分别与多个所述GPU服务器连接,所述存储网络交换机分别与多个所述GPU服务器连接,所述存储网络交换机分别与所述分布式存储服务器中的多个存储服务器连接;所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;其中,所述GPU服务器集群包括多个GPU服务器;所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道;所述视觉大模型分布式训练系统能够执行如权利要求1-8中任意一项所述的视觉大模型分布式训练方法。




