CN117176729A - 应用于联邦学习的客户端选择方法、设备和存储介质 - Google Patents
应用于联邦学习的客户端选择方法、设备和存储介质 Download PDFInfo
- Publication number
- CN117176729A CN117176729A CN202310849900.2A CN202310849900A CN117176729A CN 117176729 A CN117176729 A CN 117176729A CN 202310849900 A CN202310849900 A CN 202310849900A CN 117176729 A CN117176729 A CN 117176729A
- Authority
- CN
- China
- Prior art keywords
- client
- subset
- expanded
- clients
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010187 selection method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000012549 training Methods 0.000 claims abstract description 132
- 238000012216 screening Methods 0.000 claims abstract description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 77
- 238000009826 distribution Methods 0.000 claims description 62
- 230000006854 communication Effects 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 42
- 230000006872 improvement Effects 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000005304 joining Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000010845 search algorithm Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000003121 nonmonotonic effect Effects 0.000 description 8
- PBMDISAJJZPQKQ-UHFFFAOYSA-N propyl 1,2,3,6-tetrahydropyridine-4-carboxylate Chemical compound CCCOC(=O)C1=CCNCC1 PBMDISAJJZPQKQ-UHFFFAOYSA-N 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000009133 cooperative interaction Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003595 spectral effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种应用于联邦学习的客户端选择方法,该方法包括:接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数;基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集;将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。本申请实施例还公开了一种应用于联邦学习的客户端选择设备和存储介质。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用于联邦学习的客户端选择方法、设备和存储介质。
背景技术
联邦学习是一种分布式的机器学习方法,将模型分散在各个终端设备上进行训练,然后上传至云端服务器进行聚合得到全局模型,如此在不分享各终端设备的私有数据的情况下,训练出一个全局模型。
一般,会从终端设备集合中随机选取一部分终端设备来作为联邦学习的参与方,以提高训练速率、减少训练成本。然而,随机选取的终端设备在训练模型时存在训练时间不一致的情况,导致全局模型的训练效率差。
发明内容
为解决上述技术问题,本申请实施例期望提供一种应用于联邦学习的客户端选择方法、设备和存储介质,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
本申请的技术方案是这样实现的:
一种应用于联邦学习的客户端选择方法,所述方法包括:
接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数;
基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集;
将所述第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对所述第一联邦学习模型进行训练得到目标联邦学习模型。
上述方案中,所述基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集,包括:
采用客户端选择算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出所述第一目标客户端子集。
上述方案中,所述采用客户端选择算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出所述第一目标客户端子集,包括:
基于系统性能阈值、数据量阈值、所述每一初始客户端的系统性能、以及所述每一初始客户端具有的训练数据集的数据量,从所述客户端集群中枚举出至少一个第一客户端子集;
从所述至少一个第一客户端子集中,确定数据量为所述数据量阈值的至少一个待扩展客户端子集;
基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,对所述至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集;
将所述至少一个第一客户端子集和所述至少一个第二客户端子集中的数据性能最高的客户端子集,确定为所述第一目标客户端子集。
上述方案中,所述基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,对所述至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集,包括:
从所述客户端集群中,确定不包含于每一所述待扩展客户端子集的至少一个待选择客户端;
基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,确定每一所述待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况;
基于所述提升情况,不断从所述至少一个待选择客户端中,确定对所述每一待扩展客户端子集的集合性能提升最大、且在加入所述每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的第二目标客户端,并将所述第二目标客户端加入所述每一待扩展客户端子集,得到所述每一待扩展客户端子集对应的第二客户端子集。
上述方案中,所述基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,确定每一所述待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况,包括:
基于所述每一初始客户端的模型参数,确定所述每一待选择客户端加入所述每一待扩展客户端子集后的第一数据性能、以及所述每一待扩展客户端子集的第二数据性能;
确定所述每一待选择客户端的系统性能;
基于所述第一数据性能、所述第二数据性能、以及所述每一待选择客户端的系统性能,确定所述每一待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况。
上述方案中,所述基于所述每一初始客户端的模型参数,确定所述每一待扩展客户端子集的第二数据性能,包括:
基于所述每一待扩展客户端子集中每一待扩展客户端的模型性能、所述每一初始客户端的模型参数,确定所述每一待扩展客户端与所述每一初始客户端之间的数据分布情况的第一相似性;
基于所述第一相似性,确定所述每一待扩展客户端子集的覆盖性;
基于所述每一待扩展客户端的模型性能,确定所述每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的第二相似性;
基于所述第二相似性,确定所述每一待扩展客户端子集的差异性;
基于所述每一待扩展客户端子集的覆盖性、所述每一待扩展客户端子集的差异性、以及所述每一待扩展客户端子集的覆盖性对应的权重、以及所述每一待扩展客户端子集的差异性对应的权重,确定所述每一待扩展客户端子集的第二数据性能。
上述方案中,所述基于所述每一待扩展客户端子集中每一待扩展客户端的模型性能、所述每一初始客户端的模型参数,确定所述每一待扩展客户端与所述每一初始客户端之间的数据分布情况的第一相似性,包括:
基于所述每一待扩展客户端的模型性能与所述每一初始客户端的模型参数的差值的绝对值的倒数,确定所述第一相似性。
上述方案中,所述确定所述每一待选择客户端的系统性能,包括:
基于所述每一待选择客户端的处理器在运算时的工作频率和所述每一待选择客户端具有的训练数据集的数据量,确定所述每一待选择客户端的计算时延;
基于所述每一待选择客户端的传输功率和所述每一待选择客户端的信道带宽,确定所述每一待选择客户端的通信时延;
基于所述每一待选择客户端的计算时延和所述每一待选择客户端的通信时延,确定所述每一待选择客户端的系统性能。
上述方案中,所述基于所述提升情况,不断从所述至少一个待选择客户端中,确定对所述每一待扩展客户端子集的集合性能提升最大、且在加入所述每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将所述第二目标客户端加入所述每一待扩展客户端子集,得到所述每一待扩展客户端子集对应的第二客户端子集,包括:
基于所述提升情况,确定所述至少一个待选择客户端中对所述每一待扩展客户端子集的集合性能提升最大的客户端并作为第二目标客户端;
在所述第二目标客户端加入所述每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的情况下,将所述第二目标客户端加入所述每一待扩展客户端子集,得到第一次扩展后的所述每一待扩展客户端子集;
在所述至少一个待选择客户端中存在未确定的待选择客户端的情况下,基于所述提升情况,确定所述未确定的待选择客户端中对所述每一待扩展客户端子集的集合性能提升最大的客户端并作为下一个第二目标客户端;
在所述下一个第二目标客户端加入所述第一次扩展后的每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的情况下,将所述下一个第二目标客户端加入所述第一次扩展后的每一待扩展客户端,直至所述至少一个待选择客户端中不存在未确定的待选择客户端,得到所述每一待扩展客户端子集对应的第二客户端子集。
上述方案中,所述采用客户端选择算法,基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集,包括:
采用贪心算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第三客户端子集;
采用搜索算法,对所述第三客户端子集进行优化,得到优化后的所述第三客户端子集;
采用所述贪心算法,对所述客户端集群中不包含于所述优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;
将所述第三客户端子集、所述优化后的第三客户端子集、以及所述第四客户端子集中的数据性能最高的客户端子集,确定为所述第一目标客户端子集。
一种应用于联邦学习的客户端选择设备,所述设备包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的应用于联邦学习的客户端选择程序,以实现上述的应用于联邦学习的客户端选择方法的步骤。
一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的应用于联邦学习的客户端选择方法的步骤。
本申请实施例所提供的应用于联邦学习的客户端选择方法、设备和存储介质,可以接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数,基于每一初始客户端的模型参数和每一初始客户端的系统性能从客户端集群中筛选出第一目标客户端子集,接着将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。如此,由于每一客户端的模型参数能够体现每一客户端的数据分布情况,因此基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出参与联邦学习的至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选联邦学习的参与方;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高,且各个客户端之间的性能较为均衡,因而不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
附图说明
图1为本申请实施例提供的一种联邦学习的流程示意图;
图2为本申请实施例提供的一种应用于联邦学习的客户端选择方法的流程示意图;
图3为本申请实施例提供的另一种应用于联邦学习的客户端选择方法的流程示意图;
图4(a)为本申请实施例提供的一种系统易异构性对联邦学习的影响示意图;
图4(b)为本申请实施例提供的一种数据易异构性对联邦学习的影响示意图;
图5为本申请实施例提供的一种应用于联邦学习的客户端选择系统的流程示意图;
图6为本申请实施例提供的一种应用于联邦学习的客户端选择方法在模型训练场景下的流程示意图;
图7为本申请实施例提供的一种应用于联邦学习的客户端选择方法中的GPE算法的流程示意图;
图8为本申请实施例提供的一种应用于联邦学习的客户端选择方法中的IGPE算法的流程示意图;
图9为本申请实施例提供的一种应用于联邦学习的客户端选择装置的结构示意图;
图10为本申请实施例提供的一种应用于联邦学习的客户端选择设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
应理解,说明书通篇中提到的“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“本申请实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在未做特殊说明的情况下,电子设备执行本申请实施例中的任一步骤,可以是电子设备的处理器执行该步骤。还值得注意的是,本申请实施例并不限定电子设备执行下述步骤的先后顺序。另外,不同实施例中对数据进行处理所采用的方式可以是相同的方法或不同的方法。还需说明的是,本申请实施例中的任一步骤是电子设备可以独立执行的,即电子设备执行下述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
为了更好地理解本申请实施例提供的应用于联邦学习的客户端选择方法,下面先对相关技术中的方案进行说明。
近年来,物联网(Internet of Things,IoT)设备的大幅增长引起了社会各界的极大关注。物联网设备被广泛应用于人工智能、机器学习(Machine Learning,ML)以及实时数据处理等多个领域,这使得物联网设备产生的数据呈现指数级地增长。根据目前对物联网大数据的统计,预计到2025年,这个数字将超过73.1泽字节(zettabytes)。然而,无线网络缺乏足够的网络带宽和容量来应对大幅增长的流量;并且,诸如《通用数据保护条例》(General Data Protection Regulation,GDPR)、以及《中华人民共和国个人信息保护法》(Personal Information Protection Law,PIPL)等隐私保护法规,都禁止私密数据的分享,这导致了集中式下的训练变得不再可行。
为了解决上述通信成本、数据隐私以及合法化的问题,由谷歌(Google)提出了一种联邦学习(Federated Learning,FL)的训练方法。联邦学习是一种分布式的机器学习方法,如图1所示,FL的训练过程可分为四个阶段:1、每一物联网设备从FL服务器(或云服务器)下载一个需要进行训练的模型;2、每一物联网设备采用本地数据对本地模型进行训练,得到训练后的模型参数;3、将训练后的模型参数上传至FL服务器;4、FL服务器对这些训练后的模型参数进行聚合,得到全局模型。上述四个阶段是反复进行的,直至全局模型收敛。一般来说,模型的准确性对于FL和传统的ML是一样重要的,以在更短的训练延迟内实现更高的模型准确性,即更好的time-to-accuracy表现,是联邦学习的主要评价指标。
然而,FL在实践中面临着一系列的挑战,最值得关注的是系统异质性和统计异质性。系统异构性是指不同物联网设备的系统性能是不同的;如,不同物联网设备的CPU(中央处理器,Central Processing Unit)频率、传输功率和备用能源等系统性能是不同的,这大大导致了FL中每个物联网设备训练时间的不同。此外,在同步FL中,整体训练延迟和模型精度取决于资源有限、系统性能最差的物联网设备,即掉队者。因此,需要选择具有较高系统性能的物联网设备参与FL。数据异构性是指FL过程中物联网设备之间的数据集是非独立性和同分布的(Non-Independent Identically Distribution,Non-IID),这意味着不同的物联网设备之间的数据分布存在很大的差异。这种情况下,具有非IID数据集的物联网设备将会训练出不同的模型,进而在FL服务器进行聚合时会影响全局模型的准确性,会导致物联网设备和FL服务器之间的模型收敛方向出现分歧。因此,在异构环境中,以同步的方式在所有物联网设备上同时执行ML任务可能会导致整体训练过程效率低下。为此,在每一轮模型训练中,FL服务器可以选择物联网设备集合的一个子集,而不是所有设备,因此客户端选择已经成为提高FL效率的一种趋势性方法。其中,最为经典的客户端选择算法便是联邦平均算法,该算法在每一轮迭代中,从所有客户端(物联网设备)中随机地选取一部分的客户端参与训练,有效的降低了通信成本,但是其无法保障所选择客户端有较好的通信与计算能力,也不能选择出具有代表性数据的客户端。
因此,需要考虑系统异构性和数据异构性来选择出总体性能较佳的客户端。针对此,现有的改进方案:1、从客户端集群中选择出系统性能较优的客户端,但是,在数据非IID分布的情况下,模型的准确性会出现抖动。2、从客户端集群中选择出数据分布具有代表性的客户端,但是,这会导致选择出系统性能差的不良设备,从而增加训练延迟。
针对上述问题,本申请实施例提供一种应用于联邦学习的客户端选择方法,该方法可以应用于服务器(如,云端服务器、物理服务器等)中,参照图2所示,该方法包括以下步骤:
步骤201、接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数。
在本申请实施例中,由于全局模型的训练需要经过多轮训练,每一客户端在每轮训练后均会得到一个训练后的模型和训练后的模型参数,因此服务器在对每轮次的模型参数进行聚合时,均可以根据本申请实施例提供的应用于联邦学习的客户端选择方法来筛选下一轮次参与联邦学习的客户端。当然,服务器根据第一轮次的模型参数和客户端的系统性能筛选出参与联邦学习的客户端后,之后可以一直将第一轮次筛选出的客户端作为联邦学习的参与方,对模型进行训练,直至得到全局模型。本申请实施例以根据第一轮次的模型参数和客户端的系统性能筛选参与联邦学习的客户端为例进行说明。
其中,客户端集群中可以包括至少一个客户端,可以将客户端集群中的客户端称之为初始客户端。本申请实施例中的参与联邦学习的物联网设备可以称之为客户端,物联网设备指的可以是笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等能够接入网络的设备。第一联邦学习模型可以为本次联邦学习要训练的模型。在一种可行的实现方式中,第一联邦学习模型可以是未训练过的模型,也可以是训练过但未完全训练好的模型。每一初始客户端的模型参数,是指每一初始客户端通过自身数据集对第一联邦学习模型进行训练后得到的多个最优参数。
在一种可行的实现方式中,服务器可以主动将第一联邦学习模型发送至客户端集群中的每一初始客户端;然后,每一初始客户端基于自身的数据集对第一联邦学习模型进行训练,得到训练后的第一联邦学习模型和训练后的模型参数;接着,每一初始客户端将训练后的第一联邦学习模型和训练后的模型参数发送至服务器,如此服务器就可以接收到每一初始客户端对应的训练后的第一联邦学习模型和训练后的模型参数。
在另一种可行的实现方式中,客户端集群中的每一初始客户端可以主动竞争联邦学习的参与方。具体地,客户端集群中的每一初始客户端可以主动从服务器中获取第一联邦学习模型;然后,每一初始客户端基于自身的数据集对第一联邦学习模型进行训练,得到训练后的第一联邦学习模型和训练后的模型参数;接着,每一初始客户端将训练后的第一联邦学习模型和训练后的模型参数发送至服务器,如此服务器就可以接收到每一初始客户端对应的训练后的第一联邦学习模型和训练后的模型参数。
步骤202、基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集。
其中,第一目标客户端子集是从客户端集群中筛选出的满足总体性能要求的客户端子集,用于作为联邦学习的参与方对模型进行训练。每一初始客户端的系统性能可以表征每一初始客户端的通信质量和处理速率。在一种可行的实现方式中,可以通过每一初始客户端的通信时延和计算时延,来体现每一初始客户端的系统性能。
在本申请实施例中,由于每一客户端在本地训练模型的过程中,会拟合本地数据集的数据特征进行模型参数的更新,因此模型参数与客户端的数据集具有一定的关联关系,那么可以通过每一客户端的模型参数来体现每一客户端的数据分布情况。如此,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选参与联邦学习的客户端;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高、且整体性能较为均衡,进而能够提高模型的训练效率。
在一种可行的实现方式中,可以预先设置总体性能要求,然后基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出满足总体性能要求的第一目标客户端子集。这种情况下,筛选出的客户端子集是客户端集群中满足总体性能要求下的最优客户端子集。其中,总体性能要求可以包括客户端子集的总体数据性能、客户端子集的总体数据集的数据量等。
步骤203、将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。
其中,至少一个第一目标客户端是指第一目标客户端子集中的客户端,用于作为联邦学习的参与方。目标联邦学习模型是已训练好的全局模型。将至少一个第一目标客户端作为联邦学习的参与方,也即,将客户端集群中的总体性能较高且较为均衡的客户端子集作为联邦学习的参与方,如此,通过总体性能较高且较为均衡的客户端子集来训练全局模型,能够使得训练时间较为一致,进而能够提高目标联邦学习模型的整体训练速率。
在一种可行的实现方式中,服务器将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方后,可以根据联邦学习模型的训练要求确定每一第一目标客户端的训练参数,然后将每一第一目标客户端的训练参数发送至对应的第一目标客户端;每一第一目标客户端根据训练参数和本地训练数据集对第一联邦学习模型进行训练,然后将训练后的第一联邦学习模型和训练后的模型参数发送至服务器;服务器对每一第一目标客户端的模型参数进行聚合得到总模型参数,以完成一次联邦学习模型的更新;接着,服务器将总模型参数发送至每一第一目标客户端,以继续进行训练,直至多次更新后的联邦学习模型满足迭代停止条件,得到目标联邦学习模型
本申请实施例所提供的应用于联邦学习的客户端选择,由于每一客户端的模型参数能够体现每一客户端的数据分布情况,因此基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出参与联邦学习的至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选联邦学习的参与方;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高,且各个客户端之间的性能较为均衡,因而不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
基于前述实施例,本申请实施例提供一种应用于联邦学习的客户端选择方法,应用于服务器,参照图3所示,该方法包括以下步骤:
步骤301、接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数。
步骤302、采用客户端选择算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集。
其中,第一目标客户端子集是从客户端集群中筛选出的总体性能要求较高、且较为均衡的客户端子集。客户端选择算法用于基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集。
在一种可行的实现方式中,客户端选择算法可以为部分枚举客户端选择算法(Greedy with Partial Enumeration,GPE);或者,客户端选择算法还可以为迭代式枚举客户端选择算法(Iterative Greedy with Partial Enumeration,IGPE);示例性地,可以采用贪心算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出满足总体性能要求的第一目标客户端子集。
步骤303、将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。
在一些实施例中,在客户端选择算法为GPE算法(贪心算法)的情况下,步骤302可以通过以下步骤3021至步骤3023来实现:
步骤3021、基于系统性能阈值、数据量阈值、每一初始客户端的系统性能、以及每一初始客户端具有的训练数据集的数据量,从客户端集群中枚举出至少一个第一客户端子集。
其中,要筛选的客户端子集的总体性能要求可以包括但不限于:客户端子集的系统性能满足系统性能阈值、且客户端子集的总体数据集的数据量满足数据量阈值。其中,系统性能阈值与数据量阈值均可以预先设置,系统性能阈值可以为客户端子集的系统性能的上限,系统性能阈值可以表示为d;数据量阈值可以为客户端子集的总体数据集的数据量的上限,数据量阈值可以表示为Bm。至少一个第一客户端子集是从客户端集群中枚举出的满足总体性能要求的客户端子集。
在一种可行的实现方式中,满足系统性能阈值的客户端子集,可以指的是客户端子集的系统性能小于或等于系统性能阈值;客户端子集的总体数据集的数据量满足数据量阈值,可以指的是客户端子集的总体数据集的数据量小于或等于数据量阈值。这种情况下,至少一个第一客户端子集可以为,从客户端集群中枚举出的系统性能小于或等于系统性能阈值、总体数据集的数据量小于或等于数据量阈值的客户端子集。
步骤3022、从至少一个第一客户端子集中,确定数据量为数据量阈值的至少一个待扩展客户端子集。
其中,至少一个待扩展客户端子集是至少一个第一客户端子集中,数据量为数据量阈值的客户端子集。
步骤3023、基于每一初始客户端的模型参数和每一初始客户端的系统性能,对至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集。
其中,至少一个第二客户端子集是对至少一个待扩展客户端子集进行扩展后的客户端子集。基于每一初始客户端的模型参数和每一初始客户端的系统性能对至少一个待扩展客户端子集进行扩展,是为了在保证总体性能要求的情况下,尽可能地扩充至少一个待扩展客户端子集。
在一种可行的实现方式中,可以根据每一初始客户端的模型参数和每一初始客户端的系统性能,确定客户端集群中不包含于每一待扩展客户端子集的客户端对每一待扩展客户端子集的集合性能的提升情况,根据提升情况对每一待扩展客户端子集进行扩展,得到每一待扩展客户端子集扩展后的第二客户端子集。
步骤3024、将至少一个第一客户端子集和至少一个第二客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
其中,第一目标客户端子集是至少一个第一客户端子集和至少一个第二客户端子集中的数据性能最高的客户端子集。
在一种可行的实现方式中,可以先从至少一个第一客户端子集中确定数据性能最高的客户端子集,再从至少一个第二客户端子集中确定数据性能最高的客户端子集,然后比较这两个客户端子集的数据性能,将数据性能高的客户端子集作为第一目标客户端子集。
在一些实施例中,步骤3023可以通过以下步骤3023a至步骤3023c来实现:
步骤3023a、从客户端集群中,确定不包含于每一待扩展客户端子集的至少一个待选择客户端。
其中,至少一个待选择客户可以为客户端集群与每一待扩展客户端子集的差集。
步骤3023b、基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。
其中,基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况,指的是,基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端是否能提升每一待扩展客户端子集的集合性能,以便对待扩展客户端子集进行扩展。
在一种可行的实现方式中,可以根据每一初始客户端的模型参数,确定每一待选择客户端加入每一待扩展客户端子集后的数据性能、以及每一待扩展客户端子集的数据性能;根据每一待选择客户端的系统性能、每一待选择客户端加入每一待扩展客户端子集后的数据性能、以及每一待扩展客户端子集的数据性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。
步骤3023c、基于提升情况,不断从至少一个待选择客户端中,确定对每一待扩展客户端子集的集合性能提升最大、且在加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将第二目标客户端加入每一待扩展客户端子集,得到每一待扩展客户端子集对应的第二客户端子集。
具体地,步骤3023c的实现方式可以为:基于提升情况,确定至少一个待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为第二目标客户端;在第二目标客户端加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将第二目标客户端加入每一待扩展客户端子集,得到第一次扩展后的每一待扩展客户端子集;在至少一个待选择客户端中存在未确定的待选择客户端的情况下,基于提升情况,确定未确定的待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为下一个第二目标客户端;在下一个第二目标客户端加入第一次扩展后的每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将下一个第二目标客户端加入第一次扩展后的每一待扩展客户端,直至至少一个待选择客户端中不存在未确定的待选择客户端,得到每一待扩展客户端子集对应的第二客户端子集。
对于任一待扩展客户端子集,可以从这个待扩展客户端子集对应的多个待选择客户端中,确定对这个待扩展客户端子集的集合性能的提升最大、且加入这个待扩展客户端子集后的总系统性能满足系统性能阈值的客户端,将这个客户端作为第二目标客户端;然后从其余的待选择客户端中,继续确定对这个待扩展客户端子集的集合性能的提升最大、且加入这个待扩展客户端子集(此时的待扩展客户端子集包括第一次确定的第二目标客户端)后的总系统性能满足系统性能阈值的客户端,得到新的第二目标客户端,直至这个待扩展客户端子集对应的多个待选择客户端均已确定完,得到这个待扩展客户端子集对应的第二目标客户端。
在一些实施例中,步骤3023b可以通过以下步骤A至步骤C来实现:
步骤A、基于每一初始客户端的模型参数,确定每一待选择客户端加入每一待扩展客户端子集后的第一数据性能、以及每一待扩展客户端子集的第二数据性能。
其中,第一数据性能指的是每一待选择客户端加入每一待扩展客户端子集后的整体数据性能。第二数据性能指的是每一待扩展客户端子集的数据性能。
由于客户端的模型参数可以表征客户端的数据分布情况,因此可以基于每一初始客户端的模型参数,确定每一待选择客户端加入每一待扩展客户端子集后的第一数据性能、以及每一待扩展客户端子集的第二数据性能。
在一种可行的实现方式中,可以基于每一待扩展客户端的模型参数,确定每一待扩展客户端子集的第二数据性能;基于每一待选择客户端的模型参数和第二数据性能,确定第一数据性能。具体地,确定任一客户端子集的数据性能的实现方式可以为:基于这个客户端子集中的每一客户端的模型性能,确定这个客户端子集的覆盖性和这个客户端子集的差异性,基于这个客户端子集的覆盖性和这个客户端子集的差异性确定这个客户端子集的数据性能。
步骤B、确定每一待选择客户端的系统性能。
在本申请实施例中,可以基于每一待选择客户端的计算时延和每一待选择客户端的通信时延,确定每一待选择客户端的系统性能。具体地,可以将每一待选择客户端的计算时延和每一待选择客户端的通信时延进行加法运算,得到每一待选择客户端的系统性能。
在一些实施例中,确定每一待选择客户端的计算时延的实现方式可以为:基于每一待选择客户端的处理器在运算时的工作频率和每一待选择客户端具有的训练数据集的数据量,确定每一待选择客户端的计算时延。
其中,每一待选择客户端的处理器在运算时的工作频率可以指的是每一待选择客户端的CPU频率,每一待选择客户端具有的训练数据集的数据量可以指的是每一待选择客户端的数据集尺寸。
在一种可行的实现方式中,可以预先采集客户端集群中每一初始客户端的CPU频率和训练数据集的数据量等性能信息,然后将采集的性能信息存储至服务器;或者,每一初始客户端向服务器发送初次对第一联邦学习模型进行训练后的模型参数时,可以同时发送每一初始客户端的CPU频率和训练数据集的数据量等性能信息;如此,服务器就可以获取到每一初始客户端的CPU频率和训练数据集的数据量,进而确定出每一初始客户端的系统性能。客户端集群中的客户端被称之为初始客户端,待选择客户端是从初始客户端中筛选出的客户端,因此也就能确定待选择客户端的系统性能。
在一种可行的实现方式中,可以基于训练轮次、每一待选择客户端的CPU频率、每一待选择客户端的数据集尺寸、以及数据集中的每一数据所需的CPU周期数,确定每一待选择客户端的计算时延。客户端ki的计算时延的计算公式可以表示为:其中,E是训练轮次,Ci是数据集中的每一数据所需的CPU周期数,/>是每一待选择客户端的数据集尺寸,/>是每一待选择客户端的CPU频率。
在一些实施例中,确定每一待选择客户端的计算时延的实现方式可以为:基于每一待选择客户端的传输功率和每一待选择客户端的信道带宽,确定每一待选择客户端的通信时延。
在一种可行的实现方式中,可以基于每一待选择客户端的传输功率、每一待选择客户端的信道带宽、噪声功率谱密度、以及梯度大小,确定每一待选择客户端的通信时延。客户端ki的通信时延的计算公式可以表示为:
其中,θ是梯度大小,W是信道带宽,是传输功率,No是噪声功率谱密度,/>是通信速率。
步骤C、基于第一数据性能、第二数据性能、以及每一待选择客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。
在一种可行的实现方式中,可以对第一数据性能和第二数据性能进行减法运算,对减法运算后的值和每一待选择客户端的系统性能进行除法运算,得到每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况的计算公式可以表示为:其中,H(SG∪{ki}为第一数据性能,H(SG)为第二数据性能,C(ki)为待选择客户端的系统性能。Φ≤0说明至少一个待选择客户端中的任一待选择客户端加入待扩展客户端子集SG后,都会使SG的总体性能下降。Φ>0说明待选择客户端ki加入待扩展客户端子集SG后,都会使SG的总体性能上升。
在一些实施例中,步骤A可以通过以下步骤A1至步骤A5来实现:
步骤A1、基于每一待扩展客户端子集中每一待扩展客户端的模型性能、每一初始客户端的模型参数,确定每一待扩展客户端与每一初始客户端之间的数据分布情况的第一相似性。
其中,第一相似性指的是每一待扩展客户端与每一初始客户端之间的数据分布情况的相似程度。
在联邦学习的实现过程中,发现客户端之间的模型参数的差值与客户端之间的数据分布情况存在一定的关联关系,如此,可以通过客户端之间的模型参数的差值来体现客户端之间的数据分布差异,以通过模型参数的差值来衡量客户端之间的数据分布情况的相似性。因此,本申请实施例采用客户端之间的模型参数的差值的绝对值的倒数,来作为客户端之间的数据分布情况的相似程度。
具体地,可以基于每一待扩展客户端的模型性能与每一初始客户端的模型参数的差值的绝对值的倒数,确定第一相似性。客户端ki与客户端kj的数据分布情况的相似性的计算公式可以表示为:其中,/>是客户端ki的模型参数,/>是客户端kj的模型参数。
步骤A2、基于第一相似性,确定每一待扩展客户端子集的覆盖性。
在一种可行的实现方式中,对于任一待扩展客户端子集,可以基于这个第一待扩展客户端子集中的每一待扩展客户端与客户端集群中的每一初始客户端之间的数据分布情况的相似性(第一相似性)之和,来确定这个第一待扩展客户端子集的覆盖性。
步骤A3、基于每一待扩展客户端的模型性能,确定每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的第二相似性。
其中,第二相似性指的是每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的相似程度。
具体地,可以基于每一待扩展客户端子集中任意两个待扩展客户端的模型参数的差值的绝对值的倒数,确定第二相似性。
步骤A4、基于第二相似性,确定每一待扩展客户端子集的差异性。
在一种可行的实现方式中,对于任一待扩展客户端子集,可以基于这个第一待扩展客户端子集中的任意两个待扩展客户端之间的数据分布情况的相似性(第二相似性)之和,来确定这个第一待扩展客户端子集的差异性。
步骤A5、基于每一待扩展客户端子集的覆盖性、每一待扩展客户端子集的差异性、以及每一待扩展客户端子集的覆盖性对应的权重、以及每一待扩展客户端子集的差异性对应的权重,确定每一待扩展客户端子集的第二数据性能。
在一种可行的实现方式中,可以对每一待扩展客户端子集的覆盖性和每一待扩展客户端子集的覆盖性对应的权重进行乘积运算,对每一待扩展客户端子集的差异性和每一待扩展客户端子集的差异性对应的权重进行乘积运算,然后将乘积运算后的两个值进行相加,得到每一待扩展客户端子集的第二数据性能。
在其他实施例中,为了进一步提升贪心算法的性能,还可以在算法执行模式上采用多通道式结构,也即IGPE;在客户端选择算法为IGPE算法的情况下,步骤302的实现方式可以为:采用贪心算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第三客户端子集;采用搜索算法,对第三客户端子集进行优化,得到优化后的第三客户端子集;采用贪心算法,对客户端集群中不包含于优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;将第三客户端子集、优化后的第三客户端子集、以及第四客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
其中,第三客户端子集是采用贪心算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出的子集。搜索算法可以为线性搜索(LinearSearch,LS)算法,用于对贪心算法筛选出的子集进行优化。客户端集群中不包含于优化后的第三客户端子集的客户端,是指客户端集群与第三客户端子集的差集,也即,从客户端集群中确定的第三客户端的补集。第四客户端子集是采用贪心算法,对客户端集群与第三客户端子集的差集进行处理后得到的子集。
在一种可行的实现方式中,可以采用GPE算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第三客户端子集;采用LS算法,对第三客户端子集进行优化,得到优化后的第三客户端子集;采用GPE算法,对客户端集群中不包含于优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;将第三客户端子集、优化后的第三客户端子集、以及第四客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例所提供的应用于联邦学习的客户端选择方法,由于每一客户端的模型参数能够体现每一客户端的数据分布情况,因此基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出参与联邦学习的至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选联邦学习的参与方;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高,且各个客户端之间的性能较为均衡,因而不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
下面说明本公开实施例提供的数据处理方法在实际场景中的应用。
联邦学习被广泛应用于医学图像分析、自然语言处理、文本分类、推荐系统等多个领域。示例性地,在文本分类领域,使用多个企业的文本数据训练文本分类模型时,可以将这多个企业中存储有文本数据的笔记本电脑、台式机、以及智能手机等计算机设备作为参与联邦学习的客户端,将这多个企业预先确定的中心服务器作为联邦学习的FL服务器。在医学图像分析领域,使用多个医院的医学图像训练医学图像分析模型时,可以将这多个医院中存储有医学图像的诊断设备、分析设备、扫描设备等医疗设备作为参与联邦学习的客户端,将这多个医院预先确定的中心服务器作为联邦学习的FL服务器。
在联邦学习场景下,由于客户端之间存在系统异构性和数据异构性等因素,在随机选择部分客户端参与训练的模式下,将会对联邦学习整体的训练效率产生消极影响。对于系统异构性而言,参与训练的客户端之间的系统性能不尽相同,具体体现在CPU频率、传输功率和数据集尺寸等方面,直接导致每个客户端进行本地计算和模型(和/或模型参数)上传所需的时间有所区别。如图4(a)所示,在同步式联邦学习模式下,服务器需要等待所有参与训练的客户端上传模型参数之后才开始聚合,因此如果随机选择了一批平均系统性能较差的客户端子集,就会导致每轮训练时延取决于系统性能最差的客户端,更严重的情况将会使得其他完成训练任务的客户端一直处于等待状态,造成Straggler(掉队者)问题,导致单轮次训练时间过长,从而降低训练效率。
针对于数据异构性而言,由于客户端数据集和用户行为存在强相关的关系,客户端本地数据集在标签种类和标签形式等方面都存在较大差异,因此训练数据集整体呈现Non-IID的状态。如图4(b)所示,相同的模型参数在不同数据分布的本地数据集上进行训练,会呈现出不同的梯度更新方向,从而导致服务器进行聚合后的全局模型具有较差的收敛精度。如果每一轮随机地选择部分客户端参与训练,不仅无法保证每一轮所选择客户端数据分布的代表性,也会导致不同轮次选择的客户端子集的数据分布存在一定差异,造成不同轮次得到的全局模型更新方向也存在差异,最终导致训练收敛精度不稳定,从而增加了达到收敛精度所需的训练轮次,最终降低联邦训练效率。
因此,在联邦学习环境下,参与训练的客户端子集的总体性能(包含系统性能和数据性能)将直接影响全局模型的整体训练效率。
在本申请实施例提出的应用于联邦学习的客户端选择方法中,主要解决由客户端的系统异构性和数据异构性所导致的联邦学习的整体训练效率低下的问题。本申请实施例提出的应用于联邦学习的客户端选择方法的核心机制主要包含三个部分:客户端总体性能模型、部分枚举贪心客户端选择算法以及迭代式部分枚举贪心客户端选择算法。本申请实施例提出的应用于联邦学习的客户端选择方法,首先针对系统异构性和数据异构性,分别建立了时延预测模型和数据分布模型,以刻画客户端性能,其次将客户端选择问题建模为联合优化所选客户端子集系统性能和数据性能的组合优化问题,并进一步一般化为背包限制下的子模函数最大化问题。然后,提出了部分枚举贪心客户端选择算法,选择出总体性能较佳的客户端子集参与训练,最后为了进一步提升贪心算法的近似性能,采用迭代式部分枚举贪心客户端选择算法,从多次结果子集中选出具有最大数据性能的客户端子集参与训练,最终提升联邦学习的训练效率。
图5为本申请实施例提供的应用于联邦学习的客户端选择系统的结构示意图,如图5所示。整个系统在逻辑架构上分为四层:物理资源层、基础服务层、系统服务层、以及应用层。物理资源层主要包括参与本地模型训练的客户端和用于模型聚合的服务器。基础服务层主要是系统开发过程中使用的相关技术,主要包括开发平台(如,Pytorch)、服务端与客户端的通信框架(如,远程过程调用(Google Remote Procedure Call,gRPC))、数据信息处理的序列化框架(如,协议缓冲区(Protocol buffers,Protobuf))、通信协议(如,超文本传输协议(Hyper Text Transfer Protocol/2,HTTP/2))等;基于这些技术,为系统服务层提供相关的关键技术服务,系统服务层主要包括服务器执行模块、客户端执行模块和通信模块。服务器执行模块实现了应用于联邦学习环境的客户端选择方法。由于服务器执行模块和客户端执行模块都涉及数据信息的通信过程,因此通信模块作为这两个模块的基础模块层。应用层主要包括系统支持的一系列智能任务,如,目标识别、自然语言处理、分子预测、以及个性化推荐等。
图6为本申请实施例提供的自适应客户端选择方法的联邦学习的流程示意图,图6中的中央控制模块、客户端选择模块、客户端管理模块、以及协同交互模块均是服务器中的模块,具体可以包括以下步骤1至步骤18:
步骤1、通过服务器中央控制模块,设置总训练配置信息;
步骤2、通过服务器中央控制模块,发送总训练配置信息至客户端管理模块;
步骤3、通过客户端管理模块,根据总训练配置信息确定每一客户端的训练配置信息,以对每一客户端进行属性配置;
步骤4、通过客户端管理模块,远程调用命令,以通过协同交互模块与客户端通信;
步骤5、通过协同交互模块,利用gPRC框架与客户端通信,以将每一客户端的训练配置信息发送至对应客户端;
步骤6、通过协同交互模块,接收调用结果。
步骤7、通过客户端管理模块,从调用结果中确定客户端的实体属性;实体属性包括系统性能和模型参数;
步骤8、将系统性能和模型参数发送至客户端选择模块;
步骤9、通过客户端选择模块,利用IGPE算法进行客户端选择,得到客户端索引列表;
步骤10、通过客户端选择模块,将客户端索引列表发送至中央控制模块;
步骤11、通过中央控制模块,根据客户端索引列表修改总训练配置信息并发送至客户端管理模块;
步骤12、通过客户端管理模块,根据修改后的总训练配置信息对客户端进行再次筛选,并确定本轮参与联邦学习的每一客户端的训练配置信息,以对本轮参与联邦学习的每一客户端进行属性配置;
步骤13、通过客户端管理模块,远程调用命令,以通过协同交互模块与本轮参与联邦学习的客户端通信;
步骤14、通过协同交互模块,利用gPRC框架与本轮参与联邦学习的客户端通信,以将本轮参与联邦学习的客户端的训练配置信息发送至对应客户端;
步骤15、通过协同交互模块,接收调用结果。
步骤16、通过客户端管理模块,从调用结果中确定本轮参与联邦学习的客户端的实体属性;实体属性包括数据集尺寸列表和模型更新值;
步骤17、将本轮参与联邦学习的客户端的模型更新值以及数据集尺寸列表发送至中央控制模块;
步骤18,通过中央控制模块,对本轮参与联邦学习的客户端的模型更新值进行聚合,得到聚合模型的更新值,实现一轮次的模型训练,之后,还可以根据本轮次的模型参数重新筛选下一轮参与联邦学习的客户端,直至得到全局模型;或者,可以继续根据本次筛选的客户端继续进行模型训练,直至得到全局模型。
在联邦学习之前,服务器需要进行预处理准备工作,包含以下几个步骤:
步骤1-1、设计时延预测模型。对于每个客户端,其系统性能表示为本地计算时延和通信时延之和,首先根据CPU频率和本地数据集尺寸/>计算本地计算时延/> 其中,E是训练轮次,Ci是数据集中的每一数据所需的CPU周期数。然后,根据客户端的传输功率/>和信道总带宽W计算通信时延/> 其中,θ是梯度大小,W是信道带宽,/>是传输功率,No是噪声功率谱密度,/>是通信速率。最后,将客户端子集Sr的系统性能表示为该集合中所有客户端系统性能的总和,作为衡量客户端子集的系统性能优劣的标准。
设计数据分布模型。由于每个客户端在进行本地训练时,模型参数会拟合本地数据集的样本特征进行参数更新,实现时发现客户端之间模型差值和数据分布类型存在一定关系,即客户端之间的数据分布差异作为客户端之间模型差值的上界。因此为了衡量两个客户端之间的数据分布相似度,本申请采用了客户端之间模型差值的绝对值的倒数作为近似指标其中,/>是客户端ki的模型参数,/>是客户端kj的模型参数。然后,用覆盖性和差异性来衡量客户端子集数据性能优劣的标准。其中,覆盖性函数f(Sr)计算子集Sr中的各个客户端与客户端集群N中各个客户端的数据分布相似度总和,较大的f(Sr)说明子集Sr中的客户端与客户端集群N中的客户端越相似,说明子集Sr的覆盖性越强。差异性函数g(Sr)计算子集Sr中客户端之间的数据分布相似度总和,该值越大说明子集Sr内部客户端之间存在越大的相似度,间接表示该子集的差异性越小。最后将客户端子集Sr的数据性能H(Sr)表示为覆盖性和差异性的加权和,作为衡量客户端子集数据性能优劣的标准。对于体现覆盖性的子函数f(Sr),随着Sr中客户端数量增加,Sr对客户端集群N的覆盖性不会下降,f(Sr)呈现单调非减特性,即f(Sr+{e})≥f(Sr),/>因此函数f(Sr)为单调非减函数且f(Sr)≥0。对于体现差异性的子函数g(Sr),随着Sr中客户端数量的增加或者减少,函数g(Sr)不会呈现明显的单调变化趋势,因此子函数g(Sr)为非单调函数且g(Sr)≥0。根据子函数f(Sr)和g(Sr)的单调性,可知数据性能函数H(Sr)为非单调子模函数。
基于以上分析,为了综合考虑系统异构性和数据异构性选择出总体性能较好的客户端子集,联合优化数据性能函数H(Sr)和系统性能函数C(Sr),将该客户端选择问题形式化建模为组合优化问题P1。因为H(Sr)为非单调子模函数,所以根据数据性能函数的非单调子模性质,可将该问题P1一般化为背包限制下非单调子模函数最大化问题,其中将最大化数据性能函数H(Sr)作为优化目标,将客户端的系统性能作为背包限制因素,且背包容量为系统性能阈值Bm。
步骤1-2、在第一轮中,服务器初始化联邦学习模型,设置总训练配置信息。设置的总训练配置信息可以包括但不限于:学习率、训练批次大小、损失函数、优化器、以及联邦学习的超参数等,超参数可以包括服务器与客户端之间的通信总轮次、每轮中客户端的训练次数以及系统性能阈值等。
步骤1-3、服务器将初始化后的联邦学习模型以及训练配置信息发送给客户端集群中的所有客户端(至少一个初始客户端),准备开始模型的训练。
客户端从服务器端接收到初始化后的全局模型与训练配置信息后,开始使用本地数据集训练本地模型,达到相应迭代轮次后,将训练后的模型参数上传到服务器。服务器接收来自所有客户端的模型参数,开始执行部分枚举客户端选择算法(Greedy with PartialEnumeration,GPE)。由于背包限制下的非单调子模函数最大化问题属于NP-hard问题,本申请采用贪心策略选择局部最优的客户端,最终生成满足总体性能要求的客户端子集。GPE算法流程如图7所示算法流程,可以包括以下步骤701至步骤705:
步骤701、从客户端集群中枚举出满足系统性能阈值Bm限制且集合尺寸不大于数据量阈值d的客户端子集(至少一个第一客户端子集),并且计算出该子集簇中具有最大数据性能函数值的客户端子集作为枚举结果子集S1。
步骤702、从步骤701中枚举的子集簇中筛选出集合尺寸为数据量阈值d的客户端子集组成子集簇U(包括至少一个待扩展客户端子集)。
步骤703、对于子集簇U中的每个子集(每一待扩展客户端子集)进行拓展,得到扩展后的子集簇Q。具体来说,假设客户端集群为NG,待扩展客户端子集为SG,在对SG进行贪心拓展的过程中,为了综合优化SG的数据性能和系统性能,贪心策略应该兼顾到数据性能函数H(Sr)和系统性能函数C(Sr),即加入子集SG中的客户端需要具有较好的总体性能,因此定义总体性能函数来衡量任意客户端ki加入子集SG后的总体性能。之后,首先计算出待选择客户端子集NG\SG中的最大总体性能值Φ*和其对应的待选择客户端k*,当Φ*≤0时,说明当前待选择客户端子集中的任意待选择客户端加入SG中,都会导致该集合的总体性能下降,因此本轮算法终止。否则,对于待选择客户端k*,检查SG中加入k*是否会导致系统性能函数值超过系统性能阈值Bm,如果C(SG∪{k*})<Bm,则可以将该待选择客户端k*加入SG中,否则不加入,重复以上的步骤直到没有剩余待选择客户端,即NG\SG=φ,对于子集簇U中的所有子集采用以上的贪心策略进行拓展,会得到满足总体性能需求的客户端子集簇(包括至少一个第二客户端子集)/>
步骤704、将子集簇Q中总体性能最高的客户端子集作为贪心结果子集S2。具体来说,对于子集簇Q中任意两个子集 分别计算出子集的系统性能函数值C(Sr)和数据性能函数值H(Sr)。然后将每个客户端子集的数据性能函数值和训练预测时延比值作为标准,选择出总体性能最高的客户端子集S2。
步骤705、从枚举结果子集S1和贪心结果子集S2中,选取具有最大数据性能函数值的子集(第一目标客户端子集)作为算法结果。
为了进一步提升贪心算法GPE的近似性能,本申请在算法执行模式上采用了多通道式结构,并且提出了迭代式部分枚举的贪心算法IGPE,算法流程如图8所示。在该种算法执行模式下,通过迭代式的执行GPE算法,获得多次执行的结果子集,然后输出具有最大数据性能函数值的客户端子集。主要包含以下步骤801至步骤804:
步骤801、首先针对整个客户端集群N,采用GPE算法选取出客户端子集(第三客户端子集)。
步骤802、将子集输入到LS算法中获得近似最优的子集/>其中,LS算法是求解非单调子模函数最大化问题的一种本地搜索算法,该算法返回子集/>使得该子集满足关系/>其中,α为子集T的最优近似比,且在该LS算法中的α=2.5。
步骤803、采用GPE算法,对客户端集群N与子集的补集/>进行处理,得到子集
步骤804、最后在近似最优的子集子集/>和子集/>中选取出数据性能函数值较大的集合作为结果子集。通过IGPE算,可以近似最优的求解出总体性能较好的客户端子集,从而提升联邦学习训练效率。
本申请实施例提供的应用于联邦学习的客户端选择方法至少包括以下关键点:
1、本申请设计的自适应客户端选择的联邦学习流程如图6所示,其关键点在于:在进行客户端选择前,所有客户端需要上传自己本地模型的参数更新至服务器,服务器执行自适应客户端选择机制(应用于联邦学习的客户端选择方法),该选择机制可以综合考虑每个客户端的系统性能与数据性能。
2、本申请针对系统异构性建立了时延预测模型,通过训练时延对客户端的系统性能进行量化。同时针对数据异构性,建立了数据分布模型,分析本地数据分布对收敛精度的影响,并且提出通过客户端子集对全集的数据分布覆盖性和子集内部数据分布差异性来衡量数据性能的优劣,此外提出了在隐私性限制下获取各客户端数据分布的方法。
3、本申请所设计的部分枚举客户端选择算法流程如图7所示,本申请将客户端选择问题形式化建模为背包限制下非单调子模函数最大化问题,并使用贪心算法求解。首先在全集中枚举出满足系统性能上限阈值限制和客户端数量限制的子集,并从该集合簇中选出具有最大数据性能函数值的集合作为枚举结果。然后根据给定的贪心策略对所有满足背包容量限制且客户端数量为d的子集进行拓展,并从拓展后的子集簇中选出总体性能最高的客户端子集作为贪心结果。最后从枚举结果和贪心结果中选择具有最大数据性能的子集作为GPE结果子集。
4、本申请所设计的迭代部分枚举客户端选择算法流程如图8所示,该算法在执行模式上采用了多通道式结构,通过迭代的执行GPE算法从多次结果子集中选出具有最大数据性能的集合作为最终选择出的客户端子集,可以进一步提升贪心算法GPE的近似性能。首先针对于整个集合,采用GPE算法选取出待选客户端子集。然后通过LS算法根据待选客户端子集获得近似最优子集,再使用GPE算法从最优子集的补集中选择出另一个待选客户端子集。最后从上述的两个待选子集和近似最优子集中选取出数据性能函数值较大的集合作为IGPE最终结果子集。
本申请实施例提供的应用于联邦学习的客户端选择方法与现有技术相比,至少包括以下优点:
1、与随机选择部分客户端参与训练不同的是,本申请提出的客户端选择机制可以根据系统性能和数据性能来选取客户端子集,能够在异构联邦环境下选择出在系统性能和数据性能都有所保障的部分客户端,这不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性。
2、联邦学习基于分布式架构,在客户端联合训练的过程中,本地数据不会上传,且本申请通过建立模型参数更新值与客户端数据分布之间的关系,在获取各客户端数据分布的同时,又能够保证客户端数据的安全性。
3、构建了数据性能函数和系统性能函数衡量所选客户端子集的总体性能,其次将客户端选择问题形式化建模为联合优化数据性能和系统性能的组合优化问题,最后将该组合优化问题一般化为背包限制下子模函数最大化问题,通过解决该问题找到一个较优的客户端选择方案,以解决联邦学习中的系统异构和数据异构问题。
基于前述实施例,本申请实施例提供一种应用于联邦学习的客户端选择装置,该应用于联邦学习的客户端选择装置可以应用于图2和3对应的实施例提供的应用于联邦学习的客户端选择方法中,参照图9所示,该应用于联邦学习的客户端选择装置9可以包括:
接收单元91,用于接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数;
处理单元92,用于基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集;
处理单元92,还用于将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。
在本申请的其他实施例中,处理单元92,还用于采用客户端选择算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
基于系统性能阈值、数据量阈值、每一初始客户端的系统性能、以及每一初始客户端具有的训练数据集的数据量,从客户端集群中枚举出至少一个第一客户端子集;
从至少一个第一客户端子集中,确定数据量为数据量阈值的至少一个待扩展客户端子集;
基于每一初始客户端的模型参数和每一初始客户端的系统性能,对至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集;
将至少一个第一客户端子集和至少一个第二客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
从客户端集群中,确定不包含于每一待扩展客户端子集的至少一个待选择客户端;
基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况;
基于提升情况,不断从至少一个待选择客户端中,确定对每一待扩展客户端子集的集合性能提升最大、且在加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将第二目标客户端加入每一待扩展客户端子集,得到每一待扩展客户端子集对应的第二客户端子集。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
基于每一初始客户端的模型参数,确定每一待选择客户端加入每一待扩展客户端子集后的第一数据性能、以及每一待扩展客户端子集的第二数据性能;
确定每一待选择客户端的系统性能;
基于第一数据性能、第二数据性能、以及每一待选择客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
基于每一待扩展客户端子集中每一待扩展客户端的模型性能、每一初始客户端的模型参数,确定每一待扩展客户端与每一初始客户端之间的数据分布情况的第一相似性;
基于第一相似性,确定每一待扩展客户端子集的覆盖性;
基于每一待扩展客户端的模型性能,确定每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的第二相似性;
基于第二相似性,确定每一待扩展客户端子集的差异性;
基于每一待扩展客户端子集的覆盖性、每一待扩展客户端子集的差异性、以及每一待扩展客户端子集的覆盖性对应的权重、以及每一待扩展客户端子集的差异性对应的权重,确定每一待扩展客户端子集的第二数据性能。
在本申请的其他实施例中,处理单元92,还用于基于每一待扩展客户端的模型性能与每一初始客户端的模型参数的差值的绝对值的倒数,确定第一相似性。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
基于每一待选择客户端的处理器在运算时的工作频率和每一待选择客户端具有的训练数据集的数据量,确定每一待选择客户端的计算时延;
基于每一待选择客户端的传输功率和每一待选择客户端的信道带宽,确定每一待选择客户端的通信时延;
基于每一待选择客户端的计算时延和每一待选择客户端的通信时延,确定每一待选择客户端的系统性能。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
基于提升情况,确定至少一个待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为第二目标客户端;
在第二目标客户端加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将第二目标客户端加入每一待扩展客户端子集,得到第一次扩展后的每一待扩展客户端子集;
在至少一个待选择客户端中存在未确定的待选择客户端的情况下,基于提升情况,确定未确定的待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为下一个第二目标客户端;
在下一个第二目标客户端加入第一次扩展后的每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将下一个第二目标客户端加入第一次扩展后的每一待扩展客户端,直至至少一个待选择客户端中不存在未确定的待选择客户端,得到每一待扩展客户端子集对应的第二客户端子集。
在本申请的其他实施例中,处理单元92还用于实现以下步骤:
采用贪心算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第三客户端子集;
采用搜索算法,对第三客户端子集进行优化,得到优化后的第三客户端子集;
采用贪心算法,对客户端集群中不包含于优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;
将第三客户端子集、优化后的第三客户端子集、以及第四客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
需要说明的是,各个单元所执行的步骤的具体说明可以参照图2和3对应的实施例提供的应用于联邦学习的客户端选择方法中的实现过程,此处不再赘述。
本申请实施例所提供的应用于联邦学习的客户端选择装置,由于每一客户端的模型参数能够体现每一客户端的数据分布情况,因此基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出参与联邦学习的至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选联邦学习的参与方;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高,且各个客户端之间的性能较为均衡,因而不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
基于前述实施例,本申请的实施例提供一种应用于联邦学习的客户端选择设备,该应用于联邦学习的客户端选择设备可以应用于图2和3对应的实施例提供的应用于联邦学习的客户端选择方法中,参照图10所示,该应用于联邦学习的客户端选择设备10可以包括:处理器101、存储器102和通信总线103,其中:
通信总线103用于实现处理器101和存储器102之间的通信连接;
处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序,以实现以下步骤:
接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数;
基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集;
将第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对第一联邦学习模型进行训练得到目标联邦学习模型。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集,以实现以下步骤:
采用客户端选择算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的采用客户端选择算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集,以实现以下步骤:
基于系统性能阈值、数据量阈值、每一初始客户端的系统性能、以及每一初始客户端具有的训练数据集的数据量,从客户端集群中枚举出至少一个第一客户端子集;
从至少一个第一客户端子集中,确定数据量为数据量阈值的至少一个待扩展客户端子集;
基于每一初始客户端的模型参数和每一初始客户端的系统性能,对至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集;
将至少一个第一客户端子集和至少一个第二客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于每一初始客户端的模型参数和每一初始客户端的系统性能,对至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集,以实现以下步骤:
从客户端集群中,确定不包含于每一待扩展客户端子集的至少一个待选择客户端;
基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况;
基于提升情况,不断从至少一个待选择客户端中,确定对每一待扩展客户端子集的集合性能提升最大、且在加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将第二目标客户端加入每一待扩展客户端子集,得到每一待扩展客户端子集对应的第二客户端子集。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于每一初始客户端的模型参数和每一初始客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况,以实现以下步骤:
基于每一初始客户端的模型参数,确定每一待选择客户端加入每一待扩展客户端子集后的第一数据性能、以及每一待扩展客户端子集的第二数据性能;
确定每一待选择客户端的系统性能;
基于第一数据性能、第二数据性能、以及每一待选择客户端的系统性能,确定每一待选择客户端对每一待扩展客户端子集的集合性能的提升情况。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于每一初始客户端的模型参数,确定每一待扩展客户端子集的第二数据性能,以实现以下步骤:
基于每一待扩展客户端子集中每一待扩展客户端的模型性能、每一初始客户端的模型参数,确定每一待扩展客户端与每一初始客户端之间的数据分布情况的第一相似性;
基于第一相似性,确定每一待扩展客户端子集的覆盖性;
基于每一待扩展客户端的模型性能,确定每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的第二相似性;
基于第二相似性,确定每一待扩展客户端子集的差异性;
基于每一待扩展客户端子集的覆盖性、每一待扩展客户端子集的差异性、以及每一待扩展客户端子集的覆盖性对应的权重、以及每一待扩展客户端子集的差异性对应的权重,确定每一待扩展客户端子集的第二数据性能。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于每一待扩展客户端子集中每一待扩展客户端的模型性能、每一初始客户端的模型参数,确定每一待扩展客户端与每一初始客户端之间的数据分布情况的第一相似性,以实现以下步骤:
基于每一待扩展客户端的模型性能与每一初始客户端的模型参数的差值的绝对值的倒数,确定第一相似性。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的确定每一待选择客户端的系统性能,以实现以下步骤:
基于每一待选择客户端的处理器在运算时的工作频率和每一待选择客户端具有的训练数据集的数据量,确定每一待选择客户端的计算时延;
基于每一待选择客户端的传输功率和每一待选择客户端的信道带宽,确定每一待选择客户端的通信时延;
基于每一待选择客户端的计算时延和每一待选择客户端的通信时延,确定每一待选择客户端的系统性能。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择程序的基于提升情况,不断从至少一个待选择客户端中,确定对每一待扩展客户端子集的集合性能提升最大、且在加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将第二目标客户端加入每一待扩展客户端子集,得到每一待扩展客户端子集对应的第二客户端子集,以实现以下步骤:
基于提升情况,确定至少一个待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为第二目标客户端;
在第二目标客户端加入每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将第二目标客户端加入每一待扩展客户端子集,得到第一次扩展后的每一待扩展客户端子集;
在至少一个待选择客户端中存在未确定的待选择客户端的情况下,基于提升情况,确定未确定的待选择客户端中对每一待扩展客户端子集的集合性能提升最大的客户端并作为下一个第二目标客户端;
在下一个第二目标客户端加入第一次扩展后的每一待扩展客户端子集后的总系统性能满足系统性能阈值的情况下,将下一个第二目标客户端加入第一次扩展后的每一待扩展客户端,直至至少一个待选择客户端中不存在未确定的待选择客户端,得到每一待扩展客户端子集对应的第二客户端子集。
在本申请的其他实施例中,处理器101用于执行存储器102中的应用于联邦学习的客户端选择算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第一目标客户端子集,以实现以下步骤:
采用贪心算法,基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出第三客户端子集;
采用搜索算法,对第三客户端子集进行优化,得到优化后的第三客户端子集;
采用贪心算法,对客户端集群中不包含于优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;
将第三客户端子集、优化后的第三客户端子集、以及第四客户端子集中的数据性能最高的客户端子集,确定为第一目标客户端子集。
需要说明的是,处理器所执行的步骤的具体实现方式可以参照图2和3对应的实施例提供的应用于联邦学习的客户端选择方法中的描述,此处不再赘述。
本申请实施例所提供的应用于联邦学习的客户端选择设备,由于每一客户端的模型参数能够体现每一客户端的数据分布情况,因此基于每一初始客户端的模型参数和每一初始客户端的系统性能,从客户端集群中筛选出参与联邦学习的至少一个第一目标客户端,也即是,基于每一初始客户端的数据分布情况和每一初始客户端的系统性能来筛选联邦学习的参与方;这种情况下,综合考虑了客户端的数据分布情况以及客户端的系统性能,所筛选出的客户端的总体性能较高,且各个客户端之间的性能较为均衡,因而不仅能够降低通信成本,还可以在较短的训练时间即可达到较高的精度,实现训练的高效性,解决了相关技术中的随机选取的终端设备在训练模型时存在训练时间不一致而导致全局模型的训练效率差的问题。
基于前述实施例,本申请的实施例提供一种存储介质,该存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现图2和3对应的实施例提供的应用于联邦学习的客户端选择方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请保护范围。
Claims (12)
1.一种应用于联邦学习的客户端选择方法,其特征在于,所述方法包括:
接收客户端集群中的至少一个初始客户端对第一联邦学习模型进行训练后得到的模型参数;
基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集;
将所述第一目标客户端子集中的至少一个第一目标客户端作为联邦学习的参与方,对所述第一联邦学习模型进行训练得到目标联邦学习模型。
2.根据权利要求1所述的方法,其特征在于,所述基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集,包括:
采用客户端选择算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出所述第一目标客户端子集。
3.根据权利要求2所述的方法,其特征在于,所述采用客户端选择算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出所述第一目标客户端子集,包括:
基于系统性能阈值、数据量阈值、所述每一初始客户端的系统性能、以及所述每一初始客户端具有的训练数据集的数据量,从所述客户端集群中枚举出至少一个第一客户端子集;
从所述至少一个第一客户端子集中,确定数据量为所述数据量阈值的至少一个待扩展客户端子集;
基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,对所述至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集;
将所述至少一个第一客户端子集和所述至少一个第二客户端子集中的数据性能最高的客户端子集,确定为所述第一目标客户端子集。
4.根据权利要求3所述的方法,其特征在于,所述基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,对所述至少一个待扩展客户端子集进行扩展,得到至少一个第二客户端子集,包括:
从所述客户端集群中,确定不包含于每一所述待扩展客户端子集的至少一个待选择客户端;
基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,确定每一所述待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况;
基于所述提升情况,不断从所述至少一个待选择客户端中,确定对所述每一待扩展客户端子集的集合性能提升最大、且在加入所述每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的第二目标客户端,并将所述第二目标客户端加入所述每一待扩展客户端子集,得到所述每一待扩展客户端子集对应的第二客户端子集。
5.根据权利要求4所述的方法,其特征在于,所述基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,确定每一所述待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况,包括:
基于所述每一初始客户端的模型参数,确定所述每一待选择客户端加入所述每一待扩展客户端子集后的第一数据性能、以及所述每一待扩展客户端子集的第二数据性能;
确定所述每一待选择客户端的系统性能;
基于所述第一数据性能、所述第二数据性能、以及所述每一待选择客户端的系统性能,确定所述每一待选择客户端对所述每一待扩展客户端子集的集合性能的提升情况。
6.根据权利要求5所述的方法,其特征在于,所述基于所述每一初始客户端的模型参数,确定所述每一待扩展客户端子集的第二数据性能,包括:
基于所述每一待扩展客户端子集中每一待扩展客户端的模型性能、所述每一初始客户端的模型参数,确定所述每一待扩展客户端与所述每一初始客户端之间的数据分布情况的第一相似性;
基于所述第一相似性,确定所述每一待扩展客户端子集的覆盖性;
基于所述每一待扩展客户端的模型性能,确定所述每一待扩展客户端子集中任意两个待扩展客户端之间的数据分布情况的第二相似性;
基于所述第二相似性,确定所述每一待扩展客户端子集的差异性;
基于所述每一待扩展客户端子集的覆盖性、所述每一待扩展客户端子集的差异性、以及所述每一待扩展客户端子集的覆盖性对应的权重、以及所述每一待扩展客户端子集的差异性对应的权重,确定所述每一待扩展客户端子集的第二数据性能。
7.根据权利要求6所述的方法,其特征在于,所述基于所述每一待扩展客户端子集中每一待扩展客户端的模型性能、所述每一初始客户端的模型参数,确定所述每一待扩展客户端与所述每一初始客户端之间的数据分布情况的第一相似性,包括:
基于所述每一待扩展客户端的模型性能与所述每一初始客户端的模型参数的差值的绝对值的倒数,确定所述第一相似性。
8.根据权利要求5所述的方法,其特征在于,所述确定所述每一待选择客户端的系统性能,包括:
基于所述每一待选择客户端的处理器在运算时的工作频率和所述每一待选择客户端具有的训练数据集的数据量,确定所述每一待选择客户端的计算时延;
基于所述每一待选择客户端的传输功率和所述每一待选择客户端的信道带宽,确定所述每一待选择客户端的通信时延;
基于所述每一待选择客户端的计算时延和所述每一待选择客户端的通信时延,确定所述每一待选择客户端的系统性能。
9.根据权利要求4所述的方法,其特征在于,所述基于所述提升情况,不断从所述至少一个待选择客户端中,确定对所述每一待扩展客户端子集的集合性能提升最大、且在加入所述每一待扩展客户端子集后的总系统性能满足系统性能阈值的第二目标客户端,并将所述第二目标客户端加入所述每一待扩展客户端子集,得到所述每一待扩展客户端子集对应的第二客户端子集,包括:
基于所述提升情况,确定所述至少一个待选择客户端中对所述每一待扩展客户端子集的集合性能提升最大的客户端并作为第二目标客户端;
在所述第二目标客户端加入所述每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的情况下,将所述第二目标客户端加入所述每一待扩展客户端子集,得到第一次扩展后的所述每一待扩展客户端子集;
在所述至少一个待选择客户端中存在未确定的待选择客户端的情况下,基于所述提升情况,确定所述未确定的待选择客户端中对所述每一待扩展客户端子集的集合性能提升最大的客户端并作为下一个第二目标客户端;
在所述下一个第二目标客户端加入所述第一次扩展后的每一待扩展客户端子集后的总系统性能满足所述系统性能阈值的情况下,将所述下一个第二目标客户端加入所述第一次扩展后的每一待扩展客户端,直至所述至少一个待选择客户端中不存在未确定的待选择客户端,得到所述每一待扩展客户端子集对应的第二客户端子集。
10.根据权利要求2所述的方法,其特征在于,所述采用客户端选择算法,基于每一所述初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第一目标客户端子集,包括:
采用贪心算法,基于所述每一初始客户端的模型参数和所述每一初始客户端的系统性能,从所述客户端集群中筛选出第三客户端子集;
采用搜索算法,对所述第三客户端子集进行优化,得到优化后的所述第三客户端子集;
采用所述贪心算法,对所述客户端集群中不包含于所述优化后的第三客户端子集的客户端进行处理,得到第四客户端子集;
将所述第三客户端子集、所述优化后的第三客户端子集、以及所述第四客户端子集中的数据性能最高的客户端子集,确定为所述第一目标客户端子集。
11.一种应用于联邦学习的客户端选择设备,其特征在于,所述设备包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的应用于联邦学习的客户端选择程序,以实现如权利要求1~10任一项所述的应用于联邦学习的客户端选择方法的步骤。
12.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~10中任一项所述的应用于联邦学习的客户端选择方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310849900.2A CN117176729A (zh) | 2023-07-11 | 2023-07-11 | 应用于联邦学习的客户端选择方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310849900.2A CN117176729A (zh) | 2023-07-11 | 2023-07-11 | 应用于联邦学习的客户端选择方法、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117176729A true CN117176729A (zh) | 2023-12-05 |
Family
ID=88930623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310849900.2A Pending CN117176729A (zh) | 2023-07-11 | 2023-07-11 | 应用于联邦学习的客户端选择方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176729A (zh) |
-
2023
- 2023-07-11 CN CN202310849900.2A patent/CN117176729A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113242568B (zh) | 一种不确定网络环境中的任务卸载和资源分配方法 | |
Han et al. | Adaptive gradient sparsification for efficient federated learning: An online learning approach | |
WO2019184836A1 (zh) | 数据分析设备、多模型共决策系统及方法 | |
US20240135191A1 (en) | Method, apparatus, and system for generating neural network model, device, medium, and program product | |
WO2022001918A1 (zh) | 构建预测模型的方法、装置、计算设备和存储介质 | |
CN113220356A (zh) | 一种移动边缘计算中的用户计算任务卸载方法 | |
Liu et al. | Fedpa: An adaptively partial model aggregation strategy in federated learning | |
CN112948885B (zh) | 实现隐私保护的多方协同更新模型的方法、装置及系统 | |
CN115879542A (zh) | 一种面向非独立同分布异构数据的联邦学习方法 | |
WO2022095871A1 (zh) | 一种视频处理方法、视频处理装置、智能设备及存储介质 | |
Song et al. | Adaptive and collaborative edge inference in task stream with latency constraint | |
CN117202264A (zh) | Mec环境中面向5g网络切片的计算卸载方法 | |
Wu et al. | Adaptive client and communication optimizations in Federated Learning | |
Lameh et al. | Analysis of federated learning as a distributed solution for learning on edge devices | |
Hu et al. | Clustered data sharing for Non-IID federated learning over wireless networks | |
CN117176729A (zh) | 应用于联邦学习的客户端选择方法、设备和存储介质 | |
Zhang et al. | Sum-rate-distortion function for indirect multiterminal source coding in federated learning | |
Xu et al. | Enhancing federated learning with server-side unlabeled data by adaptive client and data selection | |
Han et al. | Analysis and optimization of wireless federated learning with data heterogeneity | |
Zhang et al. | Effective 3C Resource Utilization and Fair Allocation Strategy for Multi-Task Federated Learning | |
Sun et al. | Optimizing task-specific timeliness with edge-assisted scheduling for status update | |
Chung et al. | ShadowTutor: Distributed partial distillation for mobile video DNN inference | |
CN113033653A (zh) | 一种边-云协同的深度神经网络模型训练方法 | |
Abdelmoniem et al. | A2FL: Availability-Aware Selection for Machine Learning on Clients with Federated Big Data | |
CN115174681B (zh) | 一种边缘计算服务请求调度方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |