CN115510936A - 基于联邦学习的模型训练方法及聚类分析器 - Google Patents

基于联邦学习的模型训练方法及聚类分析器 Download PDF

Info

Publication number
CN115510936A
CN115510936A CN202110699484.3A CN202110699484A CN115510936A CN 115510936 A CN115510936 A CN 115510936A CN 202110699484 A CN202110699484 A CN 202110699484A CN 115510936 A CN115510936 A CN 115510936A
Authority
CN
China
Prior art keywords
client
clustering
cluster
server
stage
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
Application number
CN202110699484.3A
Other languages
English (en)
Inventor
庞丽雪
常庆龙
张彦芳
吴俊�
张亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110699484.3A priority Critical patent/CN115510936A/zh
Publication of CN115510936A publication Critical patent/CN115510936A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于联邦学习的模型训练方法及聚类分析器,属于机器学习技术领域。本申请将聚类分析引入至具有两个阶段的联邦学习的方法,通过提供聚类分析依据的聚类规则,根据聚类规则以及客户端上报的客户端信息对参与联邦学习模型训练的客户端进行聚类,将聚类结果提供给二阶段联邦学习中的服务端,从而支持二阶段联邦学习中服务端利用聚类结果获取簇内的全局模型参数。由于同一个簇内客户端数据具有一定的相似性,因此能够一定程度解决数据分布不均及数据异构的问题,避免数据分布不均及数据异构对模型性能的影响,提升模型准确性。

Description

基于联邦学习的模型训练方法及聚类分析器
技术领域
本申请涉及机器学习技术领域,特别涉及一种基于联邦学习的模型训练方法及聚类分析器。
背景技术
联邦学习(federated learning)是一种针对数据孤岛问题、保护数据安全与隐私而提出的一种算法框架。联邦学习的基本原理是,两个或两个以上的联邦学习参与方协作构建一个共享的机器学习模型。联邦学习的系统架构通常包括客户端和服务器,客户端扮演联邦学习的参与方,服务器扮演模型的汇聚方。一次联邦学习流程通常包括客户端与服务器的交互。具体来讲,客户端从服务器下载初始模型,客户端使用本地数据对初始模型进行模型训练,得到局部模型;客户端将局部模型发送给服务器。服务器对来自多个客户端的局部模型进行汇聚,得到全局模型;服务器将全局模型发送至参与训练的每个客户端。
然而实际业务场景中,参与联邦学习的不同客户端的数据分布可能存在巨大差异,也就是存在数据分布不均的情况,导致基于联邦学习训练出的模型准确性较差。
发明内容
本申请实施例提供了一种基于联邦学习的模型训练方法及聚类分析器,能够提升基于联邦学习训练出的模型的准确性。
第一方面,提供了一种基于联邦学习的模型训练方法,该方法包括:聚类分析器获取聚类规则,所述聚类规则用于指示第一客户端的聚类结果,所述第一客户端是参与联邦学习模型训练的客户端;所述聚类分析器接收所述第一客户端发送的第一客户端消息,所述第一客户端消息包括第一客户端的客户端信息;所述聚类分析器基于所述第一客户端的客户端信息和所述聚类规则获得所述第一客户端的聚类结果;所述聚类分析器向第二服务端发送所述第一客户端的聚类结果,所述第二服务端用于根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数。
以上提供了一种将聚类分析引入至具有两个阶段的联邦学习的方法,通过提供聚类分析依据的聚类规则,根据聚类规则以及客户端上报的客户端信息对参与联邦学习模型训练的客户端进行聚类,将聚类结果提供给二阶段联邦学习中的服务端,从而支持二阶段联邦学习中服务端利用聚类结果获取簇内的全局模型参数。由于同一个簇内客户端数据具有一定的相似性,因此能够一定程度解决数据分布不均及数据异构的问题,避免数据分布不均及数据异构对模型性能的影响,提升模型准确性。
聚类规则的内容涉及多种实现方式,下面结合四种实现方式举例说明。
实现方式一、所述聚类规则包括客户端信息与聚类簇之间的对应关系。
实现方式二、所述聚类规则包括客户端信息的阈值与聚类簇之间的对应关系。
实现方式三、所述聚类规则包括同一个聚类簇中不同客户端的客户端信息之间的距离的阈值。
实现方式四、所述聚类规则包括聚类簇中簇中心对应的客户端信息。
通过上述实现方式支持根据业务需求选择不同内容的聚类规则,提高灵活性。
在一些实施例中,所述聚类分析器获取聚类规则,包括:所述聚类分析器获取用户输入的聚类规则;或者,所述聚类分析器接收第三方系统发送的聚类规则。
通过上述实现方式支持用户自定义聚类规则,有助于匹配更多的业务场景。
在一些实施例中,所述方法还包括:所述聚类分析器管理所述聚类结果;或者,所述聚类分析器管理所述聚类规则与所述第二服务端之间的对应关系;或者,所述聚类分析器管理所述聚类结果与所述第二服务端之间的对应关系。
通过上述实现方式,由于聚类规则或者本次获得的聚类结果得到管理,便于在下一次联邦学习时复用之前的聚类结果和聚类规则,提高效率。
在一些实施例中,所述第一客户端的客户端信息,包括以下任意一种及其组合:所述第一客户端的设备信息;所述第一客户端的本地数据的属性;所述第一客户端的业务需求。
通过上述实现方式,由于设备信息、数据属性、业务需求相近的客户端的数据分布具有一定的相似性,因此利用设备信息、数据属性、业务需求进行聚类,有助于将对应于相似数据分布的模型参数放在一起汇聚,从而进一步降低数据异构造成的影响,提高模型的准确性。
在一些实施例中,所述聚类规则包括根据客户端的设备信息进行聚类的规则。具体地,根据客户端的设备信息进行聚类的规则例如包括根据客户端的性能进行聚类的规则、根据客户端所在的地点进行聚类的规则(有时也称为地域规则)、根据客户端所属的机构进行聚类的规则、根据客户端的设备类型进行聚类的规则。根据客户端的性能进行聚类的规则例如包括根据客户端的中央处理器(central processing unit,CPU)占用率进行聚类的规则、根据客户端的剩余内存或内存占用率进行聚类的规则、根据客户端的带宽进行聚类的规则。
在一些实施例中,所述聚类规则包括根据客户端的业务需求进行聚类的规则。所述业务需求包括分类和预测。根据分类这种业务需求进行聚类的规则用于将多个客户端中需要进行分类的客户端聚至同一个簇中。根据预测这种业务需求进行聚类的规则用于将多个客户端中需要进行预测的客户端聚至同一个簇中。例如,应用在根据模型预测网络设备故障的场景下,业务需求包括预测故障的类型以及预测发生故障的时间点,预测故障的类型属于分类业务,预测发生故障的时间点属于预测业务,那么根据上述聚类规则,可将需要预测故障的类型的客户端聚在同一个簇,以便联合这些客户端的数据基于第一方面提供的方法训练出用来预测故障的类型的模型,此外,将需要预测发生故障的时间点的客户端聚在同一个簇,以便联合这些客户端的数据基于第一方面提供的方法训练出预测发生故障的时间点的模型。
在一些实施例中,所述第一客户端的二阶段局部模型参数是所述第一客户端根据所述第一客户端的本地数据对一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,所述N个客户端包括所述第一客户端,所述N为大于1的正整数。
通过上述实现方式,由于N个客户端的模型参数在一阶段一起汇聚,因此一阶段全局模型能够利用到N个客户端中每个客户端的数据,一阶段全局模型能作为一个好的初始化模型。那么由于第一客户端以一阶段全局模型为初始化模型参与二阶段的联邦学习,因此能提升二阶段训练得到的模型的准确性。
在一些实施例中,所述第一客户端对应聚类簇的全局模型参数是根据所述第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数获得的,所述第二客户端和所述第一客户端属于同一个聚类簇,所述第二客户端的二阶段局部模型参数是根据所述第二客户端的本地数据对所述一阶段全局模型参数进行更新得到的,所述N个客户端包括所述第二客户端。
第二方面,提供了一种基于联邦学习的模型训练方法,在该方法中,第二服务端接收聚类分析器发送的第一客户端的聚类结果,所述第一客户端是参与联邦学习模型训练的客户端;所述第二服务端根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数。
在一些实施例中,所述第一客户端的聚类结果指示所述第一客户端与第二客户端属于同一个聚类簇,所述第二服务端根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数,包括:
所述第二服务端根据所述第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数进行汇聚处理,得到所述第一客户端对应聚类簇的全局模型参数。
在一些实施例中,所述第一客户端的二阶段局部模型参数是所述第一客户端根据所述第一客户端的本地数据对一阶段全局模型参数进行更新得到的,所述第二客户端的二阶段局部模型参数是根据所述第二客户端的本地数据对所述一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,所述N个客户端包括所述第一客户端和所述第二客户端,所述N为大于1的正整数。
第三方面,提供了一种基于联邦学习的模型训练方法,在该方法中,聚类分析器获取聚类规则,所述聚类规则用于对N个客户端进行聚类,所述N个客户端是参与联邦学习模型训练的客户端;所述聚类分析器接收所述N个客户端中各个客户端发送的客户端信息;所述聚类分析器基于N个客户端中各个客户端的客户端信息和所述聚类规则,对所述N个客户端进行聚类,得到所述N个客户端的聚类结果;所述聚类分析器向第二服务端发送所述N个客户端的聚类结果,所述第二服务端用于根据所述N个客户端的聚类结果和所述N个客户端的二阶段局部模型参数获取所述N个客户端对应的M个聚类簇的全局模型参数。其中,N为正整数,M为小于或等于N的正整数。
在一些实施例中,所述N个客户端中第i个客户端的二阶段局部模型参数是所述第i个客户端根据所述第i个客户端的本地数据对一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据所述N个客户端的局部模型参数进行汇聚处理得到的,所述N为大于1的正整数,i是小于或等于N的正整数。
第四方面,提供了一种基于联邦学习的模型训练方法,在该方法中,第二服务端接收聚类分析器发送的N个客户端的聚类结果,所述N个客户端是参与联邦学习模型训练的客户端,所述N个客户端的聚类结果指示所述N个客户端聚类为M个聚类簇;所述第二服务端对第i个聚类簇中包含的Pi个客户端的二阶段局部模型参数进行汇聚处理,得到所述第i个聚类簇的二阶段全局模型参数,其中,N为正整数,M为小于或等于N的正整数,i是小于或等于M的正整数,Pi是小于或等于N的正整数。
第五方面,提供了一种聚类分析器,该聚类分析器具有实现上述第一方面或第一方面任一种可选方式的功能。该聚类分析器包括至少一个单元,至少一个单元用于实现上述第一方面或第三方面及其可能的实现方式中的方法。
在一些实施例中,聚类分析器中的单元通过软件实现,聚类分析器中的单元是程序模块。在另一些实施例中,聚类分析器中的单元通过硬件或固件实现。第五方面提供的聚类分析器的具体细节可参见上述第一方面或第三方面,此处不再赘述。
第六方面,提供了一种第二服务端,该第二服务端具有实现上述第一方面或第一方面任一种可选方式的功能。该第二服务端包括至少一个单元,至少一个单元用于实现上述第二方面或第四方面及其可能的实现方式中的方法。
在一些实施例中,第二服务端中的单元通过软件实现,第二服务端中的单元是程序模块。在另一些实施例中,第二服务端中的单元通过硬件或固件实现。第六方面提供的第二服务端的具体细节可参见上述第二方面或第四方面,此处不再赘述。
第七方面,提供了一种聚类分析器,该聚类分析器包括处理器和存储器,其中存储器中存储有计算机指令,处理器执行计算机指令,以实现第一方面或第三方面及其可能的实现方式的方法。
第八方面,提供了一种第二服务端,该第二服务端包括处理器和存储器,其中存储器中存储有计算机指令,处理器执行计算机指令,以实现第二方面或第四方面及其可能的实现方式的方法。
第九方面,提供了一种(非瞬态的)计算机可读存储介质。该(非瞬态的)计算机可读存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面或第四方面及其任一种可选方式所提供的方法。该存储介质的类型包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第二方面或第三方面或第四方面及其任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面或第二方面或第三方面或第四方面及其任一种可选方式所提供的方法。
附图说明
图1是本申请实施例提供的一种系统架构的示意图;
图2是本申请实施例提供的一种基于联邦学习的模型训练方法的流程图;
图3是本申请实施例提供的一种双服务端联邦训练的框架图;
图4是本申请实施例提供的一种一阶段联邦学习的交互流程图;
图5是本申请实施例提供的一种二阶段联邦学习的交互流程图;
图6是本申请实施例提供的一种系统架构的示意图;
图7是本申请实施例提供的一种系统架构的示意图;
图8是本申请实施例提供的一种聚类分析器的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
(1)局部模型(local model)
局部模型是指客户端使用自己的本地数据(local datasets)训练得到的模型。局部模型有时也称为本地模型。
(2)全局模型(global model)
全局模型是指服务端汇聚得到的模型,全局模型有时也称为中心模型。全局模型通常与参与联邦学习的多个客户端的数据有关。
(3)分布式机器学习
传统机器学习的流程是:收集数据,数据分析,特征选择,数据集拆分,模型选择,模型训练,模型效果评估。机器学习一般采用集中式整合数据集方式训练模型,集中的数据集包含数据样本越多,数据特征越多样,训练完的模型鲁棒性能就越好。而为了提高模型训练的速度,也会采用分布式机器学习来同步训练模型。分布式机器学习是指服务器作为加速机器学习模型训练过程的一种工具,分布式机器学习将数据集存储在分布式的工作节点上,通过一个中心的调度节点调配数据分布和分配计算资源,以便高效的获得最终的训练模型。传统机器学习中的数据分布无论是集中式还是分布式,数据的特征和标签都先需要集中存储在一方,也就是该模型的训练方。
(4)数据孤岛
人工智能(artificial intelligence,AI)算法在工业落地时经常面临“数据孤岛”问题。所谓“数据孤岛”问题是指,AI算法在工业应用时,往往面临高质量标签数据不足、数据源数据无法共享和数据隐私保护等问题,导致AI无法高效、准确地共同使用各自的数据。
(5)联邦学习(federated learning,FL)
联邦学习是基于数据孤岛,数据安全与隐私提出的一种具有以下特征的用来建立机器学习模型的算法框架。
特征a.有两个或以上的联邦学习参与方协作构建一个共享的机器学习模型。每一个参与方都拥有若干能够用来训练模型的训练数据。
特征b.在联邦学习模型的训练过程中,每一个参与方拥有的数据都不会离开该参与方,即数据不离开数据拥有者。
特征c.联邦学习模型相关的信息能够以加密方式在各方之间进行传输和交换,并且需要保证任何一个参与方都不能推测出其他方的原始数据。
特征d.联邦学习模型的性能要能够充分逼近理想模型(是指通过将所有训练数据集中在一起并训练获得的机器学习模型)的性能。
联邦学习能支持数据分布在各方而不用集中在一方的前提下进行训练,但也就是因为数据没有集中,联邦框架在数据预处理、特征分析和选择上相比集中式机器学习有很大劣势,联邦训练出的模型在性能上很难保证。
以横向联邦学习(horizontal federated learning)为例,横向联邦学习中数据库由多个参与者提供,不同参与者提供的数据具有相同的数据结构,参与者通过参数或云服务器来协作训练机器学习模型,并且此过程中要求参与者不得向服务器泄漏信息。一次联邦训练具体包括以下步骤1至步骤5。
步骤1、服务端向各客户端发送初始的全局模型。
步骤2、客户端(参与者)在本地计算模型更新后的模型参数,客户端(参与者)使用密码学技术,如非对称加密(asymmetric cryptographic),同态加密(Homomorphicencryption)等)、差分隐私(differential privacy)对所选模型更新参数进行掩码(加入噪声扰动),并将掩码后的结果发送到服务器。
步骤3、服务端执行安全聚合,例如利用联邦平均算法(Federated Averaging,FedAvg)对上传的模型参数做平均),并且无法获知任何参与者的信息。
步骤4、服务端将聚合后的结果加密发送给参与者。
步骤5、客户端(参与者)用解密的全局模型参数来更新各自的模型。
通过上述步骤进行迭代,直到损失函数(loss function)收敛,从而完成整个训练过程。
通过对上述联邦学习训练框架分析发现,上述联邦学习训练框架存在以下不足。
第一,联邦学习中,不同客户端的数据分布不均对联邦训练的效果有着很大影响,如准确率、收敛速度等。在很多业务场景中,相同业务的不同客户端的数据分布由于时空因素影响可能存在巨大差异。
第二,传统联邦学习算法主要面向单一全局模型,即服务端训练一个全局模型。相关技术中,联邦学习主要集中在算法上的改进,如共享部分公开数据集,改进损失函数等,以缓解多个客户端数据分布不均和数据异构的问题,但无法从根本上解决问题,也就是单一模型不足以模拟不同业务(客户端)下数据的分布模式。
在一些研究中,提出先对客户端做聚类,再对每个类的客户端模型参数用联邦平均算法汇聚为全局模型,因此每个类对应一个全局模型,服务端下发多个全局模型至相应的客户端。然而通过研究发现,这种方法存在以下不足:不同客户端拥有数据的分布存在差异,数据分布不同直接影响本地局部模型参数的差异,因此直接对客户端进行聚类会导致有些簇内包含的客户端数量过少,仅在该簇内进行模型汇聚并没有充分利用到其他客户端的数据,导致影响模型效果。
有鉴于此,本实施例提供了一种具有两个阶段联邦学习的架构,能解决数据分布不均及数据异构的问题,从而提升模型效果。本实施例的联邦学习分为一阶段联邦学习和二阶段联邦学习。一阶段联邦学习中服务端协同多个客户端进行模型训练,一阶段联邦学习输出的全局模型作为二阶段联邦学习的初始化模型。在二阶段联邦学习中,对客户端进行聚类分析,输出多个全局模型,区分不同客户端之间的差异性。
下面对两个阶段联邦学习提升模型效果的原理进行分析。
如果没有预先执行一阶段联邦学习模型训练的过程,直接是对客户端进行聚类并对一个簇内客户端的模型参数进行汇聚,那么不同的簇在汇聚过程中是不相关的。如果客户端数据分布很极端,一个簇内的客户端就很少,数据也会很少,对簇内客户端模型参数汇聚得到的全局模型的效果就会较差,无法利用其他簇中客户端数据。而本实施例提供的方法中,通过先进行一阶段联邦学习,将所有的客户端模型在第一阶段一起汇聚,这样有着极端数据分布的客户端在一阶段获得的全局模型就包含了其他客户端的数据。因此,通过一阶段联邦学习能达到一个效果较好的初始化全局模型。通过在一阶段联邦学习的基础上继续进行二阶段联邦学习,由于二阶段联邦学习进行了聚类分析,同一个簇内客户端的数据分布具有一定的相似性,因此在一个簇内进行模型参数汇聚时,能避免利用到无用数据(即其他簇内不相似的数据),从而避免对基于异构数据得到的模型参数进行汇聚对模型效果的影响,提升模型效果。
下面对本申请实施例的系统架构举例说明。
附图1是本申请实施例提供的一种系统架构的示意图。附图1所示的系统架构是对双服务端的联邦学习架构的举例说明。附图1所示的系统架构支持两个阶段的联邦学习模型训练。
附图1所示的系统架构包括第一服务端111、第二服务端112、聚类分析器113、客户端121、客户端122、客户端123和客户端124。下面对附图1中各个设备的典型产品形态、位置、作用、连接关系举例说明。
一、第一服务端111
第一服务端111是参与一阶段联邦学习模型训练的服务端。在一阶段联邦学习模型训练中,第一服务端111扮演着调度者或者说中心节点的角色。具体来说,第一服务端111用于汇聚各个客户端上传的一阶段局部模型参数,得到一阶段全局模型参数,将一阶段全局模型参数下发至各个客户端。第一服务端111获得的一阶段全局模型参数会作为二阶段的初始化模型。第一服务端111获得的一阶段全局模型参数有时也称为一阶段的中心模型。
以附图1所示的场景为例,第一服务端111用于协同附图1中客户端121、客户端122、客户端123和客户端124这四个客户端进行一阶段的联邦学习模型训练。具体来说,在客户端121、客户端122、客户端123和客户端124这四个客户端参与一阶段的联邦学习模型训练时,第一服务端111用于接收这四个客户端中每个客户端发送的一阶段局部模型参数,从而获得四份一阶段局部模型参数。第一服务端111对四份一阶段局部模型参数进行汇聚处理,得到一阶段全局模型参数。第一服务端111还用于向客户端121、客户端122、客户端123和客户端124这四个客户端中的每个客户端发送一阶段全局模型参数,从而将利用了四个客户端的数据训练得到的全局模型提供给四个客户端中每个客户端。
由于第一服务端111进行了一阶段的联邦学习,能够将所有客户端的局部模型参数在一阶段汇聚到一起,汇聚得到的一阶段全局模型能利用到所有客户端提供的数据,因此一阶段全局模型能够作为一个性能较好的初始化模型。由于二阶段联邦学习中以一阶段全局模型为初始化模型进行模型训练,因此能提升二阶段联邦学习的效果。
第一服务端111的产品形态存在多种情况。例如,第一服务端111包括而不限于网络设备、服务器、个人计算机、笔记本电脑或者其他计算机一类的设备。可选地,第一服务端111是独立的硬件设备。可替代地,第一服务端111是包含多个硬件设备的集群或者分布式系统,或者是基于云计算以及网络功能虚拟化(network functions virtualization,NFV)技术所实现的虚拟化设备(如虚拟机或容器)。可选地,第一服务端111为提供模型训练的平台或者网络控制分析系统。
第一服务端111的部署位置存在多种情况。可选地,第一服务端111部署在云环境中。例如,第一服务端111运行在云计算系统中,该云计算系统用于向用户提供联邦学习的云服务,该云计算系统包括多个节点设备,第一服务端111是云计算系统中的一个节点设备。可替代地,第一服务端111部署在边缘环境中。例如,第一服务端111运行在边缘计算系统中,该边缘计算系统用于向用户提供联邦学习的边缘计算服务,该边缘计算系统包括多个节点设备,第一服务端111是边缘计算系统中的一个节点设备。
二、第二服务端112
第二服务端112是参与二阶段联邦学习模型训练的服务端。第二服务端112用于根据各个客户端的聚类结果分别聚合每个簇内客户端上传的二阶段局部模型参数,得到多个二阶段全局模型参数;第二服务端112还用于将多个二阶段全局模型参数分别下发至相应的客户端。
以附图1所示的场景为例,客户端121、客户端122、客户端123和客户端124这四个客户端的聚类结果是:客户端121和客户端122均属于聚类簇1,客户端123和客户端124均属于聚类簇2。第二服务端112根据四个客户端的聚类结果,会对客户端121和客户端122这两个客户端上传的二阶段局部模型参数进行聚合,得到聚类簇1对应的二阶段全局模型参数。并且,第二服务端112对客户端123和客户端124这两个客户端上传的二阶段局部模型参数进行聚合,得到聚类簇2对应的二阶段全局模型参数。第二服务端112将聚类簇1对应的二阶段全局模型参数下发至客户端121和客户端122,将聚类簇2对应的二阶段全局模型参数下发至客户端123和客户端124。
可选地,第二服务端112和第一服务端111具有相同的产品形态。可替代地,第二服务端112和第一服务端111具有不同的产品形态,例如第一服务端111是一台独立的物理服务器,而第二服务端112是多个物理服务器组成的集群,集群中不同物理服务器用于获取不同聚类簇的模型参数,从而分担二阶段模型训练整体的处理压力。
可选地,第二服务端112和第一服务端111的网络部署位置相同或相似,例如第二服务端112和第一服务端111均部署在云环境中,比如第二服务端112和第一服务端111是云计算系统中两个不同的节点设备。可替代地,第二服务端112和第一服务端111的网络部署位置不同,例如第二服务端112部署在云环境中,第一服务端111部署在边缘环境中。
可选地,第二服务端112和第一服务端111采用分设的方式实现,即第二服务端112和第一服务端111是不同的物理设备。通过由不同物理设备分别执行一阶段联邦学习和二阶段联邦学习,能够分担两阶段联邦学习整体的处理压力,避免两阶段联邦学习的任务集中在一个物理设备引起性能瓶颈,缓解服务端的资源消耗,
可替代地,第二服务端112和第一服务端111采用合设的方式实现,即第二服务端112和第一服务端111集成在同一物理设备中。例如,第二服务端112和第一服务端111是一个物理设备中的两个功能模块,这两个功能模块全部或部分地通过软件、硬件、固件或者其任意组合来实现。例如,在采用硬件实现的情况下,第二服务端112和第一服务端111可选地由一个设备中的两个AI加速器分别实现。在采用合设的方式实现时,一阶段联邦学习中服务端执行的步骤和二阶段联邦学习服务端执行的步骤是由同一物理设备执行的。
第二服务端112的更多细节可参考对第一服务端111的介绍。
三、客户端121
客户端121是参与一阶段联邦学习模型训练和二阶段联邦学习模型训练的客户端。客户端121是数据拥有方,即,客户端121本地保存有用于更新模型参数的数据。客户端121上的数据也称样本数据或者训练数据集。客户端121具有推理能力,即,客户端121能够利用本地数据更新模型参数。
客户端121会将本地设备状态、配置、模型参数分阶段上传至第一服务端111和第二服务端112进行交互,并更新模型参数至指定次数。具体来说,在一阶段联邦学习中,客户端121利用本地数据更新一阶段局部模型参数,将更新后的一阶段局部模型参数上传至第一服务端111,第一服务端111根据客户端121发送的一阶段局部模型参数进行汇聚后,将汇聚得到的一阶段全局模型参数下发给客户端121。当交互的次数达到指定次数时,一阶段联邦学习结束。在二阶段联邦学习中,客户端121利用本地数据更新二阶段局部模型参数,将更新后的二阶段局部模型参数上传至第二服务端112,第二服务端112根据客户端121的聚类结果以及客户端121发送的二阶段局部模型参数进行汇聚后,将汇聚得到的二阶段全局模型参数下发给客户端121。当交互的次数达到指定次数时,二阶段联邦学习结束。
客户端121的产品形态存在多种情况。可选地,客户端121是网络设备。客户端121上的数据来自于客户端121采集、转发或截获的网络数据流。例如,客户端121包括而不限于交换机、路由器、防火墙、安全网关、入侵检测系统(intrusion detection system,IDS)类设备或者入侵防御系统(intrusion prevention system,IPS)类设备等。可选地,客户端121是终端设备,例如客户端121包括而不限于个人计算机、移动电话、服务器、笔记本电脑、IP电话、摄像头、平板电脑、可穿戴设备等。
客户端121的部署位置存在多种情况。可选地,客户端121部署在局域网内部。可替代地,客户端121部署在局域网与互联网的边界。
客户端122、客户端123和客户端124均与客户端121类似,可参考对客户端121的介绍。
四、聚类分析器113
聚类分析器113用于针对参与二阶段联邦学习模型训练的客户端进行聚类分析。具体来说,聚类分析器113用于根据聚类结果以及客户端上报的客户端信息,获取客户端的聚类结果。聚类分析器113获取的聚类结果用于进行二阶段联邦学习模型训练。
以附图1所示的场景为例,客户端121、客户端122、客户端123和客户端124这四个客户端例如是参与二阶段联邦学习模型训练的客户端,聚类分析器113接收客户端121发送的客户端121信息、客户端122发送的客户端122信息、客户端123发送的客户端123信息、客户端124发送的客户端124信息,聚类分析器113基于客户端121信息、客户端122信息、客户端123信息和客户端124信息这四个客户端信息以及聚类规则,获得四个客户端的聚类结果,聚类分析器向第二服务端112发送四个客户端的聚类结果。
可选地,聚类分析器113和第二服务端112采用合设的方式实现,即第二服务端112和聚类分析器113集成在同一物理设备中。聚类分析器113的产品形态和部署位置可参考对第二服务端112的介绍。在采用合设的方式实现时,二阶段联邦学习中聚类分析和获取聚类簇的全局模型参数是由同一物理设备执行的。
可替代地,聚类分析器113和第二服务端112采用分设的方式实现,即第二服务端112和聚类分析器113是不同的物理设备,聚类分析器113和第二服务端112通过网络相连。聚类分析器113包括而不限于服务器、个人计算机、笔记本电脑或者其他计算机一类的设备。可选地,聚类分析器113和第二服务端112部署在同一网络中。
下面对本申请实施例的方法流程举例说明。
附图2是本申请实施例提供的一种基于联邦学习的模型训练方法的流程图。附图2所示方法包括以下步骤S201至步骤S208。
附图2所示方法所基于的网络部署场景可选地如上述附图1所示。例如,结合附图1来看,附图2所示方法中的第一客户端为附图1中的客户端121,附图2所示方法中的聚类分析器为附图1中的聚类分析器113、附图2所示方法中的第二服务端为附图1中的第二服务端112。
附图2所示方法的典型应用场景包括应用识别。例如,附图2所示方法中的第一客户端为部署在局点与互联网边界处的一个网络设备,第一客户端采集入/出局点的流量,根据流量训练用于识别出应用类型的模型。
附图2所示方法涉及两个阶段的联邦学习,每个阶段的联邦学习均涉及交互局部模型参数和全局模型参数。为了区分不同阶段的局部模型参数,用“一阶段局部模型参数”、“二阶段局部模型参数”分别指代第一个阶段的联邦学习中的局部模型参数和第二个阶段的联邦学习中的局部模型参数。为了区分不同阶段的全局模型参数,用“一阶段全局模型参数”、“二阶段全局模型参数”分别指代第一个阶段的联邦学习中的全局模型参数和第二个阶段的联邦学习中的全局模型参数。
附图2所示方法涉及多个客户端参与联邦学习。为了区分不同的客户端,用“第一客户端”、“第二客户端”区分描述多个不同的客户端。
附图2所示方法涉及两个阶段的联邦学习中的服务端。为了区分不同的服务端,用“第一服务端”、“第二服务端”区分描述不同阶段参与联邦学习的服务端。
附图2所示方法可选地涉及聚类分析器与多个客户端中每个客户端进行的交互。为了便于读者理解,附图2所示方法以聚类分析器与第一客户端之间的交互为例进行说明。聚类分析器与第一客户端之外其他客户端的交互流程可参考与第一客户端的交互流程。
附图2所示方法以聚类分析器和第二服务端分设为例描述流程,步骤S201、S203至S205由聚类分析器执行,步骤S206和S208由第二服务端执行。在聚类分析器和第二服务端合设实现时,以下步骤S201、S203至S205、和步骤S206和S208均由聚类分析器和第二服务端所集成的设备执行。比如,聚类分析器集成在第二服务端上时,以下聚类分析器执行的步骤实际上是第二服务端执行的。
步骤S201、聚类分析器获取聚类规则,聚类规则用于指示第一客户端的聚类结果。
聚类规则用于对多个客户端进行聚类。更具体的来讲,聚类规则用于对参与二阶段联邦学习模型训练的多个客户端进行聚类。通过采用聚类规则对客户端聚类,能够将客户端信息相似的不同客户端划分至同一个聚类簇,以便对同一个聚类簇的客户端的模型参数进行汇聚。
聚类规则包括很多种维度的规则。例如,聚类规则包括而不限于根据客户端的设备信息进行聚类的规则、根据客户端本地数据的属性进行聚类的规则、根据客户端的业务需求进行聚类的规则。
根据客户端的设备信息进行聚类的规则具体包括根据客户端的性能进行聚类的规则、根据客户端所在的地点进行聚类的规则(以下简称为地域规则)、根据客户端所属的机构进行聚类的规则、根据客户端的设备类型进行聚类的规则。
根据客户端的性能进行聚类的规则用于将性能相同或相似的客户端聚为一个聚类簇,以便将性能相同或相似的客户端的模型参数汇聚为全局模型参数。由于客户端的性能对于客户端本地训练模型的速度有影响,而联邦学习需要多个客户端一起参与,本实施例通过将性能相同或相似的客户端聚类在一起,能够提升联邦训练的效率。
地域规则用于将所处地点相同或相近的客户端聚为一个聚类簇,以便将地点相同或相似的客户端的模型参数汇聚为全局模型参数。由于同一地区的数据分布相似的概率很高,因此通过引入地域规则,能够将同一地区的客户端聚为一个簇,有助于基于同一地区的数据训练的局部模型参数进行汇聚,避免不同地区数据异构对模型性能的影响,提升模型性能。
根据客户端的本地数据的属性进行聚类的规则具体包括根据客户端收集本地数据的时间进行聚类的规则(以下简称为时域规则)、根据客户端本地数据的数据类型进行聚类的规则、根据客户端本地数据的取值范围进行聚类的规则。数据类型例如为无符号整型数(UNIT)、字节型(byte)、短整型(short)、整型(int)、长整型(long)、双精度浮点型(double)、单精度浮点型(float)、布尔型(boolean)或字符型(char)等。
时域规则用于将数据收集时间相同或相近的客户端聚为一个聚类簇,以便将相同时间收集到的数据训练得到的局部模型参数汇聚为全局模型参数。由于不同时间段客户端接收到的数据分布很可能会不太一样,比如网络场景中,重大节假日的流量数据与平时的流量数据会有巨大差距(数据分布不同),因此如果将数据收集时间不同的客户端的局部模型参数汇聚到一起,很可能会由于数据异构问题而影响模型性能。而本实施例通过引入时域规则,有助于将数据收集时间不同的客户端聚在不同簇内,对数据收集时间相同或相近的客户端的局部模型进行汇聚,从而避免数据异构问题,提升模型性能。
根据客户端的业务需求进行聚类的规则的聚类规则用于将业务需求相同或相近的不同客户端划分至同一个聚类簇。业务需求是指客户端需要应用模型执行的任务。例如,业务需求包括而不限于分类和预测。分类需求可选地根据需要应用模型识别的类别数量进一步细化,例如分类需求包括分为两类,分为3类等。
可选地,上述不同维度的聚类规则择一使用其中的一种。可替代地,上述不同维度的聚类规则采用任意方式结合,也即是,聚类分析器同时使用多种维度的聚类规则对客户端进行聚类。多个维度的聚类规则相结合时,不同维度的聚类规则之间的逻辑关系可以是且的关系,也可以是或的关系。
通过引入聚类规则,可帮助训练模型达到更好的性能,例如提高模型的分类准确度或减少模型的预测误差等。
聚类规则的内容包括很多种实现方式,下面结合四种实现方式举例说明,每种实现方式提供的聚类规则的具体使用过程请参考下述步骤S204。
实现方式A、聚类规则包括客户端信息与聚类簇之间的对应关系。
例如,根据客户端的性能进行聚类的规则包括至少一组性能与聚类簇之间的对应关系。又如,根据客户端收集本地数据的时间进行聚类的规则包括至少一组时间段与聚类簇之间的对应关系。
实现方式B、聚类规则包括客户端信息的阈值与聚类簇之间的对应关系。
客户端信息的阈值用于对客户端信息进行比较。例如,根据客户端的性能进行聚类的规则包括性能的阈值。
实现方式C、聚类规则包括同一个聚类簇中不同客户端的客户端信息之间的距离的阈值。
客户端信息之间的距离的阈值用于判断不同客户端之间的相似性,即是否要将不同客户端划分至同一个聚类簇中。
实现方式D、聚类规则包括聚类簇中簇中心对应的客户端信息。
簇中心是指一个簇内多个客户端中的中心节点。
步骤S202、第一客户端向聚类分析器发送第一客户端消息。
第一客户端消息是第一客户端发送的消息。第一客户端消息包括第一客户端的客户端信息。
第一客户端的客户端信息包括而不限于以下任意一种及其组合:第一客户端的设备信息;第一客户端的本地数据的属性;第一客户端的业务需求。
第一客户端的设备信息包括以下任意一种及其组合:第一客户端的性能信息;第一客户端所在的地点信息;第一客户端所属的机构;第一客户端的设备类型。第一客户端的性能信息例如表示第一客户端的计算性能,例如第一客户端的中央处理器(centralprocessing unit,CPU)占用率、剩余内存等。
第一客户端的本地数据的属性包括以下任意一种及其组合:第一客户端收集本地数据的时间:第一客户端的本地数据的数据类型;第一客户端的本地数据的取值范围。第一客户端收集本地数据的时间例如为第一客户端获取到本地数据的时间戳。第一客户端的本地数据的取值范围例如为(0,1)、(0,255)等。
第一客户端发送客户端信息的触发条件包括很多种。例如,当第二服务端开启一轮联邦学习时,第二服务端通知第一客户端开启二阶段的联邦学习,第一客户端接收到第二服务端的通知后,向聚类分析器发送第一客户端的客户端信息。可选地,二阶段的联邦学习包括多轮迭代过程,由第二服务端指定开启一轮学习,在规定的迭代次数后停止学习。第二服务端有新一轮学习需求时,再开启新一轮学习,通知第一客户端开启学习。
步骤S203、聚类分析器接收第一客户端发送的第一客户端消息。
步骤S204、聚类分析器基于第一客户端的客户端信息和聚类规则获得第一客户端的聚类结果。
第一客户端的聚类结果用于指示第一客户端对应的聚类簇。聚类簇包括一组客户端信息相似的客户端。可选地,同一个聚类簇中每一个客户端的客户端信息与该聚类簇中簇中心对应的客户端信息之间的距离小于设定的阈值。可选地,同一个聚类簇中任两个客户端的客户端信息之间的距离小于设定的阈值。例如,第一客户端的聚类结果指示第一客户端对应的聚类簇为第一聚类簇,第一聚类簇包括第一客户端以及第一客户端之外的一个或多个其他客户端,该一个或多个其他客户端中每个客户端与第一客户端具有相似的客户端信息。
下面对具体如何基于聚类规则获得聚类结果举例说明。基于聚类规则获得聚类结果包括而不限于下述实现方式A至实现方式D。
实现方式A、在聚类规则包括客户端信息与聚类簇之间的对应关系的情况下,对客户端信息与聚类规则中的客户端信息进行匹配,从而确定客户端对应的聚类簇。
例如,第一客户端的聚类结果的获取过程包括:聚类分析器根据第一客户端发送的客户端信息,从聚类规则中查询得到第一聚类簇,该第一聚类簇为聚类规则中第一客户端发送的客户端信息对应的聚类簇。
例如,聚类规则包括如表1所示的对应关系。如果第一客户端的客户端信息为表1中客户端信息1,则聚类分析器确定客户端属于簇A。例如,对于地域规则这种聚类规则而言,第一客户端发送的信息包括第一客户端所处的地点,地域规则包括地点与聚类簇之间的对应关系。对于基于设备所属机构进行聚类的规则而言,第一客户端发送的信息包括第一客户端所属的机构,地域规则包括机构与聚类簇之间的对应关系。
表1
客户端信息 聚类簇
客户端信息1 簇A
客户端信息2 簇B
实现方式B、在聚类规则包括客户端信息的阈值与聚类簇之间的对应关系的情况下,对客户端信息与聚类规则中的阈值进行比较,从而确定客户端对应的聚类簇。
例如,第一客户端的聚类结果的获取过程包括:聚类分析器对第一客户端发送的客户端信息与聚类规则中的阈值进行比较。如果第一客户端发送的客户端信息大于或等于聚类规则中的阈值,则确定第一客户端属于簇A。如果客户端的客户端信息小于聚类规则中的阈值,则确定客户端属于簇B。
实现方式C、在聚类规则包括同一个聚类簇中不同客户端的客户端信息之间的距离的阈值的情况下,对不同客户端信息之间的距离与聚类规则中的阈值进行比较,从而确定客户端对应的聚类簇。
例如,第一客户端和第二客户端这两个客户端的聚类结果的获取过程包括:聚类分析器计算两个客户端的客户端信息之间的距离,对客户端信息之间的距离与聚类规则中的阈值进行比较。如果客户端信息之间的距离小于聚类规则中的阈值,则确定两个客户端属于同一个簇。如果客户端信息之间的距离大于或等于聚类规则中的阈值,则确定两个客户端属于不同的簇。
客户端信息之间的距离的确定方式包括很多种。例如,计算两个客户端的客户端信息的差值,将该差值作为两个客户端信息之间的距离。又如,将两个客户端的客户端信息映射至向量空间,得到两个客户端的客户端信息的特征向量,计算两个特征向量之间的向量相似度(如余弦相似度、欧式距离等),将该向量相似度作为两个客户端信息之间的距离。
实现方式D、在聚类规则包括聚类簇中簇中心对应的客户端信息的情况下,根据客户端信息与簇中心对应的客户端信息之间的距离,确定客户端对应的聚类簇。
例如,第一客户端的聚类结果的获取过程包括:聚类分析器计算第一客户端的客户端信息与聚类规则中簇中心对应的客户端信息之间的距离,聚类分析器对第一客户端与簇中心的客户端信息的距离与阈值进行比较。如果第一客户端与簇中心的客户端信息的距离小于阈值,则确定第一客户端属于簇中心对应的簇,如果第一客户端与簇中心的客户端信息的距离大于或等于阈值,则确定第一客户端不属于簇中心对应的簇。
例如,对于地域规则这种聚类规则而言,在采用实现方式D时,第一客户端发送的信息包括第一客户端所处的地点,地域规则包括簇中心所处的地点,聚类分析器根据第一客户端上报的地点以及簇中心所处地点,计算第一客户端与簇中心之间的距离,如果第一客户端与簇中心之间的距离小于阈值,则确定第一客户端属于该簇中心对应的簇。
步骤S205、聚类分析器向第二服务端发送第一客户端的聚类结果。
步骤S206、第二服务端接收聚类分析器发送的第一客户端的聚类结果。
步骤S207、第一客户端向第二服务端发送第一客户端的二阶段局部模型参数。
第一客户端的二阶段局部模型参数是指第一客户端在二阶段联邦学习中根据本地数据进行模型训练得到的模型参数。第一客户端发送的二阶段局部模型参数包括而不限于模型的权重、模型的权重的变化量(如本轮训练得到的权重与上一轮训练得到的权重之差)、模型的结构参数(如模型中层的数量、每一层中节点的数量、不同层节点之间连接关系)、模型的梯度等。
步骤S208、第二服务端根据第一客户端的聚类结果和第一客户端的二阶段局部模型参数获取第一客户端对应聚类簇的全局模型参数。
具体来说,第二服务端从第一客户端的聚类结果获取第一客户端对应聚类簇。第二服务端从N个客户端发送的二阶段局部模型参数中选择该聚类簇中每个客户端的二阶段局部模型参数(包括第一客户端的二阶段局部模型参数)。第二服务端对该聚类簇中每个客户端的二阶段局部模型参数进行汇聚处理,得到该聚类簇的全局模型参数。N为大于1的正整数。
可选地,第二服务端还向第一客户端发送第一客户端对应聚类簇的全局模型参数。
本实施例提供了一种将聚类分析引入至具有两个阶段的联邦学习的方法,通过提供聚类分析依据的聚类规则,根据聚类规则以及客户端上报的客户端信息对参与联邦学习模型训练的客户端进行聚类,将聚类结果提供给二阶段联邦学习中的服务端,从而支持二阶段联邦学习中服务端利用聚类结果获取簇内的全局模型参数。由于同一个簇内客户端数据具有一定的相似性,因此能够一定程度解决数据分布不均及数据异构的问题,避免数据分布不均及数据异构对模型性能的影响,提升模型准确性。
进一步地,二阶段联邦学习支持将参与联邦学习的客户端分为多个簇,在每个簇内进行模型参数的汇聚后能得到多个不同的全局模型,从而保证模型个性化的目的。
附图2所示方法以聚类分析器与一个第一客户端的交互流程为例进行描述。可选地,附图2所示方法用于与N个客户端交互,N个客户端中每一个客户端均是参与联邦学习模型训练的客户端。在二阶段联邦学习过程中,N个客户端中每一个客户端向聚类分析器发送客户端信息,所述聚类分析器接收所述N个客户端中各个客户端发送的客户端信息;所述聚类分析器基于N个客户端中各个客户端的客户端信息和所述聚类规则,对所述N个客户端进行聚类,得到所述N个客户端的聚类结果;所述聚类分析器向第二服务端发送所述N个客户端的聚类结果。
在N个客户端参与二阶段联邦学习的情况下,所述第二服务端接收聚类分析器发送的N个客户端的聚类结果,根据所述N个客户端的聚类结果和所述N个客户端的二阶段局部模型参数获取所述N个客户端对应的M个聚类簇的全局模型参数。其中,N为正整数,M为小于或等于N的正整数。以N个客户端的聚类结果为:所述N个客户端聚类为M个聚类簇为例,所述第二服务端对第i个聚类簇中包含的Pi个客户端的二阶段局部模型参数进行汇聚处理,得到所述第i个聚类簇的二阶段全局模型参数,其中,N为正整数,M为小于或等于N的正整数,i是小于或等于M的正整数,Pi是小于或等于N的正整数。
在一些实施例中,一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,N个客户端包括第一客户端。
汇聚处理(aggregate)包括而不限于平均和加权平均的方式。在采用平均的方式时,一阶段全局模型的获取过程例如包括:第一服务端计算N个客户端的局部模型参数的平均值,将该平均值作为一阶段全局模型参数。例如,N个客户端包括客户端1、客户端2和客户端3,客户端1上模型的权重(局部模型参数)为W1,客户端2上模型的权重(局部模型参数)为W2,客户端3上模型的权重(局部模型参数)为W3,则第一服务端计算W1、W2和W3的平均值,作为一阶段全局模型参数。在采用加权平均的方式时,一阶段全局模型的获取过程例如包括:第一服务端确定N个客户端中每个客户端的权重,第一服务端根据每个客户端的权重计算N个客户端的局部模型参数的加权平均值,将该加权平均值作为一阶段全局模型参数。其中,客户端的权重例如与客户端拥有的本地数据的数据量正相关。
在一些实施例中,二阶段联邦学习涉及的聚类簇中每个客户端的局部模型参数均是基于一阶段全局模型更新得到的。以参与一阶段联邦学习的N个客户端包括第一客户端和第二客户端为例,聚类分析器对N个客户端进行聚类,得到的聚类结果指示第一客户端和第二客户端属于同一个聚类簇。在二阶段联邦学习过程中,第一客户端根据第一客户端的本地数据对一阶段全局模型参数进行更新,得到第一客户端的二阶段局部模型参数。第一客户端向第二服务端发送第一客户端的二阶段局部模型参数。第二客户端根据第二客户端的本地数据对一阶段全局模型参数进行更新,得到第二客户端的二阶段局部模型参数。第二客户端向第二服务端发送第二客户端的二阶段局部模型参数。第二服务端接收聚类分析器发送的聚类结果、第一客户端发送的二阶段局部模型参数、第二客户端发送的二阶段局部模型参数,第二服务端根据第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数,获得第一客户端对应聚类簇的全局模型参数。第二服务端向第一客户端和第二客户端发送聚类簇的全局模型参数。
下面对聚类分析器如何获取聚类规则举例说明,详见下述实现方式一至实现方式二。
实现方式一、用户输入聚类规则
聚类分析器获取用户输入的聚类规则。可选地,聚类规则是通过用户界面输入的。具体地,聚类分析器提供聚类规则配置界面。终端显示聚类规则配置界面。终端检测用户在聚类规则配置界面上执行的输入操作。终端根据输入操作获取用户输入的聚类规则,将用户输入的聚类规则发送至聚类分析器,聚类分析器接收终端发送的聚类规则,从而获得用户输入的聚类规则。可替代地,聚类规则是通过命令行输入的。
聚类规则配置界面用于输入聚类规则,从而支持用户自定义聚类规则的功能。例如,聚类规则配置界面包括多种选择框,选择框用于是否选择采用某一种聚类规则或者选择聚类规则的取值范围。每个具体的规则都对应至少一个选择框(是否选择),以及是否进一步选择聚类算法,选择哪种聚类算法。例如,选择同一种数据类型作为规则,在对应规则框中选择‘是’,进一步可在子选择框中选择已提供的几种数值取值范围的规则划分。
可选地,聚类规则中的客户端信息是用户设定的。例如,由用户根据专家经验设定聚类规则中的客户端信息。可替代地,聚类规则中的客户端信息是通过机器学习的方式自动获取的。
实现方式二、第三方系统同步聚类规则
例如,第三方系统确定聚类规则,向聚类分析器发送聚类规则。聚类分析器接收第三方系统发送的聚类规则。
可选地,聚类分析器通过机器学习的方式自动获取聚类规则。例如聚类分析器采用机器学习算法对多个候选聚类规则的效果进行测试,从多个候选聚类规则中确定效果最优的聚类规则以进行聚类分析。
下面对聚类分析器如何选择聚类规则进行说明。
可选地,聚类分析器根据客户端上用于训练模型的数据的数据类型选择对应的聚类规则。例如,如果数据类型是时间序列数据,则聚类分析器选择时域规则。如果数据类型不是时间序列数据,则聚类分析器选择地域规则。
可选地,聚类分析器根据模型所应用的业务场景选择对应的聚类规则。例如,在使用模型进行应用识别场景中,不同局点的流量之间应用类别分布差异很大,同一局点不同时间的流量之间应用类别分布差异也很大,聚类分析器选择地域规则和时域规则。例如,在对手写数字数据集进行分类的场景中,不同地点,不同时间采集的数据并无巨大差异,因此不必在聚类规则中指定使用地域规则和时域规则。
在一些实施例中,聚类分析器还用于进行聚类管理。聚类管理的方式包括很多种。例如,聚类管理包括而不限于以下任一项及其组合:聚类分析器管理聚类结果;或者,聚类分析器管理聚类规则与第二服务端之间的对应关系;或者,聚类分析器管理聚类结果与第二服务端之间的对应关系。
可选地,当聚类分析器位于第二服务端上时,聚类分析器的聚类管理方式为管理聚类结果。当聚类分析器与第二服务端分离时,聚类分析器的聚类管理方式为管理聚类规则与第二服务端之间的对应关系以及聚类结果与第二服务端之间的对应关系。
可选地,在采用聚类规则进行聚类的基础上,还采用聚类算法对客户端进一步聚类。例如,聚类分析器先采用聚类规则将N个客户端聚为m个聚类簇(m<=N),再采用聚类算法将m个聚类簇中的每一个聚类簇进一步聚为多个子簇。
聚类算法包括而不限于K-均值(K-means),高斯混合模型(Gaussian MixtureModel,GMM),层次聚类(Hierarchical Clustering)等。
可选地,聚类算法是用户通过聚类规则配置界面选择的。例如,聚类规则界面包括用于选择聚类算法的选择框,选择框中显示有多种聚类算法的标识,用户从选择框中的一种聚类算法的标识触发选择操作,从而选择该标识对应的聚类算法,聚类分析器采用用户选择的聚类算法进行聚类。通过这种方式,支持用户自定义指定聚类算法。可替代地,聚类算法是聚类分析器内置的算法。
可选地,聚类算法是聚类分析器从设定的多种算法中选择出的。例如,聚类分析器确定设定的多种算法的聚类效果,从设定的多种算法中选择聚类效果最优的算法。其中,聚类效果是否最优可通过簇中心的距离以及簇内的凝聚度判定。例如,聚类效果最优是指簇中每个客户端与簇中心的平均距离最小,又如,聚类效果最优是指簇内的凝聚度最大。可选地,聚类分析器通过自动机器学习(Automated Machine Learning,AutoML)来选择聚类算法。
可选地,聚类算法是根据模型参数进行聚类的。例如,采用聚类算法得到的多个子簇中同一个子簇内的不同客户端的模型参数之间的距离小于阈值,不同子簇中客户端的模型参数之间的距离大于阈值。
可选地,聚类算法具体是根据二阶段局部模型参数进行聚类的。例如,采用聚类算法,根据二阶段局部模型的权重或梯度中至少一项,对客户端进行聚类。例如,聚类分析器采用聚类规则确定了一个聚类簇,该聚类簇包括第一客户端、第二客户端、第三客户端和第四客户端。聚类分析器根据第一客户端的二阶段局部模型参数、第二客户端的二阶段局部模型参数、第三客户端的二阶段局部模型参数、第四客户端的二阶段局部模型参数,采用聚类算法进行聚类,从而将该聚类簇划分为2个子簇。子簇1包括第一客户端和第二客户端,子簇2包括第三客户端和第四客户端。
上述附图2所示的方法侧重描述聚类分析的流程,下面对基于上述附图2所示方法进行联邦学习模型训练的具体流程进行介绍。
基于附图2所示方法,多服务端联邦学习架构下联邦训练步骤包括以下第一阶段和第二阶段的流程。
第一阶段:N个客户端中每个客户端与第一服务端交互。
第一阶段包括以下步骤S410至步骤S415。
步骤S410、第一服务端与客户端建立通信连接。第一服务端向客户端下发初始模型,并向客户端发送设定的迭代次数。
步骤S411、客户端接收第一服务端发送的初始模型,客户端根据本地数据更新第一服务端发送的模型的模型参数。
步骤S412、客户端向第一服务端发送更新后的模型参数。
步骤S413、第一服务端接收N个客户端中每个客户端发送的模型参数,第一服务端对N个客户端的模型参数汇聚为全局模型参数,并向N个客户端中每个客户端下发全局模型参数。
步骤S414、重复步骤S412-步骤S413至预先指定的迭代次数。
步骤S415、客户端与第一服务端停止通信。
第二阶段:N个客户端中每个客户端与第二服务端交互。
第二阶段包括以下步骤S421至步骤S426。
步骤S421、客户端根据本地数据更新在第一阶段最后一次从第一服务端接收到的全局模型。
可选地,客户端在参与二阶段联邦学习和一阶段联邦学习时使用的数据相同。也即是,上述步骤S421和步骤S411中客户端使用的本地数据是相同的。例如,客户端使用同一个数据集分别进行一阶段联邦学习和二阶段联邦学习。可替代地,客户端在参与二阶段联邦学习和一阶段联邦学习时使用的数据不同。也即是,上述步骤S421和步骤S411中客户端使用的本地数据是不同的。可替代地,客户端在参与二阶段联邦学习和一阶段联邦学习时使用的数据部分相同而部分不同。
步骤S422、客户端与第二服务端建立通信连接。
步骤S423、客户端将更新后的局部模型发送至第二服务端。
上述步骤S412和步骤S423中客户端发送模型参数的触发条件包括很多种情况。可选地,当客户端本地的模型收敛时,客户端发送更新后的模型参数。可选地,当客户端对模型参数更新的次数达到设定的迭代次数时,客户端发送最后一次更新得到的模型参数。可替代地,如果客户端本次更新得到的模型参数与上一次更新得到的模型参数之间的差值小于阈值,则客户端发送本次更新得到的模型参数。可替代地,当客户端本地训练模型的时长达到设定时长时,客户端发送模型参数。
步骤S424、第二服务端上的聚类分析器对N个客户端进行聚类。第二服务端根据聚类分析器得到的聚类结果,将从N个客户端接收到的局部模型汇聚为多个全局模型。第二服务端将每个全局模型下发至相应的客户端。
第二服务端下发的全局模型的数量可选地和对客户端聚类得到的簇的数量是相同的。例如,聚类分析器将参与联邦学习的N个客户端划分为M个聚类簇。第二服务端对M个聚类簇中每个客户端的局部模型参数进行汇聚,得到M个全局模型,将M个全局模型中每个全局模型发送至对应聚类簇中每个客户端。
通过步骤S424可见,第二阶段每轮联邦训练过程中存在多个全局模型同时优化,存在一个服务端下发至不同客户端的全局模型并非全部一致的情况,从而支持模型个性化的功能。
步骤S425、客户端接收全局模型参数,并根据本地数据更新全局模型参数。
步骤S426、重复步骤S423-步骤S425至模型收敛。
在一些实施例中,具体采用加密通信的方式执行上述联邦学习过程。例如,客户端在向服务端发送模型参数时,采用加密算法对更新后的模型参数进行加密,将加密后的模型参数发送至服务端。
可选地,二阶段联邦学习在客户端终止。例如,在二阶段联邦学习的每轮通信中,在客户端根据本地数据对服务端发送的二阶段全局模型参数进行更新后,客户端判断更新后的二阶段模型参数是否满足收敛条件。如果客户端确定更新后的二阶段模型参数满足收敛条件,则客户端将本次更新得到的二阶段模型参数作为训练完成的二阶段模型参数,停止向第二服务端上传模型参数,从而结束二阶段联邦学习。可替代地,二阶段联邦学习在第二服务端处终止。例如,每当第二服务端汇聚得到多个簇对应的多个二阶段全局模型参数时,第二服务端判断每个簇对应的二阶段全局模型参数是否满足收敛条件。如果第二服务端确定其中一个簇对应的二阶段全局模型参数满足收敛条件,则第二服务端停止向该簇中每个客户端下发全局模型参数,从而结束该簇中每个客户端的二阶段联邦学习。
可选地,客户端在二阶段全局模型的基础上继续训练。例如,客户端获得二阶段全局模型之后,收集到了第一数据集。客户端使用第一数据集对二阶段全局模型进行至少一次训练,将训练后的模型作为训练完成的模型;或者,客户端向第一服务端或第二服务端发送训练后的模型参数,从而触发第一服务端或第二服务端继续对模型参数进行汇聚。
上述各个方法实施例以两个阶段的联邦学习为例进行说明,可选地,在两个阶段的联邦学习的基础上进行更多阶段的联邦学习,例如,采用一阶段-二阶段-一阶段-二阶段的交替训练的方式,即,首先对所有客户端的局部模型参数一起汇聚;然后对每个簇内客户端的局部模型参数进行汇聚;之后再次对所有客户端的局部模型参数一起汇聚;然后再次对每个簇内客户端的局部模型参数进行汇聚。
下面结合一个具体的应用场景,对上述附图2所示方法举例说明。
应用识别场景是网络业务领域一个重要的应用。以应用识别场景为例,在不同局点,同一局点不同时间的流量之间应用类别分布差异很大,使用单一阶段的联邦学习方法会导致模型分类的准确度不高。在应用识别场景中,聚类规则考虑地域规则和时域规则这两个规则进行聚类,聚类算法选择指定的K-均值算法(最通用),因此在用户界面指定使用地域规则、时域规则以及K-均值算法。使用本实施例的训练步骤如下。
第一阶段的联邦学习:客户端与第一服务端建立连接,第一服务端下发初始模型,在每轮迭代过程中,客户端本地更新模型参数后上传模型参数,服务端对接收到的模型参数进行汇聚,并下发汇聚后的模型参数,直到达到指定迭代次数后,第一服务端与客户端断开连接。
第二阶段的联邦学习:第二服务端接收用户界面指定的信息,第二服务端与客户端建立连接,并要求客户端上传指定的信息以及更新后的模型参数,第二服务端按照指定的聚类规则聚类,再在每个簇内按照指定的聚类算法聚类,根据聚类结果对客户端的模型参数分簇进行汇聚,并下发汇聚后的模型至相应客户端。达到指定迭代次数后,第二服务端与客户端断开连接。
以上介绍了方法流程,以下结合附图3对执行上述方法流程的聚类分析器、客户端、服务端内的组件进行介绍。可选地,附图3所示的各个组件用于支持聚类分析器、客户端、服务端等设备执行附图2所示方法,附图2所示方法中第一客户端为附图3其中的一个客户端,附图2所示方法中第一服务端为附图3中的第一服务端,附图2所示方法中第二服务端为附图3中的第二服务端。
附图3是一种双服务端联邦训练框架图。附图3所示的联邦学习框架有助于解决数据分布不均及数据异构的问题。相较于传统的联邦学习框架,附图3提供了两个服务端的联邦学习框架,两个服务端均与所有的客户端进行交互,分为一阶段和二阶段,两个服务端之间并不交互信息。第一服务端输出一个全局模型,作为第二阶段的初始化模型。第二服务端上设置了聚类分析器,输出多个中心模型,区分不同客户端之间的差异性,解决联邦学习场景中的数据分布不均和异构数据协同训练问题,将有效提升模型训练效果。
聚类分析器包括规则聚类组件、聚类算法选择组件和聚类管理组件。聚类分析器在第二服务对客户端的模型联合训练之前,输出客户端的聚类结果。
规则聚类组件用于根据客户端的性能,地域,时域,状态,数据类型,任务需求等信息匹配来选择聚类。
聚类算法选择组件包含各种常用聚类的算法(比如K-means、GMM、层次聚类等),自适应选择算法进行聚类。
聚类管理组件用于对客户端进行聚类,存储聚类结果。
客户端、第一服务端和第二服务端均包括设备管理组件和模型管理组件,第二服务端还包括多模型管理组件。
设备管理组件用于管理当前设备的状态(例如是否能参与训练),数据类型(例如。数据类型:UNIT、float、char等,数据取值范围:如0-1或0-255),时域(例如数据收集的时间范围),地域信息(例如数据收集的地点),参数(例如模型的参数)。
客户端上的模型管理组件用于更新模型参数并上传更新后的模型参数。服务端上的模型管理组件用于汇聚模型参数并下发汇聚后的模型参数。
多模型管理组件用于汇聚同簇中的局部模型,并将多个全局模型下发至客户端的模型管理组件。
下面对基于附图3所示的多服务端联邦框架下各组件之间的具体交互流程进行介绍。
第一阶段的交互流程如附图4所示。可选地,附图4中的客户端为附图1中的客户端121。可选地,附图4中的客户端为附图2所示方法中的第一客户端。可选地,附图4中的客户端为附图3中的客户端。
第一阶段的交互流程包括以下步骤S511至步骤S515。
步骤S511、第一服务端中的设备管理组件向客户端发送建立连接请求。
步骤S512、客户端的设备管理组件接收建立连接请求,客户端确认是否参与一阶段联邦训练,确认参与并建立通信连接。
步骤S513、第一服务端的模型管理组件下发初始模型至已建立连接的客户端的模型管理组件。
步骤S514、客户端的模型管理组件根据本地数据更新初始模型参数,上传更新得到的局部模型参数至第一服务端。
步骤S515、第一服务端的模型管理组件汇聚局部模型参数,下发聚合后的全局模型至客户端。
第二阶段的交互流程如附图5所示。可选地,附图5中的客户端为附图1中的客户端121。可选地,附图5中的客户端为附图2所示方法中的第一客户端。附图5中的聚类分析器为附图2所示方法中的聚类分析器。附图5中的第二服务端为附图2所示方法中的第二服务端。可选地,附图5中的客户端为附图3中的客户端。可选地,附图5中的客户端为附图4中的客户端。
附图5中的聚类规则配置界面用于供用户外部自定义聚类规则(例如根据同一个地域、同一个时间或同一个厂商聚类,或指定某种聚类算法(用户输入指定,或者按照某个默认规则/算法来执行)。第二阶段的交互流程包括以下步骤S521至步骤S528。
步骤S521、客户端中的设备管理组件发送建立连接请求至第二服务端。
步骤S522、第二服务端中的设备管理组件确认参与二阶段联邦学习的客户端设备。
步骤S523、客户端的模型管理组件存储最后一次从第一服务端接收到的全局模型,并根据本地数据更新全局模型,通过设备管理组件上传设备信息(即设备管理组件中提到的信息)至第二服务端中规则聚类组件,客户端的模型管理组件发送模型参数至第二服务端的多模型管理组件。
步骤S524、规则聚类组件根据外部定义的聚类规则对参与训练的客户端进行聚类,将聚类结果发送至聚类算法选择组件,其中,聚类规则是人为定制的,例如按数据的分布时段、数据产生的地点、设备的种类、设备所属机构等来区分数据集,将N个客户端区分为M个聚类簇。其中,M为小于或等于M的正整数
步骤S525、聚类算法选择组件自适应选择聚类算法进一步对每个簇中的客户端S527聚类分析,输出聚类结果至聚类管理组件。具体地,在规则匹配的基础之上,可以再运用聚类算法(例如K-means,GMM)来进一步聚类,可以将M个聚类簇中的每一聚类簇划分为多类。
步骤S526、聚类管理组件将聚类结果发送至多模型管理组件。
步骤S527、多模型管理组件对每个簇里包含的客户端模型参数进行汇聚,每个簇之间相互独立,可并行进行汇聚操作,
步骤S528、多模型管理组件根据聚类结果下发相应的全局模型参数至各客户端,每个客户端接收到一个全局模型参数。
下面介绍如何配置附图3所示的双服务端联邦框架在一个具体的网络三层架构上。
网络三层架构包括云端设备、分析设备和网元设备三个层级。其中,云端设备为提供模型训练的平台;分析设备为网络控制分析系统;网元设备可为路由器,交换机,终端设备等。根据网元设备有无模型推理能力,有以下两种配置方案。
配置方案一、网元设备有推理能力:各网元设备为客户端,各网元设备进行本地模型的训练与更新,网络控制分析系统作为服务端收集网元设备的模型参数并汇聚下发,进行联邦学习的训练。请参考附图6,附图6示出了网元设备有推理能力情况下三层网络架构的配置示意图。可选地,结合附图1来看,附图6中的各个网元设备包括附图1中客户端121、客户端122、客户端123和客户端124,附图6中的网络控制分析系统601为附图1中第一服务端111,附图6中的网络控制分析系统602为附图1中第二服务端112和聚类分析器113所集成的设备。可选地,结合附图2来看,附图6中的各个网元设备包括附图2所示方法中第一客户端,附图6中的网络控制分析系统601为附图2所示方法中第一服务端,附图6中的网络控制分析系统602为附图2所示方法中第二服务端和聚类分析器所集成的设备。
配置方案二、网元设备不具有推理能力:各网元设备仅能储存数据,将数据上传至具有推理能力的网络控制分析系统上,各网络控制分析系统为客户端。各提供模型训练的平台为服务端,汇聚模型,进行联邦学习训练请参考针对附图4和附图5的说明。请参考附图7,附图7示出了网元设备有推理能力情况下三层网络架构的配置示意图。可选地,结合附图1来看,附图7中网络控制分析系统711为附图1中客户端121,附图7中网络控制分析系统712为附图1中客户端122、附图7中网络控制分析系统713为附图1中客户端124。附图7中的提供模型训练的平台701为附图1中第一服务端111,附图7中的提供模型训练的平台702为附图1中第二服务端112和聚类分析器113所集成的设备。可选地,结合附图2来看,附图7中的网络控制分析系统711或者网络控制分析系统712或者网络控制分析系统713设有附图2所示方法中第一客户端,附图7中的提供模型训练的平台701为附图2所示方法中第一服务端,附图7中的提供模型训练的平台702为附图2所示方法中第二服务端和聚类分析器所集成的设备。
总结上述各个实施例可见,本实施例基于数据异构场景下的双服务端的联邦框架,分别进行两个阶段的联邦训练,第一阶段能协同所有客户端进行训练,可获取所有客户端的数据,以达到一个好的初始化全局模型;第二阶段是为了解决数据异构问题,基于第一阶段最终的模型,对客户端进行聚类,每个簇内的客户端数据具有一定的相似性,在每个簇内部进行模型的汇聚,得到不同的中心模型,保证了模型个性化的目的。
联邦训练分为两个阶段一方面可缓解服务端的资源消耗,另一方面,客户端可得到两个模型,一阶段输出的全局模型可作为基模型,二阶段可得到个性化后的模型,可针对不同的任务需求使用。例如,当客户端新收集了新数据时,客户端可根据新数据与旧数据的相关度来决定使用哪个模型。若新数据与旧数据之间的相关度小于阈值,则客户端使用一阶段的全局模型处理新数据;若新数据与旧数据之间的相关度大于阈值,则客户端使用二阶段的全局模型处理新数据,因为二阶段的全局模型是针对旧数据个性化后的,更适合处理与旧数据强相关的数据。
附图8是本申请实施例提供的一种聚类分析器的结构示意图。聚类分析器800包括获取单元801、接收单元802、处理单元803和发送单元804。
可选地,结合附图1所示的系统架构而言,附图8所示的聚类分析器800是附图1中的聚类分析器113。
可选地,结合附图2来看,附图8所示的聚类分析器800是附图2所示方法流程中的聚类分析器。获取单元801用于支持聚类分析器800执行S201。接收单元802用于支持聚类分析器800执行S203。处理单元803用于支持聚类分析器800执行S204。发送单元804用于支持聚类分析器800执行S205。
可选地,结合附图3来看,附图8所示的聚类分析器800是附图3中聚类分析器,附图8所示的聚类分析器800设置于附图3中第二服务端上。
可选地,结合附图5来看,附图8所示的聚类分析器800是附图5中聚类分析器,附图8所示的聚类分析器800设置于附图5中第二服务端上。附图8所示的获取单元801是通过附图5中规则聚类组件实现的。
可选地,结合附图6来看,附图8所示的聚类分析器800是通过附图6中网络控制分析系统602实现的。
可选地,结合附图7来看,附图8所示的聚类分析器800是通过附图7中提供模型训练的平台702实现的。
附图8所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
聚类分析器800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
在采用软件实现的情况下,例如,上述处理单元803和获取单元801是由附图9中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,附图8中上述各个单元由计算机设备中的不同硬件分别实现,例如处理单元803由附图9中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而获取单元801由附图9中至少一个处理器901中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。接收单元802和发送单元804由附图9中的网络接口903实现。
在采用软件硬件相结合的方式来实现的情况下,例如,处理单元803由硬件可编程器件实现,而获取单元801是由CPU读取存储器中存储的程序代码后,生成的软件功能单元。
附图9是本申请实施例提供的一种计算机设备的结构示意图。
可选地,结合附图1所示的系统架构而言,附图9所示的计算机设备900上设置有附图1中的聚类分析器113。
可选地,结合附图2来看,附图9所示的计算机设备900上设置有附图2所示方法流程中的聚类分析器。
可选地,结合附图3来看,附图9所示的计算机设备900上设置有附图3中聚类分析器,附图9所示的计算机设备900为附图3中第二服务端。
可选地,结合附图5来看,附图9所示的计算机设备900上设置有附图5中聚类分析器,附图9所示的计算机设备900为附图5中第二服务端。附图8所示的获取单元801是通过附图5中规则聚类组件实现的。
可选地,结合附图6来看,附图9所示的计算机设备900为附图6中网络控制分析系统602实现。
可选地,结合附图7来看,附图9所示的计算机设备900为附图7中提供模型训练的平台702。
可选地,结合附图8来看,附图9所示的计算机设备900上设置有附图8中聚类分析器800。
计算机设备900包括至少一个处理器901、存储器902以及至少一个网络接口903。
处理器901例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器901包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器902例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器902独立存在,并通过内部连接904与处理器901相连接。或者,可选地存储器902和处理器901集成在一起。
网络接口903使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口903例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器901包括一个或多个CPU,如附图9中所示的CPU0和CPU1。
在一些实施例中,计算机设备900可选地包括多个处理器,如附图9中所示的处理器901和处理器905。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,计算机设备900还包括内部连接904。处理器901、存储器902以及至少一个网络接口903通过内部连接904连接。内部连接904包括通路,在上述组件之间传送信息。可选地,内部连接904是单板或总线。可选地,内部连接904分为地址总线、数据总线、控制总线等。
在一些实施例中,计算机设备900还包括输入输出接口906。输入输出接口906连接到内部连接904上。
可选地,处理器901通过读取存储器902中保存的程序代码910实现上述实施例中的方法,或者,处理器901通过内部存储的程序代码实现上述实施例中的方法。在处理器901通过读取存储器902中保存的程序代码910实现上述实施例中的方法的情况下,存储器902中保存实现本申请实施例提供的方法的程序代码。
处理器901实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
参见附图10,附图10是本申请实施例提供的一种计算机设备的结构示意图。
可选地,结合附图1所示的系统架构而言,附图10所示的计算机设备1000上设置有附图1中的聚类分析器113。
可选地,结合附图2来看,附图10所示的计算机设备1000上设置有附图2所示方法流程中的聚类分析器。
可选地,结合附图3来看,附图10所示的计算机设备1000上设置有附图3中聚类分析器,附图10所示的计算机设备1000为附图3中第二服务端。
可选地,结合附图5来看,附图10所示的计算机设备1000上设置有附图5中聚类分析器,附图10所示的计算机设备1000为附图5中第二服务端。附图8所示的获取单元801是通过附图5中规则聚类组件实现的。
可选地,结合附图6来看,附图10所示的计算机设备1000为附图6中网络控制分析系统602实现。
可选地,结合附图7来看,附图10所示的计算机设备1000为附图7中提供模型训练的平台702。
可选地,结合附图8来看,附图10所示的计算机设备1000上设置有附图8中聚类分析器800。
计算机设备1000包括:主控板1010和接口板1030。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板1010用于对计算机设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
接口板1030也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over sONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(physical interface card,PIC)1033。
接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
网络处理器1032用于实现报文的转发处理。网络处理器1032的形态例如是转发芯片。具体而言,网络处理器1032用于基于转发表项存储器1034保存的转发表转发接收到的报文,如果报文的目的地址为计算机设备1000的地址,则将该报文上送至CPU(如中央处理器1011)处理;如果报文的目的地址不是计算机设备1000的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,中央处理器也可执行网络处理器1032的功能,比如基于通用CPU实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
可选地,计算机设备1000包括多个接口板,例如计算机设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
可选地,计算机设备1000还包括交换网板1020。交换网板1020也例如称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间例如通过交换网板1020通信。
主控板1010和接口板1030耦合。例如。主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,IPC)通道,主控板1010和接口板1030之间通过IPC通道进行通信。
在逻辑上,计算机设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器1034中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一客户端和第二客户端用于区别不同的客户端,而不是用于描述客户端的特定顺序,也不能理解为第一客户端比第二客户端更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个客户端是指两个或两个以上的客户端。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (21)

1.一种基于联邦学习的模型训练方法,其特征在于,所述方法包括:
聚类分析器获取聚类规则,所述聚类规则用于指示第一客户端的聚类结果,所述第一客户端是参与联邦学习模型训练的客户端;
所述聚类分析器接收所述第一客户端发送的第一客户端消息,所述第一客户端消息包括第一客户端的客户端信息;
所述聚类分析器基于所述第一客户端的客户端信息和所述聚类规则获得所述第一客户端的聚类结果;
所述聚类分析器向第二服务端发送所述第一客户端的聚类结果,所述第二服务端用于根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数。
2.根据权利要求1所述的方法,其特征在于,所述聚类规则包括客户端信息与聚类簇之间的对应关系;或者,
所述聚类规则包括客户端信息的阈值与聚类簇之间的对应关系;或者,
所述聚类规则包括同一个聚类簇中不同客户端的客户端信息之间的距离的阈值;或者,
所述聚类规则包括聚类簇中簇中心对应的客户端信息。
3.根据权利要求1或2所述的方法,其特征在于,所述聚类分析器获取聚类规则,包括:
所述聚类分析器获取用户输入的聚类规则;或者,
所述聚类分析器接收第三方系统发送的聚类规则。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述聚类分析器管理所述聚类结果;或者,
所述聚类分析器管理所述聚类规则与所述第二服务端之间的对应关系;或者,
所述聚类分析器管理所述聚类结果与所述第二服务端之间的对应关系。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一客户端的客户端信息,包括以下任意一种及其组合:
所述第一客户端的设备信息;
所述第一客户端的本地数据的属性;
所述第一客户端的业务需求。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述第一客户端的二阶段局部模型参数是所述第一客户端根据所述第一客户端的本地数据对一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,所述N个客户端包括所述第一客户端,所述N为大于1的正整数。
7.根据权利要求6所述的方法,其特征在于,所述第一客户端对应聚类簇的全局模型参数是根据所述第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数获得的,所述第二客户端和所述第一客户端属于同一个聚类簇,所述第二客户端的二阶段局部模型参数是根据所述第二客户端的本地数据对所述一阶段全局模型参数进行更新得到的,所述N个客户端包括所述第二客户端。
8.一种基于联邦学习的模型训练方法,其特征在于,所述方法包括:
第二服务端接收聚类分析器发送的第一客户端的聚类结果,所述第一客户端是参与联邦学习模型训练的客户端;
所述第二服务端根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数。
9.根据权利要求8所述的方法,其特征在于,所述第一客户端的聚类结果指示所述第一客户端与第二客户端属于同一个聚类簇,所述第二服务端根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数,包括:
所述第二服务端根据所述第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数进行汇聚处理,得到所述第一客户端对应聚类簇的全局模型参数。
10.根据权利要求9所述的方法,其特征在于,所述第一客户端的二阶段局部模型参数是所述第一客户端根据所述第一客户端的本地数据对一阶段全局模型参数进行更新得到的,所述第二客户端的二阶段局部模型参数是根据所述第二客户端的本地数据对所述一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,所述N个客户端包括所述第一客户端和所述第二客户端,所述N为大于1的正整数。
11.一种聚类分析器,其特征在于,所述聚类分析器包括:
获取单元,用于获取聚类规则,所述聚类规则用于指示第一客户端的聚类结果,所述第一客户端是参与联邦学习模型训练的客户端;
接收单元,用于接收所述第一客户端发送的第一客户端消息,所述第一客户端消息包括第一客户端的客户端信息;
处理单元,用于基于所述第一客户端的客户端信息和所述聚类规则获得所述第一客户端的聚类结果;
发送单元,用于向第二服务端发送所述第一客户端的聚类结果,所述第二服务端用于根据所述第一客户端的聚类结果和所述第一客户端的二阶段局部模型参数获取所述第一客户端对应聚类簇的全局模型参数。
12.根据权利要求11所述的聚类分析器,其特征在于,所述聚类规则包括客户端信息与聚类簇之间的对应关系;或者,
所述聚类规则包括客户端信息的阈值与聚类簇之间的对应关系;或者,
所述聚类规则包括同一个聚类簇中不同客户端的客户端信息之间的距离的阈值;或者,
所述聚类规则包括聚类簇中簇中心对应的客户端信息。
13.根据权利要求11或12所述的聚类分析器,其特征在于,所述获取单元,用于获取用户输入的聚类规则;或者,接收第三方系统发送的聚类规则。
14.根据权利要求11至13任一项所述的聚类分析器,其特征在于,所述聚类分析器还包括:
管理单元,用于管理所述聚类结果;或者,管理所述聚类规则与所述第二服务端之间的对应关系;或者,管理所述聚类结果与所述第二服务端之间的对应关系。
15.根据权利要求11至14任一项所述的聚类分析器,其特征在于,所述第一客户端的客户端信息,包括以下任意一种及其组合:
所述第一客户端的设备信息;
所述第一客户端的本地数据的属性;
所述第一客户端的业务需求。
16.根据权利要求11至15任一项所述的聚类分析器,其特征在于,所述第一客户端的二阶段局部模型参数是所述第一客户端根据所述第一客户端的本地数据对一阶段全局模型参数进行更新得到的,所述一阶段全局模型参数是第一服务端根据来自于N个客户端的局部模型参数进行汇聚处理得到的,所述N个客户端包括所述第一客户端,所述N为大于1的正整数。
17.根据权利要求16所述的聚类分析器,其特征在于,所述第一客户端对应聚类簇的全局模型参数是根据所述第一客户端的二阶段局部模型参数和第二客户端的二阶段局部模型参数获得的,所述第二客户端和所述第一客户端属于同一个聚类簇,所述第二客户端的二阶段局部模型参数是根据所述第二客户端的本地数据对所述一阶段全局模型参数进行更新得到的,所述N个客户端包括所述第二客户端。
18.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,以实现所述权利要求1至10中任一项所述的方法。
19.一种网络系统,其特征在于,所述系统包括如权利要求11至17中任一项所述的聚类分析器以及第二服务端。
20.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至权利要求10中任一项所述的方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机执行时,使得所述计算机实现所述权利要求1至10中任一项所述的方法。
CN202110699484.3A 2021-06-23 2021-06-23 基于联邦学习的模型训练方法及聚类分析器 Pending CN115510936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110699484.3A CN115510936A (zh) 2021-06-23 2021-06-23 基于联邦学习的模型训练方法及聚类分析器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110699484.3A CN115510936A (zh) 2021-06-23 2021-06-23 基于联邦学习的模型训练方法及聚类分析器

Publications (1)

Publication Number Publication Date
CN115510936A true CN115510936A (zh) 2022-12-23

Family

ID=84499007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110699484.3A Pending CN115510936A (zh) 2021-06-23 2021-06-23 基于联邦学习的模型训练方法及聚类分析器

Country Status (1)

Country Link
CN (1) CN115510936A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115994226A (zh) * 2023-03-21 2023-04-21 杭州金智塔科技有限公司 基于联邦学习的聚类模型训练系统及方法
CN115994590A (zh) * 2023-03-23 2023-04-21 浪潮电子信息产业股份有限公司 基于分布式集群的数据处理方法、系统、设备及存储介质
CN116011991A (zh) * 2022-12-30 2023-04-25 中国电子科技集团公司第三十八研究所 基于代理和备份技术的多人协同任务保障方法
CN117592580A (zh) * 2023-11-21 2024-02-23 广东电网有限责任公司 能源联邦学习数据选择方法、装置和能源联邦学习系统
CN117640253A (zh) * 2024-01-25 2024-03-01 济南大学 基于同态加密的联邦学习隐私保护方法及系统
CN117808127A (zh) * 2024-02-29 2024-04-02 浪潮电子信息产业股份有限公司 数据异构条件下的图像处理方法、联邦学习方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116011991A (zh) * 2022-12-30 2023-04-25 中国电子科技集团公司第三十八研究所 基于代理和备份技术的多人协同任务保障方法
CN116011991B (zh) * 2022-12-30 2023-12-19 中国电子科技集团公司第三十八研究所 基于代理和备份技术的多人协同任务保障方法
US20240311761A1 (en) * 2022-12-30 2024-09-19 38Th Research Institute,China Electronics Technology Group Corporation Multiplayer collaborative task assurance method based on agent and backup techniques
CN115994226A (zh) * 2023-03-21 2023-04-21 杭州金智塔科技有限公司 基于联邦学习的聚类模型训练系统及方法
CN115994226B (zh) * 2023-03-21 2023-10-20 杭州金智塔科技有限公司 基于联邦学习的聚类模型训练系统及方法
CN115994590A (zh) * 2023-03-23 2023-04-21 浪潮电子信息产业股份有限公司 基于分布式集群的数据处理方法、系统、设备及存储介质
CN117592580A (zh) * 2023-11-21 2024-02-23 广东电网有限责任公司 能源联邦学习数据选择方法、装置和能源联邦学习系统
CN117640253A (zh) * 2024-01-25 2024-03-01 济南大学 基于同态加密的联邦学习隐私保护方法及系统
CN117640253B (zh) * 2024-01-25 2024-04-05 济南大学 基于同态加密的联邦学习隐私保护方法及系统
CN117808127A (zh) * 2024-02-29 2024-04-02 浪潮电子信息产业股份有限公司 数据异构条件下的图像处理方法、联邦学习方法及装置
CN117808127B (zh) * 2024-02-29 2024-05-28 浪潮电子信息产业股份有限公司 数据异构条件下的图像处理方法、联邦学习方法及装置

Similar Documents

Publication Publication Date Title
CN115510936A (zh) 基于联邦学习的模型训练方法及聚类分析器
CN111131379B (zh) 一种分布式流量采集系统和边缘计算方法
Xue et al. Edge computing for internet of things: A survey
US9838483B2 (en) Methods, systems, and computer readable media for a network function virtualization information concentrator
US11695657B2 (en) Network embedded framework for distributed network analytics
WO2017214932A1 (zh) 一种网络切片的资源管理方法和装置
WO2016095516A1 (zh) 一种复杂事件处理方法、装置及系统
US9600494B2 (en) Line rate visual analytics on edge devices
WO2020172593A1 (en) Multi-access edge computing based visibility network
CN107317707B (zh) 一种基于点覆盖集的sdn网络拓扑管理方法
CN112769897A (zh) 边缘计算消息的同步方法、装置、电子设备及存储介质
CN107104824A (zh) 一种网络拓扑确定方法和装置
EP4024765B1 (en) Method and apparatus for extracting fault propagation condition, and storage medium
CN114040272B (zh) 一种路径确定方法、装置和存储介质
CN113485792B (zh) 一种kubernetes集群内Pod调度方法、终端设备及存储介质
Dong et al. Secure distributed on-device learning networks with byzantine adversaries
WO2021047665A1 (zh) 终端之间连接状态的预测方法、装置和分析设备
CN114444708A (zh) 获取模型的方法、装置、设备、系统及可读存储介质
CN105812280B (zh) 一种分类方法及电子设备
US20230385708A1 (en) Reconciling computing infrastructure and data in federated learning
US20230409983A1 (en) Customizable federated learning
Eghbali et al. An efficient distributed approach for load balancing in IoT based on SDN principles
Miyazawa et al. Supervised learning based automatic adaptation of virtualized resource selection policy
CN110572487B (zh) 一种交换机任意端口虚拟化的方法及系统
Nagasawa et al. A method of transport abstraction for 5G radio access networks

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