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

改善边缘设备利用效率的异步联邦学习方法、装置及介质与流程

2022-02-20 01:16:09 来源:中国专利 TAG:


1.本发明涉及机器学习中的异步联邦学习技术领域,具体涉及一种改善边缘设备利用效率的异步联邦学习方法、装置及介质。


背景技术:

2.近年来,各互联网公司将用户的敏感数据匿名上传到公司中央服务器上,使用这些数据训练数学模型并用于向其客户提供个性化服务或帮助公司做出商业决策。然而,随着数据源和数据量的增加,借助信息集成和大数据等工具,要想实现敏感信息完全匿名化是不可能的。2006年发生的美国在线公司搜索数据泄露事件引发了人们对个人隐私数据泄露的普遍担忧和对数据所有权的激烈探讨。近年来,立法者和监管者在法律层面上对用户数据采集、管理和使用提出了严格的约束和控制要求。在这种形势下,广泛收集用户信息是一项具有挑战性的任务,因为,不仅数据所有者将拼命阻止其敏感数据(例如:金融交易、医疗数据)被无限使用而且还涉及到了法律风险。然而,训练各类模型,实现各类人工智能应用需要有海量数据支撑,如果不能解决用户隐私和大数据之间的矛盾,人们将会迎来又一场人工智能的寒冬。
3.为了应对上述挑战,联邦学习的概念应运而生。联邦学习可以使多个边缘设备协同训练一个全局模型,与此同时,用户的敏感数据无需上传至服务器。谷歌公司率先提出了联邦学习的概念,同时提出了一种基于同步协议联邦优化方法:在每个全局迭代中,服务器选择一部分边缘设备参与训练,并且设置同步屏障以等待所有设备完成其梯度计算。然而,由于设备的异构性和网络的不稳定性,不可避免地会出现掉队和丢失链接的现象,若服务器等待所有设备完成梯度计算并上传局部模型,是对计算资源的极大浪费。
4.最近提出的异步联邦学习优化方法在一定程度上解决了上述问题,异步联邦学习消除了同步屏障,服务器不必等待滞后设备。如公开号为cn111708640a的中国发明专利公开了一种面向边缘计算的联邦学习方法和系统;
5.在该专利中公开了加权平均的方法更新全局模型。然而,在服务器端,由于多线程在全局模型上存在数据竞争,采用该方法更新全局模型的异步联邦优化算法无法在中央服务器上高效并发运行,降低了全局模型的训练速度,边缘设备利用效率不高。
6.此外,在边缘设备端,还存在边缘设备利用率不高的问题,首先,边缘设备必须满足一些严苛的条件才能开始模型训练,例如:移动手机应处于充电、待机状态,并可以通过无线网络访问互联网等,目的是让训练过程不会打扰手机用户正常使用手机;其次,边缘设备所处的网络环境复杂,边缘设备和服务器丢失连接的情况时有发生。以上两种情形都会使模型训练过程被迫终止,促使设备离线而进入空闲状态,进一步降低了设备的利用率,导致服务器端的并发性能无法充分发挥。本发明旨在改善服务器端多线程的并发性能、提升边缘设备利用率的同时,缓解边缘设备由于和服务器丢失连接所导致的对全局模型泛化性能的影响。


技术实现要素:

7.针对上述问题,本发明提供了一种改善边缘设备利用效率的异步联邦学习方法、装置及介质,其可以减轻服务器中多个线程在全局模型上的数据竞争,改善服务器的并发性能,提高边缘设备利用效率。
8.其技术方案是这样的:一种改善边缘设备利用效率的异步联邦学习方法,其特征在于,包括以下步骤:
9.步骤1:判断边缘设备是否满足模型数据传输条件,满足模型数据传输条件的边缘设备主动向服务器请求全局模型;
10.步骤2:服务器检测事件对象状态,若事件对象状态为假,则接受下载请求,服务器通过分发器组件将全局模型发送给该边缘设备;
11.步骤3:判断边缘设备当前是否满足模型训练条件,满足条件的边缘设备通过本地数据训练全局模型得到局部模型;
12.步骤4:服务器的收集器组件将边缘设备推送的局部模型入队至服务器的队列中;
13.步骤5:服务器的更新器组件从服务器的队列中弹出一个局部模型,并更新局部模型的出队计数值,将局部模型与影子模型执行聚合操作,并将聚合得到的模型赋值给影子模型;
14.步骤6:判断出队计数值是否到达设定值,若到达,则将事件对象的状态置为真,将影子模型的值赋值给全局模型,而后,再将事件对象的状态置为假,同时更新全局迭代次数;
15.步骤7:判断全局迭代次数是否达到设定的全局总迭代次数,若达到,则结束,输出迭代更新后的全局模型;否则,跳转至步骤1,直到达到设定的全局总迭代次数。
16.进一步的,还包括步骤8:
17.对于不满足模型数据传输条件的边缘设备,查询是否有全局模型下载记录,若无,则返回步骤1;若有,则执行步骤3。
18.进一步的,在步骤1中,具体包括以下步骤:
19.步骤101:边缘设备da判断当前是否满足模型数据传输条件,若不满足,则重复判断当前是否满足模型数据传输条件,模型数据传输条件是指:边缘设备是否有效接入各类无线或有线等除按流量计费的或计费不敏感的国际互联网并可以连接至服务器,且边缘设备处于待机和充电的状态;
20.若满足模型数据传输条件,判断建立的局部模型缓冲区是否为空,若为空,则执行步骤102,若为非空,将局部模型缓冲区内的所有局部模型全部推送给服务器,清空局部模型缓冲区;
21.步骤102:边缘设备da向服务器的分发器组件请求下载全局模型gmi,i为第i次算法全局迭代次数,i=1,2,

,i,i为全局迭代总次数;
22.进一步的,步骤2具体包括以下步骤:
23.步骤201:服务器监听是否有来自边缘设备da的全局模型下载请求,若没有请求,则继续重复监听;
24.步骤202:服务器通过事件对象进行状态监控,如有请求,判断事件对象的状态是否为假,若为真,则拒绝边缘设备da的全局模型下载请求,返回步骤102;
25.步骤203:若事件对象的状态为假,服务器的分发器组件接受边缘设备da的全局模型下载请求,并将全局模型gmi发送给边缘设备da;
26.步骤204:边缘设备da下载全局模型,记录下载全局模型gmi时的全局迭代次数为τ,采用最近一次下载的全局模型,创建全局模型gmi的副本gm
τ


27.进一步的,步骤3具体包括以下步骤:
28.步骤301:边缘设备da判断当前是否满足模型训练条件,若不满足,则返回至步骤1,所述模型训练条件是指:边缘设备处于待机与充电状态且边缘设备da的局部模型缓冲区为非满;
29.步骤302:若满足模型训练条件,边缘设备da判断当前训练本地迭代次数x是否达到本地训练总迭代次数x;若没有达到本地训练总迭代次数x,则使用最近一次下载的全局模型的副本gm
τ

和本地数据lda更新迭代一次全局模型,边缘设备da每更新迭代t次全局模型后,生成一个收敛的局部模型,局部模型表示第a个边缘设备da使用全局迭代次数为τ时的全局模型,生成的第b个收敛的局部模型;
30.步骤303:判断是否成立,若成立,则将局部模型lm
τa,b
缓存至局部模型缓存区,使b的值自增1,否则,继续迭代全局模型,lm
τa,b
为第a个边缘设备使用全局迭代次数为τ时的全局模型,生成的第b个收敛的局部模型;边缘设备da每隔t个当前本地迭代次数生成一个收敛的局部模型lm
τa,b
,b=1,2,

,b,其中,b为在周期学习策略中第b个收敛的局部模型,b为本地模型训练过程中收敛模型的总数,型,b为本地模型训练过程中收敛模型的总数,为地板函数。
31.进一步的,在步骤302中,边缘设备da采用周期学习率策略训练模型,所述周期学习率策略使用学习率下降速度可控的周期学习率函数更新学习率:
[0032][0033]
其中,1r
min
为学习率函数下界,1r
max
为学习率函数上界,0<1r
min
<1r
max
≤1;lr(x)为当前迭代次数为x时的学习率,1r
min
≤lr(x)≤1r
max
;t为学习率函数的周期,t<x;μ为控制学习率函数下降速度的超参数,μ>1;
[0034]
边缘设备da在训练局部模型时,采用以下模型多样性增强的多目标优化公式:
[0035][0036][0037]
其中,za~lda表示在随机梯度下降算法的每一轮本地模型训练迭代中,从本地数据lda中采样部分数据za用于更新参数,f为本地模型训练时所采用的损失函数,为求期望算子,||
·
||2为l2范数函数,多目标优化公式表示寻找一个最优的局部模型lm
τa,b
,使得损失函数最小的同时,与全局模型gmi的欧式距离最大;
[0038]
采用随机梯度下降算法,结合周期学习率函数,通过以下更新规则训练局部模型:
[0039][0040]
其中,h为sgd算法每次迭代时,从lda中随机采样数据样本的大小,γ为用于平衡损失函数和多样性增强超参数,0≤γ≤1,γ越大,多样性增强的目标占得比重越大,为偏导数算子。
[0041]
进一步的,步骤4具体包括以下步骤:
[0042]
步骤401:服务器的收集器组件监听是否有来自边缘设备da的局部模型推送请求,若没有请求,则重复监听是否有局部模型推送请求;
[0043]
步骤402:检查服务器的队列是否为满,若为满,则拒绝边缘设备da的局部模型推送请求,返回步骤401;
[0044]
步骤403:接受边缘设备da的局部模型推送请求,接收局部模型,接收完毕后将局部模型lm
τa,b
入队至队列。
[0045]
进一步的,步骤5具体包括以下步骤:
[0046]
步骤501:判断服务器的队列是否为空,若为空,则重新判断服务器的队列状况;
[0047]
步骤502:若为非空,则从服务器的队列中出队一个局部模型lm
τa,b
,将局部模型lm
τa,b
与影子模型s
t
通过下述公式进行聚合,将聚合后的模型赋值给影子模型s
t 1

[0048][0049]
其中,α()为一衡量模型重要性程度的函数,i-τ为当前全局迭代次数与局部模型上传至服务器时的全局迭代次数之差,t为出队计数值,t》0,s
t
为当出队计数值为t时的影子模型;
[0050]
步骤503:将队列的出队计数值t自增1。
[0051]
进一步的,步骤6具体包括以下步骤:
[0052]
步骤601:判断t mod m的值是否为0,若不为0,则跳转至步骤7,其中,m为一个整数超参数,m》0;
[0053]
步骤602:若为0,则将服务器的事件对象状态置为真;
[0054]
步骤603:将全局模型g
i 1
的值设置为影子模型s
t
的值,全局迭代次数i自增1;
[0055]
步骤604:将服务器的事件对象状态设置为假。
[0056]
进一步的,所述服务器通过线程池设置多线程的分发器组件,用于分发全局模型给边缘设备;所述服务器通过线程池设置多线程的收集器组件,用于接收局部模型入队至服务器的队列中;所述服务器通过线程设置更新器组件。
[0057]
在本发明的改善边缘设备利用效率的异步联邦学习方法的每一轮全局迭代的时间段中,服务器的更新器组件线程只将局部模型与影子模型聚合,而分发器组件线程只把全局模型分发给边缘设备,因此,更新器组件和分发器组件各司其职,互不影响,仅仅在全局迭代的结束时刻,此时的事件对象的状态为真,分发器组件线程被挂起,更新器组件才将影子模型变量值赋值给全局模型变量,而后更新器组件再将事件对象的状态置为假。由于影子模型缓解了分发器组件和更新器组件对全局模型的数据竞争关系,因此,服务器的并发性能得到改善,边缘设备利用效率得以提高。
附图说明
[0058]
图1为本发明的改善边缘设备利用效率的异步联邦学习方法的步骤示意图;
[0059]
图2为本发明的改善边缘设备利用效率的异步联邦学习方法的系统架构图和数据流图;
[0060]
图3为本发明的改善边缘设备利用效率的异步联邦学习方法对比现有异步联邦学习优化方法fedasync的各功能组件运行时序图;
[0061]
图4为本发明的一种改善边缘设备利用效率的异步联邦学习框架对比现有异步联邦学习优化方法fedasync的训练时间加速效果图;
[0062]
图5为实施例2的改善边缘设备利用效率的异步联邦学习方法对比现有联邦学习优化方法的全局模型性能损失受边缘设备离线率的影响图;
[0063]
图6为一个实施例中计算机装置的内部结构图。
具体实施方式
[0064]
以下将参照附图更全面地描述本公开的各种示例,使得本公开所属领域的普通技术人员可以容易地实现这些示例。然而,本公开可以以各种形式实现,并且不限于这里描述的示例。
[0065]
虽然本公开的示例性方法被描述为一系列操作,但这是为了描述的清楚,并不限制步骤的顺序。当需要时,可以同时或以不同的顺序执行这些步骤。为了实现根据本公开的方法,示例性方法还可以包括附加步骤,包括除了一些步骤之外的剩余步骤,或者可以包括除了一些步骤之外的附加步骤。
[0066]
当前,主流的异步联邦学习优化方法由于服务器中多线程对全局模型存在数据竞争的关系,因此在服务器端的并发性能较低,导致边缘设备的利用效率大幅度降低,减慢了全局模型的训练速度。如果能对减缓服务器多线程对全局模型的数据竞争关系,则能够加快全局模型的训练速度,增加边缘设备的利用效率。
[0067]
为此,本发明提供了以下的具体实施案例解决上述问题。
[0068]
见图1,本发明的一种改善边缘设备利用效率的异步联邦学习方法,至少包括以下步骤:
[0069]
步骤1:判断边缘设备是否满足模型数据传输条件,满足模型数据传输条件的边缘设备主动向服务器请求全局模型;
[0070]
步骤2:服务器检测事件对象状态,若事件对象状态为假,则接受下载请求,服务器通过分发器组件将全局模型发送给该边缘设备;
[0071]
步骤3:判断边缘设备当前是否满足模型训练条件,满足条件的边缘设备通过本地数据训练全局模型得到局部模型;
[0072]
步骤4:服务器的收集器组件将边缘设备推送的局部模型入队至服务器的队列中;
[0073]
步骤5:服务器的更新器组件从服务器的队列中弹出一个局部模型,并更新局部模型的出队计数值,将局部模型与影子模型执行聚合操作,并将聚合得到的模型赋值给影子模型;
[0074]
步骤6:判断出队计数值是否到达设定值,若到达,则将事件对象的状态置为真,将影子模型的值赋值给全局模型,而后,再将事件对象的状态置为假,同时更新全局迭代次
数;
[0075]
步骤7:判断全局迭代次数是否达到设定的全局总迭代次数,若达到,则结束,输出迭代更新后的全局模型;否则,跳转至步骤1,直到达到设定的全局总迭代次数。
[0076]
在本实施例中,在步骤1中,具体包括以下步骤:
[0077]
步骤101:边缘设备da判断当前是否满足模型数据传输条件,若不满足,则重复判断当前是否满足模型数据传输条件,模型数据传输条件是指:边缘设备是否有效接入各类无线或有线等除按流量计费的或计费不敏感的国际互联网并可以连接至服务器,且边缘设备处于待机和充电的状态;
[0078]
若满足模型数据传输条件,判断建立的局部模型缓冲区是否为空,若为空,则执行步骤102,若为非空,将局部模型缓冲区内的所有局部模型全部推送给服务器,清空局部模型缓冲区;
[0079]
步骤102:边缘设备da向服务器的分发器组件请求下载全局模型gmi,i为第i次算法全局迭代次数,i=1,2,

,i,i为全局迭代总次数;
[0080]
步骤2具体包括以下步骤:
[0081]
步骤201:服务器监听是否有来自边缘设备da的全局模型下载请求,若没有请求,则继续重复监听;
[0082]
步骤202:服务器通过事件对象进行状态监控,如有请求,判断事件对象的状态是否为假,若为真,则拒绝边缘设备da的全局模型下载请求,返回步骤102;
[0083]
步骤203:若事件对象的状态为假,服务器的分发器组件接受边缘设备da的全局模型下载请求,并将全局模型gmi发送给边缘设备da;
[0084]
步骤204:边缘设备da下载全局模型,记录下载全局模型gmi时的全局迭代次数为τ,采用最近一次下载的全局模型,创建全局模型gmi的副本gm
τ


[0085]
步骤3具体包括以下步骤:
[0086]
步骤301:边缘设备da判断当前是否满足模型训练条件,若不满足,则返回至步骤1,模型训练条件是指:边缘设备处于待机与充电状态且边缘设备da的局部模型缓冲区为非满;如果设备没有处于待机或充电的状态,则说明用户正在使用边缘设备,此时执行本训练算法会影响用户的使用体验,故本地训练算法应在满足模型训练条件的情况下执行;
[0087]
步骤302:若满足模型训练条件,边缘设备da判断当前训练本地迭代次数x是否达到本地训练总迭代次数x;若没有达到本地训练总迭代次数x,则使用最近一次下载的全局模型的副本gm
τ

和本地数据lda更新迭代一次全局模型,边缘设备da每更新迭代t次全局模型后,生成一个收敛的局部模型,局部模型表示第a个边缘设备da使用全局迭代次数为τ时的全局模型,生成的第b个收敛的局部模型;
[0088]
判断是否成立,若成立,则将局部模型lm
τa,b
缓存至局部模型缓存区,使b的值自增1,否则,继续迭代全局模型,lm
τa,b
为第a个边缘设备使用全局迭代次数为τ时的全局模型,生成的第b个收敛的局部模型;边缘设备da每隔t个当前本地迭代次数生成一个收敛的局部模型lm
τa,b
,b=1,2,

,b,其中,b为在周期学习策略中第b个收敛的局部模型,b为本地模型训练过程中收敛模型的总数,模型训练过程中收敛模型的总数,为地板函数。
[0089]
在步骤302中,边缘设备da采用周期学习率策略训练模型,所述周期学习率策略使用学习率下降速度可控的周期学习率函数更新学习率:
[0090][0091]
其中,lr
min
为学习率函数下界,lr
max
为学习率函数上界,0<lr
min
<lr
max
≤1;lr(x)为当前迭代次数为x时的学习率,lr
min
≤lr(x)≤lr
max
;t为学习率函数的周期,t<x;μ为控制学习率函数下降速度的超参数,μ≥1;
[0092]
边缘设备da在训练局部模型时,采用以下模型多样性增强的多目标优化公式:
[0093][0094][0095]
其中,za~lda表示在随机梯度下降算法的每一轮本地模型训练迭代中,从本地数据lda中采样部分数据za用于更新参数,f为本地模型训练时所采用的损失函数,为求期望算子,‖
·
‖2为l2范数函数,多目标优化公式表示寻找一个最优的局部模型lm
τa,b
,使得损失函数最小的同时,与全局模型gmi的欧式距离最大;
[0096]
采用随机梯度下降算法,结合周期学习率函数,通过以下更新规则训练局部模型:
[0097][0098]
其中,h为sgd算法每次迭代时,从lda中随机采样数据样本的大小,γ为用于平衡损失函数和多样性增强超参数,0≤γ≤1,γ越大,多样性增强的目标占得比重越大,为偏导数算子,该更新规则的含义是:边缘设备随机采样本地数据集的一个子集,在第x步的随机梯度下降算法迭代过程中,通过沿梯度相反方向更新局部模型从而最小化目标损失函数,学习率函数lr(x)决定了该时刻的更新步长。
[0099]
该多目标优化公式的含义是:在进行本地模型训练迭代时,尽可能地寻找一个最优的局部模型lm
τa,b
,它使得损失函数最小的同时,与全局模型gmi的欧式距离尽可能的大,此外,由于结合了周期学习率训练模型,在每个周期结束后,会得到多个泛化性能相近且犯不同错误的多样性模型。将这些多样性模型推送至服务器,不仅有利于改善全局模型性能,还能缓解由于设备掉线对全局模型带来的性能影响。
[0100]
步骤4具体包括以下步骤:
[0101]
步骤401:服务器的收集器组件监听是否有来自边缘设备da的局部模型推送请求,若没有请求,则重复监听是否有局部模型推送请求;
[0102]
步骤402:检查服务器的队列是否为满,若为满,则拒绝边缘设备da的局部模型推送请求,返回步骤401;
[0103]
步骤403:接受边缘设备da的局部模型推送请求,接收局部模型,接收完毕后将局部模型lm
τa,b
入队至队列。
[0104]
步骤5具体包括以下步骤:
[0105]
步骤501:判断服务器的队列是否为空,若为空,则重新判断服务器的队列状况;
[0106]
步骤502:若为非空,则从服务器的队列中出队一个局部模型lm
τa,b
,将局部模型lm
τa,b
与影子模型s
t
通过下述公式进行聚合,将聚合后的模型赋值给影子模型s
t 1

[0107][0108]
其中,α()为一衡量模型重要性程度的函数,i-τ为当前全局迭代次数与局部模型上传至服务器时的全局迭代次数之差,t为出队计数值,t》0,s
t
为当出队计数值为t时的影子模型;
[0109]
步骤503:将队列的出队计数值t自增1。
[0110]
步骤6具体包括以下步骤:
[0111]
步骤601:判断t mod m的值是否为0,若不为0,则跳转至步骤7,其中,m为一个整数超参数,m》0;
[0112]
步骤602:若为0,则将服务器的事件对象状态置为真;
[0113]
步骤603:将全局模型g
i 1
的值设置为影子模型s
t
的值,全局迭代次数i自增1;
[0114]
步骤604:将服务器的事件对象状态设置为假。
[0115]
步骤7:判断全局迭代次数是否达到设定的全局总迭代次数,若达到,则结束,输出迭代更新后的全局模型;否则,跳转至步骤1,直到达到设定的全局总迭代次数。
[0116]
如图2所示,该图是为本实施例中的改善边缘设备利用效率的异步联邦学习方法的系统架构图和数据流图,在本发明的实施例中,重点在于体现本发明可以有效提升服务器的并发性能,
[0117]
在本实施例中,通过事件对象实现对服务器的状态监控,事件对象是服务器内多线程同步的一种手段,它包含一个可由任意线程设置的值为真或假的信号标志。在初始情况下,事件对象中的信号标志被设置为假,如果有线程等待此事件对象,那么这个线程将会被一直阻塞直至该标志为真;一个线程如果将一个事件对象的信号标志设置为真,将唤醒所有等待这个事件对象的线程;如果一个线程尝试等待一个已经被设置为真的事件对象,那么它将忽略这个事件,继续执行。
[0118]
在现有的异步联邦学习方法中,绝大部分是由服务器选择一定数量的满足条件的边缘设备参与新的一轮训练,而在本发明中,满足模型数据传输条件的边缘设备主动向服务器请求参与新的一轮训练,此举可以提高设备边缘设备的利用率;
[0119]
在本实施例的方法中,我们在服务器中定义了分发器组件和更新器组件以及收集器组件,分发器组件用于负责全局模型的分发,更新器组件用于负责局部模型与影子模型的聚合,还用于负责在出队计数值达到设定值时,将影子模型的值赋值给全局模型,收集器组件用于负责接收局部模型入队至服务器的队列中,此外,在本实施例中,还设计了出队模型数量计数器来统计出队计数值。
[0120]
在本实施例的步骤1中,局部模型缓冲区是指在计算机内存中开辟的一块连续的存储局部模型数据的内存区域,可以保存相同数据类型的多个实例;
[0121]
模型数据传输条件是指:边缘设备是否有效接入各类无线或有线等除按流量计费的或计费不敏感的国际互联网并可以连接至服务器,且边缘设备处于待机和充电的状态。边缘设备在进行模型数据传输前要判断自身是否满足模型数据传输条件,这样做的目的是
防止因为全局模型训练而打扰用户使用收集,且让用户承担额外的流量通信费用;
[0122]
满足模型训练条件的边缘设备主动向服务器请求参与新的一轮训练,此举可以提高设备边缘设备的利用率,而在现有的异步联邦学习方法中,绝大部分方法是由服务器选择一定数量的满足条件的边缘设备参与新的一轮训练,不利于提高边缘设备利用率。
[0123]
在本实施例的步骤2中,服务器的分发器组件采用线程池管理全局模型的发送,这样做可以充分利用系统内核,防止系统资源过分调度。而且,如果同时有多个边缘设备向边缘服务器发出全局模型下载请求,则可以有多个分发器组件线程为其提供服务,有利于提升利用服务器资源效率。
[0124]
在步骤3中,边缘设备可以使用任何现有的优化算法训练模型,包括但不限于:sgd、adagrad、adam,与此同时,边缘设备采用模型多样性增强为优化目标的模型训练机制训练此全局模型,这意味着在边缘设备下载某个回合的全局模型后,即使在掉线的情形下,仍然可以训练多个泛化性能相近且犯不同错误的多样性模型,在恢复连接后,将这些模型推送至服务器,缓解设备离线对全局模型性能的影响。
[0125]
在步骤4中,服务器的收集器组件采用线程池管理局部模型的接收,这样做可以充分利用系统内核,防止系统资源过分调度。而且,如果同时有多个边缘设备向边缘服务器发出局部模型推送请求,则可以有多个收集器组件线程为其提供服务,有利于提升边缘设备利用率,加快全局模型训练进程;
[0126]
服务器的队列是一种数据结构,它的特点是只允许在一端插入局部模型,在另一端弹出局部模型,因此只有最早进入队列的局部模型才能最先从队列中弹出,符合数据“先进先出”的特征;
[0127]
在步骤5中,服务器的更新器组件采用单线程运行,它每将一个局部模型从队列中弹出,出队计数值的值自增1;本实施例中,通过取余函数mod判断出队计数值是否到达设定值,出队计数值的值t与事件对象的状态e具有下列关系:
[0128][0129]
其中,mod为取余,m是一个超参数,该事件对象的含义是队列每出队m个局部模型,事件对象的状态e就会由假变为真,此时,所有等待该事件发生的线程都会被挂起,直到事件对象的状态e由真变为假。
[0130]
α(
·
)为一衡量模型重要性程度的函数,i-τ为当前全局迭代次数与局部模型上传至服务器时的全局迭代次数之差;若i-τ的值越大,则局部模型的重要性程度越小。可以衡量局部模型重要性的函数很多,函数可以是但不限于以下形式:
[0131]
线性形式函数:
[0132]
多项式形式函数:α(i,τ)=(i-τ 1)-c
,c>0;
[0133]
指数形式函数:α(i,τ)=exp(-c(i-τ)),0<c≤1;
[0134]
以上式子中,c为超参数,用于调节函数的形状,在本实施例中,经过多次试验,使用指数形式的函数效果最佳;
[0135]
在步骤6中,服务器的更新器组件将局部模型与影子模型聚合后的模型赋值给影子模型,该动作发生在事件对象的状态e为假的情况下执行,若t mod m=0成立,则服务器
的更新器组件将事件e的值置为真,此时,由于更新器组件要对全局模型的值进行更新,所以所有监听事件对象的线程都会被挂起,防止分发器组件读取到不正确的全局模型数据。更新器组件将影子模型的值赋值给全局模型后,再将事件对象的状态e的值置为假,此时,所有监听事件对象的状态e的线程都被唤醒,分发器组件可以重新读取到新的正确的全局模型,并分发给边缘设备;
[0136]
步骤7中,当全局迭代次数达到全局总迭代次数,则结束迭代。
[0137]
在传统异步联邦学习方法每一轮全局迭代的时刻,需要将全局模型变量值与局部模型变量值聚合,再将聚合后的模型写回全局模型变量,在这个过程中,分发器组件不能向边缘设备分发全局模型,以免分发器组件读到脏数据,因此,服务器的分发器组件在分发全局模型时与服务器的更新器组件在更新全局模型对全局模型构成了数据竞争关系,服务器必须等待服务器的更新器组件操作更新全局模型结束后,才能分发全局模型;在本发明的每一轮全局迭代的时间段中,服务器的更新器组件线程只将局部模型与影子模型聚合,而分发器组件线程只把全局模型分发给边缘设备,因此,更新器组件和分发器组件各司其职,互不影响,仅仅在全局迭代的结束时刻,此时的事件对象的状态为真,分发器组件线程被挂起,更新器组件才将影子模型变量值赋值给全局模型变量,而后更新器组件再将事件对象的状态置为假。由于影子模型缓解了分发器组件和更新器组件对全局模型的数据竞争关系,因此,服务器的并发性能得到改善。
[0138]
如图3所示,该图是本实施例中一种改善服务器端并发性能的异步联邦学习优化方法对比现有异步联邦学习优化方法fedasync的各功能组件运行时序图,本实施例中服务器功能组件与fedasync服务器功能组件相比,更稠密一些,说明本实施例服务器功能组件被充分利用,而fedasync服务器中的功能组件由于各线程对全局模型存在数据竞争关系,因而个功能组件运行时间更稀疏。
[0139]
如图4所示,该图为与现有异步联邦学习优化方法fedasync相比,随着收集器和分发器线程数量的增加,服务器分别聚合20000个局部模型、全局模型达到88%的准确率时,本实施例对比fedasync在训练时间上的相对加速比率,由于本实施例缓解了各线程对全局模型的数据竞争关系,所以本实施例缩短了全局模型的训练时间,改善了服务器端的并发性能。
[0140]
具体实施例2:
[0141]
在边缘设备端,还存在边缘设备利用率不高的问题,首先,边缘设备必须满足一些严苛的条件才能开始模型训练,例如:移动手机应处于充电、待机状态,并可以通过无线网络访问互联网等,目的是让训练过程不会打扰手机用户正常使用手机;其次,边缘设备所处的网络环境复杂,边缘设备和服务器丢失连接的情况时有发生。以上两种情形都会使模型训练过程被迫终止,促使设备离线而进入空闲状态,进一步降低了设备的利用率,导致服务器端的并发性能无法充分发挥。
[0142]
为此,本发明提供了以下具体实施案例解决上述问题。
[0143]
本发明的第二个实施例中,模拟了设备离线率对全局模型性能损失的影响。设备离线率是指在每个边缘设备向服务器推送局部模型之前,由于各种因素的影响,边缘设备有一定的概率与服务器失去连接,从而处于离线状态,这个概率就称为设备离线率;全局模型性能损失采用以下方法计算:
[0144][0145]
其中,r是设备离线率;p(r)是指当设备离线率为r时的全局模型性能;p(0)是指当设备离线率为0时的全局模型性能;ploss(r)为当设备离线率为0时全局模型性能相对于设备离线率为r时的全局模型性能损失。
[0146]
具体地,在本实施例中,m的值为15,边缘设备的局部模型缓存区的大小为k,k的值为1,a为边缘设备的总数,a的值为1000,a为第a个边缘设备的编号,a=1,2,

,a,a》0,a为边缘设备的总数,μ为控制学习率函数下降速度的超参数为μ,μ的值为5,本地训练总迭代次数为x,x的值为15,周期学习率函数周期参数为t,边缘设备每隔t个当前本地迭代次数生成一个收敛的局部模型,t的值为15,全局迭代总次数为i,i》0。
[0147]
数据集采用fashion-mnist数据集,收集器组件和分发器组件的线程数量皆为5。
[0148]
先进行初始化,初始化全局模型和影子模型的值为随机值;初始化本地迭代次数x为1,全局迭代次数i为1;设置服务器的事件对象初始状态为不可更新。
[0149]
在本实施例中,具体包括以下步骤:
[0150]
步骤1具体包括以下步骤:
[0151]
步骤101:边缘设备da判断当前是否满足模型数据传输条件,若不满足,则重复判断当前是否满足模型数据传输条件,模型数据传输条件是指:边缘设备是否有效接入各类无线或有线等除按流量计费的或计费不敏感的国际互联网并可以连接至服务器,且边缘设备处于待机和充电的状态;
[0152]
若满足模型数据传输条件,判断建立的局部模型缓冲区是否为空,若为空,则执行步骤102,若为非空,将局部模型缓冲区内的所有局部模型全部推送给服务器,清空局部模型缓冲区;
[0153]
步骤102:边缘设备da向服务器的分发器组件请求下载全局模型gmi,i为第i次算法全局迭代次数,i=1,2,

,i,i为全局迭代总次数;
[0154]
步骤2具体包括以下步骤:
[0155]
步骤201:服务器监听是否有来自边缘设备da的全局模型下载请求,若没有请求,则继续重复监听;
[0156]
步骤202:服务器通过事件对象进行状态监控,如有请求,判断事件对象的状态是否为假,若为真,则拒绝边缘设备da的全局模型下载请求,返回步骤102;
[0157]
步骤203:若事件对象的状态为假,服务器的分发器组件接受边缘设备da的全局模型下载请求,并将全局模型gmi发送给边缘设备da;
[0158]
步骤204:边缘设备da下载全局模型,记录下载全局模型gmi时的全局迭代次数为τ,采用最近一次下载的全局模型,创建全局模型gmi的副本gm
τ


[0159]
步骤3具体包括以下步骤:
[0160]
步骤301:边缘设备da判断当前是否满足模型训练条件,若不满足,则返回至步骤1,模型训练条件是指:边缘设备处于待机与充电状态且边缘设备da的局部模型缓冲区为非满;
[0161]
步骤302:若满足模型训练条件,边缘设备da判断当前训练本地迭代次数x是否达到本地训练总迭代次数x;若没有达到本地训练总迭代次数x,则使用最近一次下载的全局
模型的副本gm
τ

和本地数据lda更新迭代一次全局模型,边缘设备da每更新迭代t次全局模型后,生成一个收敛的局部模型,局部模型表示第a个边缘设备da使用全局迭代次数为τ时的全局模型,生成的第b个收敛的局部模型;
[0162]
步骤303:判断是否成立,若成立,则将局部模型lm
τa,b
缓存至局部模型缓存区,使b的值自增1,否则,继续迭代全局模型,lm
τa,b
为第a个边缘设备使用全局迭代次数为r时的全局模型,生成的第b个收敛的局部模型;边缘设备da每隔t个当前本地迭代次数生成一个收敛的局部模型lm
τa,b
,b=1,2,

,b,其中,b为在周期学习策略中第b个收敛的局部模型,b为本地模型训练过程中收敛模型的总数,型,b为本地模型训练过程中收敛模型的总数,为地板函数。
[0163]
在步骤302中,边缘设备da采用周期学习率策略训练模型,所述周期学习率策略使用学习率下降速度可控的周期学习率函数更新学习率:
[0164][0165]
其中,lr
min
为学习率函数下界,lr
max
为学习率函数上界,0<lr
min
<lr
max
≤1;lr(x)为当前迭代次数为x时的学习率,lr
min
≤lr(x)≤lr
max
;t为学习率函数的周期,t<x;μ为控制学习率函数下降速度的超参数,μ≥1;
[0166]
边缘设备da在训练局部模型时,采用以下模型多样性增强的多目标优化公式:
[0167][0168][0169]
其中,za~lda表示在随机梯度下降算法的每一轮本地模型训练迭代中,从本地数据lda中采样部分数据za用于更新参数,f为本地模型训练时所采用的损失函数,为求期望算子,‖
·
‖2为l2范数函数,多目标优化公式表示寻找一个最优的局部模型lm
τa,b
,使得损失函数最小的同时,与全局模型gmi的欧式距离最大;
[0170]
采用随机梯度下降算法,结合周期学习率函数,通过以下更新规则训练局部模型:
[0171][0172]
其中,h为sgd算法每次迭代时,从lda中随机采样数据样本的大小,γ为用于平衡损失函数和多样性增强超参数,0≤γ≤1,γ越大,多样性增强的目标占得比重越大,为偏导数算子,该更新规则的含义是:边缘设备随机采样本地数据集的一个子集,在第x步的随机梯度下降算法迭代过程中,通过沿梯度相反方向更新局部模型从而最小化目标损失函数,学习率函数lr(x)决定了该时刻的更新步长。
[0173]
该多目标优化公式的含义是:在进行本地模型训练迭代时,尽可能地寻找一个最优的局部模型lm
τa,b
,它使得损失函数最小的同时,与全局模型gmi的欧式距离尽可能的大,此外,由于结合了周期学习率训练模型,在每个周期结束后,会得到多个泛化性能相近且犯
不同错误的多样性模型。将这些多样性模型推送至服务器,不仅有利于改善全局模型性能,还能缓解由于设备掉线对全局模型带来的性能影响。
[0174]
步骤4具体包括以下步骤:
[0175]
步骤401:服务器的收集器组件监听是否有来自边缘设备da的局部模型推送请求,若没有请求,则重复监听是否有局部模型推送请求;
[0176]
步骤402:检查服务器的队列是否为满,若为满,则拒绝边缘设备da的局部模型推送请求,返回步骤401;
[0177]
步骤403:接受边缘设备da的局部模型推送请求,接收局部模型,接收完毕后将局部模型lm
τa,b
入队至队列。
[0178]
步骤5具体包括以下步骤:
[0179]
步骤501:判断服务器的队列是否为空,若为空,则重新判断服务器的队列状况;
[0180]
步骤502:若为非空,则从服务器的队列中出队一个局部模型lm
τa,b
,将局部模型lm
τa,b
与影子模型s
t
通过下述公式进行聚合,将聚合后的模型赋值给影子模型s
t 1

[0181][0182]
其中,α()为一衡量模型重要性程度的函数,i-τ为当前全局迭代次数与局部模型上传至服务器时的全局迭代次数之差,t为出队计数值,t》0,s
t
为当出队计数值为t时的影子模型;
[0183]
步骤503:将队列的出队计数值t自增1。
[0184]
进一步的,步骤6具体包括以下步骤:
[0185]
步骤601:判断t mod m的值是否为0,若不为0,则跳转至步骤7,其中,m为一个整数超参数,m》0;
[0186]
步骤602:若为0,则将服务器的事件对象状态置为真;
[0187]
步骤603:将全局模型g
i 1
的值设置为影子模型s
t
的值,全局迭代次数i自增1;
[0188]
步骤604:将服务器的事件对象状态设置为假。
[0189]
步骤7:判断全局迭代次数是否达到设定的全局总迭代次数,若达到,则结束,输出迭代更新后的全局模型;否则,跳转至步骤1,直到达到设定的全局总迭代次数。
[0190]
步骤8:对于不满足模型数据传输条件的边缘设备,查询是否有全局模型下载记录,若无,则返回步骤1;若有,则执行步骤3。
[0191]
本实施例中,边缘设备应首先判断当前是否满足模型数据传输条件,即:边缘设备是否有效接入各类无线或有线网,除按流量计费的或计费不敏感的国际互联网,且边缘设备处于待机和充电的状态。引入该状态判断,有利于区分在线设备和离线设备。
[0192]
一旦边缘设备处于在线状态,则将局部模型缓冲区内的所有局部模型全部推送给服务器的收集组件,并清空缓冲区;满足模型数据传输条件的边缘设备主动向服务器请求参与新的一轮训练,此举可以提高设备边缘设备的利用率;
[0193]
而对于不满足模型数据传输条件的离线设备,本实施例中,会判断其是否满足模型训练条件,如果边缘设备不满足模型数据传输条件,但是满足模型训练条件,再次查询该边缘设备是否有全局模型下载记录,边缘设备可以利用最近一次下载的全局模型训练出多个泛化性能相近且犯不同错误的多样性模型,在恢复与服务器的连接后,将这些模型推送至服务器,有利于改善全局模型性能,提高离线设备的利用率。
[0194]
图5展示了随着设备离线率的增加,与现有3种联邦学习优化方法相比,在10000个全局迭代之后,全局模型的性能损失。从图5中可以看出,本发明中的全局模型受到边缘设备意外离线影响最小。在现有的联邦学习优化方法中,当边缘设备与服务器失去连接时,边缘设备无法下载最新的全局模型参数以进行训练,从而导致该边缘设备处于空闲状态,无法对训练全局模型产生贡献。然而,在本实施例中,即使边缘设备处于离线状态,只要边缘设备备份了一个最近下载的全局模型,它就可以继续工作,从该备份的全局模型中挖掘多个多样性增强的模型,并在连接恢复时向服务器上载这些模型,从而提升了设备的利用率,增强了系统的鲁棒性,有利于充分利用服务器端的并发性能。
[0195]
在本发明的实施例中,还提供了一种改善边缘设备利用效率的异步联邦学习装置,其包括:包括处理器、存储器以及程序;
[0196]
程序存储在存储器中,处理器调用存储器存储的程序,以执行上述的一种改善边缘设备利用效率的异步联邦学习方法。
[0197]
该计算机装置可以是终端,其内部结构图可以如图6所示。该计算机装置包括通过总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机装置的处理器用于提供计算和控制能力。该计算机装置的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机装置的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现改善边缘设备利用效率的异步联邦学习方法。该计算机装置的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机装置的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机装置外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0198]
存储器可以是,但不限于,随机存取存储器(random access memory,简称:ram),只读存储器(read only memory,简称:rom),可编程只读存储器(programmable read-only memory,简称:prom),可擦除只读存储器(erasable programmable read-only memory,简称:eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称:eeprom)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。
[0199]
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称:cpu)、网络处理器(network processor,简称:np)等。该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0200]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机装置的限定,具体的计算机装置可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0201]
在本发明的实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质
被配置成存储程序,程序被配置成执行上述的一种改善边缘设备利用效率的异步联邦学习方法。
[0202]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、计算机装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0203]
本发明实施例是参照根据本发明实施例的方法、计算机装置、或计算机程序产品的流程图和/或框图来描述的。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图和/或中指定的功能的装置。
[0204]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中指定的功能。
[0205]
以上对本发明所提供的在改善边缘设备利用效率的异步联邦学习方法、计算机装置、计算机可读存储介质的应用进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献