用于联邦学习的数据处理方法及装置与流程

文档序号:31695257发布日期:2022-10-01 04:56阅读:341来源:国知局
用于联邦学习的数据处理方法及装置与流程

1.本公开涉及数据处理技术领域,具体涉及到一种用于联邦学习的数据处理方法及装置。


背景技术:

2.联邦学习是一种机器学习技术,可以在不交换数据样本的情况下,在多个分散的边缘设备或者服务器上训练算法,这种方法与传统的集中式机器学习技术(所有的本地数据集都上传到一台服务器上)形成对比。联邦学习可以允许多个参与者在不共享数据的情况下构建一个通用强大的机器学习模型,从而允许解决关键问题,如数据隐私、数据安全、数据访问权限和对异构数据的方法。
3.相关技术中,实现联邦学习的系统通常耦合性较大,如计算流、调度流、通信流等混合在一起,该方式造成机器学习的效率低,且系统的灵活性不足。


技术实现要素:

4.本公开的主要目的在于提供一种用于联邦学习的数据处理方法及装置。
5.为了实现上述目的,根据本公开的第一方面,提供了一种用于联邦学习的数据处理方法,包括:对参与方的数据进行标识,并基于所述标识对数据进行归类,得到只有一个参与方的单方数据集、和有多个参与方的联邦数据集两种类型的数据集;在不同类型的数据集的域下建立任务流;当联邦学习任务被触发执行后,调用不同类型的数据集,以基于该数据集下的任务流调用对应的建模用算法。
6.可选地,在不同类型的数据集的域下建立任务流包括:当交互界面的画布中的任务组件被触发后,调用所述组件,其中,每个组件均对应有各自的建模用算法;基于参与方的业务目标,建立各个组件之前的连接关系,得到所述任务流。
7.可选地,对参与方的数据进行标识包括:根据参与方的身份id对数据进行标识。
8.可选地,当联邦学习任务被触发执行后,调用不同类型的数据集包括:当联邦学习任务被触发执行后,如果调用数据集为联邦数据集,则按照各个参与方数据集域下的任务流执行建模任务;和/或,自动获取各个参与方的执行状态。
9.可选地,当联邦学习任务被触发执行后,如果调用数据集为单方数据集,则判断参与方的数据集身份id和本地数据集的身份id一致;如果不一致,则参与方的数据集为远程单方数据集,并通过远程交互协议启动远程任务以基于远程单方数据集下的任务执行建模任务。
10.可选地,方法还包括:对建模用算法进行按照功能进行归类,得到分类算法模块、统计分析算法模块、数据预处理模块、以及特征处理模块;其中,每个模块中的各个算法均与画布中的任务组件相对应。
11.根据本公开的第二方面,提供了一种用于联邦学习的数据处理装置,包括:数据集归类单元,被配置成对参与方的数据进行标识,并基于所述标识对数据进行归类,得到只有
一个参与方的单方数据集、和有多个参与方的联邦数据集两种类型的数据集;任务流建立单元,被配置成在不同类型的数据集的域下建立任务流;建模单元,被配置成当联邦学习任务被触发执行后,调用不同类型的数据集,以基于该数据集下的任务流调用对应的建模用算法。
12.可选地,在不同类型的数据集的域下建立任务流包括:当交互界面的画布中的任务组件被触发后,调用所述组件,其中,每个组件均对应有各自的建模用算法;基于参与方的业务目标,建立各个组件之前的连接关系,得到所述任务流。
13.根据本公开的第三方面,提供了一种计算机可读存储介质,存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项实现方式所述的用于联邦学习的数据处理方法。
14.根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项实现方式所述的用于联邦学习的数据处理方法。
15.在本公开实施例用于联邦学习的数据处理方法及装置中,包括:对参与方的数据进行标识,并基于所述标识对数据进行归类,得到只有一个参与方的单方数据集、和有多个参与方的联邦数据集两种类型的数据集;在不同类型的数据集的域下建立任务流;当联邦学习任务被触发执行后,调用不同类型的数据集,以基于该数据集下的任务流调用对应的建模用算法。本实施例通过区分数据集,并在单方数据集、联邦数据集下分别建立任务流,以基于该任务流实现建模,提高了联邦学习的灵活性,降低了联邦学习系统的耦合性,提高了学习效率。
附图说明
16.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是根据本公开实施例的用于联邦学习的数据处理方法的流程图;
18.图2是根据本公开实施例的用于联邦学习的数据处理方法的系统架构示意图;
19.图3是根据本公开实施例的电子设备的示意图。
具体实施方式
20.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
21.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本公开的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
22.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
23.根据本公开实施例,提供了一种用于联邦学习的数据处理方法,如图1示,该方法包括如下的步骤101至步骤103:
24.步骤101:对参与方的数据进行标识,并基于所述标识对数据进行归类,得到只有一个参与方的单方数据集、和有多个参与方的联邦数据集两种类型的数据集。
25.在本实施例中,可以针对不同参与方的数据进行归类,将从属于同一个参与方的数据归为一个数据集下,同时还可以从不同的维度对参与方的数据进行分类。分类后可以根据业务需要对数据集进行归类,将只需要单方执行建模的数据集归类为单方数据集、将需要多个参与方实现联邦学习的归类为多方数据集。
26.作为本实施例一种可选的实现方式,对参与方的数据进行标识包括:根据参与方的身份id对数据进行标识。
27.在本可选的实现方式中,各个参与方可以具有表明唯一身份的id标识,通过该id可以区分数据归属于哪个参与方。
28.步骤102:在不同类型的数据集的域下建立任务流。
29.在本实施例中,建模过程可以包括数据预处理阶段、特征工程阶段、统计分析阶段、建模阶段等,不同的阶段可具有多种算法,如数据预处理阶段可以包括数据求交算法、union算法、拆分算法、填充算法等等;特征工程阶段还可以包括分箱算法、onehot算法、归一化算法等等;统计分析阶段可以包括psi算法、特征重要性统计算法等等;建模阶段及机器学习阶段可以包括树模型、逻辑回归算法、dnn等等;只有一方数据,利用自己的数据进行建模,在数据预处理阶段可以对应有多种实现方法实现,特征工程阶段可以对应有多种实现方法实现。该任务流可以包括由多个任务组成,每个任务可对应调用相应的算法。
30.针对单方数据集可以根据业务需求建立由各个任务成员组成的任务流,每个任务成员对应有各自的算法。针对联邦数据集可以根据业务需求建立在参与方之间的建立具有关联关系的任务成员,以组成任务流。
31.作为本实施例一种可选的实现方式,在不同类型的数据集的域下建立任务流包括:当交互界面的画布中的任务组件被触发后,调用所述组件,其中,每个组件均对应有各自的建模用算法;基于参与方的业务目标,建立各个组件之前的连接关系,得到所述任务流。
32.在本可选的实现方式中,可以预先在交互界面建立画布,在画布中多种类多数量的组件可被调用,每个组件可以对应有一个任务,而每个任务即可指示一个建模算法。在画布中用户可通过拖拉拽的方式对任务组件进行更换、对任务组件之间的连接关系进行调整。
33.在一个具体的数据集下,根据业务需求建立任务流,在建立任务流时,可以自定义各个任务组件之间的连接关系。对于单方数据集,根据业务需求建立由本方任务成员通过
串联关系和/或并联关系组成的任务流。对于联邦数据集,根据业务需求建立由各个参与方的任务成员之间通过串联和/或并联关系组成的任务流。
34.示例性地,在一个联邦数据集下,可以由多个参与方,各个参与方之间可以通过任务组件(任务成员)建立关联关系,多个参与方之间可以通过join组件进行数据合并,而后join组件可以与缺失值处理组件连接,缺失值处理组件可以与归一化组件连接;缺失值处理组件还可以与特征分箱组件、直方图组件连接;归一化组件可以与模型训练相关的组件顺次连接。可以理解的是,各个组件之间的连接关系可以在画布中更改,进而更改任务的执行逻辑。
35.步骤103:当联邦学习任务被触发执行后,调用不同类型的数据集,以基于该数据集下的任务流调用对应的建模用算法。
36.在本实施例中,当各个数据集的任务流建立完成并启动建模执行步骤之后,可以通过引擎调用任务流中各个任务对应的算法。
37.示例性地,当交互界面的画布中任务流建立完成后,可以在接收到用户点击的执行控件后通过引擎调用相应的算法。
38.作为本实施例一种可选的实现方式,当联邦学习任务被触发执行后,调用不同类型的数据集包括:当联邦学习任务被触发执行后,如果调用数据集为联邦数据集,则按照各个参与方数据集域下的任务流执行建模任务;和/或,自动获取各个参与方的执行状态。
39.在本可选的实现方式中,由于联邦数据集由至少一个参与方的单方数据集构成,该数据集下可以实现联邦建模过程或联邦数据处理过程的所有必要方法。执行流程上,数据集会自动调用各参与方的建模任务,并自动收集各方的执行状态,并保障建模任务的顺利执行。
40.作为本实施例一种可选的实现方式,当联邦学习任务被触发执行后,如果调用数据集为单方数据集,则判断参与方的数据集身份id和本地数据集的身份id一致;如果不一致,则参与方的数据集为远程单方数据集,并通过远程交互协议启动远程任务以基于远程单方数据集下的任务执行建模任务。
41.在本可选的实现方式中,如果参与方id和本方id一致,则数据集为本地数据,反之则为远程单方数据。单方数据集下实现了数据处理和建模的所有必要建模算法,建模交互层只需要调用这些方法即可。如果是远程单方数据集,该数据集会自动调用rpc协议启动远程任务,执行结果会返回过来并记录在调用方。
42.通过上述可选的实现方式,实现了同时支持本地建模和远程建模的目的。
43.作为本实施例一种可选的实现方式,方法还包括:对建模用算法进行按照功能进行归类,得到分类算法模块、统计分析算法模块、数据预处理模块、以及特征处理模块;其中,每个模块中的各个算法均与画布中的任务组件相对应。
44.在本可选的实现方式中,通过对算法进行分类可以提高算法的调用速度。
45.进一步地,本实施例还可以将建模算法设置为两种模式,单方建模式和多方建模模式,每个模式下可均具备相同的算法库,单方数据集可以在单方建模模式下进行建模并调用单方建模模式下的算法库,联邦数据集可在多方建模模式下进行建模并调用多方建模模式下的算法库。
46.参考图2,图2示出了本实施例方法的架构图,将联邦建模架构分为ui交互层和建
模引擎层(执行层),交互层和执行层的衔接可通过web api来实现。相关技术中在实现联邦建模时,通过本地方和远程数据持有方参与联合建模,在实现上通过在多个数据参与方上同时启动建模任务,然后这些任务会按照自由逻辑顺序执行,发起方通过rpc协议监控各方任务的执行状态,通信流、调度流、计算流紧密耦合在一起。因此本实施例抽象出一层数据集层,包括单方数据集、联邦数据集。在进行机器学习时针对单方数据集只需调用该数据集即可,该数据集中的任务流指定了各任务成员的算法,通过该算法实现机器学习。在实现联邦学习时,可同时调用各个参与方的数据集同时基于各自的任务流完成建模即可。
47.示例性地,在ui交互层即图2中的交互式建模平台,通过该交互层用户可以在画布中调用任务组件,并在各个数据集下建立任务流。而后通过web api和建模引擎实现建模算法的调用。
48.本实施例通过区分数据集,并在单方数据集、联邦数据集下分别建立任务流,以基于该任务流实现建模,提高了联邦学习的灵活性,降低了联邦学习系统的耦合性,同时克服了因调度流、计算流、通信流混杂在一起,导致学习效率低下,代码结构复杂,调试难度大的问题。
49.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
50.根据本公开实施例,还提供了一种用于实施上述用于联邦学习的数据处理方法的装置,该装置包括:数据集归类单元,被配置成对参与方的数据进行标识,并基于所述标识对数据进行归类,得到只有一个参与方的单方数据集、和有多个参与方的联邦数据集两种类型的数据集;任务流建立单元,被配置成在不同类型的数据集的域下建立任务流;建模单元,被配置成当联邦学习任务被触发执行后,调用不同类型的数据集,以基于该数据集下的任务流调用对应的建模用算法。
51.作为本实施例一种可选的实现方式,在不同类型的数据集的域下建立任务流包括:当交互界面的画布中的任务组件被触发后,调用所述组件,其中,每个组件均对应有各自的建模用算法;基于参与方的业务目标,建立各个组件之前的连接关系,得到所述任务流。
52.作为本实施例一种可选的实现方式,对参与方的数据进行标识包括:根据参与方的身份id对数据进行标识。
53.作为本实施例一种可选的实现方式,当联邦学习任务被触发执行后,调用不同类型的数据集包括:当联邦学习任务被触发执行后,如果调用数据集为联邦数据集,则按照各个参与方数据集域下的任务流执行建模任务;和/或,自动获取各个参与方的执行状态。
54.作为本实施例一种可选的实现方式,当联邦学习任务被触发执行后,如果调用数据集为单方数据集,则判断参与方的数据集身份id和本地数据集的身份id一致;如果不一致,则参与方的数据集为远程单方数据集,并通过远程交互协议启动远程任务以基于远程单方数据集下的任务执行建模任务。
55.作为本实施例一种可选的实现方式,装置还包括:对建模用算法进行按照功能进行归类,得到分类算法模块、统计分析算法模块、数据预处理模块、以及特征处理模块;其中,每个模块中的各个算法均与画布中的任务组件相对应。
56.本实施例通过区分数据集,并在单方数据集、联邦数据集下分别建立任务流,以基于该任务流实现建模,提高了联邦学习的灵活性,降低了联邦学习系统的耦合性,同时克服了因调度流、计算流、通信流混杂在一起,导致学习效率低下,代码结构复杂,调试难度大的问题。
57.本公开实施例提供了一种电子设备,如图3所示,该电子设备包括一个或多个处理器31以及存储器32,图3中以一个处理器31为例。
58.该控制器还可以包括:输入装置33和输出装置34。
59.处理器31、存储器32、输入装置33和输出装置34可以通过总线或者其他方式连接,图3中以通过总线连接为例。
60.处理器31可以为中央处理器(centralprocessingunit,cpu)。处理器31还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
61.存储器32作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本公开实施例中的控制方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的方法。
62.存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
63.输入装置33可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。
64.一个或者多个模块存储在存储器32中,当被一个或者多个处理器31执行时,执行如图1所示的方法。
65.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
66.虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1