终端设备及引擎任务的控制方法和装置与流程

文档序号:30803498发布日期:2022-07-19 22:31阅读:54来源:国知局
终端设备及引擎任务的控制方法和装置与流程

1.本发明属于人工智能技术领域,尤其涉及一种终端设备及引擎任务的控制方法和装置。


背景技术:

2.传统联合学习是同步优化的,即中央服务器将全局模型同步发送给多个客户机(也称客户端),多个客户机基于本地数据训练模型后同步将更新后的模型返回中央服务器。这种同步学习的方法在接入大量客户机的情况下,存在同时接收太多设备反馈会导致中央服务器端网络拥塞的问题。
3.因此,如何对传统联合学习进行优化,提升中央服务器在联合学习过程中的更新的效率,是当前的一个技术难题。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种终端设备及引擎任务的控制方法和装置,以解决如何对传统联合学习进行优化,提升中央服务器在联合学习过程中的更新的效率的问题。
5.本发明第一方面,提供了一种引擎任务的控制方法,其包括:确定引擎任务的全局模型;根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型;当检查到生产局部模型时,将所述局部模型和所述局部模型的陈旧度进行聚合计算;根据所述聚合计算的结果,对引擎任务进行控制。
6.在一些可选方案中,所述确定引擎任务的全局模型,包括:初始化或更新全局模型;将初始化或更新后的全局模型下发给引擎任务的参与方。
7.在一些可选方案中,所述初始化全局模型,具体包括:在任务开始时,将第一个加入任务的模型初始化为全局模型。
8.在一些可选方案中,所述根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型,具体包括:根据预设周期,开始计时;当计时到达预设周期的时间时,检查所述全局模型中是否产生局部模型。
9.在一些可选方案中,所述检查所述全局模型中是否产生局部模型,包括:检测局部模型目录,得到检查结果;根据所述检查结果,判断是否产生新的局部模型。
10.在一些可选方案中,所述将所述局部模型进行聚合计算,包括:读取局部模型,得到所述全局模型基于所述引擎任务的序号信息;根据衡量陈旧度的函数计算所述局部模型的陈旧度;通过对所述局部模型及所述局部模型的序号信号和陈旧度进行计算来聚合更新全局模型。
11.在一些可选方案中,所述根据所述聚合计算的结果,对引擎任务进行控制,具体包括:检查聚合更新得到的全局模型是否满足预设的终止条件;当不满足终止条件时,重新计时并根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型。
12.本发明的第二方面,提供了一种引擎任务的控制装置,其包括:引擎任务确认模块,用于确定引擎任务的全局模型;局部模型检测模块,用于根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型;模型聚合计算模块,用于当检查到生产局部模型时,将所述局部模型和所述局部模型的陈旧度进行聚合计算;引擎任务控制模块,用于根据所述聚合计算的结果,对引擎任务进行控制。
13.本发明的第三方面,提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,实现如第一方面中任一项所述方法的步骤。
14.本发明的第四方面,提供了一种存储介质,所述存储介质存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任一项所述方法的步骤。
15.本发明实施例与现有技术相比存在的有益效果是:本发明针对联合学习架构的联合服务器侧的引擎任务进行优化,利用联合学习上传的局部模型及其陈旧度来对引擎任务的全局模型进行聚合更新,使得在面对系统异构情况下,可以有效提升服务器侧引擎任务的的计算效率和性能。
附图说明
16.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
17.图1是可以应用本发明以下实施例的一个联合学习架构;
18.图2是本发明在实施例一提供的引擎任务的控制方法的流程图;
19.图3是图2所示步骤s102在一个示例二中的流程图;
20.图4是本发明在实施例二中提供的引擎任务的控制装置的结构图;
21.图5是可以应用上述引擎任务的控制方法和引擎任务的控制装置的一些实施例的终端设备的原理示意图。
具体实施方式
22.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
23.图1为可以应用本发明以下实施例的一个联合学习架构,如图1所示,在该联合学习架构中,包括:服务器101和多个客户端102、103、104,所述多个客户端102、103、104分别与服务器通信连接。
24.其中,服务器101即为联合学习的信任中心,也称为中央服务器;客户端102、103、104即为联合学习的客户机。一般的,对于客户端的数量可以为k个,k≥2,且为正整数,例如,图1中的client-1、client-2

client-k。
25.具体的,所述客户端可以具体包括但不限于计算机、服务器、工作站等电子设备。示例性的,所述电子设备,可以具体包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,实现如下列实施例一中任一完整方法的步骤。
26.联合学习允许多个用户协作训练共享的全局模型,而无需分享本地设备中的数据,由中央服务器协调完成多轮联合学习以得到最终的全局模型。其中,在每一轮开始时,中央服务器将当前的全局模型发送给参与联合学习的客户机;每个客户机根据其本地数据训练所接收到的全局模型,训练完毕后将更新后的模型返回中央服务器;中央服务器收集到所有客户机返回的更新后,对全局模型进行一次更新,进而结束本轮更新。在传统联合学习中,联合学习是同步更新的,即中央服务器将全局模型同步发送给多个客户机,多个客户机基于本地数据训练模型后同步将更新后的模型返回中央服务器。经实际应用发现,这种传统联合学习方法的同步特性具有不可扩展、低效和不灵活等问题。例如,传统联合学习方法在接入大量客户机的情况下,存在同时接收太多设备反馈会导致中央服务器端网络拥塞的问题。此外,由于系统异构的问题,很难在每一轮更新(也称为更新轮次,常用英文epoch表示)结束时精准的同步接入的客户机。同时,如果可接入同步的客户机数量太少,中央服务器可能不得不放弃整个更新轮次,包括所有已经接收到的更新。
27.至此,本发明在以下实施例中,将通过异步联合学习的方式来对现有联合学习方法进行改机,使中央服务器可以对接入的客户端进行异步计算全局模型,同时,针对系统异构情况下,如何提升服务器在处理异步计算的效率的问题,也进行了相应的改进与说明。
28.实施例一
29.图2为本发明在实施例一提供的引擎任务的控制方法的流程图,其中,在联合学习中本实施例提供的方法一般由中央服务器来执行,例如,可以由图1所示的服务器101作为执行本实施例方法的主体。结合图2所示,所述引擎任务的控制方法包括下列步骤s01-s04。
30.步骤s101:确定引擎任务的全局模型。
31.其中,所述引擎任务,也即是在联合学习架构中利用服务器侧的计算能力进行的联合学习计算任务。
32.具体的,所述步骤s101,可以具体包括:
33.步骤s111,初始化或更新全局模型;
34.步骤s112,将初始化或更新后的全局模型下发给引擎任务的参与方。
35.其中,所述参与方是参与联合学习任务的客户端/用户/数据处理节点等。具体的,在引擎任务开启时,服务器根据接入的客户端进行全局模型初始化,然后将初始化后的全局模型下发给参与联合学习的客户端。需要说明的是,在联合学习过程中,服务器向客户端下发的全局模型,或者,客户端下载的全局模型,具体包括全局模型的参数,例如,模型的平均梯度等参数;而客户端上次的局部模型,也同样为局部模型的参数。
36.考虑到现有联合学习中,对于全局模型的初始化是由服务器在开启任务前,根据每个参与联合学习的客户端中安装的算法模型、数据结构等进行衡量之后统一进行的参数初始化。由于这种初始化全局模型是在全部参与方完成接入的情况下进行的,在面对系统异构的情况下,初始化的效率往往不高。为此,在一个示例一中,步骤s111的初始化全局模型,可以具体包括:在任务开始时,由服务器将第一个加入任务的模型初始化为全局模型。
这样不用考虑所有参与方完成接入后再进行全局模型的初始化,可以有效提升全局模型初始化的效率,同时也可以避免在系统异构下由于个别客户端出现异常中央服务器无法正常初始化全局模型的情况。
37.步骤s102:根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型。
38.具体的,局部模型是参与联合学习任务的参与方利用本地数据进行模型训练之上传的模型或模型参数。在一个示例二中,图3为图2所示步骤s102在一个示例二中的流程图,结合图3所示,上述步骤s102,可以具体包括:
39.步骤s121,根据预设周期,开始计时;
40.步骤s122,当计时到达预设周期的时间时,检查所述全局模型中是否产生局部模型。
41.本示例通过设定预设周期来检查局部模型的上传情况,不需要要求所有参与方都上传完局部模型之后再进行聚合计算,这样一方面可以降低引擎任务的计算资源要求,另一方面也可以提高引擎任务的执行效率。
42.再具体的,在一个示例三中,再结合图3来说,所述步骤检s122中,检查所述全局模型中是否产生局部模型可以具体包括:
43.步骤s123,检测局部模型目录,得到检查结果;
44.步骤s124,根据所述检查结果,判断是否产生新的局部模型。
45.其中,所述局部模型目录中包括所有参与联合学习任务的参与方上传局部模型的信息,例如,在引擎任务确定的全局模型下,每个参与方执行到引擎任务的哪一轮次都是相应记录。以此,可以根据该记录来确定是否有新的局部模型产生。
46.例如,在上述引擎任务下,当进行全局模型进行到第t轮更新时,此时参与联合学习的客户端各自可能是在该第t轮更新中的第t个上传局部模型的,或者,还可能参与联合学习的客户端当前新上传的局部模型是第t轮更新之前更新轮次的第t个上传局部模型的。通过获取局部模型基于历史全局模型的更新轮次,以便在下列步骤中进行陈旧度计算。
47.需要说明的是,步骤s121之后,如果还没有到计时周期,那么则继续计时并判断是否到达预设周期的时间,如果到达计时周期,则执行对应的引擎任务,同时等待引擎任务完成后进入进行下一预设周期的时间窗口,进行重新计时。
48.步骤s103:当检查到生产局部模型时,将所述局部模型和所述局部模型的陈旧度进行聚合计算。
49.其中,与现有联合学习任务中进行聚合计算不同的是,不一定是针对所有的参与方上传的局部模型,而是其中的一个或多个,当预设周期内存在多个局部模型时,分别进行;另外,进行聚合计算时还引入了局部模型的陈旧度。
50.具体的,将所述局部模型和所述局部模型的陈旧度进行聚合计算,可以具体包括:
51.步骤s131,读取局部模型,得到所述全局模型基于所述引擎任务的序号信息;
52.步骤s132,根据衡量陈旧度的函数计算所述局部模型的陈旧度;
53.步骤s133,通过对所述局部模型及所述局部模型的序号信号和陈旧度进行计算来聚合更新全局模型。
54.其中,所述陈旧度相当于一个加权平均值系数,假设用a表示陈旧度,则a的取值范
围为[0,1]。例如,可以利用现有技术中衡量陈旧度的功能函数a=s(t-t)来计算该陈旧度。应当理解,获取加权平均值系数的方式并不仅限于前述示例,本技术并不限制陈旧度参数的具体计算方法。
[0055]
示例性的,通过对所述局部模型及所述局部模型的序号信号和陈旧度进行计算来聚合更新全局模型,包括以下计算公式:
[0056]wt
=(1-a)w
t
+aw
new

