CN114048864A - 联邦学习数据的管理方法、电子设备和存储介质 - Google Patents
联邦学习数据的管理方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114048864A CN114048864A CN202210024109.3A CN202210024109A CN114048864A CN 114048864 A CN114048864 A CN 114048864A CN 202210024109 A CN202210024109 A CN 202210024109A CN 114048864 A CN114048864 A CN 114048864A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- federal learning
- pool
- provider
- 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
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000012549 training Methods 0.000 claims abstract description 129
- 238000004891 communication Methods 0.000 claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 32
- 238000004883 computer application Methods 0.000 abstract description 2
- 239000003999 initiator Substances 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 230000014759 maintenance of location Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及计算机应用技术领域,特别涉及一种联邦学习数据的管理方法、电子设备和计算机可读存储介质。上述联邦学习数据的管理方法包括,应用于联邦学习的客户端,具体包括:根据客户端的注册的信息,向数据提供方发送数据请求;从数据池中获取所述数据提供方根据所述数据请求提供的对应数据,所述数据池分别与所述数据提供方和所述客户端实现通信连接;根据所述对应数据执行所述联邦学习的训练任务。本发明实施例提供的联邦学习方法,避免客户端直接访问数据提供方,降低联邦学习过程对于数据提供方的隐私威胁。
Description
技术领域
本申请实施例涉及计算机应用技术领域,特别涉及一种联邦学习数据的管理方法、电子设备和存储介质。
背景技术
联邦学习本质上是一种分布式机器学习技术,或机器学习框架。目标是保护终端数据和个人数据隐私下,在多参与方或多计算结点之间开展高效率的机器学习。是一种隐私安全的学习方法,其原理为联邦参与的多方利用驻留在本地的数据联合完成AI模型的训练,过程中因为用户数据不迁移,所以隐私能够得到有效保护。
其中,对于获取用于进行训练的数据的过程,一般在配置中写明数据的存放位置,由联邦学习的客户端根据数据的存放位置去获取数据。获取数据的过程完全由联邦学习的客户端主导,数据提供方无法掌控联邦学习的客户端的访问行为,一旦联邦学习的客户端恶意获取更多数据,就会有隐私数据泄露的隐患。
发明内容
本申请实施例的主要目的在于提出一种联邦学习数据的管理方法、电子设备和存储介质,用于保护联邦学习过程中数据提供方的数据隐私安全。
为实现上述目的,本申请实施例提供了一种联邦学习数据的管理方法,应用于联邦学习的客户端,包括:根据客户端中的注册信息,向数据提供方发送数据请求,注册的信息为所述数据提供方的注册的信息;从数据池中获取数据提供方根据数据请求提供的对应数据,数据池分别与所述数据提供方和所述客户端实现通信连接;根据对应数据执行联邦学习的训练任务。
为实现上述目的,本申请实施例还提供一种联邦学习数据的管理方法,应用于终端,所述终端用于提供实现联邦学习的数据,所述方法包括:接收联邦学习的客户端根据所述客户端中的注册信息发送的数据请求;将所述数据请求的对应数据发送至数据池,供所述客户端获取并根据所述对应数据执行所述联邦学习的训练任务,所述数据池分别与所述终端和所述客户端实现通信连接。
为实现上述目的,本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行应用于联邦学习的客户端的联邦学习数据的管理方法或能够执行应用于终端的联邦学习数据的管理方法。
为实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现应用于联邦学习的客户端的联邦学习数据的管理方法或能够实现应用于终端的联邦学习数据的管理方法。
本申请提出的联邦学习数据的管理方法,联邦学习系统中的客户端和数据提供方之间存在数据池,将数据池作为中转空间,向客户端提供数据提供方根据数据请求提供的对应数据,即,不需要数据提供方直接与客户端对接,数据提供方能够以最小的授权范围向客户端提供数据,加强联邦学习过程中对数据提供方的隐私保护。
附图说明
图1是根据本发明一个实施例所提供的应用于联邦学习的客户端的联邦学习数据的管理方法的流程图;
图2是根据本发明一个实施例所提供的应用于联邦学习的客户端的联邦学习数据的管理方法的示意图一;
图3是根据本发明一个实施例所提供的应用于联邦学习的客户端的联邦学习数据的管理方法的示意图二;
图4是根据本发明一个实施例所提供的应用于联邦学习的客户端的联邦学习数据的管理方法的示意图三;
图5是根据本发明一个实施例所提供的应用于终端的联邦学习数据的管理方法的流程图;
图6是根据本发明一个实施例所提供的应用于终端的联邦学习数据的管理方法的示意图一;
图7是根据本发明一个实施例所提供的应用于终端的联邦学习数据的管理方法的示意图二;
图8是根据本发明一个实施例的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的一个实施例涉及一种联邦学习数据的管理方法,应用于联邦学习的客户端。本实施例的联邦学习数据的管理方法的具体流程可以如图1所示,包括:
步骤101,根据客户端中的注册的信息,向数据提供方发送数据请求,注册的信息为数据提供方的注册的信息;
步骤102,从数据池中获取数据提供方根据数据请求提供的对应数据,数据池分别与数据提供方和客户端实现通信连接;
步骤103,根据对应数据执行联邦学习的训练任务。
下面对本实施例的联邦学习数据的管理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
在步骤101中,根据根据客户端中的注册的信息,向数据提供方发送数据请求,数据提供方可以为终端,注册的信息为数据提供方的注册的信息。可以理解的是,联邦学习系统中通常会存在联邦学习的服务器(Federated Learning Server,FL Server)和联邦学习的客户端(Federated Learning Client,FL Client),如图2所示,其中联邦学习的发起者可以为用户,联邦学习的客户端中的联邦学习的训练任务,可以为接收联邦学习系统中的服务器下发得到、接收其他外部设备发送的训练任务得到、或接收联邦训练的发起者发出的训练任务得到。在收到训练任务之后,向数据提供方请求用于执行训练任务的数据,以进行联邦学习。其中,联邦学习的发起者为联邦学习系统的用户,通常执行编写联邦学习的训练脚本,配置训练任务,发起训练任务进行联邦学习等步骤。数据提供方为联邦学习时训练数据的提供方,例如可以以运行在终端上的应用程序(Application,App)做为数据提供方,App在运行时会产生诸多数据,联邦学习系统可以利用这些数据进行联邦训练。其中,联邦学习系统中包括多个参与者,用于完成联邦学习。此外,数据请求用于获取实现联邦学习的训练任务的对应数据。在本实施方式中,通过客户端中的注册的信息向数据提供方发送数据请求,限制了客户端向数据提供方发送数据的权限,能够通过调整注册的信息对于客户端向数据提供方的数据实现管理。
在一个例子中,根据客户端中的注册的信息,向数据提供方发送数据请求之前,包括:接收数据提供方的注册,注册的信息包括数据提供方的访问地址;根据客户端中的注册的信息,向数据提供方发送数据请求,包括:向已注册且未注销的数据提供方的访问地址发送数据请求。即,在客户端向数据提供方请求数据之前,客户端可以通过数据提供方的注册动作,获取向数据提供方请求数据的权限,包括获取注册的信息中所携带的数据提供方的访问地址,客户端被允许通过访问地址,向数据提供方发送数据请求;在数据提供方在客户端产生注销动作后,不具备向注销后的数据提供方访问的权限。进一步增强了数据提供方对于数据隐私的权限管理。
此外,由于注册动作是可变更的,也就是在数据提供方的访问地址变化时,能够通过变更注册的信息以更新访问地址,支持数据提供方的地址的动态变化。在一些技术中,需要数据提供方提供数据以完成联邦学习系统的训练任务,只能通过修改客户端的配置,在配置中写明数据提供方的数据存放位置,客户端根据数据存放位置去取数据。本实施方式相较于修改客户端配置的方式,在数据提供方存在新的数据加入或退出联邦学习时,通过注册的信息的变化来实现更新,不需要变更客户端的配置,进而避免客户端修改配置之后的重启和重新载入数据动作,能够动态管理用于训练的数据。即,除了进一步增强数据提供方对于数据隐私的权限管理外,还能降低联邦学习过程中对于训练所需数据(数据请求的对应数据)的变更资源成本。
在一个例子中,根据客户端中的注册的信息,向数据提供方发送数据请求之前,还包括:根据获取的联邦学习的训练任务,判断客户端本地是否存在训练任务所需的对应数据;若存在,则根据客户端本地的对应数据执行训练任务;若不存在,则执行根据获取的训练任务及客户端中的注册的信息,向数据提供方发送数据请求。即,一些情形中客户端能够对用于进行训练的数据实现存储,以便之后需要时能够进行调用,也就是若客户端本地存储有数据请求的对应数据,直接调用即可,不需要通过向数据提供方发送数据请求等途径从外部获取。
其中,若非首次执行训练任务,则一般先判断本地是否存在数据请求的对应数据,若存在则不需要向数据提供方发送数据请求,减少联邦学习过程所需的步骤数,降低联邦学习难度,减少出错几率。
在步骤102中,从数据池中获取数据提供方根据数据请求提供的对应数据,数据池分别与数据提供方和客户端实现通信连接。即,客户端向数据提供方发送数据请求后,数据提供方可以将数据请求的对应数据发送至数据池,客户端从数据池中获取对应数据,即客户端与数据提供方不需要直接进行数据交互;通过数据池作为中转站,降低客户端向数据提供方的访问权限,但客户端仍能够获取数据请求的对应数据。
其中,在客户端从数据池中获取数据提供方根据数据请求提供的对应数据时,可以是客户端在向数据提供方发送数据请求后主动向数据池进行数据请求;或在向数据提供方发送数据请求的同时主动向数据池进行数据请求;或与数据池处于订阅状态,当数据池中存在数据时,会主动发送至客户端中。即,并不限制客户端以何种方式从数据池中获取对应数据。
具体地,联邦学习系统可以利用数据提供方的数据进行训练,联邦学习的客户端可以利用APP所提供的数据进行训练,由于联邦学习系统的客户端和App数据处于不同的主体,App中的数据有隐私泄露的风险,在本实施方式中采用如图3所示的架构以在联邦学习系统及数据提供方共同完成联邦学习的过程。其中,FL Server: 联邦学习的服务器,用于向联邦学习的客户端发送训练任务、控制训练过程以及聚合训练结果;其中,控制训练过程通过聚合后的训练结果,调节下发训练任务来控制,聚合训练结果,通过接收并整合联邦学习的客户端的训练结果实现。FL Client:联邦学习的客户端,用于执行获取到的训练任务,以及训练结束后上报训练结果。
在客户端和数据提供方之间存在数据池DataPool,作为数据提供方向客户端提供数据的中转站。数据池的形式,包括但不限于:消息队列、文件、共享内存、数据库、kafka。即它可以是消息队列、文件、共享内存,甚至是数据库、kafka等多种形式,能够在客户端和数据提供方之间实现数据中转的功能即可。
在一个实现过程中,数据池可以是原本就与客户端处于信息交互状态,比如处于绑定状态,在数据提供方进行注册时根据客户端中的注册的信息,向数据提供方划分了一个用于进行数据中转的区域;数据池也可以是原本与数据提供方进行绑定,在数据提供方接收到客户端的数据请求后,向客户端提供了数据池的配置,使得客户端能够向数据池请求数据或发起订阅;数据池还可以原本为第三方空间,首先与数据提供方进行绑定,或信息交互,由数据提供方在收到客户端的数据请求后或同时向客户端回复数据池的配置,或在数据提供方在客户端注册之前就与数据提供方进行绑定,一同注册在客户端;数据池作为第三方空间时,还可以为先在客户端进行绑定,后通过将配置信息携带于数据请求中,使得数据提供方获取等。即数据池与数据提供方和客户端的初始状态允许存在多种情况,并不对其进行限定。
在一个例子中,根据客户端中的注册的信息,向数据提供方发送数据请求,包括:根据客户端中的注册的信息,通过应用程序接口,向数据提供方发送数据请求;应用程序接口用于调整数据格式;从数据池中获取数据提供方根据数据请求提供的对应数据,包括:通过应用程序接口,从数据池中获取数据提供方根据数据请求提供的对应数据。即,由于数据提供方的数据存在多样性这一特点,数据格式、存储位置等各有差异,在本实施例中采用一套数据访问接口DatasetAPI来处理多样的用于进行联邦学习的数据,使得训练任务不需要感知细节的数据特征,降低由于数据提供方的数据多样化所引起的训练任务的复杂程度。
具体地,如图4所示,本实施例提供一层统一的数据访问接口DatasetAPI,供联邦学习的数据交互过程使用,在需要App(数据提供方)数据时,联邦学习的客户端通过调用DatasetAPI向数据提供方发送数据请求以及从数据池中获取数据请求的对应数据。虽然App有文本、关系型、图片等各种数据类型,甚至有不同的存储方式,但仅需标识要访问的数据集名称和标准的调用接口,就可以获取这些数据,不需要关心APP中数据的格式等差异。其中,text data(文本数据),relational data(关系型数据),image data(图像数据)标识APP中的不同数据类型;DataProducer数据生产者功能组件,App通过DataProducer将数据写到数据池DataPool。Protect date表示对数据进行加密,例如使用差分隐私算法,加强数据的隐私保护,serialize data表示对数据进行序列化处理,deserialize表示对于数据进行反序列化处理,Dataset Manager(数据集功能管理模块)用于管理App注册的数据和数据的可用周期。Data Consumer根据App的访问地址向App发送数据请求以请求数据,FL task(Federated Learning task)表示联邦学习的训练任务。
在步骤103中,联邦学习的客户端根据对应数据执行联邦学习的训练任务。在从数据池中获取训练任务的对应数据之后,采用所获取的对应数据执行联邦学习过程。在客户端根据对应数据完成了联邦学习之后,将结果反馈给联邦学习系统中的服务器,供服务器聚合训练结果。
在本申请实施方式中,设置数据池作为客户端与数据提供方的中转站,使得数据提供方发送的数据不必直接传送到客户端,避免客户端直接访问数据提供方,对数据提供方的隐私产生威胁。作为数据提供方的App仍持有对于所提供的数据的控制权,发送什么数据、是否授权发送数据都由App决定,例如通过注册注销机制,使App可以动态加入、退出联邦学习系统,自由控制数据的上线、下线,且App可以在发送数据前做一系列对数据的预处理操作来进一步保护数据隐私;同时联邦学习的客户端提供一套统一的访问数据的接口DatasetAPI接口,客户端通过标准化的接口获取数据,使联邦学习的过程对App的数据差异无感知;实现联邦学习的客户端和App(数据提供方)的解耦,两者运行互不干扰,仅在数据提供方注册、注销,以及客户端发送数据请求时有交互。
本发明的另一个实施例涉及一种联邦学习数据的管理方法,应用于终端,终端用于提供实现联邦学习的数据,下面对本实施例的联邦学习数据的管理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须,图5是本实施例的应用于终端的联邦学习数据的管理方法的流程图,包括:
步骤201,接收联邦学习的客户端根据客户端中的注册的信息发送的数据请求;
在一个例子中,接收联邦学习的客户端根据客户端中的注册的信息发送的数据请求之前,还包括:注册至联邦学习的客户端,注册的信息包括数据提供方的访问地址。即,在本实施方式中,对于联邦学习的数据提供方,在接收客户端发送的数据请求之前,先注册至客户端,也就是向客户端的数据请求进行授权,并实现动态向客户端提供用于进行训练的数据地址。注册步骤如图6所示。
具体地,终端中的App(数据提供方)准备可供进行训练的数据信息,然后调用数据注册功能模块DataRegister,DataRegister向客户端的数据集管理功能模块DatasetManager发送注册的信息,以完成数据注册,DataRegister同时也支持注销功能。注册的信息可包括:数据名称、数据拥有者名称、 App的访问地址、数据池的配置(数据池的类型、数据池地址、数据保存策略、授权码(可选)、数据池大小,0表示不设限等)。其中对于为数据保存策略,包括不保存:在训练完毕后清除DataPool中的数据;设置一段时间阈值,在这段时间后清除数据池中的数据;忽略,由DataPool自行控制数据清除等。
在一个具体的实现过程中,通过注册动作,App可以便捷的向联邦学习中的客户端授权,训练需要数据时,通过注册的信息中的App访问地址,去请求数据。在App退出联邦学习系统时,只需将数据注销即可。在linux系统,并且已经部署联邦学习系统的环境中,注册过程如下:首先准备注册的数据信息,注册的信息包括:数据名称"dataset01",数据拥有者名称"test01",App访问地址"http://127.0.0.1:9090",数据池的配置;其中数据池的配置包括:数据池的类型"ShareMemory"(共享内存),数据保存策略 "never"(数据在数据池中不保存,用后即删),套接字socket通信地址"/tmp/test01.file",数据池大小为0,表示不设限。其次,启动App,启动时将注册的信息发送给联邦学习的客户端,以完成数据注册,并接收到数据成功注册的返回消息。数据注销操作例如:停止App,App会将已注册的数据集从联邦学习的客户端注销,并收到数据成功注销的返回消息。其中,数据拥有者表示将自身数据授权至APP进行联邦学习的用户。
步骤202,将数据请求的对应数据发送至数据池,供客户端获取并根据对应数据执行联邦学习的训练任务,数据池分别与终端和客户端实现通信连接。即,在收到客户端的数据请求后,向数据池发送数据请求的对应数据,以供客户端获取并根据对应数据执行训练任务。
在一个例子中,数据池具有数据上限值;联邦学习方法,还包括:在获取数据池处于的饱和状态的信息后,降低发送对应数据的速率或暂停发送对应数据;其中,饱和状态为数据池中的数据量与数据上限值的差值在第一预设范围内。即,可以使用DataPool进行数据流量的控制,通过设置DataPool的上限值,在将近或达到上限值或与上限值差距在预设范围内时,DataProducer降低对应数据的发送速率或暂停发送对应数据来进行调整。
也就是说,终端作为联邦学习的数据提供方至少存在如下功能:管理自身数据集,包括向客户端的注册和注销;数据集为能够用于训练的数据的集合,App需要将自己的数据注册到联邦学习系统,例如注册至联邦学习的客户端,数据才能被联邦学习的客户端识别并使用。当需要退出联邦学习时,也可以注销数据。实现数据动态管理。管理和调节DataPool;当联邦学习的过程需要DataPool参与时,采用本APP原本存在数据连接的DataPool,或新连接一个第三方数据池,或在与客户端相连接的数据池中被分配一个已有的DataPool,用于作为数据中转。并根据数据池的上限值来进行数据发送速度的调节。响应联邦学习客户端的数据集请求;为联邦学习客户端提供数据请求的入口,在接收到数据请求后,将数据请求的对应数据发送到DataPool,供客户端获取。准备训练用的数据;在收到数据请求后,对客户端所需的数据进行预处理,用于实现隐私保护,并将处理后数据发送到DataPool。
为使得上述实施方式更便于理解,以下进行详细叙述,参考图7所示的结构框图,本实施方式的执行过程可为:
联邦学习的服务器(Federated Learning,FL Server)向联邦学习的客户端(Federated Learning,FL Client)发送训练任务,即将训练任务广播给多个FL Client,由FL Client启动并执行训练任务。FL Client在执行训练任务需要数据时,通过调用DatasetAPI接口作用于FL Client中的数据请求功能模块DataCosumer,向数据提供方(APP)发送数据请求。
DataCosumer功能模块被调用时,首先向数据集管理工具DatasetManager获取数据集的元信息,包括获取数据提供方(APP)的注册的信息,其中包括App的访问地址;DatasetManager用于管理App注册的数据和数据的可用周期。DataConsumer根据App的访问地址向App发送数据请求以请求数据,App接收到数据请求后,返回数据池DataPool的配置信息,供客户端与数据池进行信息交互(即,假设在本例中数据池首先与数据提供方存在信息交互关系)。App根据所收到的数据请求准备对应数据,例如还能够对于对应数据进行预处理,包括剔除敏感数据等隐私保护处理,然后通过功能模块DataProducer向数据池发送处理后的对应数据。其中,DataProducer可以将数据序列化,然后发送给DataPool,在此之前如果用户配置隐私保护算法(比如差分隐私),可以对数据做进一步加密再发送。在App发送数据的同时,DataConsumer根据获取的DataPool的配置,从DataPool中获取数据,并反序列化,获得原始的对应数据。其中从DataPool获取数据有两种方式:DataConsumer主动从DataPool获取数据;或通过订阅发布机制获取数据,DataConsumer订阅DataPool的数据,在DataPool有数据时,DataPool将数据发送给DataConsumer。DataConsumer功能模块将反序列化后的对应数据传送至FL Client用于完成训练任务的模块,使得FL Client开始根据对应数据完成训练任务。也可以选择将数据缓存到本地,以便之后训练时直接从本地获取所需的训练数据,加快训练速度。FL Client在完成训练后,将训练结果上报给FL Server,由FL Server完成权重聚合。
在本例的执行过程中,能够控制联邦学习系统访问App数据权限,使客户端仅拥有数据的最小访问权限;App将数据请求权限通过注册动作授权给客户端,使客户端能使用App数据进行联邦学习;通过DatasetAPI接口解决App数据差异化问题,使联邦学习过程中对App数据差异无感知。
在一个具体实现过程中,通过共享内存的数据池将数据请求的对应数据传送到联邦学习的客户端;这个过程中App仍拥有数据的访问控制权,不用担心自己的隐私数据泄露。本实施例中使用共享内存的数据池,并且设置数据保留配置是用后即删,即每轮训练数据都得重新请求和发送,适合于跨设备联邦学习场景(cross-device),比如海量手机间的联邦学习,场景中每轮训练从海量FL Client随机选择的场景。实施例环境为linux系统,并且已经部署联邦学习系统。具体操作步骤如下:步骤1:准备注册数据的信息,启动App,并完成数据注册,注册的信息例如:数据名称"dataset02"、数据拥有者名称"test01"、访问地址"http://127.0.0.1:9090"、数据池的配置;其中,数据池的配置包括:数据池的类型"ShareMemory",数据保存策略 "never", socket通信地址"/tmp/test02.file",数据池大小为0,0表示不设限等。步骤2:联邦学习的发起者(用户)编写联邦学习训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称为dataset02。步骤3:联邦训练发起者配置训练任务,并启动训练任务。步骤4:等待联邦学习结束,并且模型收敛。步骤5:在FL Client训练日志和App的日志中分别观察每轮训练接收的数据量和发送的数据量,两者是一致的,说明数据成功获取。
在一个具体实现过程中,数据通过差分隐私保护等预处理后传递到联邦学习的客户端,实施例环境:linux系统,并且已经部署联邦学习系统。具体操作步骤如下:
步骤1:修改App数据处理的脚本,在发送数据时配置安全策略,设置安全策略secure_policy为差分隐私(Differential Privacy,DP),伪码例如:
fl_producer.send(input, label,
secure_policy="differential_privacy")。
步骤2:准备注册数据的信息,启动App,并完成数据注册,注册的信息例如:数据名称 "dataset03"、数据拥有者名称"test01"、访问地址 "http://127.0.0.1:9090"、数据池的配置;其中,数据池的配置包括:数据池的类型 "ShareMemory",数据保存策略 "never",socket通信地址"/tmp/test03.file",数据池大小为0,0表示不设限等。步骤3:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称dataset03。步骤4:联邦学习的发起者配置训练任务,并启动训练任务。步骤5:等待联邦学习结束,并且模型收敛。步骤6:在FL Client训练日志和App日志中分别观察每轮训练接收的数据量和发送的数据量,两者是一致的,说明数据成功获取。在FLClient随机打印几条接收到的数据,与原始数据比较,在数据的小数位有微小差异,说明成功使用差分隐私保护数据。
在一个具体实现过程中,用于联邦学习的客户端系统使用缓存的本地数据进行训练,可以有效节省获取数据的时间。实施例环境可以为:linux系统,并且已经部署联邦学习系统。具体操作步骤如下:步骤1:配置FL client使用数据缓存,并重新启动FL Client,使缓存配置生效。步骤2:准备注册数据的信息,启动App,启动时完成数据注册,注册的信息包括:数据名称"dataset04",数据拥有者名称"test01",App访问地址 "http://127.0.0.1:9090",数据池的配置;其中数据池的配置包括:数据池的类型"ShareMemory"(共享内存),数据保存策略 "never"(数据在数据池中不保存,用后即删),套接字socket通信地址"/tmp/test04.file",数据池大小为0,表示不设限。步骤3:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称dataset04。步骤4:联邦学习的发起者配置训练任务,并启动训练任务。步骤5:等待联邦学习结束,并且模型收敛。步骤6:察看日志,第一轮训练时,在FL Client训练日志和App日志中观察到接收的数据量和发送的数据量,两者一致,说明数据成功获取到。第二轮开始,App日志中观察不到数据请求的日志,同时联邦学习继续运行,说明训练任务成功使用了本地缓存的数据进行训练。
在一个具体实现过程中,多个训练任务同时使用同一份数据进行训练,设数据池的数据保留时间为1天,即在一天时间中数据在数据池内不删除,这段时间内这些数据可以被多个训练任务同时获取到。实施例环境可为:linux系统,并且已经部署联邦学习系统。具体操作步骤如下:步骤1:准备注册数据的信息,其中设置数据保留时间为1天,即在第一次上传数据后,数据一天内不删除。启动App,启动的同时完成数据注册。注册的信息例如:数据名称"dataset05",数据拥有者名称"test01",App访问地址"http://127.0.0.1:9090",数据池的配置;其中数据池的配置包括:数据池的类型"ShareMemory"(共享内存),数据保存策略 "1d"(设置数据保留时间为一天),套接字socket通信地址"/tmp/test05.file",数据池大小为0,表示不设限。步骤2:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称dataset05。步骤3:联邦学习的发起者配置三个训练任务,并启动这三个训练任务。步骤4:等待三个联邦训练结束,并且模型都收敛。步骤5:察看日志,第一轮训练时,在App日志中观察到三个任务的数据请求,但只有一个数据发送,并且发送了6万条数据,同时三个训练任务的日志显示都接收到了6万条数据,说明数据都成功获取到。第二轮开始,App日志仅能观察到三个任务数据请求的日志,没有进行数据发送,同时三个训练任务都显示获取到6万条数据,说明训练任务成功使用了缓存在数据池中数据进行训练。
在一个具体实现过程中,联邦学习的客户端通过发布订阅的模式从kafka获取到App所提供的数据,本实施例使用第三方数据池kafka进行数据传输,kafka有数据保留功能,可以设置数据保留的时间,该时间内数据不会被删除。并且kafka支持数据的订阅发布模式,客户端中的DataConsumer模块可利用这个机制,订阅kafka中的数据集。实施例环境可以为:linux系统,并且已经部署联邦学习系统。另外需要部署kafka,并且设置它的数据保留时间为一天。具体操作步骤如下:步骤1:准备注册数据的信息,启动App,启动的同时时完成数据注册。注册的信息包括:数据名称 "dataset06",数据拥有者名称"test01",App访问地址"http://127.0.0.1:9090",数据池的配置;其中数据池的配置包括:数据池的类型"kafka",数据保存策略 "1d"(同在kafka中配置的数据保留时间), kafka访问地址 "127.0.0.1:9092"。步骤2:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,填写获取的数据集的名称dataset06,且配置使用订阅模式获取数据。步骤3:联邦学习的发起者配置训练任务,并启动训练任务。步骤4:等待联邦学习结束,并且模型收敛步骤5:察看日志,第一轮训练时,在FL Client训练日志和App日志中观察接收的数据量和发送的数据量,两者一致,说明数据成功获取到。第二轮开始,App日志仅能观察到数据请求的日志,没有进行数据发送,同时训练任务显示获取到6万条数据,说明训练任务成功获取到了缓存在kafka中数据进行训练。
在一个具体实现过程中,将在手机上的数据通过文件方式传递到联邦学习系统,其中配置数据池类型为文件的方式。实施例环境可以为:Android系统,在Android安装有用于提供数据的App(数据提供方)和FL Client,FL Server部署在linux系统上。具体操作步骤如下:步骤1:启动App,启动后进行数据注册,注册的信息包括:数据名称"dataset07",数据拥有者名称"test01",访问地址"http://127.0.0.1:9090",数据池的配置;其中数据池的配置包括:数据池的类型"File"(文件),数据保存策略"ingnre"(数据保存时间与数据池无关),直接告知数据保存的文件位置"/tmp/test.datapool"。步骤2:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称为dataset07。步骤3:联邦训学习的发起者配置训练任务,并启动训练任务。步骤4:等待联邦训练结束,并且模型收敛。步骤5:在FL Client训练日志和App日志中分别观察每轮训练接收的数据量和发送的数据量,两者是一致的,说明数据成功获取。
在一个具体实现过程中,实现数据池对于的流量控制过程。在App发送数据过快,训练任务来不及处理数据时,为了防止数据池饱和而造成数据丢失,可启用数据池的流量控制配置策略。实施例环境可以为:linux系统,并且已经部署联邦学习系统。具体操作步骤如下:步骤1:配置数据池的流量控制策略,设置数据池中的数据量达到数据池的数据上限值的70%,就通知DataProducer减缓数据发送,当数据池中的数据量达到数据池的数据上限值的90%以上时暂停数据发送,当数据池中的数据量达到数据池的数据上限值的30%以下时,恢复到数据发送的正常速度。步骤2:准备注册数据的信息,启动App,启动的同时完成数据注册。注册的信息包括:数据名称"dataset08",数据拥有者名称"test01",App访问地址"http://127.0.0.0:9090",数据池的配置;其中数据池的配置包括:数据池的类型"ShareMemory"(共享内存),数据保存策略 "never"(数据在数据池中不保存,用后即删),套接字socket通信地址 "/tmp/test08.file",设置数据池容量上限"100" 。步骤3:联邦学习的发起者编写联邦学习的训练脚本,并在训练脚本中调用DatasetAPI中获取数据集的接口,获取的数据集的名称为dataset08。并且为了平衡数据消费速度,在可暂停数据发送过程,或为了减缓数据消费速度,可在模型训练时进行暂停训练。步骤4:联邦学习的发起者配置训练任务,并启动训练任务。步骤5:等待联邦训练结束,并且模型收敛。步骤6:在FLClient训练日志和App日志中分别观察每轮训练接收的数据量和发送的数据量,两者是一致的,说明数据成功获取。观察数据池的日志,产生大量的数据容量超限日志,以及向DataProducer发送减缓和暂停发送数据的日志,同时也伴随着恢复发送数据的日志,说明数据池的流量控制功能正常运行。
在本实施例中,将数据池作为客户端与数据提供方的中转站,使得数据提供方发送的数据不必直接传送到客户端,避免数据提供方直接被客户端访问,对数据提供方的隐私产生威胁。作为数据提供方的App仍持有对于所提供的数据的控制权,同时能够通过注册注销机制动态对客户端的数据请求进行授权,便于变更数据地址,进一步加强隐私保护。另外,还能够通过数据池的数据上限值控制数据的发送速率,达到控制流量的目的,进一步提高联邦学习的效率。
本发明另一个实施例涉及一种电子设备,如图8所示,包括:至少一个处理器301 ;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够执行上述应用于联邦学习的客户端的联邦学习数据的管理方法或能够执行应用于终端的联邦学习数据的管理方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明另一个实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种联邦学习数据的管理方法,其特征在于,应用于联邦学习的客户端,包括:
根据所述客户端中的注册的信息,向数据提供方发送数据请求,所述注册的信息为所述数据提供方的注册的信息;
从数据池中获取所述数据提供方根据所述数据请求提供的对应数据,所述数据池分别与所述数据提供方和所述客户端实现通信连接;
根据所述对应数据执行所述联邦学习的训练任务。
2.根据权利要求1所述的联邦学习数据的管理方法,其特征在于,所述根据所述客户端中的注册的信息,向数据提供方发送数据请求之前,包括:
接收所述数据提供方的注册,所述注册的信息包括所述数据提供方的访问地址;
所述根据所述客户端中的注册的信息,向数据提供方发送数据请求,包括:
向已注册且未注销的数据提供方的访问地址发送所述数据请求。
3.根据权利要求1所述的联邦学习数据的管理方法,其特征在于,所述根据所述客户端中的注册的信息,向数据提供方发送数据请求,包括:
根据所述客户端中的注册的信息,通过应用程序接口,向所述数据提供方发送所述数据请求;所述应用程序接口用于调整数据格式;
所述从数据池中获取所述数据提供方根据所述数据请求提供的对应数据,包括:
通过所述应用程序接口,从所述数据池中获取所述数据提供方根据所述数据请求提供的对应数据。
4.根据权利要求1所述的联邦学习数据的管理方法,其特征在于,所述根据所述客户端中的注册的信息,向数据提供方发送数据请求之前,还包括:
根据获取的联邦学习的训练任务,判断所述客户端本地是否存在所述训练任务所需的对应数据;
若存在,则根据所述客户端本地的对应数据执行所述训练任务;
若不存在,则执行根据获取的训练任务及所述客户端中的注册的信息,向所述数据提供方发送所述数据请求。
5.一种联邦学习数据的管理方法,其特征在于,应用于终端,所述终端用于提供实现联邦学习的数据,所述方法包括:
接收联邦学习的客户端根据所述客户端中的注册的信息发送的数据请求;
将所述数据请求的对应数据发送至数据池,供所述客户端获取并根据所述对应数据执行所述联邦学习的训练任务,所述数据池分别与所述终端和所述客户端实现通信连接。
6.根据权利要求5所述的联邦学习数据的管理方法,其特征在于,所述接收联邦学习的客户端根据所述客户端中的注册的信息发送的数据请求之前,还包括:
注册至所述联邦学习的客户端,所述注册的信息包括所述终端的访问地址。
7.根据权利要求5所述的联邦学习数据的管理方法,其特征在于,所述数据池具有数据上限值;
所述联邦学习方法,还包括:
在获取所述数据池处于的饱和状态的信息后,降低发送所述对应数据的速率或暂停发送所述对应数据;其中,所述饱和状态为所述数据池中的数据量与所述数据上限值的差值在第一预设范围内。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4中任一项所述的联邦学习数据的管理方法或能够执行权利要求5至7中任一项所述的联邦学习数据的管理方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的联邦学习数据的管理方法或实现权利要求5至7中任一项所述的联邦学习数据的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024109.3A CN114048864A (zh) | 2022-01-11 | 2022-01-11 | 联邦学习数据的管理方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024109.3A CN114048864A (zh) | 2022-01-11 | 2022-01-11 | 联邦学习数据的管理方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048864A true CN114048864A (zh) | 2022-02-15 |
Family
ID=80213605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210024109.3A Pending CN114048864A (zh) | 2022-01-11 | 2022-01-11 | 联邦学习数据的管理方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048864A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190050749A1 (en) * | 2017-08-11 | 2019-02-14 | Google Inc. | On-Device Machine Learning Platform |
US20200380153A1 (en) * | 2019-05-28 | 2020-12-03 | Adara, Inc. | Distributed data rights management for peer data pools |
CN113689005A (zh) * | 2021-09-07 | 2021-11-23 | 三星电子(中国)研发中心 | 一种增强型横向联邦学习方法和装置 |
CN113705823A (zh) * | 2020-05-22 | 2021-11-26 | 华为技术有限公司 | 基于联邦学习的模型训练方法和电子设备 |
CN113723220A (zh) * | 2021-08-11 | 2021-11-30 | 电子科技大学 | 基于大数据联邦学习架构下的深度伪造溯源系统 |
-
2022
- 2022-01-11 CN CN202210024109.3A patent/CN114048864A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190050749A1 (en) * | 2017-08-11 | 2019-02-14 | Google Inc. | On-Device Machine Learning Platform |
US20200380153A1 (en) * | 2019-05-28 | 2020-12-03 | Adara, Inc. | Distributed data rights management for peer data pools |
CN113705823A (zh) * | 2020-05-22 | 2021-11-26 | 华为技术有限公司 | 基于联邦学习的模型训练方法和电子设备 |
CN113723220A (zh) * | 2021-08-11 | 2021-11-30 | 电子科技大学 | 基于大数据联邦学习架构下的深度伪造溯源系统 |
CN113689005A (zh) * | 2021-09-07 | 2021-11-23 | 三星电子(中国)研发中心 | 一种增强型横向联邦学习方法和装置 |
Non-Patent Citations (1)
Title |
---|
桑志国等编著: "《网络安全核心技术及其软件编程理论研究》", 31 March 2019, 中国原子能出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413043B (zh) | 实现数据库动态配置的方法及装置、电子设备、存储介质 | |
CN111555893B (zh) | 消息数据传输方法、装置、计算机设备和存储介质 | |
CN110958218B (zh) | 基于多网通信的数据传输方法及相关设备 | |
KR20200047494A (ko) | 자동 애플리케이션 업데이트 | |
US20080162707A1 (en) | Time Based Permissioning | |
CN113079164B (zh) | 堡垒机资源的远程控制方法、装置、存储介质及终端设备 | |
CN110069911B (zh) | 访问控制方法、装置、系统、电子设备和可读存储介质 | |
WO2013023095A2 (en) | Smart thin client server | |
CN112231106B (zh) | Redis集群的访问数据处理方法及装置 | |
US20180268126A1 (en) | Dynamically controlling access to devices | |
US20200272175A1 (en) | Aerial vehicle control method and apparatus | |
CN113271289A (zh) | 用于资源授权和访问的方法、系统和计算机存储介质 | |
US11392901B2 (en) | Systems and methods for calendar sharing by enterprise web applications | |
JP2018527812A (ja) | Mcpttユーザとmcpttグループとの間の関連性関係を変更する方法、装置、及びシステム | |
DE102015102193A1 (de) | Kommunikationsvorrichtung, Informationsverarbeitungsvorrichtung und Steuerverfahren für diese | |
CN107437036B (zh) | 基于角色的访问控制方法、装置及系统 | |
CN105763545A (zh) | 一种byod方法及装置 | |
US9191445B2 (en) | Systems and methods for managing emulation sessions | |
CN114048864A (zh) | 联邦学习数据的管理方法、电子设备和存储介质 | |
CN106911739A (zh) | 一种信息分发方法及装置 | |
US20150381595A1 (en) | System and method for managing multiple devices | |
CN113553152A (zh) | 作业调度方法及装置 | |
US20230047320A1 (en) | Conditional role decision based on source environments | |
WO2024143201A1 (ja) | アクセス管理装置、アクセス管理システム、アクセス管理プログラム、アクセス管理方法 | |
WO2017193911A1 (zh) | 一种sbc服务器管理的方法和装置 |
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 |