一种面向非独立同分布数据的分层用户训练管理系统及方法与流程

专利检索2022-05-10  26



1.本发明属于通信技术领域,尤其涉及一种面向非独立同分布数据的分层用户训练管理系统及方法。


背景技术:

2.随着人工智能的高速发展,在多种任务中,使用大规模的神经网络可以达到很高的训练精度。同时,随着通信技术的迭代(5g、网络虚拟化、物联网等),海量设备接入网络,随之产生前所未有的数据流,海量的数据给人工智能大模型的训练提供了基础和驱动力。
3.然而,大模型、大数据的训练需要非常大的计算能力支持,而硬件技术的发展并没有很好跟上数据的增长,所以往往训练一个大的神经网络动辄需要数月甚至数年,无法很好的跟上市场和行业发展的迭代需求。同时,数据的分布分散在不同的机构,存在“数据孤岛”问题,即:机构间数据的融合存在安全等诸多限制。而仅依靠单一机构的数据不足以训练出高效可靠的模型。
4.联邦学习是目前业界公认的,解决上述问题的一种最合理的方案。联邦机器学习(federated learning),又名联邦学习,联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。技术上讲,参与机构在云服务器的调度下,交换模型而非数据本身,从而在保护隐私的前提下协同进行模型训练,按照参与机构的不同,联邦学习可分为面向用户的联邦学习和面向机构的联邦学习。
5.在上述两种场景下,联邦学习面临着数据非独立同分布问题带来的严峻挑战,数据非独立同分布问题即每个参与节点所拥有的数据分布与全局分布并不一致,在模型聚合的过程中这种数据的不一致会导致模型梯度下降时的震荡,很大程度上影响模型的收敛性、精度,使得相比于单机训练,分布式训练的结果往往达不到预期的效果。应对非独立同分布问题,目前常利用的方法主要有两类:(1)通过在损失函数或者聚合策略上做调整,以适应非独立同分布数据。然而,这种调整对于非独立同分布场景下的精度提升比较有限。(2)通过将本地数据与全局数据混合进行训练,以缓解非独立同分布的情况。此类方法由于数据的直接共享,存在极大的安全隐患。


技术实现要素:

6.针对现有技术中的上述不足,本发明提供的一种面向非独立同分布数据的分层用户训练管理系统及方法,解决了联邦学习非独立同分布数据带来的模型精度受损的问题,也解决了同步算法下模型收敛速度慢的问题,同时减少了每轮的计算和通信开销,缓解了已有算法下个人用户标签在上传过程中容易泄露的问题。
7.为了达到以上目的,本发明利用的技术方案为:
8.本方案提供一种面向非独立同分布数据的分层用户训练管理系统,包括顶层参数服务器、与所述顶层参数服务器通过局域网通信的中间层参数服务器以及与所述中间层参
数服务器通过广域网通信的参与用户;
9.在训练准备阶段,所述中间层参数服务器用于通过计算中间层参数服务器的总数据分布和全局数据总分布向量的相似性对参与用户进行评分;
10.在训练准备阶段,所述顶层参数服务器用于根据评分结果对参与用户进行分组,并将分组结果广播至中间层参数服务器;
11.在训练阶段,所述中间层参数服务器用于根据分组结果在参与用户支链内利用序列联邦串行算法对模型副本进行串行训练,以及在参与用户支链之间利用联邦平均算法对模型副本进行并行训练和聚合处理;
12.在训练阶段,所述顶层参数服务器用于根据分组结果在中间层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型,完成面向非独立同分布数据的分层用户的训练管理。
13.基于上述系统,本发明提供了一种面向非独立同分布数据的分层用户训练管理方法,包括以下步骤:
14.s1、训练准备阶段:通过计算中间层参数服务器的总数据分布和全局数据总分布向量的相似性对参与用户进行评分,并根据评分结果利用顶层参数服务器对参与用户进行分组,并将分组结果广播至中间层参数服务器;
15.s2、训练阶段:根据分组结果,由中间层参数服务器在参与用户支链内利用序列联邦串行算法对模型副本进行串行训练,由中间层参数服务器在参与用户支链之间利用联邦平均算法对模型副本进行并行训练和聚合处理;以及在中间层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型,完成面向非独立同分布数据的分层用户的训练管理。
16.进一步地,所述步骤s1包括以下步骤:
17.s101、通过各中间层参数服务器随机选择参与用户;
18.s102、通过中间层参数服务器收集组内参与用户的数据分布,相加得到中间层参数服务器总的数据分布并将所述数据分布上传至顶层参数服务器;
19.s103、由顶层参数服务器接收中间层参数服务器的数据分布并利用联邦平均算法聚合得到全局数据总分布向量v
global

20.s104、通过顶层参数服务器将所述全局数据总分布向量v
global
广播至各中间层参数服务器;
21.s105、由各中间层参数服务器通过所述全局数据总分布向量v
global
以及组内相邻参与用户的数据分布向量,计算得到相邻参与用户的评分,并上传至顶层参数服务器;
22.s106、由顶层参数服务器根据所述相邻参与用户的评分对参与用户按照分组策略进行分组,并将分组结果广播至中间层参数服务器;
23.s107、由中间层参数服务器根据分组结果,重新连接对应的参与用户,完成对参与用户的分组。
24.再进一步地,所述步骤s105中相邻参与用户的评分的表达式如下:
25.score
i
=cos<v
global
,v
local_i
>
26.v
global
=[n
g1
,n
g2
,n
g3
,...,n
gm
]
[0027]
v
local_i2
=[n
i1
,n
i2
,n
i3
,...,n
im
]
[0028]
其中,score
i
表示相邻参与用户的评分,v
global
表示全局数据总分布向量,v
local_i
表示组内相邻的参与用户的数据分布向量,n
gm
表示全局拥有的第m类数据的数量,n
im
表示第i个参与用户的第m类数据的数量。
[0029]
再进一步地,所述步骤s106包括以下步骤:
[0030]
s1061、由顶层参数服务器对所述相邻参与用户的评分从高到底进行排序,得到包含所有参与用户得分的数组score_list;
[0031]
s1062、根据参与联邦学习的用户数量以及中间层参数服务器的数量,将数组score_list由高到低分成num
mediators
份,其中,每一份含有k或k 1个参与用户,所述k的表达式如下:
[0032][0033]
其中,k表示每个支链的参与用户的数量,num
clients
表示参与联邦学习的用户数量,num
mediators
表示中间层参数服务器的数量;
[0034]
s1063、将每一份数组score_list随机分配至中间层参数服务器,完成对参与用户的分组,并将分组结果广播至中间层参数服务器。
[0035]
再进一步地,所述步骤s2包括以下步骤:
[0036]
s201、由顶层参数服务器将当前的全局模型w
r
分发至选择的中间层参数服务器;
[0037]
s202、根据分组结果,在每一轮训练中,利用序列联邦串行算法以及联邦平均算法对模型副本进行训练和聚合处理,并由各个中间层参数服务器并行执行mediatorupdate(m,w
r
),将结果返回至顶层参数服务器,记为w
jr 1
,其中,mediatorupdate(m,w
r
)表示中间层参数服务器所执行的训练函数,w
jr 1
表示训练第r 1轮第j个中间层参数服务器的模型副本;
[0038]
s203、在顶层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型w
r 1
,完成面向非独立同分布数据的分层用户的训练管理。
[0039]
再进一步地,所述步骤s202包括以下步骤:
[0040]
s2021、根据分组结果,在每一轮训练中,按照预设的并行度增长曲线在分组内将串行训练的长链分成n
segments
段;
[0041]
s2022、在n
segments
段中由中间层参数服务器利用序列联邦串行算法在参与用户支链内对模型副本训练,以及利用联邦平均算法在参与用户支链之间对模型副本进行并行训练和聚合处理,得到此中间层参数服务器的模型副本记为w
jr 1

[0042]
s2023、将中间层参数服务器的模型副本w
jr 1
传到顶层参数服务器。
[0043]
再进一步地,所述步骤s2021中形成n
segments
条参与用户支链的表达式如下:
[0044]
n
segments
=β.r
[0045]
其中,n
segments
表示参与用户支链的数量,β表示设定的并行度增长因子,r表示训练进行的轮数。
[0046]
再进一步地,所述中间层参数服务器其参与训练的概率表达式如下:
[0047][0048]
其中,pr(mediator
j
)表示编号为j的中间层参数服务器参与训练的概率,score
mediatorj
表示编号为j的中间层参数服务器的评分。
[0049]
再进一步地,所述步骤s203中最终的全局模型w
r 1
的表达式如下:
[0050][0051]
其中,n
j
表示第j个中间层参数服务器的样本数量,m表示中间层参数服务器的总数,n表示总的样本数量,w
jr 1
表示训练第r 1轮第j个中间层服务器的模型副本,w
r 1
是第r 1轮的全局模型。
[0052]
本发明的有益效果:
[0053]
(1)本发明提出一种面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练方法(fedrank),该面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练方法在保护用户标签的前提下,通过计算节点数据分布和全局分布的相似性,对用户进行评分,该方法中的全局参数服务器可以根据用户评分进行合理的分组处理,使得组间数据分布近似均匀,解决非独立同分布问题。同时,该方法可根据用户的需求,设置并行度增长曲线,使得训练从串行向并行转化,在保证模型收敛速度和精度的情况下保证模型的并行度,节省训练时间,该方法可以将全同步算法与序列联邦学习算法相结合,在保证模型并行度的前提下大幅度提高训练精度和收敛速度、显著减少通信负载、节省计算资源,提高联邦学习的训练效果。
[0054]
(2)在联邦学习的真实场景下,数据往往“非独立同分布”,非独立同分布数据是指数据依照不同的概率分布、非均匀地分布在各机构中,会严重损伤模型质量,是联邦学习亟需解决的重要难题。利用本方法后,本方案使得组间分布近似均匀,相比于传统方法,大幅度提升了联邦学习的收敛精度。
[0055]
(3)在全同步的算法下,联邦学习的收敛速度缓慢,通信的轮数多。使用本发明后,由于利用组间同步,参与用户支链间同步(联邦平均),参与用户支链内链式联邦训练(sequential fedavg)的方式,同时设置阶梯式增长的并行度增长曲线,在模型并行和收敛速度间达成了平衡,大大提升了收敛的速度,减少了通信的轮数。
[0056]
(4)已有分组训练方法常常要求所有在线的节点参与训练,计算开销大。而本发明由于利用合理的分组方案,使得组间分布相对均匀,同时利用合理的取样策略,合理分配参与机构参加训练的概率。
[0057]
(5)已有分组训练方法常常要求所有在线的节点参与训练,参与用户和中间层参数服务器,中间层参数服务器和顶层参数服务器的通信负载大。本发明所提出的系统和方法利用合理的分组方案,使得组间分布近似独立同分布,同时利用合理的取样策略,合理分配参与机构参加训练的概率。每次训练只需要较少的组参与训练,即减少了中间层参数服务器聚合过程中上传的参数量(每一轮只有选择到的中间层参数服务器才上传参数),也从全局上减少了所有参与用户每一轮训练上传的总数据量(每一轮只有选择到的中间层参数
服务器才接收所管辖用户的参数)。
[0058]
(6)已有分组训练方法利用暴力搜索方法进行分组,时间复杂度高,且利用“重新分组”方式,每过一定轮数进行重新分组,以应对真实场景下客户退出、客户数据分布改变等变化,使得时间开销大。本发明所提出的系统和方法利用低时间复杂度的联邦学习用户数据分布相似性评估、分组方法,有效减少分组的时间延迟,同时,训练过程中不进行重新分组,通过增加参与用户支链来进行动态调整,大幅度减少了重新分组的时间延迟。
[0059]
(7)已有方法常常要求参与节点将数据分布传到顶层参数服务器进行评估,而数据分布或许含有用户的个人信息,有泄露的风险。本发明所提出的系统和方法中,用户只需将数据分布传到中间层参数服务器,而中间层参数服务器只向顶层参数服务器上传计算后的用户评分,一定程度上避免了用户标签泄露的风险,以缓解用户标签泄露的风险。
[0060]
(8)已有方法往往建立在用户的数据分布、可参与训练的用户不变的前提下,然而在实际的场景中,用户的数据分布、参与训练的用户数量时刻变化。使得原先的优化策略不适应新的情况,影响训练结果。本发明所提出的系统和方法利用score sampling策略,根据实时的统计得分,改变采样的概率,可使得训练策略随数据分布进行动态调整,达到稳定的训练效果,具备对于参与用户数量和用户数据分布变化的自适应性。
附图说明
[0061]
图1为本发明中部署在一台高性能服务中的示意图。
[0062]
图2为本发明部署在数据中心内的不同物理服务器示意图。
[0063]
图3为本发明中训练准备阶段的工作流程图。
[0064]
图4为本发明中基于数据分布相似性评分的同构分组流程示意图。
[0065]
图5为本发明中面向近似独立同分布参与用户组的序列联邦学习算法示意图。
[0066]
图6为本发明中串行向并行转化的阶梯式训练策略示意图。
[0067]
图7为本发明中整体训练架构示意图。
[0068]
图8为本实施例中三种训练架构的对比示意图。
[0069]
图9为本实施例中每轮参与的组数对于训练的影响示意图。
具体实施方式
[0070]
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
[0071]
在对本技术进行说明前,先对以下参数的含义进行说明:
[0072]
[0073][0074]
实施例1
[0075]
本发明提出一种面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和采样方法(fedrank),该面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和采样方法在保护用户标签的前提下,通过计算节点数据分布和全局分布的相似性,对用户进行评分,该方法可根据用户数据的变化自适应调整采样率,该方法中的全局参数服务器可以根据用户评分进行合理的分组处理,使得组间数据分布近似均匀,解决非独立同分布问题。同时,该方法可以将全同步算法与序列联邦学习算法相结合,在保证模型并行
度的前提下大幅度提高训练精度和收敛速度、显著减少通信负载、节省计算资源,提高联邦学习的训练效果。
[0076]
本发明提供了一种面向非独立同分布数据的分层用户训练管理系统,包括顶层参数服务器、与所述顶层参数服务器通过局域网通信的中间层参数服务器以及与所述中间层参数服务器通过广域网通信的参与用户;
[0077]
在训练准备阶段,所述中间层参数服务器用于通过计算中间层参数服务器的总数据分布和全局数据总分布向量的相似性对参与用户进行评分;
[0078]
在训练准备阶段,所述顶层参数服务器用于根据评分结果对参与用户进行分组,并将分组结果广播至中间层参数服务器;
[0079]
在训练阶段,所述中间层参数服务器用于根据分组结果在参与用户支链内利用序列联邦串行算法对模型副本进行串行训练,以及在参与用户支链之间利用联邦平均算法对模型副本进行并行训练和聚合处理;
[0080]
在训练阶段,所述顶层参数服务器用于根据分组结果在中间层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型,完成面向非独立同分布数据的分层用户的训练管理。
[0081]
本实施例中,本发明实施部署环境时,可以部署在数据中心的一台高性能服务器中,该服务器应具有较强的计算能力,服务器中有一个实现顶层参数服务器功能的中心进程和实现中间层参数服务器功能的多个从进程(虚拟的中间层参数服务器),进程间可以相互通信。对应的从进程(虚拟中间层参数服务器)与所管辖的物理节点通过广域网相互通信。该服务器需部署有深度学习软件,能实现模型的聚合、分发、上传等操作。
[0082]
本实施例中,本发明实施部署环境时,可以部署在数据中心的多台物理服务器中,服务器间通过域内网络互连,其中一个物理服务器为中心节点,充当顶层参数服务器,其它服务器为参与节点,充当中间层参数服务器,中心节点需要和所有参与节点(中间层参数服务器)通过局域网相互通信,中间层参数服务器和所管辖的用户通过广域网进行通信,物理节点间的计算能力可以不同。这些物理节点均需部署有深度学习软件,能实现模型的聚合、分发、上传等操作。
[0083]
本实施例中,实施部署环境为数据中心的一台高性能服务器中,如图1所示,服务器中有一个实现顶层参数服务器功能的中心进程和实现中间层参数服务器功能的多个从进程(虚拟的中间层参数服务器),进程间可以相互通信。
[0084]
本实施例中,实施部署环境为部署在数据中心的多台物理服务器中,如图2所示,数据中心包括多个服务器,其中一个中心节点部署顶层参数服务器,其余节点部署中间层参数服务器。数据中心内节点间通过域内网络互连。
[0085]
本发明提出了一种技术解决数据非独立同分布引起的联邦学习的性能短板问题,上述技术应在数据在节点间非独立同分布的前提下,设计与优化联邦学习训练方法和架构,使得数据分布趋于均匀,同时在保证模型并行度的前提下提高联邦学习的精度和收敛速度。根据上述特点,本发明提出了一种面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练架构。所述面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练架构可在保护用户标签的前提下,通过计算节点数据分布和全局分布的相似性,对用户进行评分,所述面向非独立同分布数据的联邦学习用户数据分布相似性
评估、分组和训练架构可以根据用户评分进行高效的分组处理,使得组间数据分布近似均匀,解决非独立同分布问题。所述面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练架构可以将全同步策略与链式联邦训练策略相结合,在保证模型并行度的前提下大幅度提高训练精度和收敛速度、显著减少通信负载、节省计算资源。同时所述面向非独立同分布数据的联邦学习用户数据分布相似性评估、分组和训练架构可根据组间分布的差异性自适应调整采样率,进行组间采样,提高联邦学习的训练效果和自适应性,同时大幅度节省计算和通信开销。本发明通过以上设计,解决了联邦学习非独立同分布数据带来的模型精度受损的问题,也解决了同步算法下模型收敛速度慢的问题,同时减少了每轮的计算和通信开销,缓解了已有算法下个人用户标签在上传过程中容易泄露的问题。
[0086]
实施例2
[0087]
本发明提供了一种面向非独立同分布数据的分层用户训练管理方法,包括以下步骤:
[0088]
s1、训练准备阶段:通过计算中间层参数服务器的总数据分布和全局数据总分布向量的相似性对参与用户进行评分,并根据评分结果利用顶层参数服务器对参与用户进行分组,并将分组结果广播至中间层参数服务器;
[0089]
本发明提出一种保护个体用户数据分布的分层用户管理架构,工作流程如图3所示,所述架构通过中间层参数服务器实现计算用户分组和管理用户的功能。该架构的运行过程如下:
[0090]
s101、通过各中间层参数服务器随机选择参与用户;
[0091]
s102、通过中间层参数服务器收集组内参与用户的数据分布,并相加得到中间层参数服务器总的数据分布并将所述数据分布上传至顶层参数服务器;
[0092]
s103、由顶层参数服务器接收中间层参数服务器的数据分布并利用联邦平均算法聚合得到全局数据总分布向量v
global

[0093]
s104、通过顶层参数服务器将所述全局数据总分布向量v
global
广播至各中间层参数服务器;
[0094]
s105、由各中间层参数服务器通过所述全局数据总分布向量v
global
以及组内相邻参与用户的数据分布向量,计算得到相邻参与用户的评分,并上传至顶层参数服务器,相邻参与用户的评分的表达式如下:
[0095]
score
i
=cos<v
global
,v
local_i
>
[0096]
v
global
=[n
g1
,n
g2
,n
g3
,...,n
gm
]
[0097]
v
local_i2
=[n
i1
,n
i2
,n
i3
,...,n
im
]
[0098]
其中,score
i
表示相邻参与用户的评分,v
global
表示全局数据总分布向量,v
local_i
表示组内相邻的参与用户的数据分布向量,n
gm
表示全局拥有的第m类数据的数量,n
im
表示第i个参与用户的第m类数据的数量;
[0099]
s106、由顶层参数服务器根据所述相邻参与用户的评分对参与用户按照分组策略进行分组,并将分组结果广播至中间层参数服务器,其实现方法如下:
[0100]
s1061、由顶层参数服务器对所述相邻参与用户的评分从高到底进行排序,得到包含所有参与用户得分的数组score_list;
[0101]
s1062、根据参与联邦学习的用户数量以及中间层参数服务器的数量,将数组
score_list由高到低分成num
mediators
份,其中,每一份含有k或k 1个参与用户,所述k的表达式如下:
[0102][0103]
其中,k表示每个支链的参与用户的数量,num
clients
表示参与联邦学习的用户数量,num
mediators
表示中间层参数服务器的数量;
[0104]
s1063、将每一份数组score_list随机分配至中间层参数服务器,完成对参与用户的分组,并将分组结果广播至中间层参数服务器;
[0105]
s107、由中间层参数服务器根据分组结果,重新连接对应的参与用户,完成对参与用户的分组。
[0106]
本实施例中,本发明提出一种基于用户数据分布相似性的评分机制,所述机制引入client score来衡量用户数据分布到全局数据分布间的距离。client score高的用户,和全局分布偏离程度小,可靠性高。score低的用户和全局分布的偏离程度大,可靠性低。假设全局数据的分布为v
global
=[n
g1
,n
g2
,n
g3
......n
gm
],用户端的数据分布为v
local_i2
=[n
i1
,n
i2
,n
i3
......n
im
],score的方式是:
[0107]
score
i
=cos<v
global
,v
local_i
>
[0108]
本实施例中,本发明提出一种基于数据分布相似性评分的同构分组方法,如图4所示,在训练准备阶段,顶层参数服务器接受到各个用户的得分之后,对用户进行分组,分组策略如下:
[0109]
根据用户的分数从高到底进行排序。得到score_list;将score_list分成(或k 1)份,每一份的数量为num
mediators
;将每一份的用户随机分配给中间层参数服务器(即每一个mediator拥有score由高到低的一套组合)。
[0110]
注:若有不能整除的情况,最后剩下的用户随机分配到不同的中间层参数服务器(最终,每个mediator拥有k或k 1个clients.)。
[0111]
s2、训练阶段:根据分组结果,由中间层参数服务器在参与用户支链内利用序列联邦串行算法对模型副本进行串行训练,由中间层参数服务器在参与用户支链之间利用联邦平均算法对模型副本进行并行训练和聚合处理;以及在中间层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型,完成面向非独立同分布数据的分层用户的训练管理,其实现方法如下:
[0112]
s201、由顶层参数服务器将当前的全局模型w
r
分发至选择的中间层参数服务器;
[0113]
s202、根据分组结果,在每一轮训练中,利用序列联邦串行算法以及联邦平均算法对模型副本进行训练和聚合处理,并由各个中间层参数服务器并行执行mediatorupdate(m,w
r
),将结果返回至顶层参数服务器,记为w
jr 1
,其中,mediatorupdate(m,w
r
)表示中间层参数服务器所执行的训练函数,w
jr 1
表示训练第r 1轮第j个中间层参数服务器的模型副本,其实现方法如下:
[0114]
s2021、根据分组结果,在每一轮训练中,按照预设的并行度增长曲线在分组内将串行训练的长链分成n
segments
段;
[0115]
s2022、在n
segments
段中由中间层参数服务器利用序列联邦串行算法在参与用户支链内对模型副本训练,以及利用联邦平均算法在参与用户支链之间对模型副本进行并行训
练和聚合处理,得到此中间层参数服务器的模型副本记为w
jr 1

[0116]
s2023、将中间层参数服务器的模型副本w
jr 1
传到顶层参数服务器;
[0117]
s203、在顶层参数服务器之间利用联邦聚合算法对并行训练后的模型副本进行聚合处理,得到最终的全局模型w
r 1
,完成面向非独立同分布数据的分层用户的训练管理,其中,最终的全局模型w
r 1
的表达式如下:
[0118][0119]
其中,n
j
表示第j个中间层参数服务器的样本数量,m表示中间层参数服务器的总数,n表示总的样本数量,w
jr 1
表示训练第r 1轮第j个中间层服务器的模型副本,w
r 1
是第r 1轮的全局模型。
[0120]
本实施例中,训练阶段中间层参数服务器执行以下任务:
[0121]
任务一、被顶层参数服务器取样到的中间层参数服务器控制其内部节点按照训练策略进行训练。
[0122]
任务二、若有节点退出训练或节点的数据分布发生变化,每个中间层参数服务器每r轮统计一次组内的数据分布,接收v
global
,动态更新并上传到顶层参数服务器。
[0123]
本实施例中,本发明提出一种面向近似独立同分布用户组的序列联邦学习算法,如图5所示,在每一个中间层参数服务器管辖的节点之间,采取序列联邦学习算法,即:一个用户完成训练之后,将模型更新上传到中间层参数服务器,一个用户从中间层参数服务器获得更新的模型副本后,再开始接着新的模型训练。对序列联邦算法的叙述如下:
[0124]
假设一条“训练链”长度为l。
[0125]
步骤一:将模型分发给第一个用户;
[0126]
步骤二:该用户在此模型基础上,进行梯度下降,即(e
l
=1,2,...e
l
);
[0127]
步骤三:用户训练完后,将更新参数传给中间层参数服务器,中间层参数服务器更新参数;
[0128]
步骤四:中间层参数服务器将参数传给下一个用户,重复上述过程(1,2,3,...,l),直到“训练链”内的用户依次训练完毕。
[0129]
本实施例中,本发明提出一种从串行向并行转化的阶梯式训练策略,如图6所示,图6中f(r)表示并行度增长曲线,在训练过程中,按照设定的并行度增长曲线,在组内将串行训练的“长链”分成n
segments
段,即形成n
segments
条参与用户支链。段内上述的序列联邦算法,段之间利用并行的联邦平均算法,随着段数的“阶梯式”增加,组内的训练从开始的全串行(组内所有用户构成一条“长链”,利用序列联邦)向全并行(段数和组内用户数相等,每个用户间并行计算)过渡。
[0130]
n
segments
=f(r)
[0131]
在本发明以线性增长为例进行说明即
[0132]
n
segments
=β.r
[0133]
其中,β是设定的并行度增长因子,r为训练进行的轮数。所以,如图7所示,整个训
练策略可以概括为:分组之内,通过中间层参数服务器,参与用户支链内利用序列联邦串行更新,参与用户支链之间利用联邦平均算法并行更新;分组之间,通过顶层参数服务器,利用联邦平均算法并行更新。整个训练步骤如下:
[0134]
每一轮的训练步骤如下:(r=1,2,3...r)
[0135]
步骤一:顶层参数服务器将当前的全局模型w
r
分发给选择的中间层参数服务器。
[0136]
步骤二:中间层参数服务器并行执行mediatorupdate(m,w
r
),并将结果返回给顶层参数服务器,记为w
mr 1

