CN113419931A - 分布式机器学习系统的性能指标确定方法及装置 - Google Patents
分布式机器学习系统的性能指标确定方法及装置 Download PDFInfo
- Publication number
- CN113419931A CN113419931A CN202110565148.XA CN202110565148A CN113419931A CN 113419931 A CN113419931 A CN 113419931A CN 202110565148 A CN202110565148 A CN 202110565148A CN 113419931 A CN113419931 A CN 113419931A
- Authority
- CN
- China
- Prior art keywords
- gradient
- time
- stage
- determining
- calculation
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000004364 calculation method Methods 0.000 claims abstract description 234
- 238000004891 communication Methods 0.000 claims abstract description 116
- 230000008569 process Effects 0.000 claims abstract description 55
- 238000003062 neural network model Methods 0.000 claims abstract description 48
- 238000012549 training Methods 0.000 claims abstract description 47
- 230000005540 biological transmission Effects 0.000 claims description 81
- 238000004220 aggregation Methods 0.000 claims description 59
- 230000002776 aggregation Effects 0.000 claims description 55
- 238000007667 floating Methods 0.000 claims description 27
- 238000009825 accumulation Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000006116 polymerization reaction Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000006399 behavior Effects 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 17
- 238000013527 convolutional neural network Methods 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 13
- 210000002569 neuron Anatomy 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 239000000126 substance Substances 0.000 description 3
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 150000001875 compounds Chemical group 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种分布式机器学习系统的性能指标确定方法及装置,该分布式机器学习系统用于训练神经网络模型,该训练过程包括梯度计算阶段和梯度通信阶段,梯度通信阶段包括梯度更新阶段,该方法包括:确定梯度计算阶段的梯度计算性能指标;基于梯度计算性能指标和分布式机器学习系统所在设备的计算性能数据,确定梯度计算阶段对应的梯度计算时间;确定梯度更新阶段对应的梯度更新时间;基于梯度更新时间,确定梯度通信阶段对应的梯度通信时间;在反向传播阶段和梯度更新阶段之间不具有重叠阶段时,根据梯度计算时间和梯度通信时间,确定分布式机器学习系统的性能指标。利用本公开提供的技术方案可以分析计算与通信的时序行为关系,得到粒度更细、准确有效的性能指标。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种分布式机器学习系统的性能指标确定方法及装置。
背景技术
由于采用图形处理器(Graphics Processing Unit,GPU)等高性能计算集群的分布式机器学习方法,可以满足高复杂度、高算力神经网络的计算需求,有效地缩短训练时间,因此得到了广泛的应用。虽然不断增加GPU计算节点数量可以增加集群算力,减少整体模型训练时间,然而随着节点规模的不断增加,GPU计算节点的资源利用率会不断下降,造成各类资源的浪费,从而降低了整个分布式机器学习系统的可扩展性。
发明内容
本公开提供一种分布式机器学习系统的性能指标确定方法及装置,以至少解决相关技术中的性能指标没有对神经网络模型训练过程中的通信架构做出具体时间开销分析,无法深入表现计算与通信的行为过程,导致的无法准确且全面地分析分布式机器学习系统的可扩展性的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种分布式机器学习系统的性能指标确定方法,所述分布式机器学习系统用于训练神经网络模型,所述神经网络模型的训练过程包括梯度计算阶段和梯度通信阶段,所述梯度通信阶段包括梯度更新阶段,所述方法包括:
确定所述梯度计算阶段的梯度计算性能指标,所述梯度计算性能指标表征所述梯度计算阶段的梯度计算复杂度;
基于所述梯度计算性能指标和所述分布式机器学习系统所在的设备的计算性能数据,确定所述梯度计算阶段对应的梯度计算时间;
确定所述梯度更新阶段对应的梯度更新时间;
基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间;
在所述反向传播阶段和所述梯度更新阶段之间不具有重叠阶段时,根据所述梯度计算时间和所述梯度通信时间,确定所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述梯度计算阶段包括前向传播阶段和反向传播阶段,所述确定梯度计算阶段的梯度计算性能指标,包括:
获取所述神经网络模型中的预设数量个卷积层;
获取各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量;
根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定所述前向传播阶段的前向传播性能指标,所述前向传播性能指标表征所述前向传播阶段的前向传播复杂度;
在所述反向传播阶段的反向传播性能指标与所述前向传播性能指标一致的情况下,根据所述前向传播性能指标,确定所述梯度计算性能指标;所述反向传播性能指标表征所述反向传播阶段的反向传播复杂度。
在一示例性的实施方式中,所述分布式机器学习系统包括多个工作节点,所述多个工作节点之间迭代更新模型参数梯度,所述梯度更新阶段包括数据累加阶段和数据替换阶段,所述数据累加阶段包括模型参数梯度的聚合计算阶段和模型参数梯度的第一迭代传输阶段,所述数据替换阶段包括模型参数梯度的第二迭代传输阶段,则所述确定所述梯度更新阶段对应的梯度更新时间,包括:
确定所述聚合计算阶段对应的聚合计算时间;
确定所述迭代传输阶段对应的传输时间,所述迭代传输阶段包括所述第一迭代传输阶段和所述第二迭代传输阶段;
根据所述聚合计算时间和所述传输时间,确定所述梯度更新时间;
相应地,所述基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间,包括:
将所述梯度更新时间作为所述梯度通信时间。
在一示例性的实施方式中,所述确定所述聚合计算阶段对应的聚合计算时间,包括:
获取所述多个工作节点的节点数量和所述神经网络模型所包含的参数量;
根据所述节点数量,确定所述数据累加阶段的迭代次数;
基于所述参数量、所述节点数量和单个浮点数所占字节数,确定所述模型参数梯度所包含的浮点数;
根据所述模型参数梯度所包含的浮点数和所述计算性能数据,确定所述模型参数梯度的聚合耗费时间;
基于所述迭代次数和所述聚合耗费时间,确定所述聚合计算时间。
在一示例性的实施方式中,所述确定迭代传输阶段对应的传输时间,包括:
基于所述参数量和所述节点数量,确定每次迭代传输所传输的模型参数梯度的大小;
获取所述设备的网络宽带数据;
根据所述迭代次数、所述模型参数梯度的大小和所述网络宽带数据,确定所述传输时间。
在一示例性的实施方式中,在所述反向传播阶段和所述梯度更新阶段之间具有重叠阶段时,所述方法还包括:
确定各个卷积层的反向传播时间,各个卷积层的反向传播时间为相应的反向传播阶段对应的时间;
基于卷积层序列中,除排序最前的卷积层之外的其他卷积层的反向传播时间,确定所述重叠阶段对应的重叠时间;所述卷积层序列为按照梯度更新的顺序对各个卷积层进行排序所得到的序列;
根据所述梯度更新时间和所述重叠时间,确定未重叠时间;所述未重叠时间为所述反向传播阶段和所述梯度更新阶段之间未重叠阶段所对应的时间;
将所述重叠时间和/或所述未重叠时间,作为所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述确定各个卷积层的反向传播时间,包括:
根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定各个卷积层的前向传播阶段的前向传播性能指标;
在各个卷积层的反向传播阶段的反向传播性能指标与各个卷积层的前向传播阶段的前向传播性能指标一致的情况下,根据各个卷积层的前向传播阶段的前向传播性能指标以及所述计算性能数据,确定各个卷积层的反向传播时间。
在一示例性的实施方式中,所述确定所述梯度更新阶段对应的梯度更新时间,包括:
获取所述排序最前的卷积层开始梯度更新的第一时间节点以及所述卷积层序列中排序最后的卷积层完成梯度更新的第二时间节点;
将所述第一时间节点和所述第二时间节点之间的时间,作为所述梯度更新时间。
在一示例性的实施方式中,所述确定所述梯度更新阶段对应的梯度更新时间,包括:
确定所述排序最后的卷积层对应的子梯度更新时间;
获取所述卷积层序列中,排序倒数第二位的卷积层完成梯度更新的第三时间节点;
将所述第一时间节点和所述第三时间节点之间的时间作为目标时间;
比较所述目标时间和所述重叠时间之间的大小;
基于大小比较结果和所述排序最后的卷积层对应的子梯度更新时间,确定所述梯度更新时间。
在一示例性的实施方式中,所述方法还包括:
确定所述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量;
根据所述第一卷积层数量和所述第二卷积层数量,确定所述重叠阶段对应的重叠程度;
将所述重叠程度作为所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述其他卷积层的数量为多个,则所述确定所述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量,包括:
基于所述预设数量个卷积层的数量,确定所述第一卷积层数量;
获取各个其他卷积层完成梯度更新的时间节点;
计算各个其他卷积层完成梯度更新的时间节点与所述第一时间节点之间的时间,得到各个其他卷积层各自对应的子梯度更新时间;
将相应的子梯度更新时间小于所述重叠时间的其他卷积层作为目标卷积层;
确定所述目标卷积层的数量;
将所述目标卷积层的数量,作为所述第二卷积层数量。
根据本公开实施例的第二方面,提供一种分布式机器学习系统的性能指标确定装置,所述分布式机器学习系统用于训练神经网络模型,所述神经网络模型的训练过程包括梯度计算阶段和梯度通信阶段,所述梯度通信阶段包括梯度更新阶段,所述装置包括:
梯度计算性能指标确定模块,被配置为执行确定所述梯度计算阶段的梯度计算性能指标,所述梯度计算性能指标表征所述梯度计算阶段的梯度计算复杂度;
梯度计算时间确定模块,被配置为执行基于所述梯度计算性能指标和所述分布式机器学习系统所在的设备的计算性能数据,确定所述梯度计算阶段对应的梯度计算时间;
梯度更新时间确定模块,被配置为执行确定所述梯度更新阶段对应的梯度更新时间;
梯度通信时间确定模块,被配置为执行基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间;
第一性能指标确定模块,被配置为执行在所述反向传播阶段和所述梯度更新阶段之间不具有重叠阶段时,根据所述梯度计算时间和所述梯度通信时间,确定所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述梯度计算阶段包括前向传播阶段和反向传播阶段,所述梯度计算性能指标确定模块,包括:
卷积层获取单元,被配置为执行获取所述神经网络模型中的预设数量个卷积层;
卷积核信息获取单元,被配置为执行获取各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量;
前向传播性能指标确定单元,被配置为执行根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定所述前向传播阶段的前向传播性能指标,所述前向传播性能指标表征所述前向传播阶段的前向传播复杂度;
梯度计算性能指标计算单元,被配置为执行在所述反向传播阶段的反向传播性能指标与所述前向传播性能指标一致的情况下,根据所述前向传播性能指标,确定所述梯度计算性能指标;所述反向传播性能指标表征所述反向传播阶段的反向传播复杂度。
在一示例性的实施方式中,所述分布式机器学习系统包括多个工作节点,所述多个工作节点之间迭代更新模型参数梯度,所述梯度更新阶段包括数据累加阶段和数据替换阶段,所述数据累加阶段包括模型参数梯度的聚合计算阶段和模型参数梯度的第一迭代传输阶段,所述数据替换阶段包括所述模型参数梯度的第二迭代传输阶段,则所述梯度更新时间确定模块,包括:
聚合计算时间确定单元,被配置为执行确定所述聚合计算阶段对应的聚合计算时间;
传输时间确定单元,被配置为执行确定迭代传输阶段对应的传输时间,所述迭代传输阶段包括所述第一迭代传输阶段和所述第二迭代传输阶段;
第一梯度更新时间计算单元,被配置为执行根据所述聚合计算时间和所述传输时间,确定所述梯度更新时间;
相应地,所述梯度通信时间确定模块,被配置为执行将所述梯度更新时间作为所述梯度通信时间。
在一示例性的实施方式中,所述聚合计算时间确定单元,包括:
数量获取子单元,被配置为执行获取所述多个工作节点的节点数量和所述神经网络模型所包含的参数量;
迭代次数确定子单元,被配置为执行根据所述节点数量,确定所述数据累加阶段的迭代次数;
浮点数确定子单元,被配置为执行基于所述参数量、所述节点数量和单个浮点数所占字节数,确定所述模型参数梯度所包含的浮点数;
聚合耗费时间确定子单元,被配置为执行根据所述模型参数梯度所包含的浮点数和所述计算性能数据,确定所述模型参数梯度的聚合耗费时间;
聚合计算时间计算子单元,被配置为执行基于所述迭代次数和所述聚合耗费时间,确定所述聚合计算时间。
在一示例性的实施方式中,所述传输时间确定单元,包括:
模型参数梯度大小确定子单元,被配置为执行基于所述参数量和所述节点数量,确定每次迭代传输所传输的模型参数梯度的大小;
网络宽带数据获取子单元,被配置为执行获取所述设备的网络宽带数据;
传输时间计算子单元,被配置为执行根据所述迭代次数、所述模型参数梯度的大小和所述网络宽带数据,确定所述传输时间。
在一示例性的实施方式中,在所述反向传播阶段和所述梯度更新阶段之间具有重叠阶段时,所述装置还包括:
反向传播时间确定模块,被配置为执行确定各个卷积层的反向传播时间,各个卷积层的反向传播时间为相应的反向传播阶段对应的时间;
重叠时间确定模块,被配置为执行基于卷积层序列中,除排序最前的卷积层之外的其他卷积层的反向传播时间,确定所述重叠阶段对应的重叠时间;所述卷积层序列为按照梯度更新的顺序对各个卷积层进行排序所得到的序列;
未重叠时间确定模块,被配置为执行根据所述梯度更新时间和所述重叠时间,确定未重叠时间;所述未重叠时间为所述反向传播阶段和所述梯度更新阶段之间未重叠阶段所对应的时间;
第二性能指标确定模块,被配置为执行将所述重叠时间和/或所述未重叠时间,作为所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述反向传播时间确定模块,包括:
卷积前向传播性能指标确定单元,被配置为执行根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定各个卷积层的前向传播阶段的前向传播性能指标;
卷积反向传播时间计算单元,被配置为执行在各个卷积层的反向传播阶段的反向传播性能指标与各个卷积层的前向传播阶段的前向传播性能指标一致的情况下,根据各个卷积层的前向传播阶段的前向传播性能指标以及所述计算性能数据,确定各个卷积层的反向传播时间。
在一示例性的实施方式中,所述装置还包括:
第一和第二时间节点获取单元,被配置为执行获取所述排序最前的卷积层开始梯度更新的第一时间节点以及所述卷积层序列中排序最后的卷积层完成梯度更新的第二时间节点;
第二梯度更新时间计算单元,被配置为执行将所述第一时间节点和所述第二时间节点之间的时间,作为所述梯度更新时间。
在一示例性的实施方式中,所述梯度更新时间确定模块包括:
子梯度更新时间确定单元,被配置为执行确定所述排序最后的卷积层对应的子梯度更新时间;
第三时间节点获取单元,被配置为执行获取所述卷积层序列中,排序倒数第二位的卷积层完成梯度更新的第三时间节点;
目标时间确定单元,被配置为执行将所述第一时间节点和所述第三时间节点之间的时间作为目标时间;
比较单元,被配置为执行比较所述目标时间和所述重叠时间之间的大小;
第三梯度更新时间计算单元,被配置为执行基于大小比较结果和所述排序最后的卷积层对应的子梯度更新时间,确定所述梯度更新时间。
在一示例性的实施方式中,所述装置还包括:
卷积层数量确定模块,被配置为执行确定所述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量;
重叠程度确定模块,被配置为执行根据所述第一卷积层数量和所述第二卷积层数量,确定所述重叠阶段对应的重叠程度;
第三性能指标确定模块,被配置为执行将所述重叠程度作为所述分布式机器学习系统的性能指标。
在一示例性的实施方式中,所述其他卷积层的数量为多个,则所述卷积层数量确定模块,包括:
第一卷积层数量确定单元,被配置为执行基于所述预设数量个卷积层的数量,确定所述第一卷积层数量;
卷积时间节点获取单元,被配置为执行获取各个其他卷积层完成梯度更新的时间节点;
时间计算单元,被配置为执行计算各个其他卷积层完成梯度更新的时间节点与所述第一时间节点之间的时间,得到各个其他卷积层各自对应的子梯度更新时间;
目标卷积层确定单元,被配置为执行将相应的子梯度更新时间小于所述重叠时间的其他卷积层作为目标卷积层;
目标卷积层数量确定单元,被配置为执行确定所述目标卷积层的数量;
第二卷积层数量确定单元,被配置为执行将所述目标卷积层的数量,作为所述第二卷积层数量。
根据本公开实施例的第三方面,提供一种电子设备,包括;
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的分布式机器学习系统的性能指标确定方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如上述任一实施方式所述的分布式机器学习系统的性能指标确定方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式所述的分布式机器学习系统的性能指标确定方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开将神经网络的训练过程划分为梯度计算阶段和梯度通信阶段,接着根据梯度计算阶段的梯度计算性能指标和分布式机器学习系统所在的设备的计算性能数据,确定梯度计算时间,并根据梯度更新阶段对应的梯度更新时间,确定梯度通信时间,最后在反向传播阶段和梯度更新阶段之间不具有重叠阶段时,根据梯度计算时间和梯度通信时间,确定分布式机器学习系统的性能指标。可见,本公开可以对神经网络模型训练的计算与通信行为过程进行建模,详细分析分布式机器学习系统训练过程中计算与通信的时序行为关系,从而得到粒度更细、准确有效的性能指标,进而通过该性能指标,准确且全面地刻画分布式机器学习系统内部各资源对可扩展性的影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种分布式机器学习系统的性能指标确定系统的应用环境示意图。
图2是根据一示例性实施例示出的一种Ring-Allreduce通信拓扑图。
图3是根据一示例性的实施例示出的一种分布式学习系统的性能指标确定方法的流程示意图。
图4是根据一示例性实施例示出的无重叠阶段的神经网络模型训练时序图。
图5是根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程图。
图6是根据一示例性实施例示出的一种确定梯度更新阶段对应的梯度更新时间的流程图。
图7是根据一示例性实施例示出的一种确定聚合计算阶段对应的聚合计算时间的流程图。
图8是根据一示例性实施例示出的一种确定第一迭代传输阶段和上述第二迭代传输阶段对应的传输时间的流程图。
图9是根据一示例性实施例示出的有重叠阶段的神经网络模型训练时序图。
图10是根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程示意图。
图11是根据一示例性实施例示出的另一种确定梯度更新阶段对应的梯度更新时间的流程示意图。
图12是根据一示例性实施例示出的另一种确定梯度更新阶段对应的梯度更新时间的流程示意图。
图13是根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程示意图。
图14是根据一示例性实施例示出的一种确定第一卷积层数量和第二卷积层数量的流程示意图。
图15是根据一示例性实施例示出的一种分布式机器学习系统的性能指标确定装置框图。
图16是根据一示例性实施例示出的一种用于分布式机器学习系统的性能指标确定的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,图1是根据一示例性实施例示出的一种分布式机器学习系统的性能指标确定系统的应用环境示意图。如图1所示,该应用环境可以包括分布式机器学习系统001和终端002。
分布式机器学习系统001可以用于神经网络模型的训练,将训练过程划分为梯度计算阶段和梯度通信阶段,并对梯度计算阶段和梯度通信阶段进行建模,从而得到用于分析分布式机器学习系统的可扩展性的性能指标。可选地,该分布式机器学习系统001可以包括分布式服务器,或者由多个服务器组成的服务器集群。
终端002可以用于采集训练数据,并将上述训练数据发送给分布式机器学习系统001进行训练,同时可以用于接收分布式机器学习系统001发送的性能指标,并将接收到的性能指标展示给用户。可选地,终端002可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、智能可穿戴设备等类型的电子设备。也可以为运行于上述电子设备的软体,例如应用程序、小程序等。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。
此外,需要说明的是,图1所示的仅仅是本公开提供的分布式机器学习系统的性能指标确定的一种应用环境示意图,在实际应用中,还可以包括其他应用环境。例如,可以通过服务器计算分布式机器学习系统的性能指标,相应地,上述分布式机器学习系统的性能指标确定系统可以包括分布式机器学习系统、终端和服务器。可选的,服务器可以是包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
分布式机器学习是融合计算、存储与网络的大规模复杂应用。分布式机器学习系统按照并行方式可以分为三类:1)计算并行模式,即所有工作节点共享一块公共内存,并且数据和模型存在共享内存中,各节点根据同步方式对模型进行更新;2)数据并行模式,即数据量天然分布在各个工作节点,每个节点用各自用局部数据进行训练,而后进行模型聚合;3)模型并行模式,即系统将模型按照一定策略进行子模型划分,每个工作节点负责局部模型的训练。目前,由于共享内存的限制以及合理模型划分的难度大,大部分的分布式机器学习系统采用数据并行模式。
分布式机器学习系统按照通信机制可以分为两类:1)基于参数服务器的通信架构,即所有GPU节点分为工作节点与参数服务器节点两类,工作节点负责模型训练中的计算任务,参数服务器节点负责模型的存储任务;2)基于MapReduce或者AllReduce迭代同步通信架构,即在第一阶段完成数据分发和并行处理,在第二阶段完成数据的全局同步与聚合。其中,MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
图2所示为根据一示例性实施例示出的一种Ring-Allreduce通信拓扑图。如图2所示,在Ring-Allreduce通信框架中,工作节点的通信步骤依次为Scatter-Reduce和Allgather。假设GPU数量为N,每个GPU构成一个工作节点,且N个节点依次连接成环状拓扑。系统根据GPU数量将模型划分为N块,每个GPU在通信时,仅发送对应参数块。在Scatter-Reduce阶段,所有节点仅向同一方向的下一直连节点发送本批次的模型更新值参数块,接收来自上一直连节点发送的参数块,并与本地对应参数块累加进行模型更新。经过N-1次迭代,每个GPU会拥有一个包含所有工作节点模型更新值的参数块。在Allgather阶段,所有节点仅向同一方向的下一直连节点发送模型最新值参数块,并接收来自上一直连节点发送的最新值参数块,将该参数块直接替换本地对应参数块。经过N-1次迭代,每个GPU所有的参数块为全局最新值。该算法将梯度更新任务平均分散到各工作节点,无需参数服务器,是带宽较佳的,并且是减少带宽的最快算法(假设与带宽相比,延迟成本可以忽略不计)。
由于Scatter-Reduce阶段涉及模型参数梯度的累加,Allgather阶段涉及模型参数梯度的替换,因此,本公开实施例中,可以将Scatter-Reduce阶段定义为数据累加阶段,将Allgather阶段定义为数据替换阶段。
本公开实施例以数据并行、采用Ring-Allreduce通信架构的分布式机器学习系统为例,详细分析该分布式机器学习系统训练过程中计算与通信的时序行为关系,从计算与通信两个角度确定更细粒度、准确有效的性能指标,从而准确且全面地分析分布式机器学习系统的可扩展性。
图3所示是根据一示例性的实施例示出的一种分布式学习系统的性能指标确定方法的流程示意图。如图3所示,该流程可以包括以下步骤:
在步骤S01中,将神经网络模型分布式训练过程进行阶段性抽象划分为前向传播阶段(forward)、误差计算阶段(compute-loss)、反向传播阶段(backward)和梯度更新阶段(update-gradient)。
在步骤S02中,将神经网络模型的训练过程抽象划分为梯度计算阶段与梯度通信阶段。其中,梯度计算阶段包括前向传播阶段、误差计算阶段和反向传播阶段,梯度通信阶段包括梯度更新阶段。
在步骤S03中,判断反向传播阶段和梯度更新阶段之间是否具有重叠阶段。
在步骤S04中,若反向传播阶段和梯度更新阶段之间没有重叠阶段,则对梯度计算阶段与梯度通信阶段分别建模,得到分布式机器学习系统的性能指标。
在步骤S05中,若反向传播阶段和梯度更新阶段之间具有重叠阶段,则对梯度计算阶段与梯度通信阶段分别建模,并对重叠阶段和未重叠阶段分别进行建模,从而得到分布式机器学习系统的性能指标。
具体地,在前向传播阶段,每层神经元的输入为与它相连的上一层每个神经元的输出加权求和后加上该神经元对应的偏差,该神经元经过一个非线性激活函数将输入激活为输出,传播至下一层。
在误差计算阶段,当模型的输入通过前向传播后会得到模型的输出,即模型的预测结果。通常神经网络的输入会指定一个确定性的输出标记值,用来表示正确预测结果。将模型的预测结果与真实标记值经过损失函数,得到神经网络的误差。
在反向传播阶段,模型根据误差计算阶段得到的误差,再根据对损失函数对前向每层神经元进行复合函数链式求导,误差通过反向层层传播,进而得到每层每个神经元的权重梯度。
在更新梯度阶段,分布式机器学习系统会借助Ring-AllReduce算法,在工作节点间迭代更新模型参数梯度。
以下,以反向传播阶段和梯度更新阶段之间没有重叠阶段为例,对分布式机器学习系统的性能指标确定方法进行说明。
图4所示是根据一示例性实施例示出的无重叠阶段的神经网络模型训练时序图。如图4所示,在神经网络模型训练开始前,分布式机器学习系统可以根据超参数(batch_size)将一个完整的迭代数据集(Epoch)划分为多个一个或多个batch,并在各工作节点间初始化(init)神经网络权重参数。其中,batch指的是对样本进行批量处理。每一batch在训练过程中均会经历前向传播阶段、误差计算阶段、反向传播阶段和更新梯度阶段。针对每一个batch,分布式机器学习系统均会将其划分为梯度计算阶段和梯度通信阶段,其中,梯度计算阶段包括前向传播阶段、误差计算阶段和反向传播阶段,梯度通信阶段包括梯度更新阶段。
图5是根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程图。如图5所示,以该分布式机器学习系统的性能指标确定方法用于图1所示的分布式机器学习系统001中进行说明,包括以下步骤。
在步骤S11中,确定上述梯度计算阶段的梯度计算性能指标,上述梯度计算性能指标表征上述梯度计算阶段的梯度计算复杂度。
示例性地,上述梯度计算性能指标可以为梯度计算阶段所需的浮点运算次数。
在一个可选的实施例中,上述步骤S11中确定梯度计算阶段的梯度计算性能指标,可以包括:
获取上述神经网络模型中的预设数量个卷积层。
获取各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量。
根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定上述前向传播阶段的前向传播性能指标,上述前向传播性能指标表征上述前向传播阶段的前向传播复杂度。
在上述反向传播阶段的反向传播性能指标与上述前向传播性能指标一致的情况下,根据上述前向传播性能指标,确定上述梯度计算性能指标;上述反向传播性能指标表征上述反向传播阶段的反向传播复杂度。
在一个具体的实施例中,参考式1,梯度计算时间(tcomputing)可以由前向传播阶段的前向传播时间(tforward)、误差计算阶段的误差计算时间(tcompute-loss)与反向传播阶段的反向传播时间(tbackward)共同构成:
tcomputing=tforward+tcompute-loss+tbackward (式1)。
在一个可选的实施例中,上述神经网络模型可以为卷积神经网络模型,对于多GPU工作节点参与训练工作的复杂应用场景,从理论分析角度出发,不同GPU在本地进行前向传播、计算误差、反向传播所需要的总算数运算次数相同。此外,由于卷积核计算的复杂特性,卷积计算在神经网络计算过程中会占用大量比例,因此,可以定义神经网络模型的计算复杂度c为神经网络卷积计算复杂度,即可以主要考虑卷积神经网络的卷积层。其中,神经网络模型的计算复杂度c一般通常指的是前向传播复杂度,也即推断计算复杂度。
根据式1,卷积神经网络在训练阶段的实际梯度计算时间由前向传播时间、误差计算时间与反向传播时间构成。在梯度下降计算过程中,根据链式求导法则将后一层的梯度向量经过卷积核转置矩阵运算后即求出前一层的梯度更新,因此反向传播阶段的反向传播性复杂度在理论上等于前向传播阶段的前向传播复杂度。此外,误差计算阶段的误差计算复杂度由于主要与最后全连接层的输出向量大小有关,其运算开销远远小于卷积计算。因此,可以忽略误差计算时间。综上反向传播性复杂度等于前向传播复杂度的情况下,卷积神经网络模型的梯度计算阶段的计算复杂度可以由前向传播复杂度决定。
在一个具体的实施例中,参考公式2,卷积神经网络的计算复杂度c(即由前向传播性能指标表征的前向传播计算复杂度)可以由所有卷积核的输出特征图面积、卷积核面积、输入通道数和输出通道数的乘积决定。为了简化表达式的复杂度,降低卷积神经网络的计算复杂度c的计算成本和对系统资源的占用,可以假设输入和卷积核的形状都是正方形,且忽略了每一层的Bias参数。其中,c表示神经网络模型的计算复杂度(即前向传播复杂度),i表示神经网络第i个卷积层,D表示卷积层的个数,也即模型的深度,M(i)表示该层卷积核输出特征图(Feature Map)的边长,K(i)表示该层卷积核Kernel的边长,C(i-1)表示该层卷积核的通道数,也即上一层的输出通道数,C(i)表示该卷积层具有的卷积核个数,也即输出通道数。
在一个具体的实施例中,当将反向传播时间简化为与前向传播时间相同,即简化为tbackward=tforward时,由于梯度计算阶段模型的梯度计算复杂度=前向传播复杂度+后向传播复杂度+误差计算复杂度(可忽略)。则梯度计算阶段模型的梯度计算性能指标(表征梯度计算复杂度)可以为两倍的前向传播性能指标(表征前向传播复杂度),即2c。
本公开实施例通过所有卷积核的输出特征图面积、卷积核面积、输入通道数和输出通道数来确定表征梯度计算复杂度的梯度计算性能指标,能够简化表达式的复杂度,减少梯度计算性能指标的计算过程对系统资源的占用,从而降低计算成本,且占用较少的计算资源,还能够提高梯度计算性能指标的计算效率。此外,所有卷积核的输出特征图面积、卷积核面积、输入通道数和输出通道数是梯度计算阶段的较为重要参数,通过上述较为重要的参数对计算过程时间开销进行深入分析,既深入表现了神经网络模型训练过程中的计算行为过程,又能够确保梯度计算性能指标确定的准确率,从而提高后续分布式机器学习系统的性能指标的确定精度和有效性。
在步骤S12中,基于上述梯度计算性能指标和上述分布式机器学习系统所在的设备的计算性能数据,确定上述梯度计算阶段对应的梯度计算时间。
示例性地,分布式机器学习系统所在的设备可以为承载该分布式机器学习系统的设备。例如常见的GPU、张量处理器(Tensor Processing Unit,TPU)等。
示例性地,计算性能数据可以为上述设备每秒钟能够完成的峰值浮点运算次数。
在一个具体的实施例中,可以通过前向传播性能指标(表征前向传播复杂度)的两倍除以上述计算性能数据(π),得到上述梯度计算时间(tcomputing),如式3所示。
由于通过式2确定出的梯度计算性能指标具有较高的准确率,通过准确率较高的梯度计算性能指标和上述计算性能数据确定上述梯度计算时间,能够真实有效地反应梯度计算阶段的时间开销,提高梯度计算时间确定的精度。
在步骤S13中,确定上述梯度更新阶段对应的梯度更新时间。
在步骤S14中,基于上述梯度更新时间,确定上述梯度通信阶段对应的梯度通信时间。
本公开实施例中,对于多GPU工作节点参与训练工作的复杂应用场景,GPU工作节点在进行反向传播得到梯度以后,会异步发起更新梯度通信请求。通常,系统采用协商同步机制,使得所有节点在同一时刻开始更新梯度阶段。此外,通用系统会提供统一通信调用应用程序接口(Application Programming Interface,API),协调快节点与慢节点的通信步调,保证所有工作节点在同一时刻结束通信。
在一个具体的实施例中,可以将协商同步的协商等待时间忽略。参考式4,梯度通信时间(tcommunication)可以由梯度更新时间(tupdate-gradient)构成,则在步骤S14中,可以将上述梯度更新时间作为上述梯度通信时间。
tcommunication=tupdate-gradient (式4)。
在一个可选的实施例中,对于采用Ring-Allreduce通信方式的分布式机器学习系统,该分布式机器学习系统包括多个工作节点,上述多个工作节点之间迭代更新模型参数梯度。工作节点的通信步骤依次为数据累加阶段(Scatter-Reduce)和数据替换阶段(Allgather)阶段。在Scatter-Reduce阶段,涉及模型参数梯度的聚合计算阶段与模型参数梯度的第一迭代传输阶段;而在Allgather阶段,涉及模型梯度的第二迭代传输阶段。基于此,可以根据聚合计算阶段的聚合计算时间(taggregation)和第一迭代传输阶段和第二迭代传输阶段对应的传输时间(ttransmission),确定上述梯度更新时间(tupdate-gradient)。
具体地,图6是根据一示例性实施例示出的一种确定上述梯度更新阶段对应的梯度更新时间的流程图。如图6所示,在上述步骤S13中,上述确定上述梯度更新阶段对应的梯度更新时间,可以包括:
在步骤S1301中,确定上述聚合计算阶段对应的聚合计算时间。
在步骤S1302中,确定迭代传输阶段对应的传输时间,上述迭代传输阶段包括上述第一迭代传输阶段和上述第二迭代传输阶段。
在步骤S1303中,根据上述聚合计算时间和上述传输时间,确定上述梯度更新时间。
在一个具体的实施例中,可以将聚合计算时间(taggregation)和传输时间(ttransmission)之和,作为上述梯度更新时间(tupdate-gradient),如式5所示。
tupdate-gradient=taggregation+ttransmission (式5)。
本公开实施例,将梯度更新阶段进行详细划分,确定每个阶段的时间开销,并根据每个阶段的时间开销确定该梯度更新阶段的梯度更新时间,确保了梯度更新时间计算的准确率,同时简化了确定梯度更新时间的复杂度,减少了确定梯度更新时间的确定过程对系统资源的占用。此外,针对梯度通信阶段作出了具体的时间开销分析,即直接将梯度更新时间作为梯度通信时间,无需额外通过其他计算方式计算得到该梯度通信时间,既深入表现了神经网络模型训练过程中的通信行为过程,又可以确保梯度通信时间的计算精度,同时还可以提高梯度通信时间的计算效率。
在一个可选的实施例中,图7是根据一示例性实施例示出的一种确定聚合计算阶段对应的聚合计算时间的流程图。如图7所示,在上述步骤S1301中,上述确定上述聚合计算阶段对应的聚合计算时间,可以包括:
在步骤S13011中,获取上述多个工作节点的节点数量和上述神经网络模型所包含的参数量。
在步骤S13012中,根据上述节点数量,确定上述数据累加阶段的迭代次数。
在步骤S13013中,基于上述参数量、上述节点数量和单个浮点数所占字节数,确定上述模型参数梯度所包含的浮点数。
在步骤S13014中,根据上述模型参数梯度所包含的浮点数和上述计算性能数据,确定上述模型参数梯度的聚合耗费时间。
在步骤S13015中,基于上述迭代次数和上述聚合耗费时间,确定上述聚合计算时间。
示例性地,N表示分布式机器学习系统中GPU工作节点的数量。在上述步骤S13012中,根据该节点的数量可以确定上述迭代次数为N-1。
示例性地,在步骤S13013中,模型参数梯度所包含的浮点数(F)可以由参数量大小S除以单个浮点数所占字节数f(通常32位浮点数占4字节,64位浮点数占8字节)与工作节点数N的乘积。如上述式6所示,当工作节点GPU数量逐渐增大至无穷时,上述聚合计算时间(taggregation)与参数量大小S成正比增长。
其中,参数量指的是神经网络模型含有的参数数量。具体地,可以指参数所占内存的总和。
本公开实施例通过GPU工作节点的数量N、参数量大小S、模型参数梯度所包含的浮点数F、单个浮点数所占字节数f和计算性能数据π确定上述聚合计算时间,能够更进一步地深入表现神经网络模型训练过程中的通信行为过程,且能够简化表达式的复杂度,减少聚合计算时间的计算过程对系统资源的占用,从而降低计算成本,提高计算效率。此外,GPU工作节点的数量N能够准确反映梯度更新阶段的迭代次数,模型参数梯度所包含的浮点数F与计算性能数据π的比值能够准确反映i次迭代梯度数据块聚合耗费时间,因此,通过迭代次数与i次迭代梯度数据块聚合耗费时间能够确保上述聚合计算时间确定的准确率,进而提高后续分布式机器学习系统的性能指标的确定精度和有效性。
在一个可选的实施例中,图8是根据一示例性实施例示出的一种确定第一迭代传输阶段和上述第二迭代传输阶段对应的传输时间的流程图。如图8所示,在上述步骤S1302中,上述确定迭代传输阶段对应的传输时间,可以包括:
在步骤S13021中,基于上述参数量和上述节点数量,确定每次迭代传输所传输的模型参数梯度的大小。
在步骤S13022中,获取上述设备的网络宽带数据。
在步骤S13023中,根据上述迭代次数、上述模型参数梯度的大小和上述网络宽带数据,确定上述传输时间。
在实际应用中,上述传输时间(ttransmission)与神经网络模型采用的同步/异步算法、通信架构、网络传输协议与网络硬件环境有着紧密联系。
示例性地,假设上述分布式机器学习系统所处的网络环境为理想环境:无其余背景流量,拥塞情况下无丢包,并且主要考虑发送时延。则通过分析Ring-Allreduce同步算法,Scatter-Reduce中的第一迭代传输阶段和Allgather中的第二迭代传输阶段各自经过N-1次迭代进行模型参数梯度传输。可选地,参考式7,在上述步骤S13023中,上述传输时间ttransmission可以定义为2(N–1)次迭代传输模型参数梯度大小除以网络带宽数据(β),其中为每次传输的模型参数梯度的大小。
本公开实施例通过GPU工作节点的数量N、参数量大小S、网络宽带数据β确定上述传输时间,能够更进一步地深入表现神经网络模型训练过程中的通信行为过程,且能够简化表达式的复杂度,减传输时间的计算过程对系统资源的占用,从而降低计算成本,提高计算效率。此外,由于Scatter-Reduce阶段和Allgather均涉及模型参数梯度的迭代传输,因此将上述传输时间ttransmission可以定义为2(N–1)次迭代传输模型参数梯度大小除以网络带宽数据(β),能够确保上述传输时间确定的准确率,进而提高后续分布式机器学习系统的性能指标的确定精度和有效性。
需要说明的是,在将一个完整的迭代数据集划分为一个batch时,上述梯度计算时间和梯度更新时间为该一个batch对应的时间。在将一个完整的迭代数据集划分为多个batch时,可以按照上述步骤分别计算每个batch对应的梯度计算时间和梯度更新时间,并对每个batch对应的梯度计算时间和梯度更新时间进行求和,得到整个训练过程中的梯度计算时间和梯度更新时间。
在步骤S15中,在上述反向传播阶段和上述梯度更新阶段之间不具有重叠阶段时,根据上述梯度计算时间和上述梯度通信时间,确定上述分布式机器学习系统的性能指标。
在一个可选的实施例中,可以使用时间加速比作为衡量分布式机器学习系统可扩展性的性能指标。具体地,在上述步骤S15中,可以计算梯度计算时间和梯度通信时间的和,并计算梯度计算时间与该和的商,从而得到上述性能指标。
参见式8,时间加速比scaling factor根据上述式1~式5,有如下定义:
在一个具体的实施例中,对于大规模GPU工作节点集群,scaling factor可以进一步简化为式9。
由式8可以清晰地看出,本公开实施例中的分布式机器学习系统的性能指标为梯度计算时间除以梯度计算时间与梯度更新时间的和。即本公开实施例不仅对通信结构作出了具体的时间开销分析,还详细分析该分布式机器学习系统训练过程中计算与通信的时序行为关系,从计算与通信两个角度设计新颖的可扩展性分析方法,定义出更细粒度、准确有效的性能指标,进而可以通过该性能指标,准确且全面地刻画分布式机器学习系统内部各资源对可扩展性的影响。
由式9可以清晰地看出,本公开实施例中的分布式机器学习系统的性能指标可以由计算复杂度、参数量大小、GPU硬件计算能力上限(即计算性能数据π)以及网络带宽数据确定。即本公式实施例中的分布式机器学习系统的可扩展性与神经网络模型的计算复杂度、参数量大小、GPU硬件计算能力上限(即计算性能数据π)、以及网络带宽数据有着直接关系。并且,对于一个深度神经网络模型,其卷积核操作越多,数据量越小,算力带宽比越小,通信时间占比小,因此其整体的可扩展性越好;反之,卷积核操作越少,数据量越大,算力带宽比越大,通信时间占比大,其整体的可扩展性越差。可见,通过式8和式9中计算得到的性能指标既可以刻画系统内各资源的相互作用关系,又可以入表现通信与计算的行为过程,从而准确且全面地分析模型的计算复杂度、参数量大小、GPU硬件计算能力上限(即计算性能数据π)以及网络带宽数据对分布式机器学习系统可扩展性的量化影响。
以下,以反向传播阶段和梯度更新阶段具有重叠阶段为例,对分布式机器学习系统的性能指标确定方法进行说明。
在一些可选的实施例中,为了充分利用计算资源与网络资源,可以尽可能地让深度神经网络分布式训练过程中梯度计算阶段与梯度通信阶段以流水线的方式并行执行。即从反向传播阶段(backward)与梯度更新阶段(update-gradient)按顺序流水线执行的情况出发,进一步分析影响分布式机器学习系统在训练过程中线性扩展的因素。
图9所示是根据一示例性实施例示出的有重叠阶段的神经网络模型训练时序图。如图9所示,反向传播阶段与梯度更新阶段顺序流水线执行表现为,深度神经网络的任何一层子模型在经过误差反向传播得到该层子模型的梯度被立即加入Ring-AllReduce通信队列,无需等待反向传播结束。例如,图9中第n层子模型在反向传播阶段最先完成梯度计算,在获得第n层子模型梯度后,分布式机器学习系统按照Ring-AllReduce通信方式将该层梯度进行更新梯度操作,与此同时,系统进行反向传播进程,将第n层子模型梯度输入至第n-1层子模型,求解第n-1层子模型梯度。类似地,第n-1层子模型梯度计算完成后,系统会将其加入更新梯度队列。如果更新梯度队列为空,即第n层子模型梯度在第n-1层子模型梯度计算完成前已经完成梯度更新,系统立即对第n-1层子模型梯度进行梯度更新操作。否则,第n-1层子模型梯度计算完成时,第n层子模型梯度未完成梯度更新,系统将其梯度加入更新梯度队列,当第n层子模型梯度完成更新时,立即进行梯度更新。系统的梯度更新(update-gradient)进程按照队列顺序对子模型梯度进行更新,在更新梯度队列为空的时候等待,直至有梯度加入队列或者最后一层梯度完成更新。
与无重叠情况相同,参考式1,有重叠情况下仍将梯度计算时间(tcomputing)由前向传播时间、误差计算时间与反向传播时间之和构成。同样,参考式4,梯度通信时间(tcommunication)由梯度更新时间(tupdate-gradient)构成。
在一个可选的实施例中,考虑反向传播阶段与更新梯度阶段的时间重叠,参考式10,进行一个batch训练的时间开销(tbatch)为梯度计算时间(tcomputing)与梯度通信时间(tcommunication)之和减去重叠阶段所占时间(toverlap)。
tbatch=tcomputing+tupdate-gradient-toverlap (式10)。
在一个可选的实施例中,图10所示为根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程示意图。如图10所示,在上述反向传播阶段和上述梯度更新阶段之间具有重叠阶段时,上述方法还可以包括:
在步骤S21中,确定各个卷积层的反向传播时间,各个卷积层的反向传播时间为相应的反向传播阶段对应的时间。
在步骤S22中,基于卷积层序列中,除排序最前的卷积层之外的其他卷积层的反向传播时间,确定上述重叠阶段对应的重叠时间;上述卷积层序列为按照梯度更新的顺序对各个卷积层进行排序所得到的序列。
在步骤S23中,根据上述梯度更新时间和上述重叠时间,确定未重叠时间;上述未重叠时间为上述反向传播阶段和上述梯度更新阶段之间未重叠阶段所对应的时间。
在步骤S24中,将上述重叠时间和/或上述未重叠时间,作为上述分布式机器学习系统的性能指标。
在一个具体的实施例中,在神经网络模型为卷积神经网络模型,且主要考虑卷积神经网络的卷积层,而忽略神经网络中的其余子层(模型)时,图9中的n,n-1,……,1可以指的是卷积神经网络中的卷积层。
由于所有子模型(具体可以为卷积层)在梯度更新阶段(update-gradient)通常使用反向传播(backward)的结果,因此存在特定的依赖关系,即重叠时间可以为反向传播时间的一部分。
参考式11,在上述步骤S22中,反向传播阶段与梯度更新阶段之间的重叠阶段所占的重叠时间(toverlap)可进一步定义为:除第n层子模型(具体可以为卷积层)以外剩余子模型(具体可以为卷积层)的反向传播时间之和。其中,表示第i层子模型(具体可以为卷积层)的反向传播梯度时间。
其中,上述步骤S22中的排序最前的卷积层为第n层卷积层。假设n为5,则卷积层序列为:第5层卷积层—第4层卷积层—第3层卷积层—第2层卷积层—第1层卷积层。
参考式12,在上述步骤S23中,未重叠时间(tnolap)可进一步定义为梯度更新时间tupdate-gradient与除第n层子模型(具体可以为卷积层)以外剩余子模型(具体可以为卷积层)的反向传播时间和之差。
本公开实施例中,在反向传播阶段与梯度更细阶段之间具有重叠阶段时,由于重叠阶段的重叠时间和/或未重叠阶段的未重叠时间能够真实反映反向传播阶段与梯度更新阶段的并行流水执行情况,而分布式机器学习系统的可扩展性又与反向传播阶段与梯度更新阶段的并行流水执行情况相关,因此,将重叠时间和/或未重叠阶段的未重叠时间作为分布式机器学习系统的性能指标,理论实际适应性较强,能够准确地刻画分布式机器学习系统的可扩展性。此外,由于反向传播阶段属于梯度计算阶段,梯度更新阶段属于梯度通信阶段,本公开实施例将除第n层卷积层以外剩余卷积层的反向传播时间之和作为重叠时间,并通过梯度更新时间和重叠时间确定非重叠时间,能够详细分析该分布式机器学习系统训练过程中计算与通信的时序行为关系,从计算与通信两个角度设计新颖的可扩展性分析方法,从而定义出更细粒度、准确有效的性能指标,进而可以通过该性能指标,准确且全面地刻画分布式机器学习系统内部各资源对可扩展性的影响。
在一个可选的实施例中,图11所示为根据一示例性实施例示出的另一种确定梯度更新阶段对应的梯度更新时间的流程示意图。如图11所示,上述确定上述梯度更新阶段对应的梯度更新时间,还可以包括:
在步骤S31中,获取上述排序最前的卷积层开始梯度更新的第一时间节点以及上述卷积层序列中排序最后的卷积层完成梯度更新的第二时间节点。
在步骤S32中,将上述第一时间节点和上述第二时间节点之间的时间,作为上述梯度更新时间。
具体地,在步骤S31中,排序最后的卷积层为第1层卷积层。
示例性地,梯度更新时间(tupdate-gradient)可通过递归方式进行定义。
参考式13,定义为第n层卷积层开始梯度更新的时间节点至第i层卷积层完成梯度更新的时间节点所经历的时间段。表示只进行第i层子模型梯度更新所消耗的时间,由式5可以推导出为第i卷积层的模型参数梯度的聚合计算时间与第i卷积层的模型参数梯度的传输时间之和。
参考式14,递归终止条件为,当i等于n时,等于进行第n层子模型梯度更新所消耗的时间。因此,在上述步骤S32中,总梯度更新时间tupdate-gradient可以用来表示,即第n层卷积层(即排序最前的卷积层)开始梯度更新的时间节点至第1层卷积层(即排序最后的卷积层)完成梯度更新的时间节点所经历的时间段,如式15所示。
示例性地,假设Ring-Allreduce模式下模型被均匀划分,即所有的工作节点所通信的梯度数据格式相同,则根据上述式6进一步得到单个卷积层的模型参数梯度的聚合时间,其中S(i)表示第i层卷积层的参数量大小:
其中,N表示分布式机器学习系统中GPU工作节点的数量、β为网络宽带数据。
在一个具体的实施例中,图12所示为根据一示例性实施例示出的另一种确定梯度更新阶段对应的梯度更新时间的流程示意图。如图12所示,上述确定上述梯度更新阶段对应的梯度更新时间,还可以包括:
在步骤S41中,确定上述排序最后的卷积层对应的子梯度更新时间。
在步骤S42中,获取上述卷积层序列中,排序倒数第二位的卷积层完成梯度更新的第三时间节点。
在步骤S43中,将上述第一时间节点和上述第三时间节点之间的时间作为目标时间。
在步骤S44中,比较上述目标时间和上述重叠时间之间的大小。
在步骤S45中,基于大小比较结果和上述排序最后的卷积层对应的子梯度更新时间,确定上述梯度更新时间。
示例性地,上述步骤S41中的排序最后的卷积层(即第1层卷积层)对应的子梯度更新时间为式18中的又可以进一步定义为与的和。其中,为第1层卷积层的模型参数梯度的聚合计算时间,其可以由式16推导出,即为第1层卷积层的模型参数梯度的迭代传输时间,其可以由式17推导出,即S(1)表示第1层卷积层的参数量大小。
示例性地,如上述式18所示,在上述步骤S44中,可以取和之间的最大值。需要说明的是,与上述类似,均可以用于表示除第n层子模型(具体可以为卷积层)以外剩余模型(具体可以为卷积层)的反向传播时间之和,即重叠时间(toverlap)。
本公开实施例在反向传播阶段与梯度更新阶段之间具有重叠阶段时,通过上述递归方式确定梯度更新时间,能够准确地反应梯度更新阶段的时间开销数据,从而更进一步地深入表现神经网络模型训练过程中的通信行为过程。此外,上述递归方式可以简化梯度更新时间的计算复杂度,减少梯度更新计算过程对系统资源的占用。
在一个具体的实施例中,在步骤S21中,上述确定各个卷积层的反向传播时间,可以包括:
根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定各个卷积层的前向传播阶段的前向传播性能指标。
在各个卷积层的反向传播阶段的反向传播性能指标与各个卷积层的前向传播阶段的前向传播性能指标一致的情况下,根据各个卷积层的前向传播阶段的前向传播性能指标以及上述计算性能数据,确定各个卷积层的反向传播时间。
示例性地,在卷积神经网络模型为卷积神经网络模型,且主要考虑卷积神经网络模型中的卷积层时,如式11所示,卷积神经网络模型中各个卷积层的反向传播时间可以由上述式2和式3推导出,如式19:
其中,c表示神经模型的计算复杂度,i表示神经网络第i个卷积层,Mi表示该卷积层中的卷积核输出特征图(Feature Map)的边长,Ki表示该卷积层中的卷积核(Kernel)的边长,Ci-1表示该卷积层中的卷积核的通道数,也即上一层的输出通道数,Ci表示该层卷积层具有的卷积核个数,也即输出通道数。
本公式实施例中,在卷积神经网络模型为卷积神经网络模型,且主要考虑卷积神经网络模型中的卷积层时,可以认为各个卷积层的反向传播阶段的反向传播性能指标与各个卷积层的前向传播阶段的前向传播性能指标一致,从而根据各个卷积层的前向传播阶段的前向传播性能指标以及上述计算性能数据,简单快捷地确定出各个卷积层的反向传播时间。简化了反向传播时间确定的复杂度,减少了反向传播时间的计算过程对系统资源的占用。此外,由于反向传播阶段属于梯度计算阶段,通过上述方式计算方向传播时间,能够进一步地深入表现神经网络模型训练过程中的计算行为过程。
本公开实施例中,在上述步骤S24中,反向传播(backward)阶段与更新梯度(update-gradient)阶段重叠时间(toverlap)与未重叠时间(tnolap)都可以作为衡量分布式机器学习可扩展性的重要性能指标。将式15带入式12可得tnolap的递归计算公式,如式20所示。
对于一个给定的深度神经网络模型,可以通过式20及其递归计算式13、式14、式19计算得出其理想情况下tnolap具体数值。从分布式机器系统可扩展性角度出发,tnolap时间越长,则表明系统梯度更新时间较长,反向传播与更新梯度无法并行流水执行,可扩展性差。反之,如果tnolap趋近于零,则反向传播与更新梯度可以完美并行流水执行,系统可扩展性非常强。
在一个可选的实施例中,图13所示为根据一示例性实施例示出的另一种分布式机器学习系统的性能指标确定方法的流程示意图。如图13所示,上述方法还可以包括:
在步骤S51中,确定上述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量。
在步骤S52中,根据上述第一卷积层数量和上述第二卷积层数量,确定上述重叠阶段对应的重叠程度。
在步骤S53中,将上述重叠程度作为上述分布式机器学习系统的性能指标。
示例性地,可以定义重叠程度(ω)来衡量反向传播(backward)阶段与更新梯度(update-gradient)阶段的重叠程度。参考式21,Nbackward表示overlap时间段进行backward的卷积层数量,为overlap时间段进行update-gradient的卷积层数量。
示例性地,在步骤S52中,如式21所示,可以将第一卷积层数量和上述第二卷积层数量的比值作为上述重叠程度。
在一个具体的实施例中,图14所示为根据一示例性实施例示出的一种确定第一卷积层数量和第二卷积层数量的流程示意图。如图14所示,上述其他卷积层的数量为多个,则上述步骤S51中,上述确定上述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量,可以包括:
在步骤S5101中,基于上述预设数量个卷积层的数量,确定上述第一卷积层数量。
在步骤S5102中,获取各个其他卷积层完成梯度更新的时间节点。
在步骤S5103中,计算各个其他卷积层完成梯度更新的时间节点与上述第一时间节点之间的时间,得到各个其他卷积层各自对应的子梯度更新时间。
在步骤S5104中,将相应的子梯度更新时间小于上述重叠时间的其他卷积层作为目标卷积层。
在步骤S5105中,确定上述目标卷积层的数量。
在步骤S5106中,将上述目标卷积层的数量,作为上述第二卷积层数量。
示例性地,由于存在数据依赖关系,在上述步骤S5101中,Nbackward可直接定义为n-1,n为神经网络中卷积层的数量。
示例性地,在上述步骤S5102-步骤S5106中,Nupdate-gradient可以由式22定义,表示为使得其累计梯度更新时间小于累计除了第n层卷积层之外的第1层卷积层至第n-1层卷积层之间的反向传播时间之和(即重叠时间)的最大值。
假设n=5,则Nbackward=5-1=4。
对于Nupdate-gradient,
综上,Nupdate-gradient为2。
本公开实施例中,在反向传播阶段与梯度更细阶段之间具有重叠阶段时,由于重叠阶段进行反向传播的卷积层数量与进行梯度更新的卷积层数量,能够真实反映反向传播阶段与梯度更新阶段的并行流水执行情况,而分布式机器学习系统的可扩展性又与反向传播阶段与梯度更新阶段的并行流水执行情况相关,因此,将重叠阶段进行反向传播的卷积层数量与进行梯度更新的卷积层数量的比值,作为分布式机器学习系统的性能指标,能够详细分析该分布式机器学习系统训练过程中计算与通信的时序行为关系,从计算与通信两个角度确保该性能指标具有更细粒度,进而可以通过该性能指标,准确且全面地刻画分布式机器学习系统内部各资源对可扩展性的影响。具体地,根据上述式21和式22,对于一个给定的神经网络模型,其重叠比ω越大,表示反向传播与更新梯度可以完美并行流水执行,系统可扩展性非常强。否则,反向传播与更新梯度重叠时间短,通讯仍占整体时间很大比例,系统可扩展性差。
图15是根据一示例性实施例示出的一种分布式机器学习系统的性能指标确定装置框图。上述分布式机器学习系统用于训练神经网络模型,上述神经网络模型的训练过程包括梯度计算阶段和梯度通信阶段,上述梯度通信阶段包括梯度更新阶段。参照图15,该装置包括梯度计算性能指标确定模块61,梯度计算时间确定模块62,梯度更新时间确定模块63,梯度通信时间确定模块64和第一性能指标确定模块65。
该梯度计算性能指标确定模块61,被配置为执行确定上述梯度计算阶段的梯度计算性能指标,上述梯度计算性能指标表征上述梯度计算阶段的梯度计算复杂度。
梯度计算时间确定模块62,被配置为执行基于上述梯度计算性能指标和上述分布式机器学习系统所在的设备的计算性能数据,确定上述梯度计算阶段对应的梯度计算时间。
梯度更新时间确定模块63,被配置为执行确定上述梯度更新阶段对应的梯度更新时间。
梯度通信时间确定模块64,被配置为执行基于上述梯度更新时间,确定上述梯度通信阶段对应的梯度通信时间。
第一性能指标确定模块65,被配置为执行在上述反向传播阶段和上述梯度更新阶段之间不具有重叠阶段时,根据上述梯度计算时间和上述梯度通信时间,确定上述分布式机器学习系统的性能指标。
在一示例性的实施方式中,上述梯度计算阶段包括前向传播阶段和反向传播阶段,上述梯度计算性能指标确定模块61,可以包括:
卷积层获取单元,被配置为执行获取上述神经网络模型中的预设数量个卷积层。
卷积核信息获取单元,被配置为执行获取各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量。
前向传播性能指标确定单元,被配置为执行根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定上述前向传播阶段的前向传播性能指标,上述前向传播性能指标表征上述前向传播阶段的前向传播复杂度。
梯度计算性能指标计算单元,被配置为执行在上述反向传播阶段的反向传播性能指标与上述前向传播性能指标一致的情况下,根据上述前向传播性能指标,确定上述梯度计算性能指标;上述反向传播性能指标表征上述反向传播阶段的反向传播复杂度。
在一示例性的实施方式中,上述分布式机器学习系统包括多个工作节点,上述多个工作节点之间迭代更新模型参数梯度,上述梯度更新阶段包括数据累加阶段和数据替换阶段,上述数据累加阶段包括模型参数梯度的聚合计算阶段和模型参数梯度的第一迭代传输阶段,上述数据替换阶段包括模型参数梯度的第二迭代传输阶段,则上述梯度更新时间确定模块,可以包括:
聚合计算时间确定单元,被配置为执行确定上述聚合计算阶段对应的聚合计算时间。
传输时间确定单元,被配置为执行确定迭代传输阶段对应的传输时间,上述迭代传输阶段包括上述第一迭代传输阶段和上述第二迭代传输阶段。
第一梯度更新时间计算单元,被配置为执行根据上述聚合计算时间和上述传输时间,确定上述梯度更新时间。
相应地,上述梯度通信时间确定模块,被配置为执行将上述梯度更新时间作为上述梯度通信时间。
在一示例性的实施方式中,上述聚合计算时间确定单元,可以包括:
数量获取子单元,被配置为执行获取上述多个工作节点的节点数量和上述神经网络模型所包含的参数量。
迭代次数确定子单元,被配置为执行根据上述节点数量,确定上述数据累加阶段的迭代次数。
浮点数确定子单元,被配置为执行基于上述参数量、上述节点数量和单个浮点数所占字节数,确定上述模型参数梯度所包含的浮点数。
聚合耗费时间确定子单元,被配置为执行根据上述模型参数梯度所包含的浮点数和上述计算性能数据,确定上述模型参数梯度的聚合耗费时间。
聚合计算时间计算子单元,被配置为执行基于上述迭代次数和上述聚合耗费时间,确定上述聚合计算时间。
在一示例性的实施方式中,上述传输时间确定单元,可以包括:
模型参数梯度大小确定子单元,被配置为执行基于上述参数量和上述节点数量,确定每次迭代传输所传输的模型参数梯度的大小。
网络宽带数据获取子单元,被配置为执行获取上述设备的网络宽带数据。
传输时间计算子单元,被配置为执行根据上述迭代次数、上述模型参数梯度的大小和上述网络宽带数据,确定上述传输时间。
在一示例性的实施方式中,在上述反向传播阶段和上述梯度更新阶段之间不具有重叠阶段时,上述装置包括分布式机器学习系统的性能指标确定模块。
在一示例性的实施方式中,在上述反向传播阶段和上述梯度更新阶段之间具有重叠阶段时,上述装置还可以包括:
反向传播时间确定模块,被配置为执行确定各个卷积层的反向传播时间,各个卷积层的反向传播时间为相应的反向传播阶段对应的时间。
重叠时间确定模块,被配置为执行基于卷积层序列中,除排序最前的卷积层之外的其他卷积层的反向传播时间,确定上述重叠阶段对应的重叠时间;上述卷积层序列为按照梯度更新的顺序对各个卷积层进行排序所得到的序列。
未重叠时间确定模块,被配置为执行根据上述梯度更新时间和上述重叠时间,确定未重叠时间;上述未重叠时间为上述反向传播阶段和上述梯度更新阶段之间未重叠阶段所对应的时间。
第二性能指标确定模块,被配置为执行将上述重叠时间和/或上述未重叠时间,作为上述分布式机器学习系统的性能指标。
在一示例性的实施方式中,上述反向传播时间确定模块,可以包括:
卷积前向传播性能指标确定单元,被配置为执行根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定各个卷积层的前向传播阶段的前向传播性能指标。
卷积反向传播时间计算单元,被配置为执行在各个卷积层的反向传播阶段的反向传播性能指标与各个卷积层的前向传播阶段的前向传播性能指标一致的情况下,根据各个卷积层的前向传播阶段的前向传播性能指标以及上述计算性能数据,确定各个卷积层的反向传播时间。
在一示例性的实施方式中,上述梯度更新时间确定模块,可以包括:
第一和第二时间节点获取单元,被配置为执行获取上述排序最前的卷积层开始梯度更新的第一时间节点以及上述卷积层序列中排序最后的卷积层完成梯度更新的第二时间节点。
第二梯度更新时间计算单元,被配置为执行将上述第一时间节点和上述第二时间节点之间的时间,作为上述梯度更新时间。
在一示例性的实施方式中,上述梯度更新时间确定模块可以包括:
子梯度更新时间确定单元,被配置为执行确定上述排序最后的卷积层对应的子梯度更新时间。
第三时间节点获取单元,被配置为执行获取上述卷积层序列中,排序倒数第二位的卷积层完成梯度更新的第三时间节点。
目标时间确定单元,被配置为执行将上述第一时间节点和上述第三时间节点之间的时间作为目标时间。
比较单元,被配置为执行比较上述目标时间和上述重叠时间之间的大小。
第三梯度更新时间计算单元,被配置为执行基于大小比较结果和上述排序最后的卷积层对应的子梯度更新时间,确定上述梯度更新时间。
在一示例性的实施方式中,上述装置还可以包括:
卷积层数量确定模块,被配置为执行确定上述重叠阶段内,进行反向传播的第一卷积层数量和进行梯度更新的第二卷积层数量。
重叠程度确定模块,被配置为执行根据上述第一卷积层数量和上述第二卷积层数量,确定上述重叠阶段对应的重叠程度。
第三性能指标确定模块,被配置为执行将上述重叠程度作为上述性能指标。
在一示例性的实施方式中,上述其他卷积层的数量为多个,则上述卷积层数量确定模块,可以包括:
第一卷积层数量确定单元,被配置为执行基于上述预设数量个卷积层的数量,确定上述第一卷积层数量。
卷积时间节点获取单元,被配置为执行获取各个其他卷积层完成梯度更新的时间节点。
时间计算单元,被配置为执行计算各个其他卷积层完成梯度更新的时间节点与上述第一时间节点之间的时间,得到各个其他卷积层各自对应的子梯度更新时间。
目标卷积层确定单元,被配置为执行将相应的子梯度更新时间小于上述重叠时间的其他卷积层作为目标卷积层。
目标卷积层数量确定单元,被配置为执行确定上述目标卷积层的数量。
第二卷积层数量确定单元,被配置为执行将上述目标卷积层的数量,作为上述第二卷积层数量。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一分布式机器学习系统的性能指标确定方法的步骤。
该电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图16是根据一示例性实施例示出的一种用于分布式机器学习系统的性能指标确定的电子设备的框图,该电子设备70可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)71(中央处理器71可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器73,一个或一个以上存储应用程序723或数据722的存储介质72(例如一个或一个以上海量存储设备)。其中,存储器73和存储介质72可以是短暂存储或持久存储。存储在存储介质72的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器71可以设置为与存储介质772通信,在电子设备70上执行存储介质72中的一系列指令操作。电子设备70还可以包括一个或一个以上电源76,一个或一个以上有线或无线网络接口75,一个或一个以上输入输出接口74,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口74可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备70的通信供应商提供的无线网络。在一个实例中,输入输出接口74包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口74可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图16所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备70还可包括比图16中所示更多或者更少的组件,或者具有与图16所示不同的配置。
在示例性实施例中,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中任一分布式机器学习系统的性能指标确定方法的步骤。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一种实施方式中提供的分布式机器学习系统的性能指标确定方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种分布式机器学习系统的性能指标确定方法,其特征在于,所述分布式机器学习系统用于训练神经网络模型,所述神经网络模型的训练过程包括梯度计算阶段和梯度通信阶段,所述梯度通信阶段包括梯度更新阶段,所述方法包括:
确定所述梯度计算阶段的梯度计算性能指标,所述梯度计算性能指标表征所述梯度计算阶段的梯度计算复杂度;
基于所述梯度计算性能指标和所述分布式机器学习系统所在的设备的计算性能数据,确定所述梯度计算阶段对应的梯度计算时间;
确定所述梯度更新阶段对应的梯度更新时间;
基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间;
在所述反向传播阶段和所述梯度更新阶段之间不具有重叠阶段时,根据所述梯度计算时间和所述梯度通信时间,确定所述分布式机器学习系统的性能指标。
2.根据权利要求1所述的分布式机器学习系统的性能指标确定方法,其特征在于,所述梯度计算阶段包括前向传播阶段和反向传播阶段,所述确定所述梯度计算阶段的梯度计算性能指标,包括:
获取所述神经网络模型中的预设数量个卷积层;
获取各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量;
根据各个卷积层中的卷积核所输出的特征图的尺寸、各个卷积层中的卷积核的尺寸、各个卷积层中的卷积核的通道数和各个卷积层中的卷积核的数量,确定所述前向传播阶段的前向传播性能指标,所述前向传播性能指标表征所述前向传播阶段的前向传播复杂度;
在所述反向传播阶段的反向传播性能指标与所述前向传播性能指标一致的情况下,根据所述前向传播性能指标,确定所述梯度计算性能指标;所述反向传播性能指标表征所述反向传播阶段的反向传播复杂度。
3.根据权利要求2所述的分布式机器学习系统的性能指标确定方法,其特征在于,所述分布式机器学习系统包括多个工作节点,所述多个工作节点之间迭代更新模型参数梯度,所述梯度更新阶段包括数据累加阶段和数据替换阶段,所述数据累加阶段包括模型参数梯度的聚合计算阶段和模型参数梯度的第一迭代传输阶段,所述数据替换阶段包括模型参数梯度的第二迭代传输阶段,则所述确定所述梯度更新阶段对应的梯度更新时间,包括:
确定所述聚合计算阶段对应的聚合计算时间;
确定迭代传输阶段对应的传输时间,所述迭代传输阶段包括所述第一迭代传输阶段和所述第二迭代传输阶段;
根据所述聚合计算时间和所述传输时间,确定所述梯度更新时间;
相应地,所述基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间,包括:
将所述梯度更新时间作为所述梯度通信时间。
4.根据权利要求3所述的分布式机器学习系统的性能指标确定方法,其特征在于,所述确定所述聚合计算阶段对应的聚合计算时间,包括:
获取所述多个工作节点的节点数量和所述神经网络模型所包含的参数量;
根据所述节点数量,确定所述数据累加阶段的迭代次数;
基于所述参数量、所述节点数量和单个浮点数所占字节数,确定所述模型参数梯度所包含的浮点数;
根据所述模型参数梯度所包含的浮点数和所述计算性能数据,确定所述模型参数梯度的聚合耗费时间;
基于所述迭代次数和所述聚合耗费时间,确定所述聚合计算时间。
5.根据权利要求4所述的分布式机器学习系统的性能指标确定方法,其特征在于,所述确定迭代传输阶段对应的传输时间,包括:
基于所述参数量和所述节点数量,确定每次迭代传输所传输的模型参数梯度的大小;
获取所述设备的网络宽带数据;
根据所述迭代次数、所述模型参数梯度的大小和所述网络宽带数据,确定所述传输时间。
6.根据权利要求2所述的分布式机器学习系统的性能指标确定方法,其特征在于,在所述反向传播阶段和所述梯度更新阶段之间具有重叠阶段时,所述方法还包括:
确定各个卷积层的反向传播时间,各个卷积层的反向传播时间为相应的反向传播阶段对应的时间;
基于卷积层序列中,除排序最前的卷积层之外的其他卷积层的反向传播时间,确定所述重叠阶段对应的重叠时间;所述卷积层序列为按照梯度更新的顺序对各个卷积层进行排序所得到的序列;
根据所述梯度更新时间和所述重叠时间,确定未重叠时间;所述未重叠时间为所述反向传播阶段和所述梯度更新阶段之间未重叠阶段所对应的时间;
将所述重叠时间和/或所述未重叠时间,作为所述分布式机器学习系统的性能指标。
7.一种分布式机器学习系统的性能指标确定装置,其特征在于,所述分布式机器学习系统用于训练神经网络模型,所述神经网络模型的训练过程包括梯度计算阶段和梯度通信阶段,所述梯度通信阶段包括梯度更新阶段,所述装置包括:
梯度计算性能指标确定模块,被配置为执行确定所述梯度计算阶段的梯度计算性能指标,所述梯度计算性能指标表征所述梯度计算阶段的梯度计算复杂度;
梯度计算时间确定模块,被配置为执行基于所述梯度计算性能指标和所述分布式机器学习系统所在的设备的计算性能数据,确定所述梯度计算阶段对应的梯度计算时间;
梯度更新时间确定模块,被配置为执行确定所述梯度更新阶段对应的梯度更新时间;
梯度通信时间确定模块,被配置为执行基于所述梯度更新时间,确定所述梯度通信阶段对应的梯度通信时间;
第一性能指标确定模块,被配置为执行在所述反向传播阶段和所述梯度更新阶段之间不具有重叠阶段时,根据所述梯度计算时间和所述梯度通信时间,确定所述分布式机器学习系统的性能指标。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的分布式机器学习系统的性能指标确定方法。
9.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如权利要求1至6中任一项所述的分布式机器学习系统的性能指标确定方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的分布式机器学习系统的性能指标确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110565148.XA CN113419931B (zh) | 2021-05-24 | 2021-05-24 | 分布式机器学习系统的性能指标确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110565148.XA CN113419931B (zh) | 2021-05-24 | 2021-05-24 | 分布式机器学习系统的性能指标确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419931A true CN113419931A (zh) | 2021-09-21 |
CN113419931B CN113419931B (zh) | 2024-05-17 |
Family
ID=77712888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110565148.XA Active CN113419931B (zh) | 2021-05-24 | 2021-05-24 | 分布式机器学习系统的性能指标确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419931B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114580664A (zh) * | 2022-03-03 | 2022-06-03 | 字节跳动(香港)有限公司 | 训练分析方法、装置、存储介质及电子设备 |
CN115829053A (zh) * | 2022-11-25 | 2023-03-21 | 北京百度网讯科技有限公司 | 模型运行策略确定方法、装置、电子设备以及存储介质 |
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685126A (zh) * | 2018-12-17 | 2019-04-26 | 北斗航天卫星应用科技集团有限公司 | 基于深度卷积神经网络的图像分类方法及图像分类系统 |
CN109741256A (zh) * | 2018-12-13 | 2019-05-10 | 西安电子科技大学 | 基于稀疏表示和深度学习的图像超分辨率重建方法 |
CN110633785A (zh) * | 2018-06-21 | 2019-12-31 | 清华大学 | 一种卷积神经网络的计算方法及系统 |
CN110766060A (zh) * | 2019-10-14 | 2020-02-07 | 中山大学 | 基于深度学习的时间序列相似度的计算方法、系统及介质 |
CN111788585A (zh) * | 2019-01-16 | 2020-10-16 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN111882060A (zh) * | 2020-07-20 | 2020-11-03 | 中国人民解放军国防科技大学 | 用于机器学习的单步延迟随机梯度下降训练方法 |
CN112333234A (zh) * | 2020-09-23 | 2021-02-05 | 清华大学 | 分布式机器学习训练方法、装置、电子设备及存储介质 |
-
2021
- 2021-05-24 CN CN202110565148.XA patent/CN113419931B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633785A (zh) * | 2018-06-21 | 2019-12-31 | 清华大学 | 一种卷积神经网络的计算方法及系统 |
CN109741256A (zh) * | 2018-12-13 | 2019-05-10 | 西安电子科技大学 | 基于稀疏表示和深度学习的图像超分辨率重建方法 |
CN109685126A (zh) * | 2018-12-17 | 2019-04-26 | 北斗航天卫星应用科技集团有限公司 | 基于深度卷积神经网络的图像分类方法及图像分类系统 |
CN111788585A (zh) * | 2019-01-16 | 2020-10-16 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN110766060A (zh) * | 2019-10-14 | 2020-02-07 | 中山大学 | 基于深度学习的时间序列相似度的计算方法、系统及介质 |
CN111882060A (zh) * | 2020-07-20 | 2020-11-03 | 中国人民解放军国防科技大学 | 用于机器学习的单步延迟随机梯度下降训练方法 |
CN112333234A (zh) * | 2020-09-23 | 2021-02-05 | 清华大学 | 分布式机器学习训练方法、装置、电子设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114580664A (zh) * | 2022-03-03 | 2022-06-03 | 字节跳动(香港)有限公司 | 训练分析方法、装置、存储介质及电子设备 |
CN115829053A (zh) * | 2022-11-25 | 2023-03-21 | 北京百度网讯科技有限公司 | 模型运行策略确定方法、装置、电子设备以及存储介质 |
CN115829053B (zh) * | 2022-11-25 | 2023-09-19 | 北京百度网讯科技有限公司 | 模型运行策略确定方法、装置、电子设备以及存储介质 |
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116644803B (zh) * | 2023-07-27 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113419931B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113419931A (zh) | 分布式机器学习系统的性能指标确定方法及装置 | |
CN111723933B (zh) | 神经网络模型的训练方法和相关产品 | |
CN110476172A (zh) | 用于卷积神经网络的神经架构搜索 | |
CN114756383A (zh) | 一种分布式计算方法、系统、设备及存储介质 | |
CN113095474A (zh) | 深度学习模型的资源使用情况预测 | |
CN110659678B (zh) | 一种用户行为分类方法、系统及存储介质 | |
CN114997337B (zh) | 信息融合、数据通信方法、装置及电子设备和存储介质 | |
CN110832509A (zh) | 使用神经网络的黑盒优化 | |
CN112236784A (zh) | 修改机器学习模型以改善局部性 | |
CN113312178A (zh) | 一种基于深度强化学习的流水线并行训练任务分配方法 | |
CN112433853B (zh) | 一种面向超级计算机数据并行应用的异构感知数据划分方法 | |
CN108415760B (zh) | 一种基于移动机会网络的群智计算在线任务分配方法 | |
CN111539534B (zh) | 一种基于强化学习的通用分布式图处理方法及系统 | |
US11551095B2 (en) | Sharing preprocessing, computations, and hardware resources between multiple neural networks | |
CN111723932A (zh) | 神经网络模型的训练方法和相关产品 | |
CN111106960A (zh) | 一种虚拟网络的映射方法、映射装置及可读存储介质 | |
CN113220466A (zh) | 一种基于长短期记忆模型的云服务负载通用预测方法 | |
CN115859016A (zh) | 基于处理器的运算方法、装置、计算机设备及存储介质 | |
CN110377769A (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
CN116170439A (zh) | 面向新型负荷接入的多业务数据云边卸载方法及系统 | |
CN114780250A (zh) | 函数内存分配方法、装置、计算机设备、存储介质和产品 | |
US11475311B2 (en) | Neural network instruction streaming | |
CN111027018B (zh) | 加速计算设备建模的方法、装置、计算设备及介质 | |
CN111061513B (zh) | 加速计算设备建模的方法、电子设备及可读存储介质 | |
Zhuang et al. | Smart multi-tenant federated learning |
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 |