1.本发明涉及联邦学习技术领域,尤其是一种面向众包的微服务化联邦学习方法、系统、装置及介质。
背景技术:
2.随着大数据时代的到来,计算机算力与网络通行带宽得到了巨幅的提升,以机器学习为基础的人工智能在医疗保健、食品农业、智能交通等生活方面出现了大量的有关应用。然而,机器学习也面临着新的困难和挑战。传统的机器学习方法需要大量的高质量数据来保证模型的准确性,因此需要较大的模型训练成本,而边缘设备往往在计算算力、网络带宽等方面资源受限,这对传统机器学习方法于边缘设备的部署与应用提出了严苛的条件;数据隐私和信息安全的保护正逐渐成为世界性趋势,传统深度学习框架中直接收集、利用他人数据的行为已不被允许,加大了相关研究的难度;大数据时代下,“数据即资产”的概念越来越被企业们所接受,企业越来越注重企业内部的本地数据、越来越少与其他企业产生数据交流,“数据壁垒”、“数据孤岛”现象愈发严重,传统机器学习方法所需的数据质量愈发难于保证,传统机器学习方法受到了极大限制。
3.为解决这些问题,联邦学习(federated learning,fl)应运而生。联邦学习能够使不同数据源(设备端)在不共享数据的情况下,进行机器学习模型的联合训练,已成为人工智能领域的一个热门研究方向。但是,传统联邦学习方法面临着设备、数据、模型上的异构性挑战,无法应对不同客户端的个性化特点与需求,影响了联邦学习的训练效率和训练效果。
技术实现要素:
4.本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
5.为此,本发明实施例的一个目的在于提供一种面向众包的微服务化联邦学习方法,该方法可以提供定制化的联邦学习服务,提高了联邦学习的训练效率和训练效果。
6.本发明实施例的另一个目的在于提供一种面向众包的微服务化联邦学习系统。
7.为了达到上述技术目的,本发明实施例所采取的技术方案包括:
8.一方面,本发明实施例提供了一种面向众包的微服务化联邦学习方法,包括以下步骤:
9.获取第一
客户机的第一任务定制请求,根据
所述第一任务定制请求在中心服务器的
容器镜像库进行匹配查询;
10.当匹配到相应的第一容器镜像,将所述第一容器镜像下发至所述第一客户机,反之,则根据所述任务定制请求进行容器设计得到所述第一容器镜像,将所述第一容器镜像加入所述容器镜像库并下发至所述第一客户机;
11.根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务;
12.通过所述第一客户机和各所述第二客户机分别进行本地局部计算得到本地模型,并将各所述本地模型上传至所述中心服务器;
13.通过所述中心服务器对各所述本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的所述全局模型下发至所述第一客户机和各所述第二客户机。
14.进一步地,在本发明的一个实施例中,所述获取第一客户机的第一任务定制请求这一步骤,其具体包括:
15.通过所述第一客户机将所述第一任务定制请求封装为第一yaml配置文件;
16.将所述第一yaml配置文件发送至restful风格的api接口,并通过所述api接口将所述第一yaml配置文件转发至所述中心服务器;
17.其中,所述第一任务定制请求包括所述第一客户机请求的第一容器镜像配置和第一建模任务信息。
18.进一步地,在本发明的一个实施例中,所述根据所述第一任务定制请求在中心服务器的容器镜像库进行匹配查询这一步骤,其具体包括:
19.根据所述第一yaml配置文件确定所述第一容器镜像配置;
20.获取所述容器镜像库中各第二容器镜像对应的第二容器镜像配置;
21.将所述第一容器镜像配置与各所述第二容器镜像配置进行比对;
22.当存在至少一个所述第二容器镜像配置与所述第一容器镜像配置相同,获取对应的所述第二容器镜像作为匹配得到的所述第一容器镜像。
23.进一步地,在本发明的一个实施例中,所述微服务化联邦学习方法还包括以下步骤:
24.根据所述第一任务定制请求在所述中心服务器的模型数据库中进行匹配查询;
25.当匹配到相应的第一预训练模型,将所述第一预训练模型下发至所述第一客户机,反之,则根据所述任务定制请求进行模型设计得到所述第一预训练模型,将所述第一预训练模型加入所述模型数据库并下发至所述第一客户机。
26.进一步地,在本发明的一个实施例中,所述根据所述第一任务定制请求在所述中心服务器的模型数据库中进行匹配查询这一步骤,其具体包括:
27.根据所述第一yaml配置文件确定所述第一建模任务信息;
28.获取所述模型数据库中各第二预训练模型对应的第二建模任务信息;
29.将所述第一建模任务信息与各所述第二建模任务信息进行比对;
30.当存在至少一个所述第二建模任务信息与所述第一建模任务信息相同,获取对应的所述第二预训练模型作为匹配得到的所述第一预训练模型。
31.进一步地,在本发明的一个实施例中,所述根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务这一步骤,其具体包括:
32.根据所述第一yaml配置文件确定所述第一建模任务信息;
33.根据所述第一建模任务信息确定多个具有相同建模任务的所述第二客户机;
34.获取各所述第二客户机的第二容器镜像配置,根据所述第一建模任务信息、所述第一容器镜像配置以及各所述第二容器镜像配置确定联邦建模任务;
35.将所述联邦建模任务下发至所述第一客户机和各所述第二客户机。
36.进一步地,在本发明的一个实施例中,所述微服务化联邦学习方法还包括以下步骤:
37.通过所述第一客户机和各所述第二客户机接收所述联邦建模任务,并返回确认信息至所述中心服务器。
38.另一方面,本发明实施例提供了一种面向众包的微服务化联邦学习系统,包括:
39.匹配查询模块,用于获取第一客户机的第一任务定制请求,根据所述第一任务定制请求在中心服务器的容器镜像库进行匹配查询;
40.第一容器镜像下发模块,用于当匹配到相应的第一容器镜像,将所述第一容器镜像下发至所述第一客户机,反之,则根据所述任务定制请求进行容器设计得到所述第一容器镜像,将所述第一容器镜像加入所述容器镜像库并下发至所述第一客户机;
41.联邦建模请求模块,用于根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务;
42.局部计算模块,用于通过所述第一客户机和各所述第二客户机分别进行本地局部计算得到本地模型,并将各所述本地模型上传至所述中心服务器;
43.全局更新模块,用于通过所述中心服务器对各所述本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的所述全局模型下发至所述第一客户机和各所述第二客户机。
44.另一方面,本发明实施例提供了一种面向众包的微服务化联邦学习装置,包括:
45.至少一个处理器;
46.至少一个存储器,用于存储至少一个程序;
47.当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的一种面向众包的微服务化联邦学习方法。
48.另一方面,本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的一种面向众包的微服务化联邦学习方法。
49.本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
50.本发明实施例提供了一种面向众包的微服务化联邦学习方法,该方法采用微服务思想,利用容器镜像打包客户机所定制的建模任务及环境配置;采用众包方式,客户机每次定制任务都将对中心服务器的容器镜像库进行扩充,从而丰富容器镜像库;基于中心服务器存储的各客户机的建模任务要求,可对具有相同建模任务的客户机发起联邦建模任务,待使得各客户机利用自身的源数据进行本地训练得到本地模型并上传至中心服务器,中心服务器对本地模型数据进行聚合后,将更新后的全局模型通过模型下放的方式返回给参与联邦建模任务的各个客户机,完成一轮联邦学习的过程。本发明实施例利用容器技术为客户机提供定制化的联邦学习服务,采用众包方式完善中心服务器的容器镜像库,并且匹配具有相同建模任务的多个客户机参与联邦建模任务,保障数据的安全性和隐私性的同时,提高了联邦学习的训练效率和训练效果。
附图说明
51.为了更清楚地说明本发明实施例中的技术方案,下面对本发明实施例中所需要使用的附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
52.图1为本发明实施例提供的一种面向众包的微服务化联邦学习方法的步骤流程图;
53.图2为本发明实施例提供的客户机与中心服务器的数据交互示意图;
54.图3为本发明实施例提供的定制容器镜像和预训练模型的流程示意图;
55.图4为本发明实施例提供的客户端与中心服务器的环境部署示意图;
56.图5为本发明实施例提供的联邦建模任务的学习过程示意图;
57.图6为本发明实施例提供的众包方式示意图;
58.图7为本发明实施例提供的微服务化示意图;
59.图8为本发明实施例提供的一种面向众包的微服务化联邦学习系统的结构框图;
60.图9为本发明实施例提供的一种面向众包的微服务化联邦学习装置的结构框图。
具体实施方式
61.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
62.在本发明的描述中,多个的含义是两个或两个以上,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。
63.目前已有的联邦学习框架难以灵活高效地满足现实中越来越复杂的计算需要,定制化联邦学习任务日渐成为研究焦点。主要原因有:
64.1)联邦学习参与方之间传递的信息形式更加丰富,且联邦学习参与方的行为种类更加多变。例如,各方传递的不再局限于模型参数或者梯度这一类的同质信息,还会传递公钥和一些加密信息;在跨设备的联邦学习场景中,往往需要对服务器端的模型做压缩处理,来满足终端设备的运行要求;而在终端设备上,往往会对收到的模型进行微调来取得更好的效果。多形式的信息类型与多样化的参与方行为要求联邦学习框架能够灵活地支持多种自定义行为。
65.2)联邦学习参与方的响应速度和可靠性参差不齐,采用传统的同步训练的方式容易造成训练效率差,系统利用率低等问题。这要求联邦学习框架能够允许开发者或使用者根据应用场景采用不同的联邦学习训练策略,在保证训练效果的同时提升训练的效率。
66.3)现实应用中联邦学习参与方可能搭载不同的模型训练环境。例如有些设备后端机器学习训练环境使用pytorch,而另外一些则使用tensorflow。这要求联邦学习框架需要
有更好的兼容性,能支持跨平台组建联邦学习,而避免要求使用者费时费力地对所有参与方进行环境的适配。
67.因此,本发明实施例提出了一种可以让用户对联邦学习任务的运行环境、工作内容等方面进行定制化的个性化联邦学习方法,该方法可以根据开发者或使用者的要求,对机器学习模型、联邦学习训练方法、客户端个数等联邦学习任务内容进行个性化定制,同时通过restful微服务架构搭建系统架构,便于开发者和使用者进行简易部署与研发,满足不同用户在实际使用中的多样化应用需求。
68.参照图1,本发明实施例提供了一种面向众包的微服务化联邦学习方法,具体包括以下步骤:
69.s101、获取第一客户机的第一任务定制请求,根据第一任务定制请求在中心服务器的容器镜像库进行匹配查询。
70.具体地,本发明实施例的实施过程中含有三方参与者,分别为客户机、中心服务器与系统管理员,其中,客户机与中心服务器通过网络层restful风格接口进行交互,系统管理员则负责对联邦学习任务进行设计并提供定制化服务。
71.进一步作为可选的实施方式,获取第一客户机的第一任务定制请求这一步骤,其具体包括
72.s1011、通过第一客户机将第一任务定制请求封装为第一yaml配置文件;
73.s1012、将第一yaml配置文件发送至restful风格的api接口,并通过api接口将第一yaml配置文件转发至中心服务器;
74.其中,第一任务定制请求包括第一客户机请求的第一容器镜像配置和第一建模任务信息。
75.如图2所示为本发明实施例提供的客户机与中心服务器的数据交互示意图,其中客户机通过网络层restful风格的api接口向中心服务器传送学习任务定制请求,具体为yaml配置文件与相关的请求指令,中心服务器在接收到定制任务后进行如下处理:若先前接收过相同或相似定制任务,则直接提供容器化定制服务;若为全新的定制任务,则将定制要求反馈给系统管理员,由系统管理员进行容器设计反馈给服务器,从而为客户机提供容器化定制服务。
76.进一步作为可选的实施方式,根据第一任务定制请求在中心服务器的容器镜像库进行匹配查询这一步骤,其具体包括:
77.s1013、根据第一yaml配置文件确定第一容器镜像配置;
78.s1014、获取容器镜像库中各第二容器镜像对应的第二容器镜像配置;
79.s1015、将第一容器镜像配置与各第二容器镜像配置进行比对;
80.s1016、当存在至少一个第二容器镜像配置与第一容器镜像配置相同,获取对应的第二容器镜像作为匹配得到的第一容器镜像。
81.s102、当匹配到相应的第一容器镜像,将第一容器镜像下发至第一客户机,反之,则根据任务定制请求进行容器设计得到第一容器镜像,将第一容器镜像加入容器镜像库并下发至第一客户机。
82.可以理解的是,本发明实施例中,通过上述步骤即可完成第一容器镜像的定制,根据该第一容器镜像即可完成第一客户机中联邦建模任务的运行环境的部署,用于后续联邦
建模任务的执行。
83.进一步作为可选的实施方式,微服务化联邦学习方法还包括以下步骤:
84.s103、根据第一任务定制请求在中心服务器的模型数据库中进行匹配查询;
85.s104、当匹配到相应的第一预训练模型,将第一预训练模型下发至第一客户机,反之,则根据任务定制请求进行模型设计得到第一预训练模型,将第一预训练模型加入模型数据库并下发至第一客户机。
86.进一步作为可选的实施方式,根据第一任务定制请求在中心服务器的模型数据库中进行匹配查询s103这一步骤,其具体包括:
87.s1031、根据第一yaml配置文件确定第一建模任务信息;
88.s1032、获取模型数据库中各第二预训练模型对应的第二建模任务信息;
89.s1033、将第一建模任务信息与各第二建模任务信息进行比对;
90.s1034、当存在至少一个第二建模任务信息与第一建模任务信息相同,获取对应的第二预训练模型作为匹配得到的第一预训练模型。
91.具体地,本发明实施例中,除定制第一容器镜像外,还可以定制用于联邦建模任务的预训练模型,该预训练模型通过建模任务信息比对得到或通过系统管理员进行模型设计得到。
92.如图3所示为本发明实施例提供的定制容器镜像和预训练模型的流程示意图。本发明实施例中,基于软件设计的基本原则,将系统架构拆分为交互终端层、网络接口层、中心服务层、系统数据层与系统管理层五大部分,其中,交互终端层包括各个客户机,网络接口层则对应采用restful风格的api接口系统,中心服务层对应中心服务器,系统数据层对应位于中心服务器上的数据库,包括容器镜像库与模型数据库,系统管理层对应系统管理员,用于提供服务器上的联邦学习定制功能,包括容器设计、模型设计以及后续的联邦建模任务的定制。系统数据层和系统管理层对用户透明。定制容器镜像和预训练模型的具体过程如下:
93.1、交互终端层中的各客户机,将yaml配置文件与相关请求指令传入网络接口层restful风格的api接口。
94.2、网络接口层得到客户机请求后,向中心服务层的中心服务器发送通知与相关配置信息。
95.3、中心服务层的服务器得到来自客户机的配置信息与请求后,根据客户机上传的yaml配置文件查询系统数据层中的数据库,具体为容器镜像库与模型数据库。若查询失败,即系统数据层中无相似yaml配置文件描述的容器镜像或模型数据,则通知系统管理层的各系统管理员,由系统管理员根据客户机的配置信息与请求完成容器镜像与预训练模型的设计,并分别补充至容器镜像库和模型数据库。若查询成功,即系统数据层中有相似yaml配置文件描述的容器镜像或模型数据,则将查询得到的容器镜像或模型数据返回。
96.4、待系统数据层成功查询或系统管理员完成容器镜像或预训练模型的定制补充后,系统数据层将所需的容器镜像或预训练模型返回至中心服务层。
97.5、中心服务层将容器镜像或预训练模型返回至网络接口层。
98.6、网络接口层将容器镜像或预训练模型返回至客户机。
99.可以理解的是,通过前述步骤即可完成容器镜像以及预训练模型的定制。
100.如图4所示为本发明实施例提供的客户端与中心服务器的环境部署示意图。本发明实施例中,包含三方参与者,分别为客户机、中心服务器与系统管理员。其中,客户机运行于linux操作系统下,支持运行docker并拥有客户机本地模型数据存储中心,docker环境中可支持存储、管理容器组,容器组中容器的数量(假定有k个)根据客户机自身配置、任务要求等因素决定;中心服务器应支持linux环境,含有容器镜像库与模型数据库。容器镜像库所含镜像数量(假定有m个)由初始设定镜像数量与定制镜像数量共同决定,即客户机定制镜像均在服务器中含有副本,可供后续有相似定制要求的客户机直接使用。模型数据库中含有客户预训练模型、联邦学习所需的全局模型等。系统管理员接收所需的定制配置信息,负责定制容器镜像的设计。三方参与者的交互过程如下:
101.1、客户机将yaml配置文件与相关请求指令通过restful风格的api接口发送至中心服务器。
102.2、中心服务器在接收到来自客户机的请求后,将yaml配置文件与相关请求指令转化为对容器镜像库与模型数据库的查询。若查询成功,即服务器有符合客户机要求的容器镜像或预训练模型,则将容器镜像或预训练模型返回给客户机;若查询失败服务器则会通知系统管理员查询失败的信息。
103.3、系统管理员在收到来自服务器的查询失败信息通知后,根据服务器接收到的配置文件与相关请求指令对容器镜像或预训练模型进行设计并存储于容器镜像库或模型数据库中。
104.4、服务器接收到定制容器镜像后,通知客户机,客户机重复操作1以获取其定制化服务。
105.可以理解的是,容器镜像的定制与预训练模型的定制相互独立,即在具体实施过程中,可以只进行容器镜像的定制,也可以只进行预训练模型的定制。
106.s105、根据第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过中心服务器向第一客户机和各第二客户机发送联邦建模任务。
107.具体地,在完成第一客户机的容器镜像和预训练模型的定制后,可确定多个具有相同建模任务的第二客户机与该第一客户机共同进行联邦建模任务。步骤s105具体包括以下步骤:
108.根据第一yaml配置文件确定第一建模任务信息;
109.根据第一建模任务信息确定多个具有相同建模任务的第二客户机;
110.获取各第二客户机的第二容器镜像配置,根据第一建模任务信息、第一容器镜像配置以及各第二容器镜像配置确定联邦建模任务;
111.将联邦建模任务下发至第一客户机和各第二客户机。
112.进一步作为可选的实施方式,微服务化联邦学习方法还包括以下步骤:
113.s106、通过第一客户机和各第二客户机接收联邦建模任务,并返回确认信息至中心服务器。
114.具体地,当接受到第一客户机和各第二客户机的确认信息后,表示各客户机均已响应进入联合建模过程,即可开始联邦建模任务的执行。
115.s107、通过第一客户机和各第二客户机分别进行本地局部计算得到本地模型,并将各本地模型上传至中心服务器。
116.s108、通过中心服务器对各本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的全局模型下发至第一客户机和各第二客户机。
117.具体地,循环执行步骤s107至s108若干轮,当模型性能达到预设值即可停止训练。
118.如图5所示为本发明实施例提供的联邦建模任务的学习过程示意图,具体流程如下:
119.1、首先由中心服务器查询容器镜像库,到具有相同建模任务的客户机1至客户机x,向其发送联邦建模任务,并根据各客户机定制化配置文件整合各客户机需求,制定联邦建模所需的模型要求。
120.2、各客户机接收到服务器联邦建模任务后,返回确认信息给服务器,待全部客户机确认完毕后,各客户机进入联合建模过程。
121.3、各客户机先在本地根据己方数据进行局部计算。
122.4、计算完成后,将本地局部计算所得的模型数据进行梯度脱敏后上传至中心服务器,以用于全局模型的一次更新。
123.5、在收到来自多个客户机的模型数据后,中心服务器对这些模型数据依据一定的联邦学习策略进行参数聚合,在聚合的过程中需要同时考虑效率、安全、隐私等多方面的问题。
124.6、中心服务器根据参数聚合后的结果对全局模型进行一次更新,并将更新后的模型通过模型下放的方式返回给参与建模的各个客户机。客户机接受更新后的模型并以此更新本地模型,开启下一步局部计算,同时评估更新后的模型性能,当性能足够好时,训练终止,联合建模结束。建立好的全局模型将会被保留在中心服务器端,以进行后续的预测或分类工作。
125.如图6所示为本发明实施例提供的众包方式示意图,可以理解的是,本发明实施例的众包方式体现在:客户机通过网络层restful api接口向服务器传送定制信息yaml配置文本文件与相关请求后,服务器中的容器镜像仓库将存有客户机定制任务的镜像与客户机定制信息,若后续定制过程中遇到定制信息相似的定制任务,则可将先前已配置好的容器镜像提供给客户机,同时,拥有相同建模任务的客户机可以一起参与后续的联邦学习任务,进一步提高模型准确性。
126.如图7所示为本发明实施例提供的微服务化示意图,可以理解的是,本发明实施例的微服务思想体现在:客户机docker环境中容器组的各个容器相互隔离,彼此互不影响;单个容器中仅定制单个服务,即单个主进程,具体包含一个建模任务及其所依赖的环境;系统管理员仅负责定制容器内服务,即打包建模任务及其所依赖的环境。
127.以上对本发明实施例的方法步骤进行了说明。可以理解的是,本发明实施例利用容器技术为客户机提供定制化的联邦学习服务,采用众包方式完善中心服务器的容器镜像库,并且匹配具有相同建模任务的多个客户机参与联邦建模任务,保障数据的安全性和隐私性的同时,提高了联邦学习的训练效率和训练效果。
128.为进一步突出本发明实施例所提出的面向众包的微服务化联邦学习方法的优点,给出现有技术中各企业、研究团队针对不同的应用落地场景设计的开源的定制化部署联邦学习框架如下:
129.基于微众银行fate框架的kubefate,该框架按照部署环境分成docker-compose与
kubernetes两部分。前者作为快速上手的实验环境,后者为生产系统fate集设计。有自定义fate部署的高级用户的可以完成自定义部署模块、增减fate模块等需求。但是fate部署高度依赖于kubernetes的基础设施平台,对于手机等移动边缘设备无法很好的适应。同时,集配置十分繁杂,与第三方组件兼容需要在用户端做大量工作。例如,helm是kubernetes包管理器,帮助管理kubernetes应用。但同步helm与kubefate的状态是一个难题,在某些极端意外情况下,可能出现两者状态不统一。
130.阿里巴巴达摩院发布的federatedscope,该框架支持大规模、高效率的联邦学习异步训练,采用事件驱动的编程范式,用于支持现实场景中联邦学习应用的异步训练,并借鉴分布式机器学习的相关研究成果,集成了异步训练策略来提升训练效率。具体而言,federatedscope将联邦学习看成是参与方之间收发消息的过程,通过定义消息类型以及处理消息的行为来描述联邦学习过程。但是,federatedscope并不支持多种联邦学习策略,并且并没有容器化,开发者在使用时同样需要进行一系列的文件路径、主机ip等参进行数配置。
131.针对上述的介绍,可以看出现如今开源、支持多种边缘设备、可用于定制化部署联邦学习框架较少,仅有微众银行fate框架的kubefate和阿里巴巴达摩院的federatedscope。此外,kubefate采用的为对于资源受限型边缘设备不友好的kubernetes集部署,federatedscope虽然支持mac、windows和linux多种电脑操作系统的部署,但整体框架庞大,面对需要简易部署的研究人并不友好。同时,两个主流的框架在定制化内容上并不全面。由此可见,上述现有的开源联邦学习框架均未充分考虑定制化内容的完整性以及定制化学习任务在不同设备部署的难易问题,存在以下缺点:
132.1)部署难度高,配置繁杂,与第三方组件兼容需要在用户端做大量工作。例如,kubernetes集所需helm作为包管理,客户机需要预先进行安装,由于helm 3与helm 2本身不兼容,kubefate必须与helm 3使用,不兼容helm 2。在版本上容易造成混乱,同时同步helm 3与kubefate的状态是一个难题,这导致研究人员上手难度大。因此本发明实施例采用docker容器部署技术,可以根据yaml文件查询服务器的容器镜像仓库直接提供容器化定制服务,达到方便快捷的使用目的,避免了组件安装复杂与兼容性低的问题。
133.2)部署设备单一,无法在多种不同的边缘设备上部署。例如,目前主流的定制化联邦学习框架主要寄托于kubernetes集部署,常用的kubernetes管理工具对设备有着较高的性能要求,但大部分设备并不支持k8s部署,在面向定制化部署联邦学习时无法顺利开展,因此本发明实施例提出的面向定制化学习任务的联邦学习的部署方案则是从架构设计出发,将容器配置信息通过全部设备均支持的网络层restful api接口来进行传输,用以解决这个问题。
134.3)定制化内容不够丰富,功能模块化程度低。例如,定制化内容缺少对模型文件压缩形式、模型训练环境和联邦学习训练策略等进行定自定义,无法满足联邦学习参与方之间丰富的信息形式以及行为种类,可以应用的联邦学习场景少。因此本发明实施例采用众包方式可丰富服务器容器镜像数据库与模型数据库,于其中集成丰富多样的算法策略和功能模块。
135.本发明实施例包含了常用的机器学习模型架构,对训练模块进行抽象,使其不依赖特定的深度学习后端,能兼容pytorch、tensorflow、paddle设备运行环境,大幅降低了联
邦学习在科研与实际应用中的开发难度和成本。同时,系统还可预先对一些基准数据集也做了统一的预处理和封装,以帮助用户便捷地开展实验。此外,还可以内置大量的数据类型和相应的模型框架,能够很好地服务不同场景下的联邦任务,很大程度地降低了开发者和使用者的上手门槛。
136.同时,本发明实施例采用了将定制化学习任务的联邦学习与简易微服务架构部署相结合,一方面采用微服务架构有效拆分应用,可独立运行在android移动操作系统中,不具有对外依赖性,有效降低了边缘设备于边缘联邦学习系统中的耦合度。另一方面,服务器可基于restful微服务架构沟通整个系统,以docker容器技术作为基础将联邦学习本地训练、本地计算等流程所需的代码及其运行环境进行虚拟化封装,实现了服务移植与更新的简易性。这可在保证前端软件轻量化的前提下拓展应用于各领域的数据驱动服务,更具有市场实用价值。
137.综上,本发明实施例相对于现有技术而言,具有以下优点:
138.1)众包方式可丰富服务器容器镜像数据库与模型数据库,于其中集成丰富多样的算法策略和功能模块。在学习任务内容自定义模块拥有丰富的深度学习模型,能兼容包括但不限于pytorch、tensorflow、paddle等不同设备运行环境。同时,功能模块进行了封装,用户可以快速简便地对模型文件压缩形式、模型训练环境和联邦学习训练策略等进行定制,以满足联邦学习参与方之间丰富的信息形式以及行为种类。
139.2)采用微服务思想,利用容器镜像打包客户机所定制的建模任务及依赖环境配置,可拓展性良好,计算资源占用低,容器配置信息通过全部设备均支持的网络层restful api接口来进行传输,兼容性良好。采用restful api提供统一的算法描述和接口,以满足研究者和开发人员不同的应用需求,并降低从仿真到部署的迁移难度,缩小联邦学习从学术研究到工业应用的部署差距。
140.3)简单便捷的联邦学习接入部署,基于容器镜像数据中存储的各客户机建模任务要求,中心服务器可查发现具有相同建模任务的客户机,并对他们发送联合建模请求,即请求参与联邦学习,后续客户机接入联邦学习也只需通过网络接口上传配置、接收镜像,整体简单便捷。
141.参照图8,本发明实施例提供了一种面向众包的微服务化联邦学习系统,包括:
142.匹配查询模块,用于获取第一客户机的第一任务定制请求,根据第一任务定制请求在中心服务器的容器镜像库进行匹配查询;
143.第一容器镜像下发模块,用于当匹配到相应的第一容器镜像,将第一容器镜像下发至第一客户机,反之,则根据任务定制请求进行容器设计得到第一容器镜像,将第一容器镜像加入容器镜像库并下发至第一客户机;
144.联邦建模请求模块,用于根据第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过中心服务器向第一客户机和各第二客户机发送联邦建模任务;
145.局部计算模块,用于通过第一客户机和各第二客户机分别进行本地局部计算得到本地模型,并将各本地模型上传至中心服务器;
146.全局更新模块,用于通过中心服务器对各本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的全局模型下发至第一客户机和各第二客户机。
147.上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的
功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
148.参照图9,本发明实施例提供了一种面向众包的微服务化联邦学习装置,包括:
149.至少一个处理器;
150.至少一个存储器,用于存储至少一个程序;
151.当上述至少一个程序被上述至少一个处理器执行时,使得上述至少一个处理器实现上述的一种面向众包的微服务化联邦学习方法。
152.上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
153.本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,该处理器可执行的程序在由处理器执行时用于执行上述一种面向众包的微服务化联邦学习方法。
154.本发明实施例的一种计算机可读存储介质,可执行本发明方法实施例所提供的一种面向众包的微服务化联邦学习方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
155.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
156.在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或上述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
157.此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,上述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
158.上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
159.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
160.计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印上述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得上述程序,然后将其存储在计算机存储器中。
161.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
162.在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
163.尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
164.以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
技术特征:
1.一种面向众包的微服务化联邦学习方法,其特征在于,包括以下步骤:获取第一客户机的第一任务定制请求,根据所述第一任务定制请求在中心服务器的容器镜像库进行匹配查询;当匹配到相应的第一容器镜像,将所述第一容器镜像下发至所述第一客户机,反之,则根据所述任务定制请求进行容器设计得到所述第一容器镜像,将所述第一容器镜像加入所述容器镜像库并下发至所述第一客户机;根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务;通过所述第一客户机和各所述第二客户机分别进行本地局部计算得到本地模型,并将各所述本地模型上传至所述中心服务器;通过所述中心服务器对各所述本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的所述全局模型下发至所述第一客户机和各所述第二客户机。2.根据权利要求1所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述获取第一客户机的第一任务定制请求这一步骤,其具体包括:通过所述第一客户机将所述第一任务定制请求封装为第一yaml配置文件;将所述第一yaml配置文件发送至restful风格的api接口,并通过所述api接口将所述第一yaml配置文件转发至所述中心服务器;其中,所述第一任务定制请求包括所述第一客户机请求的第一容器镜像配置和第一建模任务信息。3.根据权利要求2所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述根据所述第一任务定制请求在中心服务器的容器镜像库进行匹配查询这一步骤,其具体包括:根据所述第一yaml配置文件确定所述第一容器镜像配置;获取所述容器镜像库中各第二容器镜像对应的第二容器镜像配置;将所述第一容器镜像配置与各所述第二容器镜像配置进行比对;当存在至少一个所述第二容器镜像配置与所述第一容器镜像配置相同,获取对应的所述第二容器镜像作为匹配得到的所述第一容器镜像。4.根据权利要求2所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述微服务化联邦学习方法还包括以下步骤:根据所述第一任务定制请求在所述中心服务器的模型数据库中进行匹配查询;当匹配到相应的第一预训练模型,将所述第一预训练模型下发至所述第一客户机,反之,则根据所述任务定制请求进行模型设计得到所述第一预训练模型,将所述第一预训练模型加入所述模型数据库并下发至所述第一客户机。5.根据权利要求4所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述根据所述第一任务定制请求在所述中心服务器的模型数据库中进行匹配查询这一步骤,其具体包括:根据所述第一yaml配置文件确定所述第一建模任务信息;获取所述模型数据库中各第二预训练模型对应的第二建模任务信息;将所述第一建模任务信息与各所述第二建模任务信息进行比对;
当存在至少一个所述第二建模任务信息与所述第一建模任务信息相同,获取对应的所述第二预训练模型作为匹配得到的所述第一预训练模型。6.根据权利要求2所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务这一步骤,其具体包括:根据所述第一yaml配置文件确定所述第一建模任务信息;根据所述第一建模任务信息确定多个具有相同建模任务的所述第二客户机;获取各所述第二客户机的第二容器镜像配置,根据所述第一建模任务信息、所述第一容器镜像配置以及各所述第二容器镜像配置确定联邦建模任务;将所述联邦建模任务下发至所述第一客户机和各所述第二客户机。7.根据权利要求1至6中任一项所述的一种面向众包的微服务化联邦学习方法,其特征在于,所述微服务化联邦学习方法还包括以下步骤:通过所述第一客户机和各所述第二客户机接收所述联邦建模任务,并返回确认信息至所述中心服务器。8.一种面向众包的微服务化联邦学习系统,其特征在于,包括:匹配查询模块,用于获取第一客户机的第一任务定制请求,根据所述第一任务定制请求在中心服务器的容器镜像库进行匹配查询;第一容器镜像下发模块,用于当匹配到相应的第一容器镜像,将所述第一容器镜像下发至所述第一客户机,反之,则根据所述任务定制请求进行容器设计得到所述第一容器镜像,将所述第一容器镜像加入所述容器镜像库并下发至所述第一客户机;联邦建模请求模块,用于根据所述第一任务定制请求确定多个具有相同建模任务的第二客户机,并通过所述中心服务器向所述第一客户机和各所述第二客户机发送联邦建模任务;局部计算模块,用于通过所述第一客户机和各所述第二客户机分别进行本地局部计算得到本地模型,并将各所述本地模型上传至所述中心服务器;全局更新模块,用于通过所述中心服务器对各所述本地模型进行参数聚合,并对全局模型进行更新,进而将更新后的所述全局模型下发至所述第一客户机和各所述第二客户机。9.一种面向众包的微服务化联邦学习装置,其特征在于,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7中任一项所述的一种面向众包的微服务化联邦学习方法。10.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1至7中任一项所述的一种面向众包的微服务化联邦学习方法。
技术总结
本发明公开了面向众包的微服务化联邦学习方法、系统、装置及介质,方法包括:获取第一客户机的第一任务定制请求,根据第一任务定制请求在中心服务器的容器镜像库进行匹配查询;当匹配到相应的第一容器镜像,将第一容器镜像下发至第一客户机,反之,则根据任务定制请求进行容器设计得到第一容器镜像,将第一容器镜像加入容器镜像库并下发至第一客户机;根据第一任务定制请求确定多个具有相同建模任务的第二客户机,通过中心服务器向第一客户机和各第二客户机发送联邦建模任务;通过第一客户机、各第二客户机和中心服务器执行联邦建模任务。本发明可提供定制化的联邦学习服务,提高了联邦学习的训练效率和训练效果,可广泛应用于联邦学习技术领域。于联邦学习技术领域。于联邦学习技术领域。
技术研发人员:
林俊龙 由林麟 吴承瀚 郭子晗 李浩源 侯英威
受保护的技术使用者:
中山大学
技术研发日:
2022.11.29
技术公布日:
2023/3/24