CN112085074B - 一种模型参数更新***、方法及装置 - Google Patents
一种模型参数更新***、方法及装置 Download PDFInfo
- Publication number
- CN112085074B CN112085074B CN202010863228.9A CN202010863228A CN112085074B CN 112085074 B CN112085074 B CN 112085074B CN 202010863228 A CN202010863228 A CN 202010863228A CN 112085074 B CN112085074 B CN 112085074B
- Authority
- CN
- China
- Prior art keywords
- gradient
- computing node
- model
- iteration round
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 137
- 238000012545 processing Methods 0.000 claims abstract description 233
- 238000012549 training Methods 0.000 claims abstract description 138
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000003062 neural network model Methods 0.000 claims abstract description 50
- 230000002452 interceptive effect Effects 0.000 claims abstract description 14
- 238000013145 classification model Methods 0.000 claims description 47
- 238000001514 detection method Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 15
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 29
- 238000013139 quantization Methods 0.000 description 27
- 230000002457 bidirectional effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 14
- 230000008451 emotion Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000010365 information processing Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供一种模型参数更新***、方法及装置,涉及人工智能技术领域,用以优化神经网络模型的训练过程。该方法包括:各个辅计算节点与主计算节点进行多个迭代轮次的交互操作,获得各个辅计算节点和主计算节点上目标模型的本地模型参数;任一个迭代轮次的交互操作中,各个辅计算节点确定各自的本地模型参数的第一梯度,基于第一误差补偿值对第一梯度进行目标处理得到第二梯度,利用接收的第三梯度更新各自的本地模型参数;主计算节点基于第二误差补偿值对第二梯度进行目标处理得到第三梯度,将第三梯度发送给各个辅计算节点,利用第三梯度更新本地模型参数。该方法提升了分布式训练中神经网络模型的收敛性,进而提升了神经网络模型的训练效率。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种模型参数更新***、方法及装置。
背景技术
随着人工智能技术的不断发展,神经网络模型在信息分类、信息识别、信息处理等方向有着越来越多的应用;为了提升神经网络模型的训练效率,相关技术中常对神经网络模型的参数和训练数据进行分布式的训练,同时为了进一步提升训练效率,分布式训练***中的训练节点会对神经网络模型的参数进行一些减少数据量的目标处理,但目标处理的过程中会产生误差,影响训练过程中神经网络模型的损失函数值的下降,使得神经网络模型无法收敛或者收敛速度过慢,降低了神经网络模型的训练效率,因此如何提升对神经网络模型进行分布式训练的训练效率成为了需要考虑的问题。
发明内容
本申请实施例提供一种模型参数更新***、方法及装置,用于提升对神经网络模型进行分布式训练的训练效率。
本申请第一方面,提供一种模型参数更新***,包括主计算节点和至少两个辅计算节点,
各个辅计算节点与所述主计算节点进行多个迭代轮次的交互操作,获得所述各个辅计算节点上的本地模型参数和所述主计算节点上的本地模型参数;所述本地模型参数包括目标模型的模型参数,其中所述多个迭代轮次中任一个迭代轮次的交互操作包括:
所述各个辅计算节点根据所述目标模型的训练样本,确定各自的本地模型参数的第一梯度,基于辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度,并将所述第二梯度发送给所述主计算节点;以及利用从所述主计算节点接收的第三梯度,更新各自的本地模型参数;所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度,所述目标处理包括减小数据的数据量的操作;
所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对所述第二梯度进行所述目标处理得到所述第三梯度,并将所述第三梯度发送给所述各个辅计算节点;以及利用所述第三梯度,更新所述主计算节点上的本地模型参数。
本申请第二方面,提供一种模型参数更新方法,包括:
主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度;所述第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行所述目标处理得到的;所述本地模型参数包括目标模型的模型参数,所述第一梯度是所述各个辅计算节点根据所述目标模型的训练样本确定的,所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度;
所述主计算节点将所述第三梯度发送给所述各个辅计算节点,以使所述各个辅计算节点利用所述第三梯度更新各自的本地模型参数;以及
所述主计算节点利用所述第三梯度,更新所述主计算节点上的本地模型参数。
在一种可能的实现方式中,该方法还包括:
所述主计算节点在所述第t个迭代轮次中,按照如下公式对所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值进行更新,得到所述主计算节点第t+1个迭代轮次中对应的第二误差补偿值:
其中,所述Et+1是所述主计算节点在所述第t+1个迭代轮次中对应的第二误差补偿值。
在一种可能的实施方式,所述主计算节点利用所述第三梯度,更新所述主计算节点上的本地模型参数,包括:
所述主计算节点在所述第t个迭代轮次中,将所述主计算节点在第t-1个迭代轮次中更新得到的本地模型参数与所述第三梯度的差值,确定为所述主计算节点在所述第t个迭代轮次中更新得到的本地模型参数。
在一种可能的实施方式,所述目标处理满足如下条件:
目标处理误差值不大于误差阈值;所述目标处理误差值是原始数据的数据量和所述原始数据对应的处理数据的数据量的偏差值,所述处理数据是对所述原始数据进行所述目标处理得到的;所述误差阈值是根据所述原始数据与预设误差参数确定的;以及
所述目标处理得到的处理数据的数据量不大于所述处理数据对应的原始数据。
本申请第三方面,提供一种模型参数更新方法,包括:
辅计算节点根据目标模型的训练样本,确定所述辅计算节点上本地模型参数的第一梯度;所述本地模型参数包括所述目标模型的模型参数,所述第一梯度用于指示所述辅计算节点上的本地模型参数的变化程度;
所述辅计算节点基于所述辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度;所述目标处理包括减小数据的数据量的操作;
所述辅计算节点将所述第二梯度发送给所述主计算节点,以使所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对至少两个所述辅计算节点的第二梯度进行所述目标处理得到第三梯度,以及以使所述主计算节点根据所述第三梯度更新所述主计算节点上的本地模型参数;
所述辅计算节点利用从所述主计算节点接收的第三梯度,更新所述辅计算节点上的本地模型参数。
在一种可能的实现方式中,该方法还包括:
所述辅计算节点在所述第t个迭代轮次中,按照如下公式对所述辅计算节点在所述第t个迭代轮次中对应的第一误差补偿值进行更新,得到所述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值:
其中,所述et+1是所述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值。
在一种可能的实现方式中,所述辅计算节点利用从所述主计算节点接收的第三梯度,更新所述辅计算节点上的本地模型参数,包括:
所述辅计算节点在所述第t个迭代轮次中,将所述辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数与所述第三梯度的差值,确定为所述辅计算节点在所述第t个迭代轮次中更新得到的本地模型参数。
在一种可能的实现方式中,所述目标处理满足如下条件:
目标处理误差不大于误差阈值;所述目标处理误差是原始数据的数据量和所述原始数据对应的处理数据的数据量的偏差值,所述处理数据是对所述原始数据进行所述目标处理得到的;所述误差阈值是根据所述原始数据与预设误差参数确定的;以及
所述目标处理得到的处理数据的数据量不大于所述处理数据对应的原始数据。
本申请第四方面,提供一种模型参数更新装置,包括:
梯度处理单元,用于基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度;所述第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行所述目标处理得到的;所述本地模型参数包括目标模型的模型参数,所述第一梯度是所述各个辅计算节点根据所述目标模型的训练样本确定的,所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度;
信息发送单元,用于将所述第三梯度发送给所述各个辅计算节点,以使所述各个辅计算节点利用所述第三梯度,更新各自的本地模型参数;以及
参数更新单元,用于利用所述第三梯度,更新所述主计算节点上的本地模型参数。
在一种可能的实现方式中,所述主计算节点与所述各个辅计算节点进行多个迭代轮次的交互操作,其中所述主计算节点在第t个迭代轮次中对应的第二误差补偿值,是所述主计算节点在第1个至t-1个迭代轮次中,进行所述目标处理的第二误差的累计值;所述t为正整数,且所述t为1时,所述主计算节点在第1个迭代轮次中对应的第二误差补偿值为预设补偿值。
在一种可能的实现方式中,所述梯度处理单元具体用于:
在所述第t个迭代轮次中,确定所述至少两个辅计算节点的第二梯度的平均梯度;
按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值。
在一种可能的实现方式中,梯度处理单元还用于:在所述第t个迭代轮次中,按照如下公式对所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值进行更新,得到所述主计算节点第t+1个迭代轮次中对应的第二误差补偿值:
其中,所述Et+1是所述主计算节点在所述第t+1个迭代轮次中对应的第二误差补偿值。
在一种可能的实现方式中,所述参数更新单元具体用于:
在所述第t个迭代轮次中,将所述主计算节点在第t-1个迭代轮次中更新得到的本地模型参数与所述第三梯度的差值,确定为所述主计算节点在所述第t个迭代轮次中更新得到的本地模型参数。
在一种可能的实现方式中,所述目标处理满足如下条件:
目标处理误差值不大于误差阈值;所述目标处理误差值是原始数据的数据量和所述原始数据对应的处理数据的数据量的偏差值,所述处理数据是对所述原始数据进行所述目标处理得到的;所述误差阈值是根据所述原始数据与预设误差参数确定的;以及
所述目标处理得到的处理数据的数据量不大于所述处理数据对应的原始数据。
在一种可能的实现方式中,所述目标模型是分布式训练神经网络模型,
所述模型参数更新装置应用于信息分类领域时,所述目标模型为信息分类模型,所述模型参数是所述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
所述模型参数更新装置应用于信息检测领域时,所述目标模型为信息检测模型,所述模型参数是所述信息预测模型中指示信息特征和检测结果的对应关系的参数。
本申请第五方面,提供一种模型参数更新装置,包括:
第一梯度处理单元,用于根据目标模型的训练样本,确定辅计算节点上本地模型参数的第一梯度;所述本地模型参数包括所述目标模型的模型参数,所述第一梯度用于指示所述辅计算节点上的本地模型参数的变化程度;
第二梯度处理单元,基于所述辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度;所述目标处理包括减小数据的数据量的操作;
信息发送单元,用于将所述第二梯度发送给所述主计算节点,以使所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对至少两个所述辅计算节点的第二梯度进行所述目标处理得到第三梯度,以及以使所述主计算节点根据所述第三梯度更新所述主计算节点上的本地模型参数;
参数更新单元,用于利用从所述主计算节点接收的第三梯度,更新所述辅计算节点上的本地模型参数。
在一种可能的实现方式中,所述辅计算节点与所述主计算节点进行多个迭代轮次的交互操作;其中所述辅计算节点在第t个迭代轮次中对应的第一误差补偿值,是所述辅计算节点在第1个至t-1个迭代轮次中,进行所述目标处理的第一误差与第t-1个迭代轮次中得到的第二梯度的差值的累计值;所述t为正整数,且所述t为1时,所述第1个迭代轮次的第一误差补偿值为预设补偿值。
在一种可能的实现方式中,所述第二梯度处理单元具体用于:
在所述第t个迭代轮次中,基于如下公式以及所述辅计算节点在所述第t个迭代轮次中对应的第一误差补偿值,对所述第一梯度进行所述目标处理,得到所述第二梯度:
其中,所述Δt是所述辅计算节点在第t个迭代轮次中得到的第二梯度,所述Qw()为所述辅计算节点上所述目标处理的算法;所述αt是所述辅计算节点在所述第t个迭代轮次中本地模型参数的学***均值,所述梯度滑动平均值用于指示所述第一梯度的变化程度,所述Vt是根据所述第一梯度、指数移动平均系数,对所述辅计算节点在第t-1个迭代轮次中的梯度滑动平均值Vt-1进行处理得到的,所述指数移动平均系数是根据初始移动平均系数和迭代轮次得到的。
在一种可能的实现方式中,所述第二梯度处理单元还用于:
在所述第t个迭代轮次中,按照如下公式对所述辅计算节点在所述第t个迭代轮次中对应的第一误差补偿值进行更新,得到所述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值:
其中,所述et+1是所述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值。
在一种可能的实现方式中,所述参数更新单元具体用于:
所述辅计算节点在所述第t个迭代轮次中,将所述辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数与所述第三梯度的差值,确定为所述辅计算节点在所述第t个迭代轮次中更新得到的本地模型参数。
在一种可能的实现方式中,所述目标处理满足如下条件:
目标处理误差不大于误差阈值;所述目标处理误差是原始数据的数据量和所述原始数据对应的处理数据的数据量的偏差值,所述处理数据是对所述原始数据进行所述目标处理得到的;所述误差阈值是根据所述原始数据与预设误差参数确定的;以及
所述目标处理得到的处理数据的数据量不大于所述处理数据对应的原始数据。
在一种可能的实现方式中,所述目标模型是分布式训练神经网络模型,
所述模型参数更新装置应用于信息分类领域时,所述目标模型为信息分类模型,所述模型参数是所述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
所述模型参数更新装置应用于信息检测领域时,所述目标模型为信息检测模型,所述模型参数是所述信息预测模型中指示信息特征和检测结果的对应关系的参数。
本申请第六方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第二方面及任一种可能的实施方式中任一所述的方法。
本申请第七方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第三方面及任一种可能的实施方式中任一所述的方法。
本申请第八方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第二方面或第三方面的各种可能的实现方式中提供的方法。
本申请第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面及任一种可能的实施方式中任一所述的方法。
由于本申请实施例采用上述技术方案,至少具有如下技术效果:
本申请实施例中的分布式训练***中各计算节点(主计算节点和辅计算节点)在对目标模型的模型参数的相关梯度进行目标处理时,均采用了对应了误差补偿值降低进行目标处理产生的误差的影响,因此减少了各计算节点进行目标处理的误差,进而减少目标处理的误差对目标模型的损失函数值的影响,从而降低了目标模型在分布式训练过程中不收敛的可能性,提升了目标模型的训练效率;且由于减少目标处理的误差对目标模型的损失函数值的影响,进一步加快了目标模型在分布式训练过程中收敛的速度,从而进一步提升了目标模型的训练效率。
附图说明
图1为本申请实施例提供的一种模型参数更新***的示意图;
图2为本申请实施例提供的一种各计算节点初始化的过程图;
图3为本申请实施例提供的一种各计算节点初始化的过程示意图;
图4为本申请实施例提供的一种模型参数更新方法的过程示意图;
图5为本申请实施例提供的一种模型参数更新方法的过程示意图;
图6为本申请实施例提供的一种主计算节点和辅计算节点的交互过程示意图;
图7为本申请实施例提供的一种模型参数更新方法的实验效果示意图;
图8为本申请实施例提供的一种模型参数更新方法的实验效果示意图;
图9为本申请实施例提供的一种模型参数更新方法的实验效果示意图;
图10为本申请实施例提供的一种模型参数更新方法的实验效果示意图;
图11为本申请实施例提供的一种模型参数更新装置的结构示意图;
图12为本申请实施例提供的一种模型参数更新装置的结构示意图;
图13为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的技术名词进行说明。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***;人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术;人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习等几大方向。
神经网络模型的收敛性:给定神经网络模型训练过程中一个最大迭代次数,一个损失函数值的损失阈值(即模型的误差的极限值),神经网络模型的每一训练中调整模型参数都会使得损失函数值减小,理论上训练样本足够大并且迭代次数趋于无穷的时候损失函数值会收敛,但是实际上有可能出现当迭代到设定的最大迭代次数时,损失函数值仍然大于损失阈值或达不到损失阈值,或迭代次数达到一定的次数之后,损失函数值并未收敛且在某一值附近发生不稳定的浮动,这种情况下神经网络模型的训练失败,这种现象即成为神经网络模型不收敛或收敛性差。
目标处理:本申请实施例中的目标处理指代减少数据量的操作;目标处理可以为删去数据中最小值的压缩处理,目标处理也可以为把一种数据格式的数据量化为另外一种数据格式的量化处理,如将float 32格式的数据量化成6bit格式的数据的量化处理等,目标处理还可以为其它能够减少数据量的操作。
下面对本申请的设计思想进行说明。
随时人工智能技术的不断发展,机器学习中的神经网络模型在信息分类如图像分类、信息识别如目标检测、信息处理如自然语言处理或语音合成等方向有着越来越多的应用;但为了得到识别准确度和分类准确度较高的神经网络模型,往往用大量的参数和训练数据去训练神经网络模型;但参数和训练数据的数据量很大会影响神经网络模型的训练效率,因此相关技术中常采用参数服务器(parameter-server)模型,对神经网络模型的参数和训练数据进行分布式的训练,但是参数服务器在运行过程中,服务器中的辅计算节点worker和主计算节点server之间存在着大量的通信,严重限制了神经网络模型的训练速度,虽然目前相关技术中会在server或worker上对神经网络模型的参数进行量化或压缩,但量化或压缩的过程中也会造成参数的数据的误差,会使得训练过程中神经网络模型的损失函数值的下降,进而使得神经网络模型无法收敛或者收敛速度过慢,影响神经网络模型的训练效率,且会导致训练得到的神经网络模型的性能不稳定,影响训练得到的神经网络模型的准确度,因此如何提升对神经网络模型进行分布式训练的训练效率,以及提升训练得到的神经网络的准确度成为了需要考虑的问题。
鉴于此,发明人设计了一种涉及人工智能的机器学习中的模型参数更新方法及装置;考虑到提升神经网络模型的训练效率,本申请实施例中对神经网络模型进行分布式训练,并在分布式训练***中的主计算节点和辅计算节点上都对训练相关数据,进行减少数据量的目标处理,以提升训练效率;考虑到神经网络模型的训练效率和准确度与神经网络模型在训练过程中的收敛性的相关度高,本申请实施例中通过提升神经网络模型在训练过程中的收敛性,以进一步提升神经网络模型的训练效率和准确度;由于神经网络模型在训练过程中的收敛性,在很大程度上受计算节点对训练相关数据进行目标处理造成的误差的影响,因此本申请实施例中考虑在计算节点上利用目标处理的误差补偿值,对计算节点进行目标处理产生的误差进行补偿,进而以减少目标处理产生的误差对神经网络模型的收敛性的影响;同时为了提升神经网络模型的收敛速度,本申请实施例中在分布式训练***中的主计算节点和各辅计算节点上,均采用相应的误差补偿值对目标处理产生的误差进行补偿;具体地:
本申请实施例中,上述分布式训练***中包括主计算节点和至少两个辅计算节点,各个辅计算节点与主计算节点进行多个迭代轮次的交互操作,获得目标模型的模型参数,其中任一个迭代轮次的交互操作中,各个辅计算节点根据目标模型的训练样本确定各自的本地模型参数的第一梯度,基于辅计算节点对应的目标处理的第一误差补偿值,对第一梯度进行目标处理得到第二梯度,并将第二梯度发送给主计算节点;以及利用从主计算节点接收的第三梯度,更新各自的本地模型参数;上述第一梯度用于指示辅计算节点上目标模型的本地模型参数的变化程度;主计算节点基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行目标处理得到第三梯度,并将第三梯度发送给各个辅计算节点;以及利用第三梯度更新主计算节点上目标模型的本地模型参数,上述目标模型即为上述神经网络模型。
为了更清楚地理解本申请的设计思路,以下结合附图对本申请实施例提供的模型参数更新方法进行示例介绍。
请参见图1,本申请实施例提供一种模型参数更新***,该***中包括主计算节点110和至少两个辅计算节点120,其中主计算节点110和辅计算节点120可以是参数服务器,该参数服务器可以但不局限于分布式服务器、区块链服务器以及云端服务器等,主计算节点110和辅计算节点120之间可以通过通信网络进行通信,且在不同的场景下主计算节点110和辅计算节点120的身份可以切换,上述通信网络可以但不局限于为局域网、广域网等。
在对目标模型进行训练时,每个辅计算节点120上均有目标模型的本地模型参数,每个辅计算节点120会根据训练样本会对目标模型进行训练;主计算节点110上也保存有目标模型的本地模型参数,且主计算节点110会根据各辅计算节点的训练结果调整主计算节点上的本地模型参数,本地模型参数包括目标模型的模型参数。
在对目标模型进行训练的过程中,各个辅计算节点120与主计算节点110进行多个迭代轮次的交互操作,获得各个辅计算节点120上的本地模型参数和主计算节点110上的本地模型参数,其中在每一个迭代轮次的交互操作中,因为各个辅计算节点120上均会对目标模型进行训练,因此在同一个迭代轮次中各个辅计算节点120上的本地模型参数可能相同,也可能不同;在同一个迭代轮次中主计算节点110上的本地模型参数与各个辅计算节点120上的本地模型参数也可能相同或不同。
上述多个迭代轮次中任一个迭代轮次的交互操作中,各个辅计算节点120和主计算节点110进行如下交互操作:各个辅计算节点120根据上述目标模型的训练样本,确定各自的本地模型参数的第一梯度,基于辅计算节点对应的目标处理的第一误差补偿值,对第一梯度进行目标处理得到第二梯度,并将第二梯度发送给主计算节点;以及利用从主计算节点接收的第三梯度,更新各自的本地模型参数;第一梯度用于指示辅计算节点上的本地模型参数的变化程度,上目标处理包括减小数据的数据量的操作;
主计算节点110基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行目标处理得到第三梯度,并将第三梯度发送给各个辅计算节点;以及利用第三梯度更新自身的本地模型参数。
作为一种实施例,各个辅计算节点120与主计算节点110进行多个迭代轮次的交互操作之前,还需要进行节点初始化操作,以获取目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数;具体地包括如下两种节点初始化方式:
第一种节点初始化方式;
请参见图2,主计算节点110获取目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数,将获取的初始模型参数作为第1个迭代轮次中主计算节点上的本地模型参数,以及将获取的目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数发送给各个辅计算节点120;
各个辅计算节点120将接收到的初始模型参数作为第1个迭代轮次中的本地模型参数,将接收的网络结构作为目标模型的网络结构,将接收的训练样本作为目标模型的训练数据。
第二种节点初始化方式:
请参见图3,至少两个辅计算节点中一个辅计算节点120,获取目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数,将获取的初始模型参数作为第1个迭代轮次中自身的本地模型参数;以及将获取的目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数发送给其他的辅计算节点120,以使其他的辅计算节点120将接收到的初始模型参数作为第1个迭代轮次中各自的本地模型参数,将接收的网络结构作为目标模型的网络结构,将接收的训练样本作为目标模型的训练数据;以及将获取的初始模型参数发送给主计算节点110,以使主计算节点将接收的初始模型参数,作为第1个迭代轮次中自身的本地模型参数。
以下对本申请实施例中主计算节点和辅计算节点上的目标处理进行说明。
目标处理为减少数据量的操作;在对训练目标模型的过程中,为了提升训练效率,本申请实施例中在主计算节点和辅计算节点上,都对训练相关数据进行目标处理,以降低训练相关数据的数据量,进而在主计算节点和辅计算节点传输上述训练相关数据时,可以减少传输的数据量,加快传输速度,进而得以提升训练效率。
本申请实施例中目标处理满足如下两个条件:
条件1:目标处理的目标处理误差不大于误差阈值。
该目标处理误差是原始数据的数据量和上述原始数据对应的处理数据的数据量的偏差值,上述原始数据是进行目标处理之前的数据,处理数据是对原始数据进行目标处理得到的数据;误差阈值是根据上述原始数据与预设误差参数确定的。
具体地,目标处理满足下面的公式1:
公式1:||x-Q(x)||≤(1-c1)||x||+c2;
公式1中,Q()为目标处理对应的算法,该目标处理可以是主计算节点上的目标处理,也可以辅计算节点上的目标处理;x为原始数据,Q(x)表征对原始数据x进行目标处理得到的处理数据;符号“|| ||”表示范数化;||x-Q(x)||表征上述目标处理误差;(1-c1)||x||+c2表征上述误差阈值,上述c1和c2为预设误差参数,且c1为大于零的数值,c2为大于或等于零的数值。
条件2:目标处理得到的处理数据的数据量小于上述处理数据对应的原始数据。
具体地,目标处理满足下面的公式2:
公式2:||Q(x)||≤||x||;
公式2中,Q()为目标处理对应的算法,该目标处理可以是主计算节点上的目标处理,也可以辅计算节点上的目标处理;x为原始数据,Q(x)表征对原始数据x进行目标处理得到的处理数据;符号“||||”表示范数化;||Q(x)||表征上述处理数据的数据量;||x||表征上述原始数据的数据量。
满足上述条件1和条件2如目标处理可以但不局限于为量化处理、压缩处理或其他能减少数据量的操作等,本领域的技术人员可根据实际需求设置。
作为一种实施例,本申请实施例中的目标模型可以但不局限于为分布式训练神经网络模型,应用于不同的实施场景时,目标模型可以为不同的神经网络模型,以下给出几个具体实施场景中目标模型和对应的模型参数的具体示例:
示例1:本申请实施例提供的模型参数更新方法应用于信息分类领域,目标模型为信息分类模型,目标模型的模型参数是上述信息分类模型中指示信息特征和信息类型的对应关系的参数。
具体地,应用于图像分类时,目标模型可以为图像分类模型,目标模型的模型参数可以是图像分类模型中指示图像特征和图像类别的对应关系的参数;应用于文本分类时,目标模型可以为文本分类模型,目标模型的模型参数可以是文本分类模型中指示文本特征和文本类别的对应关系的参数。
示例2:本申请实施例提供的模型参数更新方法应用于信息检测领域时,目标模型可以为信息检测模型,目标模型的模型参数是信息预测模型中指示信息特征和检测结果的对应关系的参数。
具体地,应用于图像中的目标检测时,目标模型可以为目标检测模型,目标模型的模型参数可以是目标检测模型中指示目标特征和目标结果的对应关系的参数;应用于文本检测时,目标模型可以为文本检测模型,目标模型的模型参数可以是文本检测模型中指示文本特征和文本结果的对应关系的参数。
示例3:本申请实施例提供的模型参数更新方法应用于信息处理领域时,目标模型可以为信息处理模型,目标模型的模型参数是信息处理模型中指示信息特征和处理结果的对应关系的参数。
具体地,应用于语音识别时,目标模型可以为语音识别模型,目标模型的模型参数可以是语音识别模型中指示语音特征和语音识别结果的对应关系的参数。
上述示例1至示例3中,信息特征可以但不局限于包括文本特征、图像特征、音频特征、视频特征、竞赛获胜特征、行为特征、设备标识、账号标识中的至少一种特征。
应当说明的是,上述示例1至示例3中的具体实施场景,以及对应的各目标模型和模型参数仅为示例性的说明,本领域的技术人员可根据实际需求将本申请提供的模型参数更新***和方法,应用到实际需要的其它实施场景和其它目标模型中。
基于图1的应用场景以及上述各具体实施场景,下面对本申请实施例中涉及的模型参数更新方法进行示例性说明;请参照图4,本申请实施例提供一种模型参数更新方法的示例图;该方法应用于上述多个迭代轮次中每轮迭代轮次的交互操作中的各个辅计算节点120,具体包括如下步骤:
步骤S401,根据目标模型的训练样本,确定辅计算节点上本地模型参数的第一梯度;本地模型参数包括目标模型的模型参数,第一梯度用于指示辅计算节点上的本地模型参数的变化程度。
具体地,上述参数模型更新***中各个辅计算节点与主计算节点进行多个迭代轮次的交互操作,在每个迭代轮次中,辅计算节点可以从训练样本中随机选取部分,利用反向传播计算目标模型的损失函数在第t个迭代轮次中,在该辅计算节点上的本地模型参数xt点的梯度作为第一梯度,即计算目标模型的损失函数在第t个迭代轮次中的导数,其中为该辅计算节点在第t个迭代轮次中的本地模型参数,上述t为正整数。
步骤S402,基于辅计算节点对应的目标处理的第一误差补偿值,对第一梯度进行目标处理得到第二梯度;目标处理包括减小数据的数据量的操作。
具体地,辅计算节点在第t个迭代轮次中对应的第一误差补偿值,是该辅计算节点在第1个至t-1个迭代轮次中,进行目标处理的第一误差与第t-1个迭代轮次中得到的第二梯度的差值的累计值;上述t为正整数,且上述t为1时,上述第1个迭代轮次的第一误差补偿值为预设补偿值。
步骤S403,将第二梯度发送给主计算节点,以使主计算节点基于主计算节点对应的目标处理的第二误差补偿值,对至少两个辅计算节点的第二梯度进行目标处理得到第三梯度,以及以使主计算节点根据第三梯度更新主计算节点上的本地模型参数。
其中主计算节点对至少两个辅计算节点的第二梯度进行目标处理的过程,在本申请实施例中下述内容中进行说明。
步骤S404,利用从主计算节点接收的第三梯度,更新自身的本地模型参数。
具体地,针对各辅计算节点中的一个辅计算节点,该辅计算节点在第t个迭代轮次中,可以将该辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数与上述第三梯度的差值,确定为该辅计算节点在第t个迭代轮次中更新得到的本地模型参数;具体地,辅计算节点可以通过如下公式3,更新自身的本地模型参数:
公式3:xt+1=xt-Δst;
公式3中,xt+1是辅计算节点在第t个迭代轮次中更新得到的本地模型参数,xt是上述辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数;Δst是主计算节点发送的第三梯度。
由于辅计算节点有多个,因此针对每个辅计算节点而言,均可按照上述公式3的原理更新各自的本地模型参数,因此上述公式3可变形为如下公式4:
公式4:
公式4中,i是辅计算节点的标识,是标识为i的辅计算节点在第t个迭代轮次中更新得到的本地模型参数,/>是标识为i的辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数;Δst是主计算节点发送的第三梯度。
以下对上述步骤S402中,辅计算节点基于第一误差补偿值对第一梯度进行目标处理的过程进行详细说明。
本申请实施例中为了提升目标模型的训练效率,在对第一梯度进行目标处理时,还可以将第一误差补偿值结合模型参数的学习率、模型参数的第一梯度的滑动情况以及动量加速情况,对第一梯度进行处理;其中:
为了提升模型参数的学习效率,本申请实施例设计在不同的迭代轮次中,让模型参数的学习率进行自适应;具体地,在第t个迭代轮次中,辅计算节点可以通过自适应梯度算法,确定其在第t个迭代轮次中目标模型的模型参数的学习率,如可以但不局限于通过如下公式5的原理,基于初始学习率和迭代轮次,确定辅计算节点在第t个迭代轮次中本地模型参数的学习率:
公式5:
公式5中,αt为辅计算节点在第t个迭代轮次中本地模型参数的学习率,α为预设的初始学习率,t为迭代轮次。
为了加快模型参数的更新速度,在第t个迭代轮次中,辅计算节点还可以通过自适应梯度算法,确定其在第t个迭代轮次中的梯度滑动平均值;梯度滑动平均值用于指示第一梯度的变化程度,可以根据第一梯度、指数移动平均系数,对辅计算节点在第t-1个迭代轮次中的梯度滑动平均值进行处理,得到辅计算节点在第t个迭代轮次中的梯度滑动平均值,上述指数移动平均系数是根据初始移动平均系数和迭代轮次得到的。
具体地,可以通过公式6所示的原理,确定辅计算节点在第t个迭代轮次中的指数移动平均系数:
公式6:
公式6中,θt为辅计算节点在第t个迭代轮次中的指数平均系数,θ为预设的初始移动平均系数,t为迭代轮次。
应当说明的是,在每个迭代轮次中,各个辅计算节点的模型参数的学***均系数可以设置为相同,也可以设置为不同,本领域的技术人员可根据实际需求设置
进一步,可以通过下述公式7的原理,利用辅计算节点在第t个迭代轮次中的指数移动平均系数,对第一梯度进行处理,得到辅计算节点在第t个迭代轮次中的梯度滑动平均值:
公式7:Vt=θt×Vt-1+(1-θt)×(gt)2;
公式7中Vt是辅计算节点在第t个迭代轮次中的梯度滑动平均值,Vt-1为该辅计算节点在第t-1个迭代轮次中的梯度滑动平均值,gt为上述第一梯度。
由于辅计算节点有多个,因此针对每个辅计算节点而言,均可按照上述公式7的原理,对各自的第一梯度进行处理,得到各自的梯度滑动平均值,因此上述公式7可变形为如下公式8:
公式8:
公式8中,i为辅计算节点的标识;是标识为i的辅计算节点在第t个的迭代轮次中的梯度滑动平均值,/>是标识为i的辅计算节点在第t-1个的迭代轮次中的梯度滑动平均值;/>是标识为i的辅计算节点在第t个迭代轮次中的第一梯度。
进一步,可以通过下述公式9的原理,利用动量的预设超参数,确定辅计算节点在第t个迭代轮次中的梯度动量:
公式9:mt=β×mt-1+(1-β)×gt;
公式9中,mt是辅计算节点在第t个迭代轮次中的梯度动量,mt-1是辅计算节点在第t-1个迭代轮次中的梯度动量,β是动量的预设超参数,gt是辅计算节点上的本地模型参数的第一梯度。
由于辅计算节点有多个,因此针对每个辅计算节点而言,均可按照上述公式9的原理,对各自的第一梯度进行处理,得到各自的梯度动量,因此上述公式10可变形为如下公式10:
公式10:
公式10中,i为辅计算节点的标识;是标识为i的辅计算节点在第t个的迭代轮次中的梯度动量,/>是标识为i的辅计算节点在第t-1个的迭代轮次中的梯度动量;/>是标识为i的辅计算节点在第t个迭代轮次中的第一梯度。
更进一步,各个辅计算节点基于辅计算节点对应的目标处理的第一误差补偿值,对第一梯度进行目标处理得到第二梯度,包括:
在第t个迭代轮次中,辅计算节点基于如下公式11和辅计算节点在第t个迭代轮次中对应的第一误差补偿值,对第一梯度进行目标处理,得到第二梯度:
公式11:
公式11中,Δt是辅计算节点在第t个迭代轮次中得到的第二梯度,上述Qw()为该辅计算节点上目标处理的算法;αt是辅计算节点在第t个迭代轮次中本地模型参数的学***均值。
由于辅计算节点有多个,因此针对每个辅计算节点而言,均可按照上述公式11的原理,获取各自的第二梯度,因此上述公式12可变形为如下公式12:
公式12:
公式12中,i为辅计算节点的标识;是标识为i的辅计算节点在第t个迭代轮次中得到的第二梯度;Qw()为辅计算节点上目标处理的算法;/>是标识为i的辅计算节点在第t个的迭代轮次中的梯度动量;/>是标识为i的辅计算节点在第t个的迭代轮次中的梯度滑动平均值;/>是标识为i的辅计算节点在第t个迭代轮次中的第一梯度;/>是标识为i的辅计算节点在第t个迭代轮次中对应的第一误差补偿值;αt是辅计算节点在第t个迭代轮次中本地模型参数的学习率;∈是预设的超参数。
作为一种实施例,在步骤S402之后,辅计算节点在第t个迭代轮次中,还可以按照如下公式13对在第t个迭代轮次中对应的第一误差补偿值进行更新,得到该辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值:
公式13:/>
公式13中,et+1是辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值,αt为辅计算节点在第t个迭代轮次中本地模型参数的学***均值;∈是预设的超参数;et是该辅计算节点在第t个迭代轮次中对应的第一误差补偿值,Δt是该辅计算节点在第t个迭代轮次中得到的第二梯度。
由于辅计算节点有多个,因此针对每个辅计算节点而言,均可按照上述公式13的原理,更新各自的第一误差补偿值,因此上述公式11可变形为如下公式14:
公式14:
公式14中,i为辅计算节点的标标识;是标识为i的辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值,αt为辅计算节点在第t个迭代轮次中本地模型参数的学***均值;∈是预设的超参数;/>是标识为i的辅计算节点在第t个迭代轮次中对应的第一误差补偿值,/>是标识为i的辅计算节点在第t个迭代轮次中得到的第二梯度。
基于图1的应用场景,本申请实施例提供一种适用于主计算节点110的模型参数更新方法,请参照图5,提供一种模型参数更新方法的示例图,该方法应用于上述多个迭代轮次中每个迭代轮次的交互操作中的主计算节点110,具体包括如下步骤:
步骤S501,基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行目标处理得到第三梯度;第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行目标处理得到的;本地模型参数包括目标模型的模型参数,第一梯度是上述各个辅计算节点根据目标模型的训练样本确定的。
具体地,主计算节点在第t个迭代轮次中对应的第二误差补偿值,是主计算节点在第1个至t-1个迭代轮次中,进行目标处理的第二误差的累计值;t为正整数,且上述t为1时,主计算节点在第1个迭代轮次中对应的第二误差补偿值为预设补偿值。
步骤S502,将第三梯度发送给各个辅计算节点,以使各个辅计算节点利用第三梯度更新各自的本地模型参数。
具体地,各个辅计算节点利用第三梯度更新各自的本地模型参数可参见上述描述此处不再重复叙述。
步骤S503,利用第三梯度更新自身的本地模型参数。
具体地,主计算节点在上述第t个迭代轮次中,可以将主计算节点在第t-1个迭代轮次中更新得到的本地模型参数与上述第三梯度的差值,确定为主计算节点在上述第t个迭代轮次中更新得到的模型参数;具体地,主计算节点可以通过如下公式15,更新自身的本地模型参数:
公式15:Xt+1=Xt-Δst;
公式15中,Xt+1是主计算节点在第t个迭代轮次中更新得到的本地模型参数,Xt是主计算节点在第t-1个迭代轮次中更新得到的本地模型参数;Δst是上述第三梯度。
以下对上述步骤S501中,主计算节点基于第二误差补偿值对第二梯度进行目标处理的过程进行说明。
具体地,在步骤S501中在第t个迭代轮次中,主计算节点可以确定上述至少两个辅计算节点的第二梯度的平均梯度;如通过如下公式16,确定第二梯度的平均梯度:
公式16:
公式16中,i为辅计算节点的标识,N为辅计算节点的总数量;是上述至少两个辅计算节点的第二梯度的平均梯度;/>是标识为i的辅计算节点在第t个迭代轮次中得到的第二梯度,/>的计算方式可参见上述公式11及公式12处描述,此处不再重复叙述。
进一步地,主计算节点按照如下公式17,基于上述主计算节点在上述第t个迭代轮次中对应的第二误差补偿值,对上述平均梯度进行上述目标处理,得到上述第三梯度:
公式17:
公式17中为主计算节点在第t个迭代轮次中得到的第三梯度;Qs()是上述主计算节点上目标处理的算法;/>是上述至少两个辅计算节点的第二梯度的平均梯度;Et是主计算节点在第t个迭代轮次中对应的第二误差补偿值。
作为一种实施例,在步骤S501之后,主计算节点在第t个迭代轮次中,还可以按照如下公式18对在第t个迭代轮次中对应的第二误差补偿值进行更新,得到主计算节点在第t+1个迭代轮次中对应的第二误差补偿值:
公式18:
公式18中,Et+1是主计算节点在第t+1个迭代轮次中对应的第二误差补偿值;Et是主计算节点在第t个迭代轮次中对应的第二误差补偿值;是上述至少两个辅计算节点的第二梯度的平均梯度;/>为主计算节点在第t个迭代轮次中得到的第三梯度。
以下提供一个主计算节点和辅计算节点交互的具体示例。
该示例中,在主计算节点(server)和各辅计算节点(worker)的目标处理为量化处理,则主计算节点和辅计算节点上更新上述图像分类模型的过程如下:
(一)各计算节点的初始化处理。
主计算节点110的初始化:获取目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数和设置主计算节点上目标处理的算法Qs(),将获取的初始模型参数作为第1个迭代轮次中主计算节点上的本地模型参数,以及将获取的目标模型的网络结构、目标模型的训练样本以及目标模型的初始模型参数发送给各个辅计算节点120。
各个辅计算节点120的初始化:将接收到的初始模型参数作为第1个迭代轮次中的本地模型参数,将接收的网络结构作为目标模型的网络结构,将接收的训练样本作为目标模型的训练数据;以及设置主计算节点上目标处理的算法Qw()、初始学***均系数θ、动量的预设超参数β和超参数∈。
设置主计算节点和辅计算节点进行交互操作的最大的迭代轮次T,以使主计算节点和辅计算节点进行至第T个迭代轮次后,结束对目标模型的训练。
(二)各计算节点的交互操作过程。
请参见图6,在主计算节点和辅计算节点的多个迭代轮次中的每个迭代轮次中,主计算节点和辅计算节点的交互过程如下:
步骤S601,各个辅计算节点基于初始学习率和迭代轮次,确定各自在第t个迭代轮次中本地模型参数的学习率。
具体过程可参见上述公式5的相关说明,此处不再重复叙述。
步骤S602,各个辅计算节点基于初始指数平均系数和迭代轮次,确定各自在第t个迭代轮次中本地模型参数的指数移动平均系数。
具体过程可参见上述公式6的相关说明,此处不再重复叙述。
步骤S603,各个辅计算节点利用各自在第t个迭代轮次中的指数移动平均系数,对各自的第一梯度进行处理,得到各自在第t个迭代轮次中的梯度滑动平均值。
具体过程可参见上述公式7和公式8的相关描述,此处不再重复叙述。
步骤S604,各个辅计算节点利用动量的预设超参数,确定各自在第t个迭代轮次中的梯度动量。
具体过程可参见上述公式9和公式10的相关描述,此处不再重复叙述。
步骤S605,各个辅计算节点基于各自在第t个迭代轮次中对应的第一误差补偿值,对各自的第一梯度进行目标处理,得到各自的第二梯度。
具体过程可参见上述公式11和公式12的相关描述,此处不再重复叙述。
步骤S606,各个辅计算节点将各自的第二梯度发送给主计算节点。
步骤S607,各个辅计算节点利用各自的第二梯度,对各自在第t个迭代轮次中对应的第一误差补偿值进行更新,得到各自在第t+1个迭代轮次中对应的第一误差补偿值。
具体过程可参见上述公式13和公式14的相关说明,此处不再重复叙述。
步骤S608,主计算节点确定所有辅计算节点的第二梯度的平均梯度。
具体过程可参见上述公式16的相关说明,此处不再重复叙述。
步骤S609,主计算节点利用主计算节点在第t个迭代轮次中对应的第二误差补偿值,对平均梯度进行目标处理,得到第三梯度。
具体过程可参见上述公式17的相关说明,此处不再重复叙述。
步骤S610,主计算节点将第三梯度发送给各个辅计算节点。
步骤S611,各个辅计算节点利用接收的第三梯度,更新各自的本地模型参数。
具体过程可参见上述公式3和公式4的说明,此处不再重复叙述。
步骤S612,主计算节点利用第三梯度,更自身的本地模型参数。
具体过程可参见上述公式15的相关说明,此处不再重复叙述。
步骤S613,主计算节点利用第三梯度,对在第t个迭代轮次中对应的第二误差补偿值进行更新,得到主计算节点在第t+1个迭代轮次中对应的第二误差补偿值。
具体过程可参见上述公式18的相关描述,此处不再重复叙述。
应当说明的是,步骤S607可以在步骤S605之后的任意一个步骤,步骤S610和步骤S611无先后顺序,步骤S612可以在步骤S609之后的任意一个步骤。
以下对本申请实施例提供的模型参数更新方法的实验效果进行说明。
以下以本申请实施例中的模型参数更新方法应用于图像分类领域,目标模型为网络结构为RestNet-18的图像分类模型,目标处理为量化处理,实验数据(目标模型的训练样本和测试样本)为CIFAR-100为例进行说明,实验效果请参见图7和图8。
图7表示训练样本上的实验结果,图7中横向数值为迭代轮次的数量,纵向数值为图像分类模型的损失值;左侧图表示量化为不同的比特数的实验数据,右侧图表示是否在主计算节点和辅计算节点上采用误差补偿值的实验结果。左侧图中包括采取了全精度的第一种参数训练方式(flaot32)、量化为6比特的第二种参数训练方式(6bits)、量化为5比特的第三种参数训练方式(5bit)下,图像分类模型的损失值随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,第三种参数训练方式(5bit)中图像分类模型的损失值略高第二种参数训练方式(6bits)中图像分类模型的损失值;右侧图中包括采用了全精度的参数训练的第一处理方式(flaot 32)、采用双向量化及双向误差补偿的第二处理方式(6bits)、采用了双向量化以及在辅计算节点上采用误差补偿的第三处理方式(6bits.err_w)、采用了双向量化以及在主计算节点上采用误差补偿的第四处理方式(6bits.err_s)下,图像分类模型的损失值随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,图像分类模型的损失值最高的两个方式分别为6bits.err_s、bits.err_w,而flaot 32和6bits的两种方式下的损失值无明显区别。
此处需要说明的是,本申请实施例中的双向量化指在主计算节点和在辅计算节点上,都对相关数据进行量化处理;本申请实施例中的双向误差补偿指在主计算节点利用第二误差补偿值进行量化处理,以及在在辅计算节点上利用第一误差补偿值进行量化处理,上述量化处理为本申请实施例中目标处理的一种。
图8表示测试样本上的实验结果;图8中横向数值为迭代轮次的数量,纵向数值为图像分类模型进行图像分类的分类准确度;左侧图表示量化为不同的比特数的实验数据,右侧图表示是否在主计算节点和辅计算节点上采用误差补偿值的实验结果。左侧图中包括采取了全精度的第一种参数训练方式(flaot32)、量化为6比特的第二种参数训练方式(6bits)、量化为5比特的第三种参数训练方式(5bit)下,图像分类模型的分类准确度随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,图像分类模型的分类准确度从高到低依次为6bits、flaot 32以及5bit;右侧图中包括采用了全精度的参数训练的第一处理方式(flaot 32)、采用双向量化及双向误差补偿的第二处理方式(6bits)、采用了双向量化以及在辅计算节点上采用误差补偿的第三处理方式(6bits.err_w)、采用了双向量化以及在主计算节点上采用误差补偿的第四处理方式(6bits.err_s)下,图像分类模型的分类准确度随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,图像分类模型的分类准确度从高到低分别为6bits、flaot 32、bits.err_w以及6bits.err_s,且6bits和flaot 32的分类准确度无明显区别。
以下以本申请实施例中的模型参数更新方法应用于自然语言处理中的二元情感分类领域,目标模型为网络结构为GRU(门控循环卷积网络)的二元情感分类模型,实验数据(目标模型的训练样本和测试样本)为为IMDB,实验数据包含50000个电影评论为例进行说明,实验效果请参见图9和图10。
图9表示训练样本上的实验结果,图9中横向数值为迭代轮次的数量,纵向数值为图像分类模型的损失值;左侧图表示量化为不同的比特数的实验数据,右侧图表示是否在主计算节点和辅计算节点上采用误差补偿值的实验结果。左侧图中包括采取了全精度的第四种参数训练方式(flaot32)、量化为5比特的第五种参数训练方式(5bits)、量化为3比特的第六种参数训练方式(3bit)下,二元情感分类模型的损失值随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,二元情感分类模型的损失值从高到低依次为3bit、5bit和flaot 32;右侧图中包括采用了全精度的参数训练的第五处理方式(flaot32)、采用双向量化及双向误差补偿的第六处理方式(5bits)、采用了双向量化以及在辅计算节点上采用误差补偿的第七处理方式(5bits.err_w)、采用了双向量化以及在主计算节点上采用误差补偿的第八处理方式(5bits.err_s)下,图像分类模型的损失值随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,二元情感分类模型的损失值从高到低依次为5bits.err_w、5bits.err_s、5bits和flaot 32。
图10表示测试样本上的实验结果;图10中横向数值为迭代轮次的数量,纵向数值为二元情感分类模型进行分类的分类准确度;左侧图表示量化为不同的比特数的实验数据,右侧图表示是否在主计算节点和辅计算节点上采用误差补偿值的实验结果。左侧图中包括采取了全精度的第四种参数训练方式(flaot32)、量化为5比特的第五种参数训练方式(5bits)、量化为3比特的第六种参数训练方式(3bit)下,二元情感分类模型的分类准确度随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,flaot32、5bits、和3bit三种方式下的二元情感分类模型的分类准确度无明显区别;右侧图中包括采用了全精度的参数训练的第五处理方式(flaot 32)、采用双向量化及双向误差补偿的第六处理方式(5bits)、采用了双向量化以及在辅计算节点上采用误差补偿的第七处理方式(5bits.err_w)、采用了双向量化以及在主计算节点上采用误差补偿的第八处理方式(5bits.err_s)下,二元情感分类模型的分类准确度随着迭代轮次的增加发生的变化情况,可以看出随着迭代轮次的增加,5bits和flaot 32方式下二元情感分类模型的分类准确度最高,且5bits和flaot 32方式下二元情感分类模型的分类准确度无明显区别,其次5bits.err_s的方式下二元情感分类模型的分类准确度明显高于5bits.err_w。
上述实验结果表明,利用本申请实施例中的模型参数更新方法来训练目标模型时仅仅使用月1/5通信量即可保证与全精度算法(float)达到相同的训练误差和泛化误差,从而本申请实施例的方法大幅降低了分布式训练的通信质量的要求;另外从上述实验结果中可以看到,本申请实施例中引入的双向误差补偿策略,显著的保持了训练算法的稳定性并且确保了训练算法的收敛,因此降低了目标模型在分布式训练过程中不收敛的可能性,从而明显提升了目标模型的训练效率;另一方面由于减少目标处理的误差对目标模型的损失函数值的影响,进一步加快了目标模型在分布式训练过程中收敛的速度,进一步提升了目标模型的训练效率,减少目标处理的误差也提升了目标模型的准确度。
请参照图11,基于同一发明构思,本申请实施例提供一种模型参数更新装置1100,包括:
梯度处理单元1101,用于基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行上述目标处理,得到第三梯度;上述第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行上述目标处理得到的;上述本地模型参数包括目标模型的模型参数,上述第一梯度是上述各个辅计算节点根据上述目标模型的训练样本确定的,所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度;
信息发送单元1102,用于将上述第三梯度发送给上述各个辅计算节点,以使上述各个辅计算节点利用上述第三梯度更新各自的本地模型参数;以及
参数更新单元1103,用于利用上述第三梯度,更新上述主计算节点上的本地模型参数。
作为一种实施例,上述主计算节点与上述各个辅计算节点进行多个迭代轮次的交互操作,其中上述主计算节点在第t个迭代轮次中对应的第二误差补偿值,是上述主计算节点在第1个至t-1个迭代轮次中,进行上述目标处理的第二误差的累计值;上述t为正整数,且上述t为1时,上述主计算节点在第1个迭代轮次中对应的第二误差补偿值为预设补偿值。
作为一种实施例,梯度处理单元1101具体用于:
在上述第t个迭代轮次中,确定上述至少两个辅计算节点的第二梯度的平均梯度;
按照如下公式,基于上述主计算节点在上述第t个迭代轮次中对应的第二误差补偿值,对上述平均梯度进行上述目标处理,得到上述第三梯度:
其中,上述为上述主计算节点在上述第t个迭代轮次中得到的第三梯度;上述Qs()是上述主计算节点上上述目标处理的算法;上述/>是上述平均梯度,上述Et是上述主计算节点在上述第t个迭代轮次中对应的第二误差补偿值。
作为一种实施例,梯度处理单元1101还用于:在上述第t个迭代轮次中,按照如下公式对上述主计算节点在上述第t个迭代轮次中对应的第二误差补偿值进行更新,得到上述主计算节点第t+1个迭代轮次中对应的第二误差补偿值:
其中,上述Et+1是上述主计算节点在上述第t+1个迭代轮次中对应的第二误差补偿值。
作为一种实施例,参数更新单元1103具体用于:
在上述第t个迭代轮次中,将上述主计算节点在第t-1个迭代轮次中更新得到的本地模型参数与上述第三梯度的差值,确定为上述主计算节点在上述第t个迭代轮次中更新得到的本地模型参数。
作为一种实施例,目标处理满足如下条件:
目标处理误差值不大于误差阈值;上述目标处理误差值是原始数据的数据量和上述原始数据对应的处理数据的数据量的偏差值,上述处理数据是对上述原始数据进行上述目标处理得到的;上述误差阈值是根据上述原始数据与预设误差参数确定的;以及
上述目标处理得到的处理数据的数据量不大于上述处理数据对应的原始数据。
作为一种实施例,上述目标模型是分布式训练神经网络模型,
上述模型参数更新装置应用于信息分类领域时,上述目标模型为信息分类模型,上述模型参数是上述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
上述模型参数更新装置应用于信息检测领域时,上述目标模型为信息检测模型,上述模型参数是上述信息预测模型中指示信息特征和检测结果的对应关系的参数。
作为一种实施例,图11中的装置可以用于实现前文论述的主计算节点上的任意一种模型参数更新方法。
请参照图12,基于同一发明构思,本申请实施例提供一种模型参数更新装置1200,包括:
第一梯度处理单元1201,用于根据目标模型的训练样本,确定辅计算节点上本地模型参数的第一梯度;上述本地模型参数包括上述目标模型的模型参数,上述第一梯度用于指示上述辅计算节点上的本地模型参数的变化程度;
第二梯度处理单元1202,基于上述辅计算节点对应的目标处理的第一误差补偿值,对上述第一梯度进行目标处理得到第二梯度;上述目标处理包括减小数据的数据量的操作;
信息发送单元1203,用于将上述第二梯度发送给上述主计算节点,以使上述主计算节点基于上述主计算节点对应的目标处理的第二误差补偿值,对至少两个上述辅计算节点的第二梯度进行上述目标处理得到第三梯度,以及以使上述主计算节点根据上述第三梯度更新上述主计算节点上的本地模型参数;
参数更新单元1204,用于利用从上述主计算节点接收的第三梯度,更新上述辅计算节点上的本地模型参数。
作为一种实施例,上述辅计算节点与上述主计算节点进行多个迭代轮次的交互操作;其中上述辅计算节点在第t个迭代轮次中对应的第一误差补偿值,是上述辅计算节点在第1个至t-1个迭代轮次中,进行上述目标处理的第一误差与第t-1个迭代轮次中得到的第二梯度的差值的累计值;上述t为正整数,且上述t为1时,上述第1个迭代轮次的第一误差补偿值为预设补偿值。
作为一种实施例,第二梯度处理单元1202具体用于:
在上述第t个迭代轮次中,基于如下公式以及上述辅计算节点在上述第t个迭代轮次中对应的第一误差补偿值,对上述第一梯度进行上述目标处理,得到上述第二梯度:
其中,上述Δt是上述辅计算节点在第t个迭代轮次中得到的第二梯度,上述Qw()为上述辅计算节点上上述目标处理的算法;上述αt是上述辅计算节点在上述第t个迭代轮次中本地模型参数的学***均值,上述梯度滑动平均值用于指示上述第一梯度的变化程度,上述Vt是根据上述第一梯度、指数移动平均系数,对上述辅计算节点在第t-1个迭代轮次中的梯度滑动平均值Vt-1进行处理得到的,上述指数移动平均系数是根据初始移动平均系数和迭代轮次得到的。
作为一种实施例,第二梯度处理单元1202还用于:
在上述第t个迭代轮次中,按照如下公式对上述辅计算节点在上述第t个迭代轮次中对应的第一误差补偿值进行更新,得到上述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值:
其中,上述et+1是上述辅计算节点在第t+1个迭代轮次中对应的第一误差补偿值。
作为一种实施例,参数更新单元1204具体用于:
上述辅计算节点在上述第t个迭代轮次中,将上述辅计算节点在第t-1个迭代轮次中更新得到的本地模型参数与上述第三梯度的差值,确定为上述辅计算节点在上述第t个迭代轮次中更新得到的本地模型参数。
作为一种实施例,上述目标处理满足如下条件:
目标处理误差不大于误差阈值;上述目标处理误差是原始数据的数据量和上述原始数据对应的处理数据的数据量的偏差值,上述处理数据是对上述原始数据进行上述目标处理得到的;上述误差阈值是根据上述原始数据与预设误差参数确定的;以及
上述目标处理得到的处理数据的数据量不大于上述处理数据对应的原始数据。
作为一种实施例,上述目标模型是分布式训练神经网络模型,
上述模型参数更新装置应用于信息分类领域时,上述目标模型为信息分类模型,上述模型参数是上述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
上述模型参数更新装置应用于信息检测领域时,上述目标模型为信息检测模型,上述模型参数是上述信息预测模型中指示信息特征和检测结果的对应关系的参数。
作为一种实施例,图12中的装置可以用于实现前文论述辅计算节点上的任意一种模型参数更新方法。
上述模型参数更新装置1100作为硬件实体的一个实例如图13所示的计算机设备,该计算机设备包括处理器1301、存储介质1302以及至少一个外部通信接口1303;上述处理器1301、存储介质1302以及外部通信接口1303均通过总线1304连接。
存储介质1302中存储有计算机程序;
处理器1301执行该计算机程序时实现前文论述的主计算节点110的模型参数更新方法。
图13中是以一个处理器1301为例,但是实际上不限制处理器1301的数量。
其中,存储介质1302可以是易失性存储介质(volatile memory),例如随机存取存储介质(random-access memory,RAM);存储介质1302也可以是非易失性存储介质(non-volatile memory),例如只读存储介质,快闪存储介质(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储介质1302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储介质1302可以是上述存储介质的组合。
上述模型参数更新装置1200作为硬件实体的一个实例可以参见图13所示的计算机设备,其中图13所示的计算机设备作为模型参数更新装置1200的硬件实体时,上述存储介质1302中存储有计算机程序;处理器1301执行该计算机程序时实现前文论述的辅计算节点120的模型参数更新方法。
基于同一技术构思,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的模型参数更新方法。
基于同一技术构思,本申请实施例还一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当上述计算机指令在计算机上运行时,使得计算机执行如前文论述的模型参数更新方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种模型参数更新***,其特征在于,包括主计算节点和至少两个辅计算节点,
各个辅计算节点与所述主计算节点进行多个迭代轮次的交互操作,获得所述各个辅计算节点上的本地模型参数和所述主计算节点上的本地模型参数;所述本地模型参数包括目标模型的模型参数,其中所述多个迭代轮次中任一个迭代轮次的交互操作包括:
所述各个辅计算节点根据所述目标模型的训练样本,确定各自的本地模型参数的第一梯度,基于辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度,并将所述第二梯度发送给所述主计算节点;以及利用从所述主计算节点接收的第三梯度,结合公式:xt+1=xt-Δst,更新各自的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度,所述目标处理包括减小数据的数据量的操作;
所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对所述第二梯度进行所述目标处理得到所述第三梯度,并将所述第三梯度发送给所述各个辅计算节点;以及利用所述第三梯度,结合公式:xt+1=xt-Δst,更新所述主计算节点上的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;以及利用所述第三梯度,结合公式更新所述第二误差补偿值,Et+1是第t+1个迭代轮次中对应的第二误差补偿值,Et是第t个迭代轮次中对应的第二误差补偿值,/>是至少两个所述辅计算节点的第二梯度的平均梯度,/>是所述第三梯度,所述t为正整数,且所述t为1时,在第1个迭代轮次中的第二误差补偿值为预设补偿值;
其中,所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度,包括:
在所述第t个迭代轮次中,所述主计算节点确定所述至少两个辅计算节点的第二梯度的平均梯度;
所述主计算节点按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值;
其中,所述各个辅计算节点与主计算节点进行多个迭代轮次的交互操作之前,通过节点交互方式,进行初始化操作;所述通过节点交互方式,进行初始化操作,具体包括:
所述主计算节点获取所述目标模型的网络结构、训练样本以及初始模型参数,并将获取的初始模型参数作为第一个迭代轮次中主计算节点上的本地模型参数,以及将获取的所述网络结构、所述训练样本以及所述初始模型参数发送给所述各个辅计算节点,使所述各个辅助计算节点将接收到的初始模型参数作为第一个迭代轮次中的本地模型参数,将接收的网络结构作为所述目标模型的网络结构,将接收的训练样本作为所述目标模型的训练样本。
2.如权利要求1所述的***,其特征在于,所述目标模型是分布式训练神经网络模型,
所述模型参数更新方法应用于信息分类领域时,所述目标模型为信息分类模型,所述模型参数是所述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
所述模型参数更新方法应用于信息检测领域时,所述目标模型为信息检测模型,所述模型参数是所述信息检测模型中指示信息特征和检测结果的对应关系的参数。
3.一种模型参数更新方法,其特征在于,包括:
主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度;所述第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行所述目标处理得到的;所述本地模型参数包括目标模型的模型参数,所述第一梯度是所述各个辅计算节点根据所述目标模型的训练样本确定的,所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度;所述辅计算节点上初始的本地模型参数是通过节点交互方式从所述主计算节点接收的;
所述主计算节点将所述第三梯度发送给所述各个辅计算节点,以使所述各个辅计算节点利用所述第三梯度更新各自的本地模型参数;以及
所述主计算节点利用所述第三梯度,结合公式:xt+1=xt-Δst,更新所述主计算节点上的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;
所述主计算节点利用所述第三梯度,结合公式更新所述第二误差补偿值,Et+1是第t+1个迭代轮次中对应的第二误差补偿值,Et是第t个迭代轮次中对应的第二误差补偿值,/>是至少两个所述辅计算节点的第二梯度的平均梯度,/>是所述第三梯度,所述t为正整数,且所述t为1时,在第1个迭代轮次中的第二误差补偿值为预设补偿值;
其中,所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度,包括:
在所述第t个迭代轮次中,所述主计算节点确定所述至少两个辅计算节点的第二梯度的平均梯度;
所述主计算节点按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值;
其中,所述目标处理满足如下条件:目标处理的目标处理误差不大于误差阈值;目标处理得到的处理数据的数据量小于所述处理数据对应的原始数据。
4.如权利要求3所述的方法,其特征在于,所述目标模型是分布式训练神经网络模型,
所述模型参数更新方法应用于信息分类领域时,所述目标模型为信息分类模型,所述模型参数是所述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
所述模型参数更新方法应用于信息检测领域时,所述目标模型为信息检测模型,所述模型参数是所述信息检测模型中指示信息特征和检测结果的对应关系的参数。
5.一种模型参数更新方法,其特征在于,包括:
辅计算节点根据目标模型的训练样本,确定所述辅计算节点上本地模型参数的第一梯度;所述本地模型参数包括所述目标模型的模型参数,所述第一梯度用于指示所述辅计算节点上的本地模型参数的变化程度;所述训练样本和初始的本地模型参数是所述辅计算节点通过节点交互方式从主计算节点接收的;
所述辅计算节点基于所述辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度;所述目标处理包括减小数据的数据量的操作;
所述辅计算节点将所述第二梯度发送给主计算节点,以使所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对至少两个所述辅计算节点的第二梯度进行所述目标处理得到第三梯度,以及以使所述主计算节点根据所述第三梯度更新所述主计算节点上的本地模型参数;
所述辅计算节点利用从所述主计算节点接收的第三梯度,结合公式:xt+1=xt-Δst,更新所述辅计算节点上的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;
其中,所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度,包括:
在所述第t个迭代轮次中,所述主计算节点确定所述至少两个辅计算节点的第二梯度的平均梯度;
所述主计算节点按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值;
所述主计算节点利用所述第三梯度,结合公式更新所述第二误差补偿值,Et+1是第t+1个迭代轮次中对应的第二误差补偿值,Et是第t个迭代轮次中对应的第二误差补偿值,/>是至少两个所述辅计算节点的第二梯度的平均梯度,/>是所述第三梯度,所述t为正整数,且所述t为1时,在第1个迭代轮次中的第二误差补偿值为预设补偿值。
6.如权利要求5所述的方法,其特征在于,所述辅计算节点与所述主计算节点进行多个迭代轮次的交互操作;其中所述辅计算节点在第t个迭代轮次中对应的第一误差补偿值,是所述辅计算节点在第1个至t-1个迭代轮次中,进行所述目标处理的第一误差与第t-1个迭代轮次中得到的第二梯度的差值的累计值;所述t为正整数,且所述t为1时,所述第1个迭代轮次的第一误差补偿值为预设补偿值。
7.如权利要求6所述的方法,其特征在于,所述辅计算节点基于所述辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度,包括:
所述辅计算节点在所述第t个迭代轮次中,基于如下公式以及所述辅计算节点在所述第t个迭代轮次中对应的第一误差补偿值,对所述第一梯度进行所述目标处理,得到所述第二梯度:
其中,所述Δt是所述辅计算节点在第t个迭代轮次中得到的第二梯度,所述Qw()为所述辅计算节点上所述目标处理的算法;所述αt是所述辅计算节点在所述第t个迭代轮次中本地模型参数的学***均值,所述梯度滑动平均值用于指示所述第一梯度的变化程度,所述Vt是根据所述第一梯度、指数移动平均系数,对所述辅计算节点在第t-1个迭代轮次中的梯度滑动平均值Vt-1进行处理得到的,所述指数移动平均系数是根据初始移动平均系数和迭代轮次得到的。
8.如权利要求5-7中任一项所述的方法,其特征在于,所述目标模型是分布式训练神经网络模型,
所述模型参数更新方法应用于信息分类领域时,所述目标模型为信息分类模型,所述模型参数是所述信息分类模型中指示信息特征和信息类型的对应关系的参数;或
所述模型参数更新方法应用于信息检测领域时,所述目标模型为信息检测模型,所述模型参数是所述信息检测模型中指示信息特征和检测结果的对应关系的参数。
9.一种模型参数更新装置,其特征在于,包括:
梯度处理单元,用于基于主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度;所述第二梯度是至少两个辅计算节点中各个辅计算节点,基于辅计算节点对应的目标处理的第一误差补偿值,对各自的本地模型参数的第一梯度进行所述目标处理得到的;所述本地模型参数包括目标模型的模型参数,所述第一梯度是所述各个辅计算节点根据所述目标模型的训练样本确定的,所述第一梯度用于指示辅计算节点上的本地模型参数的变化程度;所述辅计算节点上初始的本地模型参数是通过节点交互方式从所述主计算节点接收的;
信息发送单元,用于将所述第三梯度发送给所述各个辅计算节点,以使所述各个辅计算节点利用所述第三梯度,更新各自的本地模型参数;以及
参数更新单元,用于利用所述第三梯度,结合公式:xt+1=xt-Δst,更新所述主计算节点上的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;以及利用所述第三梯度,结合公式更新所述第二误差补偿值,Et+1是第t+1个迭代轮次中对应的第二误差补偿值,Et是第t个迭代轮次中对应的第二误差补偿值,/>是至少两个所述辅计算节点的第二梯度的平均梯度,/>是所述第三梯度,所述t为正整数,且所述t为1时,在第1个迭代轮次中的第二误差补偿值为预设补偿值;
其中,所述梯度处理单元具体用于:
在所述第t个迭代轮次中,所述主计算节点确定所述至少两个辅计算节点的第二梯度的平均梯度;
所述主计算节点按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值。
10.一种模型参数更新装置,其特征在于,包括:
第一梯度处理单元,用于根据目标模型的训练样本,确定辅计算节点上本地模型参数的第一梯度;所述本地模型参数包括所述目标模型的模型参数,所述第一梯度用于指示所述辅计算节点上的本地模型参数的变化程度;所述训练样本和初始的本地模型参数是所述辅计算节点通过节点交互方式从主计算节点接收的;
第二梯度处理单元,基于所述辅计算节点对应的目标处理的第一误差补偿值,对所述第一梯度进行目标处理得到第二梯度;所述目标处理包括减小数据的数据量的操作;
信息发送单元,用于将所述第二梯度发送给主计算节点,以使所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对至少两个所述辅计算节点的第二梯度进行所述目标处理得到第三梯度,以及以使所述主计算节点根据所述第三梯度更新所述主计算节点上的本地模型参数;
参数更新单元,用于利用从所述主计算节点接收的第三梯度,结合公式:xt+1=xt-Δst,更新所述辅计算节点上的本地模型参数,所述xt+1是第t个迭代轮次中更新得到的本地模型参数,xt是在第t-1个迭代轮次中更新得到的本地模型参数,Δst是所述第三梯度;
其中,所述主计算节点基于所述主计算节点对应的目标处理的第二误差补偿值,对第二梯度进行所述目标处理,得到第三梯度,包括:
在所述第t个迭代轮次中,所述主计算节点确定所述至少两个辅计算节点的第二梯度的平均梯度;
所述主计算节点按照如下公式,基于所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值,对所述平均梯度进行所述目标处理,得到所述第三梯度:
其中,所述为所述主计算节点在所述第t个迭代轮次中得到的第三梯度;所述Qs()是所述主计算节点上所述目标处理的算法;所述/>是所述平均梯度,所述Et是所述主计算节点在所述第t个迭代轮次中对应的第二误差补偿值;
所述主计算节点利用所述第三梯度,结合公式更新所述第二误差补偿值,Et+1是第t+1个迭代轮次中对应的第二误差补偿值,Et是第t个迭代轮次中对应的第二误差补偿值,/>是至少两个所述辅计算节点的第二梯度的平均梯度,/>是所述第三梯度,所述t为正整数,且所述t为1时,在第1个迭代轮次中的第二误差补偿值为预设补偿值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863228.9A CN112085074B (zh) | 2020-08-25 | 2020-08-25 | 一种模型参数更新***、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863228.9A CN112085074B (zh) | 2020-08-25 | 2020-08-25 | 一种模型参数更新***、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112085074A CN112085074A (zh) | 2020-12-15 |
CN112085074B true CN112085074B (zh) | 2024-05-07 |
Family
ID=73728627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010863228.9A Active CN112085074B (zh) | 2020-08-25 | 2020-08-25 | 一种模型参数更新***、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112085074B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117787375A (zh) * | 2022-09-20 | 2024-03-29 | 华为技术有限公司 | 神经网络模型的训练方法、装置、设备及*** |
CN115994590B (zh) * | 2023-03-23 | 2023-07-14 | 浪潮电子信息产业股份有限公司 | 基于分布式集群的数据处理方法、***、设备及存储介质 |
CN116663639B (zh) * | 2023-07-31 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、***、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099084A1 (zh) * | 2016-11-29 | 2018-06-07 | 华为技术有限公司 | 一种神经网络模型训练方法、装置、芯片和*** |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及*** |
CN111143308A (zh) * | 2019-12-26 | 2020-05-12 | 许昌中科森尼瑞技术有限公司 | 基于联邦学习的高低压电动机数据处理方法、***及装置 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
-
2020
- 2020-08-25 CN CN202010863228.9A patent/CN112085074B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099084A1 (zh) * | 2016-11-29 | 2018-06-07 | 华为技术有限公司 | 一种神经网络模型训练方法、装置、芯片和*** |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及*** |
CN111143308A (zh) * | 2019-12-26 | 2020-05-12 | 许昌中科森尼瑞技术有限公司 | 基于联邦学习的高低压电动机数据处理方法、***及装置 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112085074A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085074B (zh) | 一种模型参数更新***、方法及装置 | |
CN108491928B (zh) | 模型参数发送方法、装置、服务器及存储介质 | |
KR102158683B1 (ko) | 외부 메모리로 신경망들 증강 | |
US20230281445A1 (en) | Population based training of neural networks | |
CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
CN112368697A (zh) | 经由对偶分解评估损失函数或损失函数的梯度的***和方法 | |
EP3889846A1 (en) | Deep learning model training method and system | |
US11380301B2 (en) | Learning apparatus, speech recognition rank estimating apparatus, methods thereof, and program | |
CN110807529A (zh) | 一种机器学习模型的训练方法、装置、设备及存储介质 | |
CN110930996A (zh) | 模型训练方法、语音识别方法、装置、存储介质及设备 | |
CN112257751A (zh) | 神经网络剪枝方法 | |
CN112364980B (zh) | 一种弱监督场景下基于强化学习的深度神经网络训练方法 | |
US20210374604A1 (en) | Apparatus and method for training reinforcement learning model for use in combinatorial optimization | |
CN111382619A (zh) | 图片推荐模型的生成、图片推荐方法、装置、设备及介质 | |
CN116628537A (zh) | 多视图聚类方法、装置、存储介质及电子设备 | |
EP3912094A1 (en) | Training in communication systems | |
CN117035045A (zh) | 模型参数更新方法、装置、设备、存储介质和程序产品 | |
Saini et al. | Image compression using APSO | |
CN113875228B (zh) | 视频插帧方法及装置、计算机可读存储介质 | |
CN114416955A (zh) | 异构语言模型的训练方法、装置、设备及存储介质 | |
CN112668712A (zh) | 一种基于8比特训练量化优化方法 | |
He et al. | Distributed hessian-free optimization for deep neural network | |
CN112948597A (zh) | 一种无监督的知识图谱实体对齐方法及设备 | |
US11811427B2 (en) | Information processing apparatus, method of processing information, and non-transitory computer-readable storage medium for storing information processing program | |
KR102633343B1 (ko) | 딥러닝 네트워크 아키텍처 인코딩과 학습 중 양자화파라미터 예측 모델 기반 양자화 방법 및 장치 |
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 |