CN116400963A - 一种基于负载均衡的模型自动并行方法、设备及存储介质 - Google Patents
一种基于负载均衡的模型自动并行方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116400963A CN116400963A CN202310306346.3A CN202310306346A CN116400963A CN 116400963 A CN116400963 A CN 116400963A CN 202310306346 A CN202310306346 A CN 202310306346A CN 116400963 A CN116400963 A CN 116400963A
- Authority
- CN
- China
- Prior art keywords
- model
- operator
- cost
- tensor
- load balancing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000004891 communication Methods 0.000 claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 238000003062 neural network model Methods 0.000 claims abstract description 36
- 238000012549 training Methods 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 230000011218 segmentation Effects 0.000 claims abstract description 21
- 238000013210 evaluation model Methods 0.000 claims abstract description 17
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 230000002787 reinforcement Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 239000003814 drug Substances 0.000 description 2
- 238000000329 molecular dynamics simulation Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000543 intermediate Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本发明公开了一种基于负载均衡的模型自动并行方法、设备及存储介质。本发明首先分析影响算子和模型执行性能的关键因素(算子出入度大小、张量的形状以及张量的数据类型),提出了基于算子特征构建性能评估模型的方法,以评估算子计算、通信以及综合代价和模型的训练性能代价;然后,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分方法将神经网络模型快速切分成多个综合代价均衡的子模型,实现粗粒度的划分;最后,基于模型的训练性能评估模型,根据算子间的通信特征,利用基于通信优化的细粒度模型切分和调度方法,针对粗粒度切分好的子模型,进行细粒度的调整,降低跨设备通信张量传输量的大小,以实现全局模型最优化调度。
Description
技术领域
本发明属于分布式计算技术领域,涉及一种基于负载均衡的模型自动并行方法、设备及存储介质。
技术背景
近年来,随着产业的信息化与互联网的兴起,数据规模呈爆炸性增长,全球数据已增长到EB级。海量数据给人工智能领域的发展带来了新的机遇,如何充分利用海量无标注的数据,推动金融、医学、推荐系统、分子动力学等领域的快速发展,已成为工业界和学术界迫切需要解决的问题。深度学习技术因其强大的学习能力可以提取无标注数据的特征和价值,在各个领域已得到广泛应用,改变了人们的生活方式,提高了生产效率,如DeepMind提出的Alphafold借助AI模型强大的学习能力,精准预测蛋白质结构,加速了生物医药领域的发展。
随着数据规模的增大,深度学习模型越来越复杂,参数规模由万级(ResNet)增长到亿级(Bert_large)、万亿级(GPT-3、盘古、悟道2.0、PaML等)。越来越大的训练数据集和模型参数使得AI模型的训练受到了硬件设备性能的限制,单设备已经无法满足这些AI大模型的训练需求。因此,如何利用分布式技术跨设备训练深度学习大模型,已经成为提升模型训练效率、加快AI应用落地速度点关键所在。
当前主流的分布式机器学习系统如PyTorch、TensorFlow和MindSpore等通常将神经网络模型描述为数据流图,通过对数据流图进行切分和调度以实现AI模型的分布式并行执行。在单设备资源满足神经网络模型计算和存储资源需求时,主要采用数据并行(DataParallel)方法加速模型训练,该方法拷贝模型副本到多个设备节点,并将数据集划分为多个数据子集调度到多个设备并行执行。数据并行方法是在数据维度进行并行执行,可解决海量数据训练的问题,但无法应对单设备资源不满足深度学习大模型计算和存储资源需求的场景。因此,对深度学习大模型进行模型并行训练成为必然趋势,即将深度学习大模型切分为多个子模型并调度到不同设备并行执行。
如何为深度学习大模型设计和实现一种模型并行策略,使得深度学习模型分布式并行执行性能最优是模型并行的一个难点问题。当前模型并行策略的设计与实现主要依赖于专家经验,其在设计过程都需要深入了解模型结构特征和设备体系结构,即需要同时具备AI算法、体系结构、分布式并行计算等多个领域知识,这对开发者提出了非常大的挑战,在实际应用场景中AI算法工程师很难设计出较优的模型并行方案,严重影响了AI技术的快速应用与发展。比如Wu和Sutskever等人通过研究网络各层的计算特性,提出的按层横向划分或跨层纵向划分方法,将网络中LSTM层、Attention层和SoftMax层分别调度至不同的计算设备上执行。Krizhevsky根据卷积层和全连接层各自的特征制定混合并行策略,对参数量小、计算量大的卷积层采用数据并行策略,对参数量大、计算量小的全连接层采用模型并行策略。上述方法需要开发者深入了解模型特征和设备体系结构。此外,随着模型规模的增大,分布式策略的组合数呈指数级增长,搜索空间非常大,基于专家经验的方法很难快速设计与实现性能较优的模型并行策略。
为了提升模型分布式并行策略的设计、实现与执行的效率。学术界和工业界提出了深度学习模型自动并行方法,以自动将大模型切分为多个小模型,并调度到不同设备执行。目前主要有基于机器学习的模型自动并行方法和基于图算法的模型自动并行方法。
基于机器学习的模型自动并行方法通过提取神经网络模型和设备集群拓扑结构特征,利用机器学习算法的学习能力,以模型最优化调度和执行为目标,为深度学习模型寻找最优分布式并行策略。比如,Google团队提出了基于强化学习的模型自动并行框架ColorRL和Hierarchical,通过提取AI模型和训练设备的特征切分与调度模型,并基于反馈调整强化学习的参数,以此寻找最优的分布式训练策略。但上述方法需要频繁在真实环境下采样,使得搜索过程代价高昂。随后,MIT的Ravichandra等人提出了Placeto,利用图嵌入方法(Graph Embedding)学习模型的拓扑结构信息,使得策略具有一定的可移植能力。Placeto在搜索过程中引入执行模拟器替代真实环境,加快了策略的搜索速度。随后,Wang等人在Placeto的基础上通过改变模型的遍历顺序,发现反向拓扑排序的输入顺序能够更好的帮助网络学习到待调度模型中父节点和子节点的关系,从而提升强化学习模型的收敛效果。Liu J等人提出了HeterPS框架,其根据DNN神经网络模型不同层的特征,利用强化学习将每一层调度适合的训练设备上,在满足吞吐量约束的前提下最小化整体的成本开销。Wu等人提出了一种基于强化学习的自适应分布式并行训练方法Trinity,利用近端策略优化方法,扩展了策略网络的离线学习能力,并设计了执行模拟器预测指定策略下的单步执行时间,以此加快策略的搜索速度。
基于图算法的自动并行方法成为当前另一种主流方法,相比基于机器学习的模型自动并行方法,由于不需要多次迭代,可快速搜索模型并行策略。Jia等人提出了模型自动并行框架OptCNN,其基于动态规划的思想利用代价评估模型在搜索空间内快速搜索最优的并行策略,但其粗粒度的模型划分方式使得搜索到的策略的执行性能提升有限。随后,Jia等人提出了FlexFlow框架,该框架将张量切分为Sample,Operator,Attribute,Parameter四个维度,并基于这些维度建立SOAP高维搜索空间,然后利用马尔可夫链蒙特卡洛算法在该搜索空间内搜索最优的并行策略。Beomyeol等人提出了自动并行框架Baechi,该框架包含拓扑排序、最早开始时间、最小通信量思想的三种图算法,适用性广,搜索速度快,最快能在数十秒内为大部分神经网络模型搜索出模型并行的策略。Zheng等人提出了Alpa框架,其利用整数线性规划方法寻找算子内的张量并行切分方式,并利用动态规划寻找算子间最佳的流水线并行方式,同时实现张量和流水线混合并行。Zeng等人提出了FD-DPS算法,其根据算子属性对计算密集型算子进行张量维度的拆分提高并行性能,然后基于动态优先级确定关键路径并实现关键路径上算子的最优化调度。
综上所述,目前算子级的模型自动并行方法主要有基于机器学习的模型自动并行方法和基于图算法的模型自动并行方法。其中,基于机器学习的模型自动并行方法依赖于机器学习算法的学习和参数的迭代更新,其求解过程需要耗费大量的计算资源,且计算时间长;基于图算法的模型自动并行方法虽然求解速度较快,但需要综合考虑算子结构、执行性能、设备拓扑结构等多方面特征,采用动态规划、最短路径等算法进行搜索,搜索到的分布式并行策略由于受模型结构、设备拓扑等多方面影响,搜索难度大、可移植性差。当前这两类主流的方法对于结构复杂、参数规模较大的模型存在搜索过程复杂,效率低下的问题。因此,本发明研究上述不足,设计并实现一种基于负载均衡的模型自动并行方法。
发明内容
本发明设计并实现一种基于负载均衡的模型自动并行方法、设备及存储介质,为大规模复杂神经网络提供最优的模型并行训练方法。
本发明的总体技术构思:本发明首先基于神经网络模型结构、计算属性等维度,分析影响算子性能的关键特征(如算子的出入度大小、张量的形状及张量的数据类型),提出了基于算子特征构建性能评估模型的方案,以评估模型中算子以及模型训练性能的代价。然后以算子代价开销为指导,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分方案对神经网络进行粗粒度的切分,将模型快速切分成多个综合代价均衡的子模型。最后,提出了基于通信优化的细粒度模型切分与调度方案,针对粗粒度划分好的子模型,以减少跨设备通信张量传输为目标进行细粒度的调整,以实现全局模型最优化调度。
基于上述总体技术构思,本发明的第一方面,提供了一种基于负载均衡的模型自动并行方法,包括以下步骤:
步骤1:基于神经网络模型结构、计算属性等维度,量化分析影响算子执行性能的关键特征,设计基于算子特征构建性能评估模型的方案,以评估模型中算子的代价以及模型的训练性能代价。
然后,分析影响算子执行性能的因素,提取出算子出入度大小、输入输出的张量形状以及张量的数据类型等关键特征。并利用算子出入度大小、输入输出张量的形状以及张量的数据类型构建算子的通信代价S;利用算子的输入通信代价Sin和输出通信代价Sout建立算子的计算代价C;利用算子的通信代价S和计算代价C以及访存密集型算子的占比λ构建模型的综合代价T。
步骤2:根据神经网络模型的结构特征,以步骤1中性能评估生成的代价开销为指导,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分方案实现神经网络模型的粗粒度切分,将神经网络模型快速切分为多个性能代价均衡的子模型。
1)首先,根据算子的综合代价,计算神经网络模型中所有算子的综合代价之和;
2)然后,根据综合代价之和以及集群中计算设备的数量,计算每个计算设备平均所需承担的代价并作为负载阈值;
3)最后,从神经网络模型的结构特征出发,以降低跨设备张量传输为目标,根据拓扑排序的顺序对神经网络模型进行逐层遍历,并依次放入各个计算设备之上,直至该计算设备达到负载阈值后切换到下一个空闲的计算设备,以此将模型快速切分成多个综合代价均衡的子模型。
步骤3:根据算子间通信特征,设计基于通信优化的细粒度模型切分与调度方案,利用修正阈值调整设备负载上限,并针对粗粒度切分好的子模型,以减少跨设备通信张量传输为目标进行细粒度调整,以实现全局模型最优化调度。
1)首先,对当前所有跨设备传输的张量进行排序并取出代价最大的传输张量。
2)然后,基于代价最大的传输张量和修正后的负载阈值,对子模型中局部算子的调度信息进行调整,以减小跨设备传输的张量大小和模型训练性能代价开销。
3)最后,重复上述过程直至达到指定调整次数或者模型中的所有张量都不满足向前调整和向后调整条件。
本发明的第二方面提供了一种基于负载均衡的模型自动并行设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述一种基于负载均衡的模型自动并行方法。
本发明的第三方面提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述一种基于负载均衡的模型自动并行方法。
本发明具有的有益效果是:
本发明基于神经网络模型结构、计算属性等维度,分析影响算子执行性能的关键特征,根据算子的出入度大小、输入输出张量形状以及张量的数据类型等特征构造算子的通信代价、计算代价和综合代价的评估模型以及模型的训练性能评估模型,无需在真实环境下采集数据。根据模型中算子间的依赖关系,利用基于拓扑排序的按层划分实现神经网络模型的粗粒度切分并维持各设备综合代价的负载均衡,加快了模型切分和调度的速度。基于通信优化的细粒度模型切分与调度方案,以最小化跨设备传输张量为目标对模型的局部调度策略进行细粒度的调整,有效地提升策略的执行性能。
附图说明
图1是直接关联算子和间接关联算子的示意图;
图2是基于拓扑排序的按层划分方案的示意图;
图3是向前调整和向后调整的示意图;
图4是一种基于负载均衡的模型自动并行设备的结构图。
具体实施方式
下面将结合附图和具体实施步骤对本发明做出进一步说明:
在一实施例中,本申请所涉及的一种基于负载均衡的模型自动并行方法,包括以下步骤:
步骤1:基于神经网络模型结构、计算属性等维度,量化分析影响算子执行性能的关键特征,并提出了基于算子特征构建性能评估模型的方案,以评估模型中算子的代价以及模型的训练性能代价。
作为优选例:
首先,提取神经网络模型结构并组建设备资源组,抽象计算图和设备拓扑图/>在计算图/>中,顶点O表示神经网络算子,E表示顶点间的有向连边;设备拓扑图/>中顶点Q表示计算设备(例如CPU或GPU)。边/>表示设备qi和设备qj间的连接(如NV Link,PCI-E或其他连接方式)。
然后,分析影响算子执行性能的因素,提取出算子出入度大小、输入输出的张量形状以及张量的数据类型等关键特征,并基于这些关键特征定义算子的通信、计算以及综合的代价模型,具体定义如下:
本实施例中算子通信代价:由于通信代价与算子间的张量传输密切相关,因此,通信代价利用该算子所有输出张量的形状与张量的数据类型大小计算得到,如公式(1)所示:
其中K表示输出张量的数量,H1,H2,...,Hh表示张量h维大小,sizeof(type)表示获取数据格式为type的字节数大小。
本实施例中算子计算代价:算子计算代价是指张量计算所产生的开销,其体现了张量转化的过程。因此,计算代价基于算子的输入张量和输出张量计算得到,如公式(2)所示:
其中Sin和Sout分别表示算子的输入和输出张量总和,当输入张量和输出张量之间的变化较大时,表示算子的计算过程也复杂则算子的计算代价也越大,R表示代价转换率。
本实施例中算子综合代价:算子综合代价是指结合算子本身结构特征以及其计算代价和通信代价综合评估算子的指标,如公式(3)所示:
其中S表示公式(1)计算得到的算子通信代价;C表示公式(2)计算得到的算子计算代价;∑Ppara表示访存密集型算子总数,∑Pcomp表示计算密集型算子总数;λ是比例系数其表示访存密集型算子总是占访存和计算密集型算子总和的比例。基于该算子综合代价的计算方案,不同结构特征的模型可以根据其自身特点自动生成符合其模型特点的算子综合代价。
然后基于这些代价模型进一步建立策略的训练性能评估模型。
在一些实施例中,训练性能评估模型:训练性能评估模型由算子的计算代价和模型中跨设备传输张量的大小计算得到,如公式(4)所示:
其中R表示分布式并行策略,E(R;G,D)表示在给定计算图G和计算设备图D的情况下,策略R的分布式训练性能评估模型。N表示模型中算子的数量、M表示模型中算子间传输张量的数量;Cn表示第n个算子的计算代价,Ym表示第m个张量的大小,ζ(·)方法表示判断张量是否需要跨设备传输,若需要跨设备传输则为1,否则为0。
步骤2:根据神经网络模型的结构特征,以步骤1中性能评估方法生成的代价开销为指导,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分方案实现神经网络模型的粗粒度切分,将神经网络模型快速切分为多个综合代价均衡的子模型。
对于大多数基于数据流图的神经网络框架而言,算子是神经网络模型计算与调度的基本单位。每一个算子通过接收与其直接相连的算子的输出张量,基于这些张量计算得到新的张量,并将这些新的张量输出至与其直接相连的算子中,以此类推,逐层推动神经网络模型的计算。为了能清晰表述算子间的结构依赖关系,做了以下定义:
本实施例中直接关联算子:若算子L与算子P存在直接依赖关系,则算子L和算子P互为直接关联算子。
本实施例中间接关联算子:若算子L与算子P不存在直接依赖关系,则算子L和算子P互为间接关联算子
如图1所示,对于算子P而言,与其直接相连的灰色算子是其直接关联算子,与其间接相连的黑色算子是其间接关联算子。
基于上述模型的结构特征,步骤2基于算子的代价开销和负载均衡策略,利用基于拓扑排序的按层划分方法对神经网络模型进行按层切分和调度,尽量将算子及其直接关联算子快速放置在同一计算设备上从而减小关键张量对模型的计算产生影响,如图2所示。
作为优选例:
首先,利用步骤1中基于算子特征构建性能评估模型的方法生成每一个算子的计算代价和通信代价以及综合代价;
然后,计算整个模型中各个算子综合代价之和并除以计算设备的数量得到每个计算设备的平均所需承担的负载,将其作为设备的负载阈值。
负载阈值的计算方法如式(5)所示:
其中,Tn表示第n个算子的综合代价,Z表示计算设备的数量,所以A为负载阈值,表示当前模型在各个设备上需要承担的平均综合代价。
最后,从模型的结构特征出发,以降低跨设备张量传输为目标,根据拓扑排序的顺序对神经网络模型进行逐层遍历并依次放入各个计算设备之上直至该计算设备达到负载阈值A后切换到下一个空闲的计算设备,以此将模型快速切分成多个综合代价均衡的子模型。
步骤3:根据算子间通信特征,提出了基于通信优化的细粒度模型切分与调度方案,利用修正阈值调整设备负载上限,并针对粗粒度切分好的子模型,以减少跨设备通信张量传输为目标进行细粒度调整,以实现全局模型最优化调度。
根据步骤1提出的模型训练性能评估模型可以看出算子间的跨设备通信张量是影响模型执行性能的关键因素。因此,为了能对步骤2中利用基于拓扑排序的按层划分方案划分后的粗粒度子模型进行调整优化,以尽量减少算子间的跨设备通信张量的传输。
本实施例中提出了基于通信优化的细粒度模型切分与调度方案。
首先,对当前所有跨设备传输的张量进行排序并取出代价最大的传输张量tij,表示算子oi传输至算子oj的张量,以其作为调整对象。
然后,基于目标张量tij进行向后调整或者向前调整以减小跨设备传输的张量大小,其中向后调整是指把张量tij所指向的算子放置到张量tij所属算子所在设备上,而向前调整是指把张量tij所属的算子放置到张量tij所指向算子所在设备上。
以张量tij进行向后调整为例,计算把算子oj放置在算子oi所在的设备上后将会产生的跨设备张量传输总代价开销Sj,再比较张量tij和新放置方式将会产生的总代价开销Sj的大小,若Sj大于tij且算子oi所在设备的代价负载没有超过修正阈值则将算子oj放置在算子oi所在的设备之上,否则再基于以上思想进行向前调整的判断,如果目标张量tij不符合向前调整或者向后调整的判断,则保持原状。
本实施例中修正阈值是为了提高初步划分好后的模型的可调整性而设立的负载均衡上限。其计算方法如公式(6)所示,其中A表示公式(5)计算得到的负载阈值,ε表示修正阈值的幅度系数(ε≥1),通常基于经验得到,设备负载压力小可以将ε设置的大些,以给予算法更多的调整空间;设备负载压力大可以将其设置的小些,以控制设备负载均衡,避免出现OOM(内存溢出)的情况。
A*=A×ε#(6)
最后,重复上述过程直至达到指定调整次数或者模型中的所有张量都不满足向前调整和向后调整条件时。
向后调整如图3中(1)所示,算子o1放置在设备1上,算子o2、o3、o4放置在设备2之上,t12表示被选中的从设备1的算子o1传输至设备2的算子o2的跨设备传输张量。如果设备1的负载没有达到修正阈值且满足cost(t12)>cost(t23)+cost(t24),则表示将算子o2放置在设备1上可以降低模型内部跨设备传输张量所需的总代价。同理,向前调整如下图3中(2)所示,算子o1、o2、o3放置在设备1上,算子o4放置在设备2之上,t34表示被选中的从设备1的算子o3传输至设备2的算子o4的跨设备传输张量。如果设备1没有达到修正阈值且满足cost(t13)+cost(t23)>cost(t34),则表示将算子o3放置在设备2上可以降低模型内部跨设备传输张量所需的总代价。
根据上述步骤,本实施例提出的基于负载均衡的模型自动并行方法具体描述如算法1所示:
其中,第1行中generate_cost(G)方法表示基于代价建模方法生成计算图G中所有算子的通信代价、计算代价以及综合代价。
第2行表示计算每个设备将被分配的平均负载。
第3-7行描述了步骤2中基于拓扑排序的按层划分方法,topo_order(G*)表示获取G*的拓扑排序顺序,is_placeable(node,d,cost_per_device)方法表示将算子node放置在设备d上是否会超过设备的平均负载大小,place(node,d)表示将算子node放置在设备d上;
第8-27行描述了步骤3中基于通信优化的细粒度模型切分与调度方案,其中MAX表示调整的最大次数,get_all_out_tensors(G*)方法表示获取当前计算图G*中所有跨设备传输张量的列表集合,sort_by_tensor_size(tensor_list)方法表示对tensor_list集合按张量大小进行排序,其中16-27行描述了进行向后调整和向前调整的判断过程,即如果新产生的跨设备传输张量的大小小于当前目标张量target_tensor的大小时则将target_tensor张量首尾两端的算子放置一个计算设备上。
本申请又一实施例示出的一种基于负载均衡的模型自动并行装置;该装置包括:
代价计算及评估模块,基于神经网络模型结构、计算属性等维度,量化分析影响算子执行性能的关键特征,设计基于算子特征构建性能评估模型的方案,以评估模型中算子的代价以及模型的训练性能代价。
切分模块,根据神经网络模型的结构特征,以代价开销为指导,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分实现神经网络模型的粗粒度切分,将神经网络模型快速切分为多个性能代价均衡的子模型。
最优化调度模块,根据算子间通信特征,设计基于通信优化的细粒度模型切分与调度方案,利用修正阈值调整设备负载上限,并针对所得子模型,以减少跨设备通信张量传输为目标进行细粒度调整,以实现全局模型最优化调度。
本发明的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的,其中计算机程序用于执行基于负载均衡的模型自动并行方法。从硬件层面而言,如图4所示,为本发明的基于负载均衡的模型自动并行设备的硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,所述设备通常还可以包括其他硬件,以便在硬件层面进行的扩展。另一方面,本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序执行用于基于负载均衡的模型自动并行方法。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (9)
1.一种基于负载均衡的模型自动并行方法,其特征在于该方法包括以下步骤:
(1)基于神经网络模型结构、计算属性等维度,量化分析影响算子执行性能的关键特征,设计基于算子特征构建性能评估模型的方案,以评估模型中算子的代价以及模型的训练性能代价;
(2)根据神经网络模型的结构特征,以步骤(1)中代价开销为指导,以各设备综合代价负载均衡为目标,利用基于拓扑排序的按层划分实现神经网络模型的粗粒度切分,将神经网络模型快速切分为多个性能代价均衡的子模型;
(3)根据算子间通信特征,设计基于通信优化的细粒度模型切分与调度方案,利用修正阈值调整设备负载上限,并针对步骤(2)所得子模型,以减少跨设备通信张量传输为目标进行细粒度调整,以实现全局模型最优化调度。
2.根据权利要求1所述的一种基于负载均衡的模型自动并行方法,其特征在于:步骤1中所述的基于算子特征构建性能评估模型的方案是指:利用算子的出入度大小、输入和输出张量的形状和张量的数据类型,构建算子的计算代价、通信代价和综合代价的评估模型,以及模型的训练性能评估模型。
3.根据权利要求2所述的一种基于负载均衡的模型自动并行方法,其特征在于:步骤1中基于算子特征的代价建模无需在真实环境下采集数据,只需基于算子特征便可生成模型的算子代价。
4.根据权利要求2所述的一种基于负载均衡的模型自动并行方法,其特征在于:步骤2中以每个设备平均所需承担的综合代价为负载阈值,基于该阈值对模型进行粗粒度的划分。
5.根据权利要求1所述的一种基于负载均衡的模型自动并行方法,其特征在于:步骤3中所述的基于通信优化的细粒度模型切分与调度方案具体为:
1)对当前所有跨设备传输的张量进行排序并取出代价最大的传输张量;
2)基于代价最大的传输张量和修正后的负载阈值,对子模型中局部算子的调度信息进行调整,以减小跨设备传输的张量大小和模型训练性能代价开销;
3)重复上述过程直至达到指定调整次数或者模型中的所有张量都不满足向前调整和向后调整条件。
6.根据权利要求5所述的一种基于负载均衡的模型自动并行方法,其特征在于:
所述向后调整是指把张量所指向的算子放置到张量所属算子所在设备上;
所述向前调整是指把张量所属的算子放置到张量所指向算子所在设备上。
7.根据权利要求1所述的一种基于负载均衡的模型自动并行方法,其特征在于:步骤3中利用修正阈值调整设备负载上限是指:在负载阈值的基础上设置负载的修正阈值,根据模型的实际情况调整负载上限,提高子模型的可调整性,以实现细粒度的划分和调整。
8.一种基于负载均衡的模型自动并行设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述权利要求1-7任一所述的一种基于负载均衡的模型自动并行方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一所述的一种基于负载均衡的模型自动并行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310306346.3A CN116400963A (zh) | 2023-03-27 | 2023-03-27 | 一种基于负载均衡的模型自动并行方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310306346.3A CN116400963A (zh) | 2023-03-27 | 2023-03-27 | 一种基于负载均衡的模型自动并行方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116400963A true CN116400963A (zh) | 2023-07-07 |
Family
ID=87008367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310306346.3A Pending CN116400963A (zh) | 2023-03-27 | 2023-03-27 | 一种基于负载均衡的模型自动并行方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116400963A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117455015A (zh) * | 2023-12-20 | 2024-01-26 | 摩尔线程智能科技(成都)有限责任公司 | 一种模型优化的方法、装置、存储介质及电子设备 |
-
2023
- 2023-03-27 CN CN202310306346.3A patent/CN116400963A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117455015A (zh) * | 2023-12-20 | 2024-01-26 | 摩尔线程智能科技(成都)有限责任公司 | 一种模型优化的方法、装置、存储介质及电子设备 |
CN117455015B (zh) * | 2023-12-20 | 2024-04-02 | 摩尔线程智能科技(成都)有限责任公司 | 一种模型优化的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110533183B (zh) | 流水线分布式深度学习中异构网络感知的任务放置方法 | |
US20200293838A1 (en) | Scheduling computation graphs using neural networks | |
CN113128702A (zh) | 一种基于强化学习的神经网络自适应分布式并行训练方法 | |
CN113361680B (zh) | 一种神经网络架构搜索方法、装置、设备及介质 | |
CN114756383A (zh) | 一种分布式计算方法、系统、设备及存储介质 | |
CN103164742A (zh) | 一种基于粒子群优化神经网络的服务器性能预测方法 | |
Zhao et al. | Edgeml: An automl framework for real-time deep learning on the edge | |
CN111461286B (zh) | 基于进化神经网络的Spark参数自动优化系统和方法 | |
Zhang et al. | Autosync: Learning to synchronize for data-parallel distributed deep learning | |
CN115115052A (zh) | 一种基于遗传算法的神经网络自适应分布式并行训练方法 | |
CN113822173A (zh) | 基于节点归并和路径预测的行人属性识别训练加速方法 | |
CN116400963A (zh) | 一种基于负载均衡的模型自动并行方法、设备及存储介质 | |
Patil et al. | Pareto dominance based multiobjective cohort intelligence algorithm | |
CN111967271A (zh) | 分析结果的生成方法、装置、设备及可读存储介质 | |
CN113487029A (zh) | 一种可移植的神经网络分布式并行策略搜索方法 | |
Liu et al. | Gnnsampler: Bridging the gap between sampling algorithms of gnn and hardware | |
Li et al. | Adaptivegcn: Efficient gcn through adaptively sparsifying graphs | |
Wei et al. | Leader population learning rate schedule | |
Violos et al. | Predicting resource usage in edge computing infrastructures with CNN and a hybrid Bayesian particle swarm hyper-parameter optimization model | |
Mishra et al. | Leveraging augmented intelligence of things to enhance lifetime of UAV-enabled aerial networks | |
CN116755876A (zh) | 一种大模型混合并行训练加速方法和系统 | |
CN115952856A (zh) | 一种基于双向分割的神经网络流水线并行训练方法及系统 | |
CN116629352A (zh) | 一种亿级参数寻优平台 | |
Guo et al. | Hierarchical design space exploration for distributed CNN inference at the edge | |
Zhang et al. | Expediting distributed DNN training with device topology-aware graph deployment |
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 |