首页> 中国专利> 深度学习训练任务的管理方法及管理装置

深度学习训练任务的管理方法及管理装置

摘要

本申请公开了一种深度学习训练任务的管理方法及管理装置,该深度学习训练任务的管理方法包括:确定第一深度学习训练任务所在第一任务队列的资源使用信息;基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量;控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。本申请的技术方案通过对第一任务队列对应的第一计算机集群的资源容量进行调整,并利用调整资源容量后的第一计算机集群执行第一任务队列中的第一深度学习训练任务,从而可以从整体上提高资源的利用率,避免出现资源闲置以及资源紧张的问题,进而降低深度学习训练任务的训练成本。

著录项

  • 公开/公告号CN112527503A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利权人 北京地平线信息技术有限公司;

    申请/专利号CN202011486962.4

  • 申请日2020-12-16

  • 分类号G06F9/50(20060101);G06N3/08(20060101);

  • 代理机构11505 北京布瑞知识产权代理有限公司;

  • 代理人秦卫中

  • 地址 100094 北京市海淀区丰豪东路9号院2号楼3层1单元301

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种深度学习训练任务的管理方法及管理装置。

背景技术

在深度学习技术领域,深度学习模型的训练过程是必不可少的。深度学习模型的训练过程可以看成深度学习训练任务。深度学习训练任务的管理系统可以对多个深度学习训练任务的训练过程进行管理,使得多个深度学习训练任务按照顺序进行训练。但是现有的深度学习训练任务的管理系统对资源的利用率低,导致训练效率低下、训练成本高。

发明内容

为了解决上述技术问题,本申请的实施例提供了一种深度学习训练任务的管理方法及管理装置。

根据本申请的一个方面,提供了一种深度学习训练任务的管理方法,包括:确定第一深度学习训练任务所在第一任务队列的资源使用信息;基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量;控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。

根据本申请的另一个方面,提供了一种深度学习训练任务的管理装置,包括:确定模块,用于确定第一深度学习训练任务所在第一任务队列的资源使用信息;调整模块,用于基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量;执行模块,用于控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。

根据本申请的又一个方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述的深度学习训练任务的管理方法。

根据本申请的又一个方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器用于执行上述的深度学习训练任务的管理方法。

本申请实施例提供了一种深度学习训练任务的管理方法及管理装置,通过根据第一任务队列的资源使用信息,对第一任务队列对应的第一计算机集群的资源容量进行调整,可以在第一计算机集群的资源使用紧张的情况下,将第二计算机集群的资源调整给第一计算机集群,或者在第一计算机集群有资源闲置的情况下,将第一计算机集群的闲置资源调整给第二计算机集群,从而可以从整体上提高资源的利用率,避免出现资源闲置以及资源紧张的问题,进而降低深度学习训练任务的训练成本。

附图说明

通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1是本申请一示例性实施例提供的深度学习训练任务的管理系统的系统架构示意图。

图2是本申请一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。

图3是本申请另一示例性实施例提供的调整第一任务队列对应的第一计算机集群的资源容量的流程示意图。

图4是本申请另一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。

图5是本申请另一示例性实施例提供的确定第一深度学习训练任务的分值的流程示意图。

图6是本申请另一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。

图7是本申请一示例性实施例提供的深度学习训练任务的管理方法的场景示意图。

图8是本申请一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。

图9是本申请另一示例性实施例提供的深度学习训练任务的管理装置的调整模块的结构示意图。

图10是本申请另一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。

图11是本申请另一示例性实施例提供的深度学习训练任务的管理装置的第二确定模块的结构示意图。

图12是本申请另一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。

图13是本申请一示例性实施例提供的电子设备的框图。

具体实施方式

下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。

目前基于神经网络的深度学习模型可以对该模型的输入(例如图像或音频等)进行特征提取,并根据提取的特征进行处理从而输出识别或检测结果。由于深度学习模型是基于模型自动进行特征的提取,因此可以减小人为因素对识别或检测结果的影响,具有效率高、识别或检测结果较稳定等优点。因具有上述优点,深度学习模型被广泛应用于自动语音识别、图像识别、视觉艺术处理等多种领域。

深度学习模型的训练过程一般是在计算机集群上利用大量的训练样本对模型进行训练,该训练过程需要占用大量的运算资源,如图形处理器(Graphics ProcessingUnit,GPU)。

某一计算机集群对应的图形处理器的数量是一定的,当存在多个深度学习训练任务需要在该计算机集群上执行时,可能会出现部分训练任务需要排队等待很久的情况,进而导致训练效率低下;而当不存在或较少的深度学习训练任务在该计算机群集上执行时,会出现该计算机集群的资源利用率低的情况。

图1是本申请一示例性实施例提供的深度学习训练任务的管理系统1的系统架构示意图。如图1所示,该深度学习训练任务的管理系统1包括计算机设备10、第一计算机集群20和第二计算机集群30。计算机设备10可以对第一计算机集群20和第二计算机集群30对应的GPU资源进行调整。具体地,计算机设备10可以对计算机集群对应的GPU资源的数量进行调整。例如,在初始情况下,第一计算机集群20对应50个GPU,第二计算机集群30对应50个GPU。当第二计算机集群30上需要执行的深度学习训练任务较多、而第一计算机集群20上需要执行的深度学习训练任务较少时,计算机设备10可以对第一计算机集群20和第二计算机集群30对应的GPU资源进行调整,例如,使得第一计算机集群20对应40个GPU、第二计算机集群30对应60个GPU。在一实施例中,计算机设备10可以是服务器。

需要注意的是,上述应用场景仅是为了便于理解本申请的原理而示出,本申请的实施例并不限于此。相反,本申请的实施例可以应用于可能适用的任何场景。

图2是本申请一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。本实施例的执行主体例如可以是图1中的计算机设备,如图2所示,该方法包括如下步骤。

步骤110:确定第一深度学习训练任务所在第一任务队列的资源使用信息。

第一任务队列可以与第一计算机集群对应,第一任务队列的信息可以呈现在计算机设备上,和/或,第一计算机集群所对应的计算机上。例如,任务队列的信息可以是指包含各个任务的列表,具体地,该列表可以是由各个任务对应的名称(或编号)所构成的,计算机设备接收用户的输入(该输入例如是用户点击列表中任一任务对应的名称),并基于该输入显示该任务训练时涉及的具体数据。进一步地,在列表中,还可以显示各个任务的状态,如进行中或等待中。若任务在进行中,可以进一步显示进度信息,如已完成50%等。可选地,第一任务队列的信息可以包含至少一个第一深度学习训练任务对应的名称(或编号),而第一深度学习训练任务本身所涉及的数据可以保存在第一计算机集群所对应的计算机上。当待执行的第一深度学习训练任务提交至第一计算机集群时,会在第一任务队列中按照提交时间进行排序,第一计算机集群可以按照提交的先后顺序执行相应的第一深度学习训练任务。例如,先提交的第一深度学习训练任务先被执行。当然,任务队列的排序方式并不限于此,例如,还可以按照任务的优先级进行排序。

在一实施例中,第一任务队列的资源使用信息包括第一任务队列中所有的第一深度学习训练任务被执行时需要占用的GPU资源总量。该GPU资源总量可以根据当前各个第一深度学习训练任务被执行时所需占用的GPU资源进行求和得到。

在其他实施例中,资源使用信息可以包括第一任务队列中所有的第一深度学习训练任务被执行时需要占用的中央处理器(Central Processing Unit,CPU)资源总量,或者占用的GPU资源总量和CPU资源总量,或者其他资源总量等。

步骤120:基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量。

计算机设备可以同时监控第一计算机集群和第二计算机集群上任务的执行,这里,第二计算机集群与第一计算机集群类似,其对应第二任务队列,第二任务队列上排队的第二深度学习训练任务的个数可以是零个、一个或多个。

当第一任务队列中所有的第一深度学习训练任务被执行时需要占用的GPU资源总量超出第一计算机集群对应的GPU资源容量时,计算机设备可以将第二计算机集群对应的GPU资源容量中的资源(例如,空闲资源)调整给第一计算机集群,以缓解第一计算机集群资源使用紧张、待执行任务等待时间较长的问题。

在一种情形下,计算机设备可以为第一组用户分配一定量的GPU资源(对应第一计算机集群),用于执行第一组用户提交的第一深度学习训练任务。计算机设备还可为第二组用户分配一定量的GPU资源(对应第二计算机集群),用于执行第二组用户提交的第二深度学习训练任务。例如,计算机设备初始分配的第一计算机集群和第二计算机集群的GPU资源容量比为30:30,即第一计算机集群和第二计算机集群均对应30个GPU。当第一组用户提交的第一深度学习训练任务较多导致第一计算机集群出现资源使用紧张的问题时,计算机设备可以调整第一计算机集群和第二计算机集群的GPU资源容量比为40:20,以缓解第一计算机集群资源使用紧张的问题。

这里,第一组用户以及第二组用户可以基于企业的组织架构来设置,可以是企业的不同组织的成员,例如,第一组用户可以是企业中第一部门的员工,第二组用户可以是该企业中第二部门的员工。即,第一计算机集群和第二计算机集群可以基于企业的组织架构来划分,可以分配给企业的不同组织,例如,第一计算机集群对应第一部门,第二计算机集群对应第二部门,这样为不同的部门分配不同的计算机集群,可以根据不同部门的需求情况合理地划分多个计算机集群,进而从整体上提高资源的利用率。此外,在特殊情况下,根据具体的某个计算机集群的资源使用情况(任务队列的资源使用信息),增加或减小该计算机集群对应的资源容量,可进一步地从整体上提高资源的利用率,避免出现资源闲置以及资源紧张的问题。而且,GPU硬件价格昂贵,通过对各个计算机集群的资源容量进行调整,可在避免资源浪费的同时降低深度学习训练任务的训练成本。

在其他实施例中,不同的计算机集群可以是根据部门或任务的类型等方式进行划分的,计算机集群的具体划分方式可以根据实际使用需要进行设定,本申请实施例对此不做限制。

步骤130:控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。

在一实施例中,计算机设备可以基于一定的规则(下文中有给出一些实施例)对第一任务队列中各个第一深度学习训练任务进行排序,并按照顺序将各个第一深度学习训练任务对应的具体数据发送至调整资源容量后的第一计算机集群,以便该第一计算机集群执行相应的深度学习训练任务。

本申请实施例提供了一种深度学习训练任务的管理方法,通过根据第一任务队列的资源使用信息,对第一任务队列对应的第一计算机集群的资源容量进行调整,可以在第一计算机集群的资源使用紧张的情况下,将第二计算机集群的资源调整给第一计算机集群,或者在第一计算机集群有资源闲置的情况下,将第一计算机集群的闲置资源调整给第二计算机集群,从而可以从整体上提高资源的利用率,避免出现资源闲置以及资源紧张的问题,进而降低深度学习训练任务的训练成本。

图3是本申请另一示例性实施例提供的调整第一任务队列对应的第一计算机集群的资源容量的流程示意图。在本申请图2所示实施例的基础上延伸出本申请图3所示的实施例,下面着重叙述图3所示实施例与图2所示实施例的不同之处,相同之处不再赘述。

如图3所示,在本申请实施例提供的深度学习训练任务的管理方法中,基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量(即步骤120),包括:

步骤121:确定第一任务队列的资源使用信息中所包括的第一任务队列中的深度学习训练任务的平均等待时间。

在一实施例中,由于平均等待时间可以用来表示资源使用情况,例如,平均等时间越长,说明资源越紧张,因此资源使用信息可以包括任务队列中的深度学习训练任务的平均等待时间。计算机设备通过统计任务队列中各个深度学习训练任务的等待时间,并基于各个深度学习训练任务的等待时间确定平均等待时间。

由于深度学习训练任务的类型、资源需求量等信息可以影响深度学习训练任务对于资源的使用,因此,第一任务队列中深度学习训练任务的平均等待时间,可以由计算机设备根据第一任务队列中各个深度学习训练任务的类型、资源需求量等信息进行确定。或者,该平均等待时间由第一计算机集群根据第一任务队列中各个深度学习训练任务的类型、资源需求量等信息进行确定,并由第一计算机集群传输至计算机设备。

第二任务队列中深度学习训练任务的平均等待时间的确定过程,与第一任务队列的类似,此处不再赘述。

步骤122:基于第一任务队列中的深度学习训练任务的平均等待时间与第二任务队列中的深度学习训练任务的平均等待时间,将第二任务队列对应的第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群。

在一实施例中,在第一任务队列中的深度学习训练任务的平均等待时间大于第二任务队列中的深度学习训练任务的平均等待时间时,说明第一计算机集群的资源使用情况较第二计算机集群的紧张,此时,计算机设备可以将第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群,以缓解第一计算机集群的运算负担。

在一实施例中,在第一任务队列中的深度学习训练任务的平均等待时间大于第一阈值,且第二任务队列中的深度学习训练任务的平均等待时间小于第二阈值时,将第二任务队列对应的第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群。

例如,在初始情况下,第一计算机集群和第二计算机集群的GPU资源容量比可为30:30。在第一任务队列中的深度学习训练任务的平均等待时间大于第一阈值,且第二任务队列中的深度学习训练任务的平均等待时间小于第二阈值时,可将第二计算机集群的GPU资源容量中10个GPU的标签由第二计算机集群修改成第一计算机集群。即经过调整后,第一计算机集群对应40个GPU,第二计算机集群对应20个GPU。

类似地,在第一任务队列中的深度学习训练任务的平均等待时间小于第二阈值,且第二任务队列中的深度学习训练任务的平均等待时间大于第一阈值时,将第一任务队列对应的第一计算机集群的部分资源或全部资源的标签由第一计算机集群修改成第二计算机集群。

这里,第一阈值和第二阈值可以根据实际使用需求进行预先设定。

进一步地,在计算机设备将第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群后,计算机设备可以基于后续第二任务队列中的深度学习训练任务的平均等待时间,将上述部分资源或全部资源的标签由第一计算机集群修改(或者恢复)成第二计算机集群。例如,在第二任务队列中的深度学习训练任务的平均等待时间大于第三阈值时,计算机设备将第一计算机集群的GPU资源容量中10个GPU的标签由第一计算机集群恢复成第二计算机集群。即第一计算机集群和第二计算机集群的GPU资源容量比由40:20恢复成30:30,以满足第二任务队列中的深度学习训练任务的资源使用需求。

这里,第三阈值可以大于第二阈值,同时第三阈值可以等于、小于或大于第一阈值。当第二任务队列中的深度学习训练任务的平均等待时间大于第三阈值时,说明第二计算机集群的资源也开始变得紧张,第二计算机集群有增加资源的需求,如果设置第三阈值与第二阈值相等,则当第二计算机集群的资源处于资源调整的临界状态时,可能会导致第二计算机集群的资源频繁地进行调整。因为当第二任务队列中的深度学习训练任务的平均等待时间微小于第二阈值时,计算机设备将第二任务队列对应的第二计算机集群的部分资源的标签由第二计算机集群修改成第一计算机集群。此时由于第二计算机集群的资源变少,第二任务队列对应的平均等待时间会逐渐增加,可能会在短时间内大于第三阈值(第三阈值等于第二阈值),这时计算机设备会将部分资源的标签由第一计算机集群修改(或者恢复)成第二计算机集群,这样第二任务队列对应的平均等待时间会逐渐减小,可能会在短时间内小于第二阈值。如此,会出现对第二计算机集群的资源频繁地进行调整的情况。因此,通过设置第三阈值大于第二阈值,能够使得第二计算机集群的资源调整存在一定裕量,从而避免频繁地调整计算机集群的资源。

本实施例提供的深度学习训练任务的管理方法,通过确定各个任务队列中的深度学习训练任务的平均等待时间,可以合理的判断各个任务队列的资源使用情况,而且通过比较各个任务队列中的深度学习训练任务的平均等待时间与预先设定的阈值的大小,能够及时确定需要调整GPU资源的任务队列并对相应的计算机集群之间的GPU资源进行实时调整,从而能够及时缓解资源紧张的任务队列所对应的计算机集群的运算负担,实现资源共享、降低训练成本。

在一实施例中,计算机设备可以统计第一计算机集群的平均等待时间低于预设阈值所维持的时间,如果该持续时间大于预设阈值,则确定第一计算机集群的资源使用情况未饱和,例如,在第一任务队列中的深度学习训练任务的平均等待时间为0时,计算机设备可以统计平均等待时间为0所维持的时间,若平均等待时间为0维持的时间超过一定的阈值,则说明第一任务队列存在长时间的空闲,即第一计算机集群的资源使用情况未饱和。此时计算机设备可以将第一计算机集群的GPU资源容量中部分GPU的标签由第一计算机集群修改成其他需要的计算机集群。

可选地,在另一实施例中,步骤120可包括:确定第一任务队列的资源使用信息中所包括的第一任务队列对应的资源使用时长;基于资源使用时长,将第一任务队列对应的第一计算机集群的部分资源或全部资源的标签由第一计算机集群修改成第二计算机集群,第二计算机集群对应第二任务队列。

资源使用信息包括任务队列对应的资源使用时长。这里,资源使用时长可以指该任务队列开始占用相应的计算机集群的时间。当资源使用时长超过预设时长时,可以停止该任务队列对该计算机集群的使用,而将该计算机集群的资源分配给其他某个或多个计算机集群。

任务队列对应的资源使用时长,可以由计算机设备通过对该任务队列的监控而确定。或者,该资源使用时长可由对应的计算机集群对该任务队列的监控而确定,并由该计算机集群传输至计算机设备。

例如,计算机设备可对三个计算机集群之间的GPU资源进行调整,即,第一、第二和第三计算机集群,三者的GPU资源容量比可为30:30:40(在初始情况下),且三者分别对应第一、第二和第三任务队列。在第一任务队列对应的资源使用时长超过预设时长时,可将第一计算机集群对应的30个GUP中15个GPU的标签由第一计算机集群修改成第二计算机集群,将另外15个GPU的标签由第一计算机集群修改成第三计算机集群。即第一、第二和第三计算机集群的GPU资源容量比变为0:45:55。

这里,预设时长可以是计算机设备为第一任务队列的用户预先设定的使用第一计算机集群资源的时长,其可以根据实际需要进行设定。超过预设时长,计算机设备可以限制第一任务队列的用户使用第一计算机集群的资源。例如,可将第一计算机集群对应的30个GUP平均分配给其他的计算机集群,也可按照预先设定的规则分配给其他的计算机集群,本申请实施例对此不作具体限定。

进一步地,预设时长可以是第一任务队列对应的预算使用时长,在该预算使用时长得到延长后,计算机设备可以恢复第一、第二和第三计算机集群的GPU资源容量比为初始的30:30:40,以满足第一任务队列中的深度学习训练任务的资源使用需求。

本实施例提供的深度学习训练任务的管理方法,可以在任务队列对应的资源使用时长超过预设时长时,将该任务队列对应的计算机集群的GPU资源分配给其他的计算机集群,从而可以为一些任务队列对应的用户设置使用期限,实现对各个任务队列的灵活管理,进而实现对整体GPU资源的调控,避免资源浪费。

在其他实施例中,资源使用信息可以包括任务队列中的深度学习训练任务的平均等待时间,以及该任务队列对应的资源使用时长。计算机设备可根据该资源使用信息实现对各个计算机集群之间的GPU资源的实时调整。

图4是本申请另一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。在本申请图2所示实施例的基础上延伸出本申请图4所示的实施例,下面着重叙述图4所示实施例与图2所示实施例的不同之处,相同之处不再赘述。

如图4所示,在本申请实施例提供的深度学习训练任务的管理方法中,还包括:

步骤125:基于第一预设打分策略确定第一深度学习训练任务的分值。

步骤126:基于第一深度学习训练任务的分值确定第一深度学习训练任务在第一任务队列中的执行顺序。

具体地,可以基于第一预设打分策略对第一任务队列中的各个第一深度学习训练任务进行打分。第一预设打分策略可以是根据用户的提交时间进行打分,例如,在第一预设打分策略中,深度学习训练任务提交的越早,对应的分值越高。分值的高低决定第一深度学习训练任务的执行顺序。基于执行顺序,计算机设备可以控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。例如,根据分值由高到低的顺序依次执行第一任务队列中的各个第一深度学习训练任务。也就是说,第一深度学习训练任务的分值越高,其在第一任务队列中的排序越靠前,也就越早被执行。

不同任务队列对应的打分策略可以相同也可以不同。例如,可以基于第二预设打分策略确定第二任务队列中的第二深度学习训练任务的分值,并基于第二深度学习训练任务的分值确定第二深度学习训练任务在第二任务队列中的执行顺序。第二预设打分策略可以是根据用户提交的资源申请量进行打分,例如,在第二预设打分策略中,深度学习训练任务的资源申请量越少,对应的分值越高。这里,第二预设打分策略不同于第一预设打分策略,两者都可以根据实际的使用需要进行设定。打分过程可以由计算机设备来执行,也可以由各自的计算机集群来执行。

应理解,打分策略还可以是根据多个不同的打分方式进行加权计算得到最终的分值。例如,先根据深度学习训练任务提交的先后确定第一得分,再根据深度学习训练任务的资源申请量的多少确定第二得分,最后将第一得分和第二得分进行加权计算得到最终的分值。

本实施例提供的深度学习训练任务的管理方法,可以基于预设打分策略确定任务队列中的深度学习训练任务在该任务队列中的执行顺序,从而可以有条不紊地执行各个深度学习训练任务。此外,不同任务队列对应的打分策略可以不同,以满足不同任务队列所对应的不同用户的实际需求。

图5是本申请另一示例性实施例提供的确定第一深度学习训练任务的分值的流程示意图。在本申请图4所示实施例的基础上延伸出本申请图5所示的实施例,下面着重叙述图5所示实施例与图4所示实施例的不同之处,相同之处不再赘述。

如图5所示,在本申请实施例提供的深度学习训练任务的管理方法中,基于第一预设打分策略确定第一深度学习训练任务的分值(即步骤125),包括:

步骤1251:基于第一深度学习训练任务的提交时间,确定第一深度学习训练任务的第一得分。

具体地,第一深度学习训练任务的提交时间越早,其第一得分越高。例如,计算机设备可以将当前任务队列中的深度学习训练任务按照提交时间由早到晚的顺序进行排列,并将排在首位(在当前任务队列中提交时间最早)的深度学习训练任务对应的第一得分记为S1,排在第二位的深度学习训练任务对应的第一得分记为S1-k1,排在第n位的深度学习训练任务对应的第一得分记为S1-(n-1)k1。这里,S1和k1可以是预先设定的值,k1为系数且k1为正数。在其他实施例中,第一得分可以通过其他公式或规律进行确定,本申请实施例对此不作具体限制。

步骤1252:基于第一深度学习训练任务的资源申请量,确定第一深度学习训练任务的第二得分。

用户在提交深度学习训练任务时,可以一并提交该深度学习训练任务所需的资源申请量,即执行该深度学习训练任务时所需占用的GPU资源大小。资源申请量越小,第二得分越高。一般情况下,资源申请量小(小规模,可能占用一个或两个GPU)的深度学习训练任务用于算法的调试和探索,其需要及时地得到训练反馈,因此深度学习训练任务的资源申请量越小,其第二得分越高。例如,资源申请量记为T,计算机设备可以基于公式S2-Tk2确定第二得分,S2和k2是预设的常数,k2为系数且k2为正数。当然,第二得分可以通过其他公式或规律进行确定,本申请实施例对此不作具体限制。

在其他实施例中,深度学习训练任务所需的资源申请量可以由计算机设备或对应的计算机集群基于该深度学习训练任务的参数进行确定。

步骤1253:基于第一得分和第二得分的加权之和,确定第一深度学习训练任务的分值。

基于深度学习训练任务的分值,可以对任务队列中的深度学习训练任务进行排序。深度学习训练任务的分值越高,其排序越靠前。

在一实施例中,可以只根据深度学习训练任务的资源申请量,确定该深度学习训练任务的分值,进而确定相应的任务队列中各个深度学习训练任务的执行顺序。

在一实施例中,可以根据提交深度学习训练任务的用户的身份信息,确定该深度学习训练任务的分值,进而确定相应的任务队列中各个深度学习训练任务的执行顺序。

例如,用户的职位越高,其提交的深度学习训练任务的分值就越高,该深度学习训练任务的排序越靠前,可以被优先执行。通常情况下,资深的算法研究员提交的深度学习训练任务会比普通的或实习的研究员提交的深度学习训练任务更重要,因此会被优先执行。例如,用户的职位级别记为P,P的值可为1、2、3……,P的值越大说明职位越高,P为1时对应的深度学习训练任务的分值记为S3。计算机设备可以基于公式S3+Pk3确定分值,这里,S3和k3是预设的常数,k3为系数且k3为正数。当然,该分值可以通过其他公式或规律进行确定,本申请实施例对此不作具体限制。

在一实施例中,同一用户可能提交多个深度学习训练任务至同一任务队列,此时可以根据用户提交至该任务队列中的深度学习训练任务的数量,确定该多个深度学习训练任务各自对应的分值(可以是减分或者说是负分)。同一用户提交的深度学习训练任务的数量越多,其提交的深度学习训练任务的分值就越低、排序越靠后。这里,同一用户提交的多个深度学习训练任务的减分可以不同,例如,该多个深度学习训练任务的减分可以是依次递减的,即相邻两个深度学习训练任务之间间隔其他用户提交的一定量的深度学习训练任务。可选地,同一用户提交的该多个深度学习训练任务的分值也可以相同,进而被依次执行。例如,同一用户提交的深度学习训练任务的数量记为U,计算机设备可以基于公式S4-Uk4确定分值,这里,S4和k4是预设的常数,k4为系数且k4为正数。当然,该分值可以通过其他公式或规律进行确定,本申请实施例对此不作具体限制。

