第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 分布式机器学习训练方法 装置 计算机设备和存储介质与流程

分布式机器学习训练方法 装置 计算机设备和存储介质与流程

时间:2022-11-16 22:11:44

相关推荐

分布式机器学习训练方法 装置 计算机设备和存储介质与流程

本申请涉及机器学习技术领域,尤其涉及一种分布式机器学习训练方法、装置、计算机设备和存储介质。

背景技术:

机器学习在很多领域取得了空前的成功,也因此彻底改变了人工智能的发展方向。大数据时代的到来一方面促进了机器学习的快速发展,另一方面也给机器学习带来了前所未有的新挑战。而在这些发展与挑战中,分布式机器学习应运而生,并成功解决了大量具有挑战性的关键问题,例如,数据量庞大和模型巨大导致的机器学习困难等问题。

目前,常用到的分布式机器学习算法为基于通讯环架构的分布式机器学习算法,应用该架构的分布式机器学习算法的节点被布置在一个逻辑通讯环路中,在一个迭代过程,每个节点完成自己的参数集的训练。对于包含n个节点的环,各个节点需要收到其它n-1个节点训练得到的数据后就可以更新模型参数,完成训练。

但是,在实际应用中,通讯环架构中的节点通常会出现故障,当节点出现故障时,将导致通讯环架构的分布式机器学习训练中断,需要人工介入回复故障,这样的方法导致上述基于通讯环架构的分布式机器学习方法存在训练时间过长,且训练效率低下的问题。

技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够有效缩短训练时间的分布式机器学习训练方法、装置、计算机设备和存储介质。

第一方面,一种分布式机器学习训练方法,该方法应用于训练网络,训练网络包括多个节点组成的通讯环,所述方法包括:

各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点;

若出现故障节点,则所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集;

基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

在其中一个实施例中,重新建立新的通讯环和新的参数集,包括:

判断故障节点的类型;

若故障节点的类型为从节点,则所有节点停止训练初始参数,并启动第一修复流程重新建立新的通讯环和新的参数集;第一修复流程用于修复从节点类型的故障;

若故障节点的类型为主节点,则启动第二修复流程重新建立新的通讯环和新的参数集;第二修复流程用于修复主节点类型的故障。

在其中一个实施例中,启动第一修复流程重新建立新的通讯环和新的参数集,包括:

主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环;

主节点将停止训练时刻保存的训练参数集作为新的参数集。

在其中一个实施例中,主节点重新选择除故障节点之外的目标从节点,包括:

主节点广播重建信息,并接收通讯环中的除故障节点之外的从节点根据重建信息上报的节点信息;

主节点根据各其它从节点根据重建信息上报的节点信息确定目标从节点。

在其中一个实施例中,启动第二修复流程重新建立新的通讯环和新的参数集,包括:

通讯环中的所有从节点采用预设的共识算法重新竞选主节点,得到新的主节点;

所有从节点停止训练初始参数,新的主节点重新建立新的通讯环和新的参数集。

在其中一个实施例中,新的主节点重新获取新的通讯环和新的参数集,包括:

新的主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环;

新的主节点上将停止训练时刻保存下来的训练参数集作为新的参数集。

在其中一个实施例中,新的主节点重新选择除故障节点之外的目标从节点,包括:

新的主节点广播重建信息,并接收通讯环中的除故障节点之外的从节点根据重建信息上报的节点信息;

新的主节点根据各、从节点上报的节点信息确定目标从节点。

在其中一个实施例中,重新建立新的通讯环和新的参数集,包括:

除故障节点之外的各节点重新竞选主节点,得到新的主节点;

除故障节点之外的各节点停止训练,新的主节点重新选择新的从节点,并根据新的从节点建立新的通讯环;

新的主节点将停止训练时刻保存的训练参数集作为新的参数集。

在其中一个实施例中,各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点,包括:

各节点调用各自的守护进程中的训练进程对各自对应的初始参数集进行训练;所述守护进程包括所述训练进程和共识进程;

各节点调用各自的共识进程监测通讯环中是否出现故障节点。

第二方面,一种分布式机器学习训练装置,所述装置包括:

训练和监测模块,用于各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点;

故障修复模块,用于在出现故障节点时,所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集;

重新训练模块,用于基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面任一实施例所述的分布式机器学习训练方法。

第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一实施例所述的分布式机器学习训练方法。

本申请提供的一种分布式机器学习训练方法、装置、计算机设备和存储介质,通过各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点,若出现故障节点,则所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集,然后基于新的通讯环,并将新的参数集替代原来的初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。在上述训练方法中,由于各节点可以实时监测通讯环是否发生故障,并在发生故障时,可以自动重新建立新的通讯环和新的参数集,相当于自动排除故障,再进一步的以新的通讯环和新的参数集进行训练,以继续完成发生故障时的训练过程。本申请提供的训练方法不需要人工介入修复通讯环中的故障,可以自动修复故障,完成训练。因此,本申请提供的训练方法可以解决传统训练过程中因人工判断故障和修复故障导致的训练时间过长的问题,极大的缩短了训练时间,以及提高了训练效率。

附图说明

图1为一个实施例提供的一种分布式训练网络的结构示意图;

图2为一个实施例提供的一种分布式机器学习训练方法的流程图;

图3为图2实施例中s102的另一种实现方式的流程图;

图4为图3实施例中s202的另一种实现方式的流程图;

图4a为一个实施例提供的通讯环的示意图;

图5为图4实施例中s301的另一种实现方式的流程图;

图6为图3实施例中s203的另一种实现方式的流程图;

图7为图6实施例中s502的另一种实现方式的流程图;

图8为图7实施例中s601的另一种实现方式的流程图;

图9为一个实施例提供的一种分布式机器学习训练方法的流程图;

图10为一个实施例提供的一种分布式机器学习训练方法的流程图;

图11为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图12为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图13为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图14为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图15为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图16为一个实施例提供的一种分布式机器学习训练装置的结构示意图;

图17为一个实施例提供的一种计算机设备的内部结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请提供的分布式机器学习训练方法,可以应用于如图1所示的分布式训练网络中,该分布式训练网络包括多个节点(图中为节点a、节点b、节点c、节点d、节点e),多个节点通过有线或无线的方式组成通讯环oo,各节点之间可以相互通讯。其中,各节点可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等能够与其它设备进行有线或无线通讯的设备。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图2为一个实施例提供的一种分布式机器学习训练方法的流程图,该方法的执行主体为图1中的各节点,该方法涉及的是各节点训练参数的具体过程。如图2所示,该方法具体包括以下步骤:

s101、各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点。

其中,初始参数集为待训练的参数集,其可以预先由节点定义,也可以预先由节点获取。节点上预先构建用于训练所述初始参数集需要的机器学习模型,在实际应用中采用构建的机器学习模型对输入的初始参数集进行训练。通讯环为一个由多个节点构成的收尾相连接的环状通信链路,通讯环上的每个节点均基于初始参数集进行训练。

本实施例中,在利用图1所示的分布式训练网络进行训练之前,需要配置完成机器学习训练环境,即,使用于机器学习训练的网络结构中的各节点能够正常连接,并拥有互相登录和通讯的能力。当准备完成机器学习训练环境之后,即可启动网络结构中的各节点对各自对应的初始参数集进行训练,在此过程中,各节点可以预先获取初始参数集;可选的,也可以预先由其中的一个节点获取到初始参数集,再由该节点下发给其它节点该初始参数集。在训练的过程中,各节点还可以同时监测通讯环中的各节点的健康状态,即通讯环是否出现故障节点。需要说明的是,每个节点都可以监测其它节点的健康状态,一旦出现故障节点,发现故障的节点即可告知其它节点。另外,在各节点监测通讯环是否出现故障节点时,可以通过监测各节点上的每一步训练的时间长度是否满足预设时间长度确定各节点是否出现故障,例如,若存在一个节点上的训练时间长度超过预设时间长度,则判断对应的该节点为故障节点;可选的,在各节点监测通讯环是否出现故障节点时,也可以通过监测各节点发送信号的强度是否满足预设强度确定各节点是否出现故障,例如,若存在一个节点发送的信号强度小于预设强度,则判断对应的该节点为故障节点。监测各节点是否为故障节点的方式可以包括多种,在此本实施例仅举例说明两种,对于其它类型的监测方法,本申请也可以采用,只要能够监测到通讯环中出现故障节点即可。

