CN113656175B - 基于分布式系统训练模型的方法及设备 - Google Patents
基于分布式系统训练模型的方法及设备 Download PDFInfo
- Publication number
- CN113656175B CN113656175B CN202110951403.4A CN202110951403A CN113656175B CN 113656175 B CN113656175 B CN 113656175B CN 202110951403 A CN202110951403 A CN 202110951403A CN 113656175 B CN113656175 B CN 113656175B
- Authority
- CN
- China
- Prior art keywords
- training
- node
- training task
- sub
- task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 370
- 238000012549 training Methods 0.000 title claims abstract description 255
- 230000008569 process Effects 0.000 claims abstract description 236
- 238000012544 monitoring process Methods 0.000 claims description 20
- 230000004913 activation Effects 0.000 claims 1
- 239000000725 suspension Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013135 deep learning Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供的基于分布式系统训练模型的方法、设备及程序产品,涉及深度学习技术,应用于分布式系统中的任一节点,包括:从发现服务器中获取各节点的进程信息,若进程信息表征存在故障进程,则控制节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,发现服务器用于存储各节点中用于执行训练任务的进程信息;在确定故障消除后,控制主进程重启用于执行训练任务的子进程,并基于重启后的子进程继续执行训练任务。本公开提供的方案利用节点中的主进程管理用于执行训练任务的子进程,在需要继续执行训练任务时,仅重启子进程,重启后的子进程能够使用主进程占用的资源执行训练任务,从而降低进程重启时间,提高节点计算资源的利用率。
Description
技术领域
本公开涉及人工智能技术中的深度学习技术,尤其涉及一种基于分布式系统训练模型的方法、设备及程序产品。
背景技术
目前,人工智能技术越来越成熟,基于人工智能技术训练得到的模型被应用到越来越多的场景中,比如人脸识别、语义识别等。
在基于人工智能技术训练模型时,需要进行大规模的训练,才能够得到识别结果准确的模型。在训练数据和参数规模增长的过程中,常规的单机训练由于硬件资源的限制渐渐显得捉襟见肘,而分布式训练则成为了广大开发者的必然选择。
分布式训练是指使用多台机器共同完成训练任务,以提高训练速度。各训练节点可以将训练得到的数据同步到共享存储中。当用于训练任务的任一节点故障时,各节点的任务退出并释放节点的计算资源。当故障恢复后,各节点从共享存储中下载数据,并重新训练任务。
在重新开始训练的过程中,训练任务在计算资源上重新启动时有冷启动问题,每个计算节点会重新加载数据进行预热,在此阶段会造成计算资源存在一些空闲时段,进而造成节点资源的利用率低的问题。
发明内容
本公开提供了一种基于分布式系统训练模型的方法、设备及程序产品,以解决现有技术中利用分布式系统训练模型时,造成节点资源的利用率低的问题。
根据本公开的第一方面,提供了一种基于分布式系统训练模型的方法,所述方法应用于分布式系统中的任一节点,所述方法包括:
从发现服务器中获取各节点的进程信息,若所述进程信息表征存在故障进程,则控制所述节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,所述发现服务器用于存储各节点中用于执行训练任务的进程信息;
在确定故障消除后,控制所述主进程重启用于执行所述训练任务的子进程,并基于重启后的子进程继续执行所述训练任务。
根据本公开的第二方面,提供了一种基于分布式系统训练模型的装置,所述装置应用于分布式系统中的任一节点,所述装置包括:
监控单元,用于从发现服务器中获取各节点的进程信息;
暂停训练单元,用于若所述进程信息表征存在故障进程,则控制所述节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,所述发现服务器用于存储各节点中用于执行训练任务的进程信息;
重新训练单元,用于在确定故障消除后,控制所述主进程重启用于执行所述训练任务的子进程,并基于重启后的子进程继续执行所述训练任务。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
本公开提供的基于分布式系统训练模型的方法、设备及程序产品,利用节点中的主进程管理用于执行训练任务的子进程,在需要继续执行训练任务时,仅重启子进程,重启后的子进程能够使用主进程占用的资源执行训练任务,从而降低进程重启时间,提高节点计算资源的利用率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为一示例性实施例示出的利用分布式系统训练模型的示意图;
图2为本公开一示例性实施例示出的基于分布式系统训练模型的方法的流程示意图;
图3为本公开一示例性实施例示出的系统结构图;
图4为本公开另一示例性实施例示出的基于分布式系统训练模型的方法的流程示意图;
图5为本公开一示例性实施例示出的系统架构图;
图6为本公开一示例性实施例示出的基于分布式系统训练模型的装置的结构示意图;
图7为本公开另一示例性实施例示出的基于分布式系统训练模型的装置的结构示意图;
图8是用来实现本公开实施例的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在训练模型时,一般需要电子设备对大量的训练数据进行处理,学习这些训练数据与数据标签之间的关联关系,从而得到准确的模型。但是,由于单台电子设备的算力有限,利用一台电子设备对大量的训练数据进行处理时,训练速度较慢,因此,可以利用多台电子设备共同完成一个模型训练任务,也就是可以利用分布式系统架构来训练模型。
图1为一示例性实施例示出的利用分布式系统训练模型的示意图。
如图1所示,在分布式系统中包括多个节点11,每个节点可以是一台电子设备,这些电子设备共同执行一个模型训练任务。
可选地,若各节点采用的是数据并行的模型训练方式,则各节点可以基于相同的训练方式训练模型。若各节点采用的是模型并行的模型训练方式,则各节点可以基于不同的训练方式进行模型训练。
可选地,每一轮训练完成后,各节点之间都可以同步数据。
现有技术中,若分布式系统中的任一节点发生了故障,其他各节点会退出训练任务并释放节点的计算资源。当故障恢复后,各节点再获取任务退出前的模型数据,并重新训练任务。由于各节点需要重新加载数据,并重新分配计算资源,这一过程耗时较长,且这一过程节点的计算资源处于空闲时段,因此,现有技术中基于分布式系统训练模型时存在资源利用率低的问题。
为了解决上述技术问题,本公开提供的方案中,当分布式系统中用于执行训练任务的子进程出现故障时,各节点控制主进程暂停子进程执行训练任务,并在故障恢复后,节点控制主进程重启子进程,重启子进程时,由于节点的主进程未重启,因此,主进程占用的计算资源不会被释放,各子进程能够利用主进程占用的计算资源快速启动,进而提高子进程的启动速度,以提高分布式系统资源的利用率。
图2为本公开一示例性实施例示出的基于分布式系统训练模型的方法的流程示意图。
如图2所示,本公开提供的基于分布式系统训练模型的方法,应用于分布式系统中的任一节点。
分布式系统中包括多个计算节点,每个节点可以是一台电子设备,比如可以是一台计算机。这些节点共同完成一个模型训练任务。其中的任一节点都可以执行本公开提供的方法。
本公开提供的基于分布式系统训练模型的方法,包括:
步骤201,从发现服务器中获取各节点的进程信息,若进程信息表征存在故障进程,则控制节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,发现服务器用于存储各节点中用于执行训练任务的进程信息。
可选地,分布式系统还可以与发现服务器连接,具体可以由分布式系统中的各节点与发现服务器连接。
图3为本公开一示例性实施例示出的系统结构图。
如图3所示,在分布式系统31之外,还设置有发现服务器32,分布式系统31中的各节点311可以与发现服务器32交互,上报节点311中用于训练任务的各进程的状态,具体可以上报主进程以及子进程的状态。
可选地,发现服务器31用于存储各节点中用于执行训练任务的进程信息,具体存储的可以包括主进程以及各主进程的子进程的状态。
可选地,节点在接收到训练任务后,可以启动主进程,并基于主进程启动子进程,从而利用各子进程直接执行训练任务。
可选地,节点启动主进程后,主进程可以占用计算资源,各子进程基于主进程占用的计算资源执行训练任务。
可选地,节点可以通过与发现服务器交互的方式,获取分布式系统中其他各节点的进程信息。比如,节点可以监控分布式服务器中存储的多个进程信息,还可以由分布式服务器向节点推送进程信息。
可选地,进程信息中可以包括进程所属节点的信息,还可以包括进程的状态,比如进程正常或进程异常,若进程异常则表征进程故障。
可选地,若进程信息表征存在故障进程,则说明分布式系统中存在一个节点无法利用其中的一个进程正常执行训练任务,因此,当前执行本公开提供的方法的节点可以控制主进程暂停各子进程执行训练任务,这些子进程是指用于执行训练任务的子进程。
可选地,由于分布式系统中的各节点共同执行模型训练任务,因此,当存在故障节点时,各节点需要暂停执行训练任务。本公开提供的方法中,在需要暂停执行训练任务时,各节点控制自身内部的主进程暂停子进程执行训练任务,具体可以由节点控制主进程,再由主进程指示子进程暂停执行训练任务。
步骤202,在确定故障消除后,控制主进程重启用于执行训练任务的子进程,并基于重启后的子进程继续执行训练任务。
可选地,节点可以通过发现服务器持续监控各节点的状态,以确定故障是否消除。比如,若故障进程所属的节点被抛弃,则可以认为故障消除。例如,节点确定发现服务器中没有记录故障进程所述的节点中的任何进程,则可以认为所述故障进程所属节点被抛弃。
可选地,若节点确定故障消除,则可以重新执行训练任务。
可选地,节点可以向主进程发送指令,以使主进程控制子进程重启,并继续执行训练任务。节点不关闭或重启主进程,从而使得主进程占用的资源不被释放。而重启后的子进程能够使用主进程占用的资源执行训练任务。
这种实现方式中,通过主进程管理各用于执行训练任务的子进程,从而在重新执行训练任务时仅重启子进程。由于主进程占用了计算资源,使得子进程重启后可以直接基于主进程占用的计算资源执行训练任务,无需节点为重启后的子进程重新分配计算资源,能够提高子进程重启速度。
可选地,还可以设置一共享存储,各节点可以将模型训练过程中得到的模型和参数同步到该共享存储中,当节点的子进程继续执行训练任务之前,可以从共享存储中获取最新的模型和参数,从而在这些数据的基础上继续训练模型。
本公开提供的基于分布式系统训练模型的方法,方法应用于分布式系统中的任一节点,方法包括:从发现服务器中获取各节点的进程信息,若进程信息表征存在故障进程,则控制节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,发现服务器用于存储各节点中用于执行训练任务的进程信息;在确定故障消除后,控制主进程重启用于执行训练任务的子进程,并基于重启后的子进程继续执行训练任务。本公开提供的方法,利用节点中的主进程管理用于执行训练任务的子进程,在需要继续执行训练任务时,仅重启子进程,重启后的子进程能够使用主进程占用的资源执行训练任务,从而降低进程重启时间,提高节点计算资源的利用率。
图4为本公开另一示例性实施例示出的基于分布式系统训练模型的方法的流程示意图。
如图4所示,本公开提供的基于分布式系统训练模型的方法,包括:
分布式系统中包括多个计算节点,每个节点可以是一台电子设备,比如可以是一台计算机。这些节点共同完成一个模型训练任务。其中的任一节点都可以执行本公开提供的方法。
步骤401,接收训练任务,并根据训练任务启动用于执行训练任务的主进程,以及主进程的子进程;其中,每一子进程由节点的每一图形处理器执行。
可选地,还可以设置任务调度系统,可以由任务调度系统获取待执行的训练任务,并将训练任务分配给分布式系统中的多个节点。比如,可以将一个训练任务的信息发送给分布式系统中的20个节点。
一种可选的实施方式中,任务调度系统还可以根据任务执行情况,增加或者减少用于执行模型训练任务的节点数量。
可选地,各节点可以接收训练任务的具体信息,比如可以包括训练该任务所使用的训练数据的地址信息,再比如待训练的模型结构等。
可选地,节点接收到训练任务后,可以启动主进程,还可以基于该主进程启动多个子进程,这些子进程用于执行训练任务。
可选地,主进程可以作为程序执行的入口,可以理解为常用的主函数,主进程可以创建子进程,一个子进程只能对应一个主进程,而一个主进程可以对应多个子进程。
可选地,节点中可以设置至少一个图形处理器(GPU),每个GPU执行一个子进程。比如,一个节点中设置有n个GPU,则该节点中可以启动n个子进程,每一个GPU执行每一个子进程。
可选地,节点中可以设置初始化模块,节点的初始化模块可以初始化训练环境,还可以启动主进程以及各个子进程、初始化各个子进程之间的通信域、启动各个子进程的训练进程。
步骤402,向发现服务器发送主进程的信息与子进程的信息。
可选地,节点在启动了主进程和子进程之后,可以向发现服务器发送主进程的信息与子进程的信息,从而通过发现服务器记录这些主进程的信息和子进程的信息。
可选地,节点的初始化模块还可以初始化弹性监控模块,可以利用弹性监控模块将主进程的信息和子进程的信息发送给发现服务器,以注册进程。
这种实施方式中,发现服务器中记录有各节点的进程信息,进而使得各节点能够从发现服务器中获取其他节点的进程的信息,从而及时确定其他节点中是否存在故障的进程。
步骤403,在训练过程中,控制各子进程向共享资源同步训练得到的模型信息和模型参数。
可选地,还可以设置一个共享资源,用于记录训练模型时得到的模型和参数。节点在执行训练任务的过程中,可以控制各子进程向共享资源同步训练得到的模型信息和模型参数。
可选地,可预先根据需求设置同步频率n,比如,每训练了n次后同步一次模型信息和模型参数。
可选地,如果各节点采用的是数据并行的训练模式,则各个节点的模型信息相同,但是模型参数不同;如果各节点采用的是模型并行的训练模式,则每个GPU上报的模型信息是不同的。
这种实施方式中,可以利用共享资源存储各节点的训练结果,从而需要重新训练模型时,使得各节点可以从该共享资源中获取数据,以恢复到任务暂停前的状态,这种方式不需要从头开始训练,在任务中断后还能够继续训练。
步骤404,从发现服务器中获取各节点的进程信息,若进程信息表征存在故障进程,则控制节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,发现服务器用于存储各节点中用于执行训练任务的进程信息。
步骤404与步骤201的实现方式类似,不再赘述。
步骤405,从发现服务器中获取各节点的后续进程信息。
可选地,若节点控制子进程暂停执行训练任务,则该节点还可以从发现服务器中获取各其他节点的后续进程信息,具体可以持续的获取其他各节点的后续进程信息,从而根据这一信息确定故障是否消除。
可选地,可以由节点中的弹性监控模块从发现服务器获取后续进程信息。
步骤406,根据后续进程信息确定故障是否消除。
可选地,节点可以根据获取的后续进程信息确定此前的故障是否消除。发现服务器中可以记录各节点的进程信息,而进程的状态能够表征出各节点是否存在故障,因此,节点可以根据后续进程信息确定故障是否消除。
这种实施方式中,节点可以根据监控到的进程信息及时获知故障是否消除,从而能够在故障消除时快速重启子进程,以便重新执行训练任务,能够进一步的提高节点资源的利用率。
可选地,若后续进程信息表征故障进程所属的节点被抛弃,则确定故障消除。比如,在后续进程信息中,不存在故障进程所述节点中的任何进程,则可以认为该节点被抛弃,在这种情况下,节点可以认为故障消除。
可选地,若在预设时长内,故障进程所属的节点还没有重启故障进程,无法修复该故障进程,则可以抛弃该节点,具体可以由任务调度系统控制该节点退出训练任务。
这种实施方式中,由于存在故障进程的节点被抛弃,不再执行训练任务,因此,可以认为故障消除,使得节点重新执行训练任务,从而能够快速的执行训练任务,提高分布式系统的资源利用率。
可选地,若后续进程信息表征故障进程所属的节点中的训练任务由新加入节点执行,则确定故障消除。比如,在后续进程信息中,存在新加入节点的进程的信息,且不包括故障的进程,因此,可以认为故障进程所属节点的任务由该新加入的节点来执行。
可选地,若分布式系统中还存在空闲的节点,则任务调度系统可以将训练任务发送到空闲节点中,使得该空闲节点替代故障进程所属节点执行训练任务。
可选地,空闲节点的初始化模块可以初始化训练环境,还可以启动主进程以及各个子进程、初始化各个子进程之间的通信域、启动各个子进程的训练进程。
这种实施方式中,由于新加入了节点,由该节点替代原节点执行任务,因此,可以认为当前故障消除,使得节点重新执行训练任务,从而能够快速的执行训练任务,提高分布式系统的资源利用率。
步骤407,在确定故障消除后,控制节点中的主进程基于自身占用的计算资源重启子进程。
可选地,在确定故障消除后,节点可以控制主进程重启子进程,具体可以基于主进程占用的计算资源重启子进程。
可选地,节点中的主进程不被停止或重启,因此,主进程占用的计算资源不会被释放,那么子进程运行时可以直接使用主进程占用的计算资源。
这种实施方式中,子进程重启时不需要重新为其分配计算资源,进而能够快速的继续执行训练任务,以提高分布式系统的资源利用率。
可选地,若节点根据后续进程信息确定故障进程所属的节点被抛弃,则节点还可以根据后续进程信息确定用于执行训练任务的进程总数量。比如,可以确定分布式系统中用于训练模型的子进程总数量。
可选地,节点可以根据进程总数量更新训练参数,并利用重启后的子进程根据更新后的训练参数继续执行训练任务。
可选地,节点可以根据进程总数量调整学习率和批尺寸(batchsize),进而使得各节点能够利用更新后的学习率和批尺寸(batchsize)执行训练任务。
这种实施方式中,当分布式系统中的节点被抛弃后,其他各节点可以分担被抛弃节点所执行的训练任务,以使分布式系统中的剩余的各节点仍然能够完成最初的模型训练任务。
步骤408,从共享资源中获取暂停执行训练任务之前的模型数据;其中,共享资源用于存储各节点在训练过程中训练得到的模型数据。
可选地,节点在执行模型训练任务的过程中,可以定期向共享资源中同步训练得到的模型数据,具体可以包括模型信息和模型参数。
可选地,节点中的子进程重启后,节点可以从该共享资源中获取模型数据,具体可以获取其中最新的数据,以得到暂停执行训练任务之前的模型数据。比如,在时刻t时暂停执行训练任务,则节点可以从共享资源中获取时刻t之前最晚存储的模型数据。
步骤409,根据模型数据继续执行训练任务。
可选地,节点可以利用获取的暂停执行训练任务之前的模型数据,将模型恢复到暂停执行训练前的状态,进而可以继续对暂停执行训练任务之前的模型进行训练。
这种实施方式中,虽然节点中断了模型的训练过程,但是通过从共享资源中获取最新的模型数据的方式,能够使节点继续执行模型训练任务,而无需从头开始训练。
图5为本公开一示例性实施例示出的系统架构图。
如图5所示,启动任务后,由任务调度系统51向各节点52发送训练任务。
节点52中的初始化模块521可以启动弹性监控模块522,还可以启动主进程523,以及各子进程524。弹性监控模块522可以向发现服务器53发送主进程523,以及各子进程524的信息,从而向发现服务器53注册进程。
节点52可以通过发现服务器53监控各节点的状态变化。
节点52在执行模型训练任务时,各子进程524还可以向共享存储54同步训练结果,从而在重启进程后,可以从共享存储54中获取最新的模型数据。
图6为本公开一示例性实施例示出的基于分布式系统训练模型的装置的结构示意图。
如图6所示,本公开提供的基于分布式系统训练模型的装置,应用于分布式系统中的任一节点,所述装置600包括:
监控单元610,用于从发现服务器中获取各节点的进程信息;
暂停训练单元620,用于若所述进程信息表征存在故障进程,则控制所述节点的主进程暂停用于执行训练任务的子进程执行训练任务;其中,所述发现服务器用于存储各节点中用于执行训练任务的进程信息;
重新训练单元630,用于在确定故障消除后,控制所述主进程重启用于执行所述训练任务的子进程,并基于重启后的子进程继续执行所述训练任务。
本公开提供的基于分布式系统训练模型的装置,利用节点中的主进程管理用于执行训练任务的子进程,在需要继续执行训练任务时,仅重启子进程,重启后的子进程能够使用主进程占用的资源执行训练任务,从而降低进程重启时间,提高节点计算资源的利用率。
图7为本公开另一示例性实施例示出的基于分布式系统训练模型的装置的结构示意图。
如图7所示,本公开提供的基于分布式系统训练模型的装置,应用于分布式系统中的任一节点,所述装置700中,监控单元710与图6中所述的监控单元610类似,暂停训练单元720与图6中的暂停训练单元620类似,重新训练单元730与图6中的重新训练单元630类似。
本公开提供的基于分布式系统训练模型的装置中,重新训练单元730包括:
进程重启模块731,用于控制所述节点中的所述主进程基于自身占用的计算资源重启所述子进程。
其中,所述重新训练单元730,包括:
数据获取模块732,用于从共享资源中获取暂停执行所述训练任务之前的模型数据;其中,所述共享资源用于存储各节点在训练过程中训练得到的模型数据;
任务执行模块733,用于根据所述模型数据继续执行所述训练任务。
在暂停训练单元暂停执行训练任务之后,所述监控单元710还用于:
从所述发现服务器中获取各节点的后续进程信息;
根据所述后续进程信息确定故障是否消除。
其中,所述监控单元710包括:
第一监控模块711,用于若所述后续进程信息表征故障进程所属的节点被抛弃,则确定所述故障消除。
所述重新训练单元730具体用于:
根据所述后续进程信息确定用于执行训练任务的进程总数量;
根据所述进程总数量更新训练参数,并利用重启后的子进程根据更新后的训练参数继续执行所述训练任务。
其中,所述监控单元710包括:
第二监控模块712,用于若所述后续进程信息表征故障进程所属的节点中的训练任务由新加入节点执行,则确定所述故障消除。
所述装置,还包括启动单元740,用于:
接收训练任务,并根据所述训练任务启动用于执行所述训练任务的主进程,以及所述主进程的子进程;其中,每一子进程由节点的每一图形处理器执行;
向所述发现服务器发送所述主进程的信息与所述子进程的信息。
所述的装置,还包括同步单元750,用于:
在训练过程中,控制各子进程向共享资源同步训练得到的模型信息和模型参数。
本公开提供一种基于分布式系统训练模型的方法、设备及程序产品,应用于人工智能技术中的深度学习技术,以解决现有技术中利用分布式系统训练模型时,造成节点资源的利用率低的问题。
需要说明的是,本实施例中的人头模型并不是针对某一特定用户的人头模型,并不能反映出某一特定用户的个人信息。需要说明的是,本实施例中的二维人脸图像来自于公开数据集。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如基于分布式系统训练模型的方法。例如,在一些实施例中,基于分布式系统训练模型的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的基于分布式系统训练模型的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于分布式系统训练模型的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (16)
1.一种基于分布式系统训练模型的方法,所述方法应用于分布式系统中的第一节点,所述方法包括:
从发现服务器中获取各节点的进程信息,若所述进程信息表征存在故障进程,则控制所述第一节点内部的主进程暂停用于执行训练任务的子进程执行训练任务;其中,所述发现服务器用于存储各节点中用于执行训练任务的进程信息;
在确定故障消除后,控制所述第一节点中的所述主进程基于所述主进程自身占用的计算资源重启所述子进程,并基于重启后的子进程继续执行所述训练任务;
在暂停执行训练任务之后,还包括:
从所述发现服务器中获取各节点的后续进程信息;
根据所述后续进程信息确定故障是否消除。
2.根据权利要求1所述的方法,其中,所述基于重启后的子进程继续执行所述训练任务,包括:
从共享资源中获取暂停执行所述训练任务之前的模型数据;其中,所述共享资源用于存储各节点在训练过程中训练得到的模型数据;
根据所述模型数据继续执行所述训练任务。
3.根据权利要求1所述的方法,其中,所述根据所述后续进程信息确定故障是否消除,包括:
若所述后续进程信息表征故障进程所属的节点被抛弃,则确定所述故障消除。
4.根据权利要求3所述的方法,所述基于重启后的子进程继续执行所述训练任务,包括:
根据所述后续进程信息确定用于执行训练任务的进程总数量;
根据所述进程总数量更新训练参数,并利用重启后的子进程根据更新后的训练参数继续执行所述训练任务。
5.根据权利要求1-4任一项所述的方法,其中,所述根据所述后续进程信息确定故障是否消除,包括:
若所述后续进程信息表征故障进程所属的节点中的训练任务由新加入节点执行,则确定所述故障消除。
6.根据权利要求1-4任一项所述的方法,还包括:
接收训练任务,并根据所述训练任务启动用于执行所述训练任务的主进程,以及所述主进程的子进程;其中,每一子进程由节点的每一图形处理器执行;
向所述发现服务器发送所述主进程的信息与所述子进程的信息。
7.根据权利要求1-4任一项所述的方法,还包括:
在训练过程中,控制各子进程向共享资源同步训练得到的模型信息和模型参数。
8.一种基于分布式系统训练模型的装置,所述装置应用于分布式系统中的第一节点,所述装置包括:
监控单元,用于从发现服务器中获取各节点的进程信息;
暂停训练单元,用于若所述进程信息表征存在故障进程,则控制所述第一节点内部的主进程暂停用于执行训练任务的子进程执行训练任务;其中,所述发现服务器用于存储各节点中用于执行训练任务的进程信息;
重新训练单元,用于在确定故障消除后,控制所述第一节点中的所述主进程基于所述主进程自身占用的计算资源重启所述子进程,并基于重启后的子进程继续执行所述训练任务;
在暂停训练单元暂停执行训练任务之后,所述监控单元还用于:
从所述发现服务器中获取各节点的后续进程信息;
根据所述后续进程信息确定故障是否消除。
9.根据权利要求8所述的装置,其中,所述重新训练单元,包括:
数据获取模块,用于从共享资源中获取暂停执行所述训练任务之前的模型数据;其中,所述共享资源用于存储各节点在训练过程中训练得到的模型数据;
任务执行模块,用于根据所述模型数据继续执行所述训练任务。
10.根据权利要求8所述的装置,其中,所述监控单元包括:
第一监控模块,用于若所述后续进程信息表征故障进程所属的节点被抛弃,则确定所述故障消除。
11.根据权利要求10所述的装置,所述重新训练单元具体用于:
根据所述后续进程信息确定用于执行训练任务的进程总数量;
根据所述进程总数量更新训练参数,并利用重启后的子进程根据更新后的训练参数继续执行所述训练任务。
12.根据权利要求8-11任一项所述的装置,其中,所述监控单元包括:
第二监控模块,用于若所述后续进程信息表征故障进程所属的节点中的训练任务由新加入节点执行,则确定所述故障消除。
13.根据权利要求8-11任一项所述的装置,还包括启动单元,用于:
接收训练任务,并根据所述训练任务启动用于执行所述训练任务的主进程,以及所述主进程的子进程;其中,每一子进程由节点的每一图形处理器执行;
向所述发现服务器发送所述主进程的信息与所述子进程的信息。
14.根据权利要求8-11任一项所述的装置,还包括同步单元,用于:
在训练过程中,控制各子进程向共享资源同步训练得到的模型信息和模型参数。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951403.4A CN113656175B (zh) | 2021-08-18 | 2021-08-18 | 基于分布式系统训练模型的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951403.4A CN113656175B (zh) | 2021-08-18 | 2021-08-18 | 基于分布式系统训练模型的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656175A CN113656175A (zh) | 2021-11-16 |
CN113656175B true CN113656175B (zh) | 2022-07-08 |
Family
ID=78481137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110951403.4A Active CN113656175B (zh) | 2021-08-18 | 2021-08-18 | 基于分布式系统训练模型的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656175B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712830A (zh) * | 2021-08-20 | 2023-02-24 | 华为云计算技术有限公司 | Ai模型的分布式训练方法和相关设备 |
CN114169427B (zh) * | 2021-12-06 | 2022-10-04 | 北京百度网讯科技有限公司 | 基于端到端自适应的分布式训练方法、装置、设备 |
CN114780225B (zh) * | 2022-06-14 | 2022-09-23 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN117312839A (zh) * | 2022-06-29 | 2023-12-29 | 华为技术有限公司 | 模型训练方法、装置、系统及相关设备 |
CN117687814A (zh) * | 2023-07-26 | 2024-03-12 | 荣耀终端有限公司 | 异常处理方法、系统以及存储介质 |
CN116755941B (zh) * | 2023-08-21 | 2024-01-09 | 之江实验室 | 一种节点故障感知的分布式模型训练的方法及装置 |
CN117032088B (zh) * | 2023-09-01 | 2024-04-09 | 广东思豪内高压科技有限公司 | 基于高精密内高压成型系统的智能伺服控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101342A (zh) * | 2018-07-20 | 2018-12-28 | 北京百度网讯科技有限公司 | 分布式作业协调控制方法、装置、计算机设备及存储介质 |
CN112000448A (zh) * | 2020-07-17 | 2020-11-27 | 北京计算机技术及应用研究所 | 基于微服务架构的应用管理方法 |
CN112231121A (zh) * | 2020-10-20 | 2021-01-15 | 北京金山云网络技术有限公司 | 创建进程的方法、装置和电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750607B (zh) * | 2011-06-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种选择性恢复测试执行的方法及装置 |
US9652247B2 (en) * | 2014-01-24 | 2017-05-16 | Nec Corporation | Capturing snapshots of offload applications on many-core coprocessors |
CN104850394B (zh) * | 2015-04-17 | 2018-04-17 | 北京大学 | 分布式应用程序的管理方法和分布式系统 |
US10228966B2 (en) * | 2017-02-03 | 2019-03-12 | Huawei Technologies Co., Ltd. | Methods ad systems for hibernation of processes in computing devices |
CN112905331B (zh) * | 2019-11-19 | 2024-06-07 | 上海商汤智能科技有限公司 | 任务处理系统、方法及装置、电子设备和存储介质 |
-
2021
- 2021-08-18 CN CN202110951403.4A patent/CN113656175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101342A (zh) * | 2018-07-20 | 2018-12-28 | 北京百度网讯科技有限公司 | 分布式作业协调控制方法、装置、计算机设备及存储介质 |
CN112000448A (zh) * | 2020-07-17 | 2020-11-27 | 北京计算机技术及应用研究所 | 基于微服务架构的应用管理方法 |
CN112231121A (zh) * | 2020-10-20 | 2021-01-15 | 北京金山云网络技术有限公司 | 创建进程的方法、装置和电子设备 |
Non-Patent Citations (3)
Title |
---|
"A low level component model easing performance portability of HPC applications";Julien Bigot;《Computing》;20131123;第96卷;第1115-1130页 * |
"python监控进程并重启";风中的沙;《https://www.cnblogs.com/my-python-2019/p/11177224.html》;20190712;第1-4页 * |
"嵌入式aCoral多线程调试器的研究与实现";赵俊涛;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第03期);第I138-1187页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113656175A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113656175B (zh) | 基于分布式系统训练模型的方法及设备 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN112653758B (zh) | 边缘节点的更新方法、装置、设备和介质 | |
CN110825495A (zh) | 一种容器云平台的恢复方法、装置、设备及可读存储介质 | |
US11354150B1 (en) | Utilizing maintenance event windows to determine placement of instances | |
JP2022017588A (ja) | 深層学習フレームワークのトレーニング方法、装置及び記憶媒体 | |
CN114328098B (zh) | 一种慢节点检测方法、装置、电子设备及存储介质 | |
CN117742959A (zh) | 基于集群的训练方法、装置、电子设备及存储介质 | |
CN115964153A (zh) | 一种异步任务处理方法、装置、设备以及存储介质 | |
EP4224317A1 (en) | Method and apparatus for controlling distributed operation system, and device, medium and program product | |
CN115509821A (zh) | 一种系统异常处理方法、装置、设备及存储介质 | |
CN113553216B (zh) | 数据恢复方法、装置、电子设备及存储介质 | |
CN112925811B (zh) | 数据处理的方法、装置、设备、存储介质及程序产品 | |
CN113608765A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
CN115756615A (zh) | 一种快速启动方法、装置、设备及存储介质 | |
EP3396553A1 (en) | Method and device for processing data after restart of node | |
CN113419921A (zh) | 一种任务监控方法、装置、设备以及存储介质 | |
US20250029010A1 (en) | Cluster-based training methods, devices, electronic equipment and storage media | |
CN114566148B (zh) | 集群语音识别服务及其检测方法、装置及电子设备 | |
CN114979141B (zh) | 一种任务处理方法、装置、设备以及存储介质 | |
CN116107957A (zh) | 集群恢复方法、装置、设备和存储介质 | |
CN115495411A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114968515A (zh) | 脚本处理方法、装置、电子设备及存储介质 | |
CN117608925A (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 |