CN111626434B - 一种分布式训练参数更新方法、装置、设备及存储介质 - Google Patents
一种分布式训练参数更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111626434B CN111626434B CN202010412624.XA CN202010412624A CN111626434B CN 111626434 B CN111626434 B CN 111626434B CN 202010412624 A CN202010412624 A CN 202010412624A CN 111626434 B CN111626434 B CN 111626434B
- Authority
- CN
- China
- Prior art keywords
- parameter
- updating
- parameter information
- training
- updated
- 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
- 238000012549 training Methods 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 40
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine 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)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种分布式训练参数更新方法,包括:获取各个目标参数对应的当前参数值;对各个当前参数值进行有效性检测,并根据检测结果生成本地参数信息;获取各个其他训练单元分别对应的各个其他参数信息,并利用本地参数信息和其他参数信息生成更新参数信息;当检测到更新事件时,对更新参数信息对应的待更新参数进行更新;该方法通过有效性检测,可以确定各个目标参数是否有效,即是否需要被更新,并通过更新参数信息对需要被更新的目标参数进行更新,减少了参与训练的参数,进而减少了训练所需的时间,提高了训练效率;此外,本发明还提供了一种分布式训练参数更新装置、分布式训练参数更新设备及计算机可读存储介质,也具有上述有益效果。
Description
技术领域
本发明涉及分布式训练技术领域,特别涉及一种分布式训练参数更新方法、分布式训练参数更新装置、分布式训练参数更新设备及计算机可读存储介质。
背景技术
分布式训练即为在多个分布式训练单元上的计算单元同时对网络模型进行训练,以便提高网络模型的训练速度。
相关技术在进行分布式训练时,为了保证各个训练单元的训练过程统一,需要在各个计算单元均训练结束,且得到目标节点的通知后对所有模型参数进行更新。对于大规模分布式深度学习训练任务,特别是复杂模型和大规模数据集训练任务,在训练过程中会存在大量的待更新模型的参数,参数和训练单元越多,训练和更新所需的时间就越长。随着训练次数的增加,训练的时间也会越长,训练效率较低。
因此,如何解决相关技术存在的训练时间长、训练效率低的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种分布式训练参数更新方法、分布式训练参数更新装置、分布式训练参数更新设备及计算机可读存储介质,解决了相关技术存在的训练时间长、训练效率低的问题。
为解决上述技术问题,本发明提供了一种分布式训练参数更新方法,包括:
获取各个目标参数对应的当前参数值;
对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息;
获取各个其他训练单元分别对应的各个其他参数信息,并利用所述本地参数信息和所述其他参数信息生成更新参数信息;
当检测到更新事件时,对所述更新参数信息对应的待更新参数进行更新。
可选地,所述对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息,包括:
判断所述当前参数值是否处于第一阈值区间;
若所述当前参数值处于所述第一阈值区间,则确定所述当前参数值对应的有效比特位为0;
若所述当前参数值不处于所述第一阈值区间,则获取历史参数值,并利用所述当前参数值和所述历史参数值计算参数差值;
判断所述参数差值是否处于第二阈值区间;
若所述参数差值处于所述第二阈值区间,则确定所述当前参数值对应的所述有效比特位为0;
若所述参数差值不处于所述第二阈值区间,则确定所述当前参数值对应的所述有效比特位为1;
利用各个所述目标参数对应的所述有效比特位构成所述本地参数信息。
可选地,所述利用所述本地参数信息和所述其他参数信息生成更新参数信息,包括:
利用各个所述其他参数信息与所述本地参数信息进行逐位或计算,得到所述更新参数信息。
可选地,在所述对所述更新参数信息对应的待更新参数进行更新之后,还包括:
利用各个所述待更新参数的所述当前参数值,对所述待更新参数对应的历史参数值进行更新;
利用各个未更新参数对应的所述历史参数值,对所述未更新参数对应的所述当前参数值进行更新;
将所述待更新参数确定为所述目标参数。
可选地,所述当检测到更新事件,包括:
判断是否存在第一状态缓存;
若存在,则更新所述第一状态缓存,并更新各个分别位于所述其他训练单元中的第二状态缓存;
若不存在,则向目标节点发送更新请求,并获取所述目标节点发送的所述第一状态缓存;
当检测到所述第一状态缓存处于目标状态时,确定检测到所述更新事件。
可选地,在所述根据检测结果生成本地参数信息之后,还包括:
将所述本地参数信息发送给所述其他训练单元;
相应的,所述获取各个其他训练单元分别对应的其他参数信息,包括:
获取各个所述其他训练单元发送的所述其他参数信息。
可选地,所述当检测到更新事件,包括:
当检测到所述目标节点发送的更新指令后,确定检测到所述更新事件。
本发明还提供了一种分布式训练参数更新装置,包括:
获取模块,用于获取各个目标参数对应的当前参数值;
本地参数信息生成模块,用于对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息;
更新参数信息生成模块,用于获取各个其他训练单元分别对应的各个其他参数信息,并利用所述本地参数信息和所述其他参数信息生成更新参数信息;
更新模块,用于当检测到更新事件时,对所述更新参数信息对应的待更新参数进行更新。
本发明还提供了一种分布式训练参数更新设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的分布式训练参数更新方法。
本发明还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的分布式训练参数更新方法。
本发明提供的分布式训练参数更新方法,获取各个目标参数对应的当前参数值;对各个当前参数值进行有效性检测,并根据检测结果生成本地参数信息;获取各个其他训练单元分别对应的各个其他参数信息,并利用本地参数信息和其他参数信息生成更新参数信息;当检测到更新事件时,对更新参数信息对应的待更新参数进行更新。
可见,该方法在获取当前参数值后对其进行有效性检测,以便确定各个当前参数值是否有效,即对应的目标参数是否需要被继续更新,并根据检测结果生成本地参数信息。通过获取其他训练单元各自对应的其他参数信息,可以确定其他训练单元对应的各个当前参数值是否有效。利用本地参数信息和其他参数信息生成更新参数信息,其中记录了所有训练单元均需要更新的目标参数,即待更新参数,并在检测到更新事件时进行更新。通过有效性检测,可以确定各个目标参数是否有效,即是否需要被更新,并通过更新参数信息对需要被更新的目标参数进行更新,因此可以对训练效果较差的目标参数不进行更新和训练,在保证模型训练效果的前提下减少了训练所需的时间,提高了训练效率,解决了相关技术存在的训练时间长、训练效率低的问题。
此外,本发明还提供了一种分布式训练参数更新装置、分布式训练参数更新设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种分布式训练参数更新方法流程图;
图2为本发明实施例提供的一种具体的本地参数信息生成方法流程图;
图3为本发明实施例提供的一种具体的分布式训练参数更新方法流程图;
图4为本发明实施例提供的一种分布式训练参数更新装置的结构示意图;
图5为本发明实施例提供的一种分布式训练参数更新设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
大规模分布式深度学习训练任务,特别是复杂模型和大规模数据集训练过程中会产生大量的待更新模型的梯度、消息体和消息队列,对于采用并行消息队列处理方式的数据并行分布式训练,多个GPU间独立运行各自训练数据,然后等待本节点或者其他节点的GPU完成训练然后同步模型参数,因此产生大量待更新的模型参数(如梯度等)、消息体和冗长的消息处理等待时间,计算单元、训练的参数以及训练轮数越多,训练过程所占用的空间和时间就越长,严重影响了训练效率。
为了解决上述问题,本申请提供了一种分布式训练参数更新方法以及对应的装置、设备和计算机可读存储介质。实际上,随着训练的进行,大量的模型参数会逐渐趋于稳定,继续对这些参数进行训练对于模型的最终训练效果并没有实际的提升,反而会影响训练效率。因此该方法在获取到各个目标参数的当前参数值后对其进行有效性检测,判断是否需要更新,并对各个训练单元均需要更新的目标参数进行更新,对无效的,即不需要更新的参数不进行更新,通过减少参与更新的参数数量减少训练所需的时间,进而提高训练效率。
具体的,在一种可能的实施方式中,请参考图1,图1为本发明实施例提供的一种分布式训练参数更新方法流程图。该方法包括:
S101:获取各个目标参数对应的当前参数值。
本申请提供的分布式训练参数更新方法的全部或部分步骤可以由本地训练单元执行,本地训练单元可以为任意一个训练单元,训练单元的具体形式不做限定,例如可以为某个训练节点,例如为某个worker节点;或者可以为某个训练节点上的某个GPU。
目标参数为本轮训练中被训练的参数,其数量可以为一个或多个,具体可以为模型中的全部参数或部分参数。本实施例不对目标参数的数量做出限定。目标参数可以为梯度参数,或者可以为其他模型参数。在本轮训练结束后,可以得到各个目标参数分别对应的当前参数值,当前参数值的具体内容与对应的目标参数的类型相关,本实施例不做限定。
S102:对各个当前参数值进行有效性检测,并根据检测结果生成本地参数信息。
本实施例中,通过对各个目标参数的当前参数值进行有效性检测,可以判断该当前参数值是否有效,有效即表示该参数还未趋于稳定,仍然需要进行更新;无效则表示该参数已趋于稳定,继续对其进行训练并更新效果不大,且会浪费训练时间,降低训练效率。不同类型的目标参数对应的有效性检测方法可能略有区别,本实施例并不限定有效性检测的具体内容,可以判断当前参数值是否有效即可。
需要说明的是,有效性检测的检测强度可以根据实际需要进行调整,例如当要求训练得到的模型参数精确度较高时,可以提高判定当前参数值无效的标准,降低判定当前参数值有效的标准;或者当要求尽可能提高模型的训练效率时,可以降低判定当前参数值无效的标准,提高判定当前参数值有效的标准。标准的提高或降低通常与有效性检测的方法相关,例如当有效性检测通过对当前参数值与历史参数值之间的差值进行比对,以判断该当前参数值是否趋于稳定时,可以通过修改与差值进行比对的阈值上下限的值来提高或降低标准。
在对当前参数值进行有效性检测后,即可得到检测结果,并根据检测结果生成本地参数信息。本地参数信息用于表示本地训练节点中各个目标参数是否有效,其具体形式本实施例不做限定,例如可以为位矢量,或者可以为数组。
S103:获取各个其他训练单元分别对应的各个其他参数信息,并利用本地参数信息和其他参数信息生成更新参数信息。
为了保证模型训练的统一,本地训练单元在生成本地参数信息后,还需要获取其他训练单元分别对应的各个其他参数信息。其他参数信息表示了对应的其他训练单元中各个当前参数值是否有效,其生成方法和表现形式与本地参数信息相同。利用其他参数信息与本地参数信息进行综合,可以确定所有训练单元均需要更新的目标参数,即待更新参数。由于不同的训练单元上模型参数的训练情况不同,因此可能出现在A训练节点上B训练参数无效,而C训练节点上B训练参数有效的情况,因此在确定待更新参数时,需要获取其他训练单元对应的其他参数信息,并利用本地参数信息和其他参数信息生成更新参数信息,更新参数信息用于表示哪些目标参数需要被更新。
S104:当检测到更新事件时,对更新参数信息对应的待更新参数进行更新。
需要说明的是,本实施例并不限定更新事件的具体形式,更新事件可以为接收到某一节点发送的指令,或者可以为某一数据或标识处于目标状态。当检测到更新事件后,说明可以对待更新参数进行更新,因此对更新参数信息对应的待更新参数进行更新。在本实施例中,更新操作即为allreduce操作。
应用本发明实施例提供的分布式训练参数更新方法,在获取当前参数值后对其进行有效性检测,以便确定各个当前参数值是否有效,即对应的目标参数是否需要被继续更新,并根据检测结果生成本地参数信息。通过获取其他训练单元各自对应的其他参数信息,可以确定其他训练单元对应的各个当前参数值是否有效。利用本地参数信息和其他参数信息生成更新参数信息,其中记录了所有训练单元均需要更新的目标参数,即待更新参数,并在检测到更新事件时进行更新。通过有效性检测,可以确定各个目标参数是否有效,即是否需要被更新,并通过更新参数信息对需要被更新的目标参数进行更新,因此可以对训练效果较差的目标参数不进行更新和训练,在保证模型训练效果的前提下减少了训练所需的时间,提高了训练效率,解决了相关技术存在的训练时间长、训练效率低的问题。
基于上述实施例,在一种可能的实施方式中,为了减少通信时消息体的长度,减少通信所需的时间和存储所需的空间,可以将本地参数信息的表现形式设置为位矢量形式。具体请参考图2,图2为本发明实施例提供的一种具体的本地参数信息生成方法流程图,包括:
S201:判断当前参数值是否处于第一阈值区间。
在本实施例中,目标参数可以为梯度参数。在得到当前参数值后,判断其是否处于第一阈值区间。第一阈值区间可以根据实际需要进行设置,例如可以设置为[0,0.001],当当前参数值处于第一阈值区间时,可以进入S202步骤,当当前参数值不处于第一阈值区间时,可以进入S203步骤。
S202:确定当前参数值对应的有效比特位为0。
当当前参数值处于第一阈值区间时,则可以确定当前参数值无效,本实施例中利用0表示无效,用1表示有效,因此将当前参数值对应的有效比特位设置为0。具体的,有效比特位即为在本地参数信息中该当前参数值对应的比特位,例如当该当前参数值对应的目标参数为E1时,该有效比特位即为E1对应的比特位。
S203:获取历史参数值,并利用当前参数值和历史参数值计算参数差值。
当当前参数值不处于第一阈值区间时,说明其可能无效也可能有效,为了判断其是否有效,还需要判断目标参数的收敛速度是否够快。历史参数值即为该当前参数值对应的目标参数在本轮训练前的参数值,通过获取历史参数值,可以计算参数差值,进而判断该目标参数的收敛速度。
S204:判断参数差值是否处于第二阈值区间。
在得到参数差值后,判断其是否处于第二阈值区间,第二阈值区间的具体大小本实施例不做限定,例如可以为[0,0.0000001],其用于与参数差值进行比对,判断目标参数的收敛速度是否达到有效的标准。当参数差值处于第二阈值区间时,可以进入S205步骤;当参数差值不处于第二阈值区间时,可以进入S206步骤。
S205:确定当前参数值对应的有效比特位为0。
当参数差值处于第二阈值区间时,说明当前参数值与历史参数值相差较小,该当前参数值对应的目标参数收敛速度较慢,即将达到收敛,继续训练效果较差,因此可以不对其进行训练,即将当前参数值对应的有效比特位这职位0。
S206:确定当前参数值对应的有效比特位为1。
当参数差值不处于第二阈值区间时,说明当前参数值与历史参数值相差较大,刚当前参数值对应的目标参数收敛速度较快,还未达到收敛,仍需要继续对其进行训练,因此将其对一点呢有效比特位设置为1。
S207:利用各个目标参数对应的有效比特位构成本地参数信息。
当所有目标参数对应的有效比特位的值均确定后,利用各个目标参数对应的有效比特位构成本地参数信息。例如当共有三个目标参数E1、E2、E3时,其对应的本地参数信息可以为[0,0,1],即E1和E2为无效状态,E3为有效状态。
具体的,在一种可能的实施方式中,可以执行如下算法进行当前参数值对应的目标参数是否有效的判断:
算法:EG-allreduce(有效梯度更新)
输入:本次梯度gradient_current(即当前参数值),上次梯度gradient_last(即历史参数值)
输出:uneffective_gradient(本地参数信息中目标参数对应的比特位)
threshold=0.0000001
uneffective_gradient=1
if gradient_current<=threshold
uneffective_gradient=1
else if
gradient_current-gradient_last>=threshold
uneffective_gradient=1
else
uneffective_gradient=0
returnuneffective_gradient
基于上述实施例,在一种可能的实施方式中,可以采用master-worker结构进行并行消息处理,以便在各个训练单元本轮训练结束后统一进行更新,具体的,在完成训练后,向目标节点发送更新请求。
本实施例中,各个训练单元可以为worker节点,目标节点即为master节点。在完成本轮训练后向目标节点发送更新请求,以便使目标节点得知本地训练单元已完成本轮训练。本实施例并不限定完成训练的具体时机,例如可以为获取到当前参数值时确定完成训练,或者可以为生成本地参数信息后确定完成训练。进一步,当生成本地参数信息后,可以发送给目标节点,由目标节点将本地参数信息发送给所有其他训练单元,同样的,可以利用该方法获取其他训练单元的其他参数信息,即获取目标节点发送的其他参数信息。
在检测更新事件时,当检测到目标节点发送的更新指令后,确定检测到更新事件。
当目标节点接收到所有训练单元发送的更新请求后,可以确定所有训练单元均完成本轮训练,因此可以发送更新指令,以便命令所有训练单元对待更新参数进行更新。
基于上述实施例,在一种可能的实施方式中,为了缓解采用master-worker结构的并行消息处理方式进行参数更新造成的目标节点通信压力较大的问题,本实施例中可以采用状态缓存的方式确定是否检测到更新时间。具体请参考图3,图3为本发明实施例提供的一种具体的分布式训练参数更新方法流程图,包括:
S301:获取各个目标参数对应的当前参数值。
本步骤中的具体内容可以参考上述实施例,本实施例在此不再赘述。
S302:对各个当前参数值进行有效性检测,并根据检测结果生成本地参数信息。
本步骤中的具体内容可以参考上述实施例,本实施例在此不再赘述。
在本实施例中,在生成本地参数信息后,可以将本地参数信息发送给其他训练单元,避免与目标节点进行大量的通信,减轻了目标节点的通信压力。相应的,在获取其他参数信息时,可以直接获取各个其他训练单元发送的其他参数信息。
S303:利用各个其他参数信息与本地参数信息进行逐位或计算,得到更新参数信息。
需要说明的是,当未获取到其他训练单元发送的其他参数信息时,可以直接将本地参数信息确定为更新参数信息,并在获取到其他参数信息时利用其他参数信息和本地参数信息进行更新。
本实施例中,各个本地参数信息和其他参数信息可以采用位矢量的形式表示。在生成更新参数信息时,可以将各个其他参数信息与本地参数信息进行逐位或运算,即将各个其他参数信息中的有效比特位和本地参数信息中对应的有效比特位进行或运算,并将得到的运算结果确定为更新参数信息中对应的比特位。例如当存在A=[1,0,0]、B=[1,1,0]、C=[1,1,0]三个参数信息时,其中A为本地参数信息,B和C为其他参数信息,则利用可以利用A、B和C进行逐位相或的运算,得到更新参数信息A’。具体的,A’中第一个有效比特位的值为1+1+1=1,其中“+”为或运算,因此A’中的第一个有效比特位的值为1;A’中第二个有效比特位的值为0+1+1=1;A’中第三个有效比特位的值为0+0+0=0,因此A’=[1,1,0]。当未获取到其他参数信息时,可以将本地参数信息确定为更新参数信息,当获取到其他参数信息时,将其与更新参数信息进行逐位与操作,完成更新参数信息的更新。
本实施例中,更新事件的检测过程可以通过检测第一状态缓存的状态进行,具体的:
S304:判断是否存在第一状态缓存。
第一状态缓存即为在本地存储的状态缓存,其可以为位矢量或其他形式,用于记录各个训练单元的训练完成情况。状态缓存由目标节点发送,当目标节点接收到第一个更新请求时,向各个训练单元发送状态缓存。当检测更新事件时,由于本地训练节点可能为第一个完成训练的训练节点,因此可以判断是否存在第一状态缓存,当不存在第一状态缓存时,进入S305步骤;当存在第一状态缓存时,进入S306步骤。
S305:向目标节点发送更新请求,并获取目标节点发送的第一状态缓存。
当不存在第一状态缓存时,说明本地训练单元为第一个完成训练的训练单元,可以向目标节点发送更新请求,并获取目标节点发送的第一状态缓存。本实施例中,可以用0比特位表示未完成训练,利用1比特位表示已完成训练。
S306:更新第一状态缓存,并更新各个分别位于其他训练单元中的第二状态缓存。
当存在第一状态缓存时,说明本地训练单元并不是第一个完成训练的单元,因此更新第一状态缓存,并更新其他训练单元中的第二状态缓存,以便使其他训练单元得知本地训练单元已完成训练。
S307:当检测到第一状态缓存处于目标状态时,确定检测到更新事件。
当检测到第一状态缓存处于目标状态时,确定所有训练单元均完成本轮训练,因此可以确定检测到更新事件。本实施例并不限定第一状态缓存是否处于目标状态的检测方法,例如可以将各个第一状态缓存中的有效比特位进行与计算,当结果为1时,说明第一状态缓存处于目标状态,当结果不为1时,说明第一状态缓存不处于目标状态。
在另一种实施方式中,可以在获取到当前参数值或生成本地参数信息后执行S304、S305和S306步骤,在检测更新事件时,仅执行S307步骤。
S308:对更新参数信息对应的待更新参数进行更新。
本步骤中的具体内容可以参考上述实施例,本实施例在此不再赘述。
具体的,即在本地训练单元上执行allreduce操作,完成待更新参数的更新。
S309:利用各个待更新参数的当前参数值,对待更新参数对应的历史参数值进行更新。
在对待更新参数进行更新过后,还需要对历史参数值进行更新,以便在后续轮数的训练过后进行有效性检测。
S310:利用各个未更新参数对应的历史参数值,对未更新参数对应的当前参数值进行更新。
需要说明的是,对于未更新参数,即各个无效的目标参数,本实施例中需要将其对应的呢参数值还原值历史参数值,以便保证各个训练单元上模型的统一。
S311:将待更新参数确定为目标参数。
在更新结束后,需要对目标参数的范围进行修改,将待更新参数确定为目标参数以便进行下一轮训练和更新,将未更新参数从目标参数中剔除,无需对其进行训练和更新,减少下一轮训练中目标参数的数量,在每个参数训练和更新所需时长大致相同的情况下,通过减少目标参数的数量即可减少训练所需的时间,进而提高训练的效率。
下面对本发明实施例提供的分布式训练参数更新装置进行介绍,下文描述的分布式训练参数更新装置与上文描述的分布式训练参数更新方法可相互对应参照。
请参考图4,图4为本发明实施例提供的一种分布式训练参数更新装置的结构示意图,包括:
获取模块410,用于获取各个目标参数对应的当前参数值;
本地参数信息生成模块420,用于对各个当前参数值进行有效性检测,并根据检测结果生成本地参数信息;
更新参数信息生成模块430,用于获取各个其他训练单元分别对应的各个其他参数信息,并利用本地参数信息和其他参数信息生成更新参数信息;
更新模块440,用于当检测到更新事件时,对更新参数信息对应的待更新参数进行更新。
可选地,本地参数信息生成模块420,包括:
第一判断单元,用于判断当前参数值是否处于第一阈值区间;
第一确定单元,用于若当前参数值处于第一阈值区间,则确定当前参数值对应的有效比特位为0;
差值计算单元,用于若当前参数值不处于第一阈值区间,则获取历史参数值,并利用当前参数值和历史参数值计算参数差值;
第二判断单元,用于判断参数差值是否处于第二阈值区间;
第二确定单元,用于若参数差值处于第二阈值区间,则确定当前参数值对应的有效比特位为0;
第三确定单元,用于若参数差值不处于第二阈值区间,则确定当前参数值对应的有效比特位为1;
构成单元,用于利用各个目标参数对应的有效比特位构成本地参数信息。
可选地,更新参数信息生成模块430,包括:
或计算单元,用于利用各个其他参数信息与本地参数信息进行逐位或计算,得到更新参数信息。
可选地,还包括:
历史参数值更新模块,用于利用各个待更新参数的当前参数值,对待更新参数对应的历史参数值进行更新;
未更新参数更新模块,用于利用各个未更新参数对应的历史参数值,对未更新参数对应的当前参数值进行更新;
目标参数确定模块,用于将待更新参数确定为目标参数。
可选地,更新模块440,包括:
存在判断单元,用于判断是否存在第一状态缓存;
状态缓存更新单元,用于若存在,则更新第一状态缓存,并更新各个分别位于其他训练单元中的第二状态缓存;
状态缓存获取单元,用于若不存在,则向目标节点发送更新请求,并获取目标节点发送的第一状态缓存;
第一更新事件确定单元,用于当检测到第一状态缓存处于目标状态时,确定检测到更新事件。
可选地,还包括:
参数信息发送模块,用于将本地参数信息发送给其他训练单元;
相应的,更新参数信息生成模块430,包括:
参数信息获取单元,用于获取各个其他训练单元发送的其他参数信息。
可选地,更新模块440,包括:
第二更新事件确定单元,用于当检测到目标节点发送的更新指令后,确定检测到更新事件。
下面对本发明实施例提供的分布式训练参数更新设备进行介绍,下文描述的分布式训练参数更新设备与上文描述的分布式训练参数更新方法可相互对应参照。
请参考图5,图5为本发明实施例提供的一种分布式训练参数更新设备的结构示意图。其中分布式训练参数更新设备500可以包括处理器501和存储器502,还可以进一步包括多媒体组件503、信息输入/信息输出(I/O)接口504以及通信组件505中的一种或多种。
其中,处理器501用于控制分布式训练参数更新设备500的整体操作,以完成上述的分布式训练参数更新方法中的全部或部分步骤;存储器502用于存储各种类型的数据以支持在分布式训练参数更新设备500的操作,这些数据例如可以包括用于在该分布式训练参数更新设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于分布式训练参数更新设备500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
分布式训练参数更新设备500可以被一个或多个应用专用集成电路(ApplicationSpecific Integrated Circuit,简称ASIC)、数字信号处理器(Digital SignalProcessor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的分布式训练参数更新方法。
下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的分布式训练参数更新方法可相互对应参照。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的分布式训练参数更新方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上对本发明所提供的分布式训练参数更新方法、分布式训练参数更新装置、分布式训练参数更新设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种分布式训练参数更新方法,其特征在于,包括:
获取各个目标参数对应的当前参数值;
对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息;
获取各个其他训练单元分别对应的各个其他参数信息,并利用所述本地参数信息和所述其他参数信息生成更新参数信息;
当检测到更新事件时,对所述更新参数信息对应的待更新参数进行更新;
所述对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息,包括:
判断所述当前参数值是否处于第一阈值区间;
若所述当前参数值处于所述第一阈值区间,则确定所述当前参数值对应的有效比特位为0;
若所述当前参数值不处于所述第一阈值区间,则获取历史参数值,并利用所述当前参数值和所述历史参数值计算参数差值;
判断所述参数差值是否处于第二阈值区间;
若所述参数差值处于所述第二阈值区间,则确定所述当前参数值对应的所述有效比特位为0;
若所述参数差值不处于所述第二阈值区间,则确定所述当前参数值对应的所述有效比特位为1;
利用各个所述目标参数对应的所述有效比特位构成所述本地参数信息;
所述利用所述本地参数信息和所述其他参数信息生成更新参数信息,包括:
利用各个所述其他参数信息与所述本地参数信息进行逐位或计算,得到所述更新参数信息;
所述当检测到更新事件,包括:
判断是否存在第一状态缓存;
若存在,则更新所述第一状态缓存,并更新各个分别位于所述其他训练单元中的第二状态缓存;
若不存在,则向目标节点发送更新请求,并获取所述目标节点发送的所述第一状态缓存;
当检测到所述第一状态缓存处于目标状态时,确定检测到所述更新事件。
2.根据权利要求1所述的分布式训练参数更新方法,其特征在于,在所述对所述更新参数信息对应的待更新参数进行更新之后,还包括:
利用各个所述待更新参数的所述当前参数值,对所述待更新参数对应的历史参数值进行更新;
利用各个未更新参数对应的所述历史参数值,对所述未更新参数对应的所述当前参数值进行更新;
将所述待更新参数确定为所述目标参数。
3.根据权利要求1所述的分布式训练参数更新方法,其特征在于,在所述根据检测结果生成本地参数信息之后,还包括:
将所述本地参数信息发送给所述其他训练单元;
相应的,所述获取各个其他训练单元分别对应的其他参数信息,包括:
获取各个所述其他训练单元发送的所述其他参数信息。
4.根据权利要求1所述的分布式训练参数更新方法,其特征在于,所述当检测到更新事件,包括:
当检测到所述目标节点发送的更新指令后,确定检测到所述更新事件。
5.一种分布式训练参数更新装置,其特征在于,包括:
获取模块,用于获取各个目标参数对应的当前参数值;
本地参数信息生成模块,用于对各个所述当前参数值进行有效性检测,并根据检测结果生成本地参数信息;
更新参数信息生成模块,用于获取各个其他训练单元分别对应的各个其他参数信息,并利用所述本地参数信息和所述其他参数信息生成更新参数信息;
更新模块,用于当检测到更新事件时,对所述更新参数信息对应的待更新参数进行更新;
本地参数信息生成模块,包括:
第一判断单元,用于判断当前参数值是否处于第一阈值区间;
第一确定单元,用于若当前参数值处于第一阈值区间,则确定当前参数值对应的有效比特位为0;
差值计算单元,用于若当前参数值不处于第一阈值区间,则获取历史参数值,并利用当前参数值和历史参数值计算参数差值;
第二判断单元,用于判断参数差值是否处于第二阈值区间;
第二确定单元,用于若参数差值处于第二阈值区间,则确定当前参数值对应的有效比特位为0;
第三确定单元,用于若参数差值不处于第二阈值区间,则确定当前参数值对应的有效比特位为1;
构成单元,用于利用各个目标参数对应的有效比特位构成本地参数信息;
更新参数信息生成模块,包括:
或计算单元,用于利用各个其他参数信息与本地参数信息进行逐位或计算,得到更新参数信息;
更新模块,包括:
存在判断单元,用于判断是否存在第一状态缓存;
状态缓存更新单元,用于若存在,则更新第一状态缓存,并更新各个分别位于其他训练单元中的第二状态缓存;
状态缓存获取单元,用于若不存在,则向目标节点发送更新请求,并获取目标节点发送的第一状态缓存;
第一更新事件确定单元,用于当检测到第一状态缓存处于目标状态时,确定检测到更新事件。
6.一种分布式训练参数更新设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至4任一项所述的分布式训练参数更新方法。
7.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的分布式训练参数更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412624.XA CN111626434B (zh) | 2020-05-15 | 2020-05-15 | 一种分布式训练参数更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010412624.XA CN111626434B (zh) | 2020-05-15 | 2020-05-15 | 一种分布式训练参数更新方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111626434A CN111626434A (zh) | 2020-09-04 |
CN111626434B true CN111626434B (zh) | 2022-06-07 |
Family
ID=72260641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010412624.XA Active CN111626434B (zh) | 2020-05-15 | 2020-05-15 | 一种分布式训练参数更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111626434B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112340609B (zh) * | 2020-11-25 | 2023-06-16 | 广州三叠纪元智能科技有限公司 | 参数信息的配置方法、电箱、服务器和存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103869818A (zh) * | 2014-02-27 | 2014-06-18 | 中国船舶重工集团公司第七一〇研究所 | 一种水下无人航行器处理器参数调整方法 |
CN105431848A (zh) * | 2014-07-14 | 2016-03-23 | 三菱电机株式会社 | 共通参数接口生成程序以及参数读入程序 |
CN107341132A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行AdaGrad梯度下降训练算法的装置和方法 |
CN107341540A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行Hessian-Free训练算法的装置和方法 |
US10152676B1 (en) * | 2013-11-22 | 2018-12-11 | Amazon Technologies, Inc. | Distributed training of models using stochastic gradient descent |
CN109005061A (zh) * | 2018-08-03 | 2018-12-14 | 深圳市科陆电子科技股份有限公司 | 参数管理方法、装置及存储介质 |
CN109165515A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数获取方法、系统及可读存储介质 |
JP2019040414A (ja) * | 2017-08-25 | 2019-03-14 | 日本電信電話株式会社 | 学習装置及び学習方法 |
CN110378472A (zh) * | 2019-07-24 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种深度神经网络模型的数据并行训练方法、装置及设备 |
CN110633798A (zh) * | 2019-09-12 | 2019-12-31 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中参数更新方法及装置 |
CN110928889A (zh) * | 2019-10-23 | 2020-03-27 | 深圳市华讯方舟太赫兹科技有限公司 | 训练模型更新方法、设备以及计算机存储介质 |
CN110928262A (zh) * | 2019-12-17 | 2020-03-27 | 中国人民解放军火箭军工程大学 | 时变系统下高效更新模型的质量相关故障在线监控方法 |
CN111047050A (zh) * | 2019-12-17 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种分布式并行训练方法、设备以及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6704583B2 (ja) * | 2016-12-27 | 2020-06-03 | 株式会社デンソーアイティーラボラトリ | 学習システムおよび学習方法 |
US11170320B2 (en) * | 2018-07-19 | 2021-11-09 | Adobe Inc. | Updating machine learning models on edge servers |
-
2020
- 2020-05-15 CN CN202010412624.XA patent/CN111626434B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152676B1 (en) * | 2013-11-22 | 2018-12-11 | Amazon Technologies, Inc. | Distributed training of models using stochastic gradient descent |
CN103869818A (zh) * | 2014-02-27 | 2014-06-18 | 中国船舶重工集团公司第七一〇研究所 | 一种水下无人航行器处理器参数调整方法 |
CN105431848A (zh) * | 2014-07-14 | 2016-03-23 | 三菱电机株式会社 | 共通参数接口生成程序以及参数读入程序 |
CN107341132A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行AdaGrad梯度下降训练算法的装置和方法 |
CN107341540A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行Hessian-Free训练算法的装置和方法 |
JP2019040414A (ja) * | 2017-08-25 | 2019-03-14 | 日本電信電話株式会社 | 学習装置及び学習方法 |
CN109005061A (zh) * | 2018-08-03 | 2018-12-14 | 深圳市科陆电子科技股份有限公司 | 参数管理方法、装置及存储介质 |
CN109165515A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数获取方法、系统及可读存储介质 |
CN110378472A (zh) * | 2019-07-24 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种深度神经网络模型的数据并行训练方法、装置及设备 |
CN110633798A (zh) * | 2019-09-12 | 2019-12-31 | 北京金山数字娱乐科技有限公司 | 一种分布式训练中参数更新方法及装置 |
CN110928889A (zh) * | 2019-10-23 | 2020-03-27 | 深圳市华讯方舟太赫兹科技有限公司 | 训练模型更新方法、设备以及计算机存储介质 |
CN110928262A (zh) * | 2019-12-17 | 2020-03-27 | 中国人民解放军火箭军工程大学 | 时变系统下高效更新模型的质量相关故障在线监控方法 |
CN111047050A (zh) * | 2019-12-17 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种分布式并行训练方法、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
"分布式随机梯度下降算法研究";唐淳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180815;I140-48 * |
Also Published As
Publication number | Publication date |
---|---|
CN111626434A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263116B2 (en) | Champion test case generation | |
US11656845B2 (en) | Dot product calculators and methods of operating the same | |
CN102902581B (zh) | 硬件加速器及方法、中央处理单元、计算设备 | |
US20200298130A1 (en) | Ai parameter configuration method and apparatus for racing ai model, ai parameter configuration device, and storage medium | |
CN107748915A (zh) | 深度神经网络dnn模型的压缩方法、装置、设备及介质 | |
EP3671575A2 (en) | Neural network processing method and apparatus based on nested bit representation | |
CN111626434B (zh) | 一种分布式训练参数更新方法、装置、设备及存储介质 | |
CN113033719B (zh) | 目标检测处理方法、装置、介质及电子设备 | |
CN111105016A (zh) | 一种数据处理方法、装置、电子设备及可读存储介质 | |
CN115145391B (zh) | 一种基于ai深度学习的虚拟现实跑步机自适应方法及系统 | |
CN116703131A (zh) | 电力资源分配方法、装置、电子设备和计算机可读介质 | |
CN117077608A (zh) | 电源开关单元的连接方法、装置、电子设备及存储介质 | |
CN112380883B (zh) | 模型训练方法、机器翻译方法、装置、设备及存储介质 | |
CN113673476A (zh) | 人脸识别模型训练方法、装置、存储介质与电子设备 | |
CN115200584B (zh) | 一种路径规划方法、装置、设备及可读存储介质 | |
US20220318572A1 (en) | Inference Processing Apparatus and Inference Processing Method | |
CN111414343A (zh) | 日志写入方法、装置、电子设备和介质 | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络系统和方法 | |
CN112489644B (zh) | 用于电子设备的语音识别方法及装置 | |
CN114093370A (zh) | 声纹识别方法、装置、计算机设备和存储介质 | |
CN114138683A (zh) | 主机内存访问方法、装置、电子设备及存储介质 | |
CN111340215B (zh) | 一种网络模型推理加速方法、装置、存储介质和智能设备 | |
CN106959969B (zh) | 一种数据处理方法及装置 | |
CN108875086B (zh) | 一种uri路径资源的匹配方法及系统 | |
CN115759260B (zh) | 深度学习模型的推理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |