CN113723443A - 一种视觉大模型分布式训练方法及系统 - Google Patents
一种视觉大模型分布式训练方法及系统 Download PDFInfo
- Publication number
- CN113723443A CN113723443A CN202110784131.3A CN202110784131A CN113723443A CN 113723443 A CN113723443 A CN 113723443A CN 202110784131 A CN202110784131 A CN 202110784131A CN 113723443 A CN113723443 A CN 113723443A
- Authority
- CN
- China
- Prior art keywords
- training
- model
- gpu
- large visual
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本发明公开了一种视觉大模型分布式训练方法及系统,所述方法包括:构建分布式训练系统,包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;根据视觉大模型训练所用数据集的大小,确定数据加载方式;根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练;本发明实现了视觉大模型的高效训练。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种视觉大模型分布式训练方法及系统。
背景技术
随着计算机视觉、人工智能、通信技术、处理器硬件等应用技术的飞速发展,视频监控设备以其蕴含信息丰富、支撑任务类型多、成本低等巨大优势,在生产、生活及城市管理等诸多方面都发挥着日益重要的作用。目前,各类视频设备的部署与应用日益广泛,视觉数据的数据量也急剧增加,如何有效和充分地使用和处理视觉大数据是关系各应用领域发展的重要课题。
在基于人工智能的视觉应用领域,针对具体任务的有标签训练数据的规模也大幅增长,例如:对于图像分类任务,ImageNet(用于视觉对象识别软件研究的大型可视化数据库)数据集包含超过1400万张图片,覆盖2万多个类别;对于行为识别任务,Kinetics-700数据集包含大约65万段视频,覆盖700个动作类。显而易见地,这些数据集的规模还在不断增长中,尤其是视频数据集所占用的存储空间会远远超过同等数量的图片数据,而这对于日益增多的视频类应用是不可或缺的,能够提高算法模型的性能和普适性。同时,大规模数据集使得大规模模型的训练成为可能,基于大模型强大的表达能力,能够更好地解决视觉应用中的人工智能算法学习问题,这些性能先进的视觉大模型能够为安防、交通、警务等行业的应用带来极大的便利。
然而,这将给训练过程带来大数据和大模型的双重挑战,一般的单机训练方法在计算速度和存储能力上都无法满足要求,采用多机分布式训练和大容量存储设施是应对该挑战的主流对策,考虑到目前单块GPU已经具备了很强的运算能力,多机分布式训练时长主要受限于较长的通信时延。
现有的方法没有考虑模型较大,例如亿级甚至十亿级参数量的模型训练问题,对模型划分方法、大规模数据的存储和加载方法也没有高效的解决方案,难以解决利用视觉大数据对大模型进行高效训练的问题。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种视觉大模型分布式训练方法及系统,旨在解决现有技术中受数据传输速率制约,难以利用视觉大数据对视觉大模型进行高效训练的问题。
为实现上述目的,本发明提供一种视觉大模型分布式训练方法,所述视觉大模型分布式训练方法包括如下步骤:
构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;
根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载;
根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;
采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练。
可选地,所述的视觉大模型分布式训练方法,其中,所述构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机,具体包括:
所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;
所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;
所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;
所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
可选地,所述的视觉大模型分布式训练方法,其中,所述GPU服务器集群包括多个GPU服务器;
所述分布式存储服务器包括一系列具有独立控制器的存储服务器集群,存储介质采用全SSD阵列或者SSD与HDD混合阵列构成,对于SSD与HDD混合阵列,将SSD配置为缓存空间;前端接口使用IB接口或FC接口。
可选地,所述的视觉大模型分布式训练方法,其中,所述存储网络交换机为FC-NVMe交换机、IB交换机、FC交换机或者万兆交换机中的任意一种。
可选地,所述的视觉大模型分布式训练方法,其中,所述存储网络交换机和所述分布式存储服务器共同构成所述分布式存储系统。
可选地,所述的视觉大模型分布式训练方法,其中,所述根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载,具体包括:
获取所述GPU服务器的硬件资源信息,所述硬件资源信息包括内存大小、显存大小、算力大小以及硬盘容量;
获取所述视觉大模型训练所用数据集占用的存储空间大小;
将所述数据集占用存储空间与所述GPU服务器内存进行比较,当所述数据集占用存储空间与所述GPU服务器内存之比小于预设阈值时,从所述GPU服务器内存中划分出一块空间专门用于存储数据集,在训练开始前事先将全部数据集加载至该内存专用存储空间中供训练时直接读取;
若所述数据集的大小超过预设等级时,将所述数据集存储在所述分布式存储系统中,对于训练过程的每个迭代周期,多个所述GPU服务器通过所述存储网络交换机从所述分布式存储服务器中并发地读取对应批量的数据,暂存至多个所述GPU服务器各自的内存中以供训练使用。
可选地,所述的视觉大模型分布式训练方法,其中,所述根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案,具体包括:
当所述视觉大模型为三维卷积神经网络时,根据所述三维卷积神经网络中不同类型网络层的特点,将所述三维卷积神经网络按照网络结构进行分组,得到若干卷积层组和全连接层组;
其中,卷积层参数量小计算量大,全连接层参数量大计算量小;
计算每个卷积层组和每个全连接层组的参数量及对应的一次训练过程所需占用的显存大小,评估一次训练过程所需的理论计算量,并与GPU板卡的算力和显存资源进行比对;
根据各个GPU板卡负载均衡原则对所述视觉大模型进行拆分,得到若干子模型,所述子模型包含一至多个网络层分组;
将主要由卷积层组成的子模型部署于多个GPU板卡上,用于数据并行训练,将主要由全连接层组成的子模型部署于其他若干GPU板卡上,用于模型并行训练。
可选地,所述的视觉大模型分布式训练方法,其中,所述采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练,具体包括:
获取GPU服务器和GPU板卡数量,为所述GPU服务器集群配置工作参数;
将所述视觉大模型分割得到的若干子模型依次部署到不同的GPU上,串联起来视为一个实现整个模型训练的子系统,并将所述子系统复制为多份;
完成所有训练参数配置、子模型初始化以及优化器配置的操作;
所有子系统从本地专用存储空间或者所述分布式存储系统中并行地加载一定批量的训练数据,并拷贝至模型输入层所在的GPU显存上;
所有子系统并行地执行前向传播计算,每个子系统内部按照子模型连接顺序在GPU之间传递神经网络层的中间计算结果;
所有子系统并行地执行误差反向传播计算,对于每个子系统,按照误差传播顺序依次得到每个GPU上子模型的梯度更新信息,在GPU之间传递累积的梯度信息;
所有子系统基于本地梯度数据对各自的模型进行更新;
所有子系统的模型参数更新信息经过压缩后传输至所述主控服务器进行模型聚合和全局模型更新,所述主控服务器将更新后的模型播发到所有子系统中,完成所有子系统模型的同步更新;
每隔若干周期利用某个子系统加载验证集对模型性能进行测评,输出评估结果;
对所述视觉大模型进行训练,若所述视觉大模型收敛则停止训练。
可选地,所述的视觉大模型分布式训练方法,其中,所述对所述视觉大模型进行训练,之后还包括:
若所述视觉大模型无收敛趋势,则结合训练集和验证集的损失值变化曲线调整参数配置,并重新训练,直到所述视觉大模型收敛为止。
此外,为实现上述目的,本发明还提供一种视觉大模型分布式训练系统,其中,所述视觉大模型分布式训练系统包括:
主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;所述主控服务器分别与多个所述GPU服务器连接,所述存储网络交换机分别与多个所述GPU服务器连接,所述存储网络交换机分别与所述分布式存储服务器中的多个存储服务器连接;
所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;其中,所述GPU服务器集群包括多个GPU服务器;
所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;
所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;
所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
本发明通过构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载;根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量(含中间结果)和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练;本发明实现了视觉大模型的高效训练。
附图说明
图1是本发明视觉大模型分布式训练方法的较佳实施例的流程图;
图2是本发明视觉大模型分布式训练系统的较佳实施例中原理示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的视觉大模型分布式训练方法,如图1所示,所述视觉大模型分布式训练方法包括以下步骤:
步骤S10、构建分布式训练系统,如图2所示,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机。
具体地,首先构建所述分布式训练系统,所述分布式训练系统的组成包括:主控服务器、多个GPU服务器(即GPU服务器集群,所述GPU服务器集群包括多个GPU服务器)、分布式存储服务器和存储网络交换机。
具体地,构建所述分布式训练系统如下,即所述步骤S10具体包括:
S101:所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储。
S102:所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务。
S103:所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务。
S104:所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
在一种实施方式中,所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储等操作。所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务。所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;主要包括一系列具有独立控制器的存储服务器集群,存储介质可采用全SSD(Solid State Disk,指固态硬盘)阵列或者SSD与HDD(Hard Disk Drive,指机械硬盘)混合阵列构成,对于SSD与HDD混合阵列,将SSD配置为缓存空间,可大大提高系统的节点访问性能,前端接口可以使用IB接口、FC接口,从而减少GPU服务器中CPU的处理时间,降低时延。所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道;例如,所述存储网络交换机可采用FC-NVMe交换机、IB交换机、FC交换机或者万兆交换机等,所述存储网络交换机和所述分布式存储服务器共同构成分布式存储系统。
步骤S20、根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载。
对于不同规模的数据集采取不同的数据加载策略,以使得模型训练效率最大化。主要分为两种情况:一般规模数据集和超大规模数据集。
具体地,数据的加载如下,即所述步骤S20具体包括:
S201:获取所述GPU服务器的硬件资源信息,所述硬件资源信息包括内存大小、显存大小、算力大小以及硬盘容量。
S202:获取所述视觉大模型训练所用数据集占用的存储空间大小。
S203:将所述数据集占用存储空间与所述GPU服务器内存进行比较,当所述数据集占用存储空间与所述GPU服务器内存之比小于预设阈值时,从所述GPU服务器内存中划分出一块空间专门用于存储数据集,在训练开始前事先将全部数据集加载至该内存专用存储空间中供训练时直接读取。
例如,所述预设阈值取值可以为1/5。
在一种实施方式中,基于当前GPU服务器内存大幅提升的现状,对于一般规模数据集,在数据导入节点的GPU服务器内存中预留一定空间专门用于缓存数据集,训练启动之前将数据集全部加载至该内存专用存储空间中供训练时直接读取,能够大幅降低数据加载时长,极大地提高训练速度。
例如,将数据集大小记为Sd,GPU服务器内存记为SRAM,预设阈值表示为Tratio,则上述判决条件可以表示为:
Sd/SRAM<Tratio;
则专用存储空间的大小Sds为:
Sds=Sd+Gs;
式中,Gs表示为存储数据集所预留的裕量,使得Sds略大于Sd。
举例说明,若所述GPU服务器为NVIDIADGX-2,其系统内存为1.5TB,数据集大小为100GB(视为一般规模),则可在系统内存中开辟200GB的空间作为数据集专用存储空间。
S204:若所述数据集的大小超过预设等级时,将所述数据集存储在所述分布式存储系统中,对于训练过程的每个迭代周期,多个所述GPU服务器通过所述存储网络交换机从所述分布式存储服务器中并发地读取对应批量的数据,暂存至多个所述GPU服务器各自的内存中以供训练使用。
举例说明,对于数据量达TB级及以上的超大规模数据集(即所述数据集的大小超过预设等级),将其存储在所述分布式存储系统中,对于训练过程的每个迭代周期,以高速存储网络交换机为桥梁,系统中相应的GPU服务器通过NVMe、IB等接口从SSD阵列或者SSD缓存空间中并发地读取对应批量的数据,暂存至各自的内存中以供训练使用。由于采用性能先进的分布式存储系统来实现大规模数据集的存储,该存储架构及其中采用的SSD存储介质或SSD缓存机制以及万兆交换机等高速硬件能够大大提高数据并发性能和传输速率,解决模型训练中的大批量数据存储和并行快速加载问题。
步骤S30、根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案。
具体地,模型的划分与部署如下,即所述步骤S30具体包括:
S301:当所述视觉大模型为三维卷积神经网络时,根据所述三维卷积神经网络中不同类型网络层的特点,将所述三维卷积神经网络按照网络结构进行分组,得到若干卷积层组和全连接层组。
其中,卷积层参数量小计算量大,全连接层参数量大计算量小。
在一种实施方式中,模型为行为识别或事件检测中常用的三维卷积神经网络,其模型参数量、训练消耗的计算量和存储资源相比于传统的二维卷积神经网络都急剧增加,尤其对于一些深度网络例如3DResNet在超大规模视频数据集上的训练问题,面临着大数据和大模型的双重挑战;因此,当所述视觉大模型为三维卷积神经网络时,根据三维卷积神经网络的卷积层参数量小计算量大、全连接层参数量大计算量小的特点,对三维卷积神经网络按照网络结构进行分组,得到若干卷积层组和全连接层组。
S302:计算每个卷积层组和每个全连接层组的参数量及对应的一次训练过程所需占用的显存大小,评估一次训练过程所需的理论计算量,并与GPU板卡的算力和显存资源进行比对。
S303:根据各个GPU板卡负载均衡原则对所述视觉大模型进行拆分,得到若干子模型,所述子模型包含一至多个网络层分组。
S304:将主要由卷积层组成的子模型部署于多个GPU板卡上,用于数据并行训练,将主要由全连接层组成的子模型部署于其他若干GPU板卡上,用于模型并行训练。
在一种实施方式中,假设使用的GPU卡型号相同,其算力为Cgpu,显存为Rgpu;假设将模型的层划分为N组,每组的模型参数及其一次训练所需占用的存储空间为Rmodel,i,所需的理论计算量为Cmodel,i,其中,i=1,2,K,N。则N的取值满足如下条件:
其中,RG为针对估算的存储空间需求而保留的裕量。
则所需GPU卡的数量M需满足如下条件:
考虑到目前GPU服务器单机多卡之间已具备很强的数据传输能力,本发明中模型分解的目的是在满足GPU显存资源约束下,将模型分配到不同的GPU上进行训练,尽可能充分利用GPU显存,且使得各个GPU上的计算时长尽量接近,以实现对各个GPU的有效均衡利用。
假设分配到M个GPU上的网络层组的数量依次为N1、N2、……、NM,其对应的理论算力和存储空间需求分别为Csum,1、Csum,2、……、Csum,M和Rsum,1、Rsum,2、……、Rsum,M,它们满足如下关系:
则模型分解的最优化模型可以表示为:
其中,lr,i是分配到第i个GPU上的子模型对应的存储空间需求与该GPU显存之比,lc,i是分配到第i个GPU上的子模型对应的理论算力与GPU算力之比,lc,min和lc,max分别是lc,i(i=1,2,K,M)的最小值和最大值,是l′c,i(i=1,2,K,M)的平均值。
需要说明的是,上述过程以三维卷积神经网络为例来解释模型划分方法,该方法可推广至其他深度学习模型的划分中。
步骤S40、采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练。
具体地,模型的训练与验证如下,即所述步骤S40具体包括:
S401:获取GPU服务器和GPU板卡数量,为所述GPU服务器集群配置工作参数。
在一种实施方式中,获取GPU服务器和GPU板卡数量,为GPU服务器集群配置工作参数,例如网络参数、资源配置参数等。
S402:将所述视觉大模型分割得到的若干子模型依次部署到不同的GPU上,串联起来视为一个实现整个模型训练的子系统,并将所述子系统复制为多份。
在一种实施方式中,根据模型划分方案在GPU服务器上部署模型。
举例说明,可将所有子模型分别部署在位于同一GPU服务器的若干GPU板卡上,则一台GPU服务器即为一个子系统,内部GPU之间采用模型并行训练方式,若利用N台GPU服务器且它们之间进行数据并行,能够使batchsize相对于单台服务器扩大N倍,从而支持大batchsize情况下的并行训练需求。
S403:完成所有训练参数配置、子模型初始化以及优化器配置的操作。
在一种实施方式中,完成所有训练参数配置、子模型初始化、优化器配置等操作。
S404:所有子系统从本地专用存储空间或者分布式存储系统中并行地加载一定批量的训练数据,并拷贝至其模型输入层所在的GPU显存上。
S405:所有子系统并行地执行前向传播计算,每个子系统内部按照子模型连接顺序在GPU之间传递神经网络层的中间计算结果。
例如,中间计算结果为激活值。
S406:所有子系统并行地执行误差反向传播计算,对于每个子系统,按照误差传播顺序依次得到每个GPU上子模型的梯度更新信息,在GPU之间传递累积的梯度信息。
S407:所有子系统基于本地梯度数据对各自的模型进行更新。
S408:所有子系统的模型参数更新信息经过压缩后传输至所述主控服务器进行模型聚合和全局模型更新,所述主控服务器将更新后的模型播发到所有子系统中,完成所有子系统模型的同步更新。
在一种实施方式中,所有子系统的模型参数更新信息经过压缩(例如梯度稀疏化技术)后传输至主控服务器进行模型聚合和全局模型更新,然后,主控服务器将更新后的模型播发到所有子系统中,完成所有子系统模型的同步更新。
S409:每隔若干周期利用某个子系统加载验证集对模型性能进行测评,输出评估结果。
例如,评估结果可以是损失值,也可以是算法评估指标,对于不同的任务评估指标是不同的,对于分类任务,评估指标有准确率和召回率。
S410:对所述视觉大模型进行训练,若所述视觉大模型收敛则停止训练。
在一种实施方式中,重复上述步骤404-409,对视觉大模型进行训练,若所述视觉大模型收敛则停止训练;若所述视觉大模型无收敛趋势,则结合训练集和验证集的损失值变化曲线或其他经验调整参数配置,重新训练,直到所述视觉大模型收敛为止。训练过程中,模型参数或更新梯度信息经过压缩后再进行传输,以尽量降低模型聚合过程的通信数据量,且在训练时加入验证环节,能够及时掌握模型训练效果的变化情况,从而有效控制训练时长,为模型调优提供参考依据。
本发明针对智能视觉计算中的视觉大模型在大数据集上的训练问题,首先,根据数据集的大小,分别采用内存加载和分布式存储系统加载两种方式,降低数据读取和传输时间,实现训练数据的快速导入;其次,在训练策略上采用数据并行和模型并行的混合并行模式,结合视觉模型网络结构的特点,对模型中参数量小而计算量大的层使用数据并行,对模型中计算量小而参数量大的层使用模型并行,基于全局的主控服务器进行模型聚合和模型分发,通过对模型参数或更新信息进行过滤和压缩的方式进一步缩减模型更新时的通信时延开销;最后,在训练过程中每隔若干周期利用训练集和验证集对模型性能进行测评,当模型收敛后及时停止训练。
进一步地,如图2所示,基于上述视觉大模型分布式训练方法,本发明还相应提供了一种视觉大模型分布式训练系统,其中,所述视觉大模型分布式训练系统包括:
主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;所述主控服务器分别与多个所述GPU服务器连接,所述存储网络交换机分别与多个所述GPU服务器连接,所述存储网络交换机分别与所述分布式存储服务器中的多个存储服务器连接。
其中,所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;其中,所述GPU服务器集群包括多个GPU服务器;所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
综上所述,本发明提供一种视觉大模型分布式训练方法及系统,所述方法包括:构建分布式训练系统,所述分布式训练系统包括主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;根据视觉大模型训练所用数据集的大小,确定数据加载方式,所述数据加载方式包括内存加载或者分布式存储系统加载;根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案;采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练;本发明实现了视觉大模型的高效训练。
综上来看,本发明的技术方案包含了四部分:分别是分布式训练系统构建、数据的加载、模型的划分与部署、模型的训练与验证。在分布式训练系统搭建完毕后,首先,数据集存储在分布式存储系统中,根据数据集的大小评估并确定更高效的数据加载方式,应用于训练时的数据加载过程中;然后,对模型大小和计算量消耗进行评估,并依据GPU服务器的算力和存储资源对模型进行分解,将划分得到的子模型根据一定规则分配到不同的GPU上;最后,采用混合并行模式对模型进行训练,基于全局的主控服务器进行模型聚合和模型分发,通过一定的模型压缩方法降低通信数据量,且每隔若干周期利用训练集和验证集对模型性能进行测评,当模型收敛后及时停止训练。
本发明所采用的方法的关键点如下:
(1)、采用性能先进的分布式存储系统来实现大规模数据集的存储,该存储架构及其中采用的SSD存储介质或SSD缓存机制以及万兆交换机等高速硬件能够大大提高数据并发性能和传输速率,解决模型训练中的大批量数据存储和并行快速加载问题;
(2)、基于当前GPU内存大幅提升的现状,对于一般规模数据集,在数据导入节点的GPU内存中预留一定空间专门用于缓存数据集,训练启动之前将数据集全部加载进去,能够大幅降低数据加载时长,使模型训练速度更快;
(3)、对于视觉大数据和大模型并存的情况,以视觉应用中常用的三维卷积神经网络为例,结合其网络结构特点对模型进行划分,采用混合并行模式进行训练,以解决模型过大或者大batchsize情况下采用单机或单卡无法训练的问题;
(4)、训练过程中,模型参数或更新梯度信息经过压缩后再进行传输,以尽量降低模型聚合过程的通信数据量,且在训练时加入验证环节,能够及时掌握模型训练效果的变化情况,从而有效控制训练时长,为模型调优提供参考依据。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种视觉大模型分布式训练方法,其特征在于,所述视觉大模型分布式训练方法包括:
构建分布式训练系统,所述分布式训练系统包括主控服务器、多个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.根据权利要求6所述的视觉大模型分布式训练方法,其特征在于,所述根据所述视觉大模型的结构特点,对所述视觉大模型中不同类型的网络层组的参数量和计算量进行评估,结合GPU的算力和缓存能力对所述视觉大模型进行分解,确定所述视觉大模型的并行训练方案,具体包括:
当所述视觉大模型为三维卷积神经网络时,根据所述三维卷积神经网络中不同类型网络层的特点,将所述三维卷积神经网络按照网络结构进行分组,得到若干卷积层组和全连接层组;
其中,卷积层参数量小计算量大,全连接层参数量大计算量小;
计算每个卷积层组和每个全连接层组的参数量及对应的一次训练过程所需占用的显存大小,评估一次训练过程所需的理论计算量,并与GPU板卡的算力和显存资源进行比对;
根据各个GPU板卡负载均衡原则对所述视觉大模型进行拆分,得到若干子模型,所述子模型包含一至多个网络层分组;
将主要由卷积层组成的子模型部署于多个GPU板卡上,用于数据并行训练,将主要由全连接层组成的子模型部署于其他若干GPU板卡上,用于模型并行训练。
8.根据权利要求7所述的视觉大模型分布式训练方法,其特征在于,所述采用混合并行模式进行模型训练,基于所述主控服务器进行模型聚合、全局模型更新和模型分发,在训练过程中每隔若干周期利用训练集和验证集对所述视觉大模型进行测评,当所述视觉大模型收敛后停止训练,具体包括:
获取GPU服务器和GPU板卡数量,为所述GPU服务器集群配置工作参数;
将所述视觉大模型分割得到的若干子模型依次部署到不同的GPU上,串联起来视为一个实现整个模型训练的子系统,并将所述子系统复制为多份;
完成所有训练参数配置、子模型初始化以及优化器配置的操作;
所有子系统从本地专用存储空间或者所述分布式存储系统中并行地加载一定批量的训练数据,并拷贝至模型输入层所在的GPU显存上;
所有子系统并行地执行前向传播计算,每个子系统内部按照子模型连接顺序在GPU之间传递神经网络层的中间计算结果;
所有子系统并行地执行误差反向传播计算,对于每个子系统,按照误差传播顺序依次得到每个GPU上子模型的梯度更新信息,在GPU之间传递累积的梯度信息;
所有子系统基于本地梯度数据对各自的模型进行更新;
所有子系统的模型参数更新信息经过压缩后传输至所述主控服务器进行模型聚合和全局模型更新,所述主控服务器将更新后的模型播发到所有子系统中,完成所有子系统模型的同步更新;
每隔若干周期利用某个子系统加载验证集对模型性能进行测评,输出评估结果;
对所述视觉大模型进行训练,若所述视觉大模型收敛则停止训练。
9.根据权利要求8所述的视觉大模型分布式训练方法,其特征在于,所述对所述视觉大模型进行训练,之后还包括:
若所述视觉大模型无收敛趋势,则结合训练集和验证集的损失值变化曲线调整参数配置,并重新训练,直到所述视觉大模型收敛为止。
10.一种视觉大模型分布式训练系统,其特征在于,所述视觉大模型分布式训练系统包括:
主控服务器、多个GPU服务器、分布式存储服务器和存储网络交换机;所述主控服务器分别与多个所述GPU服务器连接,所述存储网络交换机分别与多个所述GPU服务器连接,所述存储网络交换机分别与所述分布式存储服务器中的多个存储服务器连接;
所述主控服务器用于对GPU服务器集群的管理与配置、训练过程协同、模型聚合与更新、以及全局模型的存储;其中,所述GPU服务器集群包括多个GPU服务器;
所述GPU服务器用于从本地内存或者通过所述存储网络交换机从所述分布式存储服务器获取训练和验证数据,完成具体的模型训练任务;
所述分布式存储服务器用于超大规模数据集的存取和备份,为所述GPU服务器提供高速数据读取服务;
所述存储网络交换机用于连接多个所述GPU服务器和所述分布式存储服务器,为数据访问提供直接的地址映射和高速数据传输通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784131.3A CN113723443A (zh) | 2021-07-12 | 2021-07-12 | 一种视觉大模型分布式训练方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110784131.3A CN113723443A (zh) | 2021-07-12 | 2021-07-12 | 一种视觉大模型分布式训练方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113723443A true CN113723443A (zh) | 2021-11-30 |
Family
ID=78673327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110784131.3A Pending CN113723443A (zh) | 2021-07-12 | 2021-07-12 | 一种视觉大模型分布式训练方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113723443A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723012A (zh) * | 2022-04-14 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 基于分布式训练系统的计算方法和装置 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
CN117311998A (zh) * | 2023-11-30 | 2023-12-29 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及系统 |
-
2021
- 2021-07-12 CN CN202110784131.3A patent/CN113723443A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723012A (zh) * | 2022-04-14 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 基于分布式训练系统的计算方法和装置 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
CN116167463B (zh) * | 2023-04-26 | 2023-07-07 | 之江实验室 | 一种面向智能计算的分布式模型训练容器调度方法及装置 |
CN117311998A (zh) * | 2023-11-30 | 2023-12-29 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及系统 |
CN117311998B (zh) * | 2023-11-30 | 2024-03-05 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487589B2 (en) | Self-adaptive batch dataset partitioning for distributed deep learning using hybrid set of accelerators | |
US10728091B2 (en) | Topology-aware provisioning of hardware accelerator resources in a distributed environment | |
CN113723443A (zh) | 一种视觉大模型分布式训练方法及系统 | |
US10990561B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
DE112019000841T5 (de) | Handhaben von E/A-Operationen in einem cloudbasierten Speichersystem | |
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
CN104219318B (zh) | 一种分布式文件存储系统及方法 | |
WO2017156968A1 (zh) | 神经网络的计算方法、系统及其装置 | |
CN102136993B (zh) | 一种数据迁移的方法、装置和系统 | |
CN109521943B (zh) | 云数据库实例的分配方法及相关产品 | |
CN110795226B (zh) | 利用计算机系统处理任务的方法、电子设备和存储介质 | |
CN109189552A (zh) | 虚拟网络功能扩容与缩容方法及系统 | |
CN113806018A (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN105373484A (zh) | 一种网络通信芯片中内存分配、存储和管理的方法 | |
US11842051B2 (en) | Intelligent defragmentation in a storage system | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 | |
CN116893904B (zh) | 神经网络模型的内存管理方法、装置、设备、介质及产品 | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
WO2022026044A1 (en) | Sharing of compute resources between the virtualized radio access network (vran) and other workloads | |
CN110750363B (zh) | 计算机存储管理方法和装置、电子设备和存储介质 | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
CN103473368A (zh) | 一种基于计数排序的虚拟机实时迁移方法及系统 | |
Cui et al. | Scalable deep learning on distributed GPUs with a GPU-specialized parameter server | |
CN115344358A (zh) | 资源调度方法、装置和管理节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |