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

一种联邦学习方法、装置、设备以及存储介质与流程

2021-10-20 00:49:00 来源:中国专利 TAG:深度 公开 计算机 数据 学习


1.本公开涉及计算机技术领域,尤其涉及大数据及深度学习领域。


背景技术:

2.联邦学习是一种新的分布式学习机制,利用分布式的数据和计算资源进行机器学习模型的协作训练。联邦学习过程中服务器只需要将待训练的全局模型下发给终端设备,然后终端设备将用私有的数据,也即本地数据集更新模型,终端设备在更新完成以后只需要将更新的模型参数上传给服务器,服务器将多个终端设备上传的模型参数进行聚合即可得到新的全局模型,如此迭代,直至全局模型满足预设性能或者迭代次数达到预设迭代次数,通过联邦学习训练模型可有效避免数据共享而导致的隐私的泄露。


技术实现要素:

3.本公开提供了一种联邦学习方法、装置、设备以及存储介质。
4.根据本公开的第一方面,提供了一种联邦学习方法,应用于联邦学习系统中的服务器,所述联邦学习系统包括所述服务器和多个终端设备,所述联邦学习系统用于完成多个任务,所述方法包括:
5.针对所述联邦学习系统中的各个任务,分别执行如下步骤:
6.s1,获取多个终端设备的资源信息;
7.s2,利用所述资源信息,确定所述任务对应的目标终端设备;
8.s3,通过所述目标终端设备对所述任务对应的全局模型进行训练,直至所述全局模型满足预设条件。
9.根据本公开的第二方面,提供了一种联邦学习装置,应用于联邦学习系统中的服务器,所述联邦学习系统包括所述服务器和多个终端设备,所述联邦学习系统用于完成多个任务,所述装置包括:
10.第一获取模块,用于获取多个终端设备的资源信息;
11.确定模块,用于利用所述资源信息,确定所述任务对应的目标终端设备;
12.任务训练模块,用于通过所述目标终端设备对所述任务对应的全局模型进行训练,直至所述全局模型满足预设条件。
13.根据本公开的第三方面,提供了一种电子设备,包括:
14.至少一个处理器;以及
15.与所述至少一个处理器通信连接的存储器;其中,
16.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
17.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面所述的方法。
18.根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算
机程序在被处理器执行时实现根据第一方面所述的方法。
19.本公开实施例可以减少联邦学习中多个任务完成的总时间。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开实施例提供的联邦学习方法的一种流程图;
23.图2是根据本公开实施例提供的联邦学习方法的另一种流程图;
24.图3是根据本公开实施例中训练强化学习模型的一种流程图;
25.图4是根据本公开实施例中训练强化学习模型的另一种流程图;
26.图5是应用本公开实施例提供的联邦学习方法的应用示意图;
27.图6是根据本公开实施例提供的联邦学习装置的一种结构示意图;
28.图7是根据本公开实施例提供的联邦学习装置的另一种结构示意图;
29.图8是本公开实施例中联邦学习装置中训练强化学习模型的一种结构示意图;
30.图9是本公开实施例中联邦学习装置中训练强化学习模型的另一种结构示意图;
31.图10是用来实现本公开实施例的联邦学习方法的电子设备的框图。
具体实施方式
32.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.联邦学习的研究越来越受关注,其中联邦学习效率的提升是联邦学习研究的重要方面,但是大多数的研究都是考虑在单任务情况下模型达到收敛时的性能,而有关多任务的联邦学习的性能研究较少。当联邦学习系统中有多个机器学习任务需要训练时,如何为每个任务分配设备资源来更快地使所有任务的模型达到收敛是研究的主要问题。
34.对于不同的设备,如边缘设备来说,边缘设备的图形处理器(graphics processing unit,gpu)、内存和中央处理器(central processing unit,cpu)等资源是不同的,并且边缘设备所拥有的联邦学习任务所需的本地数据也存在异构性。因此为联邦学习任务选择训练所需的设备时,被选择设备的资源情况和数据分布都会影响任务当前的训练速度以及模型精度的提升。
35.在联邦学习环境下,大多的研究考虑的是多服务资源的调度,并未考虑多任务共享设备资源的调度问题。由于设备的资源有限,并不能保证有充足的资源在同一时间运行多个任务,因此当联邦环境中服务资源充足,多个任务共享所有的设备资源时,如何为每个任务调度设备提升每个任务的收敛效率也是需要考虑的问题。
36.当联邦学习系统中存在多个机器学习任务时,边缘设备资源是共享的,若要优化每个任务的训练效率,需要考虑如何更合理地为每个任务分配设备来更高效地完成任务训练。如果多个任务采用串行方式训练,即下一个任务必须等当前任务训练完成才能开始训
练,这无疑会增加了任务的等待时间且训练效率极低。因此减少等待时间的有效方法之一则是任务之间并行,也即需要在并行的基础上,考虑如何为每个任务调度设备来使总任务完成时间最小。
37.如果仅考虑简单的多任务并行性,则其效率很低,并且设备资源没有得到充分利用。当优化单个联邦学习任务效率时,所有设备资源都只需要为该任务提供服务,而无需考虑如何在各个任务之间合理地调度设备资源。例如,在调度算法fedcs中,服务器将在每轮的有限时间内为单个任务选择尽可能多的设备,以使任务尽快收敛。如果fedcs直接应用于任务环境,尽管任务的总完成时间有所减少,但是服务器每次选择设备时仍仅考虑当前任务。此外,它不能考虑当前调度方案对其他任务的影响,也没有考虑如何为每个任务更合理地调度设备资源以最大程度地减少收敛时间。因此,在优化多任务联邦学习的效率时,合理有效地调度设备资源是影响总完成时间的关键。
38.本公开实施例提供的联邦学习方法能够应用于比较普遍的分布式场景的系统,例如移动式边缘计算,物联网云服务场景等。在不泄露用户隐私的前提下,多任务联邦学习能够为服务端提供更高效更便捷的任务模型训练。
39.下面对本公开实施例提供的多任务的联邦学习方法进行详细说明。
40.本公开实施例提供了一种联邦学习方法,应用于联邦学习系统中的服务器,联邦学习系统包括服务器和多个终端设备,联邦学习系统用于完成多个任务,如图1所示,可以包括:
41.针对联邦学习系统中的各个任务,分别执行如下步骤:
42.s1,获取多个终端设备的资源信息;
43.s2,利用资源信息,确定任务对应的目标终端设备;
44.s3,通过目标终端设备对任务对应的全局模型进行训练,直至全局模型满足预设条件。
45.本公开实施例中基于终端设备的资源信息确定目标终端设备以完成任务,即基于终端设备的资源信息为联邦学习中的多个任务调度设备,多个任务有效地利用多个终端设备的资源,减少联邦学习中多个任务完成的总时间。
46.本公开实施例提供的联邦学习方法可以应用于联邦学习系统中的服务器,联邦学习系统包括服务器和多个终端设备,联邦学习系统用于完成多个任务。
47.各个任务共享多个终端设备,可以理解,每个终端设备中均存在用于训练各个任务对应的全局模型的本地数据。
48.联邦学习中的多个任务可以包括图像分类、语音识别、文本生成等任务。图像分类的任务即可以理解为学习用于图像分类的模型、语音识别即为学习用于语音识别的模型,文本生成的任务即可以理解为用于学习文本生成的模型。
49.针对联邦学习系统中的各个任务,参见图1,可以执行如下步骤:
50.s1,获取多个终端设备的资源信息。
51.s2,利用资源信息,确定任务对应的目标终端设备。
52.针对每一终端设备,该终端设备的资源信息包括以下信息中的至少一种:内存、cpu、gpu信息以及本地数据大小等。
53.服务器可以向各个终端设备发送资源信息请求,终端设备在接收到服务器发送的
资源信息请求后,将自身的资源信息返回给服务器。
54.一种可实现方式中,服务器可以先判断终端设备是否可用,如未被其他服务占用,如果终端设备可用,再向终端设备发送资源信息请求。
55.服务器可以利用多个终端设备的资源信息,分别调度各个终端设备至各个任务,即分别为各个任务确定对应的终端设备。
56.服务器可以先一次性获取各个终端设备的资源信息,在针对各个任务利用资源信息确定目标资源设备的过程中,可以通过不同的线程或服务程序再调用终端设备的资源信息为各个任务确定目标终端设备。
57.或者,服务器首先为各个任务分配线程或者服务程序,各个任务对应的线程或服务程序均向终端设备发送资源信息请求,终端设备在接收到资源信息请求后,可以分别向各个线程或服务程序返回自身的资源信息,各个任务对应的线程或服务程序再分别利用获得的终端设备的资源信息确定该任务对应的目标终端设备。
58.s3,通过目标终端设备对任务对应的全局模型进行训练,直至全局模型满足预设条件。
59.服务器将任务对应的全局模型下发至任务对应的目标终端设备,各个目标终端设备对全局模型进行训练,得到模型参数,并将得到的模型参数分别上传至服务器。服务器接收各个目标终端设备返回的模型参数;对各个目标终端设备返回的模型参数进行聚合,得到更新后的全局模型;然后,判断更新后的全局模型是否满足预设条件,如果满足预设条件,则结束迭代,该任务完成;如果不满足预设条件,则继续将更新后的全局模型下发至目标终端设备,各个目标终端设备继续对更新后全局模型进行训练,直至更新后的全局模型满足预设条件。其中,预设条件可以是预设性能,例如,可以是损失函数达到收敛,损失函数精度达到预设精度值,如0.9等等。不同任务对应的全局模型需要满足的预设条件可以是不同的。
60.一般来讲,都需要多次迭代过程才能完成任务,即目标终端设备通过多次训练并将训练得到的模型参数上传至服务器,服务器对多个目标终端设备的模型参数进行聚合才能使得任务对应的全局模型满足预设条件。
61.一种可选的实施例中,终端设备的资源和状态是动态变化的,例如,终端设备在当前时刻是空闲或可用的,但是过一段时间后,有可能不可用了,或者,终端设备在当前时刻资源是全部空闲,但是过一段时间后,部分被占用,等等,因此,在完成任务过程中,每一次迭代都需要重新获取当前的终端设备的资源信息,以重新确定用于训练任务对应的全局模型的目标终端设备。
62.如图2所示,通过目标终端设备对任务对应的全局模型进行训练,直至全局模型满足预设条件,可以包括:
63.s31,将任务对应的全局模型下发至任务对应的目标终端设备,以使各个目标终端设备对全局模型进行训练,得到模型参数。
64.s32,接收各个目标终端设备返回的模型参数;对各个目标终端设备返回的模型参数进行聚合,得到更新后的全局模型。
65.响应于全局模型未满足预设条件,返回s1,继续执行s1、s2、s31和s32,直至全局模型满足预设条件。
66.具体地,针对联邦学习系统中的各个任务,分别执行如下步骤:
67.s1,获取多个终端设备的资源信息。
68.s2,利用资源信息,确定任务对应的目标终端设备。
69.通过目标终端设备对任务对应的全局模型进行训练,直至全局模型满足预设条件。
70.s31,将任务对应的全局模型下发至任务对应的目标终端设备,以使各个目标终端设备对全局模型进行训练,得到模型参数。
71.s32,接收各个目标终端设备返回的模型参数;对各个目标终端设备返回的模型参数进行聚合,得到更新后的全局模型;
72.响应于全局模型未满足预设条件,返回s1,继续执行s1、s2、s31和s32,直至全局模型满足预设条件。
73.如此,可以考虑终端设备资源和状态的动态变化,在每一次迭代过程中均重新基于终端设备的资源信息重新确定目标终端设备,每次迭代过程中通过重新确定的目标终端设备训练全局模型,如此,能够充分考虑终端设备资源的使用情况等,能够更加合理地利用资源信息,提高模型训练的效率,进而减小任务的完成时间。且各个任务并行运行、互不等待,因为每个任务的训练效率有可能是不一致样的,各个任务并行运行可以减少任务之间等待的时间,提高任务训练的效率。
74.一种可选的实施例中,在将任务对应的全局模型下发至任务对应的目标终端设备的同时,向各个目标终端设备下发迭代次数,以使各个目标终端设备对全局模型进行训练的过程中迭代迭代次数。
75.其中,迭代次数是服务器基于终端设备的资源信息确定的。
76.终端设备接收到全局模型和迭代次数后,利用本地数据对全局模型训练,且训练过程中迭代该迭代次数后结束训练,得到模型参数。
77.由于不同终端设备的资源和本地数据分布的不同,服务器依据终端设备的资源信息为被选择设备,也即目标终端设备,指定本地更新的迭代次数来使全局模型更快地收敛,进而可以减少完成任务的时间。具体地,服务器可以依据终端设备的计算能力为不同终端设备确定迭代次数。
78.一种可选的实施例中,利用资源信息,确定任务对应的目标终端设备,包括:
79.将资源信息输入预先训练好的强化学习模型,通过强化学习模型得到任务对应的目标终端设备。
80.其中,强化学习模型是将多个样本任务能够使用的样本终端设备集、各个样本终端设备的资源信息以及样本任务的特性信息作为环境状态,并基于奖励函数而学习得到的,奖励函数是基于样本终端设备完成样本任务的时间以及完成样本任务所需数据在样本终端设备中的分布确定的。
81.一种可实现方式中,强化学习模型可以直接输出各个任务对应的目标终端设备。
82.另一种可实现方式中,强化学习模型可以输出各个任务分别对应终端设备的概率,针对各个任务,可以按照该任务对应各个终端设备的概率,对各个终端设备进行排序,例如,可以按照从高到低或者从低到高的顺序进行排序,若按照从高到低的顺序进行排序,则选择排序在前的预设数量个终端设备作为该任务对应的目标终端设备,若按照从低到高
的顺序,则选择排序在后的预设数量个终端设备作为该任务对应的目标终端设备。
83.如此,可以基于预先训练好的强化学习模型得到目标终端设备,减小确定目标终端设备的时间。且强化学习模型是将多个样本任务能够使用的样本终端设备集、各个样本终端设备的资源信息以及样本任务的特性信息作为环境状态,并基于奖励函数而学习得到的,奖励函数是基于样本终端设备完成样本任务的时间以及完成样本任务所需数据在样本终端设备中的分布确定的,能够提高确定的目标终端设备与任务的匹配度,更合理地为各个任务调度终端设备,以使各个任务充分利用设备资源,减少所有任务完成的总时间。
84.一种可实现方式中,训练得到强化学习模型的过程,如图3所示,可以包括:
85.s11,获取样本任务的特性信息。
86.特性信息可以是完成样本任务所需的数据的类型、大小,等等。
87.s12,获取样本任务能够使用的样本终端设备集、以及样本终端设备集中各个样本终端设备的资源信息。
88.s13,将样本终端设备集、以及各个样本终端设备的资源信息以及样本任务的特性信息输入模型。
89.该模型可以是深度学习网络,例如,长短期记忆网络(long short

term memory,lstm)。
90.s14,基于各个样本终端设备的资源信息以及样本任务的特性信息,通过模型,从样本终端设备集中选择样本任务对应的调度设备。
91.可以基于各个样本终端设备的资源信息以及样本任务的特性信息,通过模型,得到样本任务分别对应各个样本终端设备的概率;按照概率对各个样本终端设备排序;基于排序结果,选择预设数量个样本终端设备作为样本任务对应的调度设备。
92.可以按照概率从高到低的顺序对终端设备进行排序,或者,也可以按照概率从低到高的顺序对终端设备进行排序。
93.若按照概率从高到低的顺序对样本终端设备进行排序,得到的排序结果是按照概率从高到低的顺序排序的多个样本终端设备,则可以选择排序在前的预设数量个样本终端设备作为样本任务对应的调度设备。
94.若按照概率从低到高的顺序对样本终端设备进行排序,得到的排序结果是按照概率从低到高的顺序排序的多个样本终端设备,则可以选择排序在后的预设数量个样本终端设备作为样本任务对应的调度设备。
95.其中,预设数量可以根据实际需求或经验值来确定,例如,10个、5个,等等。
96.如此,可以通过模型,得到样本任务分别对应各个样本终端设备的概率;并依据概率选择出样本终端设备作为样本任务对应的调度设备。概率是模型依据环境状态,也即任务的特性信息和终端设备的资源新信息,即在训练模型的过程中考虑任务的特性信息和终端设备的资源新信息,如此,能够更合理地为任务调度设备,提高训练的速率。且能够使得训练得到的模型更准确地为任务确定目标终端设备。
97.s15,利用调度设备执行样本任务,并通过奖励函数计算调度设备执行样本任务所对应的奖励值。
98.奖励函数可以基于调度设备训练全局模型的时间确定。
99.一种可实现方式中,奖励函数为:其中,表示计算时间和表示通信时间,λ表示权重,s
m
表示设备集,也即选择的调度设备,g(s
m
)表示调度设备参与训练的数据的波动信息。
100.s16,基于奖励值调整模型对应的模型参数,得到更新后的模型;
101.若更新后的模型未满足迭代结束条件,返回s12,并将更新后的模型替代上述模型,重复执行s12至s16,直至更新后的模型满足迭代结束条件,得到训练好的强化学习模型。
102.利用奖励函数计算奖励值,利用强化学习训练模型。简单理解,不断基于环境状态通过模型从样本终端设备集中选择调度设备,计算选择出的调度设备计算奖励值,并基于奖励值调整模型参数,如此不断优化模型,不断获得更高的奖励值,也可以理解为获得更高的回报,直至模型满足迭代结束条件,如奖励值收敛或者迭代次数达到预设阈值,等等。
103.如图4所示,将各个样本终端设备的资源信息以及样本任务的特性信息作为环境状态s,输入模型,例如可以是lstm,然后通过该lstm确定调度方案,采用调度方案a,调度方案即可以理解为多个调度设备。然后执行该调度方案a,计算执行该调度方案a对应的奖励值r,然后利用r调整lstm的模型参数,并重新获取环境状态,并基于调整参数后的lstm,也可以理解为更新后的模型重新选择调度方案,如此迭代,使得奖励值不断增大,直至更新后的模型满足迭代结束条件。其中,基于环境状态通过lstm得到任务在每个可用终端设备上的概率,具体地,基于环境状态通过lstm选择调度方案可以是lstm基于环境状态确定任务对应样本终端设备的概率,然后,按照概率进行排序,选择概率较大的预设数量个样本终端设备作为调度方案a。可以按照从高到低或者从低到高的顺序对各样本终端设备进行排序,对应地可以选择排序在前或排序在后的预设数量个样本终端设备。
104.例如,联邦学习所有任务的模型特征,当前任务m在环境中可用的设备,任务编号m,以及任务训练数据的大小等作为环境状态输入到lstm中,然后得到当前任务在每个可用设备上的概率,最终选择概率最大的一部分设备作为当前任务的调度方案s
m
。然后更新环境状态并上述奖励函数计算出所选调度方案的奖励r,再将r反馈给lstm网络进行学习来使得下次获得更高的奖励,一直重复上述过程至迭代结束。
105.一种可选的实施例中,可以用预先训练的调度模型初始化动作值函数q的神经网络lstm。然后,判断当前是否为训练模式,如果是训练模式,则可以参见图4所示过程,通过图3实施例的步骤,进行训练得到强化学习模型;如果不是训练模式,则可以直接调用训练好的强化学习模型确定任务对应的各个终端设备的概率,进而可以基于概率确定任务对应的目标终端设备。
106.一种具体的例子中,假设联邦学习环境由一台服务器和k个终端设备组成,其中,设备索引为κ={1,2,...,k}。它们共同参与m个不同任务的模型训练,其中任务的索引为m={1,2,...,m}。每个终端设备都具有m个任务的本地数据集,其中设备k上第m个任务的本地数据集表示为地数据集表示为为数据的样本个数,为终端设备k上第m个任务的第d个s
m
维输入数据向量,为的标签。因此,任务m的整个数
据集可表示为其样本个数为
107.每个终端设备都有全部任务的数据集,而多任务联邦学习是通过不同任务的损失函数从相应的数据集中学习各自的模型参数w
m
。多任务联邦学习的全局学习问题可以通过以下公式表示:
[0108][0109]
其中,w:≡{ω1,ω2,...,ω
m
}是所有任务的模型权重的集合,:≡可以表示将w定义为包括所有任务的模型权重的集合,是第m个任务的输入输出数据对在模型参数ω
m
上的模型损失。
[0110]
终端设备在接收到全局模型后,终端设备完成一轮全局训练所需的时间主要由计算时间和通信时间决定。对于任一任务,每一轮全局训练所需的时间都由所选择的速度最慢的终端设备确定。假设终端设备与服务器的通信是并行的,因此一轮全局训练所需的总时间如下:
[0111][0112]
为了提高多任务学习的效率,在设备资源有限的情况下,主要通过优化任务间设备资源的利用来提高所有任务的整体训练效率,因此多任务的效率优化问题如下:
[0113][0114][0115]
s={s1,s2,...,s
m
},
[0116][0117]
其中,β
m
表示任务m的收敛曲线的参数,l
m
为任务m的预期损失值或达到收敛的损失值,r
m
表示实现预期损失l
m
所需的轮数。
[0118]
对于不同的任务,同一终端设备上的本地数据的大小和全局模型的复杂度都有所不同,因此,同一终端设备完成不同任务的更新所需的时间也有所不同。为了描述局部模型更新所需时间的随机性,假设终端设备完成更新所需的时间遵循位移指数分布:
[0119][0120]
其中,参数a
k
>0和μ
k
>0是终端设备k的计算能力的最大值和波动值。由于服务器计算能力强,任务的模型复杂度低,可以忽略服务器进行模型聚合的计算时间,即可以忽略服务器接收到多个终端设备返回的模型参数后对多个模型参数进行聚合的时间。
[0121]
多任务联邦学习解决的核心问题则是多任务训练的效率问题,即上述多任务的效率优化问题,为了解决此问题,本公开实施例提供了基于深度强化学习的设备资源调度算
法,下面具体描述。
[0122]
在接收到空闲的终端设备的资源信息后,服务器将启动资源调度算法,并根据接收到的终端设备的资源信息调度当前任务所需的设备。此外,每个任务的训练轮数不需要一致,在任务之间也不需要互相等待。一般情况下,给定全局模型的收敛精度,如上述公式所示,收敛所需的训练轮数也大致确定。
[0123]
在理想情况下,即所有终端设备的资源和状态保持不变,服务器可以根据所有终端设备的资源信息,为每个任务一次调度完成所有轮训练所需的终端设备。然而,在一些应用中,如边缘计算环境中,边缘设备的资源和状态会发生改变。例如,终端设备可能当前是空闲和可用的,但在一段时间之后,设备可能是忙碌且不可用或者一部分资源被占用。因此,一次性完成所有设备调度是不现实的,本公开实施例采用了贪婪算法的思想,得到了近似解。服务器根据所有可用的终端设备的当前设备信息来为待训练的任务调度当前轮所需的目标终端设备,并确保当前时间节点,所有任务所需的训练时间最短。也即每个任务都要求服务器在每轮训练中为其调度终端设备。
[0124]
在终端设备调度过程中,终端设备参与的公平性和参与训练的数据分布的均衡性是影响收敛速度的关键因素。如果过度选择训练较快的终端设备,尽管这能加速每一轮的训练速度,但会使得全局模型的训练集中在一小部分终端设备上,最终导致任务的收敛精度下降。而本公开实施例最终目标是使所有任务尽快收敛,即所有任务完成的总时间最小,同时确保模型的准确性。因此,在尽可能确保设备参与的公平性的前提下来进行终端设备调度。首先,为了尽可能确保终端设备参与的公平性,防止一些终端设备过度参与训练并且避免在调度过程中偏向选择较快的设备,为每项任务引入了超参数n
m
。对于任一任务,同一设备的参与频率不超过n
m
,这将确保任务精度的前提下来提升每个任务的收敛速度。
[0125]
对于参与训练的数据的均衡性,将数据均衡作为调度算法优化目标的一部分。同时,在采用贪婪算法后,需要重写资源调度算法的优化问题。假设服务器在第r
j
轮训练中为当前任务j调度的设备集是s
j
。而任务j训练所需的所有本地数据共分为l
j
类,存在大小为l
j
的集合q
j
,其中q
j
[l]=0,l={0,1,...,l
j
}。将第r
j
1轮之前所有参与训练的设备的数据按类别进行统计,并将结果放入集合q
j
。由此,可以根据以下公式来衡量当前所有参与训练的数据在类别上的波动程度:
[0126][0127]
参与模型训练的数据越均衡,模型收敛越快越稳定。因此,调度算法在任务j在第r
j
轮调度设备时所解决的问题可以表示为:
[0128][0129][0130][0131]
相比于上述多任务的效率优化问题中的多目标优化问题,该优化目标比较容易求解。然而该优化目标仍然是一个较难解决的组合优化问题。由于可能的资源调度方案规模
巨大,搜索最优调度方案的蛮力会导致“组合爆炸”,搜索的时间复杂度太高以至于无法完成。因此本公开实施例提出了基于强化学习的调度算法来求解最优调度方案。通过如下公式表示深度强化学习调度策略采取的每个动作所给予的奖励:
[0132][0133]
在该调度策略中采用lstm与强化学习来主动让算法自主学习设备调度,该算法实现了深度强化学习调度方案的学习过程以及调度过程,能够根据所有任务的特征以及当前任务的训练参数为当前任务选择调度方案,也能够在调度结束后继续训练调度网络来使调度网络更明智。
[0134]
训练得到强化学习模型后可以利用该强化学习模型调度设备,即为用于实现多任务的联邦学习系统中的任务确定目标终端设备。
[0135]
在联邦学习执行任务的过程中,可以调用该强化学习模型为任务确定目标终端设备。具体地,针对每一任务,每次迭代过程中均可以调用该强化学习模型为该次迭代确定对应的目标终端设备,进而在该次迭代过程中使用该对应的目标终端设备训练任务对应的全局模型。一次迭代过程指的是服务器向已选的终端设备下发全局模型,已选的各个终端设备利用本地数据对全局模型进行训练,得到模型模型,将模型参数上传至服务器,服务器对各个模型参数进行聚合得到新的全局模型的过程。
[0136]
参见图5,在服务器端,对多任务设备资源的调度和任务模型的分发及聚合;在设备端根据设备的计算能力为不同设备指定的本地迭代次数来进行本地更新,具体包括如下步骤:
[0137]
步骤a1,服务器首先为每个任务随机创建一个初始模型或使用公共数据对其进行预训练。
[0138]
也即初始化各个任务分别对应的全局模型。
[0139]
步骤a2,服务器为每个任务创建服务程序使联邦学习环境中的所有任务并行执行,创建完成后每个任务均可向所有设备发送资源信息请求。
[0140]
各个任务对应的服务程序也可以先判断终端设备是否空闲,若终端设备空闲,再向终端设备发送资源信息请求,以获取空间的资源设备的资源信息。
[0141]
步骤a3,终端设备收到不同任务发来的资源请求的设备向对应的任务返回自身的设备资源信息,该资源信息可以包括内存、cpu、gpu信息以及本地数据大小等。
[0142]
其中,服务器可以是云服务器,终端设备可以是边缘应用环境中的边缘设备。
[0143]
步骤a4,任务的服务程序收到不同设备的资源信息后根据服务器的调度策略为当前任务调度当前轮次训练所需的设备。
[0144]
具体地,服务对应的服务程序可以调用上述已经训练好的强化学习模型,通过强化学习模型可以输出各个任务分别对应终端设备的概率,针对各个任务,可以按照该任务对应各个终端设备的概率,对各个终端设备进行排序,例如,可以按照从高到低或者从低到高的顺序进行排序,若按照从高到低的顺序进行排序,则选择排序在前的预设数量个终端设备作为该任务对应的目标终端设备,若按照从低到高的顺序,则选择排序在后的预设数量个终端设备作为该任务对应的目标终端设备。
[0145]
步骤a5,服务器中的服务程序将当前任务的全局模型和不同设备的本地更新迭代
次数分发给步骤a4中选定的设备,也即目前终端设备。
[0146]
步骤a6,所选设备使用本地数据更新从服务器下载的当前任务的全局模型,并在训练完成后将得到的模型参数上传到服务器。
[0147]
步骤a7,服务器收到相应任务所有选中的设备的更新后,对更新后的模型参数进行平均,得到该任务新的全局模型。
[0148]
步骤a8,迭代除初始化之外的所有步骤,直到所有任务的全局模型均达到其所需的性能。
[0149]
在多任务资源调度步骤中,服务器根据所有获取的设备资源信息,运行基于深度强化学习的设备调度算法,也即调用训练好的强化学习模型自动为当前任务生成高效的调度方案来完成当前轮的全局训练,其中每轮的调度方案中包含的设备数量是不固定的而是调度算法通过自我学习决定的。然后,服务器将当前任务的最新全局模型和不同设备更新模型所需的本地迭代次数发送到步骤四中选择的设备,被选择的设备使用本地数据更新接收到的全局模型。由于这些设备的资源和本地数据分布的不同,服务器需要依据设备的资源信息为被选择设备指定本地更新的迭代次数来使全局模型更快地收敛。最后,服务器聚合当前任务的所有选定设备的更新,以获得新的全局模型,至此完成了一轮训练。该过程中,多个任务并行执行,而不互相等待,在全局模型达到预期性能或收敛之前,每个任务都重复除了初始化步骤以外的所有上述步骤。
[0150]
本公开实施例中,可以先预先训练强化学习模型,且训练完好模型后,不再对模型进行调整,这种模式可以称之为静态调度模式。或者,可以边调度边训练,具体地,在训练好强化学习模型之后,再使用该强化学习模型调度设备之后,可以再对强化学习模型进行更新,这种模式可以称之为动态调度模式。
[0151]
一种可选的实施例中,在确定任务对应的目标终端设备之后,还可以包括:
[0152]
将各个任务的特性信息、多个终端设备的资源信息以及多个终端设备组成的设备集作为强化学习模型的环境状态,并基于奖励函数对强化学习模型进行更新;
[0153]
响应于全局模型未满足预设条件,返回s1,继续执行s1、s2、s31和s32,利用资源信息,确定任务对应的目标终端设备,包括:
[0154]
将资源信息输入更新后的强化学习模型,通过更新后的强化学习模型得到任务对应的目标终端设备。
[0155]
即使用动态调度模型,具体地,在使用强化学习模型在任务的一次迭代过程中调度设备之后,也即确定任务对应的终端设备之后,可以继续对强化学习模型进行训练,也可以理解为更新强化学习模型,具体地更新过程与上述训练强化学习模型的过程类似,不同之处在于,在调度过程中更新强化学习模型过程中所使用的环境状态是联邦学习系统中待训练的多个任务的特性信息以及联邦学习系统中的多个终端设备的资源信息,调度的是联邦学习系统中的这些终端设备。
[0156]
如此,可以基于当前待完成的任务的信息以及当前用于完成任务的终端设备的资源信息对强化学习模型不断更新,能够提高模型的性能。
[0157]
各个终端设备均具有用于训练各个任务对应的全局模型的本地数据,如果过度选择训练较快的设备,尽管这能加速某一轮的训练速度,但会使得全局模型的训练集中在一小部分设备上,最终导致任务的收敛精度下降。而本公开实施例的最终目标是使所有联邦
学习任务尽快收敛,同时确保模型的准确性。因此,在尽可能确保设备参与的公平性的前提下来进行设备调度。首先,为了尽可能确保设备参与的公平性,防止一些边缘设备过度参与训练并且避免在调度过程中偏向选择较快的设备,为每项任务引入了超参数n
m
。对于任一任务,同一设备的参与频率不超过n
m
,这将确保任务精度的前提下来提升每个任务的收敛速度。
[0158]
一种可选的实施例中,获取多个终端设备的资源信息,包括:
[0159]
针对各个终端设备,确定终端设备参与训练任务的参与频率;响应于参与频率小于预设参与频率阈值,将终端设备作为任务对应的可用终端设备;获取可用终端设备的资源信息。
[0160]
参与频率可以理解为针对一任务参与该任务对应的全局模型的训练的参与次数。终端设备可以设置一个参数频率的参数,在接收到服务器下发的全局模型,利用本地数据,得到全局模型的模型参数,并将该模型参数上传给服务器后,将该参数增加1。
[0161]
在为任务调度设备的过程中,若一终端设备参与该任务的参与频率大于等于参与频率阈值,不考虑再为该任务调度该终端设备,只有参与频率小于预设参与频率阈值,将该终端设备作为待选的终端设备提供给服务器调度。
[0162]
如此,可以实现在提高训练精度的基础上提高收敛速度,也即减小任务完成时间,合理调度设备。
[0163]
针对静态调度模式,本公开实施例提供了一种联邦学习方式。具体地,可以包括如下步骤:
[0164]
步骤b1,初始化任务m的不可用设备集合h
m
以及设备参与任务m训练的频率f
km

[0165]
步骤b2,如果不可用设备集合h
m
中的设备数量超过全部设备数|的则将h
m
置为空,将频率f
km
清零;否则转入步骤b3。
[0166]
确定不可用设备集合过程中可以引入参与频率的限制参数n
m
,也即参与频率阈值。
[0167]
若f
km
大于n
m
,针对任务m,该终端设备可以理解为是不可用设备集合中的终端设备。
[0168]
步骤b3,将在不可用设备集合h
m
中的设备从可用设备集合中移除。
[0169]
步骤b4,以任务m的可用设备集合任务编号m作为参数调用上述强化学习模型以调度当前训练所需的设备集合
[0170]
此时,可以理解为非训练模式,即强化学习模型训练完成后不再更新,在调度过程不再调整该强化学习模型。
[0171]
步骤b5,统计设备集合中设备参与任务m训练的频率f
km

[0172]
步骤b6,返回任务m的调度设备集合
[0173]
静态调度模式中,直接加载预训练完成的强化学习模型到联邦学习环境中为每个任务调度当前轮训练所需的设备,并且以后也不再训练此模型。并且为了设备参与的公平性,防止部分设备过分参与导致任务模型过拟合以及提升任务模型的收敛速度,可以引入每个任务设备参与频率的限制n
m

[0174]
针对动态调度模式,本公开实施例提供了一种联邦学习方式。具体地,可以包括如
下步骤:
[0175]
步骤c1,初始化任务m的不可用设备集合h
m
以及设备参与任务m训练的频率f
km

[0176]
步骤c2,如果不可用设备集合h
m
中的设备数量超过全部设备数|的则将h
m
置为空,将频率f
km
清零;否则转入步骤c3。
[0177]
步骤c3,将在不可用设备集合h
m
中的设备从可用设备集合中移除。
[0178]
步骤c4,以任务m的可用设备集合任务编号m以及训练模式train=false作为参数调用上述强化学习模型以调度调度当前训练所需的设备集合
[0179]
步骤c5,统计设备集合中设备参与任务m训练的频率f
km

[0180]
步骤c6,以任务m的可用设备集合以及训练模式train=true作为参数更新上述强化学习模型。
[0181]
此时可以理解为训练模式,在调用上述强化学习模型以调度设备后,继续对强化学习模型进行更新。
[0182]
将联邦学习所有任务的模型特征,当前任务m在环境中可用的设备任务编号m,以及任务训练数据的大小等作为环境状态输入到lstm中,然后得到当前任务在每个可用设备上的概率,最终选择概率最大的一部分设备作为当前任务的调度方案s
m
。然后更新环境状态并根据上述奖励函数计算出所选调度方案的奖励r,再将r反馈给强化学习模型进行学习来使得下次获得更高的奖励,一直重复上述过程至达到迭代次数。结束后将更新的深度学习调度网络保存以覆盖旧的强化学习模型,以至再次调度时为最新的调度网络,即最新的强化学习模型。
[0183]
具体地,更新强化学习模型与上述训练强化学习模型的过程类似,在上述实施例中已经详细描述,这里不再赘述。
[0184]
步骤c7,返回任务m的调度设备集合
[0185]
在动态调度模式中,可以将预训练完成的深度强化学习网络加载到联邦学习环境中,然后为每个任务调度训练所需的设备。且在一次调度完成后继续让该神经网络学习,即在调度的同时也在继续学习,此算法能够进一步优化调度算法,即优化用于调度设备的强化学习模型。可以提供深度强化学习调度网络来调度设备以及更新神经网络的功能,在调度设备后会再次进一步训练当前的调度网络,能够使下次调度时更加明智。
[0186]
对应于上述实施例提供的联邦学习方法,本公开实施例还提供了一种联邦学习装置,应用于联邦学习系统中的服务器,联邦学习系统包括服务器和多个终端设备,联邦学习系统用于完成多个任务,如图6所示,该装置可以包括:
[0187]
第一获取模块601,用于获取多个终端设备的资源信息;
[0188]
确定模块602,用于利用资源信息,确定任务对应的目标终端设备;
[0189]
任务训练模块603,用于通过目标终端设备对任务对应的全局模型进行训练,直至全局模型满足预设条件。
[0190]
可选的,任务训练模块603,如图7所示,可以包括:
[0191]
下发子模块701,用于将任务对应的全局模型下发至任务对应的目标终端设备,以使各个目标终端设备对全局模型进行训练,得到模型参数;
[0192]
接收子模块702,用于接收各个目标终端设备返回的模型参数;对各个目标终端设备返回的模型参数进行聚合,得到更新后的全局模型;响应于全局模型未满足预设条件,返回第一获取模块601,调用第一获取模块601、确定模块602、下发子模块701和接收子模块702,直至全局模型满足预设条件。
[0193]
可选的,确定模块602,具体用于将资源信息输入预先训练好的强化学习模型,通过强化学习模型得到任务对应的目标终端设备;其中,强化学习模型是将多个样本任务能够使用的样本终端设备集、各个样本终端设备的资源信息以及样本任务的特性信息作为环境状态,并基于奖励函数而学习得到的,奖励函数是基于样本终端设备完成样本任务的时间以及完成样本任务所需数据在样本终端设备中的分布确定的。
[0194]
可选的,如图8所示,该装置还包括:
[0195]
第二获取模块801,用于获取样本任务的特性信息;获取样本任务能够使用的样本终端设备集、以及样本终端设备集中各个样本终端设备的资源信息;
[0196]
输入模块802,用于将样本终端设备集、以及各个样本终端设备的资源信息以及样本任务的特性信息输入模型;
[0197]
选择模块803,用于基于各个样本终端设备的资源信息以及样本任务的特性信息,通过模型,从样本终端设备集中选择样本任务对应的调度设备;
[0198]
计算模块804,用于利用调度设备执行样本任务,并通过奖励函数计算调度设备执行样本任务所对应的奖励值;
[0199]
调整模块805,用于基于奖励值调整模型对应的模型参数,得到更新后的模型;若更新后的模型未满足迭代结束条件,返回输入模块802,将更新后的模型替代上述模型,重复调用输入模块802、选择模块803、计算模块804和调整模块805,直至更新后的模型满足迭代结束条件,得到训练好的强化学习模型。
[0200]
可选的,选择模块803,具体用于基于各个样本终端设备的资源信息以及样本任务的特性信息,通过模型,得到样本任务分别对应各个样本终端设备的概率;按照概率对各个样本终端设备排序;基于排序结果,选择预设数量个样本终端设备作为样本任务对应的调度设备。
[0201]
可选的,第一获取模块601,具体用于针对各个终端设备,确定终端设备参与训练任务的参与频率;响应于参与频率小于预设参与频率阈值,将终端设备作为任务对应的可用终端设备;获取可用终端设备的资源信息。
[0202]
可选的,如图9所示,该装置还包括:
[0203]
更新模块901,用于将各个任务的特性信息、多个终端设备的资源信息以及多个终端设备组成的设备集作为强化学习模型的环境状态,并基于奖励函数对强化学习模型进行更新;
[0204]
确定模块602,具体用于将资源信息输入更新后的强化学习模型,通过更新后的强化学习模型得到任务对应的目标终端设备。
[0205]
可选的,下发子模块701,还用于响应于将任务对应的全局模型下发至任务对应的目标终端设备,向各个目标终端设备下发迭代次数,以使各个目标终端设备对全局模型进行训练的过程中迭代迭代次数,其中,迭代次数是服务器基于终端设备的资源信息确定的。
[0206]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种
计算机程序产品。
[0207]
图10示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0208]
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0209]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0210]
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如联邦学习方法。例如,在一些实施例中,联邦学习方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的联邦学习方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行联邦学习方法。
[0211]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0212]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0213]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0214]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0215]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0216]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0217]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0218]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