联邦学习模型训练方法、设备、系统及存储介质与流程

文档序号:18743012发布日期:2019-09-21 02:00阅读:206来源:国知局
联邦学习模型训练方法、设备、系统及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种联邦学习模型训练方法、设备、系统及存储介质。



背景技术:

随着人工智能的发展,人们为解决数据孤岛的问题,提出了“联邦学习”的概念,使得联邦双方在不用给出己方数据的情况下,也可进行模型训练得到模型参数,并且可以避免数据隐私泄露的问题。

目前横向联邦学习的模型参数更新过程中,每个参与设备只使用自己本地拥有的数据来训练模型,并向协调设备发送模型参数更新,协调设备将所收到的来自不同参与设备的模型参数更新进行融合,并将融合后的模型参数更新再分发给各个参与设备,实现一次参数更新。但是由于各个参与设备不同的通信带宽和时延,以及拥有不同数据量和计算能力等原因,各个参与设备将模型参数更新发送给协调设备的时间不一致,若协调设备等待接收所有参与设备发送的模型参数更新,需要等待过长时间,显著增加联邦学习模型训练时间。

目前为避免协调设备一直等待,规定协调者等待接收至少N个参与者发送的模型参数更新,但是这种方式导致协调设备总是接收固定一部分参与设备发送的模型参数更新,而无法利用所有或者大部分参与设备的贡献来构建联邦学习模型,即无法很好地兼顾联邦学习模型的训练时间和模型质量。



技术实现要素:

本发明的主要目的在于提供一种联邦学习模型训练方法、设备、系统及存储介质,旨在解决目前横向联邦学习模型训练过程中,无法很好地兼顾联邦学习模型的训练时间和模型质量的问题。

为实现上述目的,本发明提供一种联邦学习模型训练方法,所述联邦学习模型训练方法应用于协调设备,所述协调设备与多个参与设备通信连接,

所述联邦学习模型训练方法包括以下步骤:

向各所述参与设备发送模型更新请求消息,所述模型更新请求消息中携带本次联邦学习模型更新的联合模型参数和等待时长;

接收各所述参与设备发送的模型参数更新,其中,所述模型参数更新由各所述参与设备根据本地数据和所述联合模型参数对待训练模型进行本地训练得到,并且所述模型参数更新为各所述参与设备根据所述等待时长确定有时间参与本次模型更新时所发送;

对各所述模型参数更新进行融合处理得到最新的联合模型参数;

根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态,根据统计结果调整所述等待时长得到下次模型更新的等待时长;

在下次模型更新的模型更新请求消息中携带所述最新的联合模型参数和所述下次模型更新的等待时长,直到检测到所述待训练模型处于收敛状态时,将所述最新的联合模型参数作为所述待训练模型的最终参数。

可选地,所述根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态的步骤包括:

对各所述模型参数更新中的时间标记进行提取;

当提取到第一时间标记时,根据所述第一时间标记的数量,确定对本次模型更新的参与状态为有时间参与状态的所述参与设备的第一数量,其中,所述参与设备在发送本地训练得到的所述模型参数更新时携带所述第一时间标记。

可选地,所述对各所述模型参数更新中的时间标记进行提取的步骤之后,还包括:

当提取到第二时间标记时,根据所述第二时间标记的数量,确定对本次模型更新的参与状态为无时间参与状态的所述参与设备的第二数量,其中,所述参与设备在根据所述等待时长确定无时间参与本次模型更新,但有时间发送模型参数更新,且最近连续未发送模型参数更新的次数大于预设次数时,将所述联合模型参数与上次模型更新时进行本地训练得到的前模型参数更新进行本地融合,得到所述模型参数更新,并在发送所述模型参数更新时携带所述第二时间标记。

可选地,所述根据统计结果调整所述等待时长得到下次模型更新的等待时长的步骤包括:

当所述统计结果是所述第一数量时,判断所述第一数量是否小于第一预设数量;

若所述第一数量小于所述第一预设数量,则增大所述等待时长得到下次模型更新的等待时长;

若所述第一数量不小于所述第一预设数量,则判断所述第一数量是否大于第二预设数量,其中,所述第一预设数量小于所述第二预设数量;

若所述第一数量大于所述第二预设数量,则减小所述等待时长得到下次模型更新的等待时长。

为实现上述目的,本发明还提供一种联邦学习模型训练方法,其特征在于,所述联邦学习模型训练方法应用于参与设备,所述参与设备与协调设备通信连接,所述联邦学习模型训练方法包括以下步骤:

接收所述协调设备发送的模型更新请求消息,从所述模型更新请求消息中获取本次联邦学习模型更新的联合模型参数和等待时长;

根据所述参与设备的本地数据和所述联合模型参数对待训练模型进行本地训练,得到第一模型参数更新;

根据所述等待时长确定是否有时间参与本次模型更新;

若确定有时间参与本次模型更新,则将所述第一模型参数更新发送给所述协调设备,或将携带有第一时间标记的所述第一模型参数更新发送给所述协调设备。

可选地,所述模型参数更新请求中还携带消息发送时间和本次模型更新的更新序号,所述根据所述等待时长确定是否有时间参与本次模型更新的步骤包括:

从所述模型更新请求消息中获取所述消息发送时间和所述更新序号;

根据所述消息发送时间、所述更新序号和接收到所述模型更新请求的接收时间确定网络时延;

根据所述等待时长、预估本地训练时长和所述网络时延判断是否有时间进行本地训练并发送模型参数更新;

若确定有时间进行本地训练并发送模型参数更新,则确定有时间参与本次模型更新;

若确定无时间进行本地训练并发送模型参数更新,则确定无时间参与本次模型更新。

可选地,所述若确定无时间进行本地训练并发送模型参数更新,则确定无时间参与本次模型更新的步骤之后,还包括:

根据所述等待时长和所述网络时延判断是否有时间发送模型参数更新;

若确定有时间发送模型参数更新,则获取最近连续未发送模型参数更新的次数;

当检测到所述次数大于预设次数时,将所述联合模型参数与上次模型更新时进行本地训练得到的前模型参数更新进行本地融合,得到第二模型参数更新;

将携带第二时间标记的所述第二模型参数发送给所述协调设备,或将携带所述第二时间标记的所述第二模型参数按照预设加密算法进行加密后发送给所述协调设备。

可选地,所述将所述第一模型参数更新发送给所述协调设备的步骤包括:

将所述第一模型参数更新按照预设加密算法进行加密,并将加密后的所述第一模型参数发送给所述协调设备。

可选地,所述若确定有时间参与本次模型更新,则将所述第一模型参数更新发送给所述协调设备的步骤包括:

若确定有时间参与本次模型更新,则判断当前是否满足预设发送条件;

当满足预设发送条件时,将所述第一模型参数更新发送给所述协调设备。

为实现上述目的,本发明还提供一种设备,所述设备为协调设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习模型训练程序,所述联邦学习模型训练程序被所述处理器执行时实现如上所述的联邦学习模型训练方法的步骤。

为实现上述目的,本发明还提供一种设备,所述设备为参与设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习模型训练程序,所述联邦学习模型训练程序被所述处理器执行时实现如上所述的联邦学习模型训练方法的步骤。

为实现上述目的,本发明还提供一种联邦学习模型训练系统,所述联邦学习模型训练系统包括:至少一个如上所述的协调设备和至少一个如上所述的参与设备。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有联邦学习模型训练程序,所述联邦学习模型训练程序被处理器执行时实现如上所述的联邦学习模型训练方法的步骤。

本发明中,协调设备向各参与设备发送模型更新请求消息,并在模型更新请求消息中携带本次联邦学习模型更新的联合模型参数和等待时长;接收各参与设备发送的模型参数更新,其中,模型参数更新由各参与设备根据本地数据和联合模型参数对待训练模型进行本地训练得到,并且模型参数更新为各参与设备根据等待时长确定有时间参与本次模型更新时所发送;对各模型参数更新进行融合处理得到最新的联合模型参数;根据各模型参数更新统计各参与设备对本次模型更新的参与状态,根据统计结果调整等待时长得到下次模型更新的等待时长;在下次模型更新的模型更新请求消息中携带最新的联合模型参数和下次模型更新的等待时长,直到检测到待训练模型处于收敛状态时,将最新的联合模型参数作为待训练模型的最终参数。本发明通过动态调整每次模型更新的等待时长,实现了协调设备有效根据参与设备本地训练时长来动态调整联邦学习模型训练时间,在尽可能减少联邦学习模型训练时间的同时,尽量地提高联邦学习模型的质量,从而实现很好地兼顾联邦学习模型的训练时间和质量。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明联邦学习模型训练方法第一实施例的流程示意图;

图3为本发明联邦学习模型训练方法实施例涉及的消息发送时间场景示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

需要说明的是,本发明实施例设备是协调设备,协调设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。

如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及联邦学习模型训练程序。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持联邦学习模型训练程序以及其它软件或程序的运行。

在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与各参与设备建立通信连接;而处理器1001可以用于调用存储器1005中存储的联邦学习模型训练程序,并执行以下操作:

向各所述参与设备发送模型更新请求消息,所述模型更新请求消息中携带本次联邦学习模型更新的联合模型参数和等待时长;

接收各所述参与设备发送的模型参数更新,其中,所述模型参数更新由各所述参与设备根据本地数据和所述联合模型参数对待训练模型进行本地训练得到,并且所述模型参数更新为各所述参与设备根据所述等待时长确定有时间参与本次模型更新时所发送;

对各所述模型参数更新进行融合处理得到最新的联合模型参数;

根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态,根据统计结果调整所述等待时长得到下次模型更新的等待时长;

在下次模型更新的模型更新请求消息中携带所述最新的联合模型参数和所述下次模型更新的等待时长,直到检测到所述待训练模型处于收敛状态时,将所述最新的联合模型参数作为所述待训练模型的最终参数。

进一步地,所述根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态的步骤包括:

对各所述模型参数更新中的时间标记进行提取;

当提取到第一时间标记时,根据所述第一时间标记的数量,确定对本次模型更新的参与状态为有时间参与状态的所述参与设备的第一数量,其中,所述参与设备在发送本地训练得到的所述模型参数更新时携带所述第一时间标记。

进一步地,所述对各所述模型参数更新中的时间标记进行提取的步骤之后,处理器1001还可以用于调用存储器1005中存储的联邦学习模型训练程序,并执行以下步骤:

当提取到第二时间标记时,根据所述第二时间标记的数量,确定对本次模型更新的参与状态为无时间参与状态的所述参与设备的第二数量,其中,所述参与设备在根据所述等待时长确定无时间参与本次模型更新,但有时间发送模型参数更新,且最近连续未发送模型参数更新的次数大于预设次数时,将所述联合模型参数与上次模型更新时进行本地训练得到的前模型参数更新进行本地融合,得到所述模型参数更新,并在发送所述模型参数更新时携带所述第二时间标记。

进一步地,所述根据统计结果调整所述等待时长得到下次模型更新的等待时长的步骤包括:

当所述统计结果是所述第一数量时,判断所述第一数量是否小于第一预设数量;

若所述第一数量小于所述第一预设数量,则增大所述等待时长得到下次模型更新的等待时长;

若所述第一数量不小于所述第一预设数量,则判断所述第一数量是否大于第二预设数量,其中,所述第一预设数量小于所述第二预设数量;

若所述第一数量大于所述第二预设数量,则减小所述等待时长得到下次模型更新的等待时长。

此外,本发明实施例还提出一种参与设备,所述参与设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习模型训练程序,所述联邦学习模型训练程序被所述处理器执行时实现如下所述的联邦学习模型训练方法的步骤。

此外,本发明实施例还提出一种联邦学习模型训练系统,所述联邦学习模型训练系统包括至少一个如上所述的协调设备、至少一个如上所述的参与设备。

此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有联邦学习模型训练程序,所述联邦学习模型训练程序被处理器执行时实现如下所述的联邦学习模型训练方法的步骤。

本发明协调设备、参与设备、联邦学习模型训练系统和计算机可读存储介质的各实施例,均可参照本发明联邦学习模型训练方法各个实施例,此处不再赘述。

基于上述的结构,提出联邦学习模型训练方法的各个实施例。

参照图2,图2为本发明联邦学习模型训练方法第一实施例的流程示意图。

本发明实施例提供了联邦学习模型训练方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明第一实施例联邦学习模型训练方法应用于协调设备,协调设备与多个参与设备通信连接,本发明实施例协调设备和参与设备可以是智能手机、个人计算机和服务器等设备,参与设备可支持联邦学习模型的训练,在此不做具体限制。在本实施例中,联邦学习模型训练方法包括:

步骤S10,向各所述参与设备发送模型更新请求消息,所述模型更新请求消息中携带本次联邦学习模型更新的联合模型参数和等待时长;

随着人工智能的发展,人们为解决数据孤岛的问题,提出了“联邦学习”的概念,使得联邦各方在不用给出己方数据的情况下,也可进行模型训练得到模型参数,并且可以避免数据隐私泄露的问题。

横向联邦学习指在两个数据集(即可以是本发明实施例中的参与设备的本地数据)的用户特征重叠较多,而用户重叠较少的情况下,把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。这种方法叫做横向联邦学习。比如有两家不同地区的银行,它们的用户群体分别来自各自所在的地区,相互的交集很小,但是,它们的业务很相似,因此,记录的用户特征是相同的,可以使用横向联邦学习来帮助两家银行构建联合模型。

目前横向联邦学习的一次模型参数更新过程中,每个参与设备只使用自己本地拥有的数据(本地数据)来训练联邦学习模型,并向协调设备发送模型参数更新,协调设备将所收到的来自不同参与设备的模型参数更新进行融合,并将融合后的模型参数更新再分发给各个参与设备,实现一次参数更新。通过多次参数更新,直到检测到联邦学习模型收敛,就结束训练得到最终的模型参数,即完成了联邦学习模型的训练过程。但是在一次参数更新过程中,由于各个参与设备不同的通信带宽和时延,以及拥有不同数据量和计算能力等原因,各个参与设备将模型参数更新发送给协调设备的时间不一致,若协调设备等待接收所有参与设备发送的模型参数更新,需要等待过长时间,显著增加联邦学习模型训练时间。

目前为避免协调设备一直等待,规定协调者等待接收至少N个参与者发送的模型参数更新,但是这种方式导致协调设备总是接收固定一部分参与设备发送的模型参数更新,而无法利用大部分参与设备的贡献来构建联邦学习模型,即无法很好地兼顾联邦学习模型的训练时间和模型质量。

为了解决这一问题,提出本发明联邦学习模型训练方法的各个实施例。

在本实施例中,协调设备与各参与设备可通过握手、身份认证预先建立通信连接。在一次模型参数更新过程中,首先,协调设备向各参与设备发送模型更新请求消息,并在模型更新请求消息中携带本次联邦学习模型更新(以下简称本次模型更新)的联合模型参数和等待时长。其中,协调设备可以是以点对点通信的方式,分别向每个参与设备单独发送模型更新请求消息,也可以通过组播、多播或广播的方式向各参与设备同时发送模型更新请求消息。一次模型更新即指一次联邦学习模型参数更新的过程。联合模型参数可以是联邦学习模型的参数,例如,神经网络的节点之间连接的权重参数,或者联合模型参数也可以是联邦学习模型的梯度信息,例如,神经网络梯度下降算法中的梯度信息,梯度信息可以是梯度值或压缩后的梯度值。本次模型更新的等待时长指协调设备等待参与设备发送模型参数更新的时长,可以是协调设备确定的本次模型更新过程中,从发送模型更新请求消息起,到不再接收参与设备发送的模型参数更新的时长。

需要说明的是,在联邦学习模型训练过程中的第一次模型更新时,协调设备在模型更新请求消息中携带的联合模型参数和等待时长,可以是预先设置的,即初始的联合模型参数和初始的等待时长;在第二次以及后续的模型更新时,模型更新请求消息中携带的联合模型参数和等待时长是根据上次模型更新的结果得来的。

各参与设备接收协调设备发送的模型更新请求消息,从中获取本次模型更新的联合模型参数和等待时长。

步骤S20,接收各所述参与设备发送的模型参数更新,其中,所述模型参数更新由各所述参与设备根据本地数据和所述联合模型参数对待训练模型进行本地训练得到,并且所述模型参数更新为各所述参与设备根据所述等待时长确定有时间参与本次模型更新时所发送;

协调设备在发送模型参数更新请求消息后,就进入等待状态,等待状态的持续时长即本次模型更新的等待时长,在等待状态下,接收各参与设备发送的模型参数更新。

各个参与设备从模型更新请求消息中提取到本次模型更新的联合模型参数和等待时长,根据参与设备的本地数据和联合模型参数对待训练模型进行本地训练得到模型参数更新,待训练模型是指待训练的联邦学习模型,模型参数更新是对联合模型参数的更新,如更新后的神经网络的权重参数。

各参与设备根据等待时长确定是否有时间参与本次模型更新。具体地,将协调设备发送模型更新请求消息的时间与参与设备接收到模型更新请求消息的时间之间的时间差,以及参与设备发送模型参数更新的时间与协调设备接收到模型参数更新的时间之间的时间差,称为网络时延。

在网络时延可以忽略不计的情况下,参与设备可以将预估的本地训练时长与等待时长进行比较,判断等待时长是否大于本地训练时长,若大于,则确定有时间参与本次模型更新,若不大于,则确定无时间参与本次模型更新;在需要考虑网络时延的情况下,参与设备可以将预估的网络时延以及本地训练时长与等待时长进行比较,判断等待时长是否大于网络时延+本地训练时长,若大于,则确定有时间参与本次模型更新,若不大于,则确定无时间参与本次模型更新。

在确定有时间参与本次模型更新时,参与设备将本地训练得到的模型参数更新发送给协调设备。需要说明的是,为保证数据的安全性,各参与设备可以将模型参数更新进行加密,将加密后的模型参数更新发送给协调设备;在协调设备和参与设备相互信任、防止泄露数据给第三方的场景下,加密的方式可以是传统的加密方式,如秘密分享,此时,协调设备在接收到加密后的模型参数更新时,需要先进行解密,采用解密后的模型参数更新进行后续计算;在协调设备和参与设备相互不信任的场景下,加密的方式可以是同态加密算法(Homomorphic Encryption),此时,协调设备可以直接利用加密后的模型参数更新进行后续计算,将计算后的结果返回给参与设备,参与设备先进行解密,然后在进行后续计算。需要说明的是,若参与设备对模型参数更新进行加密,则预估的本地训练时长还需加上加密的时间。

由于各个参与设备进行本地训练的时间以及网络时延各不相同,各个参与设备并不是都有时间参与本次模型更新,因此,在一次模型更新中,向协调设备发送模型参数更新的参与设备可能是参与联邦学习模型训练的所有参与设备的一部分。

步骤S30,对各所述模型参数更新进行融合处理得到最新的联合模型参数;

协调设备在接收到各参与设备发送的模型参数更新后,对接收到的各个模型参数更新进行融合处理得到最新的联合模型参数。融合处理的方式可以是将各个模型参数更新进行加权平均,得到最新的联合模型参数。各个模型参数更新对应的权重,可以预先进行设置,也可以是对于一个模型参数更新,计算其对应的参与设备所拥有的数据量,占所有发送模型参数更新的参与设备所拥有的的中数据量的比例,作为该模型参数更新对应的权重。

步骤S40,根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态,根据统计结果调整所述等待时长得到下次模型更新的等待时长;

协调设备根据接收到的各个模型参数更新,统计各参与设备对本次模型更新的参与状态。其中,参与设备对本次模型更新的参与状态可以是有时间参与状态或无时间参与状态,有时间状态即表示参与设备有时间参与本次模型更新,无时间状态即表示参与设备无时间参与本次模型更新。

协调设备统计参与状态可以是统计参与状态为有时间参与状态的参与设备的数量,或统计参与状态为无时间参与状态的参与设备的数量,或者是两者都统计。

在本实施例中,参与设备分为两种,一种是发送本地训练得到的模型参数更新的参与设备,一种是不发送模型参数更新的参与设备,发送的即表示有时间参与的,不发送的即表示无时间参与的,则协调设备可以是将接收到的模型参数更新的数量作为有时间参与本次模型更新的参与设备的数量,也可以是用所有参与设备的数量减去接收到的模型参数更新的数量,作为无时间参与本次模型更新的参与设备的数量,其中,所有的参与设备是指预先与协调设备建立通信连接的所有参与设备。

协调设备根据统计结果在本次模型更新的等待时长的基础上进行调整得到下次模型更新的等待时长。具体的调整策略可以是,当有时间参与本次模型更新的参与设备的数量较多时,减少等待时长,因为大多数的参与设备在本次等待时长内都可以完成本地训练并发送模型参数更新,则可以减少下次模型更新的等待时长,以使得下次模型更新的时间缩短,从而减少联邦学习模型的训练时间;当有时间参与本次模型更新的参与设备的数量较少时,增加等待时长,因为大多数的参与设备在本次等待时长内都来不及完成本地训练并发送模型参数更新,则可以增大下次模型更新的等待时长,以使得无时间参与本次模型更新的参与设备,可以有时间参与下次模型更新,避免总是固定的参与设备参与模型更新,从而提高联邦学习模型的模型质量。

具体地,协调设备可以是设置一个预设数量,当检测到有时间参与本次模型更新的参与设备的数量大于该预设数量时,确定有时间参与本次模型更新的参与设备的数量较多,当小于等于该预设数量时,确定有时间参与本次模型更新的参与设备的数量较少。增大等待时长的方式,可以是将等待时长加上预设的增量得到下次模型更新的等待时长,预设的增量可以是一个固定增量,每次确定需要增大等待时长时,加上该固定增量,也可以是递增的增量,如第一次加2毫秒,第二次加4毫秒。减小等待时长的方式则可类似。

此外,增大等待时长的方式还可以是,参与设备在确定无时间参与本次模型更新时,向协调设备发送无时间参与本次模型更新的消息,并在消息中携带预估的本地训练的时间,协调设备在确定要增大等待时长时,根据接收到的各参与设备发送的本地训练时长,确定下次模型更新的等待时长,具体地,可以是计算接收到的本地训练时长的平均值,将平均值作为下次模型更新的等待时长。

步骤S50,在下次模型更新的模型更新请求消息中携带所述最新的联合模型参数和所述下次模型更新的等待时长,直到检测到所述待训练模型处于收敛状态时,将所述最新的联合模型参数作为所述待训练模型的最终参数。

协调设备在得到最新的联合模型参数以及下次模型更新的等待时长后,在下次模型更新的模型更新请求消息中携带该最新的联合模型参数和下次模型更新的等待时长,并将该下次模型更新的模型更新请求消息发送给各参与设备,从而开始下一次的模型更新。循环直到协调设备检测到待训练模型处于收敛状态时,结束训练不再进行下一次模型更新,将最新的联合模型参数作为待训练模型的最终参数,即完成了联邦学习模型的训练。

协调设备检测待训练模型是否处于收敛状态的方式可以是计算最新的联合模型参数与上一次的联合模型参数的差值,若差值小于一个预设值,则确定待训练模型处于收敛状态,若不小于该预设值,则确定待训练模型处于未收敛状态;也可以是判断模型更新的次数是否达到预设次数,若达到预设次数,则确定待训练模型处于收敛状态;还可以是判断训练时长会否大于预设时长,若大于预设时长,则确定待训练模型处于收敛状态。其中,预设值,预设次数以及预设时长都可以根据需要进行设置。

本实施例中,通过协调设备向各参与设备发送模型更新请求消息,并在模型更新请求消息中携带本次联邦学习模型更新的联合模型参数和等待时长;接收各参与设备发送的模型参数更新,其中,模型参数更新由各参与设备根据本地数据和联合模型参数对待训练模型进行本地训练得到,并且模型参数更新为各参与设备根据等待时长确定有时间参与本次模型更新时所发送;对各模型参数更新进行融合处理得到最新的联合模型参数;根据各模型参数更新统计各参与设备对本次模型更新的参与状态,根据统计结果调整等待时长得到下次模型更新的等待时长;在下次模型更新的模型更新请求消息中携带最新的联合模型参数和下次模型更新的等待时长,直到检测到待训练模型处于收敛状态时,将最新的联合模型参数作为待训练模型的最终参数,实现了协调设备有效根据参与设备本地训练时长来动态调整联邦学习模型训练时间,在尽可能减少联邦学习模型训练时间的同时,尽量地提高联邦学习模型的质量,从而实现很好地兼顾联邦学习模型的训练时间和质量。

进一步地,基于上述第一实施例,提出本发明联邦学习模型训练方法第二实施例,在本发明联邦学习模型训练方法第二实施例中,所述根据各所述模型参数更新统计各所述参与设备对本次模型更新的参与状态的步骤包括:

步骤A10,对各所述模型参数更新中的时间标记进行提取;

协调设备在接收到各参与设备发送的模型参数更新后,对各模型参数更新中的时间标记进行提取。各参与设备在向协调设备发送模型参数更新时,可在模型参数更新中携带时间标记,时间标记用于标记参与设备是否有时间参与本次模型更新,例如通过一个比特的标识位来标记,1表示有时间参与本次模型更新,0表示无时间参与本次模型更新。

步骤A20,当提取到第一时间标记时,根据所述第一时间标记的数量,确定对本次模型更新的参与状态为有时间参与状态的所述参与设备的第一数量,其中,所述参与设备在发送本地训练得到的所述模型参数更新时携带所述第一时间标记。

当协调设备提取到第一时间标记时,根据第一时间标记的数量,确定对本次模型更新的参与状态为有时间状态的参与设备的第一数量。对本次模型更新的参与状态为有时间状态即表示在本次模型更新中,有时间进行本地训练并发送模型参数更新,即有时间参与本次模型更新。参与设备在发送本地训练得到的模型参数更新时,在模型参数更新中携带第一时间标记,用第一时间标记表示有时间进行本地训练和发送模型参数更新,例如,第一时间标记可以是将标识位记为1。

协调设备从模型参数更新中提取到第一时间标记时,说明该模型参数更新对应的参与设备有时间参与本次模型更新,协调设备统计第一时间标记的数量,根据第一时间标记的数量确定有时间参与本次模型更新的参与设备的第一数量。具体地,可以是以第一时间标记的数量作为有时间参与本次模型的参与设备的第一数量;在考虑参与设备发送了本地训练得到的模型参数更新,但是由于网络原因协调设备没有接收到的场景,协调设备还可以统计未接收到模型参数更新的参与设备的数量,将未接收到的数量乘以预设比例(可根据具体情况进行预先设置)进行折算,估计实际发送了模型参数更新但协调设备未接收到的参与设备的数量,在此基础上加上第一时间标记的数量,得到有时间参与本次模型更新的参与设备的第一数量。

在本实施例中,通过参与设备在发送本地训练得到的模型参数更新时,在模型参数更新中携带用于表示有时间参与本次模型更新的第一时间标记,方便协调设备根据第一时间标记确定对本次模型更新的参与状态为有时间状态的参与设备的第一数量,使得协调设备能够准确地判断有时间进行本地训练和发送模型参数更新的参与设备的第一数量,从而根据第一数量进行下次模型更新的等待时长的确定。

进一步地,步骤A10之后,还包括:

步骤A30,当提取到第二时间标记时,根据所述第二时间标记的数量,确定对本次模型更新的参与状态为无时间参与状态的所述参与设备的第二数量,其中,所述参与设备在根据所述等待时长确定无时间参与本次模型更新,但有时间发送模型参数更新,且最近连续未发送模型参数更新的次数大于预设次数时,将所述联合模型参数与上次模型更新时进行本地训练得到的前模型参数更新进行本地融合,得到所述模型参数更新,并在发送所述模型参数更新时携带所述第二时间标记。

协调设备对各模型参数更新中的时间标记进行提取,当提取到第二时间标记时,可根据第二时间标记的数量确定对本次模型更新的参与状态为无时间参与状态的参与设备的第二数量。对本次模型更新的参与状态为无时间状态即表示在本次模型更新中,没有时间完成本地训练并发送模型参数更新,即无时间参与本次模型更新。

参与设备在从模型更新请求消息中提取到等待时长时,可根据等待时长确定是否有时间进行本地训练并发送模型参数更新,即确定是否有时间参与本次模型更新。如上述实施例所述,参与设备确定有时间参与本次模型更新时,发送本地训练得到的模型参数更新,并携带第一时间标记。若参与设备确定无时间参与本次模型更新,则判断是否有时间发送模型参数更新,具体地,可判断预估的网络时延是否小于本次模型更新的等待时长,若小于,则确定有时间发送模型参数更新,若不小于,则确定无时间发送模型参数更新。在确定无时间发送模型参数更新时,参与设备不发送模型参数更新,但仍进行本地训练,并将训练得到的模型参数更新进行保存,以备下次模型更新时使用。

在确定有时间发送模型参数更新时,参与设备获取最近连续未发送模型参数更新的次数,判断是否大于预设次数,若大于预设次数,则将上次模型更新时进行本地训练得到的前模型参数更新与接收到的联合模型参数进行本地融合,得到本次的模型参数更新,并携带第二时间标记发送给协调设备,第二时间标记用于表示无时间参与本次模型更新,例如,第二时间标记可以是将标识位记为0。

其中,参与设备中记录最近连续未发送模型参数更新的次数,这里未发送模型参数更新是指未发送本地训练得到的模型参数更新,也未发送本地融合得到的模型参数更新。预设次数可根据具体需要进行设置,目的是为防止参与设备连续多次不发送模型参数更新,如设置为1次,以防止参与设备在上次没发送模型参数更新的情况下,本次也不发送模型参数更新。本地融合的方式可以是将前模型参数更新X1和联合模型参数X2进行加权平均,权重可以是根据具体情况进行设置,如前模型参数更新的权重可以是该参与设备所拥有的数据量,占参与联邦学习模型训练的所有参与设备拥有的数据量的比例a,联合模型参数的权重可以是(1-a),则本地融合得到的模型参数更新为X1*a+X2(1-a)。需要说明的是,本地融合的方式得到模型参数更新的时间极短,可以忽略不计。

参与设备在确定发送本地融合得到的模型参数更新时,仍然进行本地训练得到模型参数更新并保存,以备下次模型更新时使用。

需要说明的是,在本实施例中,一次模型更新过程中,参与设备分为三种,第一种是发送本地训练得到的模型参数更新的参与设备,第二种是发送本地融合得到的模型参数更新的参与设备,第三种是未发送模型参数更新的参与设备。其中,第一种是有时间参与本次模型更新的参与设备,第二种和第三种是无时间参与本次模型更新的参与设备。如上述实施例所述,协调设备可根据第一时间标记的数量确定第一种参与设备的数量,即对本次模型更新的参与状态为有时间参与状态的参与设备的第一数量。

在本实施例中,协调设备可用参与设备的总数减去接收到的模型参数更新的数量,即得到第三种参与设备的数量,并统计第二时间标记的数量作为第二种参与设备的数量,将第二种和第一种参与设备的数量相加,即得到无时间参与本次模型更新的参与设备的数量,即得到对本次模型更新的参与状态为无时间参与状态的参与设备的第二数量。需要说明的是,若上述第一数量的确定过程采用的折算的方式,则第二数量的确定同样采用折算的方式。

在本实施例中,通过参与设备在确定无时间参与本次模型更新,但有时间发送模型参数更新,并且上几次也未发送模型参数更新时,进行本地融合得到模型参数更新,携带第二时间标记发送给协调设备,可避免参与设备因多次未发送模型参数更新而被协调设备视为掉线、不接收该参与设备发送的数据,也避免参与设备因掉线重新进行身份认证而浪费参与设备和协调设备的时间,还可通过将预设次数设置为1次,以避免参与设备连续两次不发送模型参数更新的情况。并且,协调设备可根据模型参数更新中的第二时间标记区分本地融合得到的模型参数更新和本地训练得到的模型参数更新,从而准确地确定有时间参与本次模型更新的参与设备的第一数量,以及无时间参与本次模型更新的参与设备的第二数量,从而根据第一数量或第二数量进行下次模型更新的等待时长的确定。

进一步地,基于上述第二实施例,提出本发明联邦学习模型训练方法第三实施例,在本发明联邦学习模型训练方法第三实施例中,所述根据统计结果调整所述等待时长得到下次模型更新的等待时长的步骤包括:

步骤B10,当所述统计结果是所述第一数量时,判断所述第一数量是否小于第一预设数量;

当协调设备统计的是对本次模型更新的参与状态为有时间参与状态的参与设备的第一数量时,判断第一数量是否小于第一预设数量。其中,第一预设数量可根据具体需要进行设置,以使得第一数量小于该第一预设数量时,表示有时间参与本次模型更新的参与设备数量较少,也即大多数参与设备在本次模型更新的等待时长内都没时间进行本地训练并发送模型参数更新。

步骤B20,若所述第一数量小于所述第一预设数量,则增大所述等待时长得到下次模型更新的等待时长;

若协调设备确定第一数量小于第一预设数量,则增大本次模型更新的等待时长,得到下次模型更新的等待时长。其中,在本次模型更新的等待时长上进行增加,增量可以是预设的固定增量,如增加2毫秒,也可以是预设的递增的增量,如第一次确定需要增大等待时长时,增加2毫秒,第二次确定需要增大等待时长时,增加4毫秒。第一数量小于第一预设数量时,说明大多数参与设备在本次模型更新的等待时长内都没时间进行本地训练并发送模型参数更新,因此,为使得协调设备能够利用大多数参与设备本地数据对联邦学习模型训练的贡献,提高联邦学习模型的模型质量,协调设备可以增加下次模型更新的等待时长,使得下次模型更新时,更多的参与设备有时间进行本地训练并发送模型参数更新。

步骤B30,若所述第一数量不小于所述第一预设数量,则判断所述第一数量是否大于第二预设数量,其中,所述第一预设数量小于所述第二预设数量;

若协调设备确定第一数量不小于第一预设数量,则判断第一数量是否大于第二预设数量。其中,第二预设数量也可以根据具体需要进行设置,但是第二预设数量应当设置的大于第一预设数量,以使得第一数量大于第二预设数量时,表示大多数的参与设备在本次模型更新的等待时长内,都有时间完成本地训练并发送模型参数更新。

步骤B40,若所述第一数量大于所述第二预设数量,则减小所述等待时长得到下次模型更新的等待时长。

若协调设备确定第一数量大于第二预设数量,则减小本次模型更新的等待时长,得到下次模型更新的等待时长。其中,在本次模型更新的等待时长上进行减小,和上述增加等待时长类似,减少量可以是预设固定的减少量,也可以是预设的递增的减少量。第一数量大于第二预设数量时,说明大多数参与设备在本次模型更新的等待时长内都有时间进行本地训练并发送模型参数更新,此时,协调设备已经能够利用大多数参与设备本地数据对联邦学习模型训练的贡献,在此基础上,协调设备可以试探性地减少等待时长,以确定是否减少等待时长时,大多数的参与设备仍然能够有时间进行本地训练并发送模型参数更新,从而在保证联邦学习模型的模型质量的同时,尽可能地缩短联邦学习模型的训练时间,提高训练效率,从而实现兼顾联邦学习模型的模型质量和训练时间。由于是试探性地减少等待时长,因此减小的优选方式可以是按照固定的减少量进行减少,并且减少量应当较小。

若协调设备确定第一数量不小于第一预设数量且不大于第二预设数量,则可以保持等待时长不变。需要说明的是,在一种实施例中,第一预设数量也可以与第二预设数量相等。

进一步地,当协调设备统计的是对本次模型更新的参与状态为无时间参与状态的参与设备的第二数量时,按照与上述B10~B40步骤类似的调整策略,协调设备也可以将第二数量与预设的数量进行比较,以使得当大多数参与设备无时间参与本次模型更新时,增加等待时长,当无时间参与本次模型更新的参与设备较少时,减少等待时长,从而实现上述兼顾联邦学习模型的模型质量和训练时间的效果。

进一步地,在一种实施例中,由于在联邦学习模型训练过程的开始阶段,联合模型参数是随机初始化的,参与设备本地训练的时间可能都比较长,所以协调设备可将等待时长取较大值;而在联邦学习模型训练过程的后期阶段,待训练模型接近收敛,联合模型参数改变不会太大,参与设备本地训练的时间可能都比较短,所以协调设备可将等待时长取较小值。

进一步地,在一种实施例中,若协调设备检测到待训练模型处于接近收敛状态,但连续几次模型参数更新中都未接收到一些参与设备发送的模型参数更新,则协调设备可以判断该参与设备的本地数据的数据量是否大于预设数据量,若大于,则可以增大等待时长,以利用数据量较大的该参与设备对联邦学习模型训练的贡献,若不大于预设数据量,则可以不增加等待时长,即放弃该参与设备,以保证联邦学习模型的训练效率。

进一步地,基于上述第一、第二和第三实施例,提出本发明联邦学习模型训练方法第四实施例,在本实施例中,所述联邦学习模型训练方法应用于参与设备,所述参与设备与协调设备通信连接,所述联邦学习模型训练方法包括以下步骤:

步骤C10,接收所述协调设备发送的模型更新请求消息,从所述模型更新请求消息中获取本次联邦学习模型更新的联合模型参数和等待时长;

在本实施例中,协调设备与各参与设备可通过握手、身份认证预先建立了通信连接。在一次模型参数更新过程中,首先,协调设备向各参与设备发送模型更新请求消息,并在模型更新请求消息中携带本次联邦学习模型更新(以下简称本次模型更新)的联合模型参数和等待时长。其中,协调设备可以是以点对点通信的方式,分别向每个参与设备单独发送模型更新请求消息,也可以通过组播、多播或广播的方式向各参与设备同时发送模型更新请求消息。一次模型更新即指一次联邦学习模型参数更新的过程。联合模型参数可以是联邦学习模型的参数,例如,神经网络的节点之间连接的权重参数,或者联合模型参数也可以是联邦学习模型的梯度信息,例如,神经网络梯度下降算法中的梯度信息,梯度信息可以是梯度值或压缩后的梯度值。本次模型更新的等待时长指协调设备等待参与设备发送模型参数更新的时长,可以是协调设备确定的本次模型更新过程中,从发送模型更新请求消息起,到不再接收参与设备发送的模型参数更新的时长。

需要说明的是,在联邦学习模型训练过程中的第一次模型更新时,协调设备在模型更新请求消息中携带的联合模型参数和等待时长,可以是预先设置的,即初始的联合模型参数和初始的等待时长;在第二次以及后续的模型更新时,模型更新请求消息中携带的联合模型参数和等待时长是根据上次模型更新的结果得来的。

参与设备接收协调设备发送的模型更新请求消息,并从中获取本次模型更新的联合模型参数和等待时长。

步骤C20,根据所述参与设备的本地数据和所述联合模型参数对待训练模型进行本地训练,得到第一模型参数更新;

协调设备在发送模型参数更新请求消息后,就进入等待状态,等待状态的持续时长即本次模型更新的等待时长,在等待状态下,接收各参与设备发送的模型参数更新。

参与设备从模型更新请求消息中提取到本次模型更新的联合模型参数和等待时长,根据参与设备的本地数据和联合模型参数对待训练模型进行本地训练得到第一模型参数更新,待训练模型是指待训练的联邦学习模型,第一模型参数更新是对联合模型参数的更新,如更新后的神经网络的权重参数。

步骤C30,根据所述等待时长确定是否有时间参与本次模型更新;

参与设备根据等待时长确定是否有时间参与本次模型更新。具体地,将协调设备发送模型更新请求消息的时间与参与设备接收到模型更新请求消息的时间之间的时间差,以及参与设备发送模型参数更新的时间与协调设备接收到模型参数更新的时间之间的时间差,称为网络时延。在网络时延可以忽略不计的情况下,参与设备可以将预估的本地训练时长与等待时长进行比较,判断等待时长是否大于本地训练时长,若大于,则确定有时间参与本次模型更新,若不大于,则确定无时间参与本次模型更新;在需要考虑网络时延的情况下,参与设备可以将预估的网络时延以及本地训练时长与等待时长进行比较,判断等待时长是否大于网络时延+本地训练时长,若大于,则确定有时间参与本次模型更新,若不大于,则确定无时间参与本次模型更新。

需要说明的是,参与设备中可以预先设置一个网络时延,该网络时延可以是该参与设备统计平时与协调设备之间发送数据与接收数据的时间差,根据计算多次时间差的平均值的方式估计的网络时延。参与设备在第一次模型更新时,可以计算本地训练需要的算法的步数,根据步数估计本地训练时长,作为预估本地训练时长,在后续的模型更新时,即可根据上次模型更新时进行本地训练实际花费的时间,估算本次模型更新进行本地训练的时间,具体地,根据待训练模型逐渐收敛,各参与设备本地训练时长逐渐减少的规律,可以在上次进行本地训练实际花费的时间上减去一个时间量,得到估计的本次模型更新的本地训练时长。

步骤C40,若确定有时间参与本次模型更新,则将所述第一模型参数更新发送给所述协调设备,或将携带有第一时间标记的所述第一模型参数更新发送给所述协调设备。

若确定有时间参与本次模型更新,则参与设备将本地训练得到的第一模型参数更新发送给协调设备,或者将携带有第一时间标记的第一模型参数更新发送给协调设备。其中,第一时间标记用于表示参与设备有时间参与本次模型更新,可以通过一个比特的标识位来标识,如将标识位设为1。

在本实施例中,当确定无时间参与本次模型更新时,参与设备可以不发送模型参数更新给协调设备,不参与本次模型更新。

进一步地,将所述第一模型参数更新发送给所述协调设备的步骤可包括:

步骤a,将所述第一模型参数更新按照预设加密算法进行加密,并将加密后的所述第一模型参数发送给所述协调设备。

为保证数据的安全性,参与设备可以将第一模型参数更新按照预设加密算法进行加密,将加密后的第一模型参数更新发送给协调设备;在协调设备和参与设备相互信任、防止泄露数据给第三方的场景下,预设加密算法可以是传统的加密算法,如秘密分享,此时,协调设备在接收到加密后的第一模型参数更新时,需要先进行解密,采用解密后的第一模型参数更新进行后续计算;在协调设备和参与设备相互不信任的场景下,预设加密算法可以是同态加密算法(Homomorphic Encryption),此时,协调设备可以直接利用加密后的第一模型参数更新进行后续计算,将计算后的结果返回给参与设备,参与设备先进行解密,然后再进行后续计算。需要说明的是,若参与设备对第一模型参数更新进行加密,则预估的本地训练时长还需加上加密的时间。

由于各个参与设备进行本地训练的时间以及网络时延各不相同,各个参与设备并不是都有时间参与本次模型更新,因此,在一次模型更新中,向协调设备发送第一模型参数更新的参与设备可能是参与联邦学习模型训练的所有参与设备的一部分。

协调设备在接收到各参与设备发送的模型参数更新(这里指第一模型参数更新)后,对接收到的各个模型参数更新进行融合处理得到最新的联合模型参数。融合处理的方式可以是将各个模型参数更新进行加权平均得到最新的联合模型参数。各个模型参数更新对应的权重,可以预先进行设置,也可以是对于一个模型参数更新,计算其对应的参与设备所拥有的数据量,占所有发送模型参数更新的参与设备所拥有的的中数据量的比例,作为该模型参数更新对应的权重。

协调设备根据接收到的各个模型参数更新(这里指第一模型参数更新),统计各参与设备对本次模型更新的参与状态。其中,参与设备对本次模型更新的参与状态可以是有时间参与状态或无时间参与状态,有时间状态即表示参与设备有时间参与本次模型更新,无时间状态即表示参与设备无时间参与本次模型更新。协调设备统计参与状态可以是统计参与状态为有时间参与状态的参与设备的数量,或统计参与状态为无时间参与状态的参与设备的数量,或者是两者都统计。

在本实施例中,参与设备分为发送本地训练得到的第一模型参数更新,以及不发送模型参数更新的两种参与设备,发送的即表示有时间参与的,不发送的即表示无时间参与的,则协调设备可以是将接收到的第一模型参数更新的数量作为有时间参与本次模型更新的参与设备的数量,也可以是用所有参与设备的数量减去接收到的模型参数更新的数量,作为无时间参与本次模型更新的参与设备的数量,其中,所有的参与设备是指预先与协调设备建立通信连接的所有参与设备。当参与设备发送的是携带第一时间标记的第一模型参数更新时,协调设备可以是将第一时间标记的数量作为有时间参与本次模型更新的参与设备的数量。

协调设备根据统计结果在本次模型更新的等待时长的基础上进行调整得到下次模型更新的等待时长。具体的调整策略可以是,当有时间参与本次模型更新的参与设备的数量较多时,减少等待时长,因为大多数的参与设备在本次等待时长内都可以完成本地训练并发送模型参数更新,则可以减少下次模型更新的等待时长,以使得下次模型更新的时间缩短,从而减少联邦学习模型的训练时间;当有时间参与本次模型更新的参与设备的数量较少时,增加等待时长,因为大多数的参与设备在本次等待时长内都来不及完成本地训练并发送模型参数更新,则可以增大下次模型更新的等待时长,以使得无时间参与本次模型更新的参与设备,可以有时间参与下次模型更新,避免总是固定的参与设备参与模型更新,从而提高联邦学习模型的模型质量。

具体地,协调设备可以是设置一个预设数量,当检测到有时间参与本次模型更新的参与设备的数量大于该预设数量时,确定有时间参与本次模型更新的参与设备的数量较多,当小于等于该预设数量时,确定有时间参与本次模型更新的参与设备的数量较少。增大等待时长的方式,可以是将等待时长加上预设的增量得到下次模型更新的等待时长,预设的增量可以是一个固定增量,每次确定需要增大等待时长时,加上该固定增量,也可以是递增的增量,如第一次加2毫秒,第二次加4毫秒。减小等待时长的方式则可类似。

协调设备在得到最新的联合模型参数以及下次模型更新的等待时长后,在下次模型更新的模型更新请求消息中携带该最新的联合模型参数和下次模型更新的等待时长,并将该下次模型更新的模型更新请求消息发送给各参与设备,从而开始下一次的模型更新。循环直到协调设备检测到待训练模型处于收敛状态时,结束训练不再进行下一次模型更新,将最新的联合模型参数作为待训练模型的最终参数,即完成了联邦学习模型的训练。

协调设备检测待训练模型是否处于收敛状态的方式可以是计算最新的联合模型参数与上一次的联合模型参数的差值,若差值小于一个预设值,则确定待训练模型处于收敛状态,若不小于该预设值,则确定待训练模型处于未收敛状态;也可以是判断模型更新的次数是否达到预设次数,若达到预设次数,则确定待训练模型处于收敛状态;还可以是判断训练时长会否大于预设时长,若大于预设时长,则确定待训练模型处于收敛状态。其中,预设值,预设次数以及预设时长都可以根据需要进行设置。

本实施例中,通过参与设备接收协调设备发送的模型更新请求消息,并获取本次模型更新的联合模型参数和等待时长;根据本地数据和联合模型参数对待训练模型进行本地训练得到第一模型参数更新;根据等待时长确定是否有时间参与本次模型更新;若确定有时间参与本次模型更新,则发送第一模型参数更新给协调设备,或将携带有第一时间标记的第一模型参数更新发送给协调设备,以供协调设备根据第一模型参数更新得到最新的联合模型参数,并根据第一模型参数统计各参与设备对本次模型更新的参与状态,根据统计结果确定下次模型更新的等待时长,并在下次模型更新请求消息中携带最新的联合模型参数和下次模型更新的等待时长,直到检测到待训练模型处于收敛状态时,将最新的联合模型参数作为待训练模型的最终参数,实现了协调设备有效根据参与设备本地训练时长来动态调整联邦学习模型训练时间,在尽可能减少联邦学习模型训练时间的同时,尽量地提高联邦学习模型的质量,从而实现很好地兼顾联邦学习模型的训练时间和质量。

进一步地,基于上述第四实施例,提出本发明联邦学习模型训练方法第五实施例,在本实施例中,所述模型参数更新请求中还携带消息发送时间和本次模型更新的更新序号,所述步骤C30包括:

步骤C301,从所述模型更新请求消息中获取所述消息发送时间和所述更新序号;

协调设备在发送的模型更新请求消息中还可携带消息发送时间和本次模型更新的更新序号。其中,消息发送时间是指协调设备发送模型更新请求消息的发送时间,更新序号是指本次模型更新的序号,标识本次模型更新是第几次模型更新。协调设备在模型更新请求中携带消息发送时间和更新序号,用以帮助参与设备确定本次模型更新的网络时延。参与设备从模型更新请求消息中获取消息发送时间和更新序号。

步骤C302,根据所述消息发送时间、所述更新序号和接收到所述模型更新请求的接收时间确定网络时延;

参与设备记录接收到模型更新请求消息的接收时间,根据消息发送时间、更新序号和接收时间确定本次模型更新的网络时延。具体地,参与设备记录接收到更新序号为n的模型更新请求消息的接收时间t2,并获取到消息发送时间t1,则参与设备计算t2-t1,即得到模型更新请求的发送时间与接收时间之间的时间差,由于在数十毫秒内一般网络通信时延是对称的,因此可估计参与设备发送模型参数更新的时间与协调设备接收到模型参数更新的时间之间的时间差也为t2-t1,则得到第n次模型更新的网络时延为2*(t2-t1)。

步骤C303,根据所述等待时长、预估本地训练时长和所述网络时延判断是否有时间进行本地训练并发送模型参数更新;

参与设备在确定本次模型更新的网络时延后,根据等待时长、预估本地训练时长和网络时延判断是否有时间进行本地训练和发送模型参数更新,即判断是否有时间进行本地训练并有时间将本地训练得到的第一模型参数更新发送给协调设备。具体地,参与设备可比较本地训练时长+网络时延是否小于等待时长,若小于等待时长,则确定有时间进行本地训练并发送模型参数更新,若不大于等待时长,则确定无时间进行本地训练并发送模型参数更新。如图3所示,如第n次模型更新的等待时长为w,预先估计能够在t3时刻完成本地训练,也即预估本地训练时长为t3-t2,则能够计算得出参与设备发送的模型参数更新能够在t4=t2-t1+t3时刻到达协调设备,则参与设备可以比较t4-t1+μ和w,其中,μ表示网络不对称性带来的网络延时不确定性,一般为常数,例如,2毫秒。也可以取μ的值为零,即也可以不考虑通信时延的不对称性。若t4-t1+μ<w,则确定有时间进行本地训练并发送模型参数更新,若t4-t1+μ≥w,则确定无时间进行本地训练并发送模型参数更新。

步骤C304,若确定有时间进行本地训练并发送模型参数更新,则确定有时间参与本次模型更新;

若参与设备确定有时间进行本地训练并发送模型参数更新,则确定有时间参与本次模型更新。

步骤C305,若确定无时间进行本地训练并发送模型参数更新,则确定无时间参与本次模型更新。

若参与设备确定无时间进行本地训练并发送模型参数更新,则确定无时间参与本次模型更新。

在本实施例中,通过协调设备在模型更新请求消息中携带消息发送时间和更新序号,使得参与设备能够更准确地估计本次模型更新的网络时延,从而准确地判断是否有时间参与本次模型更新,进而使得协调设备能够准确地调整下次模型更新的等待时长。

进一步地,步骤C305之后,还包括:

步骤C50,根据所述等待时长和所述网络时延判断是否有时间发送模型参数更新;

若参与设备确定无时间参与本次模型更新,则可根据等待时长和上述确定本次模型更新的网络时延判断是否有时间发送模型参数更新。具体地,参与设备可判断本次模型更新的网络时延是否小于等待时长,若小于,则确定有时间发送模型参数更新,若不小于,则确定无时间发送模型参数更新。在确定无时间发送模型参数更新时,参与设备不发送模型参数更新,但仍进行本地训练,并将训练得到的模型参数更新进行保存,以备下次模型更新时使用。如沿用上述例子,参与设备可判断2*(t2-t1)+β是否小于w,其中,β是参与设备进行加权平均操作所需的时间,β可以进一步包括参与设备对模型参数更新进行加密所需时间,例如,执行同态加密所需的时间,当2*(t2-t1)+β<w时,参与设备确定有时间发送模型参数更新,当2*(t2-t1)+β≥w时,参与设备确定无时间发送模型参数更新。

步骤C60,若确定有时间发送模型参数更新,则获取最近连续未发送模型参数更新的次数;

若确定有时间发送模型参数更新,则参与设备获取最近连续未发送模型参数更新的次数,判断是否大于预设次数。其中,参与设备中记录最近连续未发送模型参数更新的次数,这里未发送模型参数更新是指未发送本地训练得到的模型参数更新,也未发送本地融合得到的模型参数更新。

预设次数可根据具体需要进行设置,目的是为防止参与设备连续多次不发送模型参数更新,如设置为1次,以防止参与设备在上次没发送模型参数更新的情况下,本次也不发送模型参数更新。

步骤C70,当检测到所述次数大于预设次数时,将所述联合模型参数与上次模型更新时进行本地训练得到的前模型参数更新进行本地融合,得到第二模型参数更新;

若大于预设次数,则将上次模型更新时进行本地训练得到的前模型参数更新与接收到的联合模型参数进行本地融合,得到第二模型参数更新。需要说明的是,在本实施例中,将参与设备进行本地融合得到的模型参数更新称为第二模型参数更新,以区别与上述实施例中参与设备进行本地融合得到的第一模型参数更新,可以理解的时,第一模型参数更新和第二模型参数更新在仅仅是在来源上不同。

本地融合的方式可以是将前模型参数更新X1和联合模型参数X2进行加权平均,权重可以是根据具体情况进行设置,如前模型参数更新的权重可以是该参与设备所拥有的数据量,占参与联邦学习模型训练的所有参与设备拥有的数据量的比例a,联合模型参数的权重可以是(1-a),则本地融合得到的模型参数更新为X1*a+X2(1-a)。需要说明的是,本地融合的方式得到模型参数更新的时间极短,可以忽略不计,忽略不计的情况下,上述β的取值可以为0。

步骤C80,将携带第二时间标记的所述第二模型参数发送给所述协调设备,或将携带所述第二时间标记的所述第二模型参数按照预设加密算法进行加密后发送给所述协调设备。

参与设备将携带第二时间标记的第二模型参数发送给协调设备,或者将携带第二时间标记的第二模型参数按照预设加密算法进行加密后发送给协调设备。第二时间标记用于表示无时间参与本次模型更新,例如,第二时间标记可以是将标识位记为0。预设加密算法可以是同态加密算法,或者其他传统的加密算法。

若参与设备确定无时间发送模型参数更新,则可以不发送第一模型参数更新也不发送第二模型参数更新,但参与设备仍然进行本地训练,并将本地训练得到的模型参数更新进行保存以备下次模型更新时使用。

当参与设备向协调设备发送第二模型参数更新的场景下,协调设备接收到的模型参数更新将有第一模型参数更新和第二模型参数更新两种,在协调设备对模型参数更新进行融合处理时,协调设备可不区分两种模型参数更新,对接收到的所有的模型参数更新进行融合处理,融合处理的方式与上述实施例中对第一模型更新参数进行融合处理的过程相同。

在协调设备根据模型参数更新统计各参与设备对本次模型更新的参与状态时,由于第一模型参数更新是参与设备有时间参与本次模型更新时发送的,第二模型参数更新是参与设备无时间参与本次模型更新时发送的,因此协调设备需要区分第一模型参数更新和第二模型参数更新。区分的方式可以是:对接收到的模型参数更新中的时间标记进行提取,若提取到第一时间标记,则该模型参数更新是第一模型参数更新,若提取到第二时间标记,则该模型参数更新是第二模型参数更新。协调设备根据第一时间标记数量,确定对本次模型更新的参与状态为有时间状态的参与设备的第一数量,根据第二时间标记的数量,确定对本次模型更新的参与状态为无时间参与状态的参与设备的第二数量。根据第一数量或第二数量对本次模型更新的等待时长进行调整,得到下次模型更新的等待时长。

在本实施例中,通过参与设备在确定无时间参与本次模型更新,但有时间发送模型参数更新,并且上几次也未发送模型参数更新时,进行本地融合得到第二模型参数更新,携带第二时间标记发送给协调设备,可避免参与设备因多次未发送模型参数更新而被协调设备视为掉线、不接收该参与设备发送的数据,也避免参与设备因掉线重新进行身份认证而浪费参与设备和协调设备的时间,还可通过将预设次数设置为1次,以避免参与设备连续两次不发送模型参数更新的情况。

进一步地,在一种实施例中,所述若确定有时间参与本次模型更新,则将所述第一模型参数更新发送给所述协调设备的步骤可包括:

步骤b,若确定有时间参与本次模型更新,则判断当前是否满足预设发送条件;

若参与设备确定有时间参与本次模型更新,则判断当前是否满足预设发送条件。其中,预设发送条件可以是预先进行设置,如参与设备的电量大于预设电量,以使得参与设备在电量较少时,不发送第一模型参数更新,节省参与设备的电量。也可以是获取一个0到1范围的随机数,比较随机数是否大于预设概率,如0.5,若大于,则确定满足预设发送条件,若不大于,则确定不满足预设发送条件,通过此种方式,可使得参与设备不必每次模型更新时都发送模型参数更新,从而降低参与设备和协调设备的负担。

步骤c,当满足预设发送条件时,将所述第一模型参数更新发送给所述协调设备。

当参与设备确定满足预设发送条件时,将第一模型参数更新发送给协调设备。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1