CN117436509A - 模型训练设备的性能优化方法、装置及设备 - Google Patents
模型训练设备的性能优化方法、装置及设备 Download PDFInfo
- Publication number
- CN117436509A CN117436509A CN202311236843.7A CN202311236843A CN117436509A CN 117436509 A CN117436509 A CN 117436509A CN 202311236843 A CN202311236843 A CN 202311236843A CN 117436509 A CN117436509 A CN 117436509A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- stage
- determining
- block
- 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
- 238000012549 training Methods 0.000 title claims abstract description 226
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000005457 optimization Methods 0.000 title claims abstract description 16
- 230000006854 communication Effects 0.000 claims abstract description 138
- 238000004891 communication Methods 0.000 claims abstract description 137
- 238000012163 sequencing technique Methods 0.000 claims abstract description 26
- 230000002776 aggregation Effects 0.000 claims abstract description 24
- 238000004220 aggregation Methods 0.000 claims abstract description 24
- 230000001360 synchronised effect Effects 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims description 119
- 230000008569 process Effects 0.000 claims description 54
- 230000002441 reversible effect Effects 0.000 claims description 47
- 230000001186 cumulative effect Effects 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000010365 information processing Effects 0.000 claims description 12
- 230000000007 visual effect Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000003058 natural language processing Methods 0.000 claims description 5
- 238000000455 protein structure prediction Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000013528 artificial neural network Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 102000004169 proteins and genes Human genes 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 125000003275 alpha amino acid group Chemical group 0.000 description 1
- 150000001413 amino acids Chemical class 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- 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
- G06N3/098—Distributed learning, e.g. federated learning
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
Abstract
本公开提供了一种模型训练设备的性能优化方法、装置及设备,涉及本公开涉及人工智能技术领域,尤其涉及深度学习、大模型训练、分布式并行策略等技术领域。具体实现方案为:确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对目标排序位置的模型块进行同步调聚合通信;在通信时机,对目标模型块的反向梯度执行聚合通信。本公开实施例中通过使多个模型训练设备的通信时机基本保持一致,从而尽可能消除部分气泡,以提高设备的性能,进而可以最大程度地利用模型训练设备的并行计算能力。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及深度学习、大模型训练、分布式并行策略等技术领域。
背景技术
大模型是指具有大量参数和复杂结构的机器学习模型。大模型可以处理海量数据,从而提高机器学习模型的准确性和泛化能力。大模型具有更高的复杂度和更强的灵活性,可以处理更加复杂的问题。大模型具有更多的参数和更为复杂的结构,能够更加准确地表达数据分布和学习到更复杂的特征,从而提高模型的准确率和性能。
大模型具有更广泛的应用场景和更高的表现能力,然而,大模型需要处理大量的数据和参数,训练和推理时间较长,需要消耗更多的计算资源。
发明内容
本公开提供了一种模型训练设备的性能优化方法、装置及设备。
根据本公开的一方面,提供了一种模型训练设备的性能优化方法,包括:
确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对目标排序位置的模型块进行同步调聚合通信;其中,当前模型训练设备为多个模型训练设备中的任意训练设备;多个模型训练设备用于训练同一目标模型;目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
在通信时机,对目标模型块的反向梯度执行聚合通信。
根据本公开的另一方面,提供了一种模型训练设备的性能优化装置,包括:
确定模块,用于确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对目标排序位置的模型块进行同步调聚合通信;其中,当前模型训练设备为多个模型训练设备中的任意训练设备;多个模型训练设备用于训练同一目标模型;目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
执行模块,用于在通信时机,对目标模型块的反向梯度执行聚合通信。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
本公开实施例中在分布式训练目标模型的多个模型训练设备中,采用数据并行结合1F1B交错式调度方式的流水线并行策略的基础上,通过实现多个模型训练设备同步调的通信,可有效降低气泡率,提高模型训练设备的性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例中模型训练设备的性能优化方法的流程示意图;
图2是根据本公开一实施例提供的一种模型训练过程的时序图;
图3是根据本公开另一实施例提供的另一种模型训练过程的时序图;
图4是根据本公开另一实施例提供的再一种模型训练过程的时序图;
图5是根据本公开一实施例中模型训练设备的性能优化装置的结构示意图;
图6是用来实现本公开实施例的模型训练设备的性能优化方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
随着大数据时代的到来,人们生活中产生的数据不断增加。为了处理海量的数据,解决各种复杂的问题,以及满足用户对深度学习任务高效率的要求,往往经过复杂的训练过程得到一个优良的模型。为了较好地完成模型的训练,常用分布式并行训练的方法加速训练。相关技术中通常采用数据并行和流水线并行两种方式实现,以下对前述两种方式分别进行介绍。
其中,数据并行的原理是:数据集被分为多份,每个模型训练设备上保存完整的训练参数,并处理一份子数据集,以加速模型训练过程。
流水线并行是模型并行中的一种方式,其原理是:通过切分模型到不同模型训练设备,降低单个模型训练设备的显存消耗,相邻设备间通过通信链路传输数据,以实现超大规模模型训练。
但是数据并行要求模型训练设备的内存能够容纳完整的模型,可扩展性差。除此之外,流水线并行对模型进行切分时,没有综合考虑模型训练设备的负载均衡和整体的通信时间。单独使用流水线并行训练,模型训练设备未充分得到利用,模型训练的效率仍有待提高。
因此,相关技术中可以采用数据并行策略和流水线并行策略训练大模型。但这种方式,在结合反向梯度通信的过程中,整体的bubble率(空泡率)仍有待改善。bubble会导致模型训练设备浪费计算资源,为了提高模型训练效果,以实现大规模模型训练设备性能的提升,本申请提出了一种模型训练设备的性能优化方法,该性能优化方法结合了数据并行和流水线并行,实现了同步调的通信,以此提高了模型训练设备计算的overlap(重叠率),减少整体的bubble率,由此提高模型训练设备的性能。该模型训练设备的性能优化方法的具体实现过程如图1所示,包括:
S101,确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对目标排序位置的模型块进行同步调聚合通信。
其中,当前模型训练设备为多个模型训练设备中的任意训练设备;多个模型训练设备用于训练同一目标模型;目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
S102,在通信时机,对目标模型块的反向梯度执行聚合通信。
本公开实施例中的目标模型即为大模型。该大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域,大模型通常是指具有数百万到数十亿参数的神经网络模型。这些模型需要大量的计算资源和存储空间来训练和存储,并且往往需要进行分布式计算和特殊的硬件加速技术。
大模型的设计和训练旨在提供更强大、更准确的模型性能,以应对更复杂、更庞大的数据集或任务。大模型通常能够学习到更细微的模式和规律,具有更强的泛化能力和表达能力。
本公开实施例中,通过使多个模型训练设备的通信时机一致,可以最大程度地利用模型训练设备的并行计算能力。控制多个模型训练设备之间同步调地通信,合理地安排通信的时机,可以因通信导致的bubble,从而减少bubble率,提高计算的overlap,还可能缩短计算耗时,提高通信的效率,从而提升模型训练设备的性能。
在使用流水线并行策略进行模型训练时,目标模型按照流水线并行策略分为多个模型阶段。例如,图2中将目标模型分为四个模型阶段,分别是模型阶段0、模型阶段1、模型阶段2、模型阶段3。每个模型阶段部署到一一对应的模型训练设备中。每个模型阶段可划分为多个模型块,每个模型块包括一层或多层神经网络层。在包括多层神经网络层的情况下,该多层神经网络层是连续的。例如,目标模型具有编号依序为0-15的神经网络层,则目标模型一共具有16层神经网络层。若部署到4个模型训练设备上进行训练,则每个模型训练设备可部署4个神经网络层。相应的目标模型可划分为4个模型阶段,每个模型阶段假设划分为两个模型块。则如图2所示,编号为0、1、8、9的神经网络层构建成第一个模型阶段(即图2中的模型阶段0)的两个模型块,分别为<0、1>、<8、9>;编号为2、3、10、11的神经网络层构建成第二个模型阶段(即图2中的模型阶段1)的两个模型块,分别为<2、3>、<10、11>;编号为4、5、12、13的神经网络层构建成第三个模型阶段(即图2中的模型阶段2)的两个模型块,分别为<4、5>、<12、13>;编号为6、7、14、15的神经网络层构建成第四个模型阶段(即图2中的模型阶段3)的两个模型块,分别为<6、7>、<14、15>。
继续在图2所示模型阶段的基础上进行说明。在训练的时候,先采用第一个模型阶段的第一个模型块进行前向计算,第一个模型阶段的第一个模型块的前向计算结束后进行第二个模型阶段的第一个模型块的前向计算,依次向下传递,直到第四个模型阶段完成第一个模型块的前向计算。开始对第一个模型阶段的第二个模型块进行前向计算,计算结果向下传递,传递到第四个模型阶段完成第二个模型块的前向计算之后,将开始交替执行前向计算和反向计算。并把反向计算的结果依次向上传递。直到第一个模型阶段的第一个模型块的反向计算全部结束,即完成了16层神经网络的反向传播。
在本公开实施例中,目标模型采用数据并行策略结合1F1B交错式调度方式的流水线并行策略进行训练,且按照流水线并行策略目标模型切分为多个模型阶段,各模型阶段分配到相应的模型训练设备中进行训练;在数据并行策略中,训练数据的每个批次(minibatch)被划分为多个微批次(micro batch)。如图2所示,训练数据被切分为多个minibatch,每个mini batch被切分为4个micro batch。在图2中,相同数字编号的为同一microbatch。A代表对各模型阶段的第一个模型块进行前向计算,B代表对各模型阶段的第二个模型块进行前向计算。b代表对各模型阶段的第二个模型块进行反向梯度计算。a代表对各模型阶段的第一个模型块进行反向梯度计算。每个micro batch依序经过各模型块的处理,等同于按照目标模型的神经网络层的顺序完成前向处理操作。反向的时候,模型块的更新顺序和前向过程正好相反。
例如,继续以图2的模型切分方式为例,图2的时序图中前向过程中每个模型阶段的第一个模型块的前向计算采用灰色填充的矩形框表示,每个模型阶段的第二个模型块的前向计算采用白色填充的矩形框表示。图2的反向过程中,每个模型阶段的第二个模型块的反向计算采用黑色填充的矩形框表示;每个模型阶段的第一个模型块的反向计算采用点状底纹填充的矩形框表示(该类矩形框均包含字符a)。micro batch的前向过程为,先经由模型阶段0的第一个模型块<0、1>处理后,传递给模型阶段1的第一个模型块<2、3>,再将处理结果传递给模型阶段2的第一个模型块<4、5>,再将处理结果传递给模型阶段3的第一个模型块<6、7>,之后处理结果依序传递给模型阶段0的第二个模型块<8、9>、再将处理结果传递给模型阶段1的第二个模型块<10、11>、再将处理结果传递给模型阶段2的第二个模型块<12、13>、最后将处理结果传递给模型阶段3的第二个模型块<14、15>。由此,通过不同的模型阶段、不同的模型的配合完成整个16层神经网络的前向传递过程。反向过程的处理顺序正好和前向过程相反。例如,参照图2中包含字符b的黑色矩形框,先执行模型阶段3第二个模型块的反向计算,然后执行模型阶段2的第二个模型块的反向计算,接着执行模型阶段1的第二个模型块的反向计算,随后执行模型阶段0的第二个模型块的反向计算。在第二个模型块的反向计算结束后,参照图2中的包含字符a的点状底纹矩形框,依序执行模型阶段3、模型阶段2、模型阶段1和模型阶段0的第一个模型块的反向计算。
本公开实施例中采用1F1B交错式调度方式,使得每个模型训练设备可交替执行前向和反向过程。在1F1B的交错式调度中,每个设备可以对多个层的子集(即模型块)进行计算,而不是一个连续层的集合。
1F1B模式是一种前向计算和反向计算交叉进行的方式。在1F1B模式下,前向计算和反向计算交叉进行,可以及时释放不必要的中间变量。
在1F1B的交错式调度方式中,采用多个mini batch训练目标模型,每个minibatch被划分为多个micro batch。在同一个模型训练设备上构建多个micro batch数据的计算任务的依赖关系。例如,每个模型训练设备对第i个micro batch数据进行前向计算后,直接对第i个micro batch的前向计算结果进行反向计算,直至完成目标次数个反向计算后进行聚合通信,以便于基于反向计算得到的梯度更新模型参数。
如图2所示,包含字符A的灰色填充的矩形框和包含字符B的白色填充的矩形框为前向计算过程,黑色填充的矩形框为针对白色矩形框的反向计算过程,包含字符a的点状底纹填充的矩形框为针对灰色矩形框的反向计算过程。每个mini batch被切分为4个microbatch。以第二个模型块为例介绍反向计算过程。图2中模型阶段0的第二个模型块在模型阶段3完成前向计算后针对模型阶段3的第二个模型块<14、15>进行反向梯度计算(如图2中模型阶段3的1b),计算结果传递给模型阶段2的模型训练设备,由该模型训练设备针对模型阶段2的第二个模型块<12、13>进行反向梯度计算(如图2中模型阶段2中的1b),再将处理结果传递给模型阶段1的模型训练设备。模型阶段1的模型训练设备针对第二个模型块<10、11>进行反向梯度计算,再将处理结果传递给模型阶段0的模型训练设备。模型阶段0的模型训练设备针对第二个模型块<8、9>进行反向梯度计算。之后处理结果依序传递给模型阶段3,完成针对模型阶段3的第一个模型块<6、7>的反向梯度计算,再将处理结果传递给模型阶段2,完成针对模型阶段2的第一个模型块<4、5>的反向梯度计算,再将处理结果传递给模型阶段1,完成模型阶段1的第一个模型块<2、3>的反向梯度计算,再将处理结果传递给模型阶段0,以完成模型阶段0的第一个模型块<0、1>的反向梯度计算。由此,通过不同的模型阶段、不同的模型的配合完成整个16层神经网络的反向传递过程。
本公开实施例中使用1F1B交错式调度方式的流水线并行策略结合数据并行策略进行分布式训练,交替执行前向计算和反向计算,可以释放不必要的中间变量,减少内存资源的消耗。此外,采用多个批次训练模型,每个批次被划分为多个微批次可以提高内存效率,加速模型训练速度。在训练数据集较大时,将整个批次一次性加载到内存中可能会导致内存不足的问题,采用多个批次训练模型可以逐个加载和处理,有效的利用内存资源。将多个批次划分为多个微批次可以并行处理,从而加速训练速度。
在另一些例子中,每个模型块不仅可以包括多个神经网络层,每个模型块还可以包括一层神经网络层。例如,图3中,相应的目标模型划分为4个模型阶段,每个模型阶段包括有依序排布的4个模型块。其中,每个模型训练设备对4个模型块执行计算,每个模型块有一层神经网络层。如图3所示,模型阶段0有即为模型块也为神经网络层的0、4、8、12的四个神经网络层;模型阶段1有即为模型块也为神经网络层的1、5、9、13的四个神经网络层;模型阶段2有即为模型块也为神经网络层的2、6、10、14的四个神经网络层;模型阶段3有即为模型块也为神经网络层的3、7、11、15的四个神经网络层。其中,模型阶段0的第一个模型块0用斜线底纹内嵌五角星的矩形框代表执行前向过程,处理结果依序向下传递到模型阶段3的第一个模型块3。之后处理结果依序传递给模型阶段0的第二个模型块4。第二个模型块在图3中采用竖线条纹内嵌正方形的矩形框代表执行前向过程,并将结果依序向下传递给模型阶段3的第二个模型块7。之后处理结果依序传递给模型阶段0的第三个模型块8,第三个模型块采用横线条纹内嵌圆形的矩形框代表的数据执行前向过程,并将结果依序向下传递给模型阶段3的第三个模型块11。之后处理结果依序传递给模型阶段0的第四个模型块12,第四个模型块采用点状条纹内嵌箭头的矩形框代表执行前向过程,并将结果依序向下传递给模型阶段3的第四个模型块15。前向传播过程执行完成后开始执行反向传播过程,反向传播过程和前向传播模型块更新的顺序正好相反。
通过这种方案,流水线中每个模型训练设备都被分配多个流水线阶段,每个流水线阶段的计算量更少。
需要说明的是,目标模型可划分的模型阶段数量,以及每个模型阶段包含的模型块的数量,每个模型块包含的神经网络层的数量可以根据实际需求确定,本公开实施例对此不作限定。
图2和图3均可理解为模型训练过程的时序图。图2和图3中横轴代表时间,纵向堆叠的矩形框代表相应时间执行的操作类型。其中,操作类型分为两部分,包括计算和通信。如图3所示,针对每个模型训练设备上面包含较为密集的矩形框的部分为计算部分。图3中,斜线底纹内嵌五角星、竖线底纹内嵌正方形、横线底纹内嵌圆形、点状底纹内嵌箭头的矩形框表示正向计算部分,浅灰色底纹内嵌水滴形、黑色底纹内嵌心形、白色底纹内嵌菱形、深灰色底纹内嵌三角形的矩形框为反向计算部分。下面的包含的用字母A开头的矩形框的部分为通信部分。
图2和图3均体现了1F1B的交错式调度方式。然而,基于1F1B模式进行调度的过程中各个模型训练设备,采用异步调通信,即同一排序位置的模型块的反向梯度通信过程,分散在不同时间完成。异步调通信,将会导致计算过程中产生多余的气泡,增加了计算的时间,从而产生了“累积效应”,导致整个端到端的bubble率增加。如图3所示,每个模型阶段的通信(如A0、B0、C0、D0)分散在不同的时间执行通信,在反向传播的过程中,浅灰色底纹内嵌水滴形的矩形框和黑色底纹内嵌心形的矩形框中间的气泡越来越大,产生了“累积效应”即累加产生多个bubble,从而计算时间被拉长,整个端到端的bubble率增加。
为了消除这种“累积效应”,本公开实施例中,需要在并行流水线并行策略的1F1B交错式调度中,控制所有参与流水线计算的模型训练设备同步调地进行数据并行的梯度通信。如图4所示,每个模型阶段在同一通信时机进行通信,随着反向计算结果向上传播的过程中,相对于图3来说,浅灰色底纹内嵌水滴形的矩形框和黑色底纹内嵌心形的矩形框之间的气泡越来越小,整个模型训练过程中的气泡明显减少,使得反向传播过程中的计算耗时减少。提高了模型训练效率的同时也降低了bubble率,从而提高了整个模型训练设备的性能。
本公开实施例中,确定当前模型训练设备针对目标排序位置的目标模型块的通信时机有两种实施方式,包括:
方式一、各个模型训练设备,可通过通信方式确定各个模型块的聚合通信的通信时机。
为了能够同步调的聚合通信,以消除气泡,本公开实施例中,可以通过不同模型训练设备之间的通信机制来实现同步调通信。可实施为:响应于接收到同步消息的情况下,确定下一计算阶段为目标模型块的通信时机,同步消息为多个模型阶段中的第一个模型阶段的模型训练设备针对目标排序位置的模型块发出的。
可以理解为,第一个模型阶段的模型训练设备针对目标排序位置的模型块完成反向梯度计算后可发出该同步消息,以便于实现多个模型训练设备针对同一排序位置的模型块完成反向通信。例如,在图4中,模型阶段0的通信时机确定之后,模型阶段1、2、3的通信时机自动向后移动rank(计算阶段)个步调以使得和模型阶段0的通信时机同步调。
在本公开实施例中,多个模型训练阶段相应于一个模型训练设备的第一个模型阶段,使多个模型训练设备进行同步调通信,提高了计算的overlap,减少bubble率,提高了模型训练设备的性能。
如图4所示,在第一个模型阶段,A0即为对排序位置为第4个模型块12的反向梯度执行聚合通信的部分,聚合通信开始的时间即为通信时机。B0为排序位置为第3个模型块8的反向梯度执行聚合通信的部分。C0为排序位置为第2个模型块4的反向梯度执行聚合通信的部分。D0为排序位置为第1个模型块0的反向梯度执行聚合通信的部分。由此可知,聚合通信的顺序和模型块前向计算的顺序是相反的。因此,对于模型阶段1、2、3对各目标模型块的执行聚合通信部分也是如此,可以将目标模型块和其聚合通信部分一一对应,本公开在此不再一一赘述。
方式二、各个模型训练设备可自行确定各个模型块的聚合通信的通信时机。
可实施为:在满足目标约束条件的情况下,确定下一计算阶段为目标模型块的通信时机;
目标约束条件包括:
1)、当前模型训练设备针对目标模型块的反向梯度计算次数大于或等于目标次数;
2)、在通信时机,多个模型阶段中的第一个模型阶段中目标排序位置的模型块的反向梯度计算完毕。
如图2所示,第一个模型阶段为模型阶段0,第一个模型阶段中的模型块包括<0、1>和<8、9>共两个模型块。在图2模型阶段0中分别用灰色矩形框和白色矩形框表示不同排序位置的模型块的前向计算过程。黑色矩形框为针对白色矩形框的反向传播过程,点状底纹的矩形框为针对灰色矩形框的反向传播过程。由图2可知,第一个模型阶段中目标排序位置的模型块的反向梯度计算完毕可理解为:以第二个模型块为例,模型阶段0中针对同一minibatch的黑色矩形框的反向梯度计算完毕。
本公开实施例中,基于目标约束条件进行同步调通信,该同步调通信的时机可以通过各个模型训练设备自行确定,这样可以更精准的控制通信的时机,确保通信发生在需要的时候。通过目标约束条件精确控制通信时机,可以缩短计算时间,减少bubble率,从而提高模型训练设备的性能,进而提高模型训练效率。
为了确定是否满足目标约束条件,本公开实施例中,示例性给出以下两种实施方式,包括:
目标约束条件的判定方式1):
确定满足目标约束条件,可实施为:确定目标模型块的待同步反向梯度的累积量;在累积量大于或等于目标次数,且确定多个模型阶段中的第一个模型阶段中目标排序位置的模型块能够启动聚合通信的情况下,确定目标模型块满足目标约束条件。
实施时,可以针对每个模型块,分别统计反向计算的次数,以便于确定该模型块是否满足通信的要求。
关于第一个模型阶段中目标排序位置的模型块是否能够启动聚合通信,可以根据前向计算和反向计算所需的时长估计得出。具体的估计方式可以采用神经网络,也可以根据相应模型块的计算复杂度来推理得到,具体的推理过程本公开不再进行阐述,能够得到上述解决方案的推理方法在本公开中都可以使用。
本公开实施例中,梯度累积是一种非常简单的计算方式,使用这种方式统计反向计算的次数,可以节省计算资源,降低通信的开销,提高模型训练的效率。
目标约束条件的判定方式2):
确定满足目标约束条件可实施为:对当前模型训练设备的反向梯度计算次数在默认值的基础上进行累积计数;在累积计数大于或等于目标阈值,且基于累积计数确定完成了整数个批次的反向梯度计算的情况下,确定目标排序位置的目标模型块满足目标约束条件。
其中,目标阈值基于目标次数确定,以使得当前模型训练设备针对目标模型块的反向梯度计算次数大于或等于目标次数。
本公开实施例中,在调度过程中模型训练设备针对每个micro batch执行一次反向梯度计算,进行一次梯度累积计数。假设目标次数Acc_Step为8,则针对一个模型块完成的反向梯度计算的累积次数大于或等于8次的情况下执行聚合通信。在图2中,针对模型阶段0的第二个模型块,执行完黑色矩形框所示的1b、2b、3b、4b所示的反向梯度计算之后,后面累积的反向梯度计算是针对第一个模型块的,但针对第二个模型块需要累积反向梯度次数到8次才可以执行针对第二个模型块的聚合通信,以确保同一模型块能完成Acc_Step次数。
本公开实施例中,当前模型训练设备确定所含有的目标模型块的通信时机,不受其它模型训练设备的影响。各模型训练设备可以根据约束条件识别各个模型块的反向梯度计算结果的通信时机,相对于设备间交互通信时机。此外,整个过程累积计数和目标预设的判定都是非常简单的计算操作,对计算资源的占用消耗少,可以忽略不计,从而提高模型训练的效率。
本公开实施例中,基于累积计数的默认值的设定不同,给出了不同的识别通信时机的方案。默认值的设置方式是根据同步调通信所需消除的气泡,通过实验推理得到的,推理的过程不进行赘述。下面对不同默认值设置方式下的通信时机进行说明。
(1)、在第一种默认值的基础上,识别聚合通信的通信时机
本公开实施例中,在默认值为空的情况下,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定目标阈值。
例如,将默认值设置为空,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定的目标阈值为(Acc_Step//PP–1)*PP*VP;其中,Acc_Step表示反向梯度计算次数;PP表示切分的模型阶段数;VP表示每个模型阶段包含的模型块的数量;//表示向下取整。
在本公开实施例中,将当前模型训练设备的反向梯度计算次数的默认值设置为空,可以减少内存的占用。此外,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定目标阈值,可以使模型训练设备及时的确定通信时机,减少bubble率,提高模型训练的效率。
在一些实施例中,基于累积计数确定完成了整数个批次的反向梯度计算,可实施为:确定累积计数与当前模型训练设备所具有的模型阶段编号和目标阈值的差值;在差值被目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。
例如,每个模型训练设备设置一个计数器counter,在默认值为空的情况下,counter=0。
本公开实施例中,模型训练设备基于1F1B的交错式调度方式完成对目标模型的训练。执行VP的1F1B交错式调度,执行一次反向计算,计数器计数加1,则counter=counter+1。
当第rank计算设备(即第rank个模型阶段)的计数器满足以下条件时,则第VP-(counter-rank-(Acc_Step//PP–1)*PP*VP)//PP的模型块,确定为目标排序位置的目标模型块,对该目标模型块进行通信,与计算流并发。其中,rank为当前模型训练设备所具有的模型阶段编号。
条件a)、counter大于(Acc_Step//PP–1)*PP*VP
条件b)、counter-rank–(Acc_Step//PP–1)*PP*VP可以被Acc_Step整除。
其中,条件b为确定累积计数与当前模型训练设备所具有的模型阶段编号和目标阈值的差值。在差值被目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。
在本公开实施例中,将累计计数和当前模型训练设备所具有的模型阶段编号的差值与目标阈值相结合,可以根据当前模型训练设备所具有的模型阶段编号灵活地控制目标模型块的通信时机,通过确定完成整数个批次的反向梯度计算,更好地控制模型训练的过程,节省了内存空间的使用,提高了模型训练的效率。
例如,如图4所示,PP为4,VP为4,Acc_Step设置为8,即将目标模型分为4个模型阶段,每个mini batch划分为4个micro batch,反向梯度累积计数为8。在默认值为空的情况下,counter=0,目标阈值为16。以模型阶段0为例,每个micro batch在4个模型训练设备上分别进行了一次反向计算,每个micro batch的反向计算结束后进行一个反向梯度累计计数,计数器计数加1,直到完成目标模型块的反向梯度计算的计数器计数达到16。此时,counter-rank–(Acc_Step//PP–1)*PP*VP的值为0,可以被Acc_Step整除且在对下一个模型块的micro batch进行第一次反向计算时,counter的计数大于16。可以确定此时为目标模型块的通信时机,因此第VP-(counter-rank-(Acc_Step//PP–1)*PP*VPP)//PP的模型块进行聚合通信。其中,第VP-(counter-rank-(Acc_Step//PP–1)*PP*VPP)//PP的模型块为目标排序位置的目标模型块。
(2)、在第二种默认值的基础上,识别聚合通信的通信时机
在本公开实施例中,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定默认值的情况下,确定目标阈值设置为指定值。
例如,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定的默认值为-(Acc_Step//PP–1)*PP*VP,目标阈值设置为指定值0;其中,Acc_Step表示反向梯度计算次数;PP表示切分的模型阶段数;VP表示每个模型阶段包含的模型块的数量。
在本公开实施例中,根据反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定设置反向梯度计数次数的默认值可以更好地适应模型训练设备的限制,可以使模型训练过程更加稳定,以改善模型的性能。此外,将目标阈值设置为指定值,可以减少调参的复杂性,提高模型训练的效率。
本公开实施例中,每个模型训练设备设置一个计数器counter,初始值counter=-(Acc_Step//PP–1)*PP*VP。执行VPP的1F1B调度,执行一次反向计算,counter计数加1,counter=counter+1。
当第rank计算设备的计数器满足以下条件时,将第VP-(counter-rank)//PP的模型块,确定为目标排序位置的目标模型块,对该目标模型块进行通信,与计算流并发。
条件a)、counter大于0。
条件b)、counter-rank可以被Acc_Step整除。
综上,无论方式(1)还是方式(2)中,条件b可理解为,确定累积计数与当前模型训练设备所具有的模型阶段编号和目标阈值的差值;在差值被目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。在本公开实施例中,将累计计数和当前模型训练设备所具有的模型阶段编号的差值与目标阈值相结合,可以根据当前模型训练设备所具有的模型阶段编号灵活地控制目标模型块的通信时机,通过确定完成整数个批次的反向梯度计算,更好地控制模型训练的过程,节省了内存空间的使用,提高了模型训练的效率。
而且,方式(1)还是方式(2)中均可基于累积计数、模型阶段编号、目标阈值、切分的模型阶段数,以及每个模型阶段包含的模型块的数量,确定目标排序位置的目标模型块。在本公开实施例中通过动态的确定目标模型块,可以根据不同的排序目标进行灵活的模型调整,可以满足不同排序任务的需求,通过将目标模型块确定为目标排序位置的目标模型块,只对目标模型块进行反向梯度计算和参数更新,可以减少不必要的计算和存储开销,提高模型训练的效率。
例如,在PP为4,VP为4,Acc_Step为8时,默认值为-16,目标阈值为0。以图4中模型阶段0的第四个模型块12对点状底纹内嵌箭头的矩形框代表的数据执行前向过程,灰色底纹内嵌水滴形的矩形框为反向过程为例进行解释。当目标模型完成模型阶段0的第四个模型块的全部反向梯度计算后,反向梯度累积计数为4。当完成模型阶段0的所有模型块的一个mini batch的反向传播过程时,反向梯度累积计数达到16次,counter=0。其计数器计数结果达到目标阈值且模型训练设备所具有的模型阶段编号和目标阈值的差值可以被目标次数Acc_Step整除的情况下,则下一计算阶段即为目标模型块的通信时机。
无论采用上述方式一或方式二中何种方式,本公开实施例中,执行聚合通信的方式可以为ALL Reduce(全局归约),也可以为Broadcast(广播)、Scatter(划分)、Gather(聚集)等,本公开对此不做限制。
在当前设备的模型阶段的各个模型块均完成聚合通信的情况下,基于优化器对模型阶段进行参数更新。
如图4所示,每个模型训练设备的模型阶段的4个模型块均完成聚合通信的情况下,都有一个优化器S对相应的模型阶段进行参数更新,且该参数更新是基于反向梯度计算的结果进行的。其中,优化器可以使用动量优化器、自适应学习率优化器、正则化优化器等,本公开对此不做限制。
本公开实施例中,使用优化器对模型阶段的参数进行更新,可以改善模型性能,通过调整参数的更新方式和速度,是模型更好的适应训练数据和优化目标。
本公开实施例中,目标模型执行以下任务中的至少一种:
自然语言处理、视觉信息处理、多模态信息处理、蛋白质结构预测
在一些实施例中,目标模型可以执行自然语言处理。首先,目标模型接收到待处理文本,该待处理文本可以是一个问题(query)、一个命令或是一个陈述。目标模型会将经过预处理的待处理文本转化为机器可理解的表示形式,通常将待处理文本转化为文本向量表示。根据具体的任务要求,模型会执行相应的操作。例如,基于文本向量完成问答任务或翻译任务。在任务执行完成后,模型会生成相应的输出。在问答任务中输出的是答案;在翻译任务中输出的是翻译结果。
在另一些实施例中,目标模型可以执行视觉信息处理。首先,目标模型接收到视觉输入,例如图像或视频。对于图像,目标模型会将其转化为计算机可理解的格式,如像素矩阵。对于视频,目标模型会将其拆分为一系列图像帧。根据具体的任务需求,模型会执行相应的操作。例如,目标模型可以对图像进行分类或者回归任务。在任务执行完成后,模型会生成相应的输出。在分类任务中,目标模型的输出可以是一个分类标签;在回归任务中,目标模型的输出可以是目标检测框。目标模型还可以完成其它的视角信息处理任务,例如输出图像分割结果等,即包含了分类和回归任务。
在另一些实施例中,目标模型可以执行多模态信息处理。多模态信息处理涉及到多种输入模态和多种特征提取方法的组合。首先,目标模型接收到多模态输入,例如图像和文本、图像和音频等。目标模型会针对每种输入模态提取特征,一旦提取了每种模态输入的特征,目标模型会将他们融合,将不同模态的信息进行整合。根据具体的任务需求,目标模型会执行相应的操作,例如多模态情感分析任务,预测输入的情感类别、多模态问答任务,以回答与输入相关的问题。在任务执行完成后,模型会生成相应的输出,针对分类任务,输出可以是一个分类标签;针对问答任务,输出回答;针对推荐任务,输出推荐结果等。
在另一些实施例中,目标模型可以执行蛋白质结构预测。首先,目标模型接收到蛋白质的氨基酸序列作为输入,预测氨基酸之间的相互作用和空间关系,目标模型会根据序列预测的结果,使用结构建模技术生成蛋白质的初始结构,目标模型还可以使用优化算法调整原始结构的构象,使其能够最小化能量和满足物理约束。
需要说明的是,本公开的目标模型不局限于上述任务和应用场景,还可以将其扩展到其它单模态或者多模态任务中,具体可以根据实际应用场景来确定。
本公开实施例中,通过执行多种任务,模型可以学习到不同任务之间的相关知识和联系,这种知识共享可以促进不同任务之间的相互理解和交互,有助于提高模型的整体性能和理解能力。
基于相同的技术构思,本公开实施例还提供了一种模型训练设备的性能优化装置500,如图5所示,包括:
确定模块501,用于确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对目标排序位置的模型块进行同步调聚合通信;其中,当前模型训练设备为多个模型训练设备中的任意训练设备;多个模型训练设备用于训练同一目标模型;目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
执行模块502,用于在通信时机,对目标模型块的反向梯度执行聚合通信。
在一些实施例中,确定模块,包括:
第一确定子模块,用于在满足目标约束条件的情况下,确定下一计算阶段为目标模型块的通信时机;
目标约束条件包括:
当前模型训练设备针对目标模型块的反向梯度计算次数大于或等于目标次数;
在通信时机,多个模型阶段中的第一个模型阶段中目标排序位置的模型块的反向梯度计算完毕。
在一些实施例中,确定模块还包括第二确定子模块,用于基于以下方法确定满足目标约束条件:
确定目标模型块的待同步反向梯度的累积量;
在累积量大于或等于目标次数,且确定多个模型阶段中的第一个模型阶段中目标排序位置的模型块能够启动聚合通信的情况下,确定目标模型块满足目标约束条件。
在一些实施例中,确定模块还包括第三确定子模块,用于基于以下方法确定满足目标约束条件:
对当前模型训练设备的反向梯度计算次数在默认值的基础上进行累积计数;
在累积计数大于或等于目标阈值,且基于累积计数确定完成了整数个批次的反向梯度计算的情况下,确定目标排序位置的目标模型块满足目标约束条件;
目标阈值基于目标次数确定,以使得当前模型训练设备针对目标模型块的反向梯度计算次数大于或等于目标次数。
在一些实施例中,确定模块还包括第四确定子模块,具体用于:
在默认值为空的情况下,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定目标阈值。
在一些实施例中,确定模块还包括第五确定子模块,具体用于:
基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定默认值的情况下,确定目标阈值设置为指定值。
在一些实施例中,第三确定子模块,具体用于:
确定累积计数与当前模型训练设备所具有的模型阶段编号和目标阈值的差值;
在差值被目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。
在一些实施例中,第三确定子模块,具体用于:
基于累积计数、模型阶段编号、目标阈值、切分的模型阶段数,以及每个模型阶段包含的模型块的数量,确定目标排序位置的目标模型块。
在一些实施例中,确定模块,包括:
第六确定子模块,用于响应于接收到同步消息的情况下,确定下一计算阶段为目标模型块的通信时机,同步消息为多个模型阶段中的第一个模型阶段的模型训练设备针对目标排序位置的模型块发出的。
在一些实施例中,还包括:
更新模块,用于在当前模型训练设备的模型阶段的各个模型块均完成聚合通信的情况下,基于优化器对模型阶段进行参数更新。
在一些实施例中,目标模型执行以下任务中的至少一种:
自然语言处理、视觉信息处理、多模态信息处理、蛋白质结构预测。
在一些实施例中,目标模型采用数据并行策略结合1F1B交错式调度方式的流水线并行策略进行训练,且按照流水线并行策略目标模型切分为多个模型阶段,各模型阶段分配到相应的模型训练设备中进行训练;
数据并行策略中,训练数据的每个批次被划分为多个微批次。
当然,本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其它设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如模型训练设备的性能优化方法。例如,在一些实施例中,模型训练设备的性能优化方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的模型训练设备的性能优化方法的一个或多个步骤。备选地,在其它实施例中,计算单元601可以通过其它任何适当的方式(例如,借助于固件)而被配置为执行模型训练设备的性能优化方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
根据本公开的实施例,电子设备可以与通信部件、显示屏以及信息采集设备一体集成,也可以与通信部件、显示屏以及信息采集设备分体设置。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其它因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (27)
1.一种模型训练设备的性能优化方法,包括:
确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对所述目标排序位置的模型块进行同步调聚合通信;其中,所述当前模型训练设备为所述多个模型训练设备中的任意训练设备;所述多个模型训练设备用于训练同一目标模型;所述目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练所述目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
在所述通信时机,对所述目标模型块的反向梯度执行聚合通信。
2.根据权利要求1所述的方法,其中,所述确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,包括:
在满足目标约束条件的情况下,确定下一计算阶段为所述目标模型块的通信时机;
所述目标约束条件包括:
所述当前模型训练设备针对所述目标模型块的反向梯度计算次数大于或等于目标次数;
在所述通信时机,所述多个模型阶段中的第一个模型阶段中所述目标排序位置的模型块的反向梯度计算完毕。
3.根据权利要求2所述的方法,其中,确定满足所述目标约束条件,包括:
确定所述目标模型块的待同步反向梯度的累积量;
在所述累积量大于或等于所述目标次数,且确定所述多个模型阶段中的第一个模型阶段中所述目标排序位置的模型块能够启动聚合通信的情况下,确定所述目标模型块满足所述目标约束条件。
4.根据权利要求2所述的方法,其中,确定满足所述目标约束条件,包括:
对所述当前模型训练设备的反向梯度计算次数在默认值的基础上进行累积计数;
在所述累积计数大于或等于目标阈值,且基于所述累积计数确定完成了整数个批次的反向梯度计算的情况下,确定所述目标排序位置的所述目标模型块满足所述目标约束条件;
所述目标阈值基于所述目标次数确定,以使得所述当前模型训练设备针对所述目标模型块的反向梯度计算次数大于或等于目标次数。
5.根据权利要求4所述的方法,还包括:
在所述默认值为空的情况下,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定所述目标阈值。
6.根据权利要求4所述的方法,还包括:
基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定所述默认值的情况下,确定所述目标阈值设置为指定值。
7.根据权利要求4所述的方法,其中,所述基于所述累积计数确定完成了整数个批次的反向梯度计算,包括:
确定所述累积计数与所述当前模型训练设备所具有的模型阶段编号和所述目标阈值的差值;
在所述差值被所述目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。
8.根据权利要求4所述的方法,其中,所述确定所述目标排序位置的目标模型块,包括:
基于所述累积计数、模型阶段编号、所述目标阈值、切分的模型阶段数,以及每个模型阶段包含的模型块的数量,确定所述目标排序位置的目标模型块。
9.根据权利要求1所述的方法,其中,所述确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,包括:
响应于接收到同步消息的情况下,确定下一计算阶段为所述目标模型块的通信时机,所述同步消息为所述多个模型阶段中的第一个模型阶段的模型训练设备针对所述目标排序位置的模型块发出的。
10.根据权利要求1-9中任一项所述的方法,还包括:
在所述当前模型训练设备的模型阶段的各个模型块均完成聚合通信的情况下,基于优化器对所述模型阶段进行参数更新。
11.根据权利要求1-10中任一项所述的方法,所述目标模型执行以下任务中的至少一种:
自然语言处理、视觉信息处理、多模态信息处理、蛋白质结构预测。
12.根据权利要求1-11中任一项所述的方法,所述目标模型采用数据并行策略结合1F1B交错式调度方式的流水线并行策略进行训练,且按照所述流水线并行策略所述目标模型切分为所述多个模型阶段,各模型阶段分配到相应的模型训练设备中进行训练;
所述数据并行策略中,训练数据的每个批次被划分为多个微批次。
13.一种模型训练设备的性能优化装置,包括:
确定模块,用于确定当前模型训练设备针对目标排序位置的目标模型块的通信时机,以便于和多个模型训练设备中的其它模型训练设备能够针对所述目标排序位置的模型块进行同步调聚合通信;其中,所述当前模型训练设备为所述多个模型训练设备中的任意训练设备;所述多个模型训练设备用于训练同一目标模型;所述目标模型切分为多个模型阶段,每个模型阶段包括依序排布的多个模型块;采用分布式并行策略训练所述目标模型的过程中因通信操作增加模型训练设备的计算时长而产生气泡;
执行模块,用于在所述通信时机,对所述目标模型块的反向梯度执行聚合通信。
14.根据权利要求13所述的装置,其中,所述确定模块,包括:
第一确定子模块,用于在满足目标约束条件的情况下,确定下一计算阶段为所述目标模型块的通信时机;
所述目标约束条件包括:
所述当前模型训练设备针对所述目标模型块的反向梯度计算次数大于或等于目标次数;
在所述通信时机,所述多个模型阶段中的第一个模型阶段中所述目标排序位置的模型块的反向梯度计算完毕。
15.根据权利要求14所述的装置,其中,所述确定模块还包括第二确定子模块,用于基于以下方法确定满足所述目标约束条件:
确定所述目标模型块的待同步反向梯度的累积量;
在所述累积量大于或等于所述目标次数,且确定所述多个模型阶段中的第一个模型阶段中所述目标排序位置的模型块能够启动聚合通信的情况下,确定所述目标模型块满足所述目标约束条件。
16.根据权利要求14所述的装置,其中,所述确定模块还包括第三确定子模块,用于基于以下方法确定满足所述目标约束条件:
对所述当前模型训练设备的反向梯度计算次数在默认值的基础上进行累积计数;
在所述累积计数大于或等于目标阈值,且基于所述累积计数确定完成了整数个批次的反向梯度计算的情况下,确定所述目标排序位置的所述目标模型块满足所述目标约束条件;
所述目标阈值基于所述目标次数确定,以使得所述当前模型训练设备针对所述目标模型块的反向梯度计算次数大于或等于目标次数。
17.根据权利要求16所述的装置,所述确定模块还包括第四确定子模块,具体用于:
在所述默认值为空的情况下,基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定所述目标阈值。
18.根据权利要求16所述的装置,所述确定模块还包括第五确定子模块,具体用于:
基于反向梯度计算次数、模型阶段数、以及每个模型阶段包含的模型块的数量确定所述默认值的情况下,确定所述目标阈值设置为指定值。
19.根据权利要求16所述的装置,其中,其中,所述第三确定子模块,具体用于:
确定所述累积计数与所述当前模型训练设备所具有的模型阶段编号和所述目标阈值的差值;
在所述差值被所述目标次数整除的情况下,确定完成了整数个批次的反向梯度计算。
20.根据权利要求16所述的装置,其中,所述第三确定子模块,具体用于:
基于所述累积计数、模型阶段编号、所述目标阈值、切分的模型阶段数,以及每个模型阶段包含的模型块的数量,确定所述目标排序位置的目标模型块。
21.根据权利要求13所述的装置,其中,所述确定模块,包括:
第六确定子模块,用于响应于接收到同步消息的情况下,确定下一计算阶段为所述目标模型块的通信时机,所述同步消息为所述多个模型阶段中的第一个模型阶段的模型训练设备针对所述目标排序位置的模型块发出的。
22.根据权利要求13-21中任一项所述的装置,还包括:
更新模块,用于在所述当前模型训练设备的模型阶段的各个模型块均完成聚合通信的情况下,基于优化器对所述模型阶段进行参数更新。
23.根据权利要求13-22中任一项所述的装置,所述目标模型执行以下任务中的至少一种:
自然语言处理、视觉信息处理、多模态信息处理、蛋白质结构预测。
24.根据权利要求13-23中任一项所述的装置,所述目标模型采用数据并行策略结合1F1B交错式调度方式的流水线并行策略进行训练,且按照所述流水线并行策略所述目标模型切分为所述多个模型阶段,各模型阶段分配到相应的模型训练设备中进行训练;
所述数据并行策略中,训练数据的每个批次被划分为多个微批次。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311236843.7A CN117436509A (zh) | 2023-09-22 | 2023-09-22 | 模型训练设备的性能优化方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311236843.7A CN117436509A (zh) | 2023-09-22 | 2023-09-22 | 模型训练设备的性能优化方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117436509A true CN117436509A (zh) | 2024-01-23 |
Family
ID=89552443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311236843.7A Pending CN117436509A (zh) | 2023-09-22 | 2023-09-22 | 模型训练设备的性能优化方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117436509A (zh) |
-
2023
- 2023-09-22 CN CN202311236843.7A patent/CN117436509A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
CN106297774B (zh) | 一种神经网络声学模型的分布式并行训练方法及系统 | |
CN109598184B (zh) | 一种多分割任务的处理方法和装置 | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN110956202B (zh) | 基于分布式学习的图像训练方法、系统、介质及智能设备 | |
WO2017117186A1 (en) | Conditional parallel processing in fully-connected neural networks | |
CN109597965B (zh) | 基于深度神经网络的数据处理方法、系统、终端及介质 | |
US20220343603A1 (en) | Three-dimensional reconstruction method, three-dimensional reconstruction apparatus, device and storage medium | |
CN116450312A (zh) | 面向流水线并行训练的调度策略确定方法及系统 | |
CN111008631B (zh) | 图像的关联方法及装置、存储介质和电子装置 | |
CN107229966A (zh) | 一种模型数据更新方法、装置及系统 | |
WO2023201981A1 (zh) | 混合专家模型实现方法、系统、电子设备及存储介质 | |
CN114444718B (zh) | 机器学习模型的训练方法、信号控制方法和装置 | |
CN108985449A (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
CN113032116A (zh) | 任务时间预测模型的训练方法、任务调度方法及相关装置 | |
CN117436509A (zh) | 模型训练设备的性能优化方法、装置及设备 | |
JP7412489B2 (ja) | 連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN116341652A (zh) | 一种面向云际环境的大模型分布式训练方法及相关设备 | |
WO2021238734A1 (zh) | 一种神经网络的训练方法及相关设备 | |
Ahn et al. | Scissionlite: Accelerating distributed deep neural networks using transfer layer | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115294296A (zh) | 一种基于图像预训练模型提示学习的三维物体识别方法 | |
CN114330576A (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 |