CN114169534A - 分布式机器学习模型的训练方法、装置、设备及介质 - Google Patents

分布式机器学习模型的训练方法、装置、设备及介质 Download PDF

Info

Publication number
CN114169534A
CN114169534A CN202111503776.1A CN202111503776A CN114169534A CN 114169534 A CN114169534 A CN 114169534A CN 202111503776 A CN202111503776 A CN 202111503776A CN 114169534 A CN114169534 A CN 114169534A
Authority
CN
China
Prior art keywords
training
parameters
learning rate
model
adaptive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111503776.1A
Other languages
English (en)
Inventor
沈力
孙昊
陶大程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202111503776.1A priority Critical patent/CN114169534A/zh
Publication of CN114169534A publication Critical patent/CN114169534A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种分布式机器学习模型的训练方法、装置、设备及介质。该方法包括:获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。该方法能够有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。

Description

分布式机器学习模型的训练方法、装置、设备及介质
技术领域
本发明实施例涉及人工智能技术领域,尤其涉及一种分布式机器学习模型的训练方法、装置、设备及介质。
背景技术
随着人工智能技术的发展,采用机器学习模型对数据进行分类的应用场景也不断丰富。如推荐系统的应用场景,自然语言处理的应用场景等。由于对机器学习模型进行训练时,模型参数规模和样本数据的规模都是十分巨大的。所以单个计算节点设备已无法满足要求。所以分布式机器学习便成为模型训练的主要方式。
目前在采用分布式机器学习对模型进行训练时,一般由计算节点设备采用朴素梯度下降算法和训练样本对机器学习模型进行多次迭代训练后将训练后的模型参数发送给参数服务器,在参数服务器对多个训练后的模型参数进行处理获得下一轮模型参数后发送给多个计算节点设备,再次进行下一轮的迭代训练,以此类推,直到将机器学习模型训练至收敛。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:由于采用朴素梯度下降算法对机器学习模型进行迭代训练,导致迭代训练较多次才会使机器学习模型达到收敛。并且由于迭代训练较多次导致计算节点设备与参数服务器之间的通信交互较多,最终导致了机器学习模型的训练效率较低。
发明内容
本发明实施例提供一种分布式机器学习模型的训练方法、装置、设备及介质,用以解决现有技术中机器学习模型的训练效率较低的技术问题。
第一方面,本发明实施例提供分布式机器学习模型的训练方法,所述方法应用于计算节点设备,所述方法包括:
获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;
采用本地自适应随机梯度下降算法和所述训练样本数据对所述预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;
将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示所述参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
第二方面,本发明实施例提供一种分布式机器学习模型的训练方法,所述方法应用于参数服务器,所述方法包括:
接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;所述本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对所述预设机器学习模型进行本轮多次迭代训练后获得的;
根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
第三方面,本发明实施例提供一种分布式机器学习模型的训练装置,所述装置位于计算节点设备中,所述装置包括:
获取模块,用于获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;
迭代训练模块,用于采用本地自适应随机梯度下降算法和所述训练样本数据对所述预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;
发送模块,用于将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示所述参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
第四方面,本发明实施例提供一种分布式机器学习模型的训练装置,所述装置位于参数服务器中,所述装置包括:
接收模块,用于接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;所述本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对所述预设机器学习模型进行本轮多次迭代训练后获得的;
计算模块,用于根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
第五方面,本发明实施例提供一种计算节点设备,包括:至少一个处理器、存储器及收发器;
所述处理器、所述存储器及所述收发器电路互联;
所述存储器存储计算机执行指令;所述收发器用于与参数服务器收发数据;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的方法。
第六方面,本发明实施例提供一种参数服务器,包括:至少一个处理器、存储器及收发器;
所述处理器、所述存储器及所述收发器电路互联;
所述存储器存储计算机执行指令;所述收发器用于与多个计算节点设备收发数据;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第二方面任一项所述的方法。
第七方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面或第二方面任一项所述的方法。
第八方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面或第二方面任一项所述的方法。
本发明实施例提供的分布式机器学习模型的训练方法、装置、设备及介质,通过获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。由于本地自适应随机梯度下降算法能够综合本地随机梯度算法和自适应梯度下降算法的优势。即该本地自适应随机梯度下降算法在每次进行迭代训练时,既能够根据对应的训练样本数据的特点计算出随机梯度,又能够在随机梯度的基础上确定出自适应学习率关联参数,进而能够自适应的优化模型参数。进而能够有效减少迭代次数。有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。并且在稀疏化的深度学习模型的应用场景中具有更快的收敛速度和更好的泛化结果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是可以实现本发明实施例的分布式机器学习模型的训练方法的一种网络架构图;
图2是本发明一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图3是本发明另一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图4是本发明另一实施例提供的分布式机器学习模型的训练方法中步骤203的流程示意图;
图5是本发明另一实施例提供的分布式机器学习模型的训练方法中步骤2033的流程示意图;
图6是本发明另一实施例提供的分布式机器学习模型的训练方法中步骤204的流程示意图;
图7是本发明再一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图8是本发明还一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图9是本发明又一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图10是本发明再一实施例提供的分布式机器学习模型的训练方法的流程示意图;
图11是本发明一实施例提供的分布式机器学习模型的训练装置的结构示意图;
图12是本发明另一实施例提供的分布式机器学习模型的训练装置的结构示意图;
图13是用来实现本发明实施例的分布式机器学习模型的训练方法的计算节点设备的结构示意图;
图14是用来实现本发明实施例的分布式机器学习模型的训练方法的参数服务器的框图;
图15是用来实现本发明实施例的分布式机器学习模型的训练方法的电子设备的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了清楚理解本发明的技术方案,首先对现有技术的方案进行详细介绍。
现有技术中在对机器学习模型进行训练时,模型参数规模和样本数据的规模都是十分巨大的。示例性地,以在推荐系统中采用机器学习模型xdeepfm中的CIN模块为例来说明模型参数规模。
其中,输入的样本数据的特征ξfeature由m个特征场构成,每个特征场中特征都是独立编码。首先经过嵌入层,每一个特征场中的唯一的特征都用一个长度为D的嵌入向量代替,将ξfeature变换成
Figure BDA0003402635250000051
其中m为特征场的个数,D为嵌入向量的维度。在推荐系统中一个应用场景,如点击率预测中,ξlabel为0或者1,0表示未点击,1表示点击。CIN模块中的第k层计算过程为
Figure BDA0003402635250000061
其中
Figure BDA0003402635250000062
为Harmand积,
Figure BDA0003402635250000063
Figure BDA0003402635250000064
为模型的参数,
Figure BDA0003402635250000065
为Y0的第j维的特征向量,Hk表示第k层特征向量个数(对于第0层,H0=m)。CIN模块第k层输出
Figure BDA0003402635250000066
Figure BDA0003402635250000067
为第k层第h个特征向量,h取值在1到Hk。对第k层进行求和池化,
Figure BDA0003402635250000068
i属于1到Hk,得到
Figure BDA0003402635250000069
将所有k层求和池化后向量拼接
Figure BDA00034026352500000610
Figure BDA00034026352500000611
最后由输出层得到预测结果
Figure BDA00034026352500000612
其中WO为输出层参数。在模型中的参数由输出层参数WO和CIN的参数Wk,h构成,这里有模型参数
Figure BDA00034026352500000613
k=1,..T且h=1,..Hk,其中d为所有输出层参数与CIN模块的参数的大小。那么
Figure BDA00034026352500000614
所以机器学习模型参数数量都是巨大,即d的数值较大。
所以目前在采用分布式机器学习对模型进行训练时,一般由计算节点设备采用朴素梯度下降算法和训练样本对机器学习模型进行多次迭代训练后将训练后的模型参数发送给参数服务器,在参数服务器对多个训练后的模型参数进行处理获得下一轮模型参数后发送给多个计算节点设备,再次进行下一轮的迭代训练,以此类推,直到将机器学习模型训练至收敛。
但由于朴素梯度下降算法是学习率固定的梯度下降算法,所以在采用采用朴素梯度下降算法对机器学习模型进行迭代训练时,导致迭代训练较多次才会使机器学习模型达到收敛。并且由于迭代训练较多次导致计算节点设备与参数服务器之间的通信交互较多,最终导致了机器学习模型的训练效率较低。
所以在面对现有技术的技术问题时,发明人通过创造性的研究后发现,相较于朴素梯度下降算法,本地随机梯度算法和自适应梯度下降算法能够加快模型训练过程,有效减少迭代训练次数,并且自适应梯度下降算法能够在稀疏化的深度学习模型的应用场景中,有更快的收敛速度和更好的泛化结果。所以为了更进一步的减少迭代训练次数并更好地用于稀疏化的深度学习模型的应用场景中,需要在本地随机梯度算法和自适应梯度下降算法的基础上,确定更加优秀的梯度算法,能够综合本地随机梯度算法和自适应梯度下降算法的优势。该梯度算法为本地自适应随机梯度下降算法。该本地自适应随机梯度下降算法在每次进行迭代训练时,既能够根据对应的训练样本数据的特点计算出随机梯度,又能够在随机梯度的基础上确定出自适应学习率关联参数,进而能够自适应的优化模型参数。进而能够有效减少迭代次数。有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。并且在稀疏化的深度学习模型的应用场景中具有更快的收敛速度和更好的泛化结果。
所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。下面对本发明实施例提供的分布式机器学习模型的训练方法的网络架构进行介绍。
图1是可以实现本发明实施例的分布式机器学习模型的训练方法的一种网络架构图,如图1所示,本实施例提供的分布式机器学习模型的训练方法中包括多个计算节点设备1及一个参数服务器2。如在图1中包括4个计算节点设备。参数服务器2与每个计算节点设备1通信连接。在每个计算节点设备1及参数服务器2中均具有预设的机器学习模型。每个计算节点设备1具有对应的多个训练样本。在采用图1的网络架构对预设的机器学习模型进行训练时,首先由参数服务器2设置初始模型参数及初始自适应学习率关联参数。然后将初始模型参数及初始自适应学习率关联参数发送给每个计算节点设备1。每个计算节点设备1采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,获得本轮迭代训练后的模型参数及自适应学习率关联参数后,发送给参数服务器2。参数服务器2根据每个计算节点设备1发送的本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数,并发送给每个计算节点设备1,由每个计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行下一轮多次迭代训练,获得下一轮训练后的模型参数及自适应学习率关联参数并发送给参数服务器2。参数服务器2根据每个计算节点设备发送的下一轮迭代训练后的模型参数及自适应学习率关联参数计算再下一轮迭代训练时的模型参数及自适应学习率关联参数。以此类推,直到将机器学习模型训练至收敛。
需要说明的是,在获取到训练至收敛的机器学习模型后,采用训练至收敛的机器学习模型可应用在任意一种分类场景中。如可应用在推荐系统应用场景中,自然语言处理的应用场景中,本实施例中对此不作限定。由于推荐系统应用场景和自然语言处理的应用场景属于稀疏化的深度学习模型的应用场景,所以具有更快的收敛速度和更好的泛化结果。
示例性的,在推荐系统应用场景中,具体的一个应用场景可以为对推送给用户的新闻、广告等进行点击率的预测;电影、商品等目标对象的评分预测等。在自然语言处理的应用场景中,具体的一个应用场景为输入法中下一个出现的词语的预测,文本在不同语种之间的翻译等。
具体地,获取到训练至收敛的机器学习模型后,采用训练至收敛的机器学习模型可应用在任意一种分类场景中时,获取目标样本数据,将目标样本数据输入到训练至收敛的机器学习模型中,通过训练至收敛的机器学习模型对目标样本数据进行特征提取及分类处理,输出目标样本数据的类别。其中,目标样本数据为以下样本数据的任意一种:图像样本数据、文本样本数据、音频样本数据、视频样本数据。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
图2是本发明一实施例提供的分布式机器学习模型的训练方法的流程示意图,如图2所示,本实施例提供的分布式机器学习模型的训练方法的执行主体为分布式机器学习模型的训练装置,该分布式机器学习模型的训练装置可位于计算节点设备中。则本实施例提供的分布式机器学习模型的训练方法包括以下步骤:
步骤101,获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据。
其中,预设机器学习模型的可以为线性回归模型,逻辑回归模型,Kmeans聚类模型,主成分分析模型,朴素贝叶斯模型,决策树模型,随机森林模型或其他类型的机器学习模型,本实施例中对此不作限定。
本实施例中,在对分布式机器学习模型进行训练时,预先为每个计算节点设备分配对应的训练样本数据。根据预设机器学习模型的不同和应用场景的不同,训练样本数据的类型也可以不同。其中,训练样本数据可以为图像样本数据,文本样本数据,音频样本数据、视频样本数据或其他类型的样本数据,本实施例中对此不作限定。
其中,每个计算节点设备对应的训练样本数据的数据类型相同。但每个计算节点设备对应的训练样本数据可以为同分布的或者为不同分布的,本实施例中对此不作限定。
具体地,本实施例中,每个计算节点设备对应的多个训练样本数据可存储在本地,所以通过访问本地预设存储区域获取到对应的多个训练样本数据。或者将每个计算节点设备对应的多个训练样本数据均存储在数据库中,通过访问数据库,获取到对应的多个训练样本数据。
步骤102,采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数。
本实施例中,为了减少计算节点设备与参数服务器之间的通信交互,在每次接收到参数服务器发送的模型参数及自适应学习率关联参数后,均对预设机器学习模型进行多次迭代训练。其中,每轮迭代训练的次数可预先设定,如可以为K次。其中,K为大于1的整数。
本实施例中,采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮的每次迭代训练时,均可计算出随机梯度,并根据随机梯度计算出每次迭代训练后的自适应的模型参数及自适应学习率关联参数。将本轮最后一次迭代训练后的模型参数确定为本轮迭代训练后的模型参数。将本轮最后一次迭代训练时的自适应学习率关联参数确定为本轮迭代训练后的自适应学习率关联参数。
其中,自适应学习率关联参数是与自适应学习率关联的参数。其用于计算自适应模型参数。如可以为由随机梯度计算出的动量和二阶动量。还可以为其他关联的参数,本实施例中对此不作限定。
步骤103,将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
本实施例中,计算节点设备与参数服务器之间通信,每个计算节点设备将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器。参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
其中,参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数时,可将多个本轮迭代训练后的模型参数计算出平均模型参数,将平均模型参数确定为下一轮迭代训练时的模型参数。可将多个本轮迭代训练后的自适应学习率关联参数计算出平均自适应学习率关联参数,将平均自适应学习率关联参数确定为下一轮迭代训练时的自适应学习率关联参数。
本实施例提供的分布式机器学习模型的训练方法,通过获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。由于本地自适应随机梯度下降算法能够综合本地随机梯度算法和自适应梯度下降算法的优势。即该本地自适应随机梯度下降算法在每次进行迭代训练时,既能够根据对应的训练样本数据的特点计算出随机梯度,又能够在随机梯度的基础上确定出自适应学习率关联参数,进而能够自适应的优化模型参数。进而能够有效减少迭代次数。有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。并且在稀疏化的深度学习模型的应用场景中具有更快的收敛速度和更好的泛化结果。
实施例二
图3是本发明另一实施例提供的分布式机器学习模型的训练方法的流程示意图,如图3所示,本实施例提供的分布式机器学习模型的训练方法,是在实施例一提供的分布式机器学习模型的训练方法的基础上,对步骤102的进一步细化,则本实施例提供的分布式机器学习模型的训练方法在步骤102本轮每次迭代训练时执行以下步骤:
步骤201,获取预设机器学习模型的本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数。
其中,本轮本次迭代训练时的模型参数可表示为xt,k,i。其中,t为迭代训练时的全局轮次。k表示每轮迭代训练时在计算节点设备本地的迭代训练次数。i表示属于第i个工作节点设备。
可选地,本地自适应随机梯度下降算法包括本地随机梯度计算算法及自适应梯度下降算法。作为一种可选实施方式,自适应梯度下降算法为学习率通用框架梯度下降算法,简称为:AMSGrad。其中,本轮上一次迭代训练时的自适应学习率关联参数包括:动量及二阶动量。
其中,本轮上一次迭代训练时的动量可表示为mt,k-1,i。本轮上一次迭代训练时的二阶动量可表示为
Figure BDA0003402635250000111
其中,t为迭代训练时的全局轮次。K表示每轮迭代训练时在计算节点设备本地的迭代训练次数。i表示属于第i个工作节点设备。
步骤202,从训练样本数据中随机获取任意一个训练样本数据。
其中,从计算节点设备对应的多个训练样本数据中随机选择一个训练样本数据作为本次本轮迭代训练对应的训练样本数据。
步骤203,采用本地自适应随机梯度下降算法、任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数。
作为一种可选实施方式,本实施例中,本地自适应随机梯度下降算法包括:本地随机梯度计算算法及自适应梯度下降算法。相应地,如图4所示,步骤203包括以下步骤:
步骤2031,采用任意一个训练样本数据和本轮本次迭代训练时的模型参数计算计算节点设备对应的损失函数。
其中,若本轮本次迭代训练为第t轮第k次迭代训练,则针对本轮本次迭代训练时的模型参数计算计算节点设备对应的损失函数可表示为式(1)所示:
fi(xt,k,i,ξt,k,i) 式(1)
其中,ξt,k,i为任意一个训练样本数据,可表示为ξt,k,i=(ξt,k,ifeature,ξt,k,ilabel)。其中,ξt,k,ifeature表示为参与第i个计算节点设备的第t轮第k次迭代训练的训练样本数据的特征。ξt,k,ilabel表示为参与第i个计算节点设备的第t轮第k次迭代训练的训练样本数据的标签。xt,k,i为本轮本次迭代训练时的模型参数。
其中,损失函数的具体形式不作限定。可依据应用场景的不同进行适应性的变化。
步骤2032,采用本地随机梯度计算算法对损失函数进行反向传播操作,以计算获得本轮本次迭代训练时的随机梯度。
其中,若本轮本次迭代训练为第t轮第k次迭代训练,则本轮本次迭代训练时的随机梯度可表示为式(2)所示:
Figure BDA0003402635250000121
其中,gt,k,i表示为参与第i个计算节点设备的第t轮第k次训练时的随机梯度。
Figure BDA0003402635250000122
表示采用本地随机梯度计算算法对损失函数进行反向传播操作。由于ξt,k,i是任意一个训练样本数据,所以在采用本地随机梯度计算算法对损失函数进行反向传播操作后,计算出的梯度为随机梯度。
步骤2033,采用自适应梯度下降算法、本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数。
作为一种可选实施方式,本实施例中,自适应梯度下降算法为学习率通用框架梯度下降算法,简称为AMSGrad算法。自适应学习率关联参数包括:动量及二阶动量。则如图5所示,步骤2033包括以下步骤:
步骤2033a,将本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的动量输入到AMSGrad算法中,通过AMSGrad算法计算本轮本次迭代训练时的动量。
其中,通过AMSGrad算法计算本轮本次迭代训练时的动量可表示为式(3)所示:
mt,k,i=β1mt,k-1,i-(1-β1)gt,k,i 式(3)
其中,mt,k-1,i表示参与第i个计算节点设备的第t轮第k-1次迭代训练时的动量,相较于参与第i个计算节点设备的第t轮第k次训练时的动量mt,k,i为本轮上一次迭代训练时的动量。gt,k,i为参与第i个计算节点设备的第t轮第k次训练时的随机梯度。β1为计算动量时的超参数,其取值可预先配置,为固定值。
步骤2033b,将本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的二阶动量输入到AMSGrad算法中,通过AMSGrad算法计算本轮本次迭代训练时的二阶动量。
其中,若本轮本次迭代训练为第t轮第k次迭代训练,则通过AMSGrad算法计算本轮本次迭代训练时的二阶动量可表示为式(4)和式(5)所示:
Figure BDA0003402635250000131
Figure BDA0003402635250000132
其中,β2表示为计算二阶动量时的超参数,其取值可预先配置,为固定值。Vt,k-1,i为参与第i个计算节点设备的第t轮第k-1次训练时的候选二阶动量。vt,k,i为参与第i个计算节点设备的第t轮第k次训练时的候选二阶动量。
Figure BDA0003402635250000133
为参与第i个计算节点设备的第t轮第k-1次训练时的二阶动量。相较于参与第i个计算节点设备的第t轮第k次训练时的二阶动量
Figure BDA0003402635250000134
为本轮上一次迭代训练时的二阶动量。
其中,式(4)表示为采用本轮本次迭代训练时的随机梯度和本轮上次迭代训练时的候选二阶动量计算本轮本次迭代训练时的候选二阶动量。式(5)表示采用本轮上一次迭代训练时的二阶动量和本轮本次迭代训练时的候选二阶动量计算本轮本次迭代训练时的二阶动量。具体地,本轮本次迭代训练时的二阶动量为本轮上一次迭代训练时的二阶动量和本轮本次迭代训练时的候选二阶动量中的最大值。
需要说明的是,通过式(3)计算出的动量和通过式(4)和式(5)计算出的二阶动量的维度均与式(2)计算出的随机梯度的维度相同,维度均可表示为
Figure BDA0003402635250000135
步骤204,根据本轮本次迭代训练时的模型参数及本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练后的模型参数。
作为一种可选实施方式,如图6所示,步骤204包括以下步骤:
步骤2041,获取本地自适应随机梯度下降算法对应的预设固定学习率。
本实施例中,可预先对本地自适应随机梯度下降算法中的预设固定学习率进行配置。该预设固定学习率可表示为α,其具体的取值不作限定。
步骤2042,根据预设固定学习率和本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率。
其中,本轮本次迭代训练时的自适应学习率可表示为式(6)所示:
Figure BDA0003402635250000141
其中,由于mt,k,i和
Figure BDA0003402635250000142
是自适应学习率关联参数,每次迭代训练后的取值均是自适应的,并且取值均不相同,所以在每次迭代训练时,预设固定学习率与自适应学习率关联参数进行乘法运算后,计算获得的自适应学习率的取值也是自适应的,并且取值也是不同的。
步骤2043,根据本轮本次迭代训练时的自适应学习率对本轮本次迭代训练时的模型参数进行更新,以获得本轮本次迭代训练后的模型参数。
其中,本轮本次迭代训练后的模型参数可表示为式(7)所示:
Figure BDA0003402635250000143
其中,xt,k+1,i为参与第i个计算节点设备的第t轮第k次训练后的模型参数。相较于xt,k,i,为本轮本次迭代训练后的模型参数。
本实施例中,由于本轮本次迭代训练时的学习率是自适应的。所以采用本轮本次迭代训练时的自适应学习率对本轮本次迭代训练时的模型参数进行更新后,获得的本轮本次迭代训练后的模型参数也是自适应的。
本实施例提供的分布式机器学习模型的训练方法,本地自适应随机梯度下降算法包括:本地随机梯度计算算法及自适应梯度下降算法,采用本地自适应随机梯度下降算法、所述任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数时,采用任意一个训练样本数据和所述本轮本次迭代训练时的模型参数计算所述计算节点设备对应的损失函数;采用所述本地随机梯度计算算法对所述损失函数进行反向传播操作,以计算获得本轮本次迭代训练时的随机梯度;采用所述自适应梯度下降算法、所述本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数。通过对本地随机梯度算法和自适应梯度下降算法进行改进和整合,能够使本地自适应随机梯度下降算法在每次迭代训练时,首先根据对应的训练样本数据的特点计算出随机梯度,然后在随机梯度的基础上确定出自适应学习率关联参数,进而计算出自适应的优化模型参数。相较于朴素梯度下降算法,每次迭代训练后的模型参数更加优化,所以能够有效减少迭代次数。有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。
为了进一步说明本实施例提供的分布式机器学习模型的训练方法的效果,发明人进一步对本方案的本地自适应随机梯度下降算法及损失函数进一步进行研究,研究后创造性的发现,在预设机器学习模型的损失函数满足以下三个条件,并且预设的固定学习率取值为
Figure BDA0003402635250000151
时,通过数学推导过程,可获知预设机器学习模型的收敛速率为式(8)所示:
Figure BDA0003402635250000152
其中,m为选择的工作节点设备的数量,K为本地迭代训练的数量,T为全局迭代训练的轮次。L为连续性假设中的参数。
Figure BDA0003402635250000153
为收敛速率上界函数。
其中,损失函数满足的三个条件分别为(1)连续性假设(2)方差有界(3)梯度有界。
其中,连续性假设为对于任意的工作节点设备i,其损失函数为fi(x)且一阶可微。那么对任意的两个模型参数x,x’,满足
Figure BDA0003402635250000154
其中,方差有界是指:对于随机梯度估计是无偏的,即
Figure BDA0003402635250000155
Figure BDA0003402635250000156
表示随机梯度的期望。
Figure BDA0003402635250000157
表示梯度。那么估计的方差有界表示为对任意的工作节点设备i,满足
Figure BDA0003402635250000158
其中σ为一个固定的常数。
其中,梯度有界。对任意的模型参数x和数据点ξ,随机梯度
Figure BDA0003402635250000159
是有界的。即
Figure BDA00034026352500001510
其中G为一个固定常数。
具体地,预设机器学习模型的损失函数满足以下三个条件,并且预设的固定学习率取值为
Figure BDA00034026352500001511
时,具体的数学推导过程如下:
引入辅助序列
Figure BDA00034026352500001512
其中
Figure BDA00034026352500001513
且满足r=t×K+k,1≤k≤K。那么有迭代更新方法可以得到辅助序列满足
Figure BDA0003402635250000161
其中Gr,i=gt,k,i,Mr,i=mt,k,i
Figure BDA0003402635250000162
且满足r=t×K+k,1≤k≤K。由于连续性假设,那么有
Figure BDA0003402635250000163
这等价于
Figure BDA0003402635250000164
Figure BDA0003402635250000165
带入辅助序列就可以得到
Figure BDA0003402635250000166
对上式左右两边求期望并放缩,整理得到
Figure BDA0003402635250000167
Figure BDA0003402635250000171
其中Xr,i=xt,k,i,
Figure BDA0003402635250000172
且满足r=t×K+k,1≤k≤K。在这里μ和λ为任意待定正数。
由于
Figure BDA0003402635250000173
则可以把前式转化为
Figure BDA0003402635250000174
首先选取λ2=4,μ=4,当α满足
Figure BDA0003402635250000175
时,那么有
Figure BDA0003402635250000176
Figure BDA0003402635250000177
然后对上式中迭代步r进行求和并在两端除以KT则可以得到
Figure BDA0003402635250000178
Figure BDA0003402635250000181
那么由于
Figure BDA0003402635250000182
其中f*为其函数最小值。另外推理有
Figure BDA0003402635250000183
Figure BDA0003402635250000184
Figure BDA0003402635250000185
Figure BDA0003402635250000186
Figure BDA0003402635250000187
Figure BDA0003402635250000188
将上面式子带入,再使得
Figure BDA0003402635250000189
就可以得到
Figure BDA00034026352500001810
其中
Figure BDA00034026352500001811
Figure BDA00034026352500001812
Figure BDA0003402635250000191
均为固定常数。
随着T增加其他项的减小速度高于不等式右边第一项,所以其他项在T增加过程中可以忽略。同时
Figure BDA0003402635250000192
所以有
Figure BDA0003402635250000193
本实施例中,采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练后,在非凸情况下,收敛速率有上界。即在损失函数满足上述三个条件,并且预设固定学习率满足上述要求时,在一定的迭代轮次后,预设机器学习模型达到收敛。并且预设机器学习模型是否达到收敛并不与训练样本数据的分布相关,所以在不同工作节点设备的训练样本数据满足不同的分布时,预设机器学习模型仍然可达到收敛。同时由于式(8)中收敛速度上界是满足线性性质的,所以在原有工作节点不足时,可通过增加工作节点设备来更快的优化模型参数,进一步提高预设机器学习模型的训练效率。
实施例三
图7是本发明再一实施例提供的分布式机器学习模型的训练方法的流程示意图。如图7所示,本实施例提供的分布式机器学习模型的训练方法在上述任意一个实施例提供的分布式机器学习模型的训练方法的基础上,在步骤103之后,还包括以下步骤:
步骤301,判断是否接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数,若是,则执行步骤302,否则执行步骤303。
本实施例中,在每个计算节点设备将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器后,参数服务器判断是否达到预设机器学习模型的收敛条件。若确定达到预设机器学习模型的收敛条件,则不再向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。若确定未达到预设机器学习模型的收敛条件,则计算出一轮迭代训练时的模型参数及自适应学习率关联参数后,将一轮迭代训练时的模型参数及自适应学习率关联参数发送给每个计算节点设备。
步骤302,继续执行获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据的步骤。
本实施例中,在每个计算节点设备接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数后,采用下一轮迭代训练时的模型参数及自适应学习率关联参数更新本轮迭代训练时的模型参数及自适应学习率关联参数,并继续采用实施例一或实施例二提供的分布式机器学习模型的训练方法进行预设机器学习模型的训练,并将本轮迭代训练后的模型参数及自适应学习率关联参数再次发送给参数服务器,直到未接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数为止。
步骤303,接收参数服务器发送的对预设机器学习模型训练完成的通知信息。
本实施例中,若未接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数,则说明预设机器学习模型已经训练至收敛,则计算节点设备会接收到参数服务器发送的对预设机器学习模型训练完成的通知信息。
本实施例提供的分布式机器学习模型的训练方法,在将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器之后,判断是否接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数;若接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数,则继续执行获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据的步骤,由于在计算节点设备每轮迭代训练时均采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行多次迭代训练,可有效减少迭代次数,进而有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。
实施例四
图8是本发明还一实施例提供的分布式机器学习模型的训练方法的流程示意图,如图8所示,本实施例提供的分布式机器学习模型的训练方法的执行主体为分布式机器学习模型的训练装置。该分布式机器学习模型的训练装置位于参数服务器中。则本实施例提供的分布式机器学习模型的训练方法包括以下步骤:
步骤401,接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练后获得的。
其中,在每个计算节点设备完成对预设机器学习模型的本轮迭代训练后,每个计算节点设备获取到本轮迭代训练后模型参数及自适应学习率关联参数。每个计算节点设备通过与参数服务器的通信,将本轮迭代训练后模型参数及自适应学习率关联参数发送给参数服务器。参数服务器接收到多个计算节点设备发送的本轮迭代训练后模型参数及自适应学习率关联参数。
其中,每个计算节点设备完成对预设机器学习模型的本轮迭代训练的过程与实施例一至实施例三的训练过程类似,在此不再一一赘述。
步骤402,根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
本实施例中,参数服务器可计算多个本轮迭代训练后的模型参数的差值,并采用自适应梯度下降算法更新本轮迭代训练时的模型参数,获得下一轮迭代训练时的模型参数。并可计算多个本轮迭代训练后的自适应学习率关联参数的差值,并采用自适应梯度下降算法更新本轮迭代训练时的自适应学习率关联参数,获得下一轮迭代训练时的自适应学习率关联参数。
或者参数服务器也可采用其他方式根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数,本实施例中对此不作限定。
本实施例提供的分布式机器学习模型的训练方法,通过接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练后获得的;根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。由于本地自适应随机梯度下降算法能够综合本地随机梯度算法和自适应梯度下降算法的优势。即该本地自适应随机梯度下降算法在每次进行迭代训练时,既能够根据对应的训练样本数据的特点计算出随机梯度,又能够在随机梯度的基础上确定出自适应学习率关联参数,进而能够自适应的优化模型参数。进而能够有效减少迭代次数。有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。并且在稀疏化的深度学习模型的应用场景中具有更快的收敛速度和更好的泛化结果。
实施例五
图9是本发明又一实施例提供的分布式机器学习模型的训练方法的流程示意图,如图9所示,本实施例提供的分布式机器学习模型的训练方法,在实施例四提供的分布式机器学习模型的训练方法的基础上,对步骤402进行进一步细化,具体包括以下步骤:
步骤501,计算多个本轮迭代训练后的模型参数的平均值,以获得下一轮迭代训练时的模型参数。
本实施例中,下一轮迭代训练时的模型参数可表示为式(9)所示:
Figure BDA0003402635250000221
其中,xt+1为下一轮迭代训练时的模型参数。m表示为计算节点设备的数量,同时也表示为本轮迭代训练后的模型参数的数量。xt,K+1,i为参与第i个计算节点设备的第t轮第k次训练后的模型参数。即为参与第i个计算节点设备的本轮迭代训练后的模型参数。
步骤502,计算多个本轮迭代训练后的自适应学习率关联参数的平均值,以获得下一轮迭代训练时的自适应学习率关联参数。
可选地,本实施例中,本地自适应随机梯度下降算法包括:本地随机梯度计算算法及自适应梯度下降算法。其中,自适应梯度下降算法为学习率通用框架梯度下降AMSGrad算法,自适应学习率关联参数包括:动量及二阶动量。所以下一轮迭代训练时的模型参数可表示为式(10)和式(11)所示:
Figure BDA0003402635250000222
Figure BDA0003402635250000223
其中,mt+1为下一轮迭代训练时的动量。m表示为本轮迭代训练后的动量的数量。mt,K,i为参与第i个计算节点设备的第t轮第k次训练时的动量。即为参与第i个计算节点设备的本轮迭代训练后的动量。
Figure BDA0003402635250000231
为下一轮迭代训练时的二阶动量。m表示为本轮迭代训练后的二阶动量的数量。mt,K,i为参与第i个计算节点设备的第t轮第k次训练时的二阶动量。即为参与第i个计算节点设备的本轮迭代训练后的二阶动量。
本实施例提供的分布式机器学习模型的训练方法,在根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数时,计算多个本轮迭代训练后的模型参数的平均值,以获得下一轮迭代训练时的模型参数;计算多个本轮迭代训练后的自适应学习率关联参数的平均值,以获得下一轮迭代训练时的自适应学习率关联参数。由于才参数服务器计算下一轮迭代训练时的模型参数及自适应学习率关联参数时,只通过求取平均值的方式计算下一轮迭代训练时的模型参数及自适应学习率关联参数,能够在满足下一轮迭代训练时的模型参数和自适应学习率关联参数的要求的情况下,尽可能地减少了参数服务器的计算资源。
实施例六
图10是本发明再一实施例提供的分布式机器学习模型的训练方法的流程示意图。如图10所示,本实施例提供的分布式机器学习模型的训练方法在实施例四或实施例五提供的分布式机器学习模型的训练方法的基础上,在步骤402之后,还包括以下步骤:
步骤601,判断是否满足预设机器学习模型的训练收敛条件,若否,则执行步骤602,否则执行步骤603。
本实施例中,预先配置预设机器学习模型的训练收敛条件。如预先配置的预设机器学习模型的收敛条件可以为训练轮次达到了预设训练轮次。或者预先配置的预设机器学习模型的收敛条件还可以为下一轮迭代训练后的模型参数与本轮迭代训练后的模型参数的差值小于预设差值阈值。本实施例中对预设机器学习模型的训练收敛条件不作限定。
步骤602,向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。
步骤603,确定预设机器学习模型训练收敛,停止对预设机器学习模型的训练。
本实施例中,参数服务器在判断是否满足预设机器学习模型的训练收敛条件后,若确定满足预设机器学习模型的训练收敛条件,则说明预设机器学习模型已训练至收敛,则停止对预设机器学习模型的训练。还可向每个计算节点设备发送预设机器学习模型训练完成的通信信息。若确定不满足预设机器学习模型的训练收敛条件,则计算节点设备继续对预设机器学习模型进行下一轮的迭代训练,则向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。计算节点设备继续采用实施例一或实施例二提供的分布式机器学习模型的训练方法进行预设机器学习模型的训练,并将本轮迭代训练后的模型参数及自适应学习率关联参数再次发送给参数服务器,直到参数服务器确定满足预设机器学习模型的训练收敛条件为止。
本实施例提供的分布式机器学习模型的训练方法,通过判断是否满足预设机器学习模型的训练收敛条件;若确定不满足预设机器学习模型的训练收敛条件,则向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。由于在计算节点设备每轮迭代训练时均采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行多次迭代训练,可有效减少迭代次数,进而有效减少计算节点设备与参数服务器之间的通信交互次数,进而有效提高机器学习模型的训练效率。
实施例七
图11是本发明一实施例提供的分布式机器学习模型的训练装置的结构示意图,如图11所示,本实施例提供的分布式机器学习模型的训练装置位于计算节点设备中。本实施例提供的分布式机器学习模型的训练装置70包括:获取模块71,迭代训练模块72及发送模块73。
其中,获取模块71,用于获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据。迭代训练模块72,用于采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数。发送模块73,用于将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
本实施例提供的分布式机器学习模型的训练装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。
可选地,迭代训练模块72,具体用于在本轮每次迭代训练时执行以下操作:获取预设机器学习模型的本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数;从训练样本数据中随机获取任意一个训练样本数据;采用本地自适应随机梯度下降算法、任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数;根据本轮本次迭代训练时的模型参数及本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练后的模型参数。
可选地,本地自适应随机梯度下降算法包括:本地随机梯度计算算法及自适应梯度下降算法。
相应地,迭代训练模块72,在采用本地自适应随机梯度下降算法、任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数时,具体用于:
采用任意一个训练样本数据和本轮本次迭代训练时的模型参数计算计算节点设备对应的损失函数;采用本地随机梯度计算算法对损失函数进行反向传播操作,以计算获得本轮本次迭代训练时的随机梯度;采用自适应梯度下降算法、本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数。
可选地,自适应梯度下降算法为学习率通用框架梯度下降AMSGrad算法,自适应学习率关联参数包括:动量及二阶动量。
相应地,迭代训练模块72,在采用自适应梯度下降算法、本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数时,具体用于:
将本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的动量输入到AMSGrad算法中,通过AMSGrad算法计算本轮本次迭代训练时的动量;将本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的二阶动量输入到AMSGrad算法中,通过AMSGrad算法计算本轮本次迭代训练时的二阶动量。
可选地,迭代训练模块72,在根据本轮本次迭代训练时的模型参数及本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练后的模型参数时,具体用于:
获取本地自适应随机梯度下降算法对应的预设固定学习率;根据预设固定学习率和本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率;根据本轮本次迭代训练时的自适应学习率对本轮本次迭代训练时的模型参数进行更新,以获得本轮本次迭代训练后的模型参数。
可选地,本实施例提供的分布式机器学习模型的训练装置,还包括:判断模块。
相应地,判断模块,用于判断是否接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数。获取模块,还用于若接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数,则继续执行获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据的步骤。可选地,训练样本数据为以下样本数据的任意一种:图像样本数据、文本样本数据、音频样本数据、视频样本数据。
本实施例提供的分布式机器学习模型的训练装置可以执行图3-图7所示方法实施例的技术方案,其实现原理和技术效果与图3-图7所示方法实施例类似,在此不再一一赘述。
实施例八
图12是本发明另一实施例提供的分布式机器学习模型的训练装置的结构示意图。如图12所示,本实施例提供的分布式机器学习模型的训练装置80包括:接收模块81和计算模块82。
其中,接收模块81,用于接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对预设机器学习模型进行本轮多次迭代训练后获得的。计算模块82,用于根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
本实施例提供的分布式机器学习模型的训练装置可以执行图8所示方法实施例的技术方案,其实现原理和技术效果与图8所示方法实施例类似,在此不再一一赘述。
可选地,计算模块82,具体用于:
计算多个本轮迭代训练后的模型参数的平均值,以获得下一轮迭代训练时的模型参数;计算多个本轮迭代训练后的自适应学习率关联参数的平均值,以获得下一轮迭代训练时的自适应学习率关联参数。
可选地,本实施例提供的分布式机器学习模型的训练装置还包括:判断模块和发送模块。
其中,判断模块,用于判断是否满足预设机器学习模型的训练收敛条件。发送模块,用于若确定不满足预设机器学习模型的训练收敛条件,则向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。
本实施例提供的分布式机器学习模型的训练装置可以执行图9-图10所示方法实施例的技术方案,其实现原理和技术效果与图9-图10所示方法实施例类似,在此不再一一赘述。
实施例九
图13是用来实现本发明实施例的分布式机器学习模型的训练方法的计算节点设备的结构示意图,如图13所示,本实施例提供的计算节点设备90包括:至少一个处理器92、存储器91及收发器93。
其中,处理器92、存储器91及收发器93电路互联。
存储器91存储计算机执行指令;收发器93用于与参数服务器收发数据。
至少一个处理器92执行存储器存储的计算机执行指令,使得至少一个处理器执行如实施例一至实施例三任意一个实施例提供的方法。
实施例十
图14是用来实现本发明实施例的分布式机器学习模型的训练方法的参数服务器的框图,如图14所示,本实施例提供的参数服务器1000包括:至少一个处理器1002、存储器1001及收发器1003。
其中,处理器1002、存储器1001及收发器1003电路互联。
存储器1001存储计算机执行指令;收发器1003用于与多个计算节点设备收发数据。
至少一个处理器1002执行存储器存储的计算机执行指令,使得至少一个处理器执行如实施例四至实施例六任意一个实施例提供的方法。
实施例十一
图15是用来实现本发明实施例的分布式机器学习模型的训练方法的电子设备的框图。如图15所示,本实施例提供的电子设备1100为计算节点设备或参数服务器。可以包括以下一个或多个组件:处理组件1102,存储器1104,电源组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)接口1112,传感器组件1114,以及通信组件1116。
处理组件1102通常控制电子设备1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或多个处理器1120来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1102可以包括一个或多个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。
存储器1104被配置为存储各种类型的数据以支持在电子设备1100的操作。这些数据的示例包括用于在电子设备1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1106为电子设备1100的各种组件提供电力。电源组件1106可以包括电源管理系统,一个或多个电源,及其他与为电子设备1100生成、管理和分配电力相关联的组件。
多媒体组件1108包括在电子设备1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当电子设备1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1110被配置为输出和/或输入音频信号。例如,音频组件1110包括一个麦克风(MIC),当电子设备1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1116发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。
I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1114包括一个或多个传感器,用于为电子设备1100提供各个方面的状态评估。例如,传感器组件1114可以检测到电子设备1100的打开/关闭状态,组件的相对定位,例如组件为电子设备1100的显示器和小键盘,传感器组件1114还可以检测电子设备1100或电子设备1100一个组件的位置改变,用户与电子设备1100接触的存在或不存在,电子设备1100方位或加速/减速和电子设备1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1116被配置为便于电子设备1100和其他设备之间有线或无线方式的通信。电子设备1100可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件1116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备1100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1104,上述指令可由电子设备1100的处理器1120执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当该存储介质中的指令由服务器的处理器执行时,使得计算节点设备或参数服务器能够执行上述对应实施例提供的分布式机器学习模型的训练方法。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任意一个实施例提供的分布式机器学习模型的训练方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (16)

