基于网络级模拟的自动并行策略搜索方法、介质及设备与流程

文档序号:33709271发布日期:2023-03-31 22:59阅读:36来源:国知局
基于网络级模拟的自动并行策略搜索方法、介质及设备与流程

1.本发明涉及人工智能技术领域,特别是涉及神经网络模型技术领域。


背景技术:

2.随着深度学习的不断发展,神经网络模型正朝着更大参数量的方向优化。大规模预训练语言模型已经成为自然语言处理的新范式。诸如gpt-3等拥有数千亿参数的语言模型在自然语言的理解和生成上表现出了强大的性能,它们已被证明在各种自然语言任务中取得了极佳的性能。但是大模型的训练难以在单卡内实现,因此分布式训练是大模型训练系统的核心,随着模型规模的扩大,各深度学习框架pytorch、tensorflow开始加入分布式训练的功能。
3.分布式训练面临训练效率低的问题。现有的分布式训练策略主要有数据并行训练、模型并行训练、流水线并行训练、优化器并行训练等模式。数据并行的方式在样本数据上实现训练规模的扩展,能够提升训练效率。除数据并行外,其他并行训练模式的目的将与模型训练的相关参数(模型参数、优化器参数)分割,使得单卡上能够完成一部分训练,从而实现分布式训练大模型的功能,但不能提升训练效率。因此将多种并行策略相结合,在保障集群训练能力的基础上,最大化训练效率是分布式训练的一个重要问题。
4.由于并行策略组合多,人工搜索耗时耗力,近年来有一些自动并行策略搜索方法的提出。但现有的自动并行策略搜索方案是基于经验模型的基础进行搜索和验证的,存在精度较低的问题。在真实大模型上进行性能实测在实践层面难度较大。需要一种精准的、轻量级的并行策略验证方案。
5.现有的自动并行策略搜索技术缺乏一种精准的、高效的并行策略性能验证方案。现有技术中有一种对并行分布策略进行模拟的方案,它以算子为层级进行模拟,采用了算子性能评测、建立计算图、模拟计算图的方式。并根据多种已有的优化方案,对计算图进行相应的修改和替换。另一种在算子层级上进行并行策略模拟的方案。它创建了数据并行场景下的计算与数据传输的依。这种方法存在若干问题。首先,这种模拟方案只支持数据并行场景下的模拟;它支持的优化方案只支持层内的算子优化;最后,由于算子层级太低,性能评测的过程太过繁琐,耗费了大量的时间。最后,性能评测可能需要对完整的网络进行,时间开销大。
6.现有技术中还有一种方案是将自动并行策略搜索问题转换为整数线性规划问题。通过构建代价模型和解空间,来评估验证并行策略的优劣,通过遗传算法来对并行策略进行搜索和优化。该技术的主要方案是代价模型的精确度问题。基于代价模型等经验模型的并行策略验证方案虽然有着轻量级的优势,但是准确率较低。并且当计算硬件和网络拓扑发生变化时,通过代价模型搜索得到的并行训练策略并不能保证原有的训练效率。


技术实现要素:

