CN117093871B - 一种面向深度学习分布式训练测评方法和系统 - Google Patents
一种面向深度学习分布式训练测评方法和系统 Download PDFInfo
- Publication number
- CN117093871B CN117093871B CN202311335992.9A CN202311335992A CN117093871B CN 117093871 B CN117093871 B CN 117093871B CN 202311335992 A CN202311335992 A CN 202311335992A CN 117093871 B CN117093871 B CN 117093871B
- Authority
- CN
- China
- Prior art keywords
- model
- distributed
- training
- neural network
- parallelism
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 216
- 238000011156 evaluation Methods 0.000 title abstract description 18
- 238000003062 neural network model Methods 0.000 claims abstract description 172
- 238000005457 optimization Methods 0.000 claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 75
- 230000015654 memory Effects 0.000 claims description 59
- 230000008569 process Effects 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 31
- 238000013135 deep learning Methods 0.000 claims description 19
- 238000000638 solvent extraction Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000013136 deep learning model Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical compound CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241001391944 Commicarpus scandens Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种面向深度学习分布式训练测评方法和系统,其中,面向深度学习分布式训练测评方法包括:对各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;并基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,以进行优化训练,得到对应的第二性能指标;基于各所述第二性能指标,确定最优分布式神经网络模型。本发明使用指标量化评估各分布式神经网络模型计算的性能,并基于评估指标进一步进行优化训练,提高了各分布式神经网络模型计算的性能,通过优化后的指标,获得最优分布式神经网络模型,帮助技术人员高效部署分布式神经网络模型。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种面向深度学习分布式训练测评方法和系统。
背景技术
大规模的深度神经网络逐渐成为解决各种领域的有力工具,这些大模型的训练和推理需要庞大的计算和内存开销,使得通过单设备训练大规模神经网络在时间和内存上是不可行的。针对此限制,许多分布式策略、优化算法和分布式框架应运而生,这些分布式技术极大的推动了大规模神经网络的发展。
在集群中高效部署分布式训练需要考虑如下几个方面:1)分布式并行策略,分布式并行策略是指如何将数据和计算分布在多个节点以实现高效训练,主要包括数据并行,模型并行,流水线并行,专家混合并行;2)优化技术,优化技术可以改进或改变集群的资源的分配;3)训练框架,训练框架是实现分布式训练的基础,常见的框架包括深度学习框架Pytorch、Tensorflow和分布式框架Horovod、Deepspeed;4)集群配置,集群配置是指如何配置集群以实现高效的分布式训练,需要考虑的因素包括节点的数量,节点之间的网络带宽和延迟,节点的中央处理器(Central Processing Unit,CPU)和图形处理器(GraphicsProcessing Unit,GPU)资源。
分布式计算评测对于高效部署非常重要。技术人员需要解决哪些指标可以更好地衡量分布式计算的性能,并根据实际需求选择合适的分布式策略和框架进行优化。现有的分布式计算评测方法只能在框架和硬件上评测吞吐量或准确率等宏观指标,难以体现哪种组合训练高效,缺乏对复杂的分布式训练整体的系统性分析。因此,如何设计一套科学且方便的深度学习分布式计算评测方法,以更好地量化分布式计算的性能指标,获得最优分布式神经网络模型,成为技术人员亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种面向深度学习分布式训练测评方法和系统。
第一方面,本申请实施例提供了一种面向深度学习分布式训练测评方法,所述方法包括:
获取深度学习模型的数据集,并对所述数据集进行预处理;
基于深度学习框架搭建单机神经网络模型;
将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
将分布式优化算法添加至各所述分布式神经网络模型中,并设置对应的分布式策略并行度以及训练参数,使用所述数据集对各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;
基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数,使用调整选择后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;
基于各所述第二性能指标,确定最优分布式神经网络模型。
在其中一个实施例中,所述第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;所述基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数包括:
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与所述模型训练不同阶段的平均时间,选择对应的所述分布式优化算法;
基于各所述分布式神经网络模型的所述每个迭代通信的总时间与所述模型训练不同阶段的平均时间,调整对应的所述分布式策略并行度;
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与当前计算节点的显存大小,调整对应的所述训练参数。
在其中一个实施例中,所述分布式策略并行度包括数据并行度、流水线并行度以及模型并行度;
所述数据并行度、所述流水线并行度以及所述模型并行度满足:
N=数据并行度×流水线并行度×模型并行度
其中,N为训练过程中计算节点的个数。
在其中一个实施例中,所述分布式神经网络模型为数据并行的分布式神经网络模型;使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据集;
在每个计算节点上复制所述分布式神经网络模型,获得模型副本;
在每一轮迭代训练中,将同一所述批次数据集中不同的数据子集输入至各所述计算节点上的所述模型副本,进行独立的前向传播和反向传播计算,生成各所述计算节点的梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
基于所述全局模型参数,更新各所述计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在其中一个实施例中,所述分布式神经网络模型为流水线并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据集,并将各所述批次数据集平均分成多个微批次数据子集;
将所述模型划分为若干个模型阶段;其中,各所述模型阶段至少由一个网络层组成,每个计算节点用于执行至少一个所述模型阶段;
在每一轮迭代训练中,当前计算节点将前一计算节点的输出结果作为输入,进行独立的前向传播和反向传播计算,生成本地梯度;其中,同一所述批次数据集的各所述微批次数据子集依次输入至第一个计算节点进行计算;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在其中一个实施例中,所述分布式神经网络模型为模型并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据子集;
将张量操作计算量大于预设值的网络层划分为N个部分,并将各所述部分分别复制到一个计算节点中,其余网络层复制到每个计算节点;
在每一轮迭代训练中,每个计算节点使用同一所述批次数据子集和本地模型进行独立的前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在其中一个实施例中,所述分布式神经网络模型为基于模型并行和数据并行的混合并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将训练数据集分割成多个批次数据集;
将张量操作计算量大于预设值的网络层划分为K个部分,并将各所述部分分别复制到至少两个计算节点中,其余网络层复制到每个计算节点;其中K为所述模型并行度的数量;
在每一轮迭代训练中,具有相同模型的计算节点使用同一所述批次数据集中不同的数据子集和本地模型进行前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
重复迭代训练过程,直至达到预定停止条件。
在其中一个实施例中,所述分布式优化算法的优化过程如下:
在各所述分布式神经网络模型的前向传播过程中,选择多个位置梯度检查点;其中,所述位置梯度检查点为预设网络层的中间计算结果;
释放除各所述位置梯度检查点之外的其他计算结果内存;
在各所述分布式神经网络模型的反向传播过程中,通过回溯梯度流确定距各网络层最近的梯度检查点,执行从所述最近的梯度检查点开始的前向计算过程,恢复之前释放的所述其他计算结果;
继续执行反向传播过程,完成模型参数的更新。
在其中一个实施例中,所述分布式优化算法的优化过程如下:
将各所述分布式神经网络模型的模型状态进行划分,其中,所述模型状态包括优化器参数、模型参数以及梯度;
将划分后的所述模型状态分散存储至每个计算节点中;
在模型训练过程中,各所述计算节点相互交换对应的模型状态,实现全局优化。
第二方面,本申请实施例还提供了一种面向深度学习分布式训练测评系统,所述系统包括:
获取模块,用于获取深度学习模型的数据集,并对所述数据集进行预处理;
搭建模块,用于基于深度学习框架搭建单机神经网络模型;
扩展模块,用于将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
训练模块,用于将分布式优化算法添加至各所述分布式神经网络模型中,并设置相应的分布式策略并行度以及训练参数,使用所述数据集对添加分布式优化算法的各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;
优化模块,用于基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,使用调整后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;
确定模块,用于基于各所述第二性能指标,确定最优分布式神经网络模型。
上述面向深度学习分布式训练测评方法和系统,通过各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,使用调整后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;基于各所述第二性能指标,确定最优分布式神经网络模型。本发明使用指标量化评估各分布式神经网络模型计算的性能,并基于评估指标进一步进行优化训练,提高了各分布式神经网络模型计算的性能,通过优化后的指标,确定各分布式神经网络模型的优劣,以获得最优分布式神经网络模型,帮助技术人员高效部署分布式神经网络模型。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是一个实施例中面向深度学习分布式训练测评方法的应用环境示意图;
图2是一个实施例中面向深度学习分布式训练测评方法的流程示意图;
图3是一个实施例中分布式神经网络模型训练过程中内存变化的示意图;
图4是一个实施例中对数据并行的分布式神经网络模型进行训练的流程示意图;
图5是一个实施例中对流水线并行的分布式神经网络模型进行训练的流程示意图;
图6是一个实施例中对模型并行的分布式神经网络模型进行训练的流程示意图;
图7是一个实施例中对混合并行的分布式神经网络模型进行训练的流程示意图;
图8是一个实施例中面向深度学习分布式训练测评系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的面向深度学习分布式训练测评方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的面向深度学习分布式训练测评方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本申请实施例提供了一种面向深度学习分布式训练测评方法,如图2所示,所述方法包括以下步骤:
步骤S201,获取深度学习模型的数据集,并对所述数据集进行预处理;
其中,预处理包括图像缩放或者文本特征映射变化。
步骤S202,基于深度学习框架搭建单机神经网络模型;
其中,单机神经网络模型可以是计算机视觉模型ResNet(残差神经网络),Vit(Vision Transformer)以及自然语言模型Bert(Bidirectional Encoder Representationfrom Transformers)等。
步骤S203,将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
具体的,利用深度学习框架或分布式框架将单机神经网络模型扩展为多种不同类型的分布式神经网络模型。
深度学习框架Pytorch分别提供了多种API接口,可将单机神经网络模型扩展为数据并行,流水线并行和模型并行的分布式神经网络模型。其中,torch.nn.parallel.DistributedDataParallel模块可用于实现数据并行单机神经网络模型;torch.distributed.pipeline模块则支持流水线并行;而torch.distributed模块则用于构建自定义的分布式神经网络,并进行通信。
Horovod是一种分布式框架,其horovod.torch模块可帮助将基于PyTorch实现的单机模型扩展为数据并行、模型并行和混合并行等分布式神经网络模型。
Deepspeed是一种分布式框架,支持多种深度学习框架,并能将单机神经网络模型扩展为数据并行、流水线并行和混合并行。具体而言,Deepspeed提供了deepspeed.initialize模块来帮助实现数据并行分布式网络,同时还提供了deepspeed.pipe.PipelineModule模块来支持流水线或混合并行的网络模型。
步骤S204,将分布式优化算法添加至各所述分布式神经网络模型中,并设置对应的分布式策略并行度以及训练参数,使用所述数据集对各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;
步骤S205,基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数,使用调整选择后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;
步骤S206,基于各所述第二性能指标,确定最优分布式神经网络模型。
上述步骤S201至步骤S206,通过各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,使用调整后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;基于各所述第二性能指标,确定最优分布式神经网络模型。本发明使用指标量化评估各分布式神经网络模型计算的性能,并基于评估指标进一步进行优化训练,提高了各分布式神经网络模型计算的性能,通过优化后的指标,确定各分布式神经网络模型的优劣,以获得最优分布式神经网络模型,帮助技术人员高效部署分布式神经网络模型。
在其中一个实施例中,所述第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;
其中,所述模型训练不同部分的内存计算方式如下:
在各所述分布式神经网络模型训练中设置多个采样点,所述采样点分别在模型创建完成时、数据加载完成时、模型前向传播完成时、模型反向传播完成时以及模型参数更新完成时设置;如图3所示,在模型创建完成时、数据加载完成时、模型前向传播完成时、模型反向传播完成时以及模型参数更新完成时模型训练内存变化示意图,图3中,+号表示内存增加,-号表示内存减少。例如,在模型创建后会增加模型参数,会导致内存增加。
在各所述分布式神经网络模型训练中获取各所述采样点的当前内存,包括模型创建完成时的内存M 1 ,数据加载完成时的内存M 2 ,模型前向传播完成时的内存M 3 ,模型反向传播完成时的内存M 4 ,模型参数更新完成时的内存M 5 ;
分别按以下公式计算模型占用内存O 1 ,数据占用内存O 2 ,激活值占用内存O 3 ,梯度参数占用内存O 4 ,优化器占用内存O 5 以及模型训练内存峰值O 6 ;
O
1
=M
1
O
2
=M
2
-O
1
O
3
=M
3
-O
1
-O
2
O
4
=M
4
-O
1
-O
2
O
5
=M
5
-O
1
-O
2
-O
4
O
6
=M
3
其中,所述模型训练不同阶段的平均时间、吞吐率以及每个迭代通信的总时间计算方式如下:
在各所述分布式神经网络模型训练过程中定义多个时间事件,所述阶段包括模型迭代训练事件,模型前向传播事件,梯度参数清除事件,模型后向传播事件,梯度参数裁剪或缩放事件,模型参数更新事件;使用nvtx库在模型训练中对各事件进行打标;
用Nsight system测试程序测试模型训练,生成后缀名为.nsys-rep的文件;
将后缀名为.nsys-rep的文件导出到sqlite数据库,生成后缀名为.sqlite的数据库;
在数据库内通过表NVTX_EVENT可以得到每次迭代训练各事件发生的初始时间t i start 和结束时间t i end ;
基于所述初始时间以及所述结束时间,根据以下公式计算模型训练不同阶段的平均时间:
其中,N为迭代次数,获得平均模型迭代训练时间T 1 ave ,平均模型前传时间T 2 ave ,平均模型梯度清除时间T 3 ave ,平均模型反向传播时间T 4 ave ,平均梯度裁剪或者缩放时间T 5 ave ,平均模型参数更新时间T 6 ave ;
吞吐率计算公式如下:
其中,batchsize为数据集批次大小;
每个迭代通信的总时间的计算公式如下:
其中,t j com_start 表示每次迭代训练时第j个核函数的通信初始时间,t j com_end 表示每次迭代训练时第j个核函数的通信结束时间,M为每次迭代训练包含通信的核函数总个数。
本实施例在分布式神经网络模型训练过程中收集模型训练内存、训练时间和通信等多个方面信息,计算获得模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间等指标,并以图表、柱状图的形式进行可视化展示,比较分布式神经网络模型的指标,以进一步进行优化,获得第二性能指标,并选择吞吐率最高的分布式神经网络模型作为最优分布式神经网络模型。
所述基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数包括以下步骤:
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与所述模型训练不同阶段的平均时间,选择对应的所述分布式优化算法;
具体的,通过查看各分布式神经网络模型训练中不同部分占用的内存和模型训练不同时期的时间,可以帮助选择更合适的分布式优化算法,以充分利用现有的内存和计算资源。例如零冗余优化算法设置有三种模式,分别是Zero1、Zero2和Zero3。Zero1代表划分优化器状态到每个计算节点,可以减少优化器占用内O 5 ;Zero2代表划分优化器状态和梯度到每个计算节点,可以同时减少优化器占用内存O 5 和梯度参数占用内存O 4 ;Zero3代表划分优化器状态,梯度和模型参数到每个计算节点,可以同时减少模型训练内存峰值O 6 ,梯度参数占用内存O 4 ,模型占用内存O 1 ,三种设置方式均可以减少模型训练内存峰值O 6 。零冗余优化算法在减少内存的同时也会增加网络模型迭代训练时间T 1 ave ,通过比较二者的折中可以选择一个合适的分布式优化算法。
基于各所述分布式神经网络模型的所述每个迭代通信的总时间与所述模型训练不同阶段的平均时间,调整对应的所述分布式策略并行度;
具体的,通过比较每个迭代通信的总时间占平均网络模型迭代训练时间的比例,可以发现此时通信是否成为瓶颈,模型并行是对通信要求最高的分布式策略,数据并行次之,流水线并行要求最低。模型并行尽量在设备内进行通信,模型并行度MP小于等于同一设备内GPU个数。在模型并行度MP固定情况下,调整数据并行度DP和流水线并行度PP,如果每个迭代通信的总时间占平均网络模型迭代训练时间比例过高,可以适当降低数据并行度DP,提高流水线并行度PP,通过调整分布式策略并行度一定程度上可以改变对通信资源的利用方式,使得平均网络模型迭代训练时间T 1 ave 减少。
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与当前计算节点的显存大小,调整对应的所述训练参数。所述训练参数包括数据集批次大小。
具体的,根据吞吐率的大小可以比较不同分布式策略下的计算效率,通常情况下是选择吞吐率最高的分布式策略,通过增大数据集批次大小(batchsize)可以提高吞吐率,但同时也会增大激活值占用内存O 3 和模型训练内存峰值O 6 ,针对大模型训练,显存长时间处于满负载机器设备容易发生故障。通过比较模型训练内存峰值O 6 和当前计算节点的显存大小,选择一个合适数据集批次大小。
在其中一个实施例中,所述分布式策略并行度包括数据并行度、流水线并行度以及模型并行度;
所述数据并行度、所述流水线并行度以及所述模型并行度满足:
N=数据并行度×流水线并行度×模型并行度
其中,N为训练过程中计算节点的个数,也即分布式训练所需的GPU个数。当只有一种分布式策略并行度大于1,则为单一的分布式策略,有两种及其以上的分布式策略大于1,则为混合并行。例如当所述数据并行度和所述流水线并行度都为1,所述模型并行度大于1,则为模型并行的分布式神经网络模型。
在其中一个实施例中,所述分布式神经网络模型为数据并行的分布式神经网络模型。数据并行将训练数据划分为多个部分,并将每个部分分配给不同的计算节点。每个节点独立地处理其分配的数据子集,并计算梯度,通过聚合各个节点的梯度,更新模型参数,这种策略适用于大规模数据集和较简单的模型。
如图4所示,使用所述数据集对数据并行的分布式神经网络模型进行训练包括以下步骤:
步骤S301,将所述数据集分割成多个批次数据集;
步骤S302,在每个计算节点上复制所述分布式神经网络模型,获得模型副本;
步骤S303,在每一轮迭代训练中,将同一所述批次数据集中不同的数据子集输入至各所述计算节点上的所述模型副本,进行独立的前向传播和反向传播计算,生成各所述计算节点的梯度;
步骤S304,聚合各所述计算节点的梯度,计算全局模型参数;
步骤S305,基于所述全局模型参数,更新各所述计算节点上的模型参数;
步骤S306,重复迭代训练过程,直至达到预定停止条件。例如达到最大迭代次数或达到收敛条件。
在其中一个实施例中,所述分布式神经网络模型为流水线并行的分布式神经网络模型;流水线并行将模型的不同层分配到不同的计算节点上,并按顺序连接起来形成流水线结构。输入数据在流水线中依次通过不同的节点,每个节点负责执行其分配层的计算。通过并行执行不同的计算阶段,可以加快整体模型的处理速度。然而,流水线并行需要进行跨节点通信来传递数据和中间结果,因此节点之间的通信开销可能会成为性能瓶颈。
如图5所示,所述使用所述数据集对流水线并行的分布式神经网络模型进行训练包括以下步骤:
步骤S401,将所述数据集分割成多个批次数据集,并将各所述批次数据集平均分成多个微批次数据子集;
步骤S402,将所述模型划分为若干个模型阶段;其中,各所述模型阶段至少由一个网络层组成,每个计算节点用于执行至少一个所述模型阶段;
步骤S403,在每一轮迭代训练中,当前计算节点将前一计算节点的输出结果作为输入,进行独立的前向传播和反向传播计算,生成本地梯度;其中,同一所述批次数据集的各所述微批次数据子集依次输入至第一个计算节点进行计算;
步骤S404,基于所述本地梯度,更新本地计算节点上的模型参数;
步骤S405,重复迭代训练过程,直至达到预定停止条件。例如达到最大迭代次数或达到收敛条件。
在其中一个实施例中,所述分布式神经网络模型为模型并行的分布式神经网络模型;模型并行将模型的不同部分分配给不同的计算节点,这种策略可以应对模型过大而无法适应单个节点内存的情况。每个节点负责计算其分配的模型部分的前向传播和反向传播。在前向传播期间,需要进行跨节点通信来传递必要的中间结果。在反向传播期间,各个节点计算其负责的部分的梯度,并通过通信协作来聚合梯度以更新模型参数。
如图6所示,所述使用所述数据集对模型并行的分布式神经网络模型进行训练包括以下步骤:
步骤S501,将所述数据集分割成多个批次数据子集;
步骤S502,将张量操作计算量大于预设值的网络层划分为N个部分,并将各所述部分分别复制到一个计算节点中,其余网络层复制到每个计算节点;
步骤S503,在每一轮迭代训练中,每个计算节点使用同一所述批次数据子集和本地模型进行独立的前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
步骤S504,基于所述本地梯度,更新本地计算节点上的模型参数;
步骤S505,重复迭代训练过程,直至达到预定停止条件。例如达到最大迭代次数或达到收敛条件。
在其中一个实施例中,所述分布式神经网络模型为基于模型并行和数据并行的混合并行的分布式神经网络模型;混合并行是采取数据并行,流水线并行,模型并行中的两种及以上并行方式。比如数据和模型的混合并行是将模型中的关键层切分为不同部分,分配给不同的计算节点,针对被配了相同部分的计算节点再进行数据并行,将训练数据划分为多个部分,并将每个部分分配给不同的计算节点。在前向传播期间,需要进行跨节点通信来传递必要的中间结果。在反向传播期间,各个节点计算其负责的部分的梯度,并通过通信协作来聚合梯度以更新模型参数。
如图7所示,所述使用所述数据集对基于模型并行和数据并行的混合并行的分布式神经网络模型进行训练包括以下步骤:
步骤S601,将训练数据集分割成多个批次数据集;
步骤S602,将张量操作计算量大于预设值的网络层划分为K个部分,并将各所述部分分别复制到至少两个计算节点中,其余网络层复制到每个计算节点;其中K为所述模型并行度的数量;
步骤S603,在每一轮迭代训练中,具有相同模型的计算节点使用同一所述批次数据集中不同的数据子集和本地模型进行前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
步骤S604,聚合各所述计算节点的梯度,计算全局模型参数;
步骤S605,重复迭代训练过程,直至达到预定停止条件。例如达到最大迭代次数或达到收敛条件。
在其中一个实施例中,使用重计算优化算法对各所述分布式神经网络模型进行优化,优化过程如下:
在各所述分布式神经网络模型的前向传播过程中,选择多个位置梯度检查点;其中,所述位置梯度检查点为预设网络层的中间计算结果;
释放除各所述位置梯度检查点之外的其他计算结果内存;
在各所述分布式神经网络模型的反向传播过程中,通过回溯梯度流确定距各网络层最近的梯度检查点,执行从所述最近的梯度检查点开始的前向计算过程,恢复之前释放的所述其他计算结果;
继续执行反向传播过程,完成模型参数的更新。
具体的,基于PyTorch实现的流水线并行的分布式神经网络模型,可以通过控制torch.distributed.pipeline.sync.Pipe函数内的checkpoint参数来选择是否采用重计算优化算法。当checkpoint参数设置为never时,不会使用重计算优化算法;当设置为except_last时,在除最后一个微批次外,所有微批次都将启用检查点;而当设置为always时,则所有微批次都将启用检查点。
基于Deepspeed实现的流水线并行的分布式神经网络模型,可以在deepspeed.pipe.PipelineModule函数内控制activation_checkpoint_interval参数来选择是否采用重计算优化算法。当该参数为0时,禁用激活检查点;当该参数为1时,启用激活检查点。
在其中一个实施例中,使用零冗余优化算法对各所述分布式神经网络模型进行优化,优化过程如下:
将各所述分布式神经网络模型的模型状态进行划分,其中,所述模型状态包括优化器参数、模型参数以及梯度;
将划分后的所述模型状态分散存储至每个计算节点中;
在模型训练过程中,各所述计算节点相互交换对应的模型状态,实现全局优化。
具体的,通过使用Deepspeed实现数据并行的分布式神经网络模型,可以在配置json参数文件的zero_optimization字段中设置不同的阶段来启用不同的零冗余优化算法,包括Zero1、Zero2和Zero3。Zero1代表划分优化器状态到每个计算节点;Zero2代表划分优化器状态和梯度到每个计算节点;Zero3代表划分优化器状态,梯度和模型参数到每个计算节点。
第二方面,如图8所示,本申请实施例还提供了一种面向深度学习分布式训练测评系统,所述系统包括:
获取模块710,用于获取深度学习模型的数据集,并对所述数据集进行预处理;
搭建模块720,用于基于深度学习框架搭建单机神经网络模型;
扩展模块730,用于将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
训练模块740,用于将分布式优化算法添加至各所述分布式神经网络模型中,并设置相应的分布式策略并行度以及训练参数,使用所述数据集对各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;
优化模块750,用于基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,使用调整后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,得到对应的第二性能指标;
确定模块760,用于基于各所述第二性能指标,确定最优分布式神经网络模型。
在一个实施例中,所述系统还包括可视化模块,所述可视化模块用于以图表、柱状图的形式对各分布式神经网络模型的指标结果进行可视化展示。
第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;优化模块750还用于:
在一个实施例中,所述第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;优化模块750还用于:
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与所述模型训练不同阶段的平均时间,选择对应的所述分布式优化算法;
基于各所述分布式神经网络模型的所述每个迭代通信的总时间与所述模型训练不同阶段的平均时间,调整对应的所述分布式策略并行度;
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与当前计算节点的显存大小,调整对应的所述训练参数。
在一个实施例中,所述分布式策略并行度包括数据并行度、流水线并行度以及模型并行度;
所述数据并行度、所述流水线并行度以及所述模型并行度满足:
N=数据并行度×流水线并行度×模型并行度
其中,N为训练过程中计算节点的个数。
在一个实施例中,训练模块740还用于:
将所述数据集分割成多个批次数据集;
在每个计算节点上复制所述分布式神经网络模型,获得模型副本;
在每一轮迭代训练中,将同一所述批次数据集中不同的数据子集输入至各所述计算节点上的所述模型副本,进行独立的前向传播和反向传播计算,生成各所述计算节点的梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
基于所述全局模型参数,更新各所述计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在一个实施例中,训练模块740还用于:
将所述数据集分割成多个批次数据集,并将各所述批次数据集平均分成多个微批次数据子集;
将所述模型划分为若干个模型阶段;其中,各所述模型阶段至少由一个网络层组成,每个计算节点用于执行至少一个所述模型阶段;
在每一轮迭代训练中,当前计算节点将前一计算节点的输出结果作为输入,进行独立的前向传播和反向传播计算,生成本地梯度;其中,同一所述批次数据集的各所述微批次数据子集依次输入至第一个计算节点进行计算;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在一个实施例中,训练模块740还用于:
将所述数据集分割成多个批次数据子集;
将张量操作计算量大于预设值的网络层划分为N个部分,并将各所述部分分别复制到一个计算节点中,其余网络层复制到每个计算节点;
在每一轮迭代训练中,每个计算节点使用同一所述批次数据子集和本地模型进行独立的前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
在一个实施例中,训练模块740还用于:
将训练数据集分割成多个批次数据集;
将张量操作计算量大于预设值的网络层划分为K个部分,并将各所述部分分别复制到至少两个计算节点中,其余网络层复制到每个计算节点;其中K为所述模型并行度的数量;
在每一轮迭代训练中,具有相同模型的计算节点使用同一所述批次数据集中不同的数据子集和本地模型进行前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
重复迭代训练过程,直至达到预定停止条件。
在一个实施例中,训练模块740还用于:
在各所述分布式神经网络模型的前向传播过程中,选择多个位置梯度检查点;其中,所述位置梯度检查点为预设网络层的中间计算结果;
释放除各所述位置梯度检查点之外的其他计算结果内存;
在各所述分布式神经网络模型的反向传播过程中,通过回溯梯度流确定距各网络层最近的梯度检查点,执行从所述最近的梯度检查点开始的前向计算过程,恢复之前释放的所述其他计算结果;
继续执行反向传播过程,完成模型参数的更新。
在一个实施例中,训练模块740还用于:
将各所述分布式神经网络模型的模型状态进行划分,其中,所述模型状态包括优化器参数、模型参数以及梯度;
将划分后的所述模型状态分散存储至每个计算节点中;
在模型训练过程中,各所述计算节点相互交换对应的模型状态,实现全局优化。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种面向深度学习分布式训练测评方法,其特征在于,所述方法包括:
获取深度学习模型的数据集,并对所述数据集进行预处理;
基于深度学习框架搭建单机神经网络模型;
将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
将分布式优化算法添加至各所述分布式神经网络模型中,并设置对应的分布式策略并行度以及训练参数,使用所述数据集对各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;其中,所述第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;
基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数,使用调整选择后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,在各所述分布式神经网络模型训练过程中计算获得模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间指标,并以图表、柱状图的形式进行可视化展示,比较各分布式神经网络模型的指标,以进一步进行优化,获得对应的第二性能指标;
基于各所述第二性能指标,确定最优分布式神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述基于各所述第一性能指标,选择各所述分布式神经网络模型所对应的所述分布式优化算法、调整所述分布式策略并行度以及所述训练参数包括:
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与所述模型训练不同阶段的平均时间,选择对应的所述分布式优化算法;
基于各所述分布式神经网络模型的所述每个迭代通信的总时间与所述模型训练不同阶段的平均时间,调整对应的所述分布式策略并行度;
基于各所述分布式神经网络模型的所述模型训练不同部分的内存与当前计算节点的显存大小,调整对应的所述训练参数。
3.根据权利要求1所述的方法,其特征在于,所述分布式策略并行度包括数据并行度、流水线并行度以及模型并行度;
所述数据并行度、所述流水线并行度以及所述模型并行度满足:
N=数据并行度×流水线并行度×模型并行度
其中,N为训练过程中计算节点的个数。
4.根据权利要求3所述的方法,其特征在于,所述分布式神经网络模型为数据并行的分布式神经网络模型;使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据集;
在每个计算节点上复制所述分布式神经网络模型,获得模型副本;
在每一轮迭代训练中,将同一所述批次数据集中不同的数据子集输入至各所述计算节点上的所述模型副本,进行独立的前向传播和反向传播计算,生成各所述计算节点的梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
基于所述全局模型参数,更新各所述计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
5.根据权利要求3所述的方法,其特征在于,所述分布式神经网络模型为流水线并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据集,并将各所述批次数据集平均分成多个微批次数据子集;
将所述模型划分为若干个模型阶段;其中,各所述模型阶段至少由一个网络层组成,每个计算节点用于执行至少一个所述模型阶段;
在每一轮迭代训练中,当前计算节点将前一计算节点的输出结果作为输入,进行独立的前向传播和反向传播计算,生成本地梯度;其中,同一所述批次数据集的各所述微批次数据子集依次输入至第一个计算节点进行计算;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
6.根据权利要求3所述的方法,其特征在于,所述分布式神经网络模型为模型并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将所述数据集分割成多个批次数据子集;
将张量操作计算量大于预设值的网络层划分为N个部分,并将各所述部分分别复制到一个计算节点中,其余网络层复制到每个计算节点;
在每一轮迭代训练中,每个计算节点使用同一所述批次数据子集和本地模型进行独立的前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
基于所述本地梯度,更新本地计算节点上的模型参数;
重复迭代训练过程,直至达到预定停止条件。
7.根据权利要求3所述的方法,其特征在于,所述分布式神经网络模型为基于模型并行和数据并行的混合并行的分布式神经网络模型;所述使用所述数据集对各所述分布式神经网络模型分别进行训练包括:
将训练数据集分割成多个批次数据集;
将张量操作计算量大于预设值的网络层划分为K个部分,并将各所述部分分别复制到至少两个计算节点中,其余网络层复制到每个计算节点;其中K为所述模型并行度的数量;
在每一轮迭代训练中,具有相同模型的计算节点使用同一所述批次数据集中不同的数据子集和本地模型进行前向传播和反向传播计算,其中,各所述部分的张量操作计算结果被合并送入下一网络层对应的计算节点进行计算;当所有计算节点完成计算后,生成各所述计算节点的本地梯度;
聚合各所述计算节点的梯度,计算全局模型参数;
重复迭代训练过程,直至达到预定停止条件。
8.根据权利要求3所述的方法,其特征在于,所述分布式优化算法的优化过程如下:
在各所述分布式神经网络模型的前向传播过程中,选择多个位置梯度检查点;其中,所述位置梯度检查点为预设网络层的中间计算结果;
释放除各所述位置梯度检查点之外的其他计算结果内存;
在各所述分布式神经网络模型的反向传播过程中,通过回溯梯度流确定距各网络层最近的梯度检查点,执行从所述最近的梯度检查点开始的前向计算过程,恢复之前释放的所述其他计算结果;
继续执行反向传播过程,完成模型参数的更新。
9.根据权利要求3所述的方法,其特征在于,所述分布式优化算法的优化过程如下:
将各所述分布式神经网络模型的模型状态进行划分,其中,所述模型状态包括优化器参数、模型参数以及梯度;
将划分后的所述模型状态分散存储至每个计算节点中;
在模型训练过程中,各所述计算节点相互交换对应的模型状态,实现全局优化。
10.一种面向深度学习分布式训练测评系统,其特征在于,所述系统包括:
获取模块,用于获取深度学习模型的数据集,并对所述数据集进行预处理;
搭建模块,用于基于深度学习框架搭建单机神经网络模型;
扩展模块,用于将所述单机神经网络模型扩展为多种不同类型的分布式神经网络模型;
训练模块,用于将分布式优化算法添加至各所述分布式神经网络模型中,并设置相应的分布式策略并行度以及训练参数,使用所述数据集对添加分布式优化算法的各所述分布式神经网络模型分别进行训练,获得对应的第一性能指标;其中,所述第一性能指标包括:模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间;
优化模块,用于基于各所述第一性能指标,调整各所述分布式神经网络模型的所述分布式优化算法、所述分布式策略并行度以及所述训练参数,使用调整后的所述分布式优化算法、所述分布式策略并行度以及所述训练参数对各所述分布式神经网络模型分别进行优化训练,在各所述分布式神经网络模型训练过程中计算获得模型训练不同部分的内存、模型训练不同阶段的平均时间、吞吐率、每个迭代通信的总时间指标,并以图表、柱状图的形式进行可视化展示,比较各分布式神经网络模型的指标,以进一步进行优化,获得对应的第二性能指标;
确定模块,用于基于各所述第二性能指标,确定最优分布式神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311335992.9A CN117093871B (zh) | 2023-10-16 | 2023-10-16 | 一种面向深度学习分布式训练测评方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311335992.9A CN117093871B (zh) | 2023-10-16 | 2023-10-16 | 一种面向深度学习分布式训练测评方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093871A CN117093871A (zh) | 2023-11-21 |
CN117093871B true CN117093871B (zh) | 2024-02-13 |
Family
ID=88770235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311335992.9A Active CN117093871B (zh) | 2023-10-16 | 2023-10-16 | 一种面向深度学习分布式训练测评方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093871B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118051779A (zh) * | 2024-04-12 | 2024-05-17 | 清华大学 | 用于大模型训练的参数自动搜索方法、装置及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054449A (ko) * | 2017-11-13 | 2019-05-22 | 한국과학기술원 | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
WO2020248365A1 (zh) * | 2019-06-14 | 2020-12-17 | 平安科技(深圳)有限公司 | 智能分配模型训练内存方法、装置及计算机可读存储介质 |
WO2021007812A1 (zh) * | 2019-07-17 | 2021-01-21 | 深圳大学 | 一种深度神经网络超参数优化方法、电子设备及存储介质 |
CN112464784A (zh) * | 2020-11-25 | 2021-03-09 | 西安烽火软件科技有限公司 | 一种基于混合并行的分布式训练方法 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113515370A (zh) * | 2021-04-28 | 2021-10-19 | 之江实验室 | 一种面向大规模深度神经网络的分布式训练方法 |
CN113642734A (zh) * | 2020-05-11 | 2021-11-12 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的分布式训练方法、装置以及计算设备 |
WO2022267036A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 神经网络模型训练方法和装置、数据处理方法和装置 |
CN116167436A (zh) * | 2023-02-21 | 2023-05-26 | 浙江工商大学 | 一种优化模型划分的神经网络流水线并行训练方法 |
CN116306897A (zh) * | 2023-02-06 | 2023-06-23 | 杭州电子科技大学 | 一种基于ac强化学习的神经网络分布式自动并行训练方法 |
CN116680070A (zh) * | 2023-05-18 | 2023-09-01 | 中山大学 | 基于混合流水线并行的边缘端协同深度神经网络训练方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200019836A1 (en) * | 2018-07-12 | 2020-01-16 | International Business Machines Corporation | Hierarchical parallelism in a network of distributed neural network cores |
-
2023
- 2023-10-16 CN CN202311335992.9A patent/CN117093871B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054449A (ko) * | 2017-11-13 | 2019-05-22 | 한국과학기술원 | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
WO2020248365A1 (zh) * | 2019-06-14 | 2020-12-17 | 平安科技(深圳)有限公司 | 智能分配模型训练内存方法、装置及计算机可读存储介质 |
WO2021007812A1 (zh) * | 2019-07-17 | 2021-01-21 | 深圳大学 | 一种深度神经网络超参数优化方法、电子设备及存储介质 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN113642734A (zh) * | 2020-05-11 | 2021-11-12 | 阿里巴巴集团控股有限公司 | 一种深度学习模型的分布式训练方法、装置以及计算设备 |
CN112464784A (zh) * | 2020-11-25 | 2021-03-09 | 西安烽火软件科技有限公司 | 一种基于混合并行的分布式训练方法 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113515370A (zh) * | 2021-04-28 | 2021-10-19 | 之江实验室 | 一种面向大规模深度神经网络的分布式训练方法 |
WO2022267036A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 神经网络模型训练方法和装置、数据处理方法和装置 |
CN116306897A (zh) * | 2023-02-06 | 2023-06-23 | 杭州电子科技大学 | 一种基于ac强化学习的神经网络分布式自动并行训练方法 |
CN116167436A (zh) * | 2023-02-21 | 2023-05-26 | 浙江工商大学 | 一种优化模型划分的神经网络流水线并行训练方法 |
CN116680070A (zh) * | 2023-05-18 | 2023-09-01 | 中山大学 | 基于混合流水线并行的边缘端协同深度神经网络训练方法 |
Non-Patent Citations (2)
Title |
---|
Research on imblanced data set preprocessing based on deep learning;Wang Fangyu 等;《2021 Asia-Pacific Conference on Communications Technology and Computer Science(ACCTCS)》;第75-79页 * |
基于强化学习的分布式并行策略自动搜索方法研究;吴吉央;《CNKI学位论文》;第2023年卷(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117093871A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dutta et al. | Slow and stale gradients can win the race: Error-runtime trade-offs in distributed SGD | |
CN110533183B (zh) | 流水线分布式深度学习中异构网络感知的任务放置方法 | |
CN117093871B (zh) | 一种面向深度学习分布式训练测评方法和系统 | |
Hu et al. | Distributed inference with deep learning models across heterogeneous edge devices | |
CN114862656B (zh) | 基于多gpu的分布式深度学习模型训练代价的获取方法 | |
US11847533B2 (en) | Hybrid quantum computing network | |
Parthasarathy et al. | DEFER: distributed edge inference for deep neural networks | |
CN113159287A (zh) | 一种基于梯度稀疏的分布式深度学习方法 | |
CN116684420A (zh) | 集群资源调度方法、装置、集群系统和可读存储介质 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
CN109408870A (zh) | 一种基于边界约束的拓扑网格生成方法及电子设备 | |
CN104778088A (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与系统 | |
CN116090568B (zh) | 量子数据与经典浮点型数据的大小关系确定方法及装置 | |
CN111221827A (zh) | 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质 | |
CN106204669A (zh) | 一种基于gpu平台的并行图像压缩感知方法 | |
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
Liu et al. | Online quantification of input model uncertainty by two-layer importance sampling | |
CN109635328A (zh) | 集成电路布局方法以及分布式设计方法 | |
CN110377769A (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
Aliaga et al. | Leveraging data-parallelism in ILUPACK using graphics processors | |
Guo et al. | Parallel adaptive mesh refinement method based on bubble-type local mesh generation | |
Ho et al. | Adaptive communication for distributed deep learning on commodity GPU cluster | |
US11475311B2 (en) | Neural network instruction streaming | |
Song et al. | Scaling parallel 3-D FFT with non-blocking MPI collectives | |
CN115116552A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |