CN116755941B - 一种节点故障感知的分布式模型训练的方法及装置 - Google Patents
一种节点故障感知的分布式模型训练的方法及装置 Download PDFInfo
- Publication number
- CN116755941B CN116755941B CN202311053457.4A CN202311053457A CN116755941B CN 116755941 B CN116755941 B CN 116755941B CN 202311053457 A CN202311053457 A CN 202311053457A CN 116755941 B CN116755941 B CN 116755941B
- Authority
- CN
- China
- Prior art keywords
- node
- model
- fault
- sub
- equipment
- 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 182
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000008447 perception Effects 0.000 title description 3
- 230000008569 process Effects 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 239000002243 precursor Substances 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 13
- 230000000295 complement effect Effects 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000005304 joining Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 230000000153 supplemental effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本说明书公开了一种节点故障感知的分布式模型训练的方法及装置,通过为每个模型训练时所使用到的设备节点分配备份节点,以使得当监测到设备节点出现故障时,发生故障的设备节点所对应的备份节点能够接替该故障节点继续执行模型训练的任务,从而能够保证模型训练任务的执行效率。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种节点故障感知的分布式模型训练的方法及装置。
背景技术
随着科技的发展,涌现了越来越多的可以实际应用于帮助改善人们生产生活的人工智能模型,促进了现代社会的发展和人类社会的进步。
而为了提高这些模型的效果,则需要对这些模型进行训练。而随着模型的参数规模越来越大,单个设备节点的算力过低,因此无法单独完成对参数规模较大的模型的训练的任务,此时,会将需要训练的模型划分成多个阶段,并将每个阶段分配给一个设备节点,由这些节点来共同完成对上述模型的分布式训练。但是现有的分布式训练方法无法在某一个单个节点发生故障之后继续执行模型训练的任务,此时会造成模型训练任务的中断。
因此,如何使得上述分布式训练不会因为某个单个节点发生故障而中断模型训练,以保证模型训练的连续性,提高模型训练的效率,则是个亟待解决的问题。
发明内容
本说明书提供一种节点故障感知的分布式模型训练的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种节点故障感知的分布式模型训练的方法,包括:
确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型;
将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务;
当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度;
确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态;
若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务。
可选地,监测到所述目标模型的模型训练任务在执行过程中出现异常,具体包括:
监测每隔默认时间间隔是否接收到所述各设备节点的心跳信号;
当未在指定时间内接收到至少部分设备节点发送的心跳信号,则确定所述目标模型的模型训练任务在执行过程中出现异常,并将未在所述指定时间内发送所述心跳信号的设备节点,确定为故障节点。
可选地,通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,具体包括:
向所述故障节点对应的备份节点发送启动信号,以使得所述故障节点对应的备份节点在接收到所述启动信号后,读取出预先存储在所述备份节点本地的部署在所述故障节点中的子模型,并从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
可选地,确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,具体包括:
在确定所述故障节点恢复正常状态时,根据所述备份节点发送的心跳信号中所携带的针对所述目标模型的模型训练任务的执行进度信息,确定所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度;
将所述备份节点中部署的子模型的模型数据发送给所述故障节点,以使得所述故障节点根据接收到的所述模型数据,对所述故障节点中部署的子模型进行更新;
向所述故障节点发送重启信号,以使得所述故障节点在接收到所述重启信号后,从所述第二进度开始继续执行所述故障节点中部署的更新后子模型所对应的模型训练任务。
可选的,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,具体包括:
按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,得到划分结果;
针对每个处于正常状态的设备节点,根据所述划分结果,确定所述目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点;
根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整,以将重新划分出的各子模型分别部署到各处于正常状态的设备节点中。
可选的,所述备份节点为所述故障节点的前驱节点,所述前驱节点用于在完成部署到所述前驱节点的子模型的前向计算之后,将所述前向计算的结果发送给所述故障节点。
本说明书提供了一种节点故障感知的分布式模型训练的装置,包括:
确定模块,用于确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型;
部署模块,用于将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务;
故障确定模块,用于当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度;
替换模块,用于确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态;
恢复与划分模块,用于若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务。
可选的,所述故障确定模块具体用于,监测每隔默认时间间隔是否接收到所述各设备节点的心跳信号;当未在指定时间内接收到至少部分设备节点发送的心跳信号,则确定所述目标模型的模型训练任务在执行过程中出现异常,并将未在所述指定时间内发送所述心跳信号的设备节点,确定为故障节点。
可选的,所述替换模块具体用于,向所述故障节点对应的备份节点发送启动信号,以使得所述故障节点对应的备份节点在接收到所述启动信号后,读取出预先存储在所述备份节点本地的部署在所述故障节点中的子模型,并从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
可选的,所述恢复与划分模块具体用于,在确定所述故障节点恢复正常状态时,根据所述备份节点发送的心跳信号中所携带的针对所述目标模型的模型训练任务的执行进度信息,确定所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度;将所述备份节点中部署的子模型的模型数据发送给所述故障节点,以使得所述故障节点根据接收到的所述模型数据,对所述故障节点中部署的子模型进行更新;向所述故障节点发送重启信号,以使得所述故障节点在接收到所述重启信号后,从所述第二进度开始继续执行所述故障节点中部署的更新后子模型所对应的模型训练任务。
可选的,所述恢复与划分模块具体用于,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,得到划分结果;针对每个处于正常状态的设备节点,根据所述划分结果,确定所述目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点;根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整,以将重新划分出的各子模型分别部署到各处于正常状态的设备节点中。
可选的,所述备份节点为所述故障节点的前驱节点,所述前驱节点用于在完成部署到所述前驱节点的子模型的前向计算之后,将所述前向计算的结果发送给所述故障节点。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述节点故障感知的分布式模型训练的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述节点故障感知的分布式模型训练的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的节点故障感知的分布式模型训练的方法,确定待训练的目标模型,并对该目标模型进行拆分,得到各子模型,将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对该目标模型的模型训练任务,当监测到该目标模型的模型训练任务在执行过程中出现异常时,从该各设备节点中确定故障节点,并确定该目标模型的模型训练任务出现异常时的执行进度,作为第一进度,确定该故障节点对应的备份节点,并通过该备份节点从该第一进度开始继续执行该故障节点中部署的子模型所对应的模型训练任务,以及监测该故障节点在设定时间内是否恢复正常状态,若是,则确定在该故障节点恢复正常状态时,该备份节点针对该故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过该故障节点从该第二进度开始继续执行该故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对该目标模型进行划分,并将重新划分出的各子模型分别部署到该处于正常状态的设备节点中,以执行针对该目标模型的模型训练任务。
从上述方法中可以看出,在模型训练时,可以为每个模型训练时所使用到的设备节点分配备份节点,以使得当监测到设备节点出现故障时,发生故障的设备节点所对应的备份节点能够接替该故障节点继续执行模型训练的任务,从而能够保证模型训练任务的执行效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种节点故障感知的分布式模型训练的方法的流程示意图;
图2为本说明书提供的管理者模块的运行内容的示意图;
图3为本说明书提供的各管理者模块运行方式的示意图;
图4为本说明书中提供的故障节点替换的流程示意图;
图5为本说明书提供的一种节点故障感知的分布式模型训练的装置结构的示意图;
图6为本说明书提供的对应于图1的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种节点故障感知的分布式模型训练的方法的流程示意图,包括以下步骤:
S101:确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型。
本说明书中涉及的模型训练的方法的执行主体可以是诸如台式电脑、笔记本电脑等终端设备,也可以是服务器,下面仅以终端设备是执行主体为例,对本说明书实施例中的模型训练的方法进行说明。
如今,在目标模型的模型训练过程中可以采用分布式训练的方式,即通过多个设备节点共同对一个目标模型进行训练,具体则是首先将该目标模型划分成多个子模型,并将这些子模型分别部署到各个设备节点中,以使得通过这些设备节点共同完成对该目标模型的训练任务。然而,目前的目标模型的分布式训练在某一个设备节点故障之后继续执行目标模型训练的任务,此时会造成目标模型训练任务的中断,降低了目标模型的训练效率。
在本说明书中,终端设备在拆分该目标模型,得到各子模型时,具体可以是根据当前的设备节点的数量来对该目标模型进行拆分,其中,这里的拆分可以是指将该目标模型中的网络层拆分为几组,每组的网络层则构成了一个子模型。
例如,目标模型中一共包含1000个网络层,而训练该目标模型所用到的设备节点有5个,那么终端设备在拆分该目标模型,得到各子模型时,则可以是将该1000个网络层拆分为5组,每组中有200个网络层,例如第一组中包含有该目标模型的第1~200个网络层,而第二组中包含有该目标模型的第201~400个网络层,以此类推,这样每组的网络层则构成了一个子模型,可以看出,这里所划分出的每组的网络层中不会相互重叠。
需要说明的是,这里所提到的终端设备可以不是参与到目标模型的模型训练中的设备节点,即终端设备可以只用于对目标模型进行拆分,将划分后的各子模型的数据发送刚给各设备节点,以使得上述各设备节点来执行各个设备节点中的子模型的模型训练的任务,并且还可以对各设备节点在执行模型训练的任务时的状态进行监测,即终端设备可以用于统筹指挥目标模型的模型训练任务。当然,这里所提到的终端设备也可以是参与到目标模型的模型训练中的设备节点,那么此时终端设备除了会参与到目标模型的模型训练中之外,还需要负责用于统筹指挥目标模型的模型训练任务。
S102:将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务。
S103:当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度。
在本说明书中,当通过各个设备节点执行部署到各个设备节点中的子模型的模型训练任务时,可以是通过预设的主管理者模块来实时监测各个设备节点的状态,具体可以是主管理者模块监测每隔默认时间间隔是否接收到该各设备节点的心跳信号,当没有在指定时间内接收到至少部分设备节点发送的心跳信号,则确定该目标模型的模型训练任务在执行过程中出现异常,并将未在该指定时间内发送该心跳信号的设备节点,确定为故障节点。
例如,在对目标模型的模型训练过程中,如果各个设备节点每隔默认时间间隔30秒会向该主管理者模块发送心跳信号,而当该主管理者模块在指定时间2分钟内没有接收到某一个设备节点的心跳信号,那么可以确定该目标模型的模型训练任务在执行过程中出现异常,并将未在该指定时间2分钟内发送该心跳信号的设备节点,确定为故障节点。
当确定该目标模型的模型训练任务在执行过程中出现异常时,该主管理者模块还可以根据接收到的除该故障节点之外的其他设备节点发送给主管理者模块的心跳信号中所携带的针对该目标模型的模型训练任务的执行进度信息,来确定出该目标模型的模型训练任务出现异常时的执行进度,作为第一进度。
其中,这里的执行进度可以用于反映出在执行该目标模型的模型训练任务时的执行阶段,具体的表现形式可以有很多,例如,该目标模型的模型训练任务是通过逐个输入样本来执行,那么这里的执行进度则可以理解成是把第几个样本输入来执行该目标模型的模型训练的任务。
例如,在某一轮次的模型训练的过程中,各个设备节点共需要使用100个样本来对目标模型进行训练,当确定该目标模型的模型训练任务在执行过程中出现异常时,正在通过该故障节点之外的其他设备节点使用第30个样本对目标模型进行训练,那么第一进度则是使用第30个样本对目标模型进行训练。
图2为本说明书提供的管理者模块的运行内容的示意图。
如图2所示,主管理者模块主要有图2中的“自我监控和维护”、“令牌机制”、“设备节点监控”以及“模型层迁移”等功能,其中,管理者模块的“自我监控和维护”主要是为了防止因为管理者所在设备节点发送故障而影响分布式训练的正常进行。而“令牌机制”则是一种具体的实现主管理者模块所在节点的快速切换的功能的方法,具体详见S103中的后续内容。“设备节点监控”指的则是上述内容提及的主管理者模块可以实时监测各个设备节点的状态。“模型层迁移”指的是S106中提及的如何将重新划分出的各子模型分别部署到处于正常状态的设备节点中,详见S106,在此不再赘述,图2中的“心跳信号”指的是主管理者模块和从管理者模块之间可以通过发送心跳信号的方式进行交流。
其中,上述提及的预设的主管理者模块既可以部署到上述参与到目标模型的训练的部署有各子模型的设备节点中,以节约模型训练的成本,也可以部署到未参与到目标模型的模型训练的其他设备节点中,如上述的终端设备中,本说明书不做具体限制。
而为了增强上述主管理者模块的容错性,为了避免因为主管理者模块所在的设备节点发生故障而使本说明书中模型训练方法无法继续的情况发生(即为了实现上述提及的管理者模块的“自我监控和维护”的功能),可以为该主管理者模块预先设置有相应的两个从管理者模块,具体的,这里的两个从管理者模块具体可以用于备份主管理者模块中的数据,一旦终端设备监测到该主管理者模块所在节点发生故障之后,从管理者模块则可以接替该主管理者模块以继续执行该主管理者模块的任务,上述两个从管理者模块可以分别部署到除了主管理者模块所在的设备节点之外的其他两个设备节点中。
上述提及的主从管理者模块所在设备节点的故障感知以及主从管理者模块的切换具体可以通过下列方式实现:
终端设备可以预先为这一个主管理者模块和两个从管理者模块分别设置有令牌计数器,为每个令牌计数器设置不同的令牌增加速度,具体可以是部署到目标模型的训练的流水线上位置越靠后的设备节点中的管理者模块的令牌增加速度越快,三个管理者彼此之间通过心跳信号向对方发送各自当前累积的令牌数,可以规定令牌数量最多的管理者模块为主管理者模块。
一旦主管理者模块所在的设备节点发生故障成为故障节点,那么主管理者模块所对应的令牌计数器中的令牌数量便会停止增长。与此同时,其他从管理者模块所对应的令牌计数器中的令牌数量会继续保持增加,那么从管理者模块所对应的令牌数量很快便会超过主管理者模块所对应的令牌数量,从而从管理者模块可以接替原先的主管理者模块成为新的主管理者模块,继续提供主管理者模块的服务,实现无缝切换。
而一旦该故障节点恢复正常重新加入或者其他新的管理者模块加入,其中,这里的新的管理者模块加入可以是指有新的设备节点加入,并且该新的设备节点中也部署有管理者模块,那么先将所有管理者模块(包括上述提到的新的主管理者模块、从管理者模块以及上述新加入的管理者模块)所对应的令牌数量清零,消除新的管理者模块和当前各管理者模块之间的令牌数量差距,然后重新计数,从而在最短的时间内重新选出流水线上位置最靠后的(持有令牌数量最多的)设备节点上的管理者模块作为重新选取出的主管理者模块。而如果重新选取出的主管理者模块不是原来的主管理者模块,则可以将原来的主管理者模块中的数据拷贝到重新选取出的主管理者模块中,以使得重新选取出的主管理者模块可以继续提供主管理者模块的服务。
图3为本说明书提供的各管理者模块运行方式的示意图。
如图3所示,图3中的主管理者模块中的令牌计数器的令牌增加速度是R1/s,从管理者模块1中的令牌计数器的令牌增加速度是R2/s,从管理者模块2中的令牌计数器的令牌增加速度是R3/s,这里的R1、R2、R3都是自然数,并且R1> R2> R3。
当一旦主管理者模块所在的设备节点发生故障成为故障节点,那么主管理者的令牌计数器中的令牌数量便会停止增长,即如图2中的虚线框的状态,但是从管理者模块1和从管理者模块2中的令牌数量依然会按照原先的令牌增加速度来增加,由于R2> R3,显然,此时从管理者模块1中令牌数量最多,则从管理者模块1会成为新的主管理者模块,继续提供主管理者模块的服务,实现无缝切换。
而一旦该故障节点恢复正常重新加入或者其他新的管理者模块加入,其中,这里的新的管理者模块加入可以是指有新的设备节点加入,并且该新的设备节点中也部署有管理者模块,那么先将所有管理者模块(包括上述提到的新的主管理者模块、从管理者模块以及上述新加入的管理者模块)所对应的令牌数量清零,消除新的管理者模块和当前各管理者模块之间的令牌数量差距,然后重新计数,从而在最短的时间内重新选出流水线上位置最靠后的(持有令牌数量最多的)设备节点上的管理者模块作为重新选取出的主管理者模块。而如果重新选取出的主管理者模块不是原来的主管理者模块,则可以将原来的主管理者模块中的数据拷贝到重新选取出的主管理者模块中,以使得重新选取出的主管理者模块可以继续提供主管理者模块的服务。
当然,上述提及的主从管理者模块所在设备节点的故障感知以及主从管理者模块的切换还可以有其他方式,本说明书中不再一一列举。
S104:确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态。
在本说明书中,当确定目标模型的模型训练任务在执行过程中出现异常,则可以确定出故障节点对应的备份节点,具体可以是通过该主管理者模块中所预先存储的各个设备节点与备份节点之间的对应关系,确定出该故障节点所对应的备份节点。
之后,可以继续由该主管理者模块向该故障节点对应的备份节点发送启动信号,以使得该故障节点对应的备份节点在接收到该启动信号后,读取出预先存储在该备份节点本地的部署在该故障节点中的子模型,并从该第一进度开始继续执行该故障节点中部署的子模型所对应的模型训练任务。
继续沿用上例,当第一进度是使用第30个样本对目标模型进行训练,那么上述提到的从该第一进度开始继续执行该故障节点中部署的子模型所对应的模型训练任务,则指的是从第30个样本开始继续执行当前轮次的故障节点中部署的子模型所对应的模型训练任务。
同时,还可以由该主管理者模块继续监测该故障节点在设定时间内是否恢复正常状态,具体可以是该主管理者观察是否在设定时间内接收到了该故障节点发送的心跳信号,若是,则判定故障节点恢复正常状态,否则判定故障节点恢复未正常状态。
通过这种方式,在目标模型的训练过程中,可以很快的找到能够接替故障节点继续执行部署在该故障节点中的子模型的训练任务的备份节点,避免了因为某个节点故障而导致整个目标模型训练中断的情况,大大提高了目标模型的训练效率。
S105:若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
S106:否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务。
一旦确定了故障节点在设定时间内恢复了正常状态,则可以由该主管理者模块根据该备份节点发送的心跳信号中所携带的针对该目标模型的模型训练任务的执行进度信息,确定该备份节点针对该故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度。
继续沿用上例,当该主管理者模块根据该备份节点发送的心跳信号中所携带的针对该目标模型的模型训练任务的执行进度信息,确定了备份节点针对该故障节点中部署的子模型所对应的模型训练任务的执行到了第70个样本,那么则可以确定第二进度是使用第70个样本对目标模型进行训练。
此时,可以通过该主管理者模块将该备份节点中部署的子模型的模型数据发送给该故障节点,以使得该故障节点根据接收到的该模型数据,对该故障节点中部署的子模型进行更新。
需要注意的是,只有需要频繁进行参数更新的目标模型训练方式,才需要通过上述方式来对该故障节点中部署的子模型进行更新。而如果训练方式为按照每一轮次的训练结果来对目标模型中的参数进行更新的话,因为可能会当故障节点恢复正常状态时,一个轮次还没有结束,那么此时则可以不需要通过上述方式来对该故障节点中部署的子模型进行更新。
并且,还可以通过该主管理者模块向该故障节点发送重启信号,以使得该故障节点在接收到该重启信号后,从该第二进度开始继续执行该故障节点中部署的更新后子模型所对应的模型训练任务。继续沿用上例,由于第二进度是使用第70个样本对目标模型进行训练,那么,该故障节点在接收到该重启信号后,则可以从第70个样本开始来执行故障节点中部署的更新后子模型所对应的模型训练任务。
相反,一旦确定了故障节点在设定时间内未恢复正常状态,那么则可以按照处于正常状态的设备节点的数量,通过该主管理者模块中的如CPLEX等的线性规划求解器,来重新对该目标模型进行划分,得到划分结果,这里的划分结果表示的是每个处于正常状态的设备节点所应承担进行训练的重新划分后的子模型中包含的网络层,其中,这里的处于正常状态的设备节点的数量可以包括新加入的用于目标模型的训练的新的设备节点的数量。这里的内容则是上述S103中所提及的该管理者模块所具备的“模型层迁移”功能。
之后,可以针对每个处于正常状态的设备节点,根据该划分结果,确定出该目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点。
此后,可以根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整,以将重新划分出的各子模型分别部署到各处于正常状态的设备节点中。
具体的,可以是针对每个处于正常状态的设备节点,将确定出的该处于正常状态的设备节点所对应的补充网络层以及网络层源节点发送给该处于正常状态的设备节点,以使得该处于正常状态的设备节点向该网络层源节点发送获取该补充网络层的请求,并根据获取到的该网络层源节点所发送的补充网络层,来对该处于正常状态的设备节点中当前所包含的网络层进行调整,以将重新划分出的该处于正常状态的设备节点对应的子模型部署到该处于正常状态的设备节点中,以实现上述网络层的迁移。
例如,该目标模型中一共有100个网络层,在开始训练该目标模型时,完成该目标模型的模型训练任务所用到的设备节点分别为:设备节点1、设备节点2、设备节点3、设备节点4、设备节点5,而每个设备节点中所部署的子模型所包含目标模型中的网络层如下表1所示:
而当监测到设备节点3为故障节点,并且,设备节点3在设定时间内未恢复正常状态,则可以对该目标模型重新进行划分,划分结果中所显示的每个处于正常状态的设备节点中所部署的子模型所包含目标模型中的网络层如下表2所示:
之后,针对每个处于正常状态的设备节点,根据该划分结果,确定出该目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层。其中,针对设备节点1,可以确定该设备节点对应的补充网络层为网络层21~25,而该补充网络层当前所处的设备节点为设备节点2;针对设备节点2,可以确定该设备节点对应的补充网络层为网络层41~50,而该补充网络层当前所处的设备节点为设备节点3。那么,设备节点2是设备节点1对应的网络层源节点,设备节点3是设备节点2对应的网络层源节点,以此类推。
此后,针对设备节点1,可以将设备节点1对应的补充网络层“网络层21~25”以及该补充网络层当前所处的设备节点“设备节点2”发送给该设备节点1,设备节点1可以向“设备节点2”发送补充网络层获取请求,那么此时设备节点2则可以将设备节点2中的“网络层21~25”发送给设备节点1。
设备节点1相应的对自身当前所包含的网络层进行调整,以将重新划分出的子模型部署到该设备节点1中。其他设备节点也是同理,不再赘述。
另外,上述所提及的该备份节点可以是该故障节点的前驱节点,该前驱节点用于在完成部署到该前驱节点的子模型的前向计算之后,将该前向计算的结果发送给该故障节点。
图4为本说明书中提供的故障节点替换的流程示意图。
如图4所示,在开始训练该目标模型时,完成该目标模型的模型训练任务所用到的设备节点分别为:设备节点1、设备节点2、设备节点3、…、设备节点N-1、设备节点N。
而当主管理者模块监测到设备节点3在指定时间2分钟内没有发送该心跳信号的设备节点,那么可以将设备节点3确定为故障节点,之后,可以确定出设备节点2是设备节点3的备份节点(这里的设备节点2是设备节点3的前驱节点),并确定出第一进度为:使用第30个样本对目标模型进行训练。
而在模型训练过程中,可以是首先确定出设备节点2中部署的子模型关于第30个样本对应的前向计算结果,并且将根据该前向计算结果确定出设备节点2中的部署到设备节点3中的子模型的前向计算结果,之后设备节点2可以将设备节点2中的部署到设备节点3中的子模型的前向计算结果发送给设备节点4,以此类推,直到确定出该目标模型关于第30个样本的损失值,后续也可以反向传播,根据一系列反向计算结果,确定出该目标模型关于第30个样本的梯度,在本说明书中不再赘述。
之后,设备节点2可以响应于备份节点发送启动信号,读取出预先存储在设备节点2本地的部署在设备节点3中的子模型,并从第30个样本开始继续执行设备节点3中部署的子模型所对应的模型训练任务。
同时,还可以由该主管理者模块继续监测该设备节点3在设定时间5分钟内是否向该主管理者模块发送了心跳信号。
若是,则确定设备节点3在设定时间内恢复了正常状态,并确定出此时设备节点2中针对该故障节点中部署的子模型所对应的模型训练任务的执行到了第70个样本作为第二进度,并且还可以通过主管理者模块,将该设备节点3中部署的设备节点2所对应的子模型的模型数据发送给设备节点2,以使得设备节点2来对部署在设备节点2中的子模型的参数进行更新。并且,设备节点2还可以根据接收到的该主管理者模块发送的重启信号,来从第二进度(即第70个样本)开始继续执行设备节点2中部署的更新后子模型所对应的模型训练任务。
相反,否则确定了故障节点在设定时间内未恢复正常状态,并且可以按照处于正常状态的设备节点的数量,来重新对该目标模型进行划分,得到划分结果,根据划分结果来进行模型层迁移,以将重新划分出的该处于正常状态的设备节点对应的子模型部署到该处于正常状态的设备节点中。
从上述方法中可以看出,在模型训练时,可以为每个模型训练时所使用到的设备节点分配备份节点,以使得当监测到设备节点出现故障时,发生故障的设备节点所对应的备份节点能够接替该故障节点继续执行模型训练的任务,从而能够保证模型训练任务的执行效率。
以上为本说明书的一个或多个实施的方法,基于同样的思路,本说明书还提供了相应的节点故障感知的分布式模型训练的装置,如图5所示。
图5为本说明书提供的一种节点故障感知的分布式模型训练的装置的示意图,包括:
确定模块501,用于确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型;
部署模块502,用于将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务;
故障确定模块503,用于当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度;
替换模块504,用于确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态;
恢复与划分模块505,用于若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务。
可选地,所述故障确定模块503具体用于,监测每隔默认时间间隔是否接收到所述各设备节点的心跳信号;当未在指定时间内接收到至少部分设备节点发送的心跳信号,则确定所述目标模型的模型训练任务在执行过程中出现异常,并将未在所述指定时间内发送所述心跳信号的设备节点,确定为故障节点。
可选地,所述替换模块504具体用于,向所述故障节点对应的备份节点发送启动信号,以使得所述故障节点对应的备份节点在接收到所述启动信号后,读取出预先存储在所述备份节点本地的部署在所述故障节点中的子模型,并从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
可选地,所述恢复与划分模块505具体用于,在确定所述故障节点恢复正常状态时,根据所述备份节点发送的心跳信号中所携带的针对所述目标模型的模型训练任务的执行进度信息,确定所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度;将所述备份节点中部署的子模型的模型数据发送给所述故障节点,以使得所述故障节点根据接收到的所述模型数据,对所述故障节点中部署的子模型进行更新;向所述故障节点发送重启信号,以使得所述故障节点在接收到所述重启信号后,从所述第二进度开始继续执行所述故障节点中部署的更新后子模型所对应的模型训练任务。
可选地,所述恢复与划分模块505具体用于,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,得到划分结果;针对每个处于正常状态的设备节点,根据所述划分结果,确定所述目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点;根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整,以将重新划分出的各子模型分别部署到各处于正常状态的设备节点中。
可选地,所述备份节点为所述故障节点的前驱节点,所述前驱节点用于在完成部署到所述前驱节点的子模型的前向计算之后,将所述前向计算的结果发送给所述故障节点。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种节点故障感知的分布式模型训练的方法。
本说明书还提供了图6所示的一种对应于图1的电子设备的示意结构图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的节点故障感知的分布式模型训练的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (12)
1.一种节点故障感知的分布式模型训练的方法,其特征在于,所述方法包括:
确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型;
将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务;
当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度;
确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态;
若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务,其中,针对每个处于正常状态的设备节点,根据重新对所述目标模型进行划分所得到的划分结果,确定所述目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点,根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整。
2.如权利要求1所述的方法,其特征在于,监测到所述目标模型的模型训练任务在执行过程中出现异常,具体包括:
监测每隔默认时间间隔是否接收到所述各设备节点的心跳信号;
当未在指定时间内接收到至少部分设备节点发送的心跳信号,则确定所述目标模型的模型训练任务在执行过程中出现异常,并将未在所述指定时间内发送所述心跳信号的设备节点,确定为故障节点。
3.如权利要求1所述的方法,其特征在于,通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,具体包括:
向所述故障节点对应的备份节点发送启动信号,以使得所述故障节点对应的备份节点在接收到所述启动信号后,读取出预先存储在所述备份节点本地的部署在所述故障节点中的子模型,并从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
4.如权利要求1所述的方法,其特征在于,确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,具体包括:
在确定所述故障节点恢复正常状态时,根据所述备份节点发送的心跳信号中所携带的针对所述目标模型的模型训练任务的执行进度信息,确定所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度;
将所述备份节点中部署的子模型的模型数据发送给所述故障节点,以使得所述故障节点根据接收到的所述模型数据,对所述故障节点中部署的子模型进行更新;
向所述故障节点发送重启信号,以使得所述故障节点在接收到所述重启信号后,从所述第二进度开始继续执行所述故障节点中部署的更新后子模型所对应的模型训练任务。
5.如权利要求1~4任一项所述的方法,其特征在于,所述备份节点为所述故障节点的前驱节点,所述前驱节点用于在完成部署到所述前驱节点的子模型的前向计算之后,将所述前向计算的结果发送给所述故障节点。
6.一种节点故障感知的分布式模型训练的装置,其特征在于,包括:
确定模块,用于确定待训练的目标模型,并对所述目标模型进行拆分,得到各子模型;
部署模块,用于将各子模型分别部署在各个设备节点中,以通过各设备节点,执行针对所述目标模型的模型训练任务;
故障确定模块,用于当监测到所述目标模型的模型训练任务在执行过程中出现异常时,从所述各设备节点中确定故障节点,并确定所述目标模型的模型训练任务出现异常时的执行进度,作为第一进度;
替换模块,用于确定所述故障节点对应的备份节点,并通过所述备份节点从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,以及监测所述故障节点在设定时间内是否恢复正常状态;
恢复与划分模块,用于若是,则确定在所述故障节点恢复正常状态时,所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度,并通过所述故障节点从所述第二进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务,否则,按照处于正常状态的设备节点的数量,重新对所述目标模型进行划分,得到划分结果,针对每个处于正常状态的设备节点,根据所述划分结果,确定所述目标模型中需要迁移至该设备节点中的网络层,作为该设备节点对应的补充网络层,并确定该设备节点对应的补充网络层当前所处的设备节点,作为该设备节点对应的网络层源节点,根据每个处于正常状态的设备节点对应的补充网络层以及每个处于正常状态的设备节点对应的网络层源节点,对各处于正常状态的设备节点中当前所包含的网络层进行调整,并将重新划分出的各子模型分别部署到所述处于正常状态的设备节点中,以执行针对所述目标模型的模型训练任务。
7.如权利要求6所述的装置,其特征在于,所述故障确定模块具体用于,监测每隔默认时间间隔是否接收到所述各设备节点的心跳信号;当未在指定时间内接收到至少部分设备节点发送的心跳信号,则确定所述目标模型的模型训练任务在执行过程中出现异常,并将未在所述指定时间内发送所述心跳信号的设备节点,确定为故障节点。
8.如权利要求6所述的装置,其特征在于,所述替换模块具体用于,向所述故障节点对应的备份节点发送启动信号,以使得所述故障节点对应的备份节点在接收到所述启动信号后,读取出预先存储在所述备份节点本地的部署在所述故障节点中的子模型,并从所述第一进度开始继续执行所述故障节点中部署的子模型所对应的模型训练任务。
9.如权利要求6所述的装置,其特征在于,所述恢复与划分模块具体用于,在确定所述故障节点恢复正常状态时,根据所述备份节点发送的心跳信号中所携带的针对所述目标模型的模型训练任务的执行进度信息,确定所述备份节点针对所述故障节点中部署的子模型所对应的模型训练任务的执行进度,作为第二进度;将所述备份节点中部署的子模型的模型数据发送给所述故障节点,以使得所述故障节点根据接收到的所述模型数据,对所述故障节点中部署的子模型进行更新;向所述故障节点发送重启信号,以使得所述故障节点在接收到所述重启信号后,从所述第二进度开始继续执行所述故障节点中部署的更新后子模型所对应的模型训练任务。
10.如权利要求6~9任一项所述的装置,其特征在于,所述备份节点为所述故障节点的前驱节点,所述前驱节点用于在完成部署到所述前驱节点的子模型的前向计算之后,将所述前向计算的结果发送给所述故障节点。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~5任一项所述的方法。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311053457.4A CN116755941B (zh) | 2023-08-21 | 2023-08-21 | 一种节点故障感知的分布式模型训练的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311053457.4A CN116755941B (zh) | 2023-08-21 | 2023-08-21 | 一种节点故障感知的分布式模型训练的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116755941A CN116755941A (zh) | 2023-09-15 |
CN116755941B true CN116755941B (zh) | 2024-01-09 |
Family
ID=87955566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311053457.4A Active CN116755941B (zh) | 2023-08-21 | 2023-08-21 | 一种节点故障感知的分布式模型训练的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755941B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796540A (zh) * | 2014-07-29 | 2017-05-31 | 沙特阿拉伯石油公司 | 用于分布式计算的主动故障恢复模型 |
CN108009045A (zh) * | 2016-10-31 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种主备数据库故障处理方法及装置 |
CN113656175A (zh) * | 2021-08-18 | 2021-11-16 | 北京百度网讯科技有限公司 | 基于分布式系统训练模型的方法、设备及程序产品 |
CN114036826A (zh) * | 2021-10-29 | 2022-02-11 | 深圳前海微众银行股份有限公司 | 模型训练方法、根因确定方法、装置、设备及存储介质 |
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
WO2023273579A1 (zh) * | 2021-06-30 | 2023-01-05 | 北京有竹居网络技术有限公司 | 模型的训练方法、语音识别方法、装置、介质及设备 |
CN115701071A (zh) * | 2021-07-16 | 2023-02-07 | 中移物联网有限公司 | 模型训练方法、装置、电子设备及存储介质 |
CN115712830A (zh) * | 2021-08-20 | 2023-02-24 | 华为云计算技术有限公司 | Ai模型的分布式训练方法和相关设备 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169427B (zh) * | 2021-12-06 | 2022-10-04 | 北京百度网讯科技有限公司 | 基于端到端自适应的分布式训练方法、装置、设备 |
-
2023
- 2023-08-21 CN CN202311053457.4A patent/CN116755941B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796540A (zh) * | 2014-07-29 | 2017-05-31 | 沙特阿拉伯石油公司 | 用于分布式计算的主动故障恢复模型 |
CN108009045A (zh) * | 2016-10-31 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种主备数据库故障处理方法及装置 |
WO2023273579A1 (zh) * | 2021-06-30 | 2023-01-05 | 北京有竹居网络技术有限公司 | 模型的训练方法、语音识别方法、装置、介质及设备 |
CN115701071A (zh) * | 2021-07-16 | 2023-02-07 | 中移物联网有限公司 | 模型训练方法、装置、电子设备及存储介质 |
CN113656175A (zh) * | 2021-08-18 | 2021-11-16 | 北京百度网讯科技有限公司 | 基于分布式系统训练模型的方法、设备及程序产品 |
CN115712830A (zh) * | 2021-08-20 | 2023-02-24 | 华为云计算技术有限公司 | Ai模型的分布式训练方法和相关设备 |
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
WO2023029632A1 (zh) * | 2021-09-02 | 2023-03-09 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
CN114036826A (zh) * | 2021-10-29 | 2022-02-11 | 深圳前海微众银行股份有限公司 | 模型训练方法、根因确定方法、装置、设备及存储介质 |
CN116167463A (zh) * | 2023-04-26 | 2023-05-26 | 之江实验室 | 一种模型训练的方法、装置、存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
Wireless Network Abnormal Traffic Detection Method Based on Deep Transfer Reinforcement Learning;Xia, Yuanjun.et;《2021 17TH INTERNATIONAL CONFERENCE ON MOBILITY, SENSING AND NETWORKING (MSN 2021)》;全文 * |
分布式系统故障检测与异常检测技术研究;黄朝辉;《中国优秀硕士学位论文全文数据库(信息科技辑)》;全文 * |
面向模型并行训练的模型拆分策略自动生成方法;王丽;郭振华;曹芳;高开;赵雅倩;赵坤;;计算机工程与科学(09);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116755941A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
CN111459724B (zh) | 节点切换方法、装置、设备及计算机可读存储介质 | |
CN109033127B (zh) | 一种同步数据校验方法、装置以及设备 | |
CN110442650A (zh) | 数据库切换方法、装置、系统、电子设备及存储介质 | |
CN110401700A (zh) | 模型加载方法及系统、控制节点及执行节点 | |
CN110633096B (zh) | 节点控制方法及装置、版本控制方法及装置、分布式系统 | |
CN110704090A (zh) | 现场可编程门阵列fpga及其升级方法和升级系统 | |
CN108390914A (zh) | 一种服务更新方法及装置、系统 | |
CN116755941B (zh) | 一种节点故障感知的分布式模型训练的方法及装置 | |
CN112751693B (zh) | 分布式存储系统的数据处理方法、装置及电子设备 | |
CN110244964B (zh) | 一种基于运维应用的运维方法、运维方法、装置及设备 | |
CN116048977B (zh) | 一种基于数据还原的测试方法及装置 | |
CN112084171B (zh) | 基于Cassandra数据库的操作日志写入方法、装置、设备及介质 | |
CN103327105B (zh) | hadoop系统中从属节点服务自动恢复方法 | |
CN109189444A (zh) | 一种服务器虚拟化系统的管理节点的升级控制方法及装置 | |
CN116069792A (zh) | 一种数据库容灾系统、方法、装置、存储介质及电子设备 | |
CN114416129A (zh) | 一种数据处理系统 | |
CN106484560B (zh) | 数据同步方法及装置 | |
CN109614266B (zh) | 一种数据同步方法及装置 | |
CN116743550B (zh) | 一种分布式存储集群的故障存储节点的处理方法 | |
CN110908792A (zh) | 一种数据处理方法及装置 | |
CN115208854B (zh) | 基于dhcp的mlag动态双主检测方法、装置、设备及介质 | |
CN114500525B (zh) | 分布式系统中节点更新的方法、装置、计算机设备及介质 | |
CN117271212A (zh) | 一种sdn的快照方法、设备及介质 | |
CN116366429A (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 |