1.一种分布式机器学习模型的训练方法,其特征在于,所述方法应用于计算节点设备,所述方法包括:
获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;
采用本地自适应随机梯度下降算法和所述训练样本数据对所述预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;
将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示所述参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
2.根据权利要求1所述的方法,其特征在于,所述采用本地自适应随机梯度下降算法和所述训练样本数据对所述预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数,包括:
在本轮每次迭代训练时执行以下操作:
获取预设机器学习模型的本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数;
从所述训练样本数据中随机获取任意一个训练样本数据;
采用本地自适应随机梯度下降算法、所述任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数;
根据本轮本次迭代训练时的模型参数及本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练后的模型参数。
3.根据权利要求2所述的方法,其特征在于,所述本地自适应随机梯度下降算法包括:本地随机梯度计算算法及自适应梯度下降算法;
所述采用本地自适应随机梯度下降算法、所述任意一个训练样本数据、本轮本次迭代训练时的模型参数和本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数,包括:
采用任意一个训练样本数据和所述本轮本次迭代训练时的模型参数计算所述计算节点设备对应的损失函数;
采用所述本地随机梯度计算算法对所述损失函数进行反向传播操作,以计算获得本轮本次迭代训练时的随机梯度;
采用所述自适应梯度下降算法、所述本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数。
4.根据权利要求3所述的方法,其特征在于,所述自适应梯度下降算法为学习率通用框架梯度下降AMSGrad算法,所述自适应学习率关联参数包括:动量及二阶动量;
所述采用所述自适应梯度下降算法、所述本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率关联参数,包括:
将所述本轮本次迭代训练时的随机梯度及本轮上一次迭代训练时的动量输入到AMSGrad算法中,通过所述AMSGrad算法计算本轮本次迭代训练时的动量;
将所述本轮本次迭代训练时的随机梯度及所述本轮上一次迭代训练时的二阶动量输入到AMSGrad算法中,通过所述AMSGrad算法计算本轮本次迭代训练时的二阶动量。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据本轮本次迭代训练时的模型参数及本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练后的模型参数,包括:
获取所述本地自适应随机梯度下降算法对应的预设固定学习率;
根据所述预设固定学习率和所述本轮本次迭代训练时的自适应学习率关联参数计算本轮本次迭代训练时的自适应学习率;
根据所述本轮本次迭代训练时的自适应学习率对所述本轮本次迭代训练时的模型参数进行更新,以获得本轮本次迭代训练后的模型参数。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器之后,还包括:
判断是否接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数;
若接收到参数服务器发送的下一轮迭代训练时的模型参数及自适应学习率关联参数,则继续执行获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据的步骤。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述训练样本数据为以下样本数据的任意一种:图像样本数据、文本样本数据、音频样本数据、视频样本数据。
8.一种分布式机器学习模型的训练方法,其特征在于,所述方法应用于参数服务器,所述方法包括:
接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;所述本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对所述预设机器学习模型进行本轮多次迭代训练后获得的;
根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
9.根据权利要求8所述的方法,其特征在于,所述根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数,包括:
计算多个本轮迭代训练后的模型参数的平均值,以获得下一轮迭代训练时的模型参数;
计算多个本轮迭代训练后的自适应学习率关联参数的平均值,以获得下一轮迭代训练时的自适应学习率关联参数。
10.根据权利要求8或9所述的方法,其特征在于,所述根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数之后,还包括:
判断是否满足预设机器学习模型的训练收敛条件;
若确定不满足预设机器学习模型的训练收敛条件,则向每个计算节点设备发送下一轮迭代训练时的模型参数及自适应学习率关联参数。
11.一种分布式机器学习模型的训练装置,其特征在于,所述装置位于计算节点设备中,所述装置包括:
获取模块,用于获取对预设机器学习模型进行训练时计算节点设备对应的多个训练样本数据;
迭代训练模块,用于采用本地自适应随机梯度下降算法和所述训练样本数据对所述预设机器学习模型进行本轮多次迭代训练,以获得本轮迭代训练后的模型参数及自适应学习率关联参数;
发送模块,用于将本轮迭代训练后的模型参数及自适应学习率关联参数发送给参数服务器,以指示所述参数服务器根据本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
12.一种分布式机器学习模型的训练装置,其特征在于,所述装置位于参数服务器中,所述装置包括:
接收模块,用于接收多个计算节点设备发送的对预设机器学习模型进行本轮迭代训练后的模型参数及自适应学习率关联参数;所述本轮迭代训练后的模型参数及自适应学习率关联参数是对应的计算节点设备采用本地自适应随机梯度下降算法和训练样本数据对所述预设机器学习模型进行本轮多次迭代训练后获得的;
计算模块,用于根据多个本轮迭代训练后的模型参数及自适应学习率关联参数计算下一轮迭代训练时的模型参数及自适应学习率关联参数。
13.一种计算节点设备,其特征在于,包括:至少一个处理器、存储器及收发器;
所述处理器、所述存储器及所述收发器电路互联;
所述存储器存储计算机执行指令;所述收发器用于与参数服务器收发数据;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的方法。
14.一种参数服务器,其特征在于,包括:至少一个处理器、存储器及收发器;
所述处理器、所述存储器及所述收发器电路互联;
所述存储器存储计算机执行指令;所述收发器用于与多个计算节点设备收发数据;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求8-10任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项或8-10任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项或8-10任一项所述的方法。
CN202111503776.1A 2021-12-09 2021-12-09 分布式机器学习模型的训练方法、装置、设备及介质 Pending CN114169534A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111503776.1A CN114169534A (zh) 2021-12-09 2021-12-09 分布式机器学习模型的训练方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111503776.1A CN114169534A (zh) 2021-12-09 2021-12-09 分布式机器学习模型的训练方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114169534A true CN114169534A (zh) 2022-03-11