s102、若出现故障节点,重新建立新的通讯环和新的参数集。

其中,故障节点表示通讯环中发生故障的节点,其可以是通讯环中的任意节点。本实施例涉及节点监测到通讯环中出现故障节点的情况,在该情况下,网络结构中的所有节点可以重新找到非故障节点,并在找到非故障节点后停止训练,以及基于非故障节点重新建立新的通讯环,以便之后基于该新的通讯环进行训练;同时,新的通讯环中的各节点还需要重新获取到新的参数集,并基于新的参数集进行训练,以继续之前的训练过程,实现完成整个训练过程,并不需要重新对初始参数集开始训练。

s103、基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

本实施例中,当各节点基于s102的步骤建立新的通讯环和新的参数集后,可以进一步的返回步骤s101,实现使用新的通讯环对新的参数集进行训练,同时实时监测新的通讯环中是否出现故障节点,直到初始参数集被训练完成为止,即新的通讯环中的所有节点完成训练任务为止,以达到训练目标

本实施例提供的一种分布式机器学习训练方法,通过各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点,若出现故障节点,则重新建立新的通讯环和新的参数集,然后基于新的通讯环,并将新的参数集替代原来的初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。在上述训练方法中,由于各节点可以实时监测通讯环是否发生故障,并在发生故障时,可以自动重新建立新的通讯环和新的参数集,相当于自动排除故障,再进一步的以新的通讯环和新的参数集进行训练,以继续完成发生故障时的训练过程。本申请提供的训练方法不需要人工介入修复通讯环中的故障,可以自动修复故障,完成训练。因此,本申请提供的训练方法可以解决传统训练过程中因人工判断故障和修复故障导致的训练时间过长的问题,极大的缩短了训练时间,以及提高了训练效率。

在一个实施例中,图3为图2实施例中s102的另一种实现方式的流程图,如图3所示,上述s102中的“重新建立新的通讯环和新的参数集”,具体包括:

s201、判断故障节点的类型,若故障节点的类型为从节点,则执行步骤s202,若故障节点的类型为主节点,则执行步骤s203。

其中,故障节点的类型包括从节点和主节点。当各节点监测到通讯环中出现故障节点时,可以进一步的判断出现故障节点的类型,然后根据不同类型的故障节点执行不同的故障修复操作,以便能够根据实际应用情况快速修复故障,从而重新建立新的通讯环和新的参数集,以正常完成训练。可选的,在实际应用中,通讯环中的从节点可以只需要监测主节点是否发生故障,主节点则需要监测所有节点是否发生故障。

s202、所有节点停止训练初始参数,并启动第一修复流程重新建立新的通讯环和新的参数集;第一修复流程用于修复从节点类型的故障。

本实施例涉及故障节点的类型为从节点的类型的故障修复方法,即,各节点上预先设置有用于修复从节点类型的故障的第一修复流程,当各节点监测到通讯环中出现故障节点,以及判断出该故障节点的类型为从节点的类型的故障时,主节点通告通讯环中的所有节点停止训练,并停止自身的训练,以及保存停止训练时刻已训练好的参数,等待通讯环的修复。即,立即启动第一修复流程,执行修复故障的操作,以便快速修复故障,在故障修复的过程中重新建立新的通讯环和新的参数集,以使各节点能够基于新的通讯环和新的参数集正常完成训练。

s203、启动第二修复流程重新建立新的通讯环和新的参数集;第二修复流程用于修复主节点类型的故障。

本实施例涉及故障节点的类型为主节点的类型的故障修复方法,即,各节点上预先设置有用于修复主节点类型的故障的第二修复流程,当各节点监测到通讯环中出现故障节点,以及判断出该故障节点的类型为主节点的类型的故障时,可以立即启动第二修复流程,执行修复的操作,以便快速修复故障,在故障修复的过程中重新建立新的通讯环和新的参数集,以使各节点能够基于新的通讯环和新的参数集正常完成训练。需要说明的是,主节点发生故障时,该通讯环中的从节点并不停止训练,直到新的主节点确定,并需要重新建立新的通信环和参数集时,才停止训练。

上述实施例中,各节点可以通过判断故障节点的类型,选择不同类型对应的不同修复流程修复通讯环中的故障,极大的提高了故障修复的效率。

在一种应用场景中,基于图3实施例,本申请提供了第一修复流程包含的步骤,图4为图3实施例中s202的另一种实现方式的流程图,如图4所示,上述s202中的“启动第一修复流程重新建立新的通讯环和新的参数集”,具体包括:

s301、主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环。

其中,目标从节点为组成新的通讯环的节点,为非故障节点。本实施例中,当基于s201的步骤判断出故障节点的类型为从节点时,说明通讯环中的原有主节点没有发生故障,此时,可以继续使用该主节点。该主节点需要重新从除故障节点之外的其它节点中选择出目标从节点,之后主节点连接这多个目标从节点,建立新的通讯环。例如,假设如图1所示的分布式训练网络中的故障节点为节点c,且节点c为从节点,则主节点a重新建立的通讯环可以为通讯环01,其上包括节点a、节点b、节点d、节点e。

s302、主节点将停止训练时刻保存的训练参数集作为新的参数集。

在实际应用中,通讯环中的各节点在停止训练时,各节点可以自动保存停止训练时刻已经训练好的训练参数集,以便之后在故障修复后各节点基于该训练参数集继续进行训练,不需要重新对初始参数集进行训练,以提高训练效率和缩短训练时间。因此,基于该应用情况下,当故障修复,建立的新的通讯环中的各节点需要继续完成训练时,主节点可以将其在停止训练时刻保存的训练参数集作为新的参数集,并将该新的参数集下发到新的通讯环中的各从节点上,以使新的通讯环中的所有节点可以正常进行参数训练。

进一步地,本申请提供了主节点重新选择目标从节点的步骤,图5为图4实施例中s301的另一种实现方式的流程图,如图5所示,上述s301中的“主节点重新选择除故障节点之外的目标从节点”,具体包括:

s401、主节点广播重建信息,并接收通讯环中的其它从节点根据重建信息上报的节点信息。

其中,节点信息表征节点的健康状态或连接状态,主节点可以通过分析该节点信息判断从节点是否出现故障或从节点是否正常连接,例如,节点信息可以包括心跳信息,信号信息等。重建信息用于指示通讯环中的从节点向主节点上报自身的节点信息,以便主节点根据各节点的节点信息判断各节点的健康状态或连接状态。本实施例中,当主节点需要重新建立通讯环时,可以先广播重建信息,没有发生故障的所有从节点在接收到该重建信息时,会向该主节点上报自身的节点信息,以告知主节点自身的有效性,表明自身处于健康状态或正常连接状态。主节点接收各从节点上报的节点信息,以便之后判断各从节点的健康状态时使用。

s402、主节点根据各从节点根据重建信息上报的节点信息确定目标从节点。

当主节点接收到各从节点上报的节点信息后,可以通过分析各从节点的节点信息,判断出各从节点的健康状态或连接状态,并将处于健康状态或正常连接状态的从节点确定为目标从节点,以便之后使用目标从节点建立新的通讯环。

在一种应用场景中,基于图3实施例,本申请提供了第二修复流程包含的步骤,图6为图3实施例中s203的另一种实现方式的流程图,如图6所示,上述s203中的“启动第二修复流程重新建立新的通讯环和新的参数集”,具体包括:

s501、通讯环中的所有从节点采用预设的共识算法重新竞选主节点,得到新的主节点。

本实施例中,当基于s201的步骤判断出故障节点的类型为主节点时,说明通讯环中的原有主节点发生故障,此时,该通讯环中的原有主节点无法使用,需要重新确定一个非故障的主节点。重新选择新的主节点的过程为:通讯环中的所有非故障的从节点可以相应的采用预设的共识算法,在各从节点之间达成共识,以重新竞选主节点,得到新的主节点,以便之后使用。需要说明的是,在上述竞选主节点的过程中,原来通讯环中的从节点没有停止训练,还在继续训练,即各从节点上的竞选过程并不影响各从节点上的训练过程。

s502、所有从节点停止训练初始参数,新的主节点重新建立新的通讯环和新的参数集。

当通讯环中的新的主节点被确定后,该新的主节点即可重新建立新的通讯环和新的参数集,以便之后新的通讯环中的各节点可以基于新的参数集进行训练,以完成整个训练任务。需要说明的是,在判断各节点基于s201的步骤判断出故障节点的类型为主节点时,原来通讯环中的各从节点未停止训练,还在继续训练初始参数,直到通讯环中的新的主节点被确定后,即s501的步骤执行完成后,新的主节点通知所有从节点停止训练,并将停止训练后的参数集保存下来,等待新的主节点确定新的通讯环和新的参数集,以便之后根据新的通信环和新的参数集进行训练,以完成整个训练任务。

进一步地,本申请提供了新的主节点重新建立新的通讯环和新的参数集的步骤,图7为图6实施例中s502的另一种实现方式的流程图,如图7所示,上述s502中的“新的主节点重新建立新的通讯环和新的参数集”,具体包括:

s601、新的主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环。

本实施例涉及新的主节点重新建立通讯环的过程,该过程与前述s301的步骤所述的建立通讯环的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

s602、新的主节点上将停止训练时刻保存下来的训练参数集作为新的参数集。

本实施例涉及新的主节点重新获取新的参数集的过程,该过程与前述s302的步骤所述的获取参数集的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

进一步地,本申请提供了新的主节点重新建立新的通讯环和新的参数集的步骤,图8为图7实施例中s601的另一种实现方式的流程图,如图8所示,上述s601中的“新的主节点重新选择除故障节点之外的目标从节点”,具体包括:

s701、新的主节点广播重建信息,并接收通讯环中的除故障节点之外的从节点根据重建信息上报的节点信息。

s702、新的主节点根据各从节点上报的节点信息确定目标从节点。

图8实施例涉及新的主节点重新选择目标从节点的过程,该过程与前述图5实施例所述的主节点重新选择目标从节点的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

在实际应用中,当分布式训练网络中的各节点监测到故障节点时,还可以采用如下故障修复流程,如图9所示,该方法包括:

s801、除故障节点之外的各节点重新竞选主节点,得到新的主节点。

本实施例涉及通讯环中出现故障节点时重新竞选主节点的过程,该过程与前述s501的步骤所述的重新竞选主节点的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

s802、除故障节点之外的各节点停止训练,新的主节点重新选择新的从节点,并根据新的从节点建立新的通讯环。

本实施例涉及新的主节点重新建立通讯环的过程,该过程与前述s301的步骤所述的建立通讯环的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

s803、新的主节点将停止训练时刻保存的训练参数集作为新的参数集。

本实施例涉及新的主节点重新获取新的参数集的过程,该过程与前述s302的步骤所述的获取参数集的过程相同,详细内容请参见前述说明,在此不重复累赘说明。

上述实施例提出的方案是,当通讯环中出现故障节点时,训练网络中的各非故障节点立即重新竞选新的主节点,然后由新的主节点决定新的通讯环和获取新的参数集,然后基于新的通讯环和获取新的参数集进行训练。该方法也实现了故障的自动修复和重新训练,极大的缩短了训练时间,以及提高了训练效率。

需要说明的是,在实际应用中,如图10所示,图2实施例中的步骤s101在具体被执行时,可以具体包括:

s901、各节点调用各自的守护进程中的训练进程对各自对应的初始参数集进行训练;守护进程包括训练进程和共识进程;。

其中,守护进程为预先根据相应的控制算法编写的应用程序的进程,该守护进程用于控制训练进程的启动和停止、共识进程的启动和停止、以及训练进程与共识进程之间的交互过程。训练进程为预先根据相应的训练算法编写的应用程序的进程。当各节点需要配合进行分布式训练时,各节点可以直接调用各自的守护进程启动训练进程执行其上的训练算法,实现对输入的初始参数集的训练。

s902、各节点调用各自的共识进程监测通讯环中是否出现故障节点。

其中,共识进程为预先根据相应的共识算法编写的应用程序的进程,其可以用于监测通讯环中各节点的健康状态,也可以用于启动故障修复流程修复故障,还可以用于重新竞选新的主节点,以及重新建立新的通讯环,还可以重新获取新的参数集等。当各节点在训练初始参数集时,各节点可以调用各自的守护进程可以同时启动共识进程执行其上的共识算法,使各节点达成共识,以执行监测各节点的健康状态、重新竞选新的主节点、重新建立新的通讯环、重新获取新的参数集等工作。

需要特别说明的是,在实际应用中,当新的主节点上的共识进程需要重新获取新的参数集时,该新的主节点上的守护进程可以先获取到训练进程上该节点停止训练后保存的已训练好的参数集,然后守护进程再将获取到的已训练好的参数集提供给共识进程,以便该新的主节点上的共识进程能够正常获取到新的参数集,并将新的参数集派发到新的通讯环中的各从节点上进行训练。

上述实施例说明,本申请提出的分布式机器学习训练方法在应用于分布式训练网络时,可以具体设置守护进程完成分布式机器学习训练,且守护进程包括两种类型的进程,即训练进程和共识进程,守护进程通过控制两个进程协调工作共同完成分布式机器学习训练。在训练过程中,训练进程与共识进程可以被并行调用,实现在训练的同时还可以实时监测网络中各节点的健康状态。在故障发生时,由共识进行完成故障修复,进而能够在故障修复后继续训练,直到整个网络中的所有节点完成训练为止。另外,在故障发生,且故障节点为主节点时,各从节点上的共识进程在完成竞选新的主节点的任务时,各从节点上的训练进程还在并行执行训练任务,并没有停止训练,直到新的主节点被选出来,且需要新的主节点重建通讯环和参数集时,各从节点才停止训练进程。

需要说明的是,共识进程在各节点启动时,可以通过相应的共识算法使各节点达成共识,以能够使所有节点能够正常协商竞选的新节点,或获取新的参数集,或决定目标从节点,或决定新的从节点等工作。本申请提供的分布式机器学习训练方法通过共识进程的设置,实现了在网络中任一节点发生故障时,都能够自动启动故障修复流程重新建立新的通讯环和新的参数集,继续完成训练。相比于传统的训练方法需要人工修复故障的方法,本申请提供的分布式机器学习训练方法节省了人工修复故障占用的大量时间,极大的节省了训练时间,进而提高了训练效率。

应该理解的是,虽然图2-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行。

在一个实施例中,如图11所示,提供了一种分布式机器学习训练装置,包括:训练和监测模块11、故障修复模块12和重新训练模块13,其中:

训练和监测模块11,用于各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点;

故障修复模块12,用于在出现故障节点时,所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集;

重新训练模块13,用于基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

在一个实施例中,如图12所示,上述故障修复模块12包括:判断单元121、第一修复单元122和第二修复单元123,其中:

判断单元121,用于判断故障节点的类型;

第一修复单元122,用于在故障节点的类型为从节点时,所有节点停止训练初始参数,并启动第一修复流程重新建立新的通讯环和新的参数集;第一修复流程用于修复从节点类型的故障;

第二修复单元123,用于在故障节点的类型为主节点时,启动第二修复流程重新建立新的通讯环和新的参数集;第二修复流程用于修复主节点类型的故障。

在一个实施例中,如图13所示,上述第一修复单元122具体包括:第一选择子单元1221和第一建立子单元1222,其中:

第一选择子单元1221用于主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环;

第一建立子单元1222,用于主节点将停止训练时刻保存的训练参数集作为新的参数集。

在一个实施例中,上述第一选择子单元1221具体用于主节点广播重建信息,并接收通讯环中的除故障节点之外的从节点根据重建信息上报的节点信息;主节点根据各其它从节点根据重建信息上报的节点信息确定目标从节点。

在一个实施例中,如图14所示,上述第二修复单元123具体包括:竞选子单元1231和第二建立子单元1232,其中:

竞选子单元1231,用于通讯环中的所有从节点采用预设的共识算法重新竞选主节点,得到新的主节点;

第二建立子单元1232,用于所有从节点停止训练初始参数,新的主节点重新建立新的通讯环和新的参数集。

在一个实施例中,上述第二建立子单元1232具体用于新的主节点重新选择除故障节点之外的目标从节点,并根据目标从节点建立新的通讯环;新的主节点上将停止训练时刻保存下来的训练参数集作为新的参数集。

在一个实施例中,上述第二建立子单元1232具体用于新的主节点广播重建信息,并接收通讯环中的除故障节点之外的从节点根据重建信息上报的节点信息;新的主节点根据各、从节点上报的节点信息确定目标从节点。

在一个实施例中,如图15所示,上述故障修复模块12包括:第一确定单元124、第二确定单元125、第三确定单元126,其中:

第一确定单元124,用于除故障节点之外的各节点重新竞选主节点,得到新的主节点;

第二确定单元125,用于除故障节点之外的各节点停止训练,新的主节点重新选择新的从节点,并根据新的从节点建立新的通讯环;

第三确定单元126,用于新的主节点将停止训练时刻保存的训练参数集作为新的参数集。

在一个实施例中,如图16所示,训练和监测模块11,包括:训练单元111和监测单元112,其中:

训练单元111,用于各节点调用各自的守护进程中的训练进程对各自对应的初始参数集进行训练;所述守护进程包括所述训练进程和共识进程;

监测单元112,用于各节点调用各自的共识进程监测通讯环中是否出现故障节点。

关于分布式机器学习训练装置的具体限定可以参见上文中对于一种分布式机器学习训练方法的限定,在此不再赘述。上述分布式机器学习训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式机器学习训练方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点;

若出现故障节点,则所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集;

基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时还实现以下步骤:

各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点;

若出现故障节点,则所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集;

基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

技术特征:

1.一种分布式机器学习训练方法,其特征在于,所述方法应用于训练网络,所述训练网络包括多个节点组成的通讯环,所述方法包括:

各所述节点对各自对应的初始参数集进行训练,并监测所述通讯环中是否出现故障节点;

若出现所述故障节点,重新建立新的通讯环和新的参数集;

基于所述新的通讯环,并将所述新的参数集替代所述初始参数集,返回执行所述各所述节点对各自对应的初始参数集进行训练,并监测所述通讯环中是否出现故障节点的步骤,直到所述新的通讯环中所有节点完成训练为止。

2.根据权利要求1所述的方法,其特征在于,所述重新建立新的通讯环和新的参数集,包括:

判断所述故障节点的类型;

若所述故障节点的类型为从节点,则所有节点停止训练所述初始参数,并启动第一修复流程重新建立所述新的通讯环和新的参数集;所述第一修复流程用于修复从节点类型的故障;

若所述故障节点的类型为主节点,则启动第二修复流程重新建立所述新的通讯环和新的参数集;所述第二修复流程用于修复主节点类型的故障。

3.根据权利要求2所述的方法,其特征在于,所述启动第一修复流程重新建立所述新的通讯环和新的参数集,包括:

