训练方法、设备、系统及存储介质与流程
					未命名
					08-14
					阅读:211
					评论:0
									
								 
										
                            1.本技术涉及云计算技术领域,尤其涉及一种训练方法、设备、系统及存储介质。
背景技术:
2.随着人工智能(artificial intelligence,ai)的发展,ai模型不断增大,使得ai作业的训练成本不断地攀升。目前,存在一种基于抢占式实例(又称即时型实例(spot instance))执行训练任务的方法。抢占式实例是云计算平台提供的一种按需实例,相对于非抢占式按需实例而言具有一定的价格折扣。基于抢占式实例进行ai模型训练,可降低ai训练任务的实例成本。
3.但是,抢占实例在带来成本大幅降低的同时,也带来了不稳定的问题。抢占实例会因为价格波动或库存不足而被回收,进而导致运行在抢占式实例上的ai训练作业也会被异常终止掉。因此,如何在降低训练成本的同时兼顾训练质量,是一种亟待解决的技术问题。
技术实现要素:
4.本技术的多个方面提供一种训练方法、设备、系统及存储介质,用以在降低训练成本的同时兼顾训练质量。
5.本技术实施例提供一种训练方法,包括:接收训练任务,并获取所述训练任务对应的作业类型;将所述训练任务调度到所述作业类型对应的分布式训练组进行训练;所述分布式训练组用于基于所述作业类型对应的弹性训练框架执行训练任务;所述分布式训练组包括资源池中的至少一个抢占式实例节点;根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。
6.可选地,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,在所述分布式训练组内对所述训练任务进行弹性缩容,包括:若所述至少一个抢占式实例节点中的第一节点更新为不可用状态,触发所述分布式训练组进行弹性缩容,以基于所述分布式训练组中的剩余可用节点重新分配所述训练任务。
7.可选地,还包括:根据预设的训练配置信息,判断是否重启所述第一节点上的工作进程;若为是,则重启所述工作进程,并设置所述工作进程为暂停状态;根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容,包括:在所述分布式训练组中新增第二节点,将所述工作进程从暂停状态恢复为运行状态;触发所述分布式训练组进行弹性扩容,以使得所述工作进程运行在新增的所述第二节点上。
8.可选地,在所述分布式训练组中新增第二节点,包括:判断所述资源池中是否存在与预设的资源抢占策略匹配的抢占式实例资源;若为是,则在所述资源池中创建抢占式实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
9.可选地,还包括:若所述资源池中不存在与预设的所述资源抢占策略匹配的抢占
式实例资源,则根据所述工作进程的训练任务量,在所述资源池中创建至少一个按需实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
10.可选地,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容,包括:若所述资源池中的抢占式实例资源满足预设的资源抢占策略,在所述资源池中创建第三节点,所述第三节点为抢占式实例节点;将所述第三节点添加到所述分布式训练组,并触发所述分布式训练组进行弹性扩容,以基于新增节点后的分布式训练组重新分配所述训练任务。
11.可选地,还包括:监听所述资源池中的抢占式实例节点的回收事件;若监听到所述资源池中的任一抢占式实例节点被回收,则确定所述抢占式实例节点的使用状态为不可用状态。
12.本技术实施例还提供一种训练系统,包括:弹性训练控制组件、调度决策器、弹性扩缩容组件以及分布式训练组;其中,所述分布式训练组包括资源池中的至少一个抢占式实例节点;其中,所述弹性训练控制组件,用于:接收训练任务,并获取所述训练任务对应的作业类型;利用所述调度决策器,将所述训练任务调度到所述作业类型对应的分布式训练组,以使所述分布式训练组基于所述作业类型对应的弹性训练框架执行训练任务;以及,利用所述弹性扩缩容组件,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。
13.本技术实施例还提供一种服务器,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本技术实施例提供的方法中的步骤。
14.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本技术实施例提供的方法中的步骤。
15.本技术实施例中,分布式训练组基于弹性训练框架执行训练任务,使得训练任务的工作进程可运行在分布式训练组的实例节点上。由于弹性训练框架支持训练任务的工作进程的动态变化,进而使得训练过程能够支持训练所需的分布式节点产生动态数量变化。在此基础上,当分布式训练组包含抢占式实例节点时,可结合抢占式实例节点的状态,对训练任务进行弹性扩容或者弹性缩容。进而,可在充分利用抢占式实例进行训练以降低训练成本的同时,使得训练任务能够自动地进行扩容或者缩容而非终止,进而有利于提升训练质量以及训练效率。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1为本技术一示例性实施例提供的训练系统的结构示意图;
18.图2为本技术一示例性实施例提供的弹性训练控制组件的结构示意图;
19.图3为本技术一示例性实施例提供的弹性扩缩容流程示意图;
20.图4为本技术一示例性实施例提供的训练方法的流程示意图;
21.图5为本技术一示例性实施例提供的服务器的结构示意图。
具体实施方式
22.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
24.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
25.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
26.在一种基于抢占式实例进行训练的方案中,在用户提交训练任务时,可以指定使用抢占式实例资源来进行抢占实例训练。在这种方案中,当抢占式实例即将回收时,可进行训练状态的保存。当抢占实例的价格或库存再次符合用户设定的要求时,可自动重新拉起训练任务以完成训练任务。但是,在这种方案中,当抢占资源有限时,用户的训练任务仍旧无法执行,因此导致训练效率降低。
27.针对现有技术中无法兼顾训练成本以及训练质量的技术问题,在本技术一些实施例中,提供了一种解决方案,以下结合附图,详细说明本技术各实施例提供的技术方案。
28.图1为本技术一示例性实施例提供的训练系统的结构示意图,该训练系统可部署在容器集群上,如图1所示,该训练系统包括:作业层10、调度层20以及资源层30。
29.其中,作业层10包括:至少一个弹性训练控制组件101,不同弹性训练控制组件分别对应不同的作业类型。
30.其中,调度层20包括:调度决策器201以及弹性扩缩容组件202。其中,弹性扩容组件202可包括如图1所示的集群自动缩放服务以及弹性伸缩服务。
31.其中,资源层30用于提供资源池,该资源池可提供抢占式实例资源以及非抢占式的按需实例(on demand instance)资源。其中,按需实例是一种根据用户的规格、需求进行创建并付费的弹性容器实例。抢占式实例是按需实例的一种,需通过竞价的方式创建、且能够被动态回收。抢占式实例的价格可低于非抢占式的按需实例。非抢占式的按需实例,则根据用户的购买时长确定生命周期。为简化描述并便于区分,除特殊说明外,以下实施例所述的按需实例,为非抢占式的按需实例。基于资源层30提供的资源,可创建实例节点,并基于实例节点组建分布式训练组,如图1所示的分布式训练组301。其中,一个分布式训练组可包括多个实例节点,一个实例节点对应一个弹性容器实例。在本实施例中,为降低训练成本,一个分布式训练组可包括至少一个抢占式实例节点。
32.任一分布式训练组,用于基于弹性训练框架执行训练任务。其中,弹性训练框架,是指能够支持参与训练的工作进程的个数动态变化的分布式训练框架。弹性训练框架部署在分布式训练组的实例节点上,以基于分布式训练组提供的计算资源实现弹性分布式训练。弹性训练框架通常包括:控制(或称驱动(driver))进程以及工作(worker)进程。其中,控制进程可运行在cpu(central processing unit,中央处理器)类型的实例节点上,工作进程可运行在cpu或者gpu(graphics processing unit,图形处理器)类型的实例节点上。在弹性分布式训练框架中,工作进程主要用于执行分配到的训练任务。控制进程主要用于:将任务分配到可用的工作进程,并实时检测现有的工作进程是否有变化,例如检测是否出现进程掉线情况。控制进程还可用于通过监本实时检测主机(host)是否有变化,若有新主机加入,则可在新主机上生成新的工作进程,并利用新的工作进程与原工作进程构造新的通信环。在本实施例中,用于部署弹性训练框架的主机,由资源池中的实例节点提供,即弹性训练框架的控制进行以及工作进行运行在实例节点上,该实例节点可包括抢占式实例节点以及按需实例节点中的至少一种。
33.基于上述训练系统,可向用户提供低成本、高质量的ai训练服务。以下将进行示例性说明。
34.图2对弹性训练控制组件的结构进行了示例性说明,弹性训练控制组件主要用于通过监听以及管理的方式,控制其管理的资源。如图2所示,弹性训练控制组件包括一组训练控制器,即:训练任务控制器、缩容控制器以及扩容控制器。
35.其中,缩容控制器,用于负责训练任务的生命生命周期的管理。缩容控制器以及扩容控制器,用于负责训练任务的弹性伸缩的管理。其中,训练任务的弹性伸缩,包括:训练任务的弹性扩容以及训练任务的弹性缩容。其中,弹性扩容是指,在更多的实例节点上启动训练任务的工作进程。即,使用更多的实例节点执行训练任务,以扩展用于执行训练任务的资源数量,从而提升训练任务的训练效率。其中,弹性缩容是指,从一个或者多个实例节点中结束已部署的训练任务的工作进程,以减少用于执行训练任务的资源数量。其中,训练任务可被拆分为多个子任务,任一工作线程可执行训练任务的一个或者多个子任务。对训练任务进行弹性扩容,即为增加用于运行训练任务的工作线程的实例节点的数量;对训练任务进行弹性缩容,即为减少用于运行训练任务的工作线程的实例节点的数量。从而,可在弹性训练框架支持工作线程的数量动态变化的前提下,使得训练任务能够容忍抢占式实例资源的回收,在节约训练成本的情况下提升训练质量。
36.图2所示的启动器用于创建容器(应用容器),得到弹性容器实例。如图2所示,启动器用于在pod(容器引擎中的最小可部署单元)中创建应用容器之前,可启动一个或者多个初始化容器,以完成应用容器所需的预置条件的初始化以及验证操作。当弹性容器实例被回收或者创建时,启动器可更新主机文件,以触发训练任务的弹性扩缩容操作。如图2所示,分布式训练组上可运行弹性训练框架的多个工作进程,任一工作进程运行在pod的容器中,且被配置为无头服务(headless services)以便于外部查找。图2所示的密钥(公钥与私钥),用于对容器用户进行登录认证,以提升容器使用的安全性。其中,扩容组件可通过启动器创建新的弹性容器实例,并在新的弹性实例上启动训练任务的工作进程,以实现训练任务的弹性扩容。
37.在一些实施例中,资源层30可包括多个不同的分布式训练组。不同分布式训练组
可基于相同或者不同的弹性训练框架执行不同类型的训练任务。在训练系统中,任一弹性训练控制组件101,用于接收训练任务,获取该训练任务对应的作业类型,并利用调度决策器201将该训练任务调度到该作业类型对应的分布式训练组进行训练。该分布式训练组,用于基于该作业类型对应的弹性训练框架执行训练任务。
38.在执行训练的过程中。弹性训练控制组件101,可根据该分布式训练组中的至少一个抢占式实例节点的使用状态,和/或,资源池中的抢占式实例资源的可用性,利用弹性扩缩容组件202控制该分布式训练组对该训练任务进行弹性扩容或者弹性缩容。其中,资源池中的抢占式实例资源的可用性,是指资源池中的抢占式实例资源满足预设的资源抢占策略,该预设的资源抢占策略可用于描述实例类型、实例规格、区域(region)、可用区(availability zone)以及竞价价格中的至少一种。例如,资源池中的某一类型的抢占式实例资源满足用户的实例规格要求,库存充足,且价格低于用户设定的竞价价格时,则确定该抢占式实例资源具有可用性。
39.其中,任一节点的使用状态,包括:可用状态或者不可用状态。对按需实例节点而言,自被创建时刻起,其使用状态为可用状态。若按需实例节点的生命周期结束,则其使用状态为不可用状态。针对抢占式实例节点而言,当抢占式实例节点由于满足用户的竞价价格被创建时,该抢占式实例节点为可用状态。当抢占式实例节点由于价格波动或者库存不足被回收时,该抢占式实例节点为不可用状态。
40.在一些实施例中,当分布式训练组中的某一抢占式实例节点或者按需实例节点的使用状态为不可用状态时,弹性训练控制组件101可利用弹性扩缩容组件202控制该分布式训练组对该训练任务进行弹性缩容。在弹性缩容时,可在该处于不可用状态的实例节点上结束运行中的训练任务的工作进程,以在该实例节点上移除训练任务。
41.在另一些实施例中,当弹性缩容后,若资源池中存在可用的抢占式实例资源,则弹性训练控制组件101可利用弹性扩缩容组件202控制该分布式训练组对该训练任务进行弹性扩容。弹性扩容时,可根据可用的抢占式实例资源创建抢占式实例节点,并在抢占式实例节点上启动训练任务的工作进程,以将训练任务部署到该抢占式实例节点上。
42.在又一些实施例中,在未进行弹性缩容的前提下,若资源池中存在可用的抢占式实例资源,弹性训练控制组件101可利用弹性扩缩容组件202控制该分布式训练组对该训练任务进行弹性缩容,以在分布式训练组中增加更多低成本的抢占式实例节点。
43.可选地,上述实施例中的抢占式实例节点的使用状态,可通过作业层10中的作业监管组件102监测,如图1所示。作业监管组件102可提供针对训练任务的到时终止能力、释放通知能力、可观测能力、失效转移(failover)能力、容错(fail tolerance)能力、横向扩展(scaleout)能力。其中,针对训练任务的可观测能力是指,作业监管组件102能够检测训练任务的运行状态,从而向用户及时地提供反馈信息的能力。其中,针对训练任务的失效转移能力是指,作业监管组件102能够在训练任务的部分工作进程异常结束后,重新拉起工作进程并继续执行训练任务的能力。其中,针对训练任务的容错能力是指,作业监管组件102在训练任务的部分节点出现故障后,能够恢复故障节点上的训练任务的能力。
44.在本实施例中,作业监管组件102主要用于:监听资源池中的抢占式实例节点的回收事件;若监听到资源池中的任一抢占式实例节点被回收,则确定该抢占式实例节点的使用状态为不可用状态。进而,在分布式训练组中的任一抢占式实例节点被回收时,作业监管
组件102可触发弹性训练控制组件101对该训练任务进行弹性缩容。
45.在本实施例中,分布式训练组基于弹性训练框架执行训练任务,使得训练任务的工作进程可运行在分布式训练组的实例节点上。由于弹性训练框架支持训练任务的工作进程的动态变化,进而使得训练过程能够支持训练所需的分布式节点产生动态数量变化。在此基础上,当分布式训练组包含抢占式实例节点时,可结合抢占式实例节点的状态,对训练任务进行弹性扩容或者弹性缩容。进而,可在充分利用抢占式实例进行训练以降低训练成本的同时,使得训练任务能够自动地进行扩容或者缩容而非终止,进而有利于提升训练质量以及训练效率。
46.以下将以分布式训练组中的任一抢占式实例节点(例如第一节点)发生回收为例,对训练任务的弹性缩容或者弹性扩容进行示例性说明。
47.在一些示例性的实施例中,若分布式训练组包含的至少一个抢占式实例节点,第一节点更新为不可用状态,则弹性训练控制组件可触发该分布式训练组进行弹性缩容,以基于该分布式训练组中的剩余可用节点重新分配该训练任务。在这种实施方式中,弹性训练控制组件可监听该分布式训练组上运行的工作进程的变化。第一节点被回收后,第一节点上的工作进程被删除。当弹性训练控制组件监听到该工作进程被删除后,可更新弹性训练框架的主机文件(hostfile),该分布式训练组上运行的控制进程可通过读取该主机文件感知工作进程出现掉线的情况,并可启动弹性缩容流程,以根据剩余的工作进程重新分配训练任务。在弹性缩容的过程中,控制进程可通知剩余的工作进程重启,并基于重启后的工作进程重建分布式训练组。
48.可选地,第一节点被回收后,弹性训练控制组件可根据预设的训练配置信息,判断是否重启第一节点上的工作进程。其中,该训练配置信息可由用户设置,在提交训练任务时,用户可一并提交训练配置信息。该配置信息可用于配置训练任务所需的节点数量阈值(包括上限数量阈值和/或下限数量阈值)、资源抢占策略、按需资源补充策略、以及抢占式实例资源被回收后的处理策略中的至少一种。其中,抢占式实例资源被回收后的处理策略,可包括:结束抢占式实例资源上的进程或者重启抢占式实例资源上的进程。
49.若弹性训练控制组件根据该抢占式实例资源被回收后的处理策略,判定在第一节点被回收后重启第一节点上的工作进程,则可设置该工作进程为暂停状态(pending)。在这种情况下,弹性训练控制组件可根据资源池中的资源可用情况以及用户配置的按需资源补充策略,为该分布式训练组补充新的节点。即,弹性训练控制组件可在训练任务执行弹性缩容之后,对训练任再次执行弹性扩容以补充算力。
50.可选地,弹性训练控制组件在控制分布式训练组对训练任务进行弹性扩容时,可在该分布式训练组中新增第二节点,将第一节点上的工作进程从暂停状态恢复为运行状态,并触发分布式训练组进行弹性扩容,以使得该工作进程运行在新增的第二节点上。
51.在这种实施方式中,该工作进程恢复为运行状态后,弹性训练控制组件可监听到该工作进程的变化,并更新弹性训练框架的主机文件(hostfile),该分布式训练组上运行的控制进程可通过读取该主机文件感知工作进程再次上线的情况,并可启动弹性扩容流程,以根据扩容后的工作进程重新分配训练任务。在弹性扩容的过程中,控制进程可通知新增的以及原本剩余的工作进程重启,以使得新增的工作进程加入分布式训练组。
52.其中,该第二节点,可以是基于抢占式实例资源的抢占策略以及资源池中的资源
可用情况确定的抢占式实例节点,也可以是根据用户配置的按需资源补充策略确定的按需实例节点。以下将分别进行示例性说明。
53.在一些可选的实施例中,弹性训练控制组件可判断资源池中是否存在与预设的资源抢占策略匹配的抢占式实例资源;若存在,则可在资源池中创建抢占式实例节点,作为第二节点,并将第二节点添加到该分布式训练组。其中,该资源抢占策略,可用于描述实例类型、实例规格、区域、可用区以及竞价价格中的至少一种。弹性训练控制组件可基于该资源抢占策略在资源池中监测是否有可用的抢占式实例资源。在配置资源抢占策略时,可配置多个不同的实例类型、多个不同的区域以及多个不同的可用区,以提升抢占资源可用性。
54.可选地,若资源池中不存在与预设的资源抢占策略匹配的抢占式实例资源,则弹性训练控制组件可根据被回收的第一节点上的工作进程的训练任务量,在资源池中创建至少一个按需实例节点,作为第二节点,并将第二节点添加到分布式训练组。
55.以下将结合图3进行进一步示例性说明。如图3所示,训练任务-01部署在分布式训练组上,并处于运行状态,该分布式训练组内包括启动器进程以及三个运行的工作进程。当分布式训练组中的某个抢占式实例节点被回收时,该节点处于不可用状态,相应地,节点上的工作进程被删除。如图3所示,弹性训练控制组件可通过更新主机文件,触发分布式训练组进行弹性缩容,此时训练任务的作业状态为仍为运行状态。如3所示,若被删除的进程需要进行重启,则弹性训练控制组件可重启工作进程,并设置工作进程为暂停状态,此时训练任务的作业状态为运行状态。当分布式训练组中新增抢占式实例节点或者按需实例节点时,如图3所示,弹性训练控制组件可再次更新主机文件,以触发分布式训练组进行弹性扩容,处于暂停状态的工作进程将恢复为运行状态,此时训练任务的作业状态为仍为运行状态。
56.在这种实施方式中,一方面可在抢占式实例不出的情况下自动补充按需实例以提升训练任务的可用性,另一方面,根据训练任务量创建按需实例节点,有利于根据训练需求进行实例补充,从而节省训练成本。
57.前述实施例记载了分布式训练组中的抢占式实例节点发生回收之后的弹性缩容以及弹性缩容之后的弹性扩容。在一些可选的实施例中,若分布式训练组中未发生节点回收,也可根据可用的抢占式实例资源进行弹性扩容。以下将进行示例性说明。
58.可选地,弹性训练控制组件在根据分布式训练组中节点的使用状态,控制分布式训练组对训练任务进行弹性扩容时,可在资源池中的抢占式实例资源满足预设的资源抢占策略时,在资源池中创建抢占式实例节点作为第三节点。弹性训练控制组件可将该第三节点添加到分布式训练组,并触发分布式训练组进行弹性扩容,以基于新增节点后的分布式训练组重新分配训练任务。
59.基于这种实施方式,在分布式训练组中未发生节点回收时,根据资源池中可用的抢占式实例资源进行弹性扩容,可采用较低的训练成本提升训练算力,从而提升训练质量和训练效率。
60.图4是本技术一示例性实施例提供的训练方法的流程示意图,该方法可包括如图4所示的步骤:
61.步骤401、接收训练任务,并获取所述训练任务对应的作业类型。
62.步骤402、将所述训练任务调度到所述作业类型对应的分布式训练组进行训练;所
述分布式训练组用于基于所述作业类型对应的弹性训练框架执行训练任务;所述分布式训练组包括资源池中的至少一个抢占式实例节点。
63.步骤403、根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。
64.在一些示例性的实施例中,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,在所述分布式训练组内对所述训练任务进行弹性缩容的一种方式,包括:若所述至少一个抢占式实例节点中的第一节点更新为不可用状态,触发所述分布式训练组进行弹性缩容,以基于所述分布式训练组中的剩余可用节点重新分配所述训练任务。
65.在一些示例性的实施例中,该方法还包括:根据预设的训练配置信息,判断是否重启所述第一节点上的工作进程;若为是,则重启所述工作进程,并设置所述工作进程为暂停状态;相应地,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容的一种方式,包括:在所述分布式训练组中新增第二节点,将所述工作进程从暂停状态恢复为运行状态;触发所述分布式训练组进行弹性扩容,以使得所述工作进程运行在新增的所述第二节点上。
66.在一些示例性的实施例中,在所述分布式训练组中新增第二节点的一种方式,包括:判断所述资源池中是否存在与预设的资源抢占策略匹配的抢占式实例资源;若为是,则在所述资源池中创建抢占式实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
67.在一些示例性的实施例中,该方法还包括:若所述资源池中不存在与预设的所述资源抢占策略匹配的抢占式实例资源,则根据所述工作进程的训练任务量,在所述资源池中创建至少一个按需实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
68.在一些示例性的实施例中,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容的一种方式,包括:若所述资源池中的抢占式实例资源满足预设的资源抢占策略,在所述资源池中创建第三节点,所述第三节点为抢占式实例节点;将所述第三节点添加到所述分布式训练组,并触发所述分布式训练组进行弹性扩容,以基于新增节点后的分布式训练组重新分配所述训练任务。
69.在一些示例性的实施例中,该方法还包括:监听所述资源池中的抢占式实例节点的回收事件;若监听到所述资源池中的任一抢占式实例节点被回收,则确定所述抢占式实例节点的使用状态为不可用状态。
70.在本实施例中,分布式训练组基于弹性训练框架执行训练任务,使得训练任务的工作进程可运行在分布式训练组的实例节点上。由于弹性训练框架支持训练任务的工作进程的动态变化,进而使得训练过程能够支持训练所需的分布式节点产生动态数量变化。在此基础上,当分布式训练组包含抢占式实例节点时,可结合抢占式实例节点的状态,对训练任务进行弹性扩容或者弹性缩容。进而,可在充分利用抢占式实例进行训练以降低训练成本的同时,使得训练任务能够自动地进行扩容或者缩容而非终止,进而有利于提升训练质
量以及训练效率。
71.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤404的执行主体可以为设备a;又比如,步骤401和402的执行主体可以为设备a,步骤403的执行主体可以为设备b;等等。
72.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
73.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
74.图5示意了本技术一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的训练系统。如图5所示,该服务器包括:存储器501、处理器502以及通信组件503。
75.存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令。
76.处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:接收训练任务,并获取所述训练任务对应的作业类型;将所述训练任务调度到所述作业类型对应的分布式训练组进行训练;所述分布式训练组用于基于所述作业类型对应的弹性训练框架执行训练任务;所述分布式训练组包括资源池中的至少一个抢占式实例节点;根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。
77.在一些示例性的实施例中,处理器502在根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,在所述分布式训练组内对所述训练任务进行弹性缩容时,具体用于:若所述至少一个抢占式实例节点中的第一节点更新为不可用状态,触发所述分布式训练组进行弹性缩容,以基于所述分布式训练组中的剩余可用节点重新分配所述训练任务。
78.在一些示例性的实施例中,处理器502还用于:根据预设的训练配置信息,判断是否重启所述第一节点上的工作进程;若为是,则重启所述工作进程,并设置所述工作进程为暂停状态。相应地,处理器502在根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容时,具体用于:在所述分布式训练组中新增第二节点,将所述工作进程从暂停状态恢复为运行状态;触发所述分布式训练组进行弹性扩容,以使得所述工作进程运行在新增的所述第二节点上。
79.在一些示例性的实施例中,处理器502在所述分布式训练组中新增第二节点时,具
体用于:判断所述资源池中是否存在与预设的资源抢占策略匹配的抢占式实例资源;若为是,则在所述资源池中创建抢占式实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
80.在一些示例性的实施例中,处理器502还用于:若所述资源池中不存在与预设的所述资源抢占策略匹配的抢占式实例资源,则根据所述工作进程的训练任务量,在所述资源池中创建至少一个按需实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。
81.在一些示例性的实施例中,处理器502在根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容时,具体用于:若所述资源池中的抢占式实例资源满足预设的资源抢占策略,在所述资源池中创建第三节点,所述第三节点为抢占式实例节点;将所述第三节点添加到所述分布式训练组,并触发所述分布式训练组进行弹性扩容,以基于新增节点后的分布式训练组重新分配所述训练任务。
82.在一些示例性的实施例中,处理器502还用于:监听所述资源池中的抢占式实例节点的回收事件;若监听到所述资源池中的任一抢占式实例节点被回收,则确定所述抢占式实例节点的使用状态为不可用状态。
83.进一步,如图5所示,该服务器还包括:电源组件504等其它组件。图5中仅示意性给出部分组件,并不意味着服务器只包括图5所示组件。
84.其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random-access memory,sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,eprom),可编程只读存储器(programmable read-only memory,prom),只读存储器(read-only memory,rom),磁存储器,快闪存储器,磁盘或光盘。
85.其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wi-fi(无线网络通信技术),2g(如全球移动通信系统(global system for mobile communications,gsm)等)、3g(如宽带码分多址(wideband code division multiple access,wcdma)、4g(如长期演进(long term evolution,lte)等)、4g+(如升级版长期演进(lte-advanced,lte-a)等)或5g(第五代移动通信技术(5th generation mobile communication technology)),或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(near field communication,nfc)技术、射频识别(radio frequency identification,rfid)技术、红外数据协会(infrared data association,irda)技术、超宽带(ultra wide band,uwb)技术、蓝牙(bluetooth,bt)技术和其他技术来实现。
86.其中,电源组件504,用于为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
87.在本实施例中,分布式训练组基于弹性训练框架执行训练任务,使得训练任务的
工作进程可运行在分布式训练组的实例节点上。由于弹性训练框架支持训练任务的工作进程的动态变化,进而使得训练过程能够支持训练所需的分布式节点产生动态数量变化。在此基础上,当分布式训练组包含抢占式实例节点时,可结合抢占式实例节点的状态,对训练任务进行弹性扩容或者弹性缩容。进而,可在充分利用抢占式实例进行训练以降低训练成本的同时,使得训练任务能够自动地进行扩容或者缩容而非终止,进而有利于提升训练质量以及训练效率。
88.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务器执行的各步骤。
89.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom(compact disc read-only memory,只读光盘只读存储器)、光学存储器等)上实施的计算机程序产品的形式。
90.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
91.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
92.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
93.在一个典型的配置中,计算设备包括一个或多个处理器(central processing unit,cpu)、输入/输出接口、网络接口和内存。
94.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
95.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(parallel random access machine,pram)、静态随机存取存储器(sram)、动态随机存取存储器(dynamic random access memory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(digital video disc,dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储
设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
96.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
97.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种训练方法,其特征在于,包括:接收训练任务,并获取所述训练任务对应的作业类型;将所述训练任务调度到所述作业类型对应的分布式训练组进行训练;所述分布式训练组用于基于所述作业类型对应的弹性训练框架执行训练任务;所述分布式训练组包括资源池中的至少一个抢占式实例节点;根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。2.根据权利要求1所述的方法,其特征在于,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,在所述分布式训练组内对所述训练任务进行弹性缩容,包括:若所述至少一个抢占式实例节点中的第一节点更新为不可用状态,触发所述分布式训练组进行弹性缩容,以基于所述分布式训练组中的剩余可用节点重新分配所述训练任务。3.根据权利要求2所述的方法,其特征在于,还包括:根据预设的训练配置信息,判断是否重启所述第一节点上的工作进程;若为是,则重启所述工作进程,并设置所述工作进程为暂停状态;根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容,包括:在所述分布式训练组中新增第二节点,将所述工作进程从暂停状态恢复为运行状态;触发所述分布式训练组进行弹性扩容,以使得所述工作进程运行在新增的所述第二节点上。4.根据权利要求3所述的方法,其特征在于,在所述分布式训练组中新增第二节点,包括:判断所述资源池中是否存在与预设的资源抢占策略匹配的抢占式实例资源;若为是,则在所述资源池中创建抢占式实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。5.根据权利要求4所述的方法,其特征在于,还包括:若所述资源池中不存在与预设的所述资源抢占策略匹配的抢占式实例资源,则根据所述工作进程的训练任务量,在所述资源池中创建至少一个按需实例节点,作为所述第二节点;将所述第二节点添加到所述分布式训练组。6.根据权利要求1-5任一项所述的方法,其特征在于,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容,包括:若所述资源池中的抢占式实例资源满足预设的资源抢占策略,在所述资源池中创建第三节点,所述第三节点为抢占式实例节点;将所述第三节点添加到所述分布式训练组,并触发所述分布式训练组进行弹性扩容,以基于新增节点后的分布式训练组重新分配所述训练任务。7.根据权利要求1-5任一项所述的方法,其特征在于,还包括:监听所述资源池中的抢占式实例节点的回收事件;
若监听到所述资源池中的任一抢占式实例节点被回收,则确定所述抢占式实例节点的使用状态为不可用状态。8.一种训练系统,其特征在于,包括:弹性训练控制组件、调度决策器、弹性扩缩容组件以及分布式训练组;其中,所述分布式训练组包括资源池中的至少一个抢占式实例节点;其中,所述弹性训练控制组件,用于:接收训练任务,并获取所述训练任务对应的作业类型;利用所述调度决策器,将所述训练任务调度到所述作业类型对应的分布式训练组,以使所述分布式训练组基于所述作业类型对应的弹性训练框架执行训练任务;以及,利用所述弹性扩缩容组件,根据所述至少一个抢占式实例节点的使用状态和/或所述资源池中的抢占式实例资源的可用性,控制所述分布式训练组对所述训练任务进行弹性扩容或者弹性缩容。9.一种服务器,其特征在于,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-8任一项所述的方法中的步骤。10.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被处理器执行时能够实现权利要求1-8任一项所述的训练方法。
技术总结
本申请实施例提供一种训练方法、设备、系统及存储介质。在训练方法中,分布式训练组基于弹性训练框架执行训练任务,使得训练任务的工作进程可运行在分布式训练组的实例节点上。由于弹性训练框架支持训练任务的工作进程的动态变化,进而使得训练过程能够支持训练所需的分布式节点产生动态数量变化。在此基础上,当分布式训练组包含抢占式实例节点时,可结合抢占式实例节点的状态,对训练任务进行弹性扩容或者弹性缩容。进而,可在充分利用抢占式实例进行训练以降低训练成本的同时,使得训练任务能够自动地进行扩容或者缩容而非终止,进而有利于提升训练质量以及训练效率。有利于提升训练质量以及训练效率。有利于提升训练质量以及训练效率。
技术研发人员:颜廷帅 霍智鑫 张凯 易立
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.04.27
技术公布日:2023/8/13
 
									版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家  https://www.aerohome.com.cn/
飞机超市  https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
				上一篇:一种整流桥耐压测试装置的制作方法				下一篇:一种分布式光伏远程监控装置的制作方法				
							