Family

ID=80485174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111503776.1A Pending CN114169534A (zh) 2021-12-09 2021-12-09 分布式机器学习模型的训练方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114169534A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461568A (zh) * 2022-04-14 2022-05-10 苏州浪潮智能科技有限公司 一种数据处理方法、系统、设备及可读存储介质
CN114726861A (zh) * 2022-04-02 2022-07-08 中国科学技术大学苏州高等研究院 基于空闲服务器的模型聚合加速方法和装置
CN116070720A (zh) * 2023-03-23 2023-05-05 山东海量信息技术研究院 基于分布式集群的数据处理方法、系统、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726861A (zh) * 2022-04-02 2022-07-08 中国科学技术大学苏州高等研究院 基于空闲服务器的模型聚合加速方法和装置
CN114461568A (zh) * 2022-04-14 2022-05-10 苏州浪潮智能科技有限公司 一种数据处理方法、系统、设备及可读存储介质
WO2023197520A1 (zh) * 2022-04-14 2023-10-19 苏州浪潮智能科技有限公司 一种数据处理方法、系统、设备及可读存储介质
CN116070720A (zh) * 2023-03-23 2023-05-05 山东海量信息技术研究院 基于分布式集群的数据处理方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110210535B (zh) 神经网络训练方法及装置以及图像处理方法及装置
CN109829433B (zh) 人脸图像识别方法、装置、电子设备及存储介质
CN110516745B (zh) 图像识别模型的训练方法、装置及电子设备
CN114169534A (zh) 分布式机器学习模型的训练方法、装置、设备及介质
CN110245757B (zh) 一种图像样本的处理方法及装置、电子设备和存储介质
CN109858614B (zh) 神经网络训练方法及装置、电子设备和存储介质
CN109635920B (zh) 神经网络优化方法及装置、电子设备和存储介质
CN107590534B (zh) 训练深度卷积神经网络模型的方法、装置及存储介质
CN109670632B (zh) 广告点击率的预估方法、广告点击率的预估装置、电子设备及存储介质
CN111898018B (zh) 一种虚拟资源的发送方法、装置、电子设备及存储介质
CN112836801A (zh) 深度学习网络确定方法、装置、电子设备及存储介质
CN112598063A (zh) 神经网络生成方法及装置、电子设备和存储介质
CN110782010A (zh) 一种神经网络的构建方法及装置、存储介质
CN114968594B (zh) 任务处理方法、装置、电子设备和存储介质
CN114861828A (zh) 神经网络训练方法及装置、音频处理方法及装置
CN113781518B (zh) 神经网络结构搜索方法及装置、电子设备和存储介质
CN107480773B (zh) 训练卷积神经网络模型的方法、装置及存储介质
CN112116095A (zh) 一种多任务学习模型训练的方法及相关装置
CN114840761B (zh) 推送模型的训练方法、装置、设备、存储介质及程序产品
CN115512116A (zh) 图像分割模型优化方法、装置、电子设备及可读存储介质
CN113486978B (zh) 文本分类模型的训练方法、装置、电子设备及存储介质
CN112801116B (zh) 图像的特征提取方法及装置、电子设备和存储介质
CN110659726B (zh) 一种图像处理方法、装置、电子设备及存储介质
CN114648116A (zh) 模型量化方法、装置、车辆及存储介质
CN110751223B (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