由于任一任务队列是多个用户共享对应的计算机集群的GPU资源,因此若某一用户提交了过多的深度学习训练任务,会占用大部分的GPU资源,这会增加同组其他用户的等待时间,阻碍其他用户使用该计算机集群的GPU资源。通过对同一用户提交的多个深度学习训练任务做减分,可以从一定程度上保障每个用户都能平等地利用相应的GPU资源。

本实施例提供的深度学习训练任务的管理方法,根据同一用户提交至任务队列中的深度学习训练任务的数量而给该深度学习训练任务减分,使其执行顺序靠后,从而可以给更多的用户提供使用相应的计算机集群的机会,提高用户体验。

在一实施例中,可以基于以下信息中的至少一个确定各个深度学习训练任务的分值,如:提交时间、资源申请量、用户的身份信息、用户提交至某一任务队列中的深度学习训练任务的数量。

图6是本申请另一示例性实施例提供的深度学习训练任务的管理方法的流程示意图。在本申请图2所示实施例的基础上延伸出本申请图6所示的实施例,下面着重叙述图6所示实施例与图2所示实施例的不同之处,相同之处不再赘述。

如图6所示,在本申请实施例提供的深度学习训练任务的管理方法中,还包括:

步骤140:确定多个任务队列中的深度学习训练任务的平均数量。

每个计算机集群对应一个任务队列,多个计算机集群与多个任务队列一一对应,且该多个计算机集群为自建的多个计算机集群,例如某企业内部专门建立的计算机集群。自建的计算机集群可以称为私有云,或互联网数据中心(InternetData Center,IDC)。自建的计算机集群长期使用成本低、安全性高。

根据自建的多个计算机集群一一对应的多个任务队列中所有的深度学习训练任务的数量,计算每个任务队列对应的深度学习训练任务的平均数量,即可得到该多个任务队列中的深度学习训练任务的平均数量。

步骤150:基于平均数量,开启公有云计算机集群。

在该平均数量大于第四阈值时,说明自建的多个计算机集群的资源使用均很紧张,即使是调整该自建的多个计算机集群相互之间的资源容量,仍然满足不了从整体上来说数量庞大的深度学习训练任务,因此此时可以开启公有云计算机集群。

公有云计算机集群可以是阿里云、金山云、或亚马逊(AmazonWeb Services,AWS)等提供的专业云计算服务。公有云计算机集群的使用成本较自建的计算机集群高,但是可以随开随用。

这里,第四阈值可以根据使用需要进行设定,以在满足缓解自建的计算机集群的运算负担的情况下,尽可能地节约成本。

步骤160:将多个任务队列的每个任务队列中执行顺序靠前的N个深度学习训练任务对应的训练数据同步至公有云计算机集群中。N为大于或等于1的整数。

步骤170:将多个任务队列的每个任务队列中执行顺序靠前的N个深度学习训练任务调度到公有云计算机集群中执行。

为了缓解各个自建的计算集群的运算负担,同时实现对各组用户的公平管理,可以将各个任务队列中执行顺序靠前的N个深度学习训练任务调度到公有云计算机集群中执行。

当然,也可以根据实际需求情况,从各个任务队列中选取数量不同的深度学习训练任务调度到公有云计算机集群中执行。

计算机设备可以根据需要调度的深度学习训练任务的资源申请量,调用公有云软件开发工具包(Software Development Kit,SDK)开通对应的服务器资源供深度学习训练任务使用。通过适配多个公有云SDK可以达到最优价格的效果。公有云开启资源速度较快,一般是分钟级别。

当将某些深度学习训练任务调度到公有云计算机集群中执行时,这些深度学习训练任务对应的训练数据可以同步到公有云的存储系统中,这样可以提高训练过程的速度。

具体地,计算机设备可以将深度学习训练任务对应的训练数据传输至公有云的存储系统中,这样公有云计算机集群通过预先加载训练数据,可以极大地优化训练速度。

当平均数量小于或等于第五阈值时,说明自建的多个计算机集群的资源使用情况未饱和,此时可以释放(或说关闭)公有云计算机集群,降低成本。若公有云计算机集群上还存在尚未被执行的深度学习训练任务,可以将其调回到自建的计算机集群中执行。

这里第五阈值可以小于第四阈值,其可以根据实际使用需要进行设定。这样,当任务的平均数量大于第四阈值时,说明所有计算机集群资源都紧张,此时开通公有云计算机集群;开通公有云计算机集群之后,当任务的平均数量小于或等于第五阈值,可关闭公有云计算机集群,从而节约资源。同时,通过设置第五阈值小于第四阈值,使得从开通公有云计算机集群到关闭公有云计算机集群之间有一定的裕量,从而避免开通和关闭公有云计算机集群之间的频繁切换。

本实施例提供的深度学习训练任务的管理方法,通过设置将深度学习训练任务调度到公有云的机制,可以在自建的多个计算机集群的资源使用均很紧张时,开启公有云计算机集群,从而可以缓解各个自建的计算集群的运算负担。

在一实施例中,可以通过确定多个任务队列中每个深度学习训练任务的平均等待时间,来决定是否开启公有云计算机集群。

例如,根据自建的多个计算机集群一一对应的多个任务队列中所有的深度学习训练任务的等待时间,计算每个深度学习训练任务的平均等待时间,即可得到该多个任务队列中每个深度学习训练任务的平均等待时间。在该平均等待时间大于第六阈值时,说明自建的多个计算机集群的资源使用均很紧张,即使是调整该自建的多个计算机集群相互之间的资源容量,仍然满足不了从整体上来说数量庞大的深度学习训练任务,因此此时可以开启公有云计算机集群。

这里,第六阈值可以根据使用需要进行设定,以在满足缓解自建的计算机集群的运算负担的情况下,尽可能地节约成本。

在一实施例中,可以通过确定多个任务队列中的深度学习训练任务的平均数量,以及多个任务队列中每个深度学习训练任务的平均等待时间,来决定是否开启公有云计算机集群。这样通过结合平均数量和平均等待时间这两个参数来决定是否开启公有云计算机集群,可以保证缓解运算负担与成本之间的平衡,可以用合理的成本保障深度学习训练任务的训练效率。

图7是本申请一示例性实施例提供的深度学习训练任务的管理方法的场景示意图。如图7所示,计算机设备可以从IDC-GPU集群中为三组用户分别提供对应的计算机集群(如第一、第二和第三计算机集群),其中三组用户可分别对应第一、第二和第三任务队列。第一任务队列中包括深度学习训练任务A1、A2、C1、B1和B2;第二任务队列中包括深度学习训练任务D1、D2、D3、E1和E2;第三任务队列中包括深度学习训练任务F1和F2。这里,字母A、B、C、D、E和F可表示不同的用户,数字1、2和3可表示同一用户提交的不同的深度学习训练任务。

计算机设备可以根据三个任务队列的资源使用信息、资源使用时长、每个任务队列中深度学习训练任务的平均等待时间等信息,实现对各个计算机集群之间的GPU资源的实时调整,进而提高训练效率。

进一步地,在整个IDC-GPU集群的运算负担较重的情况下,计算机设备可以通过公有云SDK开通对应的服务器资源(公有云-GPU集群),并将一些队列中的深度学习训练任务调度到公有云计算机集群中执行,以缓解IDC-GPU集群的运算负担。

在一些情况下,任务队列中的不同深度学习训练任务所需占用的GPU的类型可以相同或不同。针对所需GPU类型不同的深度学习训练任务,计算机设备可以进一步根据GPU类型实现对各个计算机集群的资源容量的调整。

图8是本申请一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。如图8所示,该装置800包括:第一确定模块810、调整模块820和执行模块830。

第一确定模块810用于确定第一深度学习训练任务所在第一任务队列的资源使用信息;调整模块820用于基于第一任务队列的资源使用信息,调整第一任务队列对应的第一计算机集群的资源容量;执行模块830用于控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。

本申请实施例提供了一种深度学习训练任务的管理装置,通过根据第一任务队列的资源使用信息,对第一任务队列对应的第一计算机集群的资源容量进行调整,可以在第一计算机集群的资源使用紧张的情况下,将第二计算机集群的资源调整给第一计算机集群,或者在第一计算机集群有资源闲置的情况下,将第一计算机集群的闲置资源调整给第二计算机集群,从而可以从整体上提高资源的利用率,避免出现资源闲置以及资源紧张的问题,进而降低深度学习训练任务的训练成本。

图9是本申请另一示例性实施例提供的深度学习训练任务的管理装置的调整模块820的结构示意图。在本申请图8所示实施例的基础上延伸出本申请图9所示实施例,下面着重叙述图9所示实施例与图8所示实施例的不同之处,相同之处不再赘述。

如图9所示,调整模块820包括:第一确定单元821和第一修改单元822。

第一确定单元821,用于确定第一任务队列的资源使用信息中所包括的第一任务队列中的深度学习训练任务的平均等待时间。

第一修改单元822,用于基于第一任务队列中的深度学习训练任务的平均等待时间与第二任务队列中的深度学习训练任务的平均等待时间,将第二任务队列对应的第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群。

根据本申请一实施例,第一修改单元822在将第二任务队列对应的第二计算机集群的部分资源或全部资源的标签由第二计算机集群修改成第一计算机集群之后,还用于基于第二任务队列中的深度学习训练任务的平均等待时间,将部分资源或全部资源的标签由第一计算机集群修改成第二计算机集群。

图10是本申请另一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。在本申请图8所示实施例的基础上延伸出本申请图10所示实施例,下面着重叙述图10所示实施例与图8所示实施例的不同之处,相同之处不再赘述。

如图10所示,装置800还包括:第二确定模块825和第三确定模块826。

第二确定模块825,用于基于第一预设打分策略确定第一深度学习训练任务的分值。