7.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于网络级模拟的自
动并行策略搜索方法、介质及设备,用于解决现有技术不能支持模型并行、流水线并行的训练场景,且模拟开销大的技术问题。
8.为实现上述目的及其他相关目的,本发明提供一种基于网络级模拟的自动并行策略搜索方法,所述方法包括:获取神经网络计算图,并基于所述神经网络计算图对初始网络模型进行拆分,获取多个节点子网络模型,形成小集群网络模型;获取各所述节点子网络模型的时间开销;基于各所述节点子网络模型的时间开销模拟大集群网络模型的时间开销;基于模拟的大集群网络模型的时间开销进行并行策略搜索,输出最优并行策略。
9.于本发明的一实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括模型并行模式的模型拆分方式,包括:将所述初始网络模型的每个神经网络层的权重拆分成多个部分,每个部分分配给一个设备对同一个输入进行计算,计算完成后通过通信将输出汇总成完整的输出。
10.于本发明的一实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括流水线并行模式的模型拆分方式,包括:将所述初始网络模型拆分为若干级联节点子网络模型,每台设备计算一个节点子网络模型,其中包含一或多个计算层,设备间通过接力的方式完成整网计算。
11.于本发明的一实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括:确定并行策略,并确定所述并行策略下的模型并行模式和流水线并行模式的的并行度;基于所述模型并行模式将所述初始网络模型中的算子进行层内切分得到适应模型并行的算子;基于所述流水线并行模式和各所述算子将所述初始网络模型分为若干级联节点子网络模型。
12.于本发明的一实施例中,所述时间开销包括:计算时间开销和通信时间开销;所述计算时间开销包括前向计算时间,反向计算时间,参数更新时间中的一种或多种;所述通信时间开销至少包括计算数值传输时间,计算数值汇总时间,模型梯度汇总时间。
13.于本发明的一实施例中,还包括:在前向阶段和反向阶段模拟模型并行和流水线并行,在参数更新阶段模拟数据并行。
14.于本发明的一实施例中,所述并行策略的搜索的方式采用网格搜索的方法,搜索的内容为由集群规模确定的流水线并行度、模型并行度与数据并行度。
15.于本发明的一实施例中,所述基于模拟的大集群网络模型的时间开销进行并行策略搜索,输出最优并行策略包括:输入大集群网络模型的集群规模、模型切分与时间开销数据;依次模拟并行策略的时间开销,并将时间开销最低的并行策略确定为最优并行策略。
16.为实现上述目的及其他相关目的,本发明还提供一种计算机存储介质,存储有程序指令,所述程序指令被执行时实现如上所述的基于网络级模拟的自动并行策略搜索方法的步骤。
17.为实现上述目的及其他相关目的,本发明还提供一种电子设备,包括存储器,用于存储计算机程序;处理器,用于运行所述计算机程序以实现如上所述的基于网络级模拟的自动并行策略搜索方法的步骤。
18.如上所述,本发明的基于网络级模拟的自动并行策略搜索方法、介质及设备具有以下有益效果:
19.本发明不仅支持模型并行与流水线并行场景下的模拟,可以覆盖到现有的全部并
行训练场景,同时整网拆分的性能评测方案,提升了模拟的准确率与速度。
附图说明
20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法的整体流程示意图;
22.图2显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法的原理流程示意图;
23.图3显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中网络级并行策略模拟验证方案的总体流程图;
24.图4显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中模型拆分的示意图;
25.图5显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中前向优先流水线算法的原理示意图;
26.图6显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中反向优先流水线算法的原理示意图;
27.图7显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中总体建模流程图;
28.图8显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中流水线并行建模流程图;
29.图9显示为本技术一实施例中的基于网络级模拟的自动并行策略搜索方法中自动并行策略搜索流程图;
30.图10显示为本技术一实施例中的电子设备的原理框图。
31.元件标号说明
32.101
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
电子设备
33.1001
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
处理器
34.1002
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
存储器
35.s100~s400
ꢀꢀꢀꢀꢀ
步骤
具体实施方式
36.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
37.本实施例的目的在于提供一种基于网络级模拟的自动并行策略搜索方法、介质及
设备,用于解决现有技术无法有效对电池性能进行快速诊断的技术问题。
38.为保证本实施例的基于网络级模拟的自动并行策略搜索方法取得较准确的分析结果,需要对神经网络模型的时间开销进行采样。本实施例的基于网络级模拟的自动并行策略搜索方法采用子网络切分的方法处理小集群网络时间开销数据,最后累计子网络时间开销数据模拟大集群网络时间开销数据。以下将详细阐述本发明的基于网络级模拟的自动并行策略搜索方法、介质及设备的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的基于网络级模拟的自动并行策略搜索方法、介质及设备。
39.实施例1
40.本实施例提供一种基于网络级模拟的自动并行策略搜索方法,具体地,如图1所示,本实施例中所述基于网络级模拟的自动并行策略搜索方法包括以下步骤:
41.步骤s100,获取神经网络计算图,并基于所述神经网络计算图对初始网络模型进行拆分,获取多个节点子网络模型,形成小集群网络模型;
42.步骤s200,获取各所述节点子网络模型的时间开销;
43.步骤s300,基于各所述节点子网络模型的时间开销模拟大集群网络模型的时间开销;
44.步骤s400,基于模拟的大集群网络模型的时间开销进行并行策略搜索,输出最优并行策略。
45.如图2所示,本实施例中,在用户进行神经网络定义之后,该方案将获取之,并将其构建成神经网络计算图,包括算子信息与计算依赖信息;在构建好计算图后,该发明将开始网络级并行策略的模拟验证,首先将模型进行拆分,在小规模分布式集群下进行训练,收集网络级时间开销信息。利用收集到的网络级别时间开销信息可以用来模拟大集群上的时间开销;再次之后该发明将进行自动策略搜索,采用网格搜索的方式搜索并行策略,并模拟大集群上的时间开销;最终选取搜索得到的最优策略,调用神经网络训练框架进行训练。
46.网络级并行策略模拟验证方案的总体流程如图3所示,按照执行流程分为以下三个过程:
47.a)模型拆分:给定初始模型,该方案将模型均等拆分成每个节点上进行计算的子网络。模型的拆分会发生在模型并行与流水线并行,因此该方案需要将模型进行拆分。
48.b)时间开销采样:为了准确进行模拟,需要对每个节点的计算和通信时间进行测试和采样。该方案的采样粒度为包含了计算和通信的网络级粒度(网络级粒度高于神经网络层级粒度)。时间开销采样会在节点数目少的小集群下进行,每个节点计算其对应的子网络模型。实际上小集群下训练的模型较小。
49.c)时间轴建模:根据一定符合实际情况的并行计算规则,结合上述获得的计算数据,推导出大模型在大规模集群上的训练流程,进而完成并行方案模拟的流程。在节点数目大的大集群下进行训练,将模拟大模型的并行策略时间开销数据。
50.所以本实施例中,整个模拟验证方案的核心在于三块内容:模型拆分、时间开销采样和时间轴模拟。这三块内容的流程决定了与真实情况的正确与否,也决定了能否达成在小集群上模拟大模型训练的应用场景。因此本实施例接下来的部分将对这三块内容的流程进行阐述。
51.以下对本实施例的基于网络级模拟的自动并行策略搜索方法的步骤s100至步骤
s400进行详细说明。
52.步骤s100,获取神经网络计算图,并基于所述神经网络计算图对初始网络模型进行拆分,获取多个节点子网络模型,形成小集群网络模型。
53.模型拆分的流程是为了将大模型拆分成每个节点可以执行的子网,以适应模型并行和流水线并行的模拟验证环节。以下是两种并行模式的模型拆分方式:模型并行和流水线并行。
54.于本实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括模型并行模式的模型拆分方式,包括:将所述初始网络模型的每个神经网络层的权重拆分成多个部分,每个部分分配给一个设备对同一个输入进行计算,计算完成后通过通信将输出汇总成完整的输出。
55.也就是说,模型并行的原理是将每个神经网络层的权重拆分成多个部分,每个部分分配给一个设备对同一个输入进行计算,计算完成后通过通信将输出汇总成完整的输出。因此对应的拆分方式为层内参数进行均等拆分。
56.于本实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括流水线并行模式的模型拆分方式,包括:将所述初始网络模型拆分为若干级联节点子网络模型,每台设备计算一个节点子网络模型,其中包含一或多个计算层,设备间通过接力的方式完成整网计算。
57.也就是说,流水线并行的原理是将整网进行拆分为若干级联子模型。每台设备计算一个子模型,其中包含一或多个计算层。设备间通过接力的方式完成整网计算。因此对应的拆分方式是根据工作量的大小,将整网拆分成工作量相近的若干子网络。
58.具体地,于本实施例中,所述基于所述神经网络计算图对初始网络模型进行拆分包括:
59.1)确定并行策略,并确定所述并行策略下的模型并行模式和流水线并行模式的的并行度;
60.2)基于所述模型并行模式将所述初始网络模型中的算子进行层内切分得到适应模型并行的算子;
61.3)基于所述流水线并行模式和各所述算子将所述初始网络模型分为若干级联节点子网络模型。
62.如图4所示,显示了模型切分、子模型生成的流程。主要流程为:给定了模型的描述,选取存在数据并行、模型并行、流水线并行的一个实例并行模式(例如集群规模为8的小集群下,数据并行度为2,模型并行度为2,流水线并行度为2)。根据模型并行的方式,将模型中的算子进行层内切分得到适应模型并行的算子,再根据流水线并行度,从分布式框架中得到的流水线切分策略(默认为均匀切分策略),构建出切分后的、包含模型并行算子的子网络,由此得到了每一个节点运行的真实子模型。
63.步骤s200,获取各所述节点子网络模型的时间开销。
64.通过时间开销采样,获取子模型中计算和通信的真实开销。
65.于本实施例中,所述时间开销包括:计算时间开销和通信时间开销;所述计算时间开销包括前向计算时间,反向计算时间,参数更新时间中的一种或多种;所述通信时间开销至少包括计算数值传输时间,计算数值汇总时间,模型梯度汇总时间。
66.1)计算时间开销:
67.1-1)前向计算时间:每个神经网络层的前向计算时间。
68.1-2)反向计算时间:每个神经网络层的反向计算时间。
69.1-3)参数更新时间:根据梯度进行参数更新所需要的时间。
70.2)通信时间开销:
71.2-1)计算数值传输时间:流水线并行中,假设两个流水线阶段在不同的节点上,计算数值从上个流水线阶段传递至下个流水线阶段作为输入的通信开销。
72.2-2)计算数值汇总时间:在模型并行中,将部分计算数值汇总成完整计算数值的通信开销。
73.2-3)模型梯度汇总时间:在数据并行中,反向计算完成后将不同节点之间的梯度汇总的通信开销。
74.2-4)其他通信开销:根据不同模型的任务,可能存在额外的通信开销(例如额外计算数值同步的通信开销)。
75.上述时间可以通过一次完整的训练流程(子图训练)来获取。与此同时,可以通过多次运行截取平均的方式来获取更一般的开销时间。
76.步骤s300,基于各所述节点子网络模型的时间开销模拟大集群网络模型的时间开销。
77.于本实施例中,还包括:在前向阶段和反向阶段模拟模型并行和流水线并行,在参数更新阶段模拟数据并行。
78.通过时间开销采样,可以建立时间轴以进行后续的分析。为了搭建符合规范的大规模集群大模型训练的时间轴,为了让并行模式符合业界计算流程,该方案定义了以下两种流水线并行算法可选:前向优先和反向优先。
79.前向优先:先完成所有数据的前向计算过程,再进行所有数据的反向计算过程。如图5前向优先的流水线算法,数据被分为4个micro-batch,编号0-3;流水线规模为4,计算节点编号p0-p3。所有计算节点都将所有数据的前向计算完成后,再等待后续节点完成反向计算。
80.反向优先:定义一个warm-up阶段,令在流水线中阶段在前的设备先计算若干阶段的前向计算。在稳定后再进行一次反向、一次前向(1f1b)的计算。如图6所示反向优先的流水线算法,数据被分为4个micro-batch,编号0-3;流水线规模为4,计算节点编号p0-p3。流水线阶段为0的p0节点完成四个micro-batch的数据计算,随着流水线阶段的增大,计算节点在warm-up阶段完成的前向计算数量减少。流水线阶段最后的p3节点只完成一个micro-batch的数据计算后便进入1f1b阶段的计算。在该节点所有的前向计算完成后,进行剩余micro-batch的反向计算。
81.如图7所示,对于模型训练的一次完整迭代(包含前向、反向、参数更新),该方案首先将前向和反向阶段模拟模型并行和流水线并行,在参数更新阶段模拟数据并行。模拟方案将分别在每个计算节点上进行,首先会根据前向优先或反向优先的算法进行前向阶段(对于前向优先算法)或warm-up阶段(对于反向优先算法)的建立,采用弹性算法的方式将计算和激活值通信开销加入。在参数更新阶段,该方案将添加数据并行梯度汇总开销、梯度更新时间与其他时间开销。
82.流水线并行的时间轴建模流程图如图8所示,它根据流水线算法的类型,对前向计算、反向计算与参数更新的建模细节进行阐述。流水线并行的模拟需要用到计算数值的传输时间。值得注意的是,流水线并行中,并非所有的计算节点都需要传输参数。其中“是否需要传输激活值/梯度”需要判断以下条件:该流水线阶段是否为第一个阶段或最后阶段、传输的对计算目标节点是否在同一台机器上。无论是采用前向优先还是反向优先算法,该流程图都会严格的按照规定的规则和算法本身将所有计算和通信添加至时间轴上。
83.根据模型并行模拟单micro-batch的前向与反向开销将利用前反向计算时间与计算数值汇总时间。同时也将根据模拟的模型并行规模对收集到的相关数据进行放缩,以收集真实的情况。
84.由于数据并行与训练本身无关,仅仅在梯度更新前新增一个参数all-reduce的阶段。对于数据并行,本实施例需要做all-reduce的设备所进行计算的逻辑是完全相同的。因此,对数据并行的模拟只需要插入参数的汇总时间即可。
85.步骤s400,基于模拟的大集群网络模型的时间开销进行并行策略搜索,输出最优并行策略。
86.于本实施例中,所述并行策略的搜索的方式采用网格搜索的方法,搜索的内容为由集群规模确定的流水线并行度、模型并行度与数据并行度。
87.即本实施例中,自动并行策略的搜索方式采用网格搜索的方法进行,搜索的内容为由集群规模确定的流水线并行度、模型并行度与数据并行度。由于其搜索空间很小,因而可以采用网格搜索的方式获得较高的效率。
88.图9展示了自动并行策略的搜索方案。具体地,如图9所示,于本实施例中,所述基于模拟的大集群网络模型的时间开销进行并行策略搜索,输出最优并行策略包括:
89.1)输入大集群网络模型的集群规模、模型切分与时间开销数据;
90.2)依次模拟并行策略的时间开销,并将时间开销最低的并行策略确定为最优并行策略。
91.本实施例中,用户与软件层的交互包括:
92.a)用户指定系统所需要执行的模型方案;
93.b)用户输入训练集群的规模;
94.c)用户确认搜索得到的并行策略。
95.本实施例中系统运行逻辑包括:
96.a)根据用户确定的模型,将模型切分,在小集群上收集时间开销;
97.b)根据用户确定训练集群规模与时间开销,搜索最优的集群并行训练策略。
98.本实施例利用了网络级模拟的并行策略搜索方案,模拟精度高、代价小,同时搜索出来的并行策略方案效果更佳。
99.实施例2
100.如图10所示,本实施例提供一种电子设备101,所述电子设备101包括:处理器1001及存储器1002;所述存储器1002用于存储计算机程序;所述处理器1001用于执行所述存储器1002存储的计算机程序,以使所述电子设备101执行如实施例1中基于网络级模拟的自动并行策略搜索方法的步骤。
101.处理器1001用于自动并行策略搜索程序的执行与模型的训练。存储器1002用于存
车自动并行策略搜索程序,神经网络的模型与相关参数。
102.此外,本实施例中,所述电子设备101还包括输入输出设备,通过总线和处理器进行数据传输。输入输出设备用于与用户之间的交互。
103.由于基于网络级模拟的自动并行策略搜索方法的步骤的具体实施过程已经在实施例1中进行了详细说明,在此不再赘述。
104.处理器1001为(central processing unit,中央处理器)。存储器1002通过系统总线与处理器1001连接并完成相互间的通信,存储器1002用于存储计算机程序,处理器1001用于运行计算机程序,以使所述处理器1001执行所述的基于网络级模拟的自动并行策略搜索方法。存储器1002可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
105.此外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器1001执行时实现实施例1中所述的基于网络级模拟的自动并行策略搜索方法中的步骤。实施例1已经对所述基于网络级模拟的自动并行策略搜索方法进行了详细说明,在此不再赘述。
106.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
107.综上所述,本发明不仅支持模型并行与流水线并行场景下的模拟,可以覆盖到现有的全部并行训练场景,同时整网拆分的性能评测方案,提升了模拟的准确率与速度。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
108.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中包括通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1