System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及分布式训练领域,尤其涉及一种基于dag结构深度学习模型任务放置的流水线训练优化方法。
技术介绍
1、随着深度学习技术的不断发展,大模型在各种行业领域内都取得了显著成果。在电力领域内,南方电网公司发布的电力大模型可以为各种用户提供服务:针对普通电力用户,可以和能源电力大模型畅聊电力政策法规、能源结构组成和“双碳”发展目标,可以向大模型了解电费电量、故障报修、电费扣款信息,帮助家庭节能诊断;针对专业电力市场用户,可以用来咨询电力设备供应和安装知识,获取电力安全、保护、节能的建议,听取电力设施维护和故障排除的指导;针对电力行业员工,可以向其发布指令,让其自动生成数据处理结果,准确识别缺陷场景的图像细节,帮助检索处理电力巡检过程中数据、识别缺陷以及自动生成报告。然而,随着深度学习模型参数规模不断增大,对训练和微调大模型所需的计算资源和训练算法的要求越来越高,需要利用分布式训练方法来提高其准确性和泛化能力。
2、分布式训练中最常用的就是结合数据并行和模型并行的流水线混合并行训练方法。数据并行可以实现训练加速,但无法支持那些不能放入单gpu显存的大规模深度学习模型的训练任务。模型并行中每个gpu只负责深度学习模型的一部分计算,可以减少显存消耗,但由于神经网络的计算依赖性,负责深度学习模型不同部分训练任务的设备之间出现频繁地相互等待,造成大量的设备空闲时间,影响了深度学习模型训练速度。为了提升gpu利用率,流水线混合并行策略被提出并且得到了广泛应用。在流水线并行中,每个批次(batch)的数据被进一步分为几个更小的批
3、为了使得深度学习模型流水线混合并行训练效率最大化,需要将dnn(deepneuralnetwork,dnn)模型以适当的方式划分。现如今大部分深度学习模型的计算数据流图已经不再是简单的网络层、激活层的线性堆叠,而是变成有向无环图(dag)的结构,对传统的线性深度学习模型的划分方法并不适用于dag结构的深度学习模型。此外,随着技术的持续进步,几乎每两年就会有新的、计算能力更强的gpu设备被推出,集群中的设备也随之更新。但由于设备的性价比和对不同加速要求的训练任务的支持需求,通常只有一部分设备被更新,这导致很多情况下异构gpu的使用是几乎不可避免的。因此,为了提高深度学习模型的训练效率,保障流水线阶段负载均衡,需要设计并实现异构gpu场景下深度学习模型任务放置算法,解决有向无环图结构深度学习模型划分问题。
4、在dag结构深度学习模型流水线阶段划分问题中,必须先确定要分割出的子图数量,而流水线混合并行可以将多个设备组合成一个阶段的性质造成了阶段数量的不确定性。同时,不同dag结点所代表的计算负载、不同dag边所代表的通信代价有很大差异,传统的图划分算法中根据结点数量衡量计算负载、按割边数量衡量通信代价的方法不再适用。
5、在异构gpu集群的场景中,由于算力差异和带宽差异,dag中的不同结点被分配到不同gpu设备上时,产生的计算时间和通信时间都有显著区别。与此同时,多个gpu分配到同一个阶段后,该阶段内结点的计算时间和通信时间都将发生变化,并且不同类型、不同网络带宽的设备带来的影响之间也存在区别,这大大增加了任务放置问题的复杂性。
技术实现思路
1、本专利技术旨在至少解决现有技术中存在的技术问题之一。
2、本专利技术提供如下技术方案:基于dag结构深度学习模型任务放置的流水线训练优化方法,该方法包括:
3、根据每种节点的gpu配置,确定所有类型的节点内部可能的并行模式;
4、在所有节点的并行模式中进行选择,获得不同节点间的若干个并行方案;
5、将深度学习模型的有向无环图在不同并行方案中进行子图划分,得到划分结果并计算总体代价,选择最优方案。
6、确定节点内部可能的并行模式为:
7、将每种节点内gpu可能的并行模式作为无序整数拆分进行求解,得到计算节点内部的并行模式划分方案。
8、求解确定节点并行模式的过程为:
9、对异构gpu集群的物理资源建模;
10、设置并行模式求解过程中变量的初始化值;
11、通过嵌套循环生成所有可能的拆分方案,并保存最终的拆分方案到partitions_list中。
12、将有着相同算力和带宽的部件定义为同一类型,所使用的异构gpu集群中包括两层拓扑,具体为:以gpu为单位的节点层level1和以节点为划分单位的集群层level2。
13、初始化一个长度为n+1的数组partition,用来暂时存储每一个拆分的结果,同时创建一个空列表partitions_l小用于存储最终的所有拆分方案;
14、设置起始变量partition_index为1,代表拆分过程中当前操作的位置,remainder为n-1,代表剩余待拆分的数值。
15、内层循环根据当前的起始值start_value和剩余值remainder尝试不同的拆分方式,外层循环确保找到所有可能的拆分方案;
16、在生成拆分结果时,当(2×start_value≤remainder)时,表示当前的start_value用来进一步拆分remainder,此时partition[pariiion_index]被设置为start_value,并更新remainder和partition_index;
17、如果start_value≤remainder,则将当前的start_value和更新后的remaininder加入到partition中,并将当前的拆分方案复制到partitions_list中;
18、随着start_value的增加和remainder的减少,继续生成新的拆分方案,直到无法形成新的拆分为止。
19、确定不同节点间的并行方案的过程包括:
20、对确定并行方案问题分析;
21、设计求解算法得出可能的并行方案选择结果。
22、将n个相同的节点分配到,个不同的并行方案中,每个方案被视为一个组,且每个节点必须选择一个并行方案。
23、基于generateallcombinations函数生成所有可能的组合,其中每种组合代表一种特定的并行模式分配方案。
24、将深度学习模型的计算流程建模为有向无环图;
25、在每个并行方案上都执行子图划分算法;
26、计算划分后流水线并行的训练时间取其中训练时间最短的方案。
27、深度学习模型计算过程中每一个操作都被算作计算图中的一个点,这些操作间的依赖关系将作为有向无环图中的一条边,将深度学习模型计算过程建模为有向无环的计算图。
28、采用贪心本文档来自技高网...
【技术保护点】
1.基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:该方法包括:
2.根据权利要求1所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:确定节点内部可能的并行模式为:
3.根据权利要求2所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:求解确定节点并行模式的过程为:
4.根据权利要求3所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
5.根据权利要求3所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
6.根据权利要求3所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
7.根据权利要求1所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:确定不同节点间的并行方案的过程包括:
8.根据权利要求7所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
9.根据权利要求7所述的基于DAG结构深度学习模型任务放置
10.根据权利要求1所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
11.根据权利要求10所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
12.根据权利要求10所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
13.根据权利要求10所述的基于DAG结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
...【技术特征摘要】
1.基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:该方法包括:
2.根据权利要求1所述的基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:确定节点内部可能的并行模式为:
3.根据权利要求2所述的基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:求解确定节点并行模式的过程为:
4.根据权利要求3所述的基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
5.根据权利要求3所述的基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
6.根据权利要求3所述的基于dag结构深度学习模型任务放置的流水线训练优化方法,其特征在于:
7.根据权利要求1所述的基于dag结构深度学习...
【专利技术属性】
技术研发人员:龚在刚,霍雪松,杜云龙,戴强晟,徐云清,陈思宇,丰颖,薛晨,周星辰,薛钟兵,
申请(专利权)人:国网江苏省电力有限公司扬州供电分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。