一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

训练任务的执行方法、装置、电子设备及存储介质与流程

2022-02-20 14:21:11 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种训练任务的执行方法、装置、电子设备及存储介质。


背景技术:

2.随着计算机技术的发展,网络模型的应用越来越广泛。训练网络模型时,通常需要通过该控制器运行该模型训练框架,即可训练出网络模型。
3.目前模型训练框架的种类较多,不同的模型训练框架对应有不同的控制器,如果开发人员需要基于任一个模型训练框架训练一个网络模型时,需要先学习该模型训练框架对应的控制器,之后再使用该控制器及该模型训练框架训练出一个网络模型,这种训练方法需要开发人员花费大量的时间进行学习,耗费了大量的人力成本。


技术实现要素:

4.本公开提供了一种训练任务的执行方法、装置、电子设备及存储介质,节省了人力成本。
5.根据本公开实施例的一方面,提供一种训练任务的执行方法,所述方法包括:
6.通过控制器获取训练任务,所述训练任务用于训练网络模型,所述训练任务包括框架标识及框架运行信息,所述框架运行信息包括至少一个角色对象信息;
7.通过所述控制器,获取所述框架标识指示的模型训练框架,所述模型训练框架包括所述至少一个角色对象以及每个角色对象对应的函数集合,所述函数集合包括用于训练所述网络模型的函数;
8.通过所述控制器,将所述模型训练框架中所述至少一个角色对象信息指示的角色对象,确定为所述训练任务的关联角色对象,基于所述关联角色对象对应的函数集合,分别为所述每个角色对象创建实例对象,所述实例对象包含对应的函数集合中的函数;
9.运行所述每个关联角色对象对应的实例对象。
10.在一些实施例中,所述框架运行信息还包括每个角色对象信息对应的第一实例数目;所述基于所述关联角色对象对应的函数集合,分别为每个关联角色对象创建实例对象,包括:
11.基于所述每个角色对象信息对应的第一实例数目及所述每个关联角色对象对应的函数集合,分别为所述每个关联角色对象创建对应的第一实例数目的实例对象。
12.在一些实施例中,所述框架运行信息包括多个所述角色对象信息及多个所述角色对象信息之间的依赖关系;所述运行所述每个关联角色对象对应的实例对象,包括:
13.运行多个所述关联角色对象中第一类角色对象对应的实例对象,所述第一类角色对象为未依赖于其他角色对象的角色对象;
14.在所述第一类角色对象对应的实例对象已运行的情况下,运行依赖于所述第一类角色对象的第二类角色对象对应的实例对象,所述第二类角色对象为多个所述关联角色对
象中依赖于其他角色对象的角色对象。
15.在一些实施例中,所述第二类角色对象对应的实例对象和函数集合均包含依赖关系函数,所述依赖关系函数指示所述第二类角色对象所依赖的第一类角色对象;所述在所述第一类角色对象对应的实例对象已运行的情况下,运行依赖于所述第一类角色对象的第二类角色对象对应的实例对象,包括:
16.运行所述第二类角色对象对应的实例对象中的依赖关系函数;
17.通过所述依赖关系函数,监听所述第二类角色对象依赖的第一类角色对象对应的实例对象;
18.确定所述实例对象已运行的情况下,运行所述第二类角色对象对应的实例对象。
19.在一些实施例中,所述通过所述依赖关系函数,监听所述第二类角色对象依赖的第一类角色对象对应的实例对象,包括:
20.通过所述依赖关系函数,监听所述第二类角色对象依赖的第一类角色对象对应的实例对象的地址,所述地址是由所述控制器在所述第一类角色对象对应的实例对象运行成功时缓存的;
21.所述确定所述实例对象已运行的情况下,运行所述第二类角色对象对应的实例对象,包括:
22.响应于监听到所述地址,运行所述第二类角色对象对应的实例对象。
23.在一些实施例中,所述运行所述每个角色对象对应的实例对象之后,所述方法还包括:
24.为所述每个关联角色对象创建一个通信服务,所述通信服务用于实现至少一个关联角色对象对应的实例对象之间的通信。
25.在一些实施例中,所述运行所述每个关联角色对象对应的实例对象之后,所述方法还包括:
26.响应于任一实例对象运行失败,且所述框架运行信息包括所述实例对象所属的关联角色对象对应的失败重启参数,重启所述实例对象。
27.在一些实施例中,所述框架运行信息还包括状态确定策略,所述状态确定策略指示由所述至少一个角色对象信息指示的角色对象对应的实例对象的状态,确定所述训练任务的状态的策略;所述运行所述每个关联角色对象对应的实例对象之后,所述方法还包括:
28.通过所述控制器,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务的状态。
29.在一些实施例中,所述状态确定策略包括所述每个角色对象信息对应的第一策略及所述训练任务对应的第二策略,所述第一策略为由所述角色对象信息指示的关联角色对象对应的实例对象的状态确定出所述关联角色对象的状态的策略,所述第二策略为由所述关联角色对象的状态确定出所述训练任务的状态的策略;
30.所述通过所述控制器,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务的状态,包括:
31.通过所述控制器,采用所述每个角色对象信息对应的第一策略,分别对所述每个关联角色对象对应的实例对象的状态进行处理,得到所述每个关联角色对象的状态;
32.通过所述控制器,采取所述第二策略,对所述每个关联角色对象的状态进行处理,
得到所述训练任务的状态。
33.在一些实施例中,所述通过所述控制器,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务的状态,包括:
34.通过所述控制器,每间隔目标时长,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务更新后的状态。
35.在一些实施例中,所述方法还包括:
36.响应于所述训练任务的状态为结束状态,停止运行所述模型训练框架。
37.在一些实施例中,所述通过控制器获取训练任务,包括:
38.通过所述控制器,从所述控制器对应的任务队列中获取待处理的所述训练任务;
39.所述响应于所述训练任务的状态为结束状态,停止运行所述模型训练框架之后,所述方法还包括:
40.清除运行所述模型训练框架时产生的数据。
41.在一些实施例中,所述框架运行信息还包括所述每个角色对象信息对应的第一实例数目;所述运行所述每个关联角色对象对应的实例对象之后,所述方法还包括:
42.通过所述控制器,基于所述每个角色对象信息对应的第一实例数目,对所述每个关联角色对象对应的实例对象的第二实例数目进行校验;
43.通过所述控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于所述第一实例数目与所述第二实例数目之间的差值数目,对所述关联角色对象对应的实例对象进行更新,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
44.在一些实施例中,所述通过所述控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于所述第一实例数目与所述第二实例数目之间的差值数目,对所述关联角色对象对应的实例对象进行更新,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等,包括:
45.通过所述控制器,在所述关联角色对象对应的所述第二实例数目小于所述第一实例数目的情况下,为所述关联角色对象创建所述差值数目的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等;或者,
46.通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中删除所述差值数目的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
47.在一些实施例中,所述通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中删除所述差值数目的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等,包括:
48.通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中,删除所述差值数目的、且运行失败的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等;或者,
49.通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实
例数目的情况下,从所述关联角色对象对应的实例对象中,删除所述差值数目的、且运行时长最短的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
50.在一些实施例中,所述通过所述控制器,获取所述框架标识指示的模型训练框架之前,所述方法还包括:
51.通过所述控制器,对所述训练任务进行校验;
52.所述通过所述控制器,通过所述控制器,获取所述框架标识指示的模型训练框架,包括:
53.响应于对所述训练任务校验成功,通过所述控制器,获取所述框架标识指示的模型训练框架。
54.在一些实施例中,所述训练任务还包括所述框架标识对应的地址;所述通过所述控制器,获取所述框架标识指示的模型训练框架,包括:
55.通过所述控制器,从所述框架标识对应的地址获取所述模型训练框架。
56.根据本公开实施例的再一方面,提供一种训练任务的执行装置,所述装置包括:
57.获取单元,被配置为执行通过控制器获取训练任务,所述训练任务用于训练网络模型,所述训练任务包括框架标识及框架运行信息,所述框架运行信息包括至少一个角色对象信息;
58.所述获取单元,还被配置为执行通过所述控制器,获取所述框架标识指示的模型训练框架,所述模型训练框架包括所述至少一个角色对象以及每个角色对象对应的函数集合,所述函数集合包括用于训练所述网络模型的函数;
59.创建单元,被配置为执行通过所述控制器,将所述模型训练框架中所述至少一个角色对象信息指示的角色对象,确定为所述训练任务的关联角色对象,基于所述关联角色对象对应的函数集合,分别为所述每个关联角色对象创建实例对象,所述实例对象包含对应的函数集合中的函数;
60.运行单元,被配置为执行运行所述每个关联角色对象对应的实例对象。
61.在一些实施例中,所述框架运行信息还包括所述每个角色对象信息对应的第一实例数目;所述创建单元,被配置为执行通过所述控制器,基于所述每个角色对象信息对应的第一实例数目及所述每个关联角色对象对应的函数集合,分别为所述每个关联角色对象创建对应的第一实例数目的实例对象。
62.在一些实施例中,所述框架运行信息包括多个所述角色对象信息及多个所述角色对象信息之间的依赖关系;所述运行单元,包括:
63.运行子单元,被配置为执行运行多个所述关联角色对象中第一类角色对象对应的实例对象,所述第一类角色对象为未依赖于其他角色对象的角色对象;
64.所述运行子单元,还被配置为执行在所述第一类角色对象对应的实例对象已运行的情况下,运行依赖于所述第一类角色对象的第二类角色对象对应的实例对象,所述第二类角色对象为多个所述关联角色对象中依赖于其他角色对象的角色对象。
65.在一些实施例中,所述第二类角色对象对应的实例对象和函数集合均包含依赖关系函数,所述依赖关系函数指示所述第二类角色对象所依赖的第一类角色对象;所述运行子单元,被配置为执行运行所述第二类角色对象对应的实例对象中的依赖关系函数;通过
所述依赖关系函数,监听所述第二类角色对象依赖的第一类角色对象对应的实例对象;确定所述实例对象已运行的情况下,运行所述第二类角色对象对应的实例对象。
66.在一些实施例中,所述运行子单元,被配置为执行通过所述依赖关系函数,监听所述第二类角色对象依赖的第一类角色对象对应的实例对象的地址,所述地址是由所述控制器在所述第一类角色对象对应的实例对象运行成功时缓存的;响应于监听到所述地址,运行所述第二类角色对象对应的实例对象。
67.在一些实施例中,创建单元,还被配置为执行为所述每个关联角色对象创建一个通信服务,所述通信服务用于实现至少一个关联角色对象对应的实例对象之间的通信。
68.在一些实施例中,所述装置还包括:
69.重启单元,被配置为执行响应于任一实例对象运行失败,且所述框架运行信息包括所述实例对象所属的关联角色对象对应的失败重启参数,重启所述实例对象。
70.在一些实施例中,所述框架运行信息还包括状态确定策略,所述状态确定策略指示由所述至少一个角色对象信息指示的角色对象对应的实例对象的状态,确定所述训练任务的状态的策略;所述装置还包括:
71.确定单元,被配置为执行通过所述控制器,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务的状态。
72.在一些实施例中,所述状态确定策略包括所述每个角色对象信息对应的第一策略及所述训练任务对应的第二策略,所述第一策略为由所述角色对象信息指示的关联角色对象对应的实例对象的状态确定出所述关联角色对象的状态的策略,所述第二策略为由所述关联角色对象的状态确定出所述训练任务的状态的策略;
73.所述确定单元,被配置为执行通过所述控制器,采用所述每个角色对象信息对应的第一策略,分别对所述每个关联角色对象对应的实例对象的状态进行处理,得到所述每个关联角色对象的状态;通过所述控制器,采取所述第二策略,对所述每个关联角色对象的状态进行处理,得到所述训练任务的状态。
74.在一些实施例中,所述确定单元,被配置为执行通过所述控制器,每间隔目标时长,采用所述状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到所述训练任务更新后的状态。
75.在一些实施例中,所述装置还包括:
76.停止单元,被配置为执行响应于所述训练任务的状态为结束状态,停止运行所述模型训练框架。
77.在一些实施例中,所述获取单元,被配置为执行通过所述控制器,从所述控制器对应的任务队列中获取待处理的所述训练任务;
78.所述装置还包括:
79.清除单元,被配置为执行清除运行所述模型训练框架时产生的数据。
80.在一些实施例中,所述框架运行信息还包括所述每个角色对象信息对应的第一实例数目;所述装置还包括:
81.校验单元,被配置为执行通过所述控制器,基于所述每个角色对象信息对应的第一实例数目,对所述每个关联角色对象对应的实例对象的第二实例数目进行校验;
82.更新单元,被配置为执行通过所述控制器,在任一关联角色对象对应的第一实例
数目和第二实例数目不同的情况下,基于所述第一实例数目与所述第二实例数目之间的差值数目,对所述关联角色对象对应的实例对象进行更新,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
83.在一些实施例中,所述更新单元,被配置为执行通过所述控制器,在所述关联角色对象对应的所述第二实例数目小于所述第一实例数目的情况下,为所述关联角色对象创建所述差值数目的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等;或者,通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中删除所述差值数目的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
84.在一些实施例中,所述更新单元,被配置为执行通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中,删除所述差值数目的、且运行失败的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等;或者,通过所述控制器,在所述关联角色对象对应的所述第二实例数目大于所述第一实例数目的情况下,从所述关联角色对象对应的实例对象中,删除所述差值数目的、且运行时长最短的实例对象,以使所述关联角色对象对应的实例对象的实例数目与所述第一实例数目相等。
85.在一些实施例中,所述装置还包括:
86.校验单元,被配置为执行通过所述控制器,对所述训练任务进行校验;
87.所述运行单元,被配置为执行响应于对所述训练任务校验成功,通过所述控制器,获取所述框架标识指示的模型训练框架。
88.在一些实施例中,所述训练任务还包括所述框架标识对应的地址;所述获取单元,被配置为执行通过所述控制器,从所述框架标识对应的地址获取所述模型训练框架。
89.根据本公开实施例的再一方面,提供了一种电子设备,所述电子设备包括:
90.处理器;
91.用于存储所述处理器可执行指令的存储器;
92.其中,所述处理器被配置为执行所述指令,以实现上述所述的训练任务的执行方法。
93.根据本公开实施例的再一方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的训练任务的执行方法。
94.根据本公开实施例的再一方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的训练任务的执行方法。
95.本公开实施例提供的训练任务的执行方法、装置、电子设备及存储介质,提供了一种通用控制器,能够适用于多种模型训练框架,在需要利用任一模型训练框架来训练网络模型时,仅需配置一个训练任务,在该训练任务中指定所要利用的模型训练框架的框架标识及框架运行信息,在该框架运行信息中配置该模型训练框架包含的、且与该训练任务关联的关联角色对象对应的角色对象信息,以使通过该控制器,基于该框架运行信息及模型训练框架中每个关联角色对象对应的函数集合,为每个关联角色对象创建对应的实例对
象,每个关联角色对象对应的实例对象包含对应的函数集合中的函数,使得运行每个关联角色对象对应的实例对象时,各个实例对象运行包含的函数,从而实现模型训练框架的运行,以便后续实现模型训练任务。基于此方法,开发人员仅需学习该通用控制器,即可实现使用多种模型训练框架的训练任务,无需再学习每种模型训练框架对应的控制器,节省了开发时间,从而节省了人力成本。
96.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
97.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
98.图1是根据一示例性实施例示出的一种实施环境的示意图。
99.图2是根据一示例性实施例示出的一种训练任务的执行方法的流程图。
100.图3是根据一示例性实施例示出的另一种训练任务的执行方法的流程图。
101.图4是根据一示例性实施例示出的一种模型训练框架运行的流程图。
102.图5是根据一示例性实施例示出的一种确定训练任务的状态的流程图。
103.图6是根据一示例性实施例示出的一种调谐处理的流程图。
104.图7是根据一示例性实施例示出的一种训练任务执行的流程图。
105.图8是根据一示例性实施例示出的另一种调谐处理的流程图。
106.图9是根据一示例性实施例示出的一种训练任务的执行装置的框图。
107.图10是根据一示例性实施例示出的另一种训练任务的执行装置的框图。
108.图11是根据一示例性实施例示出的一种终端的框图。
109.图12是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
110.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
111.需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
112.本公开所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个角色对象包括3个角色对象,而每个是指这3个角色对象中的每一个角色对象,任一是指这3个角色对象中的任意一个角色对象,能够是第一个角色对象,或者,是第二个角色对象,或者,是第三个角色对象。
113.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人
信息等),均为经用户授权或者经过各方充分授权的信息。
114.本公开实施例提供的方法,由电子设备执行。在一些实施例中,该电子设备包括终端或服务器。在一些实施例中,该终端为手机、平板电脑、计算机等多种类型的终端。在一些实施例中,该服务器为一台服务器,或者,由若干服务器组成的服务器集群,或者是一个云计算服务中心。
115.在一些实施例中,电子设备提供为服务器。图1是根据一示例性实施例提供的一种实施环境的示意图,该实施环境包括:终端101和服务器102,终端101与服务器102之间建立有网络连接,终端101通过该网络连接能够与服务器102进行交互。
116.终端101用于配置训练任务,还能够通过与服务器102交互,请求服务器102执行该训练任务。服务器102中配置有通用控制器,通过该控制器能够执行获取到的训练任务。终端101获取已配置的训练任务,向服务器102发送任务训练请求,该任务训练请求携带该训练任务,服务器102接收该任务训练请求,通过该控制器,执行该任务训练请求携带的训练任务。
117.在一些实施例中,终端101安装有目标应用,服务器102为该目标应用提供服务。终端101基于该目标应用中的任务模板,配置训练任务,基于该目标应用,向服务器102发送任务训练请求,该任务训练请求携带该训练任务,服务器102接收任务训练请求,将该任务训练请求携带的训练任务,添加在控制器对应的任务队列中,通过该控制器,从该任务队列中获取待处理的训练任务,执行该训练任务。
118.图2是根据一示例性实施例示出的一种训练任务的执行方法的流程图,参见图2,该方法由电子设备执行,包括以下步骤:
119.201、电子设备通过控制器获取训练任务,该训练任务用于训练网络模型,该训练任务包括框架标识及框架运行信息。
120.在本公开实施例中,该控制器用于运行任意的模型训练框架,该模型训练框架用于训练网络模型。模型训练框架为任意的框架,例如,该模型训练框架为ai(artificial intelligence,人工智能)训练框架。训练任务用于训练网络模型,该训练任务包括的框架标识指示用于训练网络模型的模型训练框架,该训练任务包括的框架运行信息包括至少一个角色对象信息,该角色对象信息指示模型训练框架中的角色对象。后续通过该控制器,基于该框架运行信息能够运行框架标识指示该模型训练框架,以便训练出网络模型。
121.202、电子设备通过控制器,获取框架标识指示的模型训练框架。
122.其中,该模型训练框架包括至少一个角色对象以及每个角色对象对应的函数集合,函数集合包括用于训练网络模型的函数。后续在该模型训练框架运行时,运行训练任务的关联角色对象对应的函数集合中的函数,从而训练出该训练任务对应的网络模型。通过该控制器,能够获取该训练任务中框架标识指示的模型训练框架,以便后续运行获取到的模型训练框架。
123.203、电子设备通过控制器,将模型训练框架中至少一个角色对象信息指示的角色对象,确定为训练任务的关联角色对象,基于关联角色对象对应的函数集合,分别为每个关联角色对象创建实例对象,实例对象包含对应的函数集合中的函数。
124.由于框架运行信息包括至少一个角色对象信息,该至少一个角色对象信息指示了模型训练框架中与训练任务关联的关联角色对象,且模型训练框架包括每个角色对象对应
的函数集合,则通过该控制器,基于该框架运行信息,能够确定出每个关联角色对象对应的函数集合,并为每个关联角色对象创建对应的实例对象,使得每个关联角色对象对应的实例对象包含该关联角色对象对应的函数集合中的函数,后续在模型训练框架运行时,即运行每个关联角色对象对应的函数集合中的函数,能够实现网络模型的训练过程,从而训练出网络模型。
125.204、电子设备运行每个关联角色对象对应的实例对象。
126.电子设备通过运行每个关联角色对象对应的实例对象,从而实现了该模型运行框架的运行,以便运行的各个实例对象能够运行包含的函数,基于运行的函数训练出网络模型。在本公开实施例中,训练任务中指示了对象的模型训练框架及该模型训练框架对应的框架运行信息,通过该控制器及该框架运行信息,即可运行该模型训练框架,从而实现了该控制器的通用性。通过该控制器,基于该框架运行信息运行该模型训练框架,以便基于运行的模型训练框架能够训练出网络模型。
127.本公开实施例提供的方法,提供了一种通用控制器,能够适用于多种模型训练框架,在需要利用任一模型训练框架来训练网络模型时,仅需配置一个训练任务,在该训练任务中指定所要利用的模型训练框架的框架标识及框架运行信息,在该框架运行信息中配置该模型训练框架包含的、且与该训练任务关联的关联角色对象对应的角色对象信息,以使通过该控制器,基于该框架运行信息及模型训练框架中每个关联角色对象对应的函数集合,为每个关联角色对象创建对应的实例对象,每个关联角色对象对应的实例对象包含对应的函数集合中的函数,使得运行每个关联角色对象对应的实例对象时,各个实例对象运行包含的函数,从而实现模型训练框架的运行,以便后续实现模型训练任务。基于此方法,开发人员仅需学习该通用控制器,即可实现使用多种模型训练框架的训练任务,无需再学习每种模型训练框架对应的控制器,节省了开发时间,从而节省了人力成本。
128.在一些实施例中,框架运行信息还包括每个角色对象信息对应的第一实例数目;基于关联角色对象对应的函数集合,分别为每个关联角色对象创建实例对象,包括:
129.基于每个角色对象信息对应的第一实例数目及每个关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象。
130.本公开实施例提供的方法,对于任意的模型训练框架对应的训练任务,用户通过简单的配置,即可为每个关联角色对象配置任意的实例数目,通过本公开提供的通用控制器,基于每个关联角色对象对应的第一实例数目及函数集合,即可为每个关联角色对象创建相应数目的实例对象,以保证该训练任务所需的运行环境,此过程无需用户再配置为每个关联角色对象创建实例对象的逻辑代码,保证了该训练任务配置的通用性,能够节省开发时间,从而节省人力成本。
131.在一些实施例中,框架运行信息包括多个角色对象信息及多个角色对象信息之间的依赖关系;运行每个关联角色对象对应的实例对象,包括:
132.运行多个关联角色对象中第一类角色对象对应的实例对象,第一类角色对象为未依赖于其他角色对象的角色对象;
133.在第一类角色对象对应的实例对象已运行的情况下,运行依赖于第一类角色对象的第二类角色对象对应的实例对象,第二类角色对象为多个关联角色对象中依赖于其他角色对象的角色对象。
134.通过在训练任务中配置模型训练中各个角色对象信息之间的依赖关系,能够按照各个角色对象信息之间的依赖顺序,依次运行各个关联角色对象对应的实例对象,从而保证模型训练框架运行的准确性。
135.在一些实施例中,第二类角色对象对应的实例对象和函数集合均包含依赖关系函数,依赖关系函数指示第二类角色对象所依赖的第一类角色对象;在第一类角色对象对应的实例对象已运行的情况下,运行依赖于第一类角色对象的第二类角色对象对应的实例对象,包括:
136.运行第二类角色对象对应的实例对象中的依赖关系函数;
137.通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象;
138.确定实例对象已运行的情况下,运行第二类角色对象对应的实例对象。
139.对于依赖于其他角色对象的第二类角色对象,第二类角色对象对应的实例对象包含依赖关系函数,采用监听的方式,通过依赖关系函数监听所依赖的角色对象对应的实例对象,以保证能够及时运行第二类角色对象对应的实例对象,从而保证模型训练框架的运行效率。
140.在一些实施例中,通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象,包括:
141.通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象的地址,地址是由控制器在第一类角色对象对应的实例对象运行成功时缓存的;
142.确定实例对象已运行的情况下,运行第二类角色对象对应的实例对象,包括:
143.响应于监听到地址,运行第二类角色对象对应的实例对象。
144.通过依赖关系函数监听所依赖的角色对象对应的实例对象的地址,以确定所依赖的角色对象是否已运行,以便能够及时运行第二类角色对象对应的实例对象,从而保证模型训练框架的运行效率。
145.在一些实施例中,运行每个关联角色对象对应的实例对象之后,方法还包括:
146.为每个关联角色对象创建一个通信服务,通信服务用于实现至少一个关联角色对象对应的实例对象之间的通信。
147.通过为每个关联角色对象创建一个通信服务,以便后续在模型训练框架的运行过程中,多个实例对象之间能够进行通信,从而保证训练任务的正常进行。
148.在一些实施例中,运行每个关联角色对象对应的实例对象之后,方法还包括:
149.响应于任一实例对象运行失败,且框架运行信息包括实例对象所属的关联角色对象对应的失败重启参数,重启实例对象。
150.在本公开实施例中,能够在训练任务中配置每个关联角色对象对应的失败重启参数,通过监控各个实例对象的运行状态,以便在任一实例对象运行失败、且对应有失败重启参数时,重启该实例对象,重启后的实例对象能够运行包含的函数,以保证训练任务的正常运行,也能够提升训练网络模型的效率。
151.在一些实施例中,框架运行信息还包括状态确定策略,状态确定策略指示由至少一个角色对象信息指示的角色对象对应的实例对象的状态,确定训练任务的状态的策略;运行每个关联角色对象对应的实例对象之后,方法还包括:
152.通过控制器,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务的状态。
153.本公开实施例提供的方法,训练任务中配置了状态确定策略,该状态确定策略指示了至少一个角色对象信息指示的角色对象对应的实例对象的状态确定训练任务的状态的策略,在运行模型训练框架的过程中,通过该控制器,能够监控各个实例对象的状态及该训练任务的状态,采取状态确定策略,基于每个实例对象的状态来确定训练任务的状态,以确定该训练任务是否完成,实现了对训练任务的监控。
154.在一些实施例中,状态确定策略包括每个角色对象信息对应的第一策略及训练任务对应的第二策略,第一策略为由角色对象信息指示的关联角色对象对应的实例对象的状态确定出关联角色对象的状态的策略,第二策略为由关联角色对象的状态确定出训练任务的状态的策略;
155.通过控制器,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务的状态,包括:
156.通过控制器,采用每个角色对象信息对应的第一策略,分别对每个关联角色对象对应的实例对象的状态进行处理,得到每个关联角色对象的状态;
157.通过控制器,采取第二策略,对每个关联角色对象的状态进行处理,得到训练任务的状态。
158.通过在训练任务中配置用于确定不同状态的策略,在运行模型训练框架的过程中,通过该控制器采用不同的策略即可显示对不同种类的状态进行监控,从而实现了对训练任务的监控。
159.在一些实施例中,通过控制器,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务的状态,包括:
160.通过控制器,每间隔目标时长,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务更新后的状态。
161.在运行模型训练框架的过程中,通过控制器,每间隔目标时长更新一次训练任务的状态,从而保证训练任务的状态与当前的进程相匹配,从而保证了训练任务的状态的准确性。
162.在一些实施例中,方法还包括:
163.响应于训练任务的状态为结束状态,停止运行模型训练框架。
164.在运行模型训练框架的过程中,通过监控训练任务的状态,一旦确定训练任务的状态为结束状态,即使停止运行的模型训练框架,避免了训练任务已结束还占用资源的情况,从而节省了资源。
165.在一些实施例中,通过控制器获取训练任务,包括:
166.通过控制器,从控制器对应的任务队列中获取待处理的训练任务;
167.响应于训练任务的状态为结束状态,停止运行模型训练框架之后,方法还包括:
168.清除运行模型训练框架时产生的数据。
169.在训练任务结束后,清除运行模型训练框架时产生的数据,以节省存储资源。
170.在一些实施例中,框架运行信息还包括每个角色对象信息对应的第一实例数目;运行每个关联角色对象对应的实例对象之后,方法还包括:
171.通过控制器,基于每个角色对象信息对应的第一实例数目,对每个关联角色对象对应的实例对象的第二实例数目进行校验;
172.通过控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于第一实例数目与第二实例数目之间的差值数目,对关联角色对象对应的实例对象进行更新,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
173.在运行模型训练框架的过程中,通过控制器对各个关联角色对象对应的实例对象的数目与训练任务中所要求的数目进行校验,以保证每个关联角色对象对应的实例对象的数目与要求的数目相匹配,从而保证为模型训练框架提供的运行环境的准确性,为了网络模型的训练提供支持。
174.在一些实施例中,通过控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于第一实例数目与第二实例数目之间的差值数目,对关联角色对象对应的实例对象进行更新,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等,包括:
175.通过控制器,在关联角色对象对应的第二实例数目小于第一实例数目的情况下,为关联角色对象创建差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等;或者,
176.通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中删除差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
177.在任一关联角色对象对应的实例对象的数目与所要求的的数目不相同的情况下,采取不同方式对关联角色对象对应的实例对象进行更新,以保证实例对象的数目与所要求的数目相匹配,保证了模型训练框架运行的准确性。
178.在一些实施例中,通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中删除差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等,包括:
179.通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除差值数目的、且运行失败的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等;或者,
180.通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除差值数目的、且运行时长最短的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
181.在关联角色对象对应的实例对象的数目大于所要求的数目时,能够采取不同方式删除实例对象,丰富了删除实例对象的方式,也保证了实例对象的数目与所要求的数目相匹配,保证了模型训练框架运行的准确性。
182.在一些实施例中,通过控制器,获取框架标识指示的模型训练框架之前,方法还包括:
183.通过控制器,对训练任务进行校验;
184.通过控制器,通过控制器,获取框架标识指示的模型训练框架,包括:
185.响应于对训练任务校验成功,通过控制器,获取框架标识指示的模型训练框架。
186.在运行模型训练框架之前,对训练任务进行校验,以保证训练任务满足要求,从而保证后续能够正常运行模型训练框架,避免在运行过程中再出现问题,降低了出错率。
187.在一些实施例中,训练任务还包括框架标识对应的地址;通过控制器,获取框架标识指示的模型训练框架,包括:
188.通过控制器,从框架标识对应的地址获取模型训练框架。
189.通过配置模型训练框架的地址来获取模型训练框架,从而保证获取模型训练框架的便捷性。
190.在上述图2所示的实施例的基础上,通过控制器为模型训练框架创建多个实例对象,以运行多个实例对象的方式来实现模型训练框架的运行,并在模型训练框架的运行过程中,获取训练任务的状态,在训练任务结束后,停止运行模型训练框架并清除运行过程中产生的数据,详细过程详见下述实施例。
191.图3是根据一示例性实施例示出的一种训练任务的执行方法的流程图,参见图3,由电子设备执行,包括以下步骤:
192.301、电子设备通过控制器,从控制器对应的任务队列中获取待处理的训练任务。
193.其中,该控制器是一种用于运行模型训练框架的通用控制器,例如,该控制器为aresoperator(一种控制器)。训练任务用于训练人工智能神经网络模型,例如,该训练任务为aresjob(一种训练任务)。训练任务包括的框架标识指示该训练任务对应的模型训练框架,在一些实施例中,该框架标识包括模型训练框架的框架名称或者训练框架对应的存储地址中的至少一项。在一些实施例中不同的模型训练框架所属的框架类型不同,该框架标识为模型训练框架的框架类型。训练任务中的框架运行信息包括至少一个角色对象信息,该至少一个角色对象信息指示了该模型训练框架中与该训练任务关联的角色对象。在一些实施例中,角色对象信息包括对应的角色对象的名称或角色对象标识。训练任务要以该控制器匹配的结构体来表示,例如,与该控制器匹配的结构体为aresjob(一种结构形式)定义的结构体。在一些实施例中,该训练任务能够以任意格式的文件来表示,例如,该训练任务以yaml(一种表达数据序列化的格式)格式的文件表示,或者,以json(一种轻量级的数据交换格式)格式的文件表示。在一些实施例中,该训练任务以文件形式表示,训练任务文件包括框架标识字段及框架运行信息字段,该框架标识字段包括框架标识,该框架运行信息字段包括框架运行信息。其中,训练任务文件包括多种字段,不同的字段所包含的信息不同,每个字段能够以任意的形式表示,例如,框架标识字段及框架运行信息字段均以配置的形式存储于该训练任务文件中。
194.在本公开实施例中,该控制器对应有任务队列,该任务队列包括待处理的至少一个训练任务,每个训练任务用于训练网络模型,不同的训练任务用于训练的网络模型可能不同。不同的训练任务中包含的框架标识可能不同,即该任务队列可能包括基于不同的模型训练框架来训练不同的网络模型的训练任务,该控制器能够分别执行任务队列中的训练任务,依次完成每个训练任务。
195.在本公开实施例中,该控制器为通用控制器,用于执行训练任务,该训练任务相当于模型训练框架的操作入口,对于包含不同模型训练框架的框架标识的训练任务,通过该控制器及训练任务,即可运行该训练任务对应的模型训练框架,以保证模型训练框架能够运行,使得基于运行模型训练框架训练出网络模型,适用于多种不同的模型训练框架,从而
实现了该控制器的通用性。
196.在一些实施例中,该框架运行信息还包括第一框架信息及第二框架信息,该第一框架信息指示期望在模型训练框架运行时所要达到的状态,第二框架信息为在模型框架运行过程中所要监控到的信息。
197.例如,第一框架信息包括调度策略、可用端口、框架特定参数、角色对象定义、第二策略中的至少一项。其中,调度策略指示调度模型训练框架对应的实例对象的策略,例如,该调度策略指示使用默认调度器还是组调度器,该调度策略能够指示为模型训练框架创建的实例对象如何分布在不同的服务器上。例如,该默认调度器为kubernetes(一种容器编排引擎)中的调度器,组调度器为模型训练框架对应的调度器。框架特定参数用于配置模型训练框架独特的参数,在本公开实施例中,不同的模型训练框架可能包括相同的参数,也可能包括每个模型训练框架独特的参数,因此,在第一框架信息中配置了框架独特参数,以配置每个模型训练框架独特的参数。基于该框架特征参数,使得控制器能够支持实现自定义模型训练框架的参数,对于用户自主研发的模型训练框架,在配置训练任务时,在该框架特征参数中配置自主研发的模型训练框架独特的参数,以使后续基于该控制器能够实现用户自主研发的模型训练框架的运行,使得本公开实施例提供的方法,不仅能够适用于通用的模型训练框架,也能够适用于用户自主研发的模型训练框架。可用端口表示模型训练框架的可用端口数量,角色对象定义用于配置模型训练框架包含的角色对象的参数,第二策略指示基于关联角色对象的状态确定训练任务的状态的策略。
198.再例如,调度策略包括最小可用值、队列、优先类,该最小可用值表示调度策略中最小可用实例对象的数量,队列指示调度实例对象时所使用的资源组,即在调度实例对象时,需要基于该队列所指示的资源组才能实现。优先类指示实例对象所需处理的数据之间的优先级别。基于该调度策略中的最小可用值、队列、优先类,能够调度模型训练框架对应的实例对象,从而基于运行的实例对象训练出网络模型。
199.再例如,角色对象定义包括角色对象信息对应的第一实例数目、角色对象信息对应的实例对象的定义、角色对象信息对应的实例对象重启策略、第一策略及模型训练框架包括的多个角色对象信息之间的依赖关系。其中,第一实例数目为期望在模型训练框架运行时,为关联角色对象创建的实例对象的实例数目。实例对象定义用于配置关联角色对象对应的实例对象的含义,例如,实例对象定义包括创建实例对象所需的容器、该实例对象包含的函数及该实例对象所处的运行环境。实例对象重启策略指示实例运行失败后重启的策略,例如,角色对象信息对应的实例对象重启策略指示该角色对象信息指示的关联角色对象对应的实例对象运行失败后是否重新启动。第一策略指示基于角色对象信息指示的关联角色对象对应的实例对象的状态确定关联角色对象的状态的策略。该依赖关系指示多个角色对象之间的依赖关系,例如,该依赖关系为dependencyspec(一种依赖关系)。例如,多个关联角色对象包括关联角色对象1、关联角色对象2及关联角色对象3,关联角色对象1依赖于关联角色对象2,关联角色对象2依赖于关联角色对象3。
200.例如,第二框架信息包括训练任务的状态、角色对象的状态、启动时间、运行时间、完成时间中的至少一项。其中,训练任务的状态为训练任务当前所处的状态,如训练任务的状态包括待处理状态、启动中状态、运行中状态、结束状态,结束状态包括成功状态或失败状态。启动时间指示该训练任务开始启动的时间,运行时间为训练任务启动完成开始运行
的时间,完成时间为训练任务完成的时间。
201.再例如,在运行模型训练框架的过程中,期望监控到角色对象的状态包括角色对象当前所处的状态、处于当前状态的原因、处于当前状态的信息、最近一次状态变更时间、处于运行状态的实例对象的数量、处于成功状态的实例对象的数量、处于失败状态的实例对象的数量、处于等待状态的实例对象的数量、处于未知状态的实例对象的数量、处于结束中状态的实例对象的数量。其中,角色对象当前所处的状态包括启动中状态、运行中状态、成功状态或失败状态。处于当前状态的原因及处于当前状态的信息用于描述角色对象当前所处的状态,例如,角色对象当前所处的状态为:运行中状态,处于当前状态的原因为角色对象对应的实例对象正在运行,处于当前状态的信息为模型训练框架正在运行。最近一次状态变更时间指示最近更新角色对象的状态的时间。处于运行状态的实例对象的数量、处于成功状态的实例对象的数量、处于失败状态的实例对象的数量、处于等待状态的实例对象的数量、处于未知状态的实例对象的数量及处于结束中状态的实例对象的数量分别表示角色对象对应的实例对象中处于不同状态的实例对象的数量。其中,角色对象对应的实例对应所处的状态包括运行状态、成功状态、失败状态、等待状态、未知状态、结束中状态中的至少一项,运行状态表示实例对象正在运行,成功状态表示实例对象已成功运行完成,该失败状态表示实例对象运行失败,等待状态表示实例对象处于等待启动或等待创建的状态,结束中状态表示该实例对象正在运行中,且即将运行完成。未知状态表示当前无法监控到实例对象的状态,例如,实例对象所处的服务器处于异常状态,通过该控制器无法监控到该实例对象当前所处的状态,因此,确定该实例对象处于未知状态。
202.在一些实施例中,该训练任务是基于该控制器对应的任务模板生成的。其中,该任务模板用于指示该控制器所能够执行的训练任务包含的参数,这些参数为该任务模板中的数据结构体。例如,任务模板包括框架标识模板及框架运行信息模板。用户在需要控制器执行一个训练任务时,基于该控制器对应的任务模板,对该任务模板进行配置,得到一个训练任务,之后将该训练任务提交至该控制器对应的任务队列中,后续由该控制器执行该训练任务。
203.在上述实施例的一种可能实现方式中,用户基于训练任务所要使用的模型训练框架中的参数,对该任务模板进行配置,得到训练任务,该训练任务中的框架运行信息为该模型训练框架中包含的信息及控制策略。例如,用户获取该任务模板,确定该任务模板中所需配置的参数,基于所要使用的模型训练框架的参数,在任务模板中进行填充,将填充后的任务模板作为训练任务。
204.在一些实施例中,该模型训练框架包括用于训练网络模型的信息。例如,该模型训练框架包括训练网络模型所用到的函数及函数对应的数据。在该模型训练框架运行时,运行该模型训练框架中的函数,通过运行的函数,对函数对应的数据进行处理,从而训练得到网络模型。
205.在一些实施例中,该控制器为一种容器编排引擎中的插件,该301包括:在运行该容器编排引擎的情况下,运行该控制器;通过该控制器,从该控制器对应的任务队列中获取待处理的训练任务。
206.其中,该容器编排引擎用于编排多种容器,例如,该容器编排引擎为kubernetes。该容器编排引擎具有多种功能,该控制器是基于该容器编排引擎开发的,相当于该容器编
排引擎所具有的多种功能中的一种。
207.在上述实施例的一种可能实现方式中,该电子设备提供为服务器,在任务队列中添加训练任务的方式包括:终端安装有该容器编排引擎对应的客户端,终端基于该客户端向该服务器发送任务训练请求,该任务训练请求携带训练任务,服务器基于该容器编排引擎接收到该任务训练请求后,将该任务训练请求携带的训练任务添加在该控制器对应的任务队列中。
208.在本公开实施例中,服务器为该容器编排引擎提供服务,该服务器基于该容器编排引擎能够提供任务训练服务。用户通过终端配置训练任务,终端通过该容器编排引擎对应的客户端,向服务器发送配置的训练任务,服务器通过该容器编排引擎将该训练任务添加在控制器对应的任务队列中,以便控制器能够从该任务队列中获取待处理的训练任务进行训练。
209.例如,用户终端基于客户端向服务器发送的任务训练请求还携带控制器标识,服务器接收任务训练请求后,将该训练任务添加该控制器标识指示的控制器所对应的任务队列中。
210.需要说明的是,本公开实施例是从任务队列中获取训练任务的,而在另一实施例中,无需执行步骤301,能够采取其他方式,通过控制器获取训练任务。
211.302、电子设备通过控制器,获取该训练任务中的框架标识指示的模型训练框架。
212.在本公开实施例中,训练任务包括框架标识,也即是该训练任务指定了执行该训练任务时所要使用的模型训练框架。通过该控制器,获取该框架标识指示的模型训练框架,以便后续能够运行该模型训练框架,训练出网络模型。
213.在一些实施例中,该302包括:电子设备通过控制器,从框架标识对应的地址获取模型训练框架。
214.在本公开实施例中,训练任务还包括框架标识对应的地址,该框架标识指示的模型训练框架存储于该地址下。电子设备通过该控制器,从该地址下获取该模型训练框架。通过配置模型训练框架的地址来获取模型训练框架,从而保证获取模型训练框架的便捷性。
215.303、电子设备通过控制器,对训练任务进行校验。
216.在本公开实施例中,在执行该训练任务之前,需要对该训练任务进行校验,在校验成功的情况下,才会执行该训练任务,以避免在执行训练任务的过程中出现错误,从而降低训练任务的出错率。
217.在一些实施例中,该303包括:通过该控制器,对该训练任务进行格式校验,响应于训练任务的格式满足要求,确定该训练任务校验通过,响应于训练任务的格式不满足要求,确定训练任务校验未通过。
218.在本公开实施例中,训练任务包括框架标识及框架运行信息,框架标识及框架运行信息均具有相应的格式,通过对训练任务进行格式校验,以验证训练任务配置的是否准确。
219.在上述实施例的一种可能实现方式中,训练任务包括多个字段,不同的字段代表不同的信息,则对训练任务进行格式校验的过程,包括:对多个字段进行格式校验,响应于多个字段的格式均满足要求,确定该训练任务校验通过,响应于任一字段的格式不满足要求,确定训练任务校验未通过。通过对多个字段进行格式校验,以确定训练任务是否满足格
式要求。例如,训练任务包括角色对象信息对应的第一实例数目,第一实例数目应该为大于0的整数,如果训练任务中表示第一实例数目的字段中的数目小于0,则表示该字段的格式不满足格式要求,则确定该训练任务校验未通过。
220.在一些实施例中,训练任务包括多个字段,该多个字段包括默认字段,该方法还包括:通过该控制器,对训练任务中的多个字段进行校验,响应于任一默认字段为空,在该字段中填充默认值。
221.在本公开实施例中,训练任务中的多个字段包括默认字段,默认字段具有默认值。在配置训练任务时,用户能够在该默认字段填充任一满足格式要求的值,也能够不对默认字段进行填充。如果用户在该默认字段中填充了值,后续执行该训练任务时,会按照该默认字段中的填充值运行模型训练框架;如果用户未对默认字段进行填充,则在对训练任务进行校验时,在该默认字段中填充该默认字段对应的默认值,后续执行该训练任务时,会按照该默认字段中的默认值运行模型训练框架。
222.例如,默认字段为第一策略字段,第一策略字段的默认值为:对于关联角色对象对应的多个实例对象,任一实例对象运行失败,则该关联角色对象运行失败;如果训练任务中的第一策略字段中填充值表示对于关联角色对象对应的多个实例对象,该多个实例对象均运行失败,则该关联角色对象运行失败,后续基于多个实例对象的状态确定关联角色对象的状态时,按照该填充值进行确定;如果训练任务中第一策略字段为空,则在该第一策略字段中填充对应的默认值,后续基于多个实例对象的状态确定关联角色对象的状态时,按照该默认值进行确定。
223.需要说明的是,本公开实施例是以先获取模型训练框架,再对训练任务进行校验的,而在另一实施例中,能够先通过控制器,对训练任务进行校验,在对训练任务校验成功的情况下,通过控制器,获取框架标识指示的模型训练框架。
224.304、电子设备响应于对训练任务校验成功,通过控制器,将模型训练框架中至少一个角色对象信息指示的角色对象,确定为训练任务的关联角色对象,基于关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象,实例对象包含对应的函数集合中的函数。
225.在本公开实施例中,框架运行信息包括至少一个角色对象信息及每个角色对象信息对应的第一实例数目,每个角色对象信息指示该模型训练框架中的一个角色对象,该至少一个角色对象信息指示的角色对象为模型训练框架中与该训练任务关联的角色对象,即每个角色对象信息指示一个关联角色对象。第一实例数目为每个角色对象信息指定的实例对象数目,即表示在运行模型训练框架时,期望为每个关联角色对象创建的实例对象数目,实例对象用于运行包含的函数。模型训练框架包括每个角色对象对应的函数集合,函数集合包括用于训练网络模型的函数;后续在模型训练框架运行时,即运行每个关联角色对象对应的函数集合中的函数,能够实现网络模型训练过程,从而训练出网络模型。
226.对于每个关联角色对象,通过该控制器,基于该角色对象信息对应的第一实例数目及该角色对象信息指示的关联角色对象对应的函数集合,为该关联角色对象创建对应的第一实例数目的实例对象,该实例对象包含该关联角色对象对应的函数集合中的函数。例如,任一角色对象信息对应的第一实例数目为3,通过控制器,为该角色对象信息指示的关联角色对象创建3个实例对象,每个实例对象包含该关联角色对象对应的函数集合中的函
数。在本公开实施例中,模型训练框架包括每个角色对象对应的函数集合,训练任务中已经指定了与该训练任务关联的关联角色对象及每个关联角色对象对应的第一实例数目,按照每个关联角色对象对应的第一实例数目,为每个关联角色对象创建相应数目的实例对象,后续运行每个关联角色对象对应的对象实例,即每个对象实例运行包含的函数,从而实现了运行了该模型训练框架。
227.在一些实施例中,该至少一个角色信息的数目与模型训练框架包括的角色对象的数目可能相同,也可能不同。如果至少一个角色信息的数目与模型训练框架包括的角色对象的数目相同,则表示该模型训练框架中的所有角色对象均与该训练任务关联,即该模型训练框架中的每个角色对象为关联角色对象;如果至少一个角色信息的数目与模型训练框架包括的角色对象的数目不同,则表示该模型训练框架中的部分角色对象均与该训练任务关联,即该模型训练框架中的部分角色对象为关联角色对象。
228.在一些实施例中,该训练任务还包括调度策略,则304包括:电子设备响应于对训练任务校验成功,通过该控制器,采取该调度策略,基于每个角色对象信息对应的第一实例数目及每个关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象,将至少一个关联角色对象对应的实例对象部署在不同的服务器上。
229.在本公开实施例中,调度策略指示调度模型训练框架对应的实例对象的策略。在为该模型训练框架中每个关联角色对象创建实例对象时,采取该调度策略,能够将创建的实例对象部署在不同的服务器上,之后,运行不同服务器上的实例对象,从而实现了该模型训练框架的运行。通过采取调度策略将多个实例对象部署在不同的服务器上,以降低在执行训练任务时对服务器的配置的要求,也能够提升实例对象的运行速度。
230.需要说明的是,本公开实施例是先对训练任务进行校验,在对训练任务校验成功的情况下,才会通过控制器,为每个关联角色对象创建对应的第一实例数目的实例对象,而在另一实施例中,无需执行303-304,在获取到模型训练框架后,直接通过控制器,基于每个角色对象信息对应的第一实例数目及每个关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象。
231.305、电子设备运行每个关联角色对象对应的实例对象。
232.电子设备通过运行每个关联角色对象对应的实例对象,从而实现了该模型运行框架的运行,以便运行的各个实例对象能够运行包含的函数,基于运行的函数训练出网络模型。通过本公开提供的通用控制器,在训练任务中配置至少一个角色对象信息及每个角色对象信息对应的第一实例数目,即可为每个角色对象信息指示的关联角色对象创建相应数目的实例对象,以使实例对象能够运行对应的函数集合中函数,运行每个关联角色对象对应的实例对象,相当于实现了模型训练框架的运行,配置简单,能够节省开发时间,从而节省人力成本。
233.在一些实施例中,框架运行信息包括多个角色对象信息及多个角色对象信息之间的依赖关系;则运行每个关联角色对象对应的实例对象的过程包括以下3051-3052:
234.3051、电子设备运行多个关联角色对象中第一类角色对象对应的实例对象。
235.其中,第一类角色对象为未依赖于其他角色对象的角色对象。在本公开实施例中,框架运行信息包括多个角色对象信息,在该多个角色对象信息中,多个角色对象信息之间具有依赖关系,例如,多个角色对象信息包括角色对象信息1和角色对象信息2,角色对象信
息1依赖于角色对象信息2。基于多种角色对象信息之间的依赖关系,将多个角色对象信息指示的关联角色对象划分为第一类角色对象及第二类角色对象,第一类角色对象为未依赖于其他角色对象的角色对象,第二类角色对象为依赖与其他角色对象的角色对象。在运行多个关联角色对象对应的实例对象时,按照多个关联角色对象之间的依赖关系,优先运行未依赖于其他角色对象的第一类角色对象。
236.3052、电子设备在第一类角色对象对应的实例对象已运行的情况下,运行依赖于该第一类角色对象的第二类角色对象对应的实例对象。
237.其中,第二类角色对象为多个关联角色对象中依赖于其他角色对象的角色对象。对于任一第二类角色对象,在该第二类角色对象所依赖的第一类角色对象对应的实例对象已运行的情况下,运行该第二类角色对象。通过在训练任务中配置模型训练中各个角色对象信息之间的依赖关系,能够按照各个角色对象信息之间的依赖顺序,依次运行各个关联角色对象对应的实例对象,从而保证模型训练框架运行的准确性。
238.在一些实施例中,第二类角色对象所依赖的第一类角色对象对应有多个实例对象,该3052包括:在该第一类角色对象对应的多个实例对象均已运行的情况下,运行该第二类角色对象。
239.在一些实施例中,第二类角色对象对应的实例对象和函数集合均包含依赖关系函数,依赖关系函数指示第二类角色对象所依赖的第一类角色对象;该3052包括:运行第二类角色对象对应的实例对象中的依赖关系函数;通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象;确定实例对象已运行的情况下,运行第二类角色对象对应的实例对象。
240.在本公开实施例中,第二类角色对象对应的实例对象包含依赖关系函数,该第二类角色对象对应的函数集合也包含该依赖关系函数,该依赖关系函数指示该第二类角色对象所依赖的第一类角色对象。在一些实施例中,该第二类角色对象对应的函数集合中的依赖关系函数,是在创建第二类角色对象对应的实例对象之前,基于多个角色对象信息之间的依赖关系,在该函数集合中添加的,则在为该第二类角色对象创建实例对象时,基于添加后的函数集合创建的实例对象,则该实例对象包括该依赖关系函数。例如,通过控制器,基于训练任务中多个角色对象信息之间的依赖关系,在第二类角色对象对应的函数集合中添加依赖关系函数,之后,基于每个角色对象信息对应的第一实例数目及每个关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象,实例对象包含对应的函数集合中的函数,即第二类角色对应的实例对象包含依赖关系函数。再例如,该控制器为容器编排引擎中的插件,通过控制器,采用该容器编排引擎提供的initcontainer(一种容器)方式,基于训练任务中多个角色对象信息之间的依赖关系,在第二类角色对象对应的函数集合中添加依赖关系函数。
241.在本公开实施例中,在为每个关联角色对象创建完成对应的实例对象后,同时启动每个关联角色对象对应的实例对象,对于未依赖于其他角色对象的第一类角色对象对应的实例对象,按照该实例对象包含的函数正常运行。对于依赖于其他角色对象的第二类角色对象对应的实例对象,在启动实例对象时,优先运行该实例对象中的依赖关系函数,通过该依赖关系函数监听该第二类角色对象所依赖的角色对象对应的实例对象,在监听到该第二类角色对象所依赖的角色对象对应的实例对象均已运行时,才会继续运行该实例对象,
继而运行成功,从而使该实例对象由启动状态切换为运行状态。
242.对于依赖于其他角色对象的第二类角色对象,第二类角色对象对应的实例对象包含依赖关系函数,采用监听的方式,通过依赖关系函数监听所依赖的角色对象对应的实例对象,以保证能够及时运行第二类角色对象对应的实例对象,从而保证模型训练框架的运行效率。
243.在上述实施例的一种可能实现方式中,第二类角色对象对应有多个实例对象,每个实例对象包含该依赖关系函数,在运行第二类角色对象对应的多个实例对象过程中,运行每个实例对象中的依赖关系函数,通过每个实例对象中的依赖关系函数监听该第二类角色对象依赖的第一类角色对象对应的实例对象;确定该第二类角色对象所依赖的第一类角色对象对应的实例对象已运行的情况下,运行该第二类角色对象对应的每个实例对象。
244.在第二类角色对象对应有多个实例对象的情况下,不同的实例对象分别基于包含的依赖关系函数进行监听,并在确定该第二类角色对象所依赖的第一类角色对象对应的实例对象已运行的情况下,运行该第二类角色对象对应的每个实例对象。
245.在上述实施例的一种可能实现方式中,第二类角色对象对应有多个实例对象,每个实例对象包含该依赖关系函数,在运行第二类角色对象对应的多个实例对象过程中,运行每个实例对象中的依赖关系函数,通过每个实例对象中的依赖关系函数监听第二类角色对象依赖的第一类角色对象对应的实例对象;在任一实例对象中的依赖关系函数确定实例对象已运行的情况下,运行第二类角色对象对应的每个实例对象。
246.在第二类角色对象对应有多个实例对象的情况下,不同的实例对象分别基于包含的依赖关系函数进行监听,在任一依赖关系函数监听到该第二类角色对象所依赖的第一类角色对象对应的实例对象已运行的情况下,运行该第二类角色对象对应的多个实例对象。例如,在任一依赖关系函数监听到该第二类角色对象所依赖的第一类角色对象对应的实例对象已运行的情况下,该依赖关系函数通知第二类角色对象对应的每个实例对象,运行该第二类角色对象对应的多个实例对象。
247.在上述实施例的一种可能实现方式中,通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象的地址,响应于监听到地址,运行第二类角色对象对应的实例对象。
248.其中,实例对象的地址是由控制器在第一类角色对象对应的实例对象运行成功时缓存的。在本公开实施例中,每个实例对象运行成功后,通过该控制器,将该实例对象的地址进行缓存,依赖于其他角色对象的第二类角色对象对应的实例对象中的依赖关系函数,监听该第二类角色对象依赖的角色对象对应的实例对象的地址,在监听到地址时,表示实例对象已运行,之后才会运行第二类角色对象对应的实例对象。通过依赖关系函数监听所依赖的角色对象对应的实例对象的地址,以确定所依赖的角色对象是否已运行,以便能够及时运行第二类角色对象对应的实例对象,从而保证模型训练框架的运行效率。
249.例如,pytorch(一种模型训练框架)包括worker(一种角色对象)和master(一种角色对象),worker需要获取master对应的实例对象的地址,先运行master对应的实例对象,之后在master对应的实例对象运行后,运行worker对应的实例对象,并且,worker基于master对应的实例对象的地址,与master进行通信。再例如,mpi(一种模型训练框架)包括worker(一种角色对象)和launcher(一种角色对象)。launcher对应的实例对象需要获取所
有的worker对应的实例对象的地址并等到所有worker运行起来后,launcher对应的实例对象才会运行,并基于worker对应的实例对象的地址,向worker对应的实例对象发执行指令,即实现worker对应的实例对象与launcher对应的实例对象之间的通信。
250.例如,通过依赖关系函数监听实例对象的地址的过程包括:通过该控制器,在任一实例对象运行成功后,将该实例对象的地址缓存至缓存服务器中,在第二类角色对象对应的实例对象中的依赖关系函数运行后,通过该依赖关系函数每间隔目标时长,向该缓存服务器发送查询请求,该缓存服务器基于该查询请求将该训练任务对应的缓存信息发送至该依赖关系函数,通过该依赖关系函数接收该缓存信息,查询该缓存信息中是否包括该第二类角色对象依赖的角色对象对应的每个实例对象的地址,响应于缓存信息包括该第二类角色对象依赖的角色对象对应的每个实例对象的地址,运行该第二类角色对象对应的实例对象。其中,目标时长为任意的时长。通过采用轮询机制,通过依赖关系函数与缓存服务器进行交互,以保证第二类角色对象对应的实例对象能够及时运行。
251.例如,通过依赖关系函数监听实例对象的地址的过程包括:通过该控制器,在任一实例对象运行成功后,将该实例对象的地址缓存至缓存服务器中,在第二类角色对象对应的实例对象中的依赖关系函数运行后,通过该依赖关系函数每间隔目标时长,向该缓存服务器发送查询请求,该缓存服务器基于该查询请求,查询该第二类角色对象依赖的角色对象对应的实例对象的地址,在查询到该第二类角色对象依赖的角色对象对应的实例对象的地址后,向该依赖关系函数发送确认消息,通过该依赖关系函数获取到确认消息后,运行第二类角色对象对应的实例对象。其中,确认消息指示该第二类角色对象依赖的角色对象对应的实例对象已运行。
252.例如,控制器为容器编排引擎中的插件,则通过控制器缓存实例对象的地址的过程包括:通过该容器编排引擎,获取运行的实例对象的地址,将该地址发送至该控制器,通过该控制器,将实例对象的地址缓存至缓存服务器中。
253.再例如,训练任务1包括角色对象信息1和角色对象信息2,角色对象信息1对应的实例对象数目为1,角色对象信息2对应的实例对象数目为3,角色对象信息1依赖于角色对象2,角色对象信息2对应的3个实例对象均已运行成功时,通过该容器编排引擎,获取该角色对象信息2指示的关联角色对象对应的3个实例对象的地址,将该地址发送至控制器,该控制器将该地址写入缓存服务器。角色对象信息1指示的关联角色对象对应的实例对象中的依赖关系函数轮询缓存服务器,在确定角色对象信息2指示的关联角色对象对应的3个实例对象均已运行的情况下,运行该角色对象信息1指示的关联角色对象对应的实例对象。
254.如图4所示,图4中显示了训练任务包括launcher和worker,launcher对应的第一实例数目为1,worker对应的第一实例数目为3,launcher依赖于worker,控制器为容器编排引擎中的插件。通过控制器,为launcher和worker创建实例对象前,基于launcher与worker之间的依赖关系,在launcher对应的函数集合中添加依赖关系函数,之后基于launcher对应的函数集合,为launcher创建1个实例对象(即实例对象1),基于worker对应的函数集合,为worker创建3个实例对象(即实例对象2、实例对象3及实例对象4),运行worker对应的3个实例对象,通过容器编排引擎,获取worker对应的实例对象的实例信息,将worker对应的实例对象的实例信息发送至控制器,控制器将worker对应的实例对象的实例信息,该实例信息包括实例对象的地址,缓存到缓存服务器中。运行launcher对应的实例对象中的
initializer(一种依赖关系函数)模块,通过该initializer模块,轮询缓存服务器,等待所有worker对应的实例对象全部运行后,并将所有worker对应的实例对象的地址等信息,写入mpi(一种模型训练框架)需要的hostfile(主机文件)中,launcher对应的实例对象和worker对应的实例对象之间能够进行相互通信。
255.需要说明的是,本公开实施例是在对训练任务校验成功的情况下,先创建每个关联角色对象对应的实例对象,再运行创建的实例对象,以此来表示模型训练框架的运行,而在另一实施例中无需执行步骤304-305,能够采取其他方式,响应于对训练任务校验成功,通过控制器,基于框架运行信息运行模型训练框架。
256.需要说明的是,本公开实施例是以先对训练任务校验,之后运行为每个关联角色对象创建的实例对象来表示模型训练框架的运行的,而在另一实施例中,无需执行步骤303-305,能够采取其他方式,通过控制器,基于框架运行信息运行模型训练框架。
257.在一些实施例中,在步骤305之后,该方法还包括:为每个关联角色对象创建一个通信服务,通信服务用于实现至少一个关联角色对象对应的实例对象之间的通信。
258.在本公开实施例中,模型训练框架包括至少一个角色对象,不同的角色对象对应的实例对象之间可能需要进行通信,因此,为每个关联角色对象创建一个通信服务,基于每个关联角色对象对应的通信服务器,即可实现不同关联角色对象对应的实例对象之间的通信。通过为每个关联角色对象创建一个通信服务,以便后续在模型训练框架的运行过程中,多个实例对象之间能够进行通信,从而保证训练任务的正常进行。
259.在上述实施例的一种可能实现方式中,该控制器为容器编排引擎中的插件,该容器编排引擎提供有通信服务对象,通过控制器,基于该通信服务对象,为每个关联角色对象创建一个通信服务。
260.例如,容器编排引擎为kubernetes,kubernetes提供有原生service(通信服务)对象,控制器通过该service对象,为每个关联角色对象创建一个通信服务,如为每个关联角色对象创建的通信服务为实例域名(fqdn,fully qualifed domain name),利用生成的实例域名,不同关联角色对象对应的实例对象之间能够进行通信。
261.在一些实施例中,在步骤305之后,该方法还包括:响应于任一实例对象运行失败,且框架运行信息包括实例对象所属的关联角色对象对应的失败重启参数,重启实例对象。
262.其中,失败重启参数指示该关联角色对象对应的实例对象运行失败时,重新启动该实例对象。在本公开实施例中,在运行每个关联角色对象对应的实例对象后,由于实例对象所处的服务器异常或者实例对象包含的函数存在异常,会导致该关联角色对象对应的实例对象运行失败,在运行过程中,通过该控制器监控各个实例对象的运行状态,在任一实例对象运行失败,且该实例对象所属的关联角色对象对应有失败重启参数,则重启该实例对象,以保证模型训练框架的正常运行。
263.在本公开实施例中,能够在训练任务中配置每个关联角色对象对应的失败重启参数,通过监控各个实例对象的运行状态,以便在任一实例对象运行失败、且对应有失败重启参数时,重启该实例对象,重启后的实例对象能够运行包含的函数,以保证训练任务的正常运行,也能够提升训练网络模型的效率。
264.在本公开实施例中,通过该控制器运行模型训练框架的过程中,采用了容错处理机制,在实例对象运行失败、且具有失败重启参数的情况下,重启运行失败的实例对象。通
过该容错机制,避免了任一实例对象失败而导致训练任务的失败,从而提升训练任务的成功率。
265.306、电子设备通过控制器,采用状态确定策略,对每个关联角色对象对应的实例对象的状态进行处理,得到训练任务的状态。
266.在本公开实施例中,框架运行信息还包括状态确定策略,该状态确定策略指示由至少一个角色对象信息指示的角色对象对应的实例对象的状态,确定训练任务的状态的策略。在一些实施例中,该状态确定策略是由开发人员配置的。在模型训练框架运行过程中,不同的实例对象的状态可能不同,实例对象的状态包括启动状态、运行中状态、完成状态、失败状态等。由于运行多个关联角色对象对应的实例对象,相当于运行模型训练框架,则采用状态确定策略,基于各个实例对象的状态,能够确定出整个训练任务的状态,实现了对训练任务的状态监控。
267.在一些实施例中,状态确定策略包括每个角色对象信息对应的第一策略及训练任务对应的第二策略,第一策略为由角色对象信息指示的关联角色对象对应的实例对象的状态确定出关联角色对象的状态的策略,第二策略为由关联角色对象的状态确定出训练任务的状态的策略;该306包括:通过控制器,采用每个角色对象信息对应的第一策略,分别对每个关联角色对象对应的实例对象的状态进行处理,得到每个关联角色对象的状态;通过控制器,采取第二策略,对每个关联角色对象的状态进行处理,得到训练任务的状态。
268.其中,每个角色对象信息对应有第一策略,不同的角色对象信息对应的第一策略可能相同,也可能不同。对于任一角色对象信息,确定该角色对象信息指示的关联角色对象对应的实例对象的状态,通过控制器,采用该角色对象信息对应的第一策略,基于该关联角色对象对应的实例对象的状态,确定出该关联角色对象对应的状态,按照上述方式,即可确定出每个关联角色对象对应的状态,通过控制器,采取第二策略,基于多个关联角色对象的状态,确定出整个训练任务的状态。通过在训练任务中配置用于确定不同状态的策略,在运行模型训练框架的过程中,通过该控制器采用不同的策略即可显示对不同种类的状态进行监控,从而实现了对训练任务的监控。
269.例如,一个角色对象信息对应的第一策略为:任一实例对象失败则该角色对象信息指示的关联角色对象失败。那么,如果该关联角色对象对应的任一实例对象的状态为运行中,其余实例对象的状态为运行中或成功,则该关联角色对象的状态为运行中;如果该关联角色对象对应的任一实例对象的状态为失败,其余实例对象的状态为成功,则该关联角色对象的状态为失败;如果该关联角色对象对应的所有实例对象的状态均为成功,则该关联角色对象的状态为成功。再例如,一个角色对象信息对应的第一策略为:任一实例对象成功,则该角色对象信息指示的关联角色对象成功。那么,如果该关联角色对象对应的实例对象均失败,则该关联角色对象的状态为失败;如果该关联角色对象对应的至少一个实例对象的状态为运行中,其余实例对象的状态为运行中或失败,则该关联角色对象的状态为运行中;如果该关联角色对象对应的至少一个实例对象的状态为成功,该关联角色对象的状态为成功。
270.例如,训练任务对应的第二策略为:任一关联角色对象失败,则训练任务失败。那么,如果至少一个关联角色对象的状态为运行中,其余关联角色对象的状态为成功,则该训练任务的状态为成功;如果任一关联角色对象的状态为失败,则该训练任务的状态为失败。
再例如,训练任务对应的第二策略为:任一关联角色对象成功,则训练任务成功。如果至少一个关联角色对象的状态为运行中,其余关联角色对象的状态为运行中或失败,则该训练任务的状态为运行中;如果任一关联角色对象的状态为成功,则该训练任务的状态为成功。
271.例如,一种训练任务包括ps(角色对象1)、hub(角色对象2)及train(角色对象3),及各个角色对象对应的第一策略及训练任务对应的第二策略。ps对应的第一策略为任一实例对象失败则关联角色对象失败;hub对应的第一策略为任一实例对象失败则关联角色对象失败;train对应的第一策略为任一实例对象失败则关联角色对象失败,所有实例对象成功,则关联角色对象成功;训练任务对应的第二策略为任一关联角色对象失败则训练任务失败。在模型训练框架运行过程中,监控到的各个关联角色对象对应的实例对象的运行状态如图5所示,ps对应的实例对象1、实例对象2及实例对象3均处于运行状态,采用ps对应的第一策略,确定该ps的状态为运行中状态;hub对应的实例对象4处于成功状态,对应的实例对象5处于失败状态,采用hub对应的第一策略,确定hub的状态为失败状态;train对应的实例对象6处于成功状态,采用train对应的第一策略,确定train的状态为成功状态。基于ps的状态、hub的状态及train的状态,采用第二策略,确定训练任务的状态为失败状态。
272.需要说明的是,本公开实施例是以一次获取训练任务的状态为例进行说明的,而在另一实施例中,在模型框架运行过程中,能够按照上述306,每间隔目标时长,迭代更新训练任务的状态。在一些实施例中,通过控制器,每间隔目标时长,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务更新后的状态。其中,目标时长为任意的时长。由于在模型框架运行过程中,各个实例对象的状态会变化,从而导致训练任务的状态会变化,因此,采用迭代更新的方式更新训练任务的状态,以保证获取到的训练任务的状态始终与模型训练框架的实际运行情况相匹配。通过控制器,每间隔目标时长更新一次训练任务的状态,从而保证训练任务的状态与当前的进程相匹配,从而保证了训练任务的状态的准确性。
273.307、电子设备响应于训练任务的状态为结束状态,停止运行模型训练框架。
274.在本公开实施例中,训练任务的状态包括多种,在该训练任务的状态为结束状态时,表示当前的训练任务已结束,则停止运行该模型训练框架。在一些实施例中,该结束状态包括成功状态或失败状态,该成功状态指示该训练任务已成功,该失败状态指示该训练任务失败。在该训练任务的状态为成功状态时,表示已对网络模型训练完成,得到一个训练后的网络模型;在该训练任务的状态为失败状态时,表示训练网络模型失败,未得到训练的网络模型。在运行模型训练框架的过程中,通过该控制器,能够基于每个实例对象的状态来确定训练任务的状态,以确定该训练任务是否完成,实现了对训练任务的监控。
275.在一些实施例中,训练任务包括网络模型的存储地址,该输出地址用于存储训练成功的网络模型,响应于该训练任务的状态为成功状态,得到训练完成的网络模型,将该网络模型存储该存储地址下。
276.在一些实施例中,模型训练框架包括存储地址,在该训练任务的状态为成功状态时,通过该模型训练框架中的输出函数,将训练出的网络模型存储在该输出地址下。其中,该输出函数用于输出训练完成的网络模型。在运行模型训练框架的运行结束、且该训练任务的状态为成功状态,表示已经训练完成网络模型,则通过该输出函数,将训练出的网络模型存储该存储地址下。
277.308、电子设备清除运行模型训练框架时产生的数据。
278.在该训练任务结束的情况下,清除运行该模型训练框架时产生的数据,以节省存储资源。
279.在一些实施例中,该步骤308包括:清除为该训练任务创建的实例对象及在缓存服务器中缓存的信息。其中,缓存服务器中缓存的信息为执行该训练任务时,由控制器存储的。例如,该缓存服务器中存储的信息为实例对象的地址。
280.需要说明的是,上述实施例是以一个训练任务来说明的,而在另一实施例中,任务队列包括待处理的多个训练任务,该多个训练任务按照的排序,控制器从该任务队列中获取一个训练任务,按照上述302-308,执行该训练任务,在该训练任务结束后,再从该训练任务中获取下一个训练任务,按照上述302-308,执行下一个训练任务。本公开实施例是以控制器每次仅执行一个训练任务为例进行说明的,而在另一实施例中,控制器能够同时执行多个训练任务,控制器从任务队列中获取多个训练任务,在该多个训练任务结束后,从任务队列中再获取多个训练任务,执行新获取的多个训练任务。
281.本公开实施例提供的方法,提供了一种通用控制器,能够适用于多种模型训练框架,在需要利用任一模型训练框架来训练网络模型时,仅需配置一个训练任务,在该训练任务中指定所要利用的模型训练框架的框架标识及框架运行信息,在该框架运行信息中配置该模型训练框架包含的、且与该训练任务关联的关联角色对象对应的角色对象信息,以使通过该控制器,基于该框架运行信息及模型训练框架中每个关联角色对象对应的函数集合,为每个关联角色对象创建对应的实例对象,每个关联角色对象对应的实例对象包含对应的函数集合中的函数,使得运行每个关联角色对象对应的实例对象时,各个实例对象运行包含的函数,从而实现模型训练框架的运行,以便后续实现模型训练任务。基于此方法,开发人员仅需学习该通用控制器,即可实现使用多种模型训练框架的训练任务,无需再学习每种模型训练框架对应的控制器,节省了开发时间,从而节省了人力成本。
282.并且,本公开实施例提供了一种通用的任务模板,开发人员只需要实现对任务模板中的字段进行简单配置即可,基于该任务模板能够统一多种模型训练框架的操作入口,并最大程度的统一了多种不同的模型训练框架中的参数,实现了一种为多种模型训练框架提供服务的通用控制器,从而降低了开发成本。
283.并且,通过在训练任务中配置模型训练框架包含的多个角色对象信息之间的依赖关系,实现了关联角色对象间启动依赖关系的统一解决方案,在实例对象中注入依赖关系函数,以使不同关联角色对象对应的实例对象启动时,按照各个角色之间的依赖关系指定的顺序启动,能够保证模型训练框架的正常运行。
284.并且,本公开提供的任务模板中采用了容错处理机制、实例对象的状态与关联角色对象的状态之间的推演机制,以及关联角色对象的状态与训练任务的状态之间的推演机制等多种模型训练框架所需的功能特征,以使基于该任务模板进行简单配置,即可使用本公开提供的通用控制器执行训练任务,从而实现了该控制器的通用性。
285.在上述图3所示的实施例的基础上,在运行模型训练框架的过程中,还能够每间隔目标时长,对运行的模型训练框架进行一次调谐处理,迭代更新训练任务的状态,迭代更新的过程详见下述实施例。
286.图6是根据一示例性实施例示出的一种调谐处理的流程图,参见图6,由电子设备
执行,调谐处理过程包括以下步骤:
287.601、电子设备通过控制器,基于每个角色对象信息对应的第一实例数目,对每个关联角色对象对应的实例对象的第二实例数目进行校验。
288.其中,第一实例数目为训练任务中包含的,该第一实例数目为用户为该关联角色对象指定的实例数目,以表示该用户期望在模型训练框架运行时,该关联角色对象具有多少个实例对象。而关联角色对象对应的实例数目为在模型训练运行框架的情况下,关联角色对象对应的、且当前存在的实例对象的数目。在本公开实施例中,在每个关联角色对象对应的实例对象运行过程中,由于实例对象所处的服务器故障或其他原因,导致实例对象丢失或者增多,因此,通过控制器对运行的模型训练框架进行调谐处理过程中,需要对每个关联角色对象对应的实例对象的数目与为每个关联角色对象指定的实例对象的数目进行校验,以确定出为每个关联角色对象指定的实例数目是否与每个关联角色对象对应的、且当前存在的实例对象的第二实例数目相等。
289.602、电子设备通过控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于第一实例数目与第二实例数目之间的差值数目,对关联角色对象对应的实例对象进行更新,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
290.对于任一关联角色对象,在该关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于第一实例数目与第二实例数目之间的差值数目,对该关联角色对象对应的实例对象进行更新,以使该关联角色对象对应的更新后的实例对象的实例数目与第一实例数目相等,即对该关联角色对象对应的实例对象更新后,该关联角色对象对应的、且当前存在的实例对象的数目与该第一实例数目相等。在运行模型训练框架的过程中,通过控制器对各个关联角色对象对应的实例对象的数目与训练任务中所要求的数目进行校验,以保证每个关联角色对象对应的实例对象的数目与要求的数目相匹配,从而保证为模型训练框架提供的运行环境的准确性,为了网络模型的训练提供支持。
291.在一些实施例中,该步骤602包括以下两种方式:
292.第一种方式:通过控制器,在关联角色对象对应的第二实例数目小于第一实例数目的情况下,为关联角色对象创建该差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
293.例如,该关联角色对象对应的第二实例数目为2,该关联角色对象对应的第一实例数目为3,即该关联角色对象对应的、且当前存在的实例对象数目与第一实例数目之间的差值数目为1,则为该关联角色对象再创建1个实例对象,以使该关联角色对象对应的、且当前存在的实例对象的实例数目为3。
294.在一些实施例中,该第一种方式包括:通过该控制器,采用调度策略,为该关联角色对象创建该差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与该第一实例数目相等。
295.其中,该调度策略指示在创建实例对象时,将实例对象分布在不同服务器上的策略。通过该控制器,采用该调度策略,为该关联角色对象创建该差值数目的实例对象,并部署在一些服务器上,以使后续在该服务器上,创建的实例对象能够运行。
296.第二种方式:通过控制器,在关联角色对象对应的第二实例数目大于第一实例数
目的情况下,从关联角色对象对应的实例对象中删除差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
297.例如,该关联角色对象对应的第二实例数目为4,对应的第一实例数目为2,即该关联角色对象对应的、且当前存在的实例对象数目与第一实例数目之间的差值数目为2,则从该关联角色对象对应的4个实例对象中,删除2个实例对象,以使该关联角色对象对应的实例对象的实例数目为2。
298.在一些实施例中,从关联角色对象对应的实例对象中删除差值数目的实例对象时,按照各个实例对象的运行情况来选择删除实例对象,也即是,删除实例对象的过程包括以下两项:
299.第一项:通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除该差值数目的、且运行失败的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
300.在本公开实施例中,实例对象在运行过程中可能存在运行失败的情况,如果任一关联角色对象对应的实例对象的实例数据大于第一实例数目时,从该关联角色对象对应的实例对象中删除运行失败的实例对象,以保证关联角色对象对应的实例对象的实例数目与第一实例数目相等,且尽可能减少剩余的关联角色对象对应的实例对象中运行失败的实例对象。
301.第二项:通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除该差值数目的、且运行时长最短的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
302.在本公开实施例中,每个实例对象具有对应的运行时长,运行时长越大,能够体现出该实例对象正常运行的时长越长,运行时长越小,体现出该实例对象被创建的时间段或者该实例对象存在运行失败的情况,因此,将运行时长短的实例对象删除,以保证关联角色对象对应的实例对象尽可能运行正常,从而保证模型训练框架的正常运行。
303.在关联角色对象对应的实例对象的数目大于所要求的数目时,能够采取不同方式删除实例对象,丰富了删除实例对象的方式,也保证了实例对象的数目与所要求的数目相匹配,保证了模型训练框架运行的准确性。
304.需要说明的是,本公开实施例仅是以上述两项分别进行说明的,而上述两项能够结合,即通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除该差值数目的、且运行时长最短或者运行失败的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。由于关联角色对象对应的运行失败的实例对象的数目可能小于该差值数目,因此,在删除该关联角色对象对应的实例对象时,删除运行失败的实例对象,之后,在按照该关联角色对象剩余的实例对象的运行时长,删除运行时长最短的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
305.在任一关联角色对象对应的实例对象的数目与所要求的的数目不相同的情况下,采取不同方式对关联角色对象对应的实例对象进行更新,以保证实例对象的数目与所要求的数目相匹配,保证了模型训练框架运行的准确性。
306.603、电子设备通过该控制器,响应于任一实例对象运行失败,且框架运行信息包
括实例对象所属的关联角色对象对应的失败重启参数,重启实例对象。
307.其中,角色对象信息对应的失败重启参数指示该角色对象信息指示的关联角色对象对应的实例对象失败时进行重启。在检测到任一实例对象运行失败,且该实例对象所属的关联角色对象对应有失败重启参数,则重启该实例对象,以保证模型训练框架的正常运行。
308.在一些实施例中,该步骤603包括:电子设备通过该控制器,遍历每个关联角色对象对应的实例对象的运行状态,响应于检测到任一实例对象运行失败,且框架运行信息包括实例对象所属的关联角色对象对应的失败重启参数,重启实例对象;响应于检测到任一实例对象运行失败,且框架运行信息不包括实例对象所属的关联角色对象对应的失败重启参数,不重启该实例对象。
309.604、电子设备通过该控制器,检测每个实例对象的状态,及每个关联角色对象对应的实例对象的数目,基于每个角色对象信息对应的第一策略,确定每个关联角色对象的状态及对应的实例对象的实例数目,基于训练任务对应的第二策略及每个关联角色对象的状态,确定训练任务的状态。
310.通过检测每个实例对象的状态,并基于每个角色对象信息对应的第一策略及每个关联角色对象对应的实例对象的状态,确定每个关联角色对象对应的状态。
311.605、电子设备通过该控制器,对每个关联角色对象的状态及训练任务的状态进行缓存。
312.在模型训练框架运行过程中,通过对运行的模型训练框架进行调谐处理,监控模型训练框架运行过程中,各个关联角色对象的状态及训练任务的状态,并对监控到的状态进行缓存,以便通过缓存的状态能够查看该训练任务的执行情况。
313.在一些实施例中,该电子设备提供为服务器,终端向该服务器发送状态查询请求,该状态查询请求携带训练任务标识,该服务器接收该状态查询请求,查询该训练任务标识指示的训练任务的状态及该训练任务对应的每个关联角色对象的状态,向终端发送查询到的状态,终端接收服务器发送的状态并进行展示。
314.其中,该终端为提供训练任务的终端。用户通过该终端与服务器进行交互,能够查看训练任务的执行情况,从而实现了对训练任务的监控。
315.在一些实施例中,框架运行参数包括第二框架信息,第二框架信息为在模型框架运行过程中所要监控到的信息,则基于每个关联角色对象的状态及训练任务的状态,更新第二框架信息。
316.例如,第二框架信息包括训练任务的状态、关联角色对象的状态、启动时间、运行时间、完成时间,在该第二框架信息中更新训练任务的当前状态、每个关联角色对象的当前状态、训练任务的启动时间、训练任务的运行时间及训练任务的完成时间。
317.再例如,第二框架信息还包括关联角色对象处于当前状态的原因、处于当前状态的信息、最近一次状态变更时间、处于运行状态的实例对象的数量、处于成功状态的实例对象的数量、处于失败状态的实例对象的数量、处于等待状态的实例对象的数量、处于未知状态的实例对象的数量、处于终止状态的实例对象的数量,基于每个关联角色对象的状态及每个关联角色对象对应的实例对象的状态,更新第二框架信息中的信息。
318.需要说明的是,本公开实施例是在模型训练框架运行过程中,对运行的模型训练
框架执行了一次调谐处理来说明的,而在另一实施例中,在模型训练框架运行过程中,每间隔目标时长,对运行的模型训练框架执行一次调谐处理,即每间隔目标时长,检测每个关联角色对象对应的实例对象的状态,基于每个关联角色对象对应的实例对象的状态,确定每个关联角色对象的状态及每个对象对应的实例对象的实例数目,以及训练任务的状态,并基于确定的信息对第二框架信息进行更新。
319.需要说明的是,本公开实施例是以一次调谐处理来说明的,而在另一实施例中,无需执行上述调谐处理的过程,能够采取其他方式,在运行模型训练框架的过程中,通过控制器,每间隔目标时长,基于每个关联角色对象对应的实例对象的状态,获取训练任务更新后的状态。
320.基于上述图3及图4所示的实施例,提供了一种训练任务执行流程,如图7所示,该流程包括:
321.步骤1、通过控制器从任务队列中获取待处理的训练任务,在确定该训练任务未被删除的情况下,获取该训练任务中框架标识指示的模型训练框架,并执行下述步骤2-4;在确定该训练任务已被删除,不再执行下述步骤2-4,清除该训练任务。
322.在用户提交训练任务后,用户可以取消该训练任务,因此,但取消训练任务后,任务队列中的训练任务不会消失,只有控制器在获取到训练任务后,查询是否有该训练任务对象的任务取消请求,如果查询到该训练任务对应的任务取消请求,表示该训练任务已被删除,则清除该训练任务。
323.步骤2、通过控制器,对训练任务中的默认字段进行配置,并对训练任务中的多个字段进行格式校验,在确定训练任务满足预期的情况下,基于该训练任务中框架运行信息,为该模型训练框架中与训练任务关联的每个关联角色对象创建对应的实例数目的实例对象,按照多个角色对象信息之间的依赖关系,运行每个关联角色对象对应的实例对象,实现模型训练框架的运行。
324.步骤3、通过该控制器,在该模型训练框架运行过程中,每间隔目标时长,对运行的模型训练框架进行一次调谐处理,迭代更新训练任务的状态。
325.其中,调谐处理流程如上述的图6及图8所示。
326.步骤4、在训练任务结束后,清除运行该模型训练框架所产生的数据。
327.图9是根据一示例性实施例示出的一种训练任务的执行装置的框图。参见图9,该装置包括:
328.获取单元901,被配置为执行通过控制器获取训练任务,训练任务用于训练网络模型,训练任务包括框架标识及框架运行信息,框架运行信息包括至少一个角色对象信息;
329.获取单元901,还被配置为执行通过控制器,获取框架标识指示的模型训练框架,模型训练框架包括至少一个角色对象以及每个角色对象对应的函数集合,函数集合包括用于训练网络模型的函数;
330.创建单元902,被配置为执行通过控制器,将模型训练框架中至少一个角色对象信息指示的角色对象,确定为训练任务的关联角色对象,基于关联角色对象对应的函数集合,分别为每个关联角色对象创建实例对象,实例对象包含对应的函数集合中的函数;
331.运行单元903,被配置为执行运行每个关联角色对象对应的实例对象。
332.在一些实施例中,框架运行信息还包括每个角色对象信息对应的第一实例数目;
创建单元902,被配置为执行通过控制器,基于每个信息角色对象对应的第一实例数目及每个关联角色对象对应的函数集合,分别为每个关联角色对象创建对应的第一实例数目的实例对象。
333.在一些实施例中,框架运行信息包括多个角色对象信息及多个角色对象信息之间的依赖关系;如图10所示,运行单元903,包括:
334.运行子单元9031,被配置为执行运行多个关联角色对象中第一类角色对象对应的实例对象,第一类角色对象为未依赖于其他角色对象的角色对象;
335.运行子单元9031,还被配置为执行在第一类角色对象对应的实例对象已运行的情况下,运行依赖于第一类角色对象的第二类角色对象对应的实例对象,第二类角色对象为多个关联角色对象中依赖于其他角色对象的角色对象。
336.在一些实施例中,第二类角色对象对应的实例对象和函数集合均包含依赖关系函数,依赖关系函数指示第二类角色对象所依赖的第一类角色对象;运行子单元9031,被配置为执行运行第二类角色对象对应的实例对象中的依赖关系函数;通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象;确定实例对象已运行的情况下,运行第二类角色对象对应的实例对象。
337.在一些实施例中,运行子单元9031,被配置为执行通过依赖关系函数,监听第二类角色对象依赖的第一类角色对象对应的实例对象的地址,地址是由控制器在第一类角色对象对应的实例对象运行成功时缓存的;响应于监听到地址,运行第二类角色对象对应的实例对象。
338.在一些实施例中,创建单元902,还被配置为执行为每个关联角色对象创建一个通信服务,通信服务用于实现至少一个关联角色对象对应的实例对象之间的通信。
339.在一些实施例中,如图10所示,装置还包括:
340.重启单元904,被配置为执行响应于任一实例对象运行失败,且框架运行信息包括实例对象所属的关联角色对象对应的失败重启参数,重启实例对象。
341.在一些实施例中,框架运行信息还包括状态确定策略,状态确定策略指示由至少一个角色对象信息指示的角色对象对应的实例对象的状态,确定训练任务的状态的策略;如图10所示,装置还包括:
342.确定单元905,被配置为执行通过控制器,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务的状态。
343.在一些实施例中,状态确定策略包括每个角色对象信息对应的第一策略及训练任务对应的第二策略,第一策略为由角色对象信息指示的关联角色对象对应的实例对象的状态确定出角色对象的状态的策略,第二策略为由关联角色对象的状态确定出训练任务的状态的策略;
344.确定单元905,被配置为执行通过控制器,采用每个角色对象信息对应的第一策略,分别对每个关联角色对象对应的实例对象的状态进行处理,得到每个关联角色对象的状态;通过控制器,采取第二策略,对每个关联角色对象的状态进行处理,得到训练任务的状态。
345.在一些实施例中,确定单元905,被配置为执行通过控制器,每间隔目标时长,采用状态确定策略,对至少一个关联角色对象对应的实例对象的状态进行处理,得到训练任务
更新后的状态。
346.在一些实施例中,如图10所示,装置还包括:
347.停止单元906,被配置为执行响应于训练任务的状态为结束状态,停止运行模型训练框架。
348.在一些实施例中,获取单元901,被配置为执行通过控制器,从控制器对应的任务队列中获取待处理的训练任务;
349.如图10所示,装置还包括:
350.清除单元907,被配置为执行清除运行模型训练框架时产生的数据。
351.在一些实施例中,框架运行信息还包括每个角色对象信息对应的第一实例数目;如图10所示,装置还包括:
352.校验单元908,被配置为执行通过控制器,基于每个角色对象信息对应的第一实例数目,对每个关联角色对象对应的实例对象的第二实例数目进行校验;
353.更新单元909,被配置为执行通过控制器,在任一关联角色对象对应的第一实例数目和第二实例数目不同的情况下,基于第一实例数目与第二实例数目之间的差值数目,对关联角色对象对应的实例对象进行更新,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
354.在一些实施例中,更新单元909,被配置为执行通过控制器,在关联角色对象对应的第二实例数目小于第一实例数目的情况下,为关联角色对象创建差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等;或者,通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中删除差值数目的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
355.在一些实施例中,更新单元909,被配置为执行通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除差值数目的、且运行失败的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等;或者,通过控制器,在关联角色对象对应的第二实例数目大于第一实例数目的情况下,从关联角色对象对应的实例对象中,删除差值数目的、且运行时长最短的实例对象,以使关联角色对象对应的实例对象的实例数目与第一实例数目相等。
356.在一些实施例中,如图10所示,装置还包括:
357.校验单元908,被配置为执行通过控制器,对训练任务进行校验;
358.运行单元903,被配置为执行响应于对训练任务校验成功,通过控制器,获取框架标识指示的模型训练框架。
359.在一些实施例中,训练任务还包括框架标识对应的地址;获取单元901,被配置为执行通过控制器,从框架标识对应的地址获取模型训练框架。
360.关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
361.在示例性实施例中,还提供了一种电子设备,电子设备包括:
362.处理器;
363.用于存储处理器可执行指令的存储器;
364.其中,处理器被配置为执行执行指令,以实现如上述训练任务的执行方法中电子设备所执行的步骤。
365.在一些实施例中,该电子设备提供为终端。图11是根据一示例性实施例示出的一种终端1100的结构框图。该终端1100可以是便携式移动终端,比如:智能手机、平板电脑、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
366.终端1100包括有:处理器1101和存储器1102。
367.处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
368.存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器1101所执行以实现本公开中方法实施例提供的训练任务的执行方法。
369.在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。
370.外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
371.射频电路1104用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它
终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括nfc(near field communication,近距离无线通信)有关的电路,本公开对此不加以限定。
372.显示屏1105用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
373.摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
374.音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
375.定位组件1108用于定位终端1100的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件1108可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
376.电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
377.在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感
器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。
378.加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
379.陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3d动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
380.压力传感器1113可以设置在终端1100的侧边框和/或显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
381.指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置在终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商logo时,指纹传感器1114可以与物理按键或厂商logo集成在一起。
382.光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制显示屏1105的显示亮度。具体地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
383.接近传感器1116,也称距离传感器,设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。
384.本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
385.在一些实施例中,该电子设备提供为终端。图12是根据一示例性实施例示出的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)1201和一个或一个以上的存储器1202,其中,存储器1202中存储有至少一条程序代码,该至少一条程序代码由处理器
1201加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
386.在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的程序代码由电子设备的处理器执行时,使得电子设备能够执行上述训练任务的执行方法中电子设备所执行的步骤。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
387.在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述训练任务的执行方法中终端或服务器所执行的步骤。
388.本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
389.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献