[0137]
步骤三:聚合中间层参数服务器返回的模型,得到全局模型:
[0138][0139]
其中,中间层参数服务器执行mediatorupdate(m,w
r
)的流程如下(第e
m
轮e
m
=1,2,...,e
m
):
[0140]
步骤一:将全局模型分发给每个参与用户支链内的第一个用户;
[0141]
步骤二:收到模型的用户在此模型基础上,进行梯度下降,即(e
l
=1,2,...,e
l
),其中,表示本地训练e
l
轮时的模型副本,w表示当前模型参数,η表示本地学习率,l表示损失函数,e
l
表示本地正在训练的轮数,e
l
表示本地训练的总轮数;
[0142]
步骤三:用户训练完后,将新的参数传给中间层参数服务器,中间层参数服务器收到模型后,立即将模型转发给该用户所处参与用户支链内的下一个用户;
[0143]
步骤四:下一个用户接收模型后,进行计算,重复步骤二、三,直到参与用户支链内的顺序训练完成;
[0144]
步骤五:待所有参与用户支链的最后一个用户完成训练后,中间层参数服务器接收每个参与用户支链内的训练结果(即最后一个用户的模型),进行联邦聚合,得到w
mr 1

[0145]
本实施例中,本发明提出一种基于中间参数服务器得分的采样策略,在训练过程中,每隔一定的轮数顶层参数服务器根据score
mediator
确定每个中间层参数服务器被选取到的概率:
[0146][0147]
其中,pr(mediator
j
)表示编号为j的中间层参数服务器参与训练的概率,score
mediatorj
表示编号为j的中间层参数服务器的评分,然后根据训练规模、需求(人为设置的参数num
mediators_per_round
),在mediators之中根据概率不放回抽样num
mediators_per_round
个mediator进行训练。
[0148]
本实施例中,如图8所示,利用同构分组策略的本方法相比起fedavg算法和随机分组的方法,收敛精度明显提升,且利用同构分组策略的本方法相比起最常用的fedavg、fedprox算法和未加入分组、训练策略的随机分组方法,收敛的更快。
[0149]
本实施例中,如图9所示,每次训练只需要较少的组、较少的节点参与训练,也能在
取得很好的收敛速度和精度,从而大幅节省了整个训练的计算开销。
[0150]
本发明通过以上设计,解决了联邦学习非独立同分布数据带来的模型精度受损的问题,也解决了同步算法下模型收敛速度慢的问题,同时减少了每轮的计算和通信开销,缓解了已有算法下个人用户标签在上传过程中容易泄露的问题。
转载请注明原文地址:https://win.8miu.com/read-25480.html

最新回复(0)