第三确定模块826,用于基于第一深度学习训练任务的分值确定第一深度学习训练任务在第一任务队列中的执行顺序。执行模块830基于执行顺序,控制调整资源容量后的第一计算机集群执行第一深度学习训练任务。

根据本申请一实施例,第二确定模块825还用于基于第二预设打分策略确定第二任务队列中的第二深度学习训练任务的分值。第三确定模块826还用于基于第二深度学习训练任务的分值确定第二深度学习训练任务在第二任务队列中的执行顺序,其中,第一预设打分策略不同于第二预设打分策略。

图11是本申请另一示例性实施例提供的深度学习训练任务的管理装置的第二确定模块825的结构示意图。在本申请图10所示实施例的基础上延伸出本申请图11所示实施例,下面着重叙述图11所示实施例与图10所示实施例的不同之处,相同之处不再赘述。

如图11所示,第二确定模块825包括:第二确定单元8251,第三确定单元8252和第四确定单元8253。

第二确定单元8251,用于基于第一深度学习训练任务的提交时间,确定第一深度学习训练任务的第一得分。

第三确定单元8252,用于基于第一深度学习训练任务的资源申请量,确定第一深度学习训练任务的第二得分。

第四确定单元8253,用于基于第一得分和第二得分的加权之和,确定第一深度学习训练任务的分值。

根据本申请一实施例,图11中的第四确定单元8253用于:基于提交第一深度学习训练任务的用户的身份信息,确定第一深度学习训练任务的第三得分;并基于第一得分、第二得分以及第三得分的加权之和,确定第一深度学习训练任务的分值。

根据本申请一实施例,图11中第四确定单元8253用于:基于提交第一深度学习训练任务的用户的身份信息,确定第一深度学习训练任务的第三得分;基于用户提交至第一任务队列中的深度学习训练任务的数量,确定第一深度学习训练任务的减分;并基于第一得分、第二得分、第三得分以及减分的加权之和,确定第一深度学习训练任务的分值。

根据本申请一实施例,如图9所示,调整模块820包括:第一确定单元821和第一修改单元822。

第一确定单元821,用于确定第一任务队列的资源使用信息中所包括的第一任务队列对应的资源使用时长。

第一修改单元822,用于基于资源使用时长,将第一任务队列对应的第一计算机集群的部分资源或全部资源的标签由第一计算机集群修改成第二计算机集群,第二计算机集群对应第二任务队列。

图12是本申请另一示例性实施例提供的深度学习训练任务的管理装置的结构示意图。在本申请图8所示实施例的基础上延伸出本申请图12所示实施例,下面着重叙述图12所示实施例与图8所示实施例的不同之处,相同之处不再赘述。

如图12所示,装置800还包括:第四确定模块840,开启模块850和调度模块870。

在本实施例中,第一计算机集群为多个计算机集群中的一个,多个计算机集群与多个任务队列一一对应,多个计算机集群为自建的多个计算机集群。

第四确定模块840,用于确定多个任务队列中的深度学习训练任务的平均数量。

开启模块850,用于基于平均数量,开启公有云计算机集群。

调度模块870,用于将多个任务队列的每个任务队列中执行顺序靠前的N个深度学习训练任务调度到公有云计算机集群中执行,N为大于或等于1的整数。

根据本申请一实施例,第四确定模块840用于确定多个任务队列中的深度学习训练任务的平均数量、以及多个任务队列中每个深度学习训练任务的平均等待时间。开启模块850用于基于平均数量和多个任务队列中每个深度学习训练任务的平均等待时间,开启公有云计算机集群。调度模块870用于将多个任务队列的每个任务队列中执行顺序靠前的N个深度学习训练任务调度到公有云计算机集群中执行,N为大于或等于1的整数。

根据本申请一实施例,如图12所示,装置800还包括数据同步模块860,用于将多个任务队列的每个任务队列中执行顺序靠前的N个深度学习训练任务对应的训练数据同步至公有云计算机集群中。

应当理解,上述实施例中的第一确定模块810、调整模块820、执行模块830、第二确定模块825、第三确定模块826、第四确定模块840、开启模块850、数据同步模块860和调度模块870,以及第一确定单元821和第一修改单元822,以及第二确定单元8251,第三确定单元8252和第四确定单元8253的操作和功能可以参考上述图2至图7提供的深度学习训练任务的管理方法中的描述,为了避免重复,在此不再赘述。

下面,参考图13来描述根据本申请实施例的电子设备。该电子设备90可以执行上述的深度学习训练任务的管理过程。

图13图示了根据本申请实施例的电子设备90的框图。

如图13所示,电子设备90包括一个或多个处理器91和存储器92。

处理器91可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备90中的其他组件以执行期望的功能。

存储器92可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器91可以运行所述程序指令,以实现上文所述的本申请的各个实施例的深度学习训练任务的管理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量、视频图像信号等各种内容。

在一个示例中,电子设备90还可以包括:输入装置93和输出装置94,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

该输入装置93包括但不限于键盘、鼠标等等。

该输出装置94可以向外部输出各种信息,包括确定出的资源容量信息、平均等待时间等。该输出装置94可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图13中仅示出了该电子设备90中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备90还可以包括任何其他适当的组件。

除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的深度学习训练任务的管理方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的深度学习训练任务的管理方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。

本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号