CN115879543A - 一种模型训练方法、装置、设备、介质及系统 - Google Patents
一种模型训练方法、装置、设备、介质及系统 Download PDFInfo
- Publication number
- CN115879543A CN115879543A CN202310194708.4A CN202310194708A CN115879543A CN 115879543 A CN115879543 A CN 115879543A CN 202310194708 A CN202310194708 A CN 202310194708A CN 115879543 A CN115879543 A CN 115879543A
- Authority
- CN
- China
- Prior art keywords
- group
- nodes
- computing
- calculation
- current
- 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.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004364 calculation method Methods 0.000 claims abstract description 166
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 93
- 238000005457 optimization Methods 0.000 claims abstract description 83
- 238000004590 computer program Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 32
- 238000007781 pre-processing Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 3
- 239000003550 marker Substances 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 51
- 230000008569 process Effects 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 2
- 238000011156 evaluation Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了计算机技术领域内的一种模型训练方法、装置、设备、介质及系统。本申请在模型迭代过程中,若根据当前迭代次数确定本次迭代需分组,则将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;控制同一计算组内的不同计算节点以All‑Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring‑All‑Reduce策略执行本次迭代任务。该方案能充分发挥计算节点的特点,提高计算节点间的通信效率和模型训练效率。本申请提供的一种模型训练装置、设备、介质及系统,同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种模型训练方法、装置、设备、介质及系统。
背景技术
目前,可以借助中心化架构的计算系统进行模型训练。中心化架构的计算系统包括一个主节点以及多工作节点。主节点主负责聚合所有工作节点发送来的数据来得到全局模型参数,之后返回全局模型参数至各个工作节点。各工作节点能够基于其局部数据样本完成本地训练任务。中心化架构的优势在于设计简单,并且支持节点间异步通信,但由于主节点需要与所有工作节点通信,因此在工作节点较多时,主节点容易陷入通信拥塞,影响模型训练效率。
因此,如何提高模型训练效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种模型训练方法、装置、设备、介质及系统,以提高模型训练效率。其具体方案如下:
第一方面,本申请提供了一种模型训练方法,包括:
在目标模型的任一次迭代开始时,确定当前迭代次数;
若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;
在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;
将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
可选地,所述根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,包括:
基于数据处理速度、可用内存量和负载评估所述异构计算系统内不同计算节点之间的性能差;
基于所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
可选地,所述基于数据处理速度、可用内存量和负载评估所述异构计算系统内不同计算节点之间的性能差,包括:
按照第一公式评估所述异构计算系统内不同计算节点之间的性能差;所述第一公式为:
其中,D(A,B)表示所述异构计算系统内计算节点A和计算节点B之间的性能差,PS(A)表示计算节点A的数据处理速度,PS(B)表示计算节点B的数据处理速度,MC(A)表示计算节点A的可用内存量,MC(B)表示计算节点B的可用内存量,TL(A)表示计算节点A的负载,TL(B)表示计算节点B的负载。可选地,所述基于所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组,包括:
利用预设聚类算法以所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
可选地,所述将当前迭代次数对应的需处理数据分发至各计算组,包括:
对所述需处理数据进行预处理操作;所述预处理操作包括:去噪操作和/或标准化操作;
将预处理操作后的数据分发至各计算组。
可选地,所述控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,包括:
针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。
可选地,所述确定当前计算组适用的模型优化算法,包括:
评估当前计算组的计算性能评分;
根据所述计算性能评分确定当前计算组适用的模型优化算法。
可选地,所述评估当前计算组的计算性能评分,包括:
计算当前计算组内的每一计算节点的计算性能值;
选择最小计算性能值作为当前计算组的计算性能评分。
可选地,所述根据所述计算性能评分确定当前计算组适用的模型优化算法,包括:
若所述计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。
可选地,所述根据所述计算性能评分确定当前计算组适用的模型优化算法,包括:
若所述计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
可选地,所述控制各控制节点以Ring-All-Reduce策略执行本次迭代任务,包括:
控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。
可选地,所述使每一控制节点得到全局更新参数之后,还包括:
使每一控制节点将所述全局更新参数同步至相应计算组内的其他计算节点。
可选地,所述根据当前迭代次数确定本次迭代需分组,包括:
若当前迭代次数对应有分组标记,则确定本次迭代需分组。
可选地,还包括:
响应于用户操作,为所述目标模型的每一次迭代添加分组标记或删除分组标记。
可选地,还包括:
若当前迭代次数未对应有分组标记,则确定本次迭代不分组。
可选地,还包括:
若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。
第二方面,本申请提供了一种模型训练装置,包括:
确定模块,用于在目标模型的任一次迭代开始时,确定当前迭代次数;
分组模块,用于若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;
连接模块,用于在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;
训练模块,用于将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
可选地,所述分组模块包括:
评估单元,用于基于数据处理速度、可用内存量和负载评估所述异构计算系统内不同计算节点之间的性能差;
分组单元,用于基于所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
可选地,所述评估单元具体用于:
按照第一公式评估所述异构计算系统内不同计算节点之间的性能差;所述第一公式为:
其中,D(A,B)表示所述异构计算系统内计算节点A和计算节点B之间的性能差,PS(A)表示计算节点A的数据处理速度,PS(B)表示计算节点B的数据处理速度,MC(A)表示计算节点A的可用内存量,MC(B)表示计算节点B的可用内存量,TL(A)表示计算节点A的负载,TL(B)表示计算节点B的负载。
可选地,所述分组单元具体用于:
利用预设聚类算法以所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
可选地,所述训练模块包括:
数据处理单元,用于对所述需处理数据进行预处理操作;所述预处理操作包括:去噪操作和/或标准化操作;将预处理操作后的数据分发至各计算组。
可选地,所述训练模块包括:
组内控制单元,用于针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。
可选地,所述组内控制单元具体用于:
评估当前计算组的计算性能评分;
根据所述计算性能评分确定当前计算组适用的模型优化算法。
可选地,所述组内控制单元具体用于:
计算当前计算组内的每一计算节点的计算性能值;
选择最小计算性能值作为当前计算组的计算性能评分。
可选地,所述组内控制单元具体用于:
若所述计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。
可选地,所述组内控制单元具体用于:
若所述计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
可选地,所述训练模块包括:
组间控制单元,用于控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。
可选地,所述训练模块还包括:
同步单元,用于使每一控制节点将所述全局更新参数同步至相应计算组内的其他计算节点。
可选地,所述分组模块具体用于:
若当前迭代次数对应有分组标记,则确定本次迭代需分组。
可选地,还包括:
修改模块,用于响应于用户操作,为所述目标模型的每一次迭代添加分组标记或删除分组标记。
可选地,所述分组模块还用于:
若当前迭代次数未对应有分组标记,则确定本次迭代不分组。
可选地,还包括:
另一训练模块,用于若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的模型训练方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的模型训练方法。
第五方面,本申请提供了一种异构计算系统,包括:控制端和异构的多个计算节点,所述控制端用于实现前述公开的模型训练方法。
通过以上方案可知,本申请提供了一种模型训练方法,包括:在目标模型的任一次迭代开始时,确定当前迭代次数;若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
可见,本申请在模型的迭代过程中,可以根据迭代次数确定本次迭代是否需分组,若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联,从而使相似性能的计算节点被划分在一个计算组里;之后在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点,使得各个计算组以环状拓扑结构连接;在将当前迭代次数对应的需处理数据分发至各计算组之后,可控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
本申请的有益效果为:为不同计算组选择适用的模型优化算法,并且计算组内采用All-Reduce策略,可充分利用网络带宽,能充分发挥计算节点的特点与性能,实现异构节点间的高效协同;不同计算组间执行Ring-All-Reduce策略,可克服中心化架构的通信拥塞问题,有效降低计算节点间通信开销,提高计算节点间的通信效率和模型训练效率,可在有限网络带宽下实现带宽的充分利用。
相应地,本申请提供的一种模型训练装置、设备、介质及系统,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种模型训练方法流程图;
图2为本申请公开的一种异构计算系统内的各节点分组及通信连接示意图;
图3为本申请公开的一种训练方案的设计示意图;
图4为本申请公开的一种以Ring-All-Reduce策略同步参数的过程示意图;
图5为本申请公开的另一种以Ring-All-Reduce策略同步参数示意图;
图6为本申请公开的一种模型训练装置示意图;
图7为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,中心化架构的计算系统包括一个主节点以及多工作节点。主节点主负责聚合所有工作节点发送来的数据来得到全局模型参数,之后返回全局模型参数至各个工作节点。各工作节点能够基于其局部数据样本完成本地训练任务。中心化架构的优势在于设计简单,并且支持节点间异步通信,但由于主节点需要与所有工作节点通信,因此在工作节点较多时,主节点容易陷入通信拥塞,影响模型训练效率。为此,本申请提供了一种模型训练方案,能够克服中心化架构的通信拥塞问题,有效降低计算节点间通信开销,提高计算节点间的通信效率和模型训练效率。
参见图1所示,本申请实施例公开了一种模型训练方法,包括:
S101、在目标模型的任一次迭代开始时,确定当前迭代次数。
S102、若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联。
本实施例借助异构计算系统对目标模型进行训练。异构计算系统中的各个计算节点可以是:CPU、GPU、FPGA等各类异构设备。
需要说明的是,本实施例在每一次训练目标模型,都基于当前迭代次数确定本次迭代是否需对异构计算系统中的各计算节点进行重新分组。在一种示例中,可以在每一次迭代之前,都对异构计算系统中的各计算节点进行重新分组,但考虑到分组操作会影响模型训练速度,因此可以每隔几次,进行一次分组操作。例如:在迭代次数为1、5、10、15、20……进行分组操作,而其他迭代次数直接沿用其前一次迭代所用的计算组。据此,可以为各迭代次数设置分组标记,以用于标识相应迭代次数是否需要进行分组操作。在一种具体实施方式中,还包括:响应于用户操作,为目标模型的每一次迭代添加分组标记或删除分组标记。
在一种具体实施方式中,根据当前迭代次数确定本次迭代需分组,包括:若当前迭代次数对应有分组标记,则确定本次迭代需分组。相应地,若当前迭代次数未对应有分组标记,则确定本次迭代不分组。若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。也即:将当前迭代次数对应的需处理数据分发至前一次迭代所用的各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
在一种具体实施方式中,根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,包括:基于数据处理速度、可用内存量和负载评估异构计算系统内不同计算节点之间的性能差;基于异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。如此可将相似性能的计算节点划分在一个计算组里,并使不同计算组的整体性能存在区别。
在一种具体实施方式中,基于数据处理速度、可用内存量和负载评估异构计算系统内不同计算节点之间的性能差,包括:按照第一公式评估所述异构计算系统内不同计算节点之间的性能差;所述第一公式为:;其中,D(A,B)表示所述异构计算系统内计算节点A和计算节点B之间的性能差,PS(A)表示计算节点A的数据处理速度,PS(B)表示计算节点B的数据处理速度,MC(A)表示计算节点A的可用内存量,MC(B)表示计算节点B的可用内存量,TL(A)表示计算节点A的负载,TL(B)表示计算节点B的负载。其中,PS(Processing Speed,处理速度)可以用单位时间内可处理的指令数量来衡量;MC(Memory Capacity,内存容量)为当前时刻某一节点的可用内存容量的大小;TL(Task Load,任务负载)可以用当前时刻的资源占用率来衡量,如进程使用率。其中,代入第一公式的数值为经归一化操作处理后的数值。
在一种具体实施方式中,基于异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组,包括:利用预设聚类算法以异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。预设聚类算法如:K-means算法、均值漂移聚类、基于密度的聚类方法(如DBSCAN)等。
S103、在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点。
请参见图2,同一计算组内的不同计算节点互联,而不同计算组中的控制节点按照环状拓扑结构连接。此通信连接方式可以降低网络整体延迟。如果将n个计算节点直接设计为一个包含n个节点的环状网络,那么其最坏的通信延迟可达O(n)。然而,按照本实施例设计的通信连接方式,最坏的通信延迟为O(K+1)。K为控制节点的总数,通常K是远远小于n的,可见本实施例可实现延迟的有效降低。
此外,本实施例设计的通信连接方式还能够节省带宽,提高网络链路利用率和模型训练效率。如果将n个计算节点直接设计为全连接类型的网络(即n个计算节点中的不同节点均互联),其成本代价过于高昂,实际应用中往往难以实现。而本实施例能够在有限带宽的前提下,通过分组的方式降低通信量与带宽争用,提高网络整体的链路利用率,进而提升模型训练效率。
S104、将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
在一种具体实施方式中,将当前迭代次数对应的需处理数据分发至各计算组,包括:对需处理数据进行预处理操作;预处理操作包括:去噪操作和/或标准化操作等;将预处理操作后的数据分发至各计算组。需处理数据包括但不限于:训练样本、训练标签等与模型训练相关的数据。具体的,可以将需处理数据以模型并行、数据并行或混合并行的方式进行拆分,并分配至相应的计算节点。
在一种具体实施方式中,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,包括:针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。可见,在某一次模型迭代过程中,不同计算节点的通信用以实现模型参数、梯度值等信息的计算与同步。
需要说明的是,All-Reduce策略要求同一计算组内的各计算节点相互通信,各计算节点以广播的方式将本地信息传递至其他计算节点,从而实现全局信息同步。与中心化架构相比,All-Reduce策略实现了去中心化,规避了主节点的通信拥塞问题。
在一种具体实施方式中,确定当前计算组适用的模型优化算法,包括:评估当前计算组的计算性能评分;根据计算性能评分确定当前计算组适用的模型优化算法。在一种具体实施方式中,评估当前计算组的计算性能评分,包括:计算当前计算组内的每一计算节点的计算性能值;选择最小计算性能值作为当前计算组的计算性能评分。在一种具体实施方式中,根据计算性能评分确定当前计算组适用的模型优化算法,包括:若计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。在一种具体实施方式中,根据计算性能评分确定当前计算组适用的模型优化算法,包括:若计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
在一种具体实施方式中,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务,包括:控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。在一种具体实施方式中,使每一控制节点得到全局更新参数之后,还包括:使每一控制节点将全局更新参数同步至相应计算组内的其他计算节点。
本实施例在模型的迭代过程中,可以根据迭代次数确定本次迭代是否需分组,若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联,从而使相似性能的计算节点被划分在一个计算组里;之后在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点,使得各个计算组以环状拓扑结构连接;在将当前迭代次数对应的需处理数据分发至各计算组之后,可控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
可见,本实施例能够为不同计算组选择适用的模型优化算法,并且计算组内采用All-Reduce策略,可充分利用网络带宽,能充分发挥计算节点的特点与性能,实现异构节点间的高效协同;不同计算组间执行Ring-All-Reduce策略,可克服中心化架构的通信拥塞问题,有效降低计算节点间通信开销,提高计算节点间的通信效率和模型训练效率,可在有限网络带宽下实现带宽的充分利用。
基于上述实施例,可以设计实现如下系统,该系统包括:训练数据/模型输入模块、异构计算节点的动态分组模块、通信拓扑架构设计模块、去中心化信息交互策略模块和训练结果输出模块。
请参见图3,训练数据/模型输入模块能够对待训练的数据样本与模型进行预处理工作,并将处理后的数据发送至异构计算系统,以使异构计算系统中的各个计算节点进行模型训练。异构计算节点的动态分组模块能够依据异构计算系统内异构计算节点的硬件信息(处理器运算速度、可用内存容量、任务负载情况)量化异构计算节点之间的性能相似性,然后根据性能相似度对异构计算系统内异构计算节点进行动态分组。通信拓扑架构设计模块能够实现去中心化的通信拓扑架构,以克服中心化架构的通信拥塞问题,还能显著降低带宽消耗。去中心化信息交互策略模块借助上述动态分组情况与通信拓扑架构,使同一分组内的计算节点执行All-Reduce更新策略,不同分组之间执行Ring-All-Reduce更新策略,从而使不同分组间、不同计算节点协同完成训练任务。训练结果输出模块负责输出训练任务的全局解。上述各模块各司其职,能够协同完成深度学习领域中各类复杂的模型训练任务。
数据/模型输入模块主要完成训练数据集和模型的输入任务,将输入的数据/模型处理为分布式异构计算系统要求的格式,包括去噪声、标准化等操作,供后续模块直接读取与调用。
异构计算节点的动态分组模块能够计算分布式异构计算系统中CPU、GPU、以及FPGA等不同节点之间的欧式距离,并据此将系统中的所有节点划分为多个分组。
据此,一种可行的分组流程包括:
Step 1:假设分布式异构计算系统中包含[n]={1,2,3…,n}个计算节点,给定一个分组数K;
Step 2:随机选择K个计算节点作为每个分组的中心CenterSet={CS1,CS2,…,CSK};
Step 3:对于集群中的每个计算节点i,分别计算它们与K个中心{CS1,CS2,…,CSK}的距离Distance(i,CS1),Distance(i,CS2),…,Distance(i,CSK);
Step 5:重复执行Step4,以将n-K(除了K个中心节点以外的节点)个计算节点划分至K个分组内,最终获得K个不重叠的计算节点分组。
在一种示例中,将n个异构计算节点划分为K个分组之后,为各个分组确定其适用的一阶优化算法或二阶优化算法,以利用一阶优化算法和二阶优化算法相结合的训练方法进行模型迭代。具体的,使性能评估得分较高的分组执行二阶优化算法,使性能评估得分较低的分组执行一阶优化算法。其中,一阶优化算法如:随机梯度下降(Stochastic gradientdescent,SGD),一阶优化算法计算简单,但需执行较多迭代次数才能收敛。二阶优化算法如:牛顿法、K-FAC等,二阶优化算法具有梯度的高阶信息,执行较少迭代次数就能收敛。采用一阶优化算法与二阶优化算法相结合的训练方式,可加快模型参数的更新,从而加快模型收敛。
据此,一种可行的分组性能评估方法包括:对于第i个分组Group(i)而言,如果它包括含m个计算节点,则有:Group(i)={N1,N2,…,Nm}。该分组的性能评估得分取决于这m个计算节点N1,N2,…,Nm的性能。
那么,可以计算节点N1的性能评估得分:performance(N1)=[PS(N1)+MC(N1)]/TL(N1);其中,PS(N1)表示计算节点N1的处理速度(标准化后数值),MC(N1)表示计算节点N1的可用内存容量(标准化后数值);TL(N1)表示节点N1的任务负载(标准化后数值)。同理,计算节点N2的性能评估得分为:performance(N2)=[PS(N2)+MC(N2)]/TL(N2);计算节点N3的性能评估得分为:performance(N3)=[PS(N3)+MC(N3)]/TL(N3)……计算节点Nm的性能评估得分为:performance(Nm)=[PS(Nm)+MC(Nm)]/TL(Nm)。
由于一个分组的性能瓶颈在于性能评估得分最低的计算节点,因此在上述m个评估得分中选择最小得分作为分组i最终的性能评估得分,则有:Score(i)=min{performance(N1),performance(N2),…,performance(Nm)}。据此,可得到K个分组的性能评估得分:Score(1),Score(2),Score(3),…,Score(K)。如果定义K个分组的性能平均得分,那么在分组i的性能评估得分Score(i)不小于平均得分S时,判定分组i为高性能分组,那么令分组i执行二阶优化算法;如果分组i的性能评估得分Score(i)小于平均得分S,则判定分组i为低性能分组,那么令分组i执行一阶优化算法。
请参见图2,通信拓扑架构设计模块可实现如图2所示的去中心化通信拓扑架构。如图2所示,同一计算组内的不同计算节点互联,而不同计算组中的控制节点按照环状拓扑结构连接。此通信连接方式可以降低网络整体延迟。如果将n个计算节点直接设计为一个包含n个节点的环状网络,那么其最坏的通信延迟可达O(n)。然而,按照本实施例设计的通信连接方式,最坏的通信延迟为O(K+1)。K为控制节点的总数,通常K是远远小于n的,可见本实施例可实现延迟的有效降低。此外,本实施例设计的通信连接方式还能够节省带宽,提高网络链路利用率和模型训练效率。如果将n个计算节点直接设计为全连接类型的网络(即n个计算节点中的不同节点均互联),其成本代价过于高昂,实际应用中往往难以实现。而本实施例能够在有限带宽的前提下,通过分组的方式降低通信量与带宽争用,提高网络整体的链路利用率,进而提升模型训练效率。
去中心化信息交互策略模块使同一分组内的计算节点执行All-Reduce更新策略,使不同分组之间执行Ring-All-Reduce更新策略,具体可参照如下内容进行具体实现。
在一种示例中,方案输入包括:总迭代次数T,迭代间隔阈值Q,学习率η,分组参数K,初始化模型参数W=0;方案输出包括:全局参数Wt+1。设置的迭代间隔阈值Q,用以避免频繁的分组。
设迭代次数指标t={1,2,3,4…,T},如果t=1或t=1+α*Q(α为正整数),则执行如下Step1至Step3。
Step2:基于上述K个分组,在每个分组中任意指定一个计算节点为Leader节点(即控制节点)。如:的Leader节点为Leader1;的Leader节点为Leader2;的Leader节点为LeaderK。
Step3:将每个分组内部的所有节点设置为全连接结构,而分组间按照Leader1→Leader2→…→LeaderK→Leader1的顺序构成一个环状网络拓扑,如图2所示。其中,Leader节点之间的先后顺序灵活确定即可。
分组完成后,并为各个分组确定其适用的优化算法,那么同一分组内的各计算节点执行All-Reduce来更新参数。具体的,设分组标号i={1,2,3,…,K},那么每一分组执行如下步骤Step4至Step6。
Step4:对第i个分组内所有计算节点完成梯度计算:以为例,中的节点worker1计算梯度g1=▽f(W(t);),且为worker1的局部样本;节点worker2计算梯度g2=▽f(W(t); ),且为worker2的局部样本;节点worker3计算梯度g3=▽f(W(t);Ψ),且Ψ为worker3的局部样本。
不同分组执行Ring-All-Reduce来更新参数,具体请参照如下步骤Step7。
Step7:对每个Leader j ∈{Leader1,Leader2,…,LeaderK},在环状网络拓扑Leader1→Leader2→…→LeaderK→Leader1执行Ring-All-Reduce策略:
2)将Leader j 的第l份参数发送至Leader j+1,将Leader j+1的第2份参数发送至Leader j+2……具体请参见图4,当K=5时,各个Leader将参数分为5份,且在第一个时钟周期内,Leader1发自己的第一份参数a0至Leader2,Leader2发自己的第二份参数b1至Leader3,Leader3发自己的第三份参数c2至Leader4,Leader4发自己的第四份参数d3至Leader5,Leader5发自己的第5份参数e4至Leader1,之后在其他时钟周期内,继续进行其他参数的同步;
3)重复执行步骤2)K次后,Leader j 获取了其他{Leader1,Leader2,…,LeaderK}的全部参数;
4)执行K次步骤3)后,所有{Leader1,Leader2,…,LeaderK}均获得了全部参数,具体请参见图5。图5所示的参数的同步过程为:在第一个时钟周期内,Leader1发参数a0至Leader2,Leader2发参数b1至Leader3,Leader3发参数c2至Leader4,Leader4发参数d3至Leader5,Leader5发参数e4至Leader1;在第二个时钟周期内,Leader1发参数a1至Leader2,Leader2发参数b2至Leader3,Leader3发参数c3至Leader4,Leader4发参数d4至Leader5,Leader5发参数e0至Leader1;在第三个时钟周期内,Leader1发参数a2至Leader2,Leader2发参数b3至Leader3,Leader3发参数c4至Leader4,Leader4发参数d0至Leader5,Leader5发参数e1至Leader1;在第四个时钟周期内,Leader1发参数a3至Leader2,Leader2发参数b4至Leader3,Leader3发参数c0至Leader4,Leader4发参数d1至Leader5,Leader5发参数e2至Leader1;在第五个时钟周期内,Leader1发参数a4至Leader2,Leader2发参数b0至Leader3,Leader3发参数c1至Leader4,Leader4发参数d2至Leader5,Leader5发参数e3至Leader1。
在本实施例中实现了三个关键功能:①:为了避免频繁的产生动态分组,设定了迭代间隔阈值Q,用户可根据实际情况灵活调整Q值,以改变产生分组的频率;②:对于产生的K个分组,分组内的计算节点执行All-Reduce操作,避免全体节点直接执行All-Reduce操作,节省带宽;③:对于K个分组,通过执行Leader1,Leader2,…,LeaderK间的Ring-All-Reduce操作,实现全局信息同步,充分利用网络带宽的同时,降低通信延迟。
经过T次迭代后,结果输出模块将训练得到的的最终结果WT输出,并以可视化的方式呈现给用户,用户根据该信息可对训练方案做进一步修改或调整,便于系统改进。其中,最终结果WT包括:第T次迭代后,汇总Leader1,Leader2,…,LeaderK得到的全局参数。
可见,基于动态分组思想实现的去中心化架构训练方案,可以将相似的设备划分至同一分组,降低设备间的差异引起的各类开销;同一分组内采用All-Reduce策略充分利用网络带宽,不同分组间执行Ring-All-Reduce策略,降低整体通信延迟,还可以克服异构计算节点的协同困难、分布式通信架构下的信息交互难题。
下面对本申请实施例提供的一种模型训练装置进行介绍,下文描述的一种模型训练装置与上文描述的一种模型训练方法可以相互参照。
参见图6所示,本申请实施例公开了一种模型训练装置,包括:
确定模块601,用于在目标模型的任一次迭代开始时,确定当前迭代次数;
分组模块602,用于若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;
连接模块603,用于在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;
训练模块604,用于将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
在一种具体实施方式中,分组模块包括:
评估单元,用于基于数据处理速度、可用内存量和负载评估异构计算系统内不同计算节点之间的性能差;
分组单元,用于基于异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。
在一种具体实施方式中,评估单元具体用于:
按照第一公式评估所述异构计算系统内不同计算节点之间的性能差;所述第一公式为:
其中,D(A,B)表示所述异构计算系统内计算节点A和计算节点B之间的性能差,PS(A)表示计算节点A的数据处理速度,PS(B)表示计算节点B的数据处理速度,MC(A)表示计算节点A的可用内存量,MC(B)表示计算节点B的可用内存量,TL(A)表示计算节点A的负载,TL(B)表示计算节点B的负载。在一种具体实施方式中,分组单元具体用于:
利用预设聚类算法以异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。
在一种具体实施方式中,训练模块包括:
数据处理单元,用于对需处理数据进行预处理操作;预处理操作包括:去噪操作和/或标准化操作;将预处理操作后的数据分发至各计算组。
在一种具体实施方式中,训练模块包括:
组内控制单元,用于针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。
在一种具体实施方式中,组内控制单元具体用于:
评估当前计算组的计算性能评分;
根据计算性能评分确定当前计算组适用的模型优化算法。
在一种具体实施方式中,组内控制单元具体用于:
计算当前计算组内的每一计算节点的计算性能值;
选择最小计算性能值作为当前计算组的计算性能评分。
在一种具体实施方式中,组内控制单元具体用于:
若计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。
在一种具体实施方式中,组内控制单元具体用于:
若计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
在一种具体实施方式中,训练模块包括:
组间控制单元,用于控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。
在一种具体实施方式中,训练模块还包括:
同步单元,用于使每一控制节点将全局更新参数同步至相应计算组内的其他计算节点。
在一种具体实施方式中,分组模块具体用于:
若当前迭代次数对应有分组标记,则确定本次迭代需分组。
在一种具体实施方式中,还包括:
修改模块,用于响应于用户操作,为目标模型的每一次迭代添加分组标记或删除分组标记。
在一种具体实施方式中,分组模块还用于:
若当前迭代次数未对应有分组标记,则确定本次迭代不分组。
在一种具体实施方式中,还包括:
另一训练模块,用于若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种模型训练装置,能够为不同计算组选择适用的模型优化算法,并且计算组内采用All-Reduce策略,可充分利用网络带宽,能充分发挥计算节点的特点与性能,实现异构节点间的高效协同;不同计算组间执行Ring-All-Reduce策略,可克服中心化架构的通信拥塞问题,有效降低计算节点间通信开销,提高计算节点间的通信效率和模型训练效率,可在有限网络带宽下实现带宽的充分利用。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种模型训练方法及装置可以相互参照。
参见图7所示,本申请实施例公开了一种电子设备,包括:
存储器701,用于保存计算机程序;
处理器702,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:在目标模型的任一次迭代开始时,确定当前迭代次数;若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:基于数据处理速度、可用内存量和负载评估异构计算系统内不同计算节点之间的性能差;基于异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:利用预设聚类算法以异构计算系统内不同计算节点之间的性能差对异构计算系统内的所有计算节点进行分类,得到多个计算组。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:对需处理数据进行预处理操作;预处理操作包括:去噪操作和/或标准化操作;将预处理操作后的数据分发至各计算组。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:评估当前计算组的计算性能评分;根据计算性能评分确定当前计算组适用的模型优化算法。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:计算当前计算组内的每一计算节点的计算性能值;选择最小计算性能值作为当前计算组的计算性能评分。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:若计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:若计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:使每一控制节点将全局更新参数同步至相应计算组内的其他计算节点。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:若当前迭代次数对应有分组标记,则确定本次迭代需分组。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:响应于用户操作,为目标模型的每一次迭代添加分组标记或删除分组标记。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:若当前迭代次数未对应有分组标记,则确定本次迭代不分组。
在一种示例中,电子设备中的处理器所执行的计算机程序可以实现以下步骤:若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。
进一步的,本申请实施例还提供了一种服务器来作为上述电子设备。该服务器,具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的模型训练方法中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的模型训练方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括虚拟机等数据外,还可以包括虚拟机的开发商信息等数据。
进一步的,本申请实施例还提供了一种终端来作为上述电子设备。该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的模型训练方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种模型训练方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的模型训练方法。
下面对本申请实施例提供的一种异构计算系统进行介绍,下文描述的一种异构计算系统与上文描述的一种模型训练方法、装置及设备可以相互参照。
一种异构计算系统,包括:控制端和异构的多个计算节点,所述控制端用于实现前述公开的模型训练方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种模型训练方法,其特征在于,包括:
在目标模型的任一次迭代开始时,确定当前迭代次数;
若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;
在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;
将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
2.根据权利要求1所述的方法,其特征在于,所述根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,包括:
基于数据处理速度、可用内存量和负载评估所述异构计算系统内不同计算节点之间的性能差;
基于所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
4.根据权利要求2所述的方法,其特征在于,所述基于所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组,包括:
利用预设聚类算法以所述异构计算系统内不同计算节点之间的性能差对所述异构计算系统内的所有计算节点进行分类,得到所述多个计算组。
5.根据权利要求1所述的方法,其特征在于,所述将当前迭代次数对应的需处理数据分发至各计算组,包括:
对所述需处理数据进行预处理操作;所述预处理操作包括:去噪操作和/或标准化操作;
将预处理操作后的数据分发至各计算组。
6.根据权利要求1所述的方法,其特征在于,所述控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,包括:
针对每一计算组,确定当前计算组适用的模型优化算法,并控制当前计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法分别计算梯度值,控制当前计算组内的控制节点基于当前计算组内各计算节点计算的梯度值确定本次迭代任务的更新参数。
7.根据权利要求6所述的方法,其特征在于,所述确定当前计算组适用的模型优化算法,包括:
评估当前计算组的计算性能评分;
根据所述计算性能评分确定当前计算组适用的模型优化算法。
8.根据权利要求7所述的方法,其特征在于,所述评估当前计算组的计算性能评分,包括:
计算当前计算组内的每一计算节点的计算性能值;
选择最小计算性能值作为当前计算组的计算性能评分。
9.根据权利要求7所述的方法,其特征在于,所述根据所述计算性能评分确定当前计算组适用的模型优化算法,包括:
若所述计算性能评分不小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为二阶优化算法。
10.根据权利要求7所述的方法,其特征在于,所述根据所述计算性能评分确定当前计算组适用的模型优化算法,包括:
若所述计算性能评分小于所有计算组的计算性能评分的均值,则确定当前计算组适用的模型优化算法为一阶优化算法。
11.根据权利要求1所述的方法,其特征在于,所述控制各控制节点以Ring-All-Reduce策略执行本次迭代任务,包括:
控制各控制节点以Ring-All-Reduce策略对各控制节点得到的更新参数进行同步,以使每一控制节点得到全局更新参数。
12.根据权利要求11所述的方法,其特征在于,所述使每一控制节点得到全局更新参数之后,还包括:
使每一控制节点将所述全局更新参数同步至相应计算组内的其他计算节点。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述根据当前迭代次数确定本次迭代需分组,包括:
若当前迭代次数对应有分组标记,则确定本次迭代需分组。
14.根据权利要求13所述的方法,其特征在于,还包括:
响应于用户操作,为所述目标模型的每一次迭代添加分组标记或删除分组标记。
15.根据权利要求13所述的方法,其特征在于,还包括:
若当前迭代次数未对应有分组标记,则确定本次迭代不分组。
16.根据权利要求13所述的方法,其特征在于,还包括:
若根据当前迭代次数确定本次迭代不分组,则利用前一次迭代所用的各计算组执行本次迭代任务。
17.一种模型训练装置,其特征在于,包括:
确定模块,用于在目标模型的任一次迭代开始时,确定当前迭代次数;
分组模块,用于若根据当前迭代次数确定本次迭代需分组,则根据异构计算系统内不同计算节点之间的性能差将所述异构计算系统内的所有计算节点划分为多个计算组,并使同一计算组内的不同计算节点互联;
连接模块,用于在每一计算组内确定控制节点,并按照环状拓扑结构连接不同控制节点;
训练模块,用于将当前迭代次数对应的需处理数据分发至各计算组,控制同一计算组内的不同计算节点以All-Reduce策略和当前计算组适用的模型优化算法执行本次迭代任务,控制各控制节点以Ring-All-Reduce策略执行本次迭代任务。
18.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至16任一项所述的方法。
19.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至16任一项所述的方法。
20.一种异构计算系统,其特征在于,包括:控制端和异构的多个计算节点,所述控制端用于实现如权利要求1至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310194708.4A CN115879543B (zh) | 2023-03-03 | 2023-03-03 | 一种模型训练方法、装置、设备、介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310194708.4A CN115879543B (zh) | 2023-03-03 | 2023-03-03 | 一种模型训练方法、装置、设备、介质及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115879543A true CN115879543A (zh) | 2023-03-31 |
CN115879543B CN115879543B (zh) | 2023-05-05 |
Family
ID=85761864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310194708.4A Active CN115879543B (zh) | 2023-03-03 | 2023-03-03 | 一种模型训练方法、装置、设备、介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879543B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251274A (zh) * | 2023-11-14 | 2023-12-19 | 苏州元脑智能科技有限公司 | 作业调度方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
CN111917579A (zh) * | 2020-07-30 | 2020-11-10 | 云知声智能科技股份有限公司 | 分布式训练方法、装置、设备和存储介质 |
CN112001501A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种ai分布式训练系统的参数更新方法、装置、设备 |
CN113033800A (zh) * | 2019-12-25 | 2021-06-25 | 香港理工大学深圳研究院 | 分布式深度学习方法、装置、参数服务器及主工作节点 |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
CN115310566A (zh) * | 2022-10-12 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 分布式训练系统、方法、装置、设备及可读存储介质 |
CN115481729A (zh) * | 2022-09-20 | 2022-12-16 | 鹏城实验室 | 一种混合算子模型并行训练方法、装置、设备及存储介质 |
-
2023
- 2023-03-03 CN CN202310194708.4A patent/CN115879543B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
CN113033800A (zh) * | 2019-12-25 | 2021-06-25 | 香港理工大学深圳研究院 | 分布式深度学习方法、装置、参数服务器及主工作节点 |
CN111917579A (zh) * | 2020-07-30 | 2020-11-10 | 云知声智能科技股份有限公司 | 分布式训练方法、装置、设备和存储介质 |
CN112001501A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种ai分布式训练系统的参数更新方法、装置、设备 |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
CN115481729A (zh) * | 2022-09-20 | 2022-12-16 | 鹏城实验室 | 一种混合算子模型并行训练方法、装置、设备及存储介质 |
CN115310566A (zh) * | 2022-10-12 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 分布式训练系统、方法、装置、设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
MENGLU YU等: "GADGET: Online Resource Optimization for Scheduling Ring-All-Reduce Learning Jobs", 《IEEE INFOCOM 2022 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 * |
王丽等: "面向模型并行训练的模型拆分策略自动生成方法", 《计算机工程与科学》 * |
王帅等: "分布式机器学习系统网络性能优化研究进展", 《计算机学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251274A (zh) * | 2023-11-14 | 2023-12-19 | 苏州元脑智能科技有限公司 | 作业调度方法、装置、电子设备及存储介质 |
CN117251274B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 作业调度方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115879543B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
US10725494B2 (en) | Optimizing neurosynaptic networks | |
CN109447276B (zh) | 一种机器学习系统、设备及应用方法 | |
CN113033800A (zh) | 分布式深度学习方法、装置、参数服务器及主工作节点 | |
CN114327399B (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
WO2023207035A1 (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN114461382A (zh) | 可灵活配置的算力调度实现方法、装置及存储介质 | |
CN115879543B (zh) | 一种模型训练方法、装置、设备、介质及系统 | |
CN108958852A (zh) | 一种基于fpga异构平台的系统优化方法 | |
CN115865607A (zh) | 一种分布式训练的计算节点管理方法及相关装置 | |
WO2022228224A1 (zh) | 量子计算任务执行方法、装置及量子计算机操作系统 | |
CN117436514A (zh) | 基于分布式并行计算的模型训练方法及装置 | |
CN117955897B (zh) | 数据通信方法、装置、服务器及存储介质 | |
CN115687229A (zh) | 一种ai训练板卡及基于此的服务器、服务器集群、分布式训练方法 | |
CN113344074B (zh) | 模型训练方法、装置、设备及存储介质 | |
CN117061365B (zh) | 一种节点选择方法、装置、设备及可读存储介质 | |
CN116910568B (zh) | 图神经网络模型的训练方法及装置、存储介质及电子装置 | |
CN115016947B (zh) | 负载分配方法、装置、设备及介质 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115002215A (zh) | 面向云上政企的资源分配模型训练方法以及资源分配方法 | |
CN111291893A (zh) | 调度方法、调度系统、存储介质和电子装置 | |
CN107025099B (zh) | 一种基于双队列模型的异步图计算实现方法及系统 | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 | |
CN110460663A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |