CN111078480A - 一种异常恢复方法和服务器 - Google Patents

一种异常恢复方法和服务器 Download PDF

Info

Publication number
CN111078480A
CN111078480A CN201911305155.5A CN201911305155A CN111078480A CN 111078480 A CN111078480 A CN 111078480A CN 201911305155 A CN201911305155 A CN 201911305155A CN 111078480 A CN111078480 A CN 111078480A
Authority
CN
China
Prior art keywords
target
actuator
abnormal
reading speed
training
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.)
Granted
Application number
CN201911305155.5A
Other languages
English (en)
Other versions
CN111078480B (zh
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911305155.5A priority Critical patent/CN111078480B/zh
Publication of CN111078480A publication Critical patent/CN111078480A/zh
Application granted granted Critical
Publication of CN111078480B publication Critical patent/CN111078480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种异常恢复方法和服务器,在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别检测所述多个目标执行器对消息队列中的样本数据的读取速度;根据所述读取速度确定所述多个目标执行器的平均读取速度;根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。在上述方法中,可以实时检测在线训练过程中目标执行机出现的异常情况,并可利用备选执行机继续执行训练任务,降低了训练的失败率,使得深度学习模型可以及时对发生的事件进行预测,提高了预测时效性。

Description

一种异常恢复方法和服务器
技术领域
本发明涉及深度学习领域,特别是涉及一种异常恢复方法和服务器。
背景技术
深度学习模型为了达到比较高的时效性,通常会进行实时的在线训练,让模型实时读取最新的数据样本进行训练,可以很好的对实时发生的事件进行预测。
例如,谷歌的Tensorflow(多维数组基于数据流图的计算)深度学习模型可以通过实时读取数据集来进行深度学习。当深度学习的训练数据太多的时候,Tensorflow会通过分布式训练的方式来启动多个执行器同时读取训练数据进行训练,进而加快了训练速度。然而,在线训练不同于离线训练,它对于训练的持久性和可靠性都有比较高的要求。在实际的环境下,分布式训练的多个执行器中难免会存在出现问题的执行机,从而导致整个训练任务失败,只能重新开启训练任务,导致在线训练的模型无法对发生的事件进行实时预测,失去了预测的时效性。
由此可见,目前深度学习模型的在线训练失败率较高,对事件预测的时效性较差。
发明内容
本发明实施例的目的在于提供一种异常恢复方法和服务器,以实现解决深度学习模型的在线训练失败率较高,对事件预测的时效性较差的问题。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种异常恢复方法,所述方法包括:
在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
根据所述读取速度确定所述多个目标执行器的平均读取速度;
根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
可选地,所述多个目标执行器中包括第一目标执行器,所述第一目标执行器用于执行训练任务并保存检查点信息,所述方法还包括:
检测所述第一目标执行器保存检查点信息的进度是否存在异常;所述检查点信息为所述第一目标执行器从目标参数器中获取的;
若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;
确定备选第一目标执行器,采用所述备选第一目标执行器和所述多个目标执行器继续执行训练任务,并采用所述第一目标执行器继续保存检查点信息。
可选地,所述检测所述第一目标执行器保存检查点信息的进度是否存在异常,包括:
记录所述第一目标执行器向服务器开始发送检查点信息的第一时间点,并记录所述第一目标执行器发送完成所述检查点信息的第二时间点;
根据所述第二时间点和所述第一时间点之间的差值确定第一数据延迟时间;
若所述第一数据延迟时间大于或等于第一阈值,则确定所述第一目标执行器保存检查点信息的进度存在异常。
可选地,所述根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器,包括:
分别确定每个所述目标执行器的读取速度与所述平均读取速度的差值的绝对值,得到绝对差值;
将所述绝对差值大于或等于第二阈值的目标执行器确定为读取速度异常的异常执行器。
可选地,所述方法还包括:
检测所述目标参数器是否存在异常;所述目标参数器用于保存所述多个目标执行器返回的参数信息,所述参数信息为所述目标执行器根据当前训练更新的模型梯度信息;
若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。
可选地,所述检测所述目标参数器是否存在异常,包括:
检测所述目标参数器的内存使用率;
若所述内存使用率大于或等于第三阈值,则确定所述目标参数器存在异常。
可选地,所述检测所述目标参数器是否存在异常,包括:
记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点;
根据所述第三时间点和所述第四时间点之间的差值确定第二数据延迟时间;
若所述第二数据延迟时间大于或等于第四阈值,则确定所述目标参数器存在异常。
在本发明实施的第二方面,还提供了一种服务器,所述服务器包括:
读取速度确定模块,用于在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
平均读取速度确定模块,用于根据所述读取速度确定所述多个目标执行器的平均读取速度;
异常执行器确定模块,用于根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
继续执行模块,用于若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
可选地,所述多个目标执行器中包括第一目标执行器,所述第一目标执行器用于执行训练任务并保存检查点信息,所述服务器还包括:
进度异常检测模块,用于检测所述第一目标执行器保存检查点信息的进度是否存在异常;所述检查点信息为所述第一目标执行器从目标参数器中获取的;
训练任务暂停模块,用于若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;
备选执行器确定模块,用于确定备选第一目标执行器,采用所述备选第一目标执行器和所述多个目标执行器继续执行训练任务,并采用所述第一目标执行器继续保存检查点信息。
可选地,所述进度异常检测模块包括:
第一记录子模块,用于记录所述第一目标执行器向服务器开始发送检查点信息的第一时间点,并记录所述第一目标执行器发送完成所述检查点信息的第二时间点;
第一延迟时间确定子模块,用于根据所述第二时间点和所述第一时间点之间的差值确定第一数据延迟时间;
第一异常确定模块,用于若所述第一数据延迟时间大于或等于第一阈值,则确定所述第一目标执行器保存检查点信息的进度存在异常。
可选地,所述异常执行器确定模块包括:
绝对差值确定子模块,用于分别确定每个所述目标执行器的读取位置与所述平均读取位置的差值的绝对值,得到绝对差值;
第二异常确定子模块,用于将所述绝对差值大于或等于第二阈值的目标执行器确定为读取速度异常的异常执行器。
可选地,所述服务器还包括:
参数器异常检测模块,用于检测所述目标参数器是否存在异常;所述目标参数器用于保存所述多个目标执行器返回的参数信息,所述参数信息为所述目标执行器根据当前训练更新的模型梯度信息;
转存模块,用于若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。
可选地,所述参数器异常检测模块包括:
内存检测子模块,用于检测所述目标参数器的内存使用率;
参数器异常确定子模块,用于若所述内存使用率大于或等于第三阈值,则确定所述目标参数器存在异常。
可选地,所述参数器异常检测模块包括:
第二记录子模块,用于记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点;
第二延迟时间确定子模块,用于根据所述第三时间点和所述第四时间点之间的差值确定第二数据延迟时间;
第二异常确定子模块,用于若所述第二数据延迟时间大于或等于第四阈值,则确定所述目标参数器存在异常。
在本发明实施的第三方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的异常恢复方法。
在本发明实施的第四方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的异常恢复方法。
本发明实施例提供的异常恢复方法和服务器,在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别检测所述多个目标执行器对消息队列中的样本数据的读取速度;根据所述读取速度确定所述多个目标执行器的平均读取速度;根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。在上述方法中,通过检测分布式系统中的多个目标执行器对样本数据的读取速度,确定多个目标执行器中是否存在异常执行器,若存在异常执行器,则采用备选执行器继续执行训练任务,从而可以实时检测在线训练过程中目标执行机出现的异常情况,并可利用备选执行机继续执行训练任务,降低了训练的失败率,使得深度学习模型可以及时对发生的事件进行预测,提高了预测时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中的Tensorflow分布式训练的示意图;
图2为本发明实施例中的异常恢复方法的流程图之一;
图3为本发明实施例中的异常恢复方法的流程图之二;
图4为本发明实施例中的异常恢复方法的流程图之三;
图5为本发明实施例中的服务器的结构框图之一;
图6为本发明实施例中的服务器的结构框图之二;
图7为本发明实施例中的服务器的结构框图之三;
图8为本发明实施例中的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
以Tensorflow深度学习模型为例,对本发明实施例的方案做以详细说明。首先介绍Tensorflow是如何支持分布式训练的。
当神经网络样本数据很大时,由于内存限制,模型训练过程是难以完整地运行在单个CPU(Central Processing Unit,中央处理器)或GPU(Graphic Processing Unit,图形处理器)上的,这个时候就需要把样本数据分割成多份样本,在多个设备上放置相同的模型,各个设备采用不同的样本数据对模型训练。不同样本数据运行在不同的设备上,每个设备拥有模型的完整副本并且进行各自单独的训练。
在具体实现过程中,Tensorflow分布式训练中有以下三种角色分配:
ps(parameter server,参数服务器):作为分布式训练的服务端,等待各个执行器来连接;负责保存深度学习模型的参数,在训练过程中更新训练参数。为了方便论述,在本发明实施例中统一称之为目标参数器。
worker(执行器):在TensorFlow的代码注释中被称作supervisors(监督者),作为分布式训练的运算终端,负责读取训练数据进行深度学习训练。为了方便论述,在本发明实施例中统一称之为目标执行器。
chief supervisors(主要监督者):在众多执行器中所选择的一个主要运算终端。该终端是在运算终端中最先启动的,负责保存训练进度的checkpoint(检查点)和读取训练数据集进行训练。为了方便论述,在本发明实施例中统一称之为第一目标执行器。
图1为本发明实施例中的Tensorflow分布式训练的示意图。在图1中,S1所示为第一目标执行器,S2所示为目标执行器1,共有N个目标执行器,S3所示为目标执行器N。第一目标执行器和N个目标执行器中分别部署有多个CPU和多个GPU。第一目标执行器和N个目标执行器负责从流式实时训练数据中读取训练数据,进行深度学习训练。N个目标参数器分别各自与第一目标执行器和N个目标执行器连接。在图2中,S4所示为目标参数器1,S5所示为目标参数器N。第一目标执行器和N个目标执行器在对每一批样本训练后,更新神经网络的参数信息,并将更新的参数信息发送到与其相连的目标参数器,以使目标参数器保存更新的参数信息。第一目标执行器会定期从目标参数器中获取训练参数信息,并保存到表示训练进度的checkpoint文件中,最后再将checkpoint文件保存在分布式系统的服务器中(S6所示为分布式系统的服务器)。如果训练任务失败了,可以从checkpoint文件中恢复训练参数信息,重新训练时直接从失败的检查点处开始训练即可,而不是从头开始训练。
在上述Tensorflow分布式训练机制下,如果目标参数器、多个目标执行器和第一目标执行器中有一个任务角色出现问题,则整个训练任务都将失败。为了降低模型训练的失败率,需要分布式系统的服务器事先对各个任务角色进行有针对性的异常检测,并在出现异常情况时,及时进行异常恢复,以降低训练的失败率、提高对事件预测的时效性。
以下采用图2、图3、图4中提供的异常恢复方法的流程图,分别针对目标执行器、第一目标执行器、参数器的异常恢复方法作以详细说明。
图2是本发明实施例中的异常恢复方法的流程图之一。如图2所示,所述方法包括以下步骤:
步骤101,在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度。
在本发明实施例中,实时训练数据会以消息队列的方式被发送给每个目标执行器,例如图1中的流式实时训练数据即为一种消息队列。此处的目标执行器包括第一目标执行器。每个目标执行器读取消息队列中的样本信息并执行训练任务。在训练的过程中每个目标执行器定时地将对样本数据的读取位置打印到日志里。服务器获取日志信息,通过分析日志信息可以得到每个目标执行器对样本数据的读取速度。具体地,服务器根据读取位置确定每个目标执行器在目标时间段内所读取的消息队列的长度,将所读取的消息队列的长度与目标时间段的长度相除,可得到读取速度。
例如,共有10个目标执行器,其中每个目标执行器读取消息队列的位置都从位置1开始。10秒之后,前9个目标执行器的读取位置到了位置100000,第10个目标执行器的读取位置在位置1000。那么,可以用每个目标执行器在该段时间内所读取的消息队列的长度除以读取时间,得到读取速度。前9个目标执行器读取消息队列的长度分别为100000,读取时间均为10秒,则前9个目标执行器的读取速度为100000/10=10000/秒;第10个目标执行器读取消息队列的长度为1000,读取时间为10秒,则第10个目标执行器的读取速度为1000/秒。
步骤102,根据所述读取速度确定所述多个目标执行器的平均读取速度。
在本发明实施例中,可以将每个目标执行器对样本数据的读取速度相加,并与目标执行器的总数量相除,得到所述多个目标执行器的对样本数据的平均读取速度。
在前述示例中,前9个目标执行器的读取速度为10000/秒,第10个目标执行器的读取速度为1000/秒,则10个目标执行器读取速度相加为10000*9+1000=901000,那么,10个目标执行器的平均读取速度为901000/10=90100/秒。
步骤103,根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器。
在本发明实施例中,根据Tensorflow深度学习模型的设置,每个目标执行器读取消息队列中训练数据的速度应该是相同的,这样才能保证模型训练的有序进行。若有某个目标执行器的读取速度相比于所有目标执行器的平均读取速度差异较大,则说明该目标执行器发生了异常。具体地,将每个目标执行器的读取速度与平均读取速度进行比较,若存在读取速度差距过大的目标执行器,则说明该目标执行器出现了故障,将其确定为异常执行器。因目标执行器中包括第一目标执行器,故异常执行器也可能是第一目标执行器。
步骤104,若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
在本发明实施例中,若检测出读取速度异常的异常执行器,那么该异常执行器已经基本不能进行正常的训练,将会对整个训练任务的顺利进行产生影响。此时,可以尽快停止异常执行器的训练任务,接入并启动备选执行器,让备选执行器无缝接替异常执行器继续消费样本数据执行训练任务。
可选地,所述步骤103包括以下步骤1031-步骤1032:
步骤1031,分别确定每个所述目标执行器的读取速度与所述平均读取速度的差值的绝对值,得到绝对差值。
在本发明实施例中,将每个目标执行器的读取速度与平均读取速度作差,得到差值,对差值取绝对值,得到绝对差值。
在前述示例中,将前9个目标执行器的读取速度10000/秒与平均读取速度90100/秒作差,并对差值取绝对值,得到绝对差值为10000/秒-90100/秒=900/秒;将第10个目标执行器的读取速度1000/秒与平均读取速度90100/秒作差,得到差值为1000/秒-90100/秒=-89100/秒,取绝对值,得到绝对差值为89100/秒。
步骤1032,将所述绝对差值大于或等于第二阈值的目标执行器确定为读取速度异常的异常执行器。
预先确定绝对差值的最大阈值为第二阈值,对于绝对差值大于或等于第二阈值的目标执行器,将其确定为异常执行器。
例如,预先设定的第二阈值为2000/秒,前述示例中第10个目标执行器的绝对差值为89100/秒,远远大于第二阈值,则确定第10个目标执行器为异常执行器。
综上所述,本发明实施例提供的异常恢复方法,在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别检测所述多个目标执行器对消息队列中的样本数据的读取速度;根据所述读取速度确定所述多个目标执行器的平均读取速度;根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。在上述方法中,通过检测分布式系统中的多个目标执行器对样本数据的读取速度,确定多个目标执行器中是否存在异常执行器,若存在异常执行器,则采用备选执行器继续执行训练任务,从而可以实时检测在线训练过程中目标执行机出现的异常情况,并可利用备选执行机继续执行训练任务,降低了训练的失败率,使得深度学习模型可以及时对发生的事件进行预测,提高了预测时效性。
图3是本发明实施例中的异常恢复方法的流程图之二。如图3所示,所述方法包括以下步骤:
步骤201,检测所述第一目标执行器保存检查点信息的进度是否存在异常;所述检查点信息为所述第一目标执行器从目标参数器中获取的。
在本发明实施例中,第一目标执行器除了读取训练数据集进行训练,还负责保存训练进度的检查点信息。要确定第一目标执行器是否异常,除了使用图1中的方法确定其读取训练数据的进度情况,还可以检测其保存检查点信息的进度情况。若第一目标执行器读取训练数据的进度情况和保存检查点信息的进度情况,有一个发生异常,则说明第一目标执行器处于异常状态。
此外,第一目标执行器会定期从目标参数器中获取训练参数信息,并保存到表示训练进度的检测点文件中,最后再将检查点文件保存在分布式系统的服务器中。即第一目标执行器的检查点信息是从目标参数器中获取的。
可选地,所述步骤201包括以下步骤2011-步骤2012:
步骤2011,记录所述第一目标执行器向服务器开始发送检查点信息的第一时间点,并记录所述第一目标执行器发送完成所述检查点信息的第二时间点。
在本发明实施例中,第一目标执行器需要将检查点信息保存在分布式系统的服务器,因此,第一目标执行器需要将检查点信息发送给服务器。可以记录开始发送的时间点,和发送完成的时间点,以此来确定第一目标执行器保存检查点信息的数据延迟情况,数据延迟情况可以反映第一目标执行器保存检查点信息的进度是否存在异常。
步骤2012,根据所述第二时间点和所述第一时间点之间的差值确定第一数据延迟时间。
用第二时间点减去第一时间点,可以得到第一数据延迟时间。
步骤2013,若所述第一数据延迟时间大于或等于第一阈值,则确定所述第一目标执行器保存检查点信息的进度存在异常。
预先确定第一数据延迟时间的最大阈值为第一阈值,若第一数据延迟时间大于或等于第一阈值,则说明第一目标执行器保存检查点信息的数据延迟时间过长,则可以确定第一目标执行器保存检查点信息的进度存在异常。
步骤202,若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务。
在本发明实施例中,若确定第一目标执行器保存检查点信息的进度存在异常,则认为该第一目标执行器无法正常工作,此时需要停止分布式系统中所有目标执行器的训练任务,以避免后续训练过程中的检查点信息无法被第一目标执行器保存。
步骤203,确定备选第一目标执行器,采用所述备选第一目标执行器和所述多个目标执行器继续执行训练任务,并采用所述第一目标执行器继续保存检查点信息。
在本发明实施例中,采用备选第一目标执行器,重新启动一个新的训练任务,然后从异常的第一目标执行器当前在服务器保存的检查点位置恢复训练数据并继续所有目标执行器的训练任务。
综上所述,本发明实施例提供的异常恢复方法,检测所述第一目标执行器保存检查点信息的进度是否存在异常;若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;确定备选执行管理器,采用所述备选执行管理器和所述多个目标执行器继续执行训练任务,并采用所述备选执行管理器继续保存检查点信息。在上述方法中,通过检测第一目标执行器保存检查点信息的进度是否异常,确定第一目标执行器是否正常工作,在确定异常的情况下,利用备选第一目标执行器继续执行训任务,避免了后续训练过程中的检查点信息无法被第一目标执行器保存导致的训练失败,从而降低了训练的失败率,提高了预测时效性。
图4是本发明实施例中的异常恢复方法的流程图之三。如图4所示,所述方法包括以下步骤:
步骤301,检测所述目标参数器是否存在异常;所述目标参数器用于保存所述多个目标执行器返回的参数信息,所述参数信息为所述目标执行器根据当前训练更新的模型梯度信息。
在本发明实施例中,目标参数器负责接收目标执行器返回的参数信息,第一目标执行器和N个目标执行器在对每一批样本训练后,更新模型的参数信息,以使目标执行器进行迭代训练。该参数信息是指模型训练函数的梯度值。每个目标执行器将训练时计算得到的梯度值上传给与其连接的目标参数器,目标参数器根据得到的多个梯度值求梯度平均值,使用该梯度平均值更新其内存中的参数信息。因此,可以通过检测目标参数器的内存使用率和更新参数信息的时延确定目标参数器是否存在异常。
步骤302,若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。
在本发明实施例中,目标参数器需要不断保存模型参数,如果目标参数器存在异常,则会导致训练任务任务失败。若检测到某个目标参数器异常,则将该异常目标参数器已经保存的参数信息迁移转存到备选参数器,然后启动新的备选参数器替代该异常目标参数器的工作。由于在转存过程中需要保持参数信息的一致性,因此需要暂停其他目标参数器的参数更新,以及目标执行器的训练任务,等待异常目标参数器的参数信息转存完成,再继续开启训练任务。
可选地,所述步骤301包括以下步骤3011-步骤3012:
步骤3011,检测所述目标参数器的内存使用率。
在本发明实施例中,目标参数器的功能是保存参数信息,若内存使用率过高,大于或等于预先分配的内存容量将会导致OOM(out of memory,容量用尽),这样会导致目标参数器异常退出,参数信息将无法保存。因此,需要确定目标参数器的内存使用率。
步骤3011,若所述内存使用率大于或等于第三阈值,则确定所述目标参数器存在异常。
在本发明实施例中,预先设定内存使用率的最高限值为第三阈值,若内存使用率大于或等于第三阈值,则说明目标参数器存在异常。例如,若目标参数器的内存使用率一直处于增长状态,涨到95%还没有停止的趋势,那么有很大的概率将会导致OOM,因此,第三阈值可以设置为95%。
可选地,所述步骤301包括以下步骤:
步骤3013,记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点。
在本发明实施例中,目标参数器利用目标执行器发送的已更新的参数信息更新内存中的参数信息,若更新参数信息的延迟过大,则说明目标参数器无法正常工作。可以记录目标执行器向目标参数器上报已更新的参数信息的第三时间点,并记录目标参数器更新内存中的参数信息的第四时间点,从而确定目标参数器更新参数信息的延迟情况。
步骤3014,根据所述第三时间点和所述第四时间点之间的差值确定第二数据延迟时间。
在本发明实施例中,用第三时间点和第四时间点之间的差值可以确定目标参数器更新参数信息所花费的时间,即第二数据延迟时间。
步骤3015,若所述第二数据延迟时间大于或等于第四阈值,则确定所述目标参数器存在异常。
在本发明实施例中,预先设定目标参数器更新参数信息的最大延迟时间为第四阈值,若第二数据延迟时间大于或等于第四阈值,则说明目标参数器更新参数的延迟过大,目标参数器存在异常。
综上所述,本发明实施例提供的异常恢复方法,检测所述目标参数器是否存在异常;若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。在上述方法中,通过检测目标参数器是否异常,来确定是否启用备选参数器,对于异常的目标参数器,由于及时更换了备选参数器,避免了训练任务失败,从而降低了训练的失败率,提高了预测时效性。
图5为本发明实施例中的服务器的结构框图之一。如图5所示,所述服务器400包括:
读取速度确定模块401,用于在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
平均读取速度确定模块402,用于根据所述读取速度确定所述多个目标执行器的平均读取速度;
异常执行器确定模块403,用于根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
继续执行模块404,用于若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
可选地,所述异常执行器确定模块403包括:
绝对差值确定子模块,用于分别确定每个所述目标执行器的读取速度与所述平均读取速度的差值的绝对值,得到绝对差值;
第二异常确定子模块,用于将所述绝对差值大于或等于第二阈值的目标执行器确定为读取速度异常的异常执行器。
综上所述,本发明实施例提供的服务器,在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别检测所述多个目标执行器对消息队列中的样本数据的读取速度;根据所述读取速度确定所述多个目标执行器的平均读取速度;根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。在上述方法中,通过检测分布式系统中的多个目标执行器对样本数据的读取速度,确定多个目标执行器中是否存在异常执行器,若存在异常执行器,则采用备选执行器继续执行训练任务,从而可以实时检测在线训练过程中目标执行机出现的异常情况,并可利用备选执行机继续执行训练任务,降低了训练的失败率,使得深度学习模型可以及时对发生的事件进行预测,提高了预测时效性。
图6为本发明实施例中的服务器的结构框图之二。如图6所示,所述服务器500包括:
进度异常检测模块501,用于检测所述第一目标执行器保存检查点信息的进度是否存在异常;所述检查点信息为所述第一目标执行器从目标参数器中获取的;
训练任务暂停模块502,用于若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;
备选执行器确定模块503,用于确定备选第一目标执行器,采用所述备选第一目标执行器和所述多个目标执行器继续执行训练任务,并采用所述第一目标执行器继续保存检查点信息。
可选地,所述进度异常检测模块501包括:
第一记录子模块,用于记录所述第一目标执行器向服务器开始发送检查点信息的第一时间点,并记录所述第一目标执行器发送完成所述检查点信息的第二时间点;
第一延迟时间确定子模块,用于根据所述第二时间点和所述第一时间点之间的差值确定第一数据延迟时间;
第一异常确定模块,用于若所述第一数据延迟时间大于或等于第一阈值,则确定所述第一目标执行器保存检查点信息的进度存在异常。
综上所述,本发明实施例提供的服务器,检测所述第一目标执行器保存检查点信息的进度是否存在异常;若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;确定备选执行管理器,采用所述备选执行管理器和所述多个目标执行器继续执行训练任务,并采用所述备选执行管理器继续保存检查点信息。在上述方法中,通过检测第一目标执行器保存检查点信息的进度是否异常,确定第一目标执行器是否正常工作,在确定异常的情况下,利用备选第一目标执行器继续执行训任务,避免了后续训练过程中的检查点信息无法被第一目标执行器保存导致的训练失败,从而降低了训练的失败率,提高了预测时效性。
图7为本发明实施例中的服务器的结构框图之三。如图7所示,所述服务器600包括:
参数器异常检测模块601,用于检测所述目标参数器是否存在异常;所述目标参数器用于保存所述多个目标执行器返回的参数信息,所述参数信息为所述目标执行器根据当前训练更新的模型梯度信息;;
转存模块602,用于若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。
可选地,所述参数器异常检测模块601包括:
内存检测子模块,用于检测所述目标参数器的内存使用率;
参数器异常确定子模块,用于若所述内存使用率大于或等于第三阈值,则确定所述目标参数器存在异常。
可选地,所述参数器异常检测模块601包括:
第二记录子模块,用于记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点;
第二延迟时间确定子模块,用于根据所述第三时间点和所述第四时间点之间的差值确定第二数据延迟时间;
第二异常确定子模块,用于若所述第二数据延迟时间大于或等于第四阈值,则确定所述目标参数器存在异常。
综上所述,本发明实施例提供的服务器,检测所述目标参数器是否存在异常;若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。在上述方法中,通过检测目标参数器是否异常,来确定是否启用备选参数器,对于异常的目标参数器,由于及时更换了备选参数器,避免了训练任务失败,从而降低了训练的失败率,提高了预测时效性。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
根据所述读取速度确定所述多个目标执行器的平均读取速度;
根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的异常恢复方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的异常恢复方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种异常恢复方法,其特征在于,所述方法包括:
在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
根据所述读取速度确定所述多个目标执行器的平均读取速度;
根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
2.根据权利要求1所述的方法,其特征在于,所述多个目标执行器中包括第一目标执行器,所述第一目标执行器用于执行训练任务并保存检查点信息,所述方法还包括:
检测所述第一目标执行器保存检查点信息的进度是否存在异常;所述检查点信息为所述第一目标执行器从目标参数器中获取的;
若所述第一目标执行器保存检查点信息的进度存在异常,则暂停所述第一目标执行器和所述多个目标执行器的训练任务;
确定备选第一目标执行器,采用所述备选第一目标执行器和所述多个目标执行器继续执行训练任务,并采用所述第一目标执行器继续保存检查点信息。
3.根据权利要求2所述的方法,其特征在于,所述检测所述第一目标执行器保存检查点信息的进度是否存在异常,包括:
记录所述第一目标执行器向服务器开始发送检查点信息的第一时间点,并记录所述第一目标执行器发送完成所述检查点信息的第二时间点;
根据所述第二时间点和所述第一时间点之间的差值确定第一数据延迟时间;
若所述第一数据延迟时间大于或等于第一阈值,则确定所述第一目标执行器保存检查点信息的进度存在异常。
4.根据权利要求1所述的方法,其特征在于,所述根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器,包括:
分别确定每个所述目标执行器的读取速度与所述平均读取速度的差值的绝对值,得到绝对差值;
将所述绝对差值大于或等于第二阈值的目标执行器确定为读取速度异常的异常执行器。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测所述目标参数器是否存在异常;所述目标参数器用于保存所述多个目标执行器返回的参数信息,所述参数信息为所述目标执行器根据当前训练更新的模型梯度信息;
若所述目标参数器存在异常,则将所述目标参数器已保存的参数信息转存到备选参数器,并采用所述备选参数器保存所述多个目标执行器后续返回的参数信息。
6.根据权利要求5所述的方法,其特征在于,所述检测所述目标参数器是否存在异常,包括:
检测所述目标参数器的内存使用率;
若所述内存使用率大于或等于第三阈值,则确定所述目标参数器存在异常。
7.根据权利要求5所述的方法,其特征在于,所述检测所述目标参数器是否存在异常,包括:
记录所述目标执行器向所述目标参数器上报已更新的参数信息的第三时间点,并记录所述目标参数器根据所述已更新的参数信息更新所述目标参数器中的参数信息的第四时间点;
根据所述第三时间点和所述第四时间点之间的差值确定第二数据延迟时间;
若所述第二数据延迟时间大于或等于第四阈值,则确定所述目标参数器存在异常。
8.一种服务器,其特征在于,所述服务器包括:
读取速度确定模块,用于在确定多个目标执行器针对训练数据集执行训练任务的情况下,分别获取所述多个目标执行器对消息队列中的样本数据的读取速度;
平均读取速度确定模块,用于根据所述读取速度确定所述多个目标执行器的平均读取速度;
异常执行器确定模块,用于根据所述平均读取速度确定所述多个目标执行器中是否存在读取速度异常的异常执行器;
继续执行模块,用于若存在所述异常执行器,则停止所述异常执行器的训练任务,并采用备选执行器继续执行训练任务。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN201911305155.5A 2019-12-17 2019-12-17 一种异常恢复方法和服务器 Active CN111078480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911305155.5A CN111078480B (zh) 2019-12-17 2019-12-17 一种异常恢复方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911305155.5A CN111078480B (zh) 2019-12-17 2019-12-17 一种异常恢复方法和服务器

Publications (2)

Publication Number Publication Date
CN111078480A true CN111078480A (zh) 2020-04-28
CN111078480B CN111078480B (zh) 2023-09-01

Family

ID=70315370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911305155.5A Active CN111078480B (zh) 2019-12-17 2019-12-17 一种异常恢复方法和服务器

Country Status (1)

Country Link
CN (1) CN111078480B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625420A (zh) * 2020-05-21 2020-09-04 浪潮电子信息产业股份有限公司 一种分布式训练任务处理方法、装置、设备及存储介质
WO2023020355A1 (zh) * 2021-08-20 2023-02-23 华为云计算技术有限公司 Ai模型的分布式训练方法和相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423817A (zh) * 2017-04-17 2017-12-01 星环信息科技(上海)有限公司 一种深度学习实现的方法及设备
US20190012576A1 (en) * 2017-07-04 2019-01-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for updating deep learning model
CN109842521A (zh) * 2019-01-28 2019-06-04 西安科技大学 一种移动终端宕机预测系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423817A (zh) * 2017-04-17 2017-12-01 星环信息科技(上海)有限公司 一种深度学习实现的方法及设备
US20190012576A1 (en) * 2017-07-04 2019-01-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for updating deep learning model
CN109842521A (zh) * 2019-01-28 2019-06-04 西安科技大学 一种移动终端宕机预测系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625420A (zh) * 2020-05-21 2020-09-04 浪潮电子信息产业股份有限公司 一种分布式训练任务处理方法、装置、设备及存储介质
WO2023020355A1 (zh) * 2021-08-20 2023-02-23 华为云计算技术有限公司 Ai模型的分布式训练方法和相关设备

Also Published As

Publication number Publication date
CN111078480B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
US10884837B2 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
Soualhia et al. Infrastructure fault detection and prediction in edge cloud environments
US20190220345A1 (en) Forecasting workload transaction response time
US9575855B2 (en) Storage apparatus and failure location identifying method
JP5942509B2 (ja) バッチ処理システム
CN111078480B (zh) 一种异常恢复方法和服务器
CN111209164B (zh) 异常信息存储方法及装置、电子设备、存储介质
US10732873B1 (en) Timeout mode for storage devices
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
Ganapathy AI fitness checks, maintenance and monitoring on systems managing content & data: A study on CMS world
JP4449929B2 (ja) トランザクション装置、遅延障害検出装置及び方法、並びにプログラム
JP6229733B2 (ja) 情報処理装置、方法、プログラム及び記録媒体
CN111078418A (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
US8203937B2 (en) Global detection of resource leaks in a multi-node computer system
CN113778763B (zh) 一种三方接口服务故障智能切换方法及系统
JP6862615B2 (ja) 攻撃検知装置、攻撃検知方法、および攻撃検知プログラム
CN114422395A (zh) 一种链路诊断方法和装置
US11836064B2 (en) Computing device monitoring
US20220164219A1 (en) Processing system, processing method, higher-level system, lower-level system, higher-level program, and lower-level program
US20240037014A1 (en) Prediction of an anomaly of a resource for programming a checkpoint
JP7332028B2 (ja) アイテムの検査を実行するための方法、装置、コンピュータプログラムおよびコンピュータ命令を含む媒体
CN114301927B (zh) 一种分布式系统中主节点选取方法、装置及介质
US20230126193A1 (en) Predictive Remediation Action System
CN110442470B (zh) 一种通信设备的系统稳定性监测及恢复方法
CN118227418A (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