CN116302539A - 一种边缘计算场景下的模型并行方法、系统、设备及介质 - Google Patents
一种边缘计算场景下的模型并行方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116302539A CN116302539A CN202310281020.XA CN202310281020A CN116302539A CN 116302539 A CN116302539 A CN 116302539A CN 202310281020 A CN202310281020 A CN 202310281020A CN 116302539 A CN116302539 A CN 116302539A
- Authority
- CN
- China
- Prior art keywords
- model
- node
- equipment
- training
- edge
- 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 61
- 238000012549 training Methods 0.000 claims abstract description 70
- 238000004364 calculation method Methods 0.000 claims abstract description 42
- 238000003860 storage Methods 0.000 claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 17
- 238000005457 optimization Methods 0.000 claims abstract description 17
- 238000003062 neural network model Methods 0.000 claims abstract description 14
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 4
- 239000010410 layer Substances 0.000 claims description 59
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 230000006854 communication Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 27
- 239000012634 fragment Substances 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004088 simulation Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 claims description 11
- 238000011176 pooling Methods 0.000 claims description 9
- 239000002243 precursor Substances 0.000 claims description 9
- 239000011229 interlayer Substances 0.000 claims description 6
- 238000010845 search algorithm Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000007958 sleep Effects 0.000 claims description 3
- 230000005059 dormancy Effects 0.000 claims description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 2
- 238000009826 distribution Methods 0.000 abstract description 8
- 239000000463 material Substances 0.000 abstract description 3
- 238000004904 shortening Methods 0.000 abstract description 2
- 230000011218 segmentation Effects 0.000 description 7
- 238000005192 partition Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 125000002015 acyclic group Chemical group 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种边缘计算场景下的模型并行方法、系统、设备及介质,其方法包括:计算所有可能参与训练的边缘设备的计算和存储能力的综合评分;获取待训练神经网络模型的参数及所有拓扑排序;求每种拓扑排序下的模型的最优划分解;选择最终的模型拆分方案;其系统、设备及介质用于边缘计算场景下的模型并行方法;方法在设置启发式模型拆分算法优化目标时,考虑了边缘设备内存小的实际情况,在选择参与训练的边缘设备时更大概率选择内存大的设备参与训练;在设置启发式模型拆分算法优化目标时,还将使计算时间最小的模型分片训练时长的最优分布特性考虑进去,减小了模型进行流水化模型并行训练的迭代时间,具有缩短训练时间,节约人力物力的特点。
Description
技术领域
本发明属于深度学习分布式训练技术领域,尤其涉及一种边缘计算场景下的模型并行方法、系统、设备及介质。
背景技术
物联网,被称为继计算机和互联网之后,世界信息产业的第三次浪潮。2018年,全球物联网连接数就已达到约80亿个,这些物联网设备产生大量的数据。在传统云计算架构中,这些数据需要集中传输到云端进行处理,这会加大网络负载,造成传输拥堵和数据处理的延迟。在这种情况下,一种新型计算架构——边缘计算——应运而生。边缘计算是指在靠近物或数据源头的一侧,就近提供计算、存储等服务。相比数据集中式的云计算模型,边缘计算在网络的边缘处理数据,这样能够降低网络带宽负载,减少请求响应时间和提升电池续航能力。同时,边缘计算因在靠数据源头的一侧进行,可以保证数据的安全性和私密性。这一优点使得对在边缘网络设备上使用深度学习技术的需求逐日增大。这是因为随着训练数据量的增多,深度学习所训练的模型会变得更好,但在许多领域,法律规定不允许共享与个人相关的数据。在边缘设备上使用深度学习技术,可以解决这一困境。训练深度神经网络需要大量的计算资源,比如计算设备的算力、内存和显存等,边缘设备的内存不大,这可能导致深度神经网络的训练难以进行;且边缘设备的算力不足,这将导致深度神经网络的训练时间过长。解决上述难点,对在边缘计算场景下训练深度神经网络模型具有重要意义。
现有的模型并行方法研究如何在内存资源和算力资源充足的计算设备上,如云端设备,通过模型并行技术加速对大型深度神经网络的训练;而没有考虑如何在内存资源和算力资源不足的计算设备上,如边缘设备,实现深度神经网络的在线训练。
Julien Herrmann在其论文“Acyclic Partitioning of Large DirectedAcyclic Graphs”(IEEE,2017)中提出了一种将大型有向无环图划分为多个无环分区,即所有不同分区之间的依赖关系并不会产生环路的图划分方法。在该方法中,对有向无环图的无环划分采用了分为粗化、初始划分和细化阶段的多层方法,开发了一种直接将有向无环图划分为k个分区的方法。使用该方法生成模型拆分方案存在的不足之处是,在划分模型分片时,没有考虑各分片计算量的均衡问题,使其模型迭代时间较长。
发明内容
为了克服上述现有技术的不足,本发明的目的在于提出一种边缘计算场景下的模型并行方法、系统、设备及介质,利用流水化模型并行技术,能够联合优化模型并行训练中的计算时延和通信时延,得到训练时间优化的流水化模型拆分方案,同时还可选择合适的边缘设备参与训练,具有缩短训练时间,节约人力物力的特点。
为了实现上述目的,本发明采用如下技术方案:
一种边缘计算场景下的模型并行方法,具体步骤如下:
步骤S1、计算所有可能参与训练的边缘设备的计算和存储能力的综合评分;
步骤S2、估算待训练神经网络模型的参数,参数包括模型中各神经网络层的计算量和模型中各神经网络层间的通信传输量;
步骤S3、获取待训练神经网络模型的所有拓扑排序;
步骤S4、对于神经网络的每一种拓扑排序,使用计算时延和通信时延联合优化的流水模型拆分算法求该拓扑排序下的模型的最优划分解;
步骤S5、在所有拓扑排序的最优划分解中选择使模型迭代时间最短的解作为最终的模型拆分方案。
所述步骤S1具体操作如下:
步骤S1.1、获取所有可能参与模型并行训练的边缘设备的算力大小和内存大小;
步骤S1.2、根据步骤S1.1中获取的边缘设备的算力大小和内存大小为设备进行计算和存储能力的综合评分;
步骤S1.3、在选取边缘设备进行模型并行训练时,按照综合评分从高到低的顺序,挑选训练设备加入。
所述步骤S1.2中为设备进行计算和存储能力的综合评分,具体操作如下:
n台边缘设备的内存为{r1,r2,...,rn},算力为{s1,s2,…,sn};边缘设备的内存最大值rmax为:
rmax=max(ri),i∈n;
边缘设备的算力最大值smax为:
smax=max(si),i∈n;
对n台边缘设备的内存做归一化处理,得到归一化后的设备内存{r'1,r'2,…,r'n}:
对n台边缘设备的算力做归一化处理,得到归一化后的设备算力{s'1,s'2,…,s'n}:
第i台边缘设备计算和存储能力的综合评分Ii为:
Ii=0.5×r'i+0.5×s'i。
所述步骤S2中的神经网络层的计算量,即卷积神经网络的基本层的计算量,估计方法如下:
卷积层:卷积层的输入张量尺寸为nbatch×cin×hin×win,nbatch代表训练批次大小,cin为输入特征图通道数,hin为输入特征图高度,win为输入特征图宽度;正方形二维卷积核尺寸为k×k,k为卷积核的高度和宽度;卷积层的输出张量尺寸为nbatch×cout×hout×wout,cout为输出特征图通道数,hout为输出特征图高度,wout为输出特征图宽度;卷积层的计算量为:
FLOPsconv=2nbatch×k×k×cin×cout×hout×wout;
ReLU层:ReLU层的计算量为:
FLOPsReLU=nbatch×cin×hin×win;
池化层:池化层的计算量为:
FLOPspooling=nbatch×cin×hin×win;
全连接层:全连接层的计算量为:
FLOPsfc=2nbatch×cin×cout;
步骤S2中的各神经网络层间的通信传输量进行估计的具体方法如下:
层间通信传输量:层间通信传输量为各神经网络层的输出张量大小,为:
D=nbatch×cout×hout×wout。
所述步骤S3中获取待训练神经网络模型的所有拓扑排序,具体方法如下:
步骤S3.1、初始时,所有节点的状态都是「未访问」;
步骤S3.2、每一轮搜索时,任意选取一个「未访问」的节点u,从节点u开始深度优先搜索,将节点u的状态更新为「访问中」,对于每个与节点u相邻的节点v,判断节点v的状态,执行如下操作:
1)如果节点v的状态是「未访问」,则继续搜索节点v;
2)如果节点v的状态是「访问中」,则找到有向图中的环,因此不存在拓扑排序;
3)如果节点v的状态是「已访问」,则节点v已经搜索完成并加入输出排序列表,节点u尚未完成搜索,因此节点u的拓扑顺序一定在节点v的前面,不需要执行任何操作;
步骤S3.3、当节点u的所有相邻节点的状态都是「已访问」时,将节点u的状态更新为「已访问」,并将节点u加入输出排序列表;
步骤S3.4、当所有节点都访问结束之后,如果没有找到有向图中的环,则存在拓扑排序,所有节点从栈顶到栈底的顺序即为拓扑排序。
所述步骤S4的具体操作为:
步骤S4.1、选取目前最优解集;
步骤S4.2、采用本地搜索算法,由最优解集生成下一代解集;
步骤S4.3、若下一代解集为空,停止迭代;
步骤S4.4、混合下一代解集与最优解集,保留一定比例的适应度高的解为目前最优解集;
步骤S4.5、若迭代次数未到达停止条件,重复执行步骤S4.1-步骤S4.5,否则停止迭代。
所述步骤S5具体操作为:
步骤S5.1、对于每一种拓扑排序下的最优划分解,通过代码仿真求得该最优划分解对应的模型拆分方案的模型迭代时间,具体操作如下:
步骤S5.1.1、将流水线设备进行抽象,单个流水线设备类包含设备算力、设备内存、设备通信带宽和承载模型分片编号属性;
步骤S5.1.2、在迭代初始化时,采用一个共享的字典作为已完成任务的数据库,存储已完成的任务的信息;
步骤S5.1.3、迭代中,主线程创建共享字典,依次切换至子线程运行对流水线设备的模拟;每个子线程都对应一个流水线计算设备,子线程读取已完成任务数据库,判断自身将要进行的任务段的前驱任务是否已经完成:若已完成,则模拟计算通信过程,得到该任务执行的起始时间及结束时间,将该任务段的序号、起始时间及结束时间写入已完成任务数据库后,线程进入休眠;若未完成,线程会直接进行休眠;主线程观察到子线程休眠,则切换至下一子线程,等待下一轮任务执行;
步骤S5.2、选择迭代时间最短的最优划分解作为最终的模型拆分方案。
一种边缘计算场景下的模型并行系统,包括:
综合评分模块,用于计算所有可能参与训练的边缘设备的计算和存储能力的综合评分;
参数模块,用于获取待训练神经网络模型的参数;
拓扑排序模块,用于获取待训练神经网络模型的所有拓扑排序;
最优划分解模块,用于使用计算时延和通信时延联合优化的流水模型拆分算法求每种拓扑排序下的模型的最优划分解。
一种边缘计算场景下的模型并行设备,包括:
存储器,用于存储所需数据;
处理器,用于执行所述计算机程序时实现步骤S1至步骤S5所述的一种边缘计算场景下的模型并行方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时能够实现边缘计算场景下的模型并行方法。
本发明与现有技术相比,具有如下优点:
1、本发明的步骤S1对所有可能参与训练的边缘设备的计算和存储进行综合评分,在选择训练设备时选择评分高的加入训练,既能保证所选取设备拥有较大的存储,提升了选取更少设备完成深度神经网络的模型并行训练的概率;又能保证选取的设备拥有较大的算力,使它们在进行训练时花费更少的时间。
2、本发明的步骤S4将使计算时间最小的模型分片训练时长的最优分布特性加进优化目标,能够使各模型分片的计算量划分相比无环图划分方法更加均衡,减小了模型的迭代时间。
3、本发明的步骤S4提供了使模型并行训练总时间中计算时间最小的模型分片训练时长的最优分布特性,并将各模型分片实际计算量与最优分布特性的差值作为一个优化目标,能够使拆分方案在迭代中向着计算时间减小的方向改变,优化了模型并行训练中的计算时延。
综上所述,与现有技术相比,本发明能够在选择参与训练的边缘设备时更大概率选择内存大的设备参与训练,减小了模型进行流水化模型并行训练的迭代时间,具有缩短训练时间,节约人力物力的特点。
附图说明
图1为本发明的实现流程图。
图2为本发明中计算时延和通信时延联合优化的流水模型拆分算法流程图。
图3为本发明提供的模型并行方法与无环图划分方法生成的模型拆分方案的模型迭代时间对比图。
具体实施方式
下面结合附图对本发明做详细描述。
参照图1,一种边缘计算场景下的模型并行方法,具体步骤如下:
步骤S1、计算所有可能参与训练的边缘设备的计算和存储能力的综合评分,具体操作如下:
步骤S1.1、获取所有可能参与模型并行训练的边缘设备的算力大小和内存大小;
步骤S1.2、根据步骤S1.1中获取的边缘设备的算力大小和内存大小为设备进行计算和存储能力的综合评分,具体操作如下:
n台边缘设备的内存为{r1,r2,...,rn},算力为{s1,s2,…,sn};边缘设备的内存最大值rmax为:
rmax=max(ri),i∈n;
边缘设备的算力最大值smax为:
smax=max(si),i∈n;
对n台边缘设备的内存做归一化处理,得到归一化后的设备内存{r'1,r'2,…,r'n}:
对n台边缘设备的算力做归一化处理,得到归一化后的设备算力{s'1,s'2,…,s'n}:
第i台边缘设备计算和存储能力的综合评分Ii为:
Ii=0.5×r'i+0.5×s'i;
步骤S1.3、在选取边缘设备进行模型并行训练时,按照综合评分从高到低的顺序,挑选训练设备加入;
步骤S2、估算待训练神经网络模型的参数,参数包括模型中各神经网络层的计算量和模型中各神经网络层间的通信传输量,
所述步骤S2中的神经网络层计算量,即卷积神经网络的基本层的计算量,估计方法如下:
卷积层:卷积层的输入张量尺寸为nbatch×cin×hin×win,nbatch代表训练批次大小,cin为输入特征图通道数,hin为输入特征图高度,win为输入特征图宽度;正方形二维卷积核尺寸为k×k,k为卷积核的高度和宽度;卷积层的输出张量尺寸为nbatch×cout×hout×wout,cout为输出特征图通道数,hout为输出特征图高度,wout为输出特征图宽度;卷积层的计算量为:
FLOPsconv=2nbatch×k×k×cin×cout×hout×wout;
ReLU层:ReLU层的计算量为:
FLOPsReLU=nbatch×cin×hin×win;
池化层:池化层的计算量为:
FLOPspooling=nbatch×cin×hin×win;
全连接层:全连接层的计算量为:
FLOPsfc=2nbatch×cin×cout;
步骤S2中的各神经网络层间的通信传输量进行估计的具体方法如下:
层间通信传输量:层间通信传输量为各神经网络层的输出张量大小,为:
D=nbatch×cout×hout×wout;
步骤S3、获取待训练神经网络模型的所有拓扑排序,具体为:
本发明中,将神经网络抽象为有向无环图,因此,神经网络层为有向无环图的节点,该节点的入度为所有输出张量到该层的神经网络层的数量,该节点的出度为所有接收该层的输出张量的神经网络层的数量;使用深度优先遍历算法实现拓扑排序的基本思想是:对于一个特定节点,如果该节点的所有相邻节点都已经搜索完成,则该节点也会变成已经搜索完成的节点,在拓扑排序中,该节点位于其所有相邻节点的前面;一个节点的相邻节点指的是从该节点出发通过一条有向边可以到达的节点(在发明背景中指接收该层的输出张量的神经网络层);由于拓扑排序的顺序和搜索完成的顺序相反,因此需要使用一个栈存储所有已经搜索完成的节点。深度优先搜索的过程中需要维护每个节点的状态,每个节点的状态可能有3种情况:未访问,访问中和已访问;具体方法如下:
步骤S3.1、初始时,所有节点的状态都是「未访问」;
步骤S3.2、每一轮搜索时,任意选取一个「未访问」的节点u,从节点u开始深度优先搜索。将节点u的状态更新为「访问中」,对于每个与节点u相邻的节点v,判断节点v的状态,执行如下操作:
1)如果节点v的状态是「未访问」,则继续搜索节点v;
2)如果节点v的状态是「访问中」,则找到有向图中的环,因此不存在拓扑排序;
3)如果节点v的状态是「已访问」,则节点v已经搜索完成并加入输出排序列表,节点u尚未完成搜索,因此节点u的拓扑顺序一定在节点v的前面,不需要执行任何操作;
步骤S3.3、当节点u的所有相邻节点的状态都是「已访问」时,将节点u的状态更新为「已访问」,并将节点u加入输出排序列表;
步骤S3.4、当所有节点都访问结束之后,如果没有找到有向图中的环,则存在拓扑排序,所有节点从栈顶到栈底的顺序即为拓扑排序;
步骤S4、对于神经网络的每一种拓扑排序,使用计算时延和通信时延联合优化的流水模型拆分算法求该拓扑排序下的模型的最优划分解,具体为:
计算时延和通信时延联合优化的流水模型拆分算法同时考虑了训练中的计算时间和通信时间,设立了多个优化目标;
首先,设n台计算设备的算力为{s1,s2,…,sn},设n个模型分片在一个训练微批次上的计算量为{c1,c2,…,cn},第i个模型分片在第i台计算设备上的训练时间为当所有模型分片训练一个微批次的所用时间相同时,模型分片的最大训练时长达到最短;即使计算时间最小的模型分片训练时长的最优分布特性为:
同时,为了减少各模型分片间的数据传输,第二个优化目标设为各模型分片间通信量之和,可表示为:
在流水化模型并行中,各模型分片间的数据传输时单向的,因此需要保证任意两个模型分片间不存在双向连接,即不产生环路:
因为边缘设备的内存可能不足以完成所分模型分片的训练,设n台计算设备的内存为{r1,r2,...,rn},n个模型分片训练时需要的内存大小为{R1,R2,...,Rn},需要满足:
整个神经网络的总计算量和各层间的总数据传输量为:
所有设备的总算力大小S为:
将计算时延和通信时延联合优化的流水模型拆分建模为以下优化问题:
目标函数argmin中通过第一项最小化流水化模型并行训练中的计算时延,通过第二项最小化流水化模型并行训练中的通信时延;其中,α和β分别代表计算时延和通信时延在模型并行训练时间里所占的比重;将α和β设置如下,其中B代表整个网络的平均带宽:
设置了优化目标后,采用遗传算法的形式进行问题求解,设计思路如下:在每一种拓扑排序下,为了寻找模型的最优划分解,按照计算时间最小的模型分片训练时长的最优分布特性,拆分网络,生成初始划分解,作为第一代父代,然后采用本地搜索算法,获取子代。混合父代和子代之后,保留一定比例的适应度高的个体作为下一代父代进行迭代。本地搜索算法会记录每个神经网络层在不同划分分片间移动的次数,并基于这个次数决定是否舍弃这个解,不将它加入新子代集中。算法在达到迭代次数或者没有新子代生成后终止。此时算法结果为该拓扑排序下的最优解。参照图2,步骤S4的具体操作为:
步骤S4.1、选取目前最优解集;
步骤S4.2、采用本地搜索算法,由最优解集生成下一代解集;
步骤S4.3、若下一代解集为空,停止迭代;
步骤S4.4、混合下一代解集与最优解集,保留一定比例的适应度高的解为目前最优解集;
步骤S4.5、若迭代次数未到达停止条件,重复执行步骤S4.1-步骤S4.5,否则停止迭代;
生成子集的本地搜索算法的设计思路如下:首先找出每个分片中所有可移动的顶点,本发明中,顶点为模型分片中的神经网络层,位于模型分片Pi中可移动的顶点需要满足至少两个条件中的一个:可前向移动,或顶点没有前驱节点,或所有的前驱节点都不与该顶点在同一个分片中;可后向移动,或顶点没有后继节点,或所有后继节点都不与该节点在同一分片中;算法通过对每个节点分析其前驱节点和后继节点所属的划分分片确定它是否可以移动,若可移动,则进一步确定其在模型分片间移动的范围;在找出所有可移动节点之后,算法根据可移动节点被移动过的次数,决定是否将该节点移动至另一划分区块;该点已移动次数越多,越有可能舍弃该次移动操作;该步骤是为了避免一个节点移动次数过多,通过概率舍弃的方式缩小算法的搜索空间;
步骤S5、在所有拓扑排序的最优划分解中选择使模型迭代时间最短的解作为最终的模型拆分方案,具体操作为:
步骤S5.1、对于每一种拓扑排序下的最优划分解,通过代码仿真求得该最优划分解对应的模型拆分方案的模型迭代时间,具体操作如下:流水化模型并行中,单个设备的运行具有独立性,因此可采用多线程方式模拟各个流水线设备的执行;训练时,一个训练微批次在结束当前设备上模型分片的训练后,当前设备将设备上模型分片的输出张量发送到下个相邻模型分片所在的设备;下个相邻模型分片所在的设备开始对该训练微批次进行训练的时间取决于,当前设备发送的输出张量的到达时间和下个相邻模型分片所在的设备结束它上个计算任务的时间;因此,一个前向过程或反向传播过程的执行依赖于两个条件:(1)设备空闲;(2)前驱依赖过程计算及通信过程完成。
据此,可将计算设备进行抽象。单个设备类包含设备算力,设备内存,设备通信带宽和承载模型分片编号等属性,由单个线程加载执行迭代中的任务。在迭代初始化时,采用一个共享的字典作为已完成任务的数据库存储已进行的任务的信息。迭代中,主线程创建共享字典,依次切换至子线程运行对计算设备的模拟。每个线程都对应一个流水线计算设备,读取已完成任务数据库,判断自身将要进行的任务段的前驱任务是否已经完成。若满足执行条件,则模拟计算通信过程,得到该任务执行的起始时间及结束时间戳。最后,将该任务段的序号、起始时间及结束时间写入已完成任务数据库,线程进入休眠态。若不满足执行条件,线程会直接进行休眠。主线程观察到子线程休眠,则切换至下一子线程,等待下一轮任务执行。通过这种代码仿真方式,可以获取模型拆分方案对应的模型迭代时间。
步骤S5.2、选择迭代时间最短的最优划分解作为最终的模型拆分方案。
下面结合仿真实验对本发明的效果做进一步的说明:
1.仿真参数设置:
仿真实验将ResNet-50模型划分为1~8个模型分片,设置8台边缘设备的算力和内存如表1:
表1八台边缘设备的算力和内存设定
训练使用的仿真参数如表2所示:
表2训练仿真参数设定
参数名称 | 参数设置 |
设备带宽 | 10Gbps |
迭代微批数 | 16 |
微批大小 | 32 |
最大分片数 | 8 |
拆分网络 | ResNet-50模型 |
2.仿真内容及其结果分析:
在上述仿真参数下,分别用本发明和无环图划分方法生成ResNet-50模型在被划分为1~8个模型分片时的模型拆分方案,两种方案的模型迭代时间如图3。
由图3可见,ResNet-50模型被划分为1~8个模型分片,本发明方法的迭代时间均小于无环图划分方法的迭代时间。
上述仿真结果表明,本发明在设置启发式模型拆分算法优化目标时,将使计算时间最小的模型分片训练时长的最优分布特性考虑了进去,使得各模型分片的计算量划分相比无环图划分方法更加均衡,减小了模型进行流水化模型并行训练的迭代时间。
Claims (10)
1.一种边缘计算场景下的模型并行方法,其特征在于,具体步骤如下:
步骤S1、计算所有可能参与训练的边缘设备的计算和存储能力的综合评分;
步骤S2、估算待训练神经网络模型的参数,参数包括模型中各神经网络层的计算量和模型中各神经网络层间的通信传输量;
步骤S3、获取待训练神经网络模型的所有拓扑排序;
步骤S4、对于神经网络的每一种拓扑排序,使用计算时延和通信时延联合优化的流水模型拆分算法求该拓扑排序下的模型的最优划分解;
步骤S5、在所有拓扑排序的最优划分解中选择使模型迭代时间最短的解作为最终的模型拆分方案。
2.根据权利要求1所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S1具体操作如下:
步骤S1.1、获取所有可能参与模型并行训练的边缘设备的算力大小和内存大小;
步骤S1.2、根据步骤S1.1中获取的边缘设备的算力大小和内存大小为设备进行计算和存储能力的综合评分;
步骤S1.3、在选取边缘设备进行模型并行训练时,按照综合评分从高到低的顺序,挑选训练设备加入。
3.根据权利要求2所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S1.2中为设备进行计算和存储能力的综合评分,具体操作如下:
n台边缘设备的内存为{r1,r2,...,rn},算力为{s1,s2,…,sn};边缘设备的内存最大值rmax为:
rmax=max(ri),i∈n;
边缘设备的算力最大值smax为:
smax=max(si),i∈n;
对n台边缘设备的内存做归一化处理,得到归一化后的设备内存{r1',r′2,…,r′n}:
对n台边缘设备的算力做归一化处理,得到归一化后的设备算力{s′1,s'2,…,s'n}:
第i台边缘设备计算和存储能力的综合评分Ii为:
Ii=0.5×ri'+0.5×s′i。
4.根据权利要求1所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S2中的神经网络层计算量,即卷积神经网络的基本层的计算量,估计方法如下:
卷积层:卷积层的输入张量尺寸为nbatch×cin×hin×win,nbatch代表训练批次大小,cin为输入特征图通道数,hin为输入特征图高度,win为输入特征图宽度;正方形二维卷积核尺寸为k×k,k为卷积核的高度和宽度;卷积层的输出张量尺寸为nbatch×cout×hout×wout,cout为输出特征图通道数,hout为输出特征图高度,wout为输出特征图宽度;卷积层的计算量为:
FLOPsconv=2nbatch×k×k×cin×cout×hout×wout;
ReLU层:ReLU层的计算量为:
FLOPsReLU=nbatch×cin×hin×win;
池化层:池化层的计算量为:
FLOPspooling=nbatch×cin×hin×win;
全连接层:全连接层的计算量为:
FLOPsfc=2nbatch×cin×cout;
所述步骤S2中的各神经网络层间的通信传输量进行估计的具体方法如下:
层间通信传输量:层间通信传输量为各神经网络层的输出张量大小,为:
D=nbatch×cout×hout×wout。
5.根据权利要求1所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S3中获取待训练神经网络模型的所有拓扑排序,具体方法如下:
步骤S3.1、初始时,所有节点的状态都是「未访问」;
步骤S3.2、每一轮搜索时,任意选取一个「未访问」的节点u,从节点u开始深度优先搜索,将节点u的状态更新为「访问中」,对于每个与节点u相邻的节点v,判断节点v的状态,执行如下操作:
1)如果节点v的状态是「未访问」,则继续搜索节点v;
2)如果节点v的状态是「访问中」,则找到有向图中的环,因此不存在拓扑排序;
3)如果节点v的状态是「已访问」,则节点v已经搜索完成并加入输出排序列表,节点u尚未完成搜索,因此节点u的拓扑顺序一定在节点v的前面,不需要执行任何操作;
步骤S3.3、当节点u的所有相邻节点的状态都是「已访问」时,将节点u的状态更新为「已访问」,并将节点u加入输出排序列表;
步骤S3.4、当所有节点都访问结束之后,如果没有找到有向图中的环,则存在拓扑排序,所有节点从栈顶到栈底的顺序即为拓扑排序。
6.根据权利要求1所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S4的具体操作为:
步骤S4.1、选取目前最优解集;
步骤S4.2、采用本地搜索算法,由最优解集生成下一代解集;
步骤S4.3、若下一代解集为空,停止迭代;
步骤S4.4、混合下一代解集与最优解集,保留一定比例的适应度高的解为目前最优解集;
步骤S4.5、若迭代次数未到达停止条件,重复执行步骤S4.1-步骤S4.5,否则停止迭代。
7.根据权利要求1所述的一种边缘计算场景下的模型并行方法,其特征在于,所述步骤S5具体操作为:
步骤S5.1、对于每一种拓扑排序下的最优划分解,通过代码仿真求得该最优划分解对应的模型拆分方案的模型迭代时间,具体操作如下:
步骤S5.1.1、将流水线设备进行抽象,单个流水线设备类包含设备算力、设备内存、设备通信带宽和承载模型分片编号属性;
步骤S5.1.2、在迭代初始化时,采用一个共享的字典作为已完成任务的数据库,存储已完成的任务的信息。
步骤S5.1.3、迭代中,主线程创建共享字典,依次切换至子线程运行对流水线设备的模拟;每个子线程都对应一个流水线计算设备,子线程读取已完成任务数据库,判断自身将要进行的任务段的前驱任务是否已经完成:若已完成,则模拟计算通信过程,得到该任务执行的起始时间及结束时间,将该任务段的序号、起始时间及结束时间写入已完成任务数据库后,线程进入休眠;若未完成,线程会直接进行休眠;主线程观察到子线程休眠,则切换至下一子线程,等待下一轮任务执行;
步骤S5.2、选择迭代时间最短的最优划分解作为最终的模型拆分方案。
8.一种边缘计算场景下的模型并行系统,其特征在于,包括:
综合评分模块,用于计算所有可能参与训练的边缘设备的计算和存储能力的综合评分;
参数模块,用于获取待训练神经网络模型的参数;
拓扑排序模块,用于获取待训练神经网络模型的所有拓扑排序;
最优划分解模块,用于使用计算时延和通信时延联合优化的流水模型拆分算法求该拓扑排序下的模型的最优划分解。
9.一种边缘计算场景下的模型并行设备,其特征在于,包括:
存储器,用于存储所需数据;
处理器,用于执行所述计算机程序时实现步骤S1至步骤S5所述的一种边缘计算场景下的模型并行方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时能够实现边缘计算场景下的模型并行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281020.XA CN116302539A (zh) | 2023-03-22 | 2023-03-22 | 一种边缘计算场景下的模型并行方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281020.XA CN116302539A (zh) | 2023-03-22 | 2023-03-22 | 一种边缘计算场景下的模型并行方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302539A true CN116302539A (zh) | 2023-06-23 |
Family
ID=86819855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310281020.XA Pending CN116302539A (zh) | 2023-03-22 | 2023-03-22 | 一种边缘计算场景下的模型并行方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302539A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116777009A (zh) * | 2023-08-24 | 2023-09-19 | 之江实验室 | 基于内存池的智能计算系统架构和并行训练方法 |
CN117155791A (zh) * | 2023-10-31 | 2023-12-01 | 浪潮电子信息产业股份有限公司 | 基于集群拓扑结构的模型部署方法、系统、设备及介质 |
-
2023
- 2023-03-22 CN CN202310281020.XA patent/CN116302539A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116777009A (zh) * | 2023-08-24 | 2023-09-19 | 之江实验室 | 基于内存池的智能计算系统架构和并行训练方法 |
CN116777009B (zh) * | 2023-08-24 | 2023-10-20 | 之江实验室 | 基于内存池的智能计算系统架构和并行训练方法 |
CN117155791A (zh) * | 2023-10-31 | 2023-12-01 | 浪潮电子信息产业股份有限公司 | 基于集群拓扑结构的模型部署方法、系统、设备及介质 |
CN117155791B (zh) * | 2023-10-31 | 2024-02-13 | 浪潮电子信息产业股份有限公司 | 基于集群拓扑结构的模型部署方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116302539A (zh) | 一种边缘计算场景下的模型并行方法、系统、设备及介质 | |
CN109948029B (zh) | 基于神经网络自适应的深度哈希图像搜索方法 | |
CN112380008B (zh) | 一种面向移动边缘计算应用的多用户细粒度任务卸载调度方法 | |
CN109818786B (zh) | 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法 | |
JP7451008B2 (ja) | 量子回路の決定方法、装置、機器及びコンピュータプログラム | |
CN112214261B (zh) | 一种面向边缘智能的三层结构dnn计算卸载方法 | |
CN111325356A (zh) | 一种基于演化计算的神经网络搜索分布式训练系统及训练方法 | |
CN113098714A (zh) | 一种基于深度强化学习的低时延网络切片的方法 | |
Li et al. | SNEAP: A fast and efficient toolchain for mapping large-scale spiking neural network onto NoC-based neuromorphic platform | |
CN113220356A (zh) | 一种移动边缘计算中的用户计算任务卸载方法 | |
CN113708969A (zh) | 一种基于深度强化学习的云数据中心虚拟网络的协同嵌入方法 | |
Zhang et al. | A survey on graph neural network acceleration: Algorithms, systems, and customized hardware | |
CN117034100A (zh) | 基于分层池化架构自适应图分类方法、系统、设备和介质 | |
Wistuba et al. | Supervising the multi-fidelity race of hyperparameter configurations | |
CN117707795B (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
Fang et al. | Dependency-Aware Dynamic Task Offloading Based on Deep Reinforcement Learning in Mobile Edge Computing | |
Kang et al. | Honeybee mating optimization algorithm for task assignment in heterogeneous computing systems | |
CN104348695B (zh) | 一种基于人工免疫系统的虚拟网络映射方法及其系统 | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
Banerjee et al. | Optimized and adaptive federated learning for straggler-resilient device selection | |
CN117436627A (zh) | 任务分配方法、装置、终端设备及介质 | |
CN116828541A (zh) | 基于多智能体强化学习的边缘计算依赖任务动态卸载方法及系统 | |
CN114980216A (zh) | 基于移动边缘计算的依赖型任务卸载系统及方法 | |
Li et al. | Solving fuzzy scheduling using clustering method and bacterial foraging algorithm | |
Wang et al. | Multi-Installment Scheduling for Large-Scale Workload Computation with Result Retrieval |
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 |