[0057]
其中,w
t
表示基于新产生的局部模型聚合计算得到的全局模型,w
new
表示新上传的局部模型,a为加权平均值系数,即新上传局部模型基于历史全局模型的陈旧度。
[0058]
步骤s104:根据所述聚合计算的结果,对引擎任务进行控制。
[0059]
紧接着来说,根据聚合计算的结果可以对引擎任务进行更新和控制。具体的,步骤s104,可以具体包括:
[0060]
步骤s141,检查聚合更新得到的全局模型是否满足预设的终止条件;
[0061]
步骤s142,当不满足终止条件时,重新计时并根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型。
[0062]
其中,所述终止条件包括所述全局模型的收敛条件,例如,所述全局模型对应引擎任务中预设的迭代循环次数,或者所述全局模型的准确度阈值。
[0063]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0064]
实施例二
[0065]
在同一发明构思下,本实施例还提供了与图2所示方法实施例中各个步骤相一一对应的装置。
[0066]
图4为本发明在实施例二中提供的引擎任务的控制装置的结构图。
[0067]
如图4所示,所述引擎任务的控制装置400,具体包括:引擎任务确认模块401,用于确定引擎任务的全局模型;局部模型检测模块402,用于根据所述全局模型,按预设周期检查所述全局模型中是否产生局部模型;模型聚合计算模块403,用于当检查到生产局部模型时,将所述局部模型和所述局部模型的陈旧度进行聚合计算;引擎任务控制模块404,用于根据所述聚合计算的结果,对引擎任务进行控制。
[0068]
实施例三
[0069]
本实施例还提供了可以应用上述引擎任务的控制方法和引擎任务的控制装置的一些实施例的终端设备,如图5所示,为可以应用上述引擎任务的控制方法和引擎任务的控制装置的一些实施例的终端设备的原理示意图,如图所示,所述终端设备500包括:处理器501、存储器502以及存储在所述存储器502中并可在所述处理器501上运行的计算机程序503。所述处理器501执行所述计算机程序503时实现上述各个引擎任务的控制方法实施例中的步骤,例如图1所示的步骤s101至s104。或者,所述处理器501执行所述计算机程序503时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。
[0070]
示例性的,所述计算机程序503可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器502中,并由所述处理器501执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段
用于描述所述计算机程序503在所述终端设备500中的执行过程。例如,所述计算机程序503可以被分割成引擎任务确认模块、局部模型检测模块、模型聚合计算模块和引擎任务控制模块。
[0071]
所述终端设备500可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器501、存储器502。本领域技术人员可以理解,图5仅仅是终端设备500的示例,并不构成对终端设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
[0072]
综上所述,本发明针对联合学习架构的联合服务器侧的引擎任务进行优化,利用联合学习上传的局部模型及其陈旧度来对引擎任务的全局模型进行聚合更新,使得在面对系统异构情况下,可以有效提升服务器侧引擎任务的的计算效率和性能。
[0073]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1