1.本发明属于数据分布式计算技术领域,更具体地,涉及一种基于梯度传输优化的数据分布式训练方法、系统及介质。
背景技术:2.在新一轮信息技术与制造业融合的趋势下,新时代的“工业革命”正席卷全球。在大数据、人工智能、工业互联网等新兴技术快速发展的背景下,工业数字化是未来发展的必然方向。
3.随着数字化浪潮在工业领域的渗透,数据已经成为工业领域新的“生产资料”。随着大量工业数据的不断产生,传统处理数据的方法因数据量级的改变正在经历着严峻的挑战。传统方法多用单台计算机或服务器作为处理中枢,当数据量巨大时往往不能达到较为良好的效果,因此为解决上述问题,以多机“合作”为基本思想的分布式系统开始逐渐广泛应用。
4.新技术的应用往往带来新的问题,首先,在分布式系统中,多台终端间需要通过网络进行数据传输,黑客极有可能在传输过程中窃取重要的数据,大大提升了安全性的防护难度。其次,分布式系统虽然可以调用多终端的算力同时运算,提升计算效率,但与此同时,由于大量数据通过网络传输将带来传输成本的增加,在极大规模的分布式情况下,数据传输所花费的时间和成本会大大降低分布式系统的性能。
5.因此,如何在保证计算效率的前提下同时提升数据的安全性和传输效率是亟需解决的问题。
技术实现要素:6.针对现有技术的以上缺陷或改进需求,本发明提出了一种基于梯度传输优化的数据分布式训练方法、系统及介质,可以有效地解决分布式系统中数据在处理、计算和传输中存在的相关问题,节约分布式计算时间,降低计算成本,提升数据与系统的安全性。
7.为实现上述目的,按照本发明的一个方面,提供了一种基于梯度传输优化的数据分布式训练方法,包括:(1)采用神经网络模型作为标准算法模型并确定分机数量及各分机的权重,获取原始数据集并随机打乱原始数据集,每台分机按各自的权重从打乱后的原始数据集中获取相应比例的目标数据集;(2)各分机将获得的目标数据集按比例分为训练集和测试集,将所述标准算法模型应用于各分机;(3)记录训练次数,在当前训练次数为1时,各分机应用各自对应的训练集和初始权重项及偏置项参数计算本地梯度,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至主机;在当前训练次数大于1时,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至主机;
(4)主机根据各分机压缩后的新梯度计算所有分机的有效梯度的加权平均值得到主机的聚合梯度,并将聚合梯度传输至各分机;(5)各分机将收到的聚合梯度应用梯度下降算法更新本地标准算法模型的权重项和偏置项参数,并计算本地梯度,运用各分机对应的测试集测试各分机的算法准确率,各分机将各自的算法准确率传输至主机,主机按各分机权重对各分机对应的算法准确率进行加权平均,获得综合准确率;(6)若综合准确率小于期望准确率,且当前训练次数小于预设训练次数阈值,则返回执行步骤(3),若综合准确率不小于期望准确率,或者,当前训练次数等于预设训练次数阈值,则向各分机下达终止训练指令,主机加权平均各分机权重项和偏置项参数后,将其应用至标准算法模型得到最优标准算法模型。
8.在一些可选的实施方案中,步骤(1)中各分机权重的计算方法为:统计所有分机算力之和为总算力,按各分机算力占总算力的百分比确定各分机权重。
9.在一些可选的实施方案中,步骤(3)中,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度,包括:对每个分机计算的本地梯度采用带有误差反馈项的算法计算得到压缩后的新梯度。
10.在一些可选的实施方案中,所述对每个分机计算的本地梯度采用带有误差反馈项的算法计算得到压缩后的新梯度,包括:各分机使用各自对应的本地梯度计算经过误差反馈处理后的梯度,其中,,为标准算法模型的学习率,t为训练次数,为第i台分机在第t-1次训练中产生的误差,为第i台分机在第t次训练中的本地梯度,为第i台分机在第t次训练中经过误差反馈处理后的梯度;由运用算法对经过误差反馈处理后的梯度进行压缩得到压缩后的新梯度,为第i台分机在第t次训练中经过压缩后的新梯度;由得到第i台分机在第t次训练中产生的误差。
11.在一些可选的实施方案中,所述运用算法对经过误差反馈处理后的梯度进行压缩得到压缩后的新梯度,包括:取出经过误差反馈处理后的梯度中权重项梯度和偏置项梯度;确定第1梯度压缩值,将每层权重项梯度中绝对值按降序排列在前的数据进行第一次保留,其他数据设置为0;确定第2梯度压缩值,对第一次保留的权重项梯度,将每层权
重项梯度中非零值的随机进行第二次保留,将其他数据设置为0;将第二次保留的权重项梯度和未经处理的偏置项梯度按原有顺序结合形成压缩后的新梯度。
12.在一些可选的实施方案中,步骤(4)包括:主机将第t次训练中各分机传来的新梯度进行汇总,由将各分机的有效梯度进行加权平均得到第t次训练主机的聚合梯度,其中,n为分机数量,为第i台分机的权重,有效梯度为梯度值不为0的值。
13.在一些可选的实施方案中,由得到第t次训练的综合准确率,其中,为第i台分机在第t次训练中的算法准确率。
14.在一些可选的实施方案中,在综合准确率不小于期望准确率,或者,当前训练次数等于预设训练次数阈值时,向各分机下达终止训练指令,得到最后一次训练的聚合梯度,将此梯度传输给分机以更新各自的权重项和偏置项参数,各分机将权重项和偏置项参数传输给主机,主机对权重项和偏置项参数进行加权平均后与标准算法模型组合成为最优标准算法模型。
15.按照本发明的另一方面,提供了一种基于梯度传输优化的数据分布式训练系统,包括:主机和若干个分机;所述主机,用于采用神经网络模型作为标准算法模型并确定分机数量及各分机的权重,获取原始数据集并随机打乱原始数据集;每个所述分机,用于按各自的权重从打乱后的原始数据集中获取相应比例的目标数据集,将获得的目标数据集按比例分为训练集和测试集,并运用标准算法模型进行训练;每个所述分机,还用于记录训练次数,在当前训练次数为1时,应用各自对应的训练集和初始权重项及偏置项参数计算本地梯度,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至主机;在当前训练次数大于1时,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至所述主机;所述主机,用于根据各所述分机压缩后的新梯度计算所有分机的有效梯度的加权平均值得到主机的聚合梯度,并将聚合梯度传输至各所述分机;每个所述分机,用于将收到的聚合梯度应用梯度下降算法更新本地标准算法模型的权重项和偏置项参数,并计算本地梯度,运用对应的测试集测试算法准确率,将各自的算法准确率传输至所述主机;所述主机,用于按各分机权重对各分机对应的算法准确率进行加权平均,获得综合准确率,若综合准确率小于期望准确率,且当前训练次数小于预设训练次数阈值,则返回执行压缩梯度的操作,直至综合准确率不小于期望准确率,或者,当前训练次数等于预设训练次数阈值,向各分机下达终止训练指令,加权平均各分机权重项和偏置项参数后,将其应用至标准算法模型得到最优标准算法模型。
16.按照本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程
序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
17.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:本发明通过优化分布式计算,仅传输部分梯度,在加快运算速度的同时有较好的运算结果,由于本发明仅传输梯度,不传输全部数据,有效地节约了通信所产生的费用,可防止黑客窃取相关重要工业数据,具有极强的安全性。
附图说明
18.图1是本发明实施例提供的一种基于梯度传输优化的数据分布式训练方法的流程示意图;图2是本发明实施例提供的一种一号分机计算的的部分内容;图3是本发明实施例提供的一种一号分机计算的的部分内容;图4是本发明实施例提供的一种一号分机计算的的部分内容;图5是本发明实施例提供的一种一号分机计算的的部分内容;图6是本发明实施例提供的一种第15次训练中主机聚合梯度的部分内容。
具体实施方式
19.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
20.实施例一如图1所示是本发明实施例提供的一种基于梯度传输优化的数据分布式训练方法的流程示意图,在图1所示的方法中包括以下步骤:s1:采用神经网络模型作为标准算法模型并确定分机数量及各分机的权重,获取原始数据集并随机打乱原始数据集,每台分机按各自的权重从打乱后的原始数据集中获取相应比例的目标数据集;本实施例中涉及的权重项和偏置项参数意为标准算法模型中权重项和偏置项前的系数,权重项和偏置项梯度为计算权重项和偏置项参数时损失函数的导数。
21.s2:各分机将获得的目标数据集按比例分为训练集和测试集,将标准算法模型应用于各分机;s3:记录训练次数,在当前训练次数为1时,各分机应用各自对应的训练集和初始权重项及偏置项参数计算本地梯度,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至主机;在当前训练次数大于1时,对每个分机计算的本地梯度进行压缩得到压缩后的新梯度并传输至主机;在本发明实施例中,在当前训练次数为1时,可以采用符合标准正态分布的随机数
生成初始权重项和偏置项参数,标准正态分布特指,各分机应用本地训练集和初始权重项和偏置项参数计算本地梯度。
22.在本发明实施例中,在当前训练次数大于1时,对每个分机计算的本地梯度采用带有误差反馈项的算法计算得到压缩后的新梯度。
23.s4:主机根据各分机压缩后的新梯度计算所有分机的有效梯度的加权平均值得到主机的聚合梯度,并将聚合梯度传输至各分机;s5:各分机将收到的聚合梯度应用梯度下降算法更新本地标准算法模型的权重项和偏置项参数,并计算本地梯度,运用各分机对应的测试集测试各分机的算法准确率,各分机将各自的算法准确率传输至主机,主机按各分机权重对各分机对应的算法准确率进行加权平均,获得综合准确率;s6:若综合准确率小于期望准确率,且当前训练次数小于预设训练次数阈值,则返回执行步骤s3,若综合准确率不小于期望准确率,或者,当前训练次数等于预设训练次数阈值,则向各分机下达终止训练指令,主机加权平均各分机权重项和偏置项参数后,将其应用至标准算法模型得到最优标准算法模型。
24.在本发明实施例中,在步骤s1中,先确定标准算法模型和分机个数n,标准算法模型可以采用各类神经网络模型,并统一神经网络结构的各项参数、优化器类型及损失函数种类等;随后统计所有分机算力之和为总算力,按各分机算力占总算力的百分比确定各分机权重,将原始数据集进行随机打乱后,按各分机权重获取对应比例的目标数据集,其中,分机算力表示该分机计算哈希函数输出的速度,为第i台分机的权重。
25.在本发明实施例中,在步骤s2中,各分机可以按照8:2的比例将各分机对应的目标数据集分为训练集和测试集。
26.在本发明实施例中,在步骤s3中,训练次数t为正整数,初始值为1,每训练完一次t值加1,每1轮分布式计算采用同步计算的方式,其中,同步计算是指这一轮所有分机的梯度都需要计算完毕,如果有的分机计算的比较慢,需要等待该分机计算完毕才进行下一步操作。
27.在本发明实施例中,在步骤s3中,带有误差反馈项的算法的具体操作步骤如下:设定学习率,迭代训练数,设定每台分机在初始时刻的误差,i对应分机的编号,分机数量为n,第i台分机在第t次训练中的本地梯度为,第i台分机在第t次训练中经过误差反馈处理后的梯度为,第i台分机在第t次训练中经过压缩后的梯度为,第i台分机在第t次训练中产生的误差为;各分机应用本地训练集计算本地梯度;使用本地梯度计算经过误差反馈处理后的梯度;
运用算法对经过误差反馈处理后的梯度进行压缩得到压缩后的梯度,将传给主机;计算第t次训练中产生的误差。
28.其中,在本发明实施例中,上述过程中的算法是对梯度进行如下操作:取出经过误差反馈处理后的梯度中权重项梯度和偏置项梯度;确定第1梯度压缩值,将每层权重项梯度中绝对值按降序排列在前的数据进行第一次保留,其他数据设置为0;确定第2梯度压缩值,选择经过第一次保留后的权重项梯度,将每层权重项梯度中非零值的随机进行第二次保留,将其他数据设置为0;将经过第二次保留处理后所得的权重项梯度和未经修改的偏置项梯度按原有顺序结合形成压缩后的梯度。
29.在本发明实施例中,经过上述步骤s3的操作既可以降低通讯的成本,同时在分布式计算中对梯度进行随机性处理可以很好的抵御网络的攻击,使数据不被泄露,起到保护隐私的作用。
30.在本发明实施例中,在步骤s4中,主机将第t次训练中,各分机传来的新梯度进行汇总,具体方法为将步骤s4所得新梯度对应位置上的有效值进行加权平均,获得第t次训练中主机聚合梯度的,此处定义新梯度中不为0的值为有效值,其中,,然后将聚合后的梯度传递给各个分机,每个分机所得到的梯度都是相同的。
31.在本发明实施例中,在步骤s5中,各分机获取步骤s4中所得的聚合梯度,将用于更新权重项和偏置项参数后计算新的梯度,运用各分机的测试集测试各分机的算法准确率,并将各分机的算法准确率传入主机,主机获得各分机的算法准确率后进行加权平均,获得第t次训练的综合准确率并保存于主机中,其中,。
32.在本发明实施例中,在步骤s6中,主机根据当前迭代次数t和保存的所有综合准确率数据判断是否继续训练,当综合准确率小于期望准确率,或者,当前训练次数不等于预设训练次数阈值时,返回执行步骤s3,当综合准确率不小于期望准确率,或者,当前训练次数等于预设训练次数阈值时,停止训练,输出最后一次训练的聚
合梯度,将最后一次训练的聚合梯度传输至各分机,更新各分机的权重项和偏置项参数,再将更新后的权重项和偏置项参数传输至主机,主机对更新后的权重项和偏置项参数加权平均得到最优权重项和偏置项参数,将最优权重项和偏置项参数与标准算法模型组合成为最优标准算法模型,保存至主机。
33.实施例二通过具体实验对本发明进行实验验证。如下表1为取不同值时,算法的准确率情况。
34.表1实验目标:应用本发明所提出的分布式计算方式识别mnist数据集,展示中间过程,验证其有效性。
35.运行环境:python 3.6 tensorflow2.4.0。
36.分机配置:cpu:inter(r) core(tm) i7-9700k gpu:nvida rtx 3080 10g。
37.主机配置:cpu:inter(r) core(tm) i7-10400kf gpu:无。
38.数据集:mnist数据集共60000个图像,为0-9的手写数字,色彩为黑白,图像大小为28
×
28。
39.参数设置:分机台数,第1和第2梯度压缩比例分别设为:,各分机算力相同故权重,规定终止迭代次数,设置学习率。
40.标准算法模型设置如下表2所示:表2 标准算法模型模型训练:步骤s1:各分机获得预设参数;步骤s2:每台分机获得10000条数据,设置其中8000条为训练数据,剩下2000条为测试数据;步骤s3:各分机运用本地训练数据计算梯度;如图2所示为一号分机在第15次训练中计算的部分原始梯度。
41.经过误差反馈处理后的梯度如图3所示,为一号分机在第15次训练中经过误差反馈后的梯度。
42.使用算法对梯度进行压缩,如图4所示为一号分机在第15次训练中计算的部分压缩后的梯度。
43.计算此次训练所产生的误差,如图5所示为一号分机在第15次训练中产生的部分误差。
44.此步骤s3中将传入主机,保留至下轮迭训练代中使用。
45.步骤s4:主机将聚合,得到,并将其传输至各分机;如图6所示为主机在第15轮迭代训练中聚合的的部分梯度。
46.步骤s5:各分机接受聚合梯度后应用至本地,计算测试集准确率,再将各分机准确率汇总至主机计算综合准确率;如下表3为第15轮迭代训练中各分机准确率和综合准确率。
47.表3第15轮迭代训练中各分机的准确率步骤s6:根据终止条件判断是否结束训练,达到终止条件时,综合准确率为84.53%,保存此模型为最优标准算法模型。
48.如表4为达到终止条件时,各分机准确率和综合准确率。
49.表4第155轮迭代中各分机的准确率需要指出,根据实施的需要,可将本技术中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
50.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。