CN111756602B - 神经网络模型训练中的通信超时检测方法和相关产品 - Google Patents

神经网络模型训练中的通信超时检测方法和相关产品 Download PDF

Info

Publication number
CN111756602B
CN111756602B CN202010605539.5A CN202010605539A CN111756602B CN 111756602 B CN111756602 B CN 111756602B CN 202010605539 A CN202010605539 A CN 202010605539A CN 111756602 B CN111756602 B CN 111756602B
Authority
CN
China
Prior art keywords
state
communication operation
global communication
event
global
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
Application number
CN202010605539.5A
Other languages
English (en)
Other versions
CN111756602A (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.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent 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 Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202010605539.5A priority Critical patent/CN111756602B/zh
Publication of CN111756602A publication Critical patent/CN111756602A/zh
Application granted granted Critical
Publication of CN111756602B publication Critical patent/CN111756602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种神经网络模型训练中的通信超时检测方法,该方法包括:第一工作节点进行全局通信操作超时的检测,所述全局通信操作为所述第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;在确定所述全局通信操作超时的情况下,所述第一工作节点重建所述全局通信操作。本申请实施例中,第一工作节点进行全局通信操作超时的检测,并在确定全局通信操作超时的情况下,重建全局通信操作;能够使得全局通信操作顺利进行,避免训练任务卡在集合通信的环节。

Description

神经网络模型训练中的通信超时检测方法和相关产品
技术领域
本申请涉及模型训练领域,尤其涉及一种神经网络模型训练中的通信超时检测方法和相关产品。
背景技术
深度学习正在为众多社会领域带来巨大的发展进步,模型训练是其关键环节。模型训练过程中会读取大量的样本数据,进行大量的数学运算,非常耗时。由于分布式训练系统具有训练效率高的优势,目前通常采用分布式训练系统来实现模型训练。一个分布式训练系统通常包括多个工作节点,每个工作节点需要与其他工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作。在一些分布式训练场景中,工作节点在与其他工作节点进行本地梯度信息传输的通信操作时,往往会发生通信超时的问题。如果工作节点不能及时的检测出通信超时,那么会导致训练失败或者花费更多的时长来完成训练。因此,需要研究高效地通信超时检测方法。
发明内容
本申请实施例公开了一种神经网络模型训练中的通信超时检测方法和相关产品。
第一方面,本申请实施例提供了一种神经网络模型训练中的通信超时检测方法,该方法包括:第一工作节点进行全局通信操作超时的检测,所述全局通信操作为所述第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;在确定所述全局通信操作超时的情况下,所述第一工作节点重建所述全局通信操作。
可选的,本申请实施例提供的神经网络模型训练中的通信超时检测方法应用于采用英伟达聚合通信函数库(Nvidia Collective Communications Library,NCCL)进行通信的分布式训练系统。NCLL是一个实现多图形处理器(Graphics Processing Unit,GPU)的聚合通信(collective communications)库。聚合通信(也称集合通信)可以是all-reduce,all-gather,reduce,broadcast等。NCCL的实现机制是将所有的通信节点(对应于工作节点)首尾连接形成单向环,数据分片流水线传输。当某一个通信进程遇到错误时,其他通信进程都会卡在等待该通过进程进行集合通信的环节。由于NCCL不提供通信超时退出的机制,整个程序也无法自动重启,这往往对训练集群的硬件资源产生极大的浪费。应理解,本申请实施例提供的神经网络模型训练中的通信超时检测方法还可应用于其他不具备超时检测的分布式训练系统。
本申请实施例中,第一工作节点进行全局通信操作超时的检测,并在确定全局通信操作超时的情况下,重建全局通信操作;能够使得全局通信操作顺利进行,避免训练任务卡在集合通信的环节。
在一个可选的实现方式中,所述方法还包括:所述第一工作节点在确定所述全局通信操作超时的情况下,将所述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;所述历史运行状态为在确定所述全局通信操作超时之前保存的所述主线程的运行状态。
所述第一工作节点可以定期保存主线程的运行状态,例如每隔1分钟、5分钟、10分钟等保存一次主线程当前的运行状态。示例性的,第一工作节点采用检查点技术每隔一段时间保存训练现场,当主线程遇到错误时,可以从最近的检查点重新启动。
在该实现方式中,第一工作节点在确定全局通信操作超时的情况下,将神经网络模型的训练任务的主线程的运行状态回退到历史运行状态,能够使得主线程回退到能够继续执行的历史运行状态。
在一个可选的实现方式中,所述第一工作节点进行全局通信操作超时的检测包括:所述第一工作节点在发起所述全局通信操作之前插入第一事件,以及在发起所述全局通信操作之后插入第二事件;通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,其中,所述第一事件的状态用于指示所述全局通信操作是否已发起,所述第二事件的状态用于指示所述全局通信操作是否已完成。
在该实现方式中,通过追踪第一事件和第二事件的状态,可以快速、准确地确定全局通信是否超时。
在一个可选的实现方式中,所述通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测包括:所述第一工作节点通过独立于所述主线程的超时检测线程追踪所述第一事件的状态和所述第二事件的状态,以进行所述全局通信操作超时的检测。
在该实现方式中,通过独立于主线程的超时检测线程追踪第一事件的状态和第二事件的状态,既能提高检测效率,又能避免主线程的影响。
在一个可选的实现方式中,所述确定所述全局通信操作超时的情况包括:在所述第一事件的状态为第一状态且所述第二事件的状态为第二状态的情况下,所述第一工作节点确定所述全局通信操作在进行中;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;在确定所述全局通信操作在进行中的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
在该实现方式中,可以及时检测出全局通信超时的情况。
在一个可选的实现方式中,所述通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,包括:在首次确定所述第一事件的状态为第一状态且所述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;定期检查所述第一事件的状态和所述第二事件的状态;所述确定所述全局通信操作超时的情况包括:基于所述起始时间,确定所述第一事件的状态为所述第一状态且所述第二事件的状态为所述第二状态的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
在该实现方式中,可以及时检测出全局通信超时的情况。
第二方面,本申请实施例提供了一种通信超时检测装置,该通信超时检测装置包括:超时检测单元,用于点进行全局通信操作超时的检测,所述全局通信操作为第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;通信操作重建单元,用于在确定单元确定所述全局通信操作超时的情况下,重建所述全局通信操作。
在一个可选的实现方式中,运行状态回退单元,用于在所述确定单元确定所述全局通信操作超时的情况下,将所述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;所述历史运行状态为在确定所述全局通信操作超时之前保存的所述主线程的运行状态。
在一个可选的实现方式中,所述超时检测单元,具体用于在发起所述全局通信操作之前插入第一事件,以及在发起所述全局通信操作之后插入第二事件;通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,其中,所述第一事件的状态用于指示所述全局通信操作是否已发起,所述第二事件的状态用于指示所述全局通信操作是否已完成。
在一个可选的实现方式中,所述超时检测单元,具体用于通过独立于所述主线程的超时检测线程追踪所述第一事件的状态和所述第二事件的状态,以进行所述全局通信操作超时的检测。
在一个可选的实现方式中,所述确定单元,具体用于在所述第一事件的状态为第一状态且所述第二事件的状态为第二状态的情况下,确定所述全局通信操作在进行中;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;在确定所述全局通信操作在进行中的持续时长超过时间阈值的情况下,确定所述全局通信操作超时。
在一个可选的实现方式中,所述超时检测单元,具体用于在首次确定所述第一事件的状态为第一状态且所述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;定期检查所述第一事件的状态和所述第二事件的状态;基于所述起始时间,确定所述第一事件的状态为所述第一状态且所述第二事件的状态为所述第二状态的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
所述通信操作重建单元,用于在确定所述全局通信操作超时的情况下,重建所述全局通信操作。可选的,所述运行状态回退单元,还用于将所述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;所述历史运行状态为在确定所述全局通信操作超时之前保存的所述主线程的运行状态,例如最近一次保存的运行状态。
关于第二方面或各种可能的实施方式所带来的技术效果,可参考对于第一方面或相应的实现方式的技术效果的介绍。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器,其中,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,使得所述处理器执行如上述第一方面以及任一种可能的实现方式的方法。
第四方面,本申请实施例提供了一种芯片,该芯片包括数据接口和处理器,其中,所述处理器用于执行第一方面或第一方面的任意可能实现方式中的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面以及任一种可能的实现方式的方法。
第六方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面以及任一种可能的实现方式的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种分布式训练流程图的示例;
图2为本申请实施例提供的一种神经网络模型训练中的通信超时检测方法流程图;
图3为本申请实施例提供的另一种神经网络模型训练中的通信超时检测方法流程图;
图4为本申请实施例提供的一种分布式训练神经网络模型的方法流程图;
图5为本申请实施例提供的一种图像预测方法流程图;
图6为本申请实施例提供的一种数据处理装置的结构示意图;
图7是本申请实施例提供的一种服务器的结构示意图;
图8是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
如背景技术所述,分布式训练场景中经常会发生通信超时的问题。如果工作节点不能及时的检测出通信超时,那么会导致训练失败或者卡在通信环节。因此,需要研究高效地通信超时检测方法。
本申请提供了适用于分布式模型训练场景的通信超时检测方法,能够及时检测出通信超时,并重建通信操作。下面对本申请实施例提供的神经网络模型训练中的通信超时检测方法适用的场景进行简单的介绍。
分布式模型训练场景:分布式模型训练系统(或者称分布式训练系统)包括多个工作节点,每个工作节点的功能基本相同,各个工作节点通过对神经网络模型进行多次迭代训练,得到训练好的神经网络模型。在一次迭代中,每个工作节点使用各自的训练样本对神经网络模型进行训练,得到各自的本地梯度信息;然后,多个工作节点之间进行数据同步(对应于全局通信),以使得多个工作节点中的每个工作节点获得所有工作节点的本地梯度信息,然后将得到的所有工作节点的本地梯度信息进行融合,得到全局梯度信息,或者,多个工作节点中的每个工作节点得到通过对所有其他工作节点的本地梯度信息进行融合得到的融合梯度信息,然后将自身的本地梯度信息与融合梯度信息进行融合,得到全局梯度信息。作为一个例子,每个工作节点将自身计算得到的本地梯度信息和/或来自其他工作节点的本地梯度信息发送给其他工作节点,或者发送自身得到的本地梯度信息与接收到的来自于至少一个其他工作节点的本地梯度信息进行融合得到的融合梯度信息,例如,发送给自己的左侧或右侧的工作节点,直到每个工作节点均得到所有工作节点计算得到的本地梯度信息、融合梯度信息或者全局梯度信息;然后,每个工作节点利用由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息,更新神经网络模型。这样的迭代进行多次,每个工作节点在每次迭代中重复执行之前的操作,直到达到训练截止条件,例如,神经网络模型收敛或者训练次数得到预设次数等。在该分布式模型训练场景中,在一些实施例中,每个工作节点采用的神经网络模型相同,并且各工作节点同步更新神经网络模型,不同工作节点训练神经网络模型使用的训练样本不同。也就是说,各工作节点采用的神经网络模型一直是相同的。在一些实施例中,多个工作节点可以是同一个终端设备或者服务器上的多个处理器。举例来说,某个服务器上的8个GPU作为8个工作节点,即一个GPU对应一个工作节点。在一些实施例中,一个工作节点或至少两个工作节点对应一个硬件实体,例如终端设备或者服务器。举例来说,8个笔记本电脑作为8个工作节点,即一个笔记本电脑作为一个工作节点。又举例来说,32台服务器上的256块GPU作为256个工作节点,即每台服务器上8块GPU。又举例来说,分布式训练系统包括的多个工作节点为一个或多个设备(例如服务器)中运行的多个虚拟机。
作为一个例子,分布式训练系统为英伟达(NVIDIA)GPU集群环境,该集群环境下通常采用NCCL进行通信。NCCL的实现机制是将所有的通信节点(对应于工作节点)首尾连接形成单向环,数据分片流水线传输。当某一个通信进程遇到错误时,其他通信进程都会卡在等待该通过进程进行集合通信的环节。由于NCCL不提供通信超时退出的机制,整个程序也无法自动重启,导致训练任务不能继续执行,并对训练集群的硬件资源产生极大的浪费。
在上述场景中,通过实施本申请实施例提供的神经网络模型训练中的通信超时检测方法,能够及时检测出通信超时,并重建通信操作,可以使得训练程序长时间稳定运行。
下面结合一个分布式训练流程图的示例来描述本申请实施例提供的神经网络模型训练中的通信超时检测方法。
图1为本申请实施例提供的一种分布式训练流程图的示例。如图1所示,GPU 0、GPU1、GPU 2以及GPU 3分别为分布式训练系统中的一个工作节点,神经网络模型包括若干个层(Layer),GPU 0、GPU 1、GPU 2以及GPU 3的并行训练过程可以包括:各个层的前向计算(Forward Pass),反向传播(Backward Pass),梯度数据同步(如梯度规约通信(AllreduceGradients))以及参数更新(Update Parameters)。其中,在前向计算中,神经网络模型的各个层依次对输入到神经网络模型的图像进行处理,得到对该图像的处理结果。然后,可以基于处理结果和特定计算规则,得到神经网络模型的最后一层的梯度,在反向传播中,可以将最后一层的梯度反向传播,依次计算神经网络模型的各个层的梯度。在梯度数据同步中,多个工作节点之间可以进行梯度数据的同步(对应于全局通信)。本申请实施例中,梯度数据同步的目的是使得每个工作节点均获得由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息,本申请对实现这一目的的方式不作限定。在参数更新中,各工作节点利用梯度数据同步得到的全局梯度信息,进行神经网络模型的网络参数的更新,例如权重等。
在图1所示的例子中,不同工作节点将不同的训练样本输入至神经网络模型进行前向运算和反向运算,得到各自的本地梯度信息。各工作节点完成一次全局的梯度数据同步(对应于一次全局通信)之后,均能获得由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息或者全部的工作节点计算得到的本地梯度信息;各工作节点利用由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息对各自的神经网络模型进行参数更新。其中,各工作节点可以采用相同的方式对神经网络模型进行更新。
在一些实施例中,梯度数据同步主要占用网络带宽资源,其他操作占用GPU计算资源。下面结合附图来介绍本申请实施例提供的神经网络模型的训练方法。
图2为本申请实施例提供的一种神经网络模型训练中的通信超时检测方法流程图。如图2所示,该方法包括:
201、第一工作节点进行全局通信操作超时的检测。
上述全局通信操作为上述第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作。一次全局通信操作可以理解为一次梯度数据同步,即每个工作节点与其他工作节点同步梯度数据以获得由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息。上述第一工作节点可以是分布式训练系统中的任一工作节点。应理解,分布式训练系统中每个工作节点均可执行图2中的方法流程。可选的,图2中的方法流程应用于英伟达GPU集群环境中的各工作节点。
上述第一工作节点可以是笔记本电脑、台式电脑、平板电脑、手机等终端设备;也可以是服务器;还可以是服务器或者终端设备上运行的虚拟机;还可以是终端设备或者服务器上的处理器,例如图形处理器(GraphicsProcessingUnit,GPU)、中央处理器(CentralProcessingUnit,CPU)、网络处理器(Neural-networkProcessingUnit,NPU)等。
202、在确定全局通信操作超时的情况下,第一工作节点重建全局通信操作。
在一个示例中,第一工作节点为英伟达GPU集群环境中的任一工作节点,第一工作节点上的训练程序(即执行训练任务的程序)在启动时记录NCCL通信操作(communicator)的配置。如果第一工作节点检测到全局通信操作超时,主线程(对应于训练程序)负责销毁并根据记录中的通信操作的配置重建该communicator。
在一些实施例中,第一工作节点还可执行如下操作:上述第一工作节点在确定上述全局通信操作超时的情况下,将上述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;上述历史运行状态为在确定上述全局通信操作超时之前保存的上述主线程的运行状态。在该实施例中,第一工作节点可按照一定时间间隔保存主线程的运行状态(可理解为保存训练现场)。举例来说,第一工作节点每隔预设时长(例如1分钟、10分钟、30分钟等)保存一次主线程当前的运行状态,并将上一次保存的历史运行状态去除以节省存储空间。在一些实施例中,第一工作节点将上述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态可采用检查点技术实现。也就是说,第一工作节点在确定上述全局通信操作超时(对应于主线程出现错误或发生故障)的情况下,将主线程的运行状态回退到最近的检查点,从而实现分布式训练的容错与自动重启。
由于采用NCLL进行通信的分布式训练系统未提供通信超时退出的机制,因此当某一个通信进程遇到错误时,其他通信进程都会卡在等待该通过进程进行集合通信的环节。这样就导致训练任务不能继续执行,即训练任务卡住。
本申请实施例提供了检测全局通信操作超时的方法,在确定全局通信操作超时的情况下,重建全局通信操作,能够实现分布式训练的容错与自动重启。
由于前述实施例未详述第一工作节点进行全局通信操作超时检测(对应于步骤201)的实现方式,下面介绍一些可选的检测全局通信超时的实现方式。
在一些实施例中,步骤201的实现方式如下:第一工作节点在发起全局通信操作之前插入第一事件,以及在发起全局通信操作之后插入第二事件;通过追踪上述第一事件的状态和上述第二事件的状态,进行上述全局通信操作超时的检测,其中,上述第一事件的状态用于指示上述全局通信操作是否已发起,上述第二事件的状态用于指示上述全局通信操作是否已完成。可选的,第一工作节点通过独立于上述主线程的超时检测线程追踪上述第一事件的状态和上述第二事件的状态,以进行上述全局通信操作超时的检测。
第一工作节点确定全局通信操作超时的一个可选的实现方式如下:在上述第一事件的状态为第一状态且上述第二事件的状态为第二状态的情况下,上述第一工作节点确定上述全局通信操作在进行中;其中,上述第一状态表示上述全局通信操作已启动,上述第二状态表示上述全局通信操作未完成;在确定上述全局通信操作在进行中的持续时长超过时间阈值的情况下,上述第一工作节点确定上述全局通信操作超时。
第一工作节点通过追踪上述第一事件的状态和上述第二事件的状态,进行上述全局通信操作超时的检测的一个可选的实现方式如下:在首次确定上述第一事件的状态为第一状态且上述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,上述第一状态表示上述全局通信操作已启动,上述第二状态表示上述全局通信操作未完成;定期检查上述第一事件的状态和上述第二事件的状态。第一工作节点确定全局通信操作超时的一个可选的实现方式如下:基于上述起始时间,确定上述第一事件的状态为上述第一状态且上述第二事件的状态为上述第二状态的持续时长超过时间阈值的情况下,上述第一工作节点确定上述全局通信操作超时。上述持续时长可理解为上述全局通信操作在进行中的持续时长。上述时间阈值可以是100ms、10ms、1s、10s等,本申请不作限定。
下面介绍一个检测全局通信操作超时的举例。
第一工作节点通过对第一事件和第二事件的记录和追踪,来检测NCCL集合通信(即全局通信操作)是否超时。第一事件和第二事件可以为统一计算设备架构(computeunified device architecture,CUDA)中的事件,即cudaevent。第一工作节点在每次全局通信操作发起前后,各插入一个cudaevent,并开启一个独立的线程(即超时检测线程),通过cudaEventQuery查询和记录两个cudaevent(对应于第一事件和第二事件)的状态。cudaEventQuery为CUDA中的一个应用程序接口(application programminginterface,API)。如果第一个cudaevent(对应于第一事件)的状态为cudaErrorNotReady(对应于第二状态),则第一工作节点确定该全局通信操作未启动;如果两个cudaevent的状态均为cudaSuccess(对应于第一状态),则第一工作节点确定该全局通信操作已完成;如果第一个cudaevent的状态为cudaSuccess(对应于第一状态),第二个cudaevent(对应于第二事件)的状态为cudaErrorNotReady(对应于第二状态),则第一工作节点该全局通信操作正在进行中。在该举例中,当第一工作节点首次检查到该全局通信操作处在“进行中”时,可记录一个起始时间;之后每隔一定时间间隔检查一次这两个cudaevent的状态,并记录“进行中”的状态所延续的时间(对应于持续时长),当其超过时间阈值时,就判定该全局通信操作超时。
本申请实施例中,通过追踪第一事件和第二事件的状态,可以快速、准确地确定全局通信是否超时。
图3为本申请实施例提供的另一种神经网络模型训练中的通信超时检测方法流程图。图3中的方法流程是对图2中的方法流程的细化和完善的一个示例。如图3所示,该方法包括:
301、第一工作节点执行第一全局通信操作。
第一全局通信操作可以理解为第一工作节点执行的任一次梯度数据同步,即每个工作节点均获得由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息。在分布式训练中,每个工作节点每次更新神经网络模型之前均需获得由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息,然后,利用全局梯度信息更新神经网络模型。应理解,在分布式训练中,每个工作节点需要进行多次全局通信操作,每次全局通信操作完成之后各工作节点均能得到由全部的工作节点计算得到的本地梯度信息融合得到的全局梯度信息。第一工作节点执行第一全局通信操作可以是上述第一工作节点与至少一个第二工作节点进行数据同步,以使得多个工作节点中的每个工作节点获得所有工作节点的本地梯度信息,然后将得到的所有工作节点的本地梯度信息进行融合,得到全局梯度信息,或者,多个工作节点中的每个工作节点得到通过对所有其他工作节点的本地梯度信息进行融合得到的融合梯度信息,然后将自身的本地梯度信息与融合梯度信息进行融合,得到全局梯度信息。在一些实施例中,第一工作节点运行的主线程执行全局通信操作、更新神经网络模型的参数等操作以完成训练任务(即训练神经网络模型的任务)。
302、第一工作节点在发起第一全局通信操作之前插入第一事件,以及在发起第一全局通信操作之后插入第二事件。
在一些实施例中,第一事件和第二事件均为CUDA中的cuda event。上述超时检测线程可以是独立于主线程的线程,并且在第一工作节点执行训练任务期间一直是开启的。
303、第一工作节点通过超时检测线程追踪第一事件的状态和第二事件的状态。
在一些实施例中,第一工作节点通过超时检测线程追踪第一事件的状态和第二事件的状态可以是:第一工作节点通过超时检测线程按照一定周期(例如每隔1分钟、5分钟、10分钟等)通过cudaEventQuery查询和记录第一事件的状态和第二事件的状态。
304、在第一事件的状态为第一状态且第二事件的状态为第二状态的情况下,第一工作节点确定第一全局通信操作在进行中。
上述第一状态表示上述全局通信操作已启动,上述第二状态表示上述全局通信操作未完成。在一些实施例中,第一工作节点在执行步骤304之前,还可执行如下步骤:在第一事件的状态为第二状态的情况下,第一工作节点确定第一全局通信操作未启动。
305、第一工作节点按照预设间隔查询第一事件的状态和第二事件的状态。
上述预设间隔可以是1分钟、10分钟、30分钟等,本申请实施例不作限定。在一些实施例中,第一工作节点在首次确定第一全局通信操作在进行中之后,可按照预设间隔通过cudaEventQuery查询和记录第一事件的状态和第二事件的状态。
306、第一工作节点判断第一全局通信操作是否完成。
若是,执行步骤310;若否,执行步骤307。
在一些实施例中,第一事件的状态分为第一状态(对应于cudaSuccess)和第二状态(对应于cudaErrorNotReady),第二事件的状态也分为第一状态和第二状态。第一工作节点可根据第一事件的状态和第二事件的状态,确定第一全局通信操作的完成情况。示例性的,在第一事件的状态为第一状态且第二事件的状态为第二状态时,第一工作节点确定第一全局通信在进行中;在第一事件的状态和第二事件的状态均为第一状态时,第一工作节点确定第一全局通信完成;在第一事件的状态为第二状态时,第一工作节点确定第一全局通信未启动。步骤306的实现方式可以是:若上述第一事件的状态为第一状态且上述第二事件的状态为第一状态(对应于cudaSuccess),则上述第一工作节点确定第一全局通信操作完成;否则,确定上述第一全局操作未完成。其中,上述第一状态表示第一全局通信操作已启动。
307、第一工作节点判断第一全局通信操作在进行中的持续时长是否超过时间阈值。
若是,执行步骤308;若否,执行步骤305。在一些实施例中,第一工作节点首次检查到第一全局通信操作处在“进行中”时,记录一个起始时间;然后,根据本次查询第一事件的状态和第二事件的状态的时间与该起始时间,记录第一全局通信操作在进行中的持续时长。举例来说,第一工作节点首次检查到第一全局通信操作处在“进行中”时的时间为第一时间,第二次检查到第一全局通信操作处在“进行中”时的时间为第二时间,则记录第一全局通信操作在进行中的持续时长为第二时间与第一时间之间的时间间隔。
308、第一工作节点重建第一全局通信操作。
在一个示例中,第一工作节点在确定第一全局通信操作在进行中的持续时长超过时间阈值的情况下,可确定第一全局通信操作超时,然后,重建第一全局通信操作。
309、第一工作节点将神经网络模型的训练任务的主线程的运行状态回退到历史运行状态。
上述历史运行状态为在确定第一全局通信操作超时之前保存的上述主线程的运行状态。第一工作节点可每隔预设时长(例如1分钟、10分钟、30分钟等)保存一次主线程当前的运行状态,并将上一次保存的历史运行状态去除以节省存储空间。
310、第一工作节点执行第二全局通信操作。
上述第二全局通信操作是不同于上述第一全局通信操作的另一次全局通信操作。在一些实施例中,第一工作节点在确定第一全局通信操作完成之后,可删除第一事件和第二事件,以便于释放资源。第一工作节点可采用与检测第一全局通信操作超时的方式类似的方式检测第二全局通信操作是否超时。应理解,第一工作节点可采用图3中的方法流程来检测任一全局通信操作是否超时。
本申请实施例中,通过追踪第一事件和第二事件的状态,可及时确定全局通信操作是否超时,并及时重新超时的全局通信操作,以便于训练程序长时间稳定运行。
前述实施例以第一工作节点为例,介绍了分布式训练系统中的一个工作节点如何检测全局通信操作超时的方案。下面介绍在分布式训练系统中,各工作节点如何实现通信超时检测与自动重启的可能的方式。
分布式训练系统中各工作节点按照相同的方式保存主线程的运行状态(即各工作节点保存主线程的运行状态的时间点相同),并均采用图2或图3中的方法流程检查全局通信操作是否超时;每个工作节点在确定全局通信超时的情况下,将主线程的运行状态回退到最近保存的主线程的历史运行状态。举例来说,每个工作节点每隔3分钟(或者其他时长)保存一次主线程的运行状态。又举例来说,每个工作节点在完成对神经网络模型的一次迭代更新之后,立即保存当前的主线程的运行状态。由于分布式训练系统中各工作节点采用相同的方式检测全局通信操作是否超时,并且全局通信操作涉及所有工作节点的通信操作(对应于通信进程),因此任一次全局通信操作均会被所有的工作节点检测到。应理解,在任一次全局通信操作中,只会存在两种情况,一种情况是每个工作节点均检测到全局通信操作超时,另一种情况是每个工作节点均未检测到全局通信操作超时。不可能出现,一部分工作节点检测到全局通信操作超时,另一部分工作节点未检测到全局通信操作超时的情况。每个工作节点在确定全局通信超时的情况下,将主线程的运行状态回退到最近保存的主线程的历史运行状态,这样各工作节点可以从同一运行状态继续执行训练任务。
前述实施例描述了神经网络模型训练中的通信超时检测方法,下面介绍分布式训练神经网络模型的举例。
图4为本申请实施例提供的一种分布式训练神经网络模型的方法流程图。该方法应用于分布式训练系统,如图4所示,该方法包括:
401、分布式训练系统中每个工作节点使用各自的训练样本对神经网络模型进行训练,得到各自的本地梯度信息。
402、分布式训练系统中的各工作节点之间进行数据同步,以使得每个工作节点获得所有工作节点的本地梯度信息。
分布式训练系统中的各工作节点可采用图2或图3中的方法进行全局通信操作超时的检测,以便于训练程序长时间稳定运行。
403、分布式训练系统中每个工作节点将得到的所有工作节点的本地梯度信息进行融合,得到全局梯度信息。
步骤402至步骤403可替换为:分布式训练系统中的各工作节点之间进行数据同步,每个工作节点得到通过对所有其他工作节点的本地梯度信息进行融合得到的融合梯度信息,然后将自身的本地梯度信息与融合梯度信息进行融合,得到全局梯度信息
404、分布式训练系统中每个工作节点利用全局梯度信息更新神经网络模型。
405、分布式训练系统中每个工作节点重复执行之前的操作(即步骤401至步骤404),直到达到训练截止条件。
训练截止条件可以是神经网络模型收敛或者训练次数得到预设次数等。
本申请实施例中,分布式训练系统中各工作节点进行全局通信操作超时的检测,可以使得训练程序长时间稳定运行。
前述实施例描述了分布式训练神经网络模型的方法流程。下面介绍应用训练得到的神经网络模型实现预测任务的举例。
图5为本申请实施例提供的一种图像预测方法流程图。如图5所示,该方法包括:
501、图像处理装置获取待处理图像。
上述图像处理装置可以是上述第一工作节点,也可以是其他工作节点,还可以是未参与神经网络模型训练的装置,例如终端设备或服务器。
在一些实施例中,图像处理装置为服务器,图像处理装置获取待处理图像可以是服务器接收到来自终端设备的待处理图像或者按照用户输入的指令从其他设备获取待处理图像。
在一些实施例中,图像处理装置为服务器,图像处理装置获取待处理图像可以是获取用户上传的待处理图像或者按照用户输入的指令从其他设备获取待处理图像。
502、利用训练得到的神经网络模型对上述待处理图像进行预测处理,得到预测结果。
上述神经网络模型可以是采用前述实施例中的方法训练得到的。应理解,图5为应用神经网络模型的一个示例。采用前述实施例中的训练方法训练得到的神经网络模型可处理不同的预测任务,例如文本识别、图像识别、图像分类等。
在一些实施例中,图像处理装置为服务器,图像处理装置在执行步骤502之后,还可以将预测结果发送给终端设备,例如手机、个人电脑等。
在一些实施例中,图像处理装置为终端设备,图像处理装置在执行步骤502之后,还可以输出预测结果,例如通过显示屏显示预测结果。
本申请实施例中,利用训练得到的神经网络模型对待处理图像进行预测处理,得到预测结果;可高效的实现不同的图像预测任务。
前述实施例描述了第一工作节点实现的神经网络模型训练中的通信超时检测方法以及图像预测方法。下面结合附图介绍第一工作节点的各模块的功能。
图6为本申请实施例提供的一种数据处理装置的结构示意图。图6中的数据处理装置可以为前述实施例中的第一工作节点。如图6所示,数据处理装置可包括:
超时检测单元601,用于点进行全局通信操作超时的检测,上述全局通信操作为第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;
通信操作重建单元602,用于在确定单元603确定上述全局通信操作超时的情况下,重建上述全局通信操作。
在一个可选的实现方式中,运行状态回退单元604,用于在上述确定单元确定上述全局通信操作超时的情况下,将上述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;上述历史运行状态为在确定上述全局通信操作超时之前保存的上述主线程的运行状态。
在一个可选的实现方式中,超时检测单元601,具体用于在发起上述全局通信操作之前插入第一事件,以及在发起上述全局通信操作之后插入第二事件;通过追踪上述第一事件的状态和上述第二事件的状态,进行上述全局通信操作超时的检测,其中,上述第一事件的状态用于指示上述全局通信操作是否已发起,上述第二事件的状态用于指示上述全局通信操作是否已完成。
在一个可选的实现方式中,超时检测单元601,具体用于通过独立于上述主线程的超时检测线程追踪上述第一事件的状态和上述第二事件的状态,以进行上述全局通信操作超时的检测。
在一个可选的实现方式中,确定单元603,具体用于在上述第一事件的状态为第一状态且上述第二事件的状态为第二状态的情况下,确定上述全局通信操作在进行中;其中,上述第一状态表示上述全局通信操作已启动,上述第二状态表示上述全局通信操作未完成;在确定上述全局通信操作在进行中的持续时长超过时间阈值的情况下,确定上述全局通信操作超时。
在一个可选的实现方式中,超时检测单元601,具体用于在首次确定上述第一事件的状态为第一状态且上述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,上述第一状态表示上述全局通信操作已启动,上述第二状态表示上述全局通信操作未完成;定期检查上述第一事件的状态和上述第二事件的状态;基于上述起始时间,确定上述第一事件的状态为上述第一状态且上述第二事件的状态为上述第二状态的持续时长超过时间阈值的情况下,上述第一工作节点确定上述全局通信操作超时。
通信操作重建单元602,还用于响应于上述通信超时状态,重建上述全局通信操作。可选的,上述运行状态回退单元,还用于将上述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;上述历史运行状态为在确定上述全局通信操作超时之前保存的上述主线程的运行状态。
应理解以上数据处理装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成同一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digitalsignal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gate array,简称:FPGA)等。
图7是本申请实施例提供的一种服务器的结构示意图,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备),一个或一个以上加速设备(例如GPU或NPU)724。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器700上执行存储介质730中的一系列指令操作。加速设备724可执行中央处理器722分配的任务,例如图像处理任务。服务器700可以为本申请实施例提供的第一工作节点。
服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由第一工作节点所执行的步骤可以基于该图7所示的服务器结构。具体的,中央处理器722可实现图6中超时检测单元601、通信操作重建单元602、确定单元603以及运行状态回退单元604的功能。
图8为本申请实施例提供的一种终端设备的结构示意图。如图8所示,该终端设备80包括处理器801、存储器802和通信接口803;该处理器801、存储器802和通信接口803通过总线相互连接。图8中的终端设备可以为前述实施例中的第一工作节点。
存储器802包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmablereadonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CDROM),该存储器802用于相关指令及数据。通信接口803用于接收和发送数据。
处理器801可以包括一个或多个CPU以及一个或多个GPU,在处理器801包括一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。上述实施例中由第一工作节点所执行的步骤可以基于该图8所示的终端设备的结构。具体的,处理器801可实现图6中超时检测单元601、通信操作重建单元602、确定单元603以及运行状态回退单元604的功能。
在本申请的实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现前述实施例所提供的神经网络模型训练中的通信超时检测方法。
在本申请的实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现前述实施例所提供的神经网络模型训练中的通信超时检测方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例所提供的神经网络模型训练中的通信超时检测方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例所提供的图像预测方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (6)

1.一种神经网络模型训练中的通信超时检测方法,其特征在于,包括:
第一工作节点进行全局通信操作超时的检测,所述全局通信操作为所述第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;
在确定所述全局通信操作超时的情况下,所述第一工作节点重建所述全局通信操作;所述全局通信操作超时的情况包括:所述全局通信操作在进行中的持续时长超过时间阈值;
所述方法还包括:
所述第一工作节点在确定所述全局通信操作超时的情况下,将所述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;所述历史运行状态为在确定所述全局通信操作超时之前保存的所述主线程的运行状态;
所述第一工作节点进行全局通信操作超时的检测包括:
所述第一工作节点在发起所述全局通信操作之前插入第一事件,以及在发起所述全局通信操作之后插入第二事件;
通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,其中,所述第一事件的状态用于指示所述全局通信操作是否已发起,所述第二事件的状态用于指示所述全局通信操作是否已完成;
所述通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测包括:
所述第一工作节点通过独立于所述主线程的超时检测线程追踪所述第一事件的状态和所述第二事件的状态,以进行所述全局通信操作超时的检测;
所述确定所述全局通信操作超时的情况包括:
在所述第一事件的状态为第一状态且所述第二事件的状态为第二状态的情况下,所述第一工作节点确定所述全局通信操作在进行中;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;
在确定所述全局通信操作在进行中的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
2.根据权利要求1所述的方法,其特征在于,所述通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,包括:
在首次确定所述第一事件的状态为第一状态且所述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;
定期检查所述第一事件的状态和所述第二事件的状态;
所述确定所述全局通信操作超时的情况包括:
基于所述起始时间,确定所述第一事件的状态为所述第一状态且所述第二事件的状态为所述第二状态的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
3.一种通信超时检测装置,其特征在于,包括:
超时检测单元,用于进行全局通信操作超时的检测,所述全局通信操作为第一工作节点与至少一个第二工作节点进行本地梯度信息传输以获得更新神经网络模型所需的全局梯度信息的通信操作;
通信操作重建单元,用于在确定单元确定所述全局通信操作超时的情况下,重建所述全局通信操作;所述全局通信操作超时的情况包括:所述全局通信操作在进行中的持续时长超过时间阈值;
运行状态回退单元,用于在所述确定单元确定所述全局通信操作超时的情况下,将所述神经网络模型的训练任务的主线程的运行状态回退到历史运行状态;所述历史运行状态为在确定所述全局通信操作超时之前保存的所述主线程的运行状态;
所述超时检测单元,具体用于在发起所述全局通信操作之前插入第一事件,以及在发起所述全局通信操作之后插入第二事件;通过追踪所述第一事件的状态和所述第二事件的状态,进行所述全局通信操作超时的检测,其中,所述第一事件的状态用于指示所述全局通信操作是否已发起,所述第二事件的状态用于指示所述全局通信操作是否已完成;
所述超时检测单元,具体用于通过独立于所述主线程的超时检测线程追踪所述第一事件的状态和所述第二事件的状态,以进行所述全局通信操作超时的检测;
所述确定单元,具体用于在所述第一事件的状态为第一状态且所述第二事件的状态为第二状态的情况下,确定所述全局通信操作在进行中;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;
在确定所述全局通信操作在进行中的持续时长超过时间阈值的情况下,确定所述全局通信操作超时。
4.根据权利要求3所述的通信超时检测装置,其特征在于,
所述超时检测单元,具体用于在首次确定所述第一事件的状态为第一状态且所述第二事件的状态为第二状态时,记录当前时刻为起始时间;其中,所述第一状态表示所述全局通信操作已启动,所述第二状态表示所述全局通信操作未完成;
定期检查所述第一事件的状态和所述第二事件的状态;
基于所述起始时间,确定所述第一事件的状态为所述第一状态且所述第二事件的状态为所述第二状态的持续时长超过时间阈值的情况下,所述第一工作节点确定所述全局通信操作超时。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被移动设备的处理器执行时,使所述处理器执行权利要求1至2任一项所述的方法。
6.一种电子设备,其特征在于,包括存储器和处理器,其中,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,使得所述处理器执行如权利要求1至2任一项所述的方法。
CN202010605539.5A 2020-06-29 2020-06-29 神经网络模型训练中的通信超时检测方法和相关产品 Active CN111756602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010605539.5A CN111756602B (zh) 2020-06-29 2020-06-29 神经网络模型训练中的通信超时检测方法和相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010605539.5A CN111756602B (zh) 2020-06-29 2020-06-29 神经网络模型训练中的通信超时检测方法和相关产品

Publications (2)

Publication Number Publication Date
CN111756602A CN111756602A (zh) 2020-10-09
CN111756602B true CN111756602B (zh) 2022-09-27

Family

ID=72678013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010605539.5A Active CN111756602B (zh) 2020-06-29 2020-06-29 神经网络模型训练中的通信超时检测方法和相关产品

Country Status (1)

Country Link
CN (1) CN111756602B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112766498B (zh) * 2021-01-29 2022-11-22 北京达佳互联信息技术有限公司 模型训练方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109615201A (zh) * 2018-11-30 2019-04-12 拉扎斯网络科技(上海)有限公司 订单分配方法、装置、电子设备和存储介质
CN111147541A (zh) * 2019-11-18 2020-05-12 广州文远知行科技有限公司 基于参数服务器的节点处理方法、装置、设备及存储介质
CN111310775A (zh) * 2018-12-11 2020-06-19 Tcl集团股份有限公司 数据训练方法、装置、终端设备及计算机可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130162661A1 (en) * 2011-12-21 2013-06-27 Nvidia Corporation System and method for long running compute using buffers as timeslices
CN103577833A (zh) * 2012-08-01 2014-02-12 复旦大学 基于运动模板的异常闯入检测方法
US11347191B2 (en) * 2015-07-29 2022-05-31 Illinois Tool Works Inc. System and method to facilitate welding software as a service
CN108122027B (zh) * 2016-11-29 2021-01-12 华为技术有限公司 一种神经网络模型的训练方法、装置及芯片
US10649790B1 (en) * 2017-08-24 2020-05-12 Amazon Technologies, Inc. Multithreaded rendering for virtualized graphics processing
CN110134636B (zh) * 2018-02-09 2023-04-18 中兴通讯股份有限公司 模型训练方法、服务器和计算机可读存储介质
CN109034279B (zh) * 2018-06-04 2023-04-25 平安科技(深圳)有限公司 手写模型训练方法、手写字识别方法、装置、设备及介质
CN109255822B (zh) * 2018-07-13 2023-02-24 中国人民解放军战略支援部队航天工程大学 一种多尺度编码和多重约束的超时间分辨率压缩感知重建方法
CN109919313B (zh) * 2019-01-31 2021-06-08 华为技术有限公司 一种梯度传输的方法及分布式训练系统
US11379727B2 (en) * 2019-11-25 2022-07-05 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for enhancing a distributed medical network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109615201A (zh) * 2018-11-30 2019-04-12 拉扎斯网络科技(上海)有限公司 订单分配方法、装置、电子设备和存储介质
CN111310775A (zh) * 2018-12-11 2020-06-19 Tcl集团股份有限公司 数据训练方法、装置、终端设备及计算机可读存储介质
CN111147541A (zh) * 2019-11-18 2020-05-12 广州文远知行科技有限公司 基于参数服务器的节点处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111756602A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
US11210185B2 (en) Method and system for data recovery in a data system
US9367598B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
CN106648994B (zh) 一种备份操作日志的方法,设备和系统
CN107451013B (zh) 基于分布式系统的数据恢复方法、装置及系统
CN110413432B (zh) 一种信息处理方法、电子设备及存储介质
CN105824846B (zh) 数据迁移方法及装置
US10031814B2 (en) Collection record location as log tail beginning
US11748215B2 (en) Log management method, server, and database system
CN109033814A (zh) 智能合约触发方法、装置、设备及存储介质
US20160314026A1 (en) Establishing causality order of computer trace records
CN111756602B (zh) 神经网络模型训练中的通信超时检测方法和相关产品
CN111666266A (zh) 一种数据迁移方法及相关设备
CN113297173B (zh) 分布式数据库集群管理方法及装置、电子设备
CN112783447A (zh) 用于处理快照的方法、装置、设备、介质和产品
CN108121514B (zh) 元信息更新方法、装置、计算设备及计算机存储介质
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN113806309A (zh) 基于分布式锁的元数据删除方法、系统、终端及存储介质
CN108647113B (zh) 一种灾难恢复方法及服务器
CN117395263B (zh) 一种数据同步方法、装置、设备和存储介质
CN111444040B (zh) 一种元数据备份方法及装置
EP2975516B1 (en) Intelligent application back stack management
CN109271457A (zh) 一种数据同步方法及装置
CN115629918B (zh) 数据处理方法、装置、电子设备及存储介质
EP4239482A1 (en) Electronic device and method with on-demand accelerator checkpointing
WO2023206142A1 (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