所述主节点重新选择除所述故障节点之外的目标从节点,并根据所述目标从节点建立所述新的通讯环;

所述主节点将停止训练时刻保存的训练参数集作为所述新的参数集。

4.根据权利要求3所述的方法,其特征在于,所述主节点重新选择除所述故障节点之外的目标从节点,包括:

所述主节点广播重建信息,并接收所述通讯环中的除所述故障节点之外的从节点根据所述重建信息上报的节点信息;

所述主节点根据各所述从节点根据所述重建信息上报的节点信息确定所述目标从节点。

5.根据权利要求2所述的方法,其特征在于,所述启动第二修复流程重新建立所述新的通讯环和新的参数集,包括:

所述通讯环中的所有从节点采用预设的共识算法重新竞选主节点,得到新的主节点;

所有从节点停止训练所述初始参数,所述新的主节点重新建立所述新的通讯环和新的参数集。

6.根据权利要求5所述的方法,其特征在于,所述新的主节点重新获取所述新的通讯环和所述新的参数集,包括:

所述新的主节点重新选择除所述故障节点之外的目标从节点,并根据所述目标从节点建立所述新的通讯环;

所述新的主节点上将停止训练时刻保存的训练参数集作为所述新的参数集。

7.根据权利要求6所述的方法,其特征在于,所述新的主节点重新选择除所述故障节点之外的目标从节点,包括:

所述新的主节点广播重建信息,并接收所述通讯环中的除所述故障节点之外的从节点根据所述重建信息上报的节点信息;

所述新的主节点根据各所述从节点上报的节点信息确定所述目标从节点。

8.根据权利要求1所述的方法,其特征在于,所述重新建立新的通讯环和新的参数集,包括:

除所述故障节点之外的各所述节点重新竞选主节点,得到新的主节点;

除所述故障节点之外的各所述节点停止训练,所述新的主节点重新选择新的从节点,并根据所述新的从节点建立所述新的通讯环;

所述新的主节点将停止训练时刻保存的训练参数集作为所述新的参数集。

9.根据权利要求1所述的方法,其特征在于,所述各所述节点对各自对应的初始参数集进行训练,并监测所述通讯环中是否出现故障节点,包括:

各所述节点调用各自的守护进程中的训练进程对各自对应的初始参数集进行训练;所述守护进程包括所述训练进程和共识进程;

各所述节点调用各自的所述共识进程监测所述通讯环中是否出现故障节点。

10.一种分布式机器学习训练装置,其特征在于,所述装置包括:

训练和监测模块,用于各所述节点对各自对应的初始参数集进行训练,并监测所述通讯环中是否出现故障节点;

故障修复模块,用于在出现所述故障节点时,所有所述节点停止训练所述初始参数集,并重新建立新的通讯环和新的参数集;

重新训练模块,用于基于所述新的通讯环和新的参数集,返回执行所述各所述节点对各自对应的初始参数集进行训练,并监测所述通讯环中是否出现故障节点的步骤,直到所述新的通讯环中所有节点完成训练为止。

11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。

12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。

技术总结

本发明涉及一种分布式机器学习训练方法、装置、计算机设备和存储介质。该方法通过各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点,若出现故障节点,则所有节点停止训练初始参数集,并重新建立新的通讯环和新的参数集,然后基于新的通讯环,并将新的参数集替代初始参数集,返回执行各节点对各自对应的初始参数集进行训练,并监测通讯环中是否出现故障节点的步骤,直到新的通讯环中所有节点完成训练为止。上述训练方法可以自动重新建立新的通讯环和新的参数集,再进一步的以新的通讯环和新的参数集进行训练,以继续完成发生故障时的训练过程。本申请提供的训练方法极大的缩短了训练时间,以及提高了训练效率。

技术研发人员:黎伟杰;陈飞;韩旭

受保护的技术使用者:广州文远知行科技有限公司

技术研发日:.10.28

技术公布日:.02.28

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。