1.本发明涉及联邦学习系统,尤其涉及一种跨网络联邦学习系统及方法。
背景技术:2.联邦学习(federated learning)的定义是指:一种多个参与方在保证各自原始私有数据不出数据方定义的私有边界的前提下,协作完成某项机器学习任务的模式。联邦学习主要包括参与方、中心协调方、发起方三个角色,参与方与发起方联合共建机器学习模型,进行联合计算任务,通过协调方进行中间参数传输,在数据不出本域情况下,实现多方数据融合分析应用。
3.现有技术中,联邦学习要求各数据资源参与方只有在网络相互连通的情况下,方可实现联邦学习联合建模及运算,无法满足双方数据资源方在网络隔离情况下,双方或多方通过联邦学习计算方式实现数据的融合应用,例如政务领域分为政务外网和政务内网,因两个网络完全物理隔离,导致现有主流技术无法在跨网络下建立联邦学习任务,不能满足应用需求。
技术实现要素:4.本发明要解决的技术问题在于,针对现有技术的不足,提供一种能够实现联邦学习计算任务隔离网络中间数据的有效传输,进而完成跨网络联邦学习计算任务的系统及方法。
5.为解决上述技术问题,本发明采用如下技术方案。
6.一种跨网络联邦学习系统,其包括有至少两个完全物理隔离的网络以及连接于两个网络之间的离线传输模块,两个网络分别定义为外网和内网,每个网络包括有发起方、参与方、协调方和传输监听模块,其中:外网发起方用于与内网参与方共同完成联邦学习联合建模任务;内网参与方用于提供本地数据,接受外网发起方的邀请,并参与所述联邦学习联合建模任务;外网协调方用于对外网发起方和内网参与方执行联邦学习迭代计算过程中的中间参数进行聚合优化,并生成新的中间参数;外网传输监听模块用于从所述离线传输模块读取中间参数后发送至外网协调方,以及从外网协调方接收中间参数后写入所述离线传输模块;所述离线传输模块用于交互传输两个网络之间经过加密的中间参数。
7.优选地,所述离线传输模块还用于对两个网络之间交互传输的中间参数进行存储。
8.一种跨网络联邦学习方法,该方法基于一系统实现,所述系统包括有至少两个完全物理隔离的网络以及连接于两个网络之间的离线传输模块,两个网络分别定义为外网和内网,每个网络包括有发起方、参与方、协调方和传输监听模块,所述方法包括如下步骤:步骤s10,初始化所述传输监听模块;步骤s20,外网发起方与内网参与方共同完成联邦学习模型创建,外网协调方进行环境初始化,开始首次批次迭代计算任务;步骤s30,外网协调方将所述步骤s20中迭代优化后的双方单边梯度分别发送给外网发起方与外网传输监听模块,
设置执行下一轮迭代批次的数据区间,并开始下一轮迭代批次计算;步骤s40:重复迭代执行所述步骤s30,直至联邦学习任务结束。
9.本发明公开的跨网络联邦学习系统中,当所述传输监听模块初始化完成后,由外网发起方与内网参与方共同完成联邦学习模型创建,外网协调方进行环境初始化,开始首次批次迭代计算任务,并将迭代优化后的双方单边梯度分别发送给外网发起方与外网传输监听模块,之后设置执行下一轮迭代批次的数据区间,并开始下一轮迭代批次计算,重复执行迭代计算,直至联邦学习任务结束。相比现有技术而言,本发明实现了在隔离网络下,任意一方数据节点均可与隔离方网联邦学习计算节点创建联邦学习任务。本发明提供了跨网络下联邦学习离线传输模块,实现了在联邦学习任务迭代过程中,对中间参数的离线传输,较好地完成了跨网络联邦学习任务计算时的中间参数交互功能。
附图说明
10.图1为本发明跨网络联邦学习系统的组成框图;
11.图2为本发明跨网络联邦学习方法的流程图;
12.图3为本发明第一实施例的流程图;
13.图4为本发明第二实施例的流程图;
14.图5为本发明第三实施例的流程图一;
15.图6为本发明第三实施例的流程图二。
具体实施方式
16.下面结合附图和实施例对本发明作更加详细的描述。
17.本发明公开了一种跨网络联邦学习系统,请参见图1,其包括有至少两个完全物理隔离的网络1以及连接于两个网络1之间的离线传输模块2,两个网络1分别定义为外网和内网,每个网络包括有发起方10、参与方11、协调方12和传输监听模块13,其中:
18.外网发起方10用于与内网参与方11共同完成联邦学习联合建模任务;
19.内网参与方11用于提供本地数据,接受外网发起方10的邀请,以及参与所述联邦学习联合建模任务;
20.外网协调方12用于对外网发起方10和内网参与方11执行联邦学习迭代计算过程中的中间参数进行聚合优化,并生成新的中间参数;
21.外网传输监听模块13用于从所述离线传输模块2读取中间参数后发送至外网协调方12,以及从外网协调方12接收中间参数后写入所述离线传输模块2;
22.所述离线传输模块2用于交互传输两个网络1之间经过加密的中间参数。此外,所述离线传输模块2还用于对两个网络1之间交互传输的中间参数进行存储。
23.上述系统中,当所述传输监听模块13初始化完成后,由外网发起方10与内网参与方11共同完成联邦学习模型创建,外网协调方12进行环境初始化,开始首次批次迭代计算任务,并将迭代优化后的双方单边梯度分别发送给外网发起方10与外网传输监听模块13,之后设置执行下一轮迭代批次的数据区间,并开始下一轮迭代批次计算,重复执行迭代计算,直至联邦学习任务结束。相比现有技术而言,本发明实现了在隔离网络下,任意一方数据节点均可与隔离方网联邦学习计算节点创建联邦学习任务,例如,当内网节点作为发起
方,外网节点作为参与方时,采用内网中心方作为联邦学习协调节点,而当外网节点作为发起方,内网节点作为参与方时,采用外网中心方联邦学习协调节点。本发明提供了跨网络下联邦学习离线传输模块,实现了在联邦学习任务迭代过程中,对中间参数的离线传输,较好地完成了跨网络联邦学习任务计算时的中间参数交互功能。
24.在上述系统的基础上,本发明还涉及一种跨网络联邦学习方法,结合图1和图2所示,该方法基于一系统实现,所述系统包括有至少两个完全物理隔离的网络1以及连接于两个网络1之间的离线传输模块2,两个网络1分别定义为外网和内网,每个网络包括有发起方10、参与方11、协调方12和传输监听模块13,所述方法包括如下步骤:
25.步骤s10,初始化所述传输监听模块13;
26.步骤s20,外网发起方10与内网参与方11共同完成联邦学习模型创建,外网协调方12进行环境初始化,开始首次批次迭代计算任务;
27.步骤s30,外网协调方12将所述步骤s20中迭代优化后的双方单边梯度分别发送给外网发起方10与外网传输监听模块13,设置执行下一轮迭代批次的数据区间,并开始下一轮迭代批次计算;
28.步骤s40:重复迭代执行所述步骤s30,直至联邦学习任务结束。
29.上述方法中,在两个网络完全物理隔离环境下,在各自网络环境分别均部署了联邦学习集群,每个网络环境分别部署了发起方、参与方、中心节点、传输监听模块。通过离线传输模块实现联邦学习计算任务隔离网络的中间数据的传输,最终完成跨网络联邦学习计算任务,各个模块定义如下:
30.发起方:指联邦学习计算任务的数据应用方,在参与方提供数据配合下,共同完成联邦学习联合建模任务;
31.参与方:指联邦学习计算任务的数据提供方,协助发起方,提供本地数据,加入联邦学习任务,协助发起方共同完成联邦学习联合建模任务;
32.中心节点:指联邦学习计算任务的协调方,用于聚合优化发起方和参与方迭代计算过程中的中间参数,生成新的中间参数;
33.中间参数:指联邦学习迭代计算过程中,生成的模型梯度、损失值等中间因子;
34.传输监听模块指:指用于向中协调方接收或发送联邦学习迭代计算过程的中间参数,并将中间参数写入离线传输模块或从离线传输模块读取中间参数。
35.离线传输模块指:指用于存储、传输通过加密后的每次联邦学习迭代计算中间参数的设备装置,离线传输模块包括但不限于移动u盘、关闸、网闸等可用于异构网络下离线数据传输介质。
36.本发明通过构建传输监听模块,在发起方网络环境下,监听协调方联邦学习任务迭代过程的中间参数,并将中间参数写入离线传输模块以及对离线传输模块的合法性验证,在参与方网络环境,读取离线传输模块中间参数,发给参与方进行模型更新。
37.关于本发明方法的具体实现过程,请参见实施例一至实施例三。
38.实施例一
39.请参见图3,本实施例是对步骤s10,初始化所述传输监听模块13过程的进一步解释。在本实施例中,所述步骤s10包括有如下过程:
40.步骤s101,分别启动内网和外网的传输监听模块13;具体地,所述步骤s101中,内
网和外网的所述传输监听模块13基于tlcp密码协议建立安全传输通道,分别加入各方联邦学习集群网络环境,并采用netty协议与本方联邦学习集群网络各计算节点及中心节点建立安全连接,用于存储和传输联邦学习计算批次迭代过程中的中间参数。
41.步骤s102,内网和外网的传输监听模块13分别采用rsa或sm2非对称算法,基于本方联邦学习集群网络各参与节点标识,生成密钥对集合s和公钥集合x;
42.进一步地,在所述步骤s102中,节点标识定义为:u={h1,h2,h3......hi},其中,u为所在网络环境下节点标识集合,hi定义为联邦学习节点标识,i表示联邦学习集群节点数量,基于节点标识,采用rsa或sm2加密算法,分别生成生成每个节点标识对应的公私钥集合及公钥集合,其中,密钥对集合s定义为:
[0043][0044]
公钥集合x定义为:
[0045][0046]
其中,hi表示联邦学习节点标识,pi表示联邦学习节点标识hi的公钥,ki表示联邦学习节点标识hi的私钥。
[0047]
步骤s103,内网和外网的传输监听模块13分别加载对方网络在所述步骤s102中生成的公钥集合x,并标记为x0;例如,内网传输监听模块加载外网传输监听模块生成的公钥集合x,并标记为x0,目的是与步骤s102中生成的集合x进行区分。外网传输监听模块加载内网传输监听模块生成的公钥集合x,并标记为x0,同样目的是与步骤s102中生成的结合x区分。
[0048]
步骤s104,启动所述离线传输模块2扫描监听进程,实时监听对所述离线传输模块2进行读写的离线联邦学习迭代批次中间参数。
[0049]
进一步地,所述步骤s104中,所述离线传输模块2的离线传输规则包括中间参数密文数据存储路径和中间参数密文数据验证组合,双方将存储路径规则约定为:
[0050]
[drive#:][/]fldir/hi/task/n/;
[0051]
其中,fldir表示设备根目录,hi表示参与方节点标识,task为固定文件夹名称,n表示任务迭代计算的轮次,依次从01、02...n递增,密文数据验证过程中,采用密钥对集合s的参与方节点标识hi的节点公钥对从离线传输模块读取的中间参数进行数据解密验签,判断是否正常解密。如若验证接入的离线传输模块是否被篡改,确保传输设备的合法性,避免非法参与方接入,截取中间参数,造成数据泄露风险。
[0052]
实施例二
[0053]
本实施例是对步骤s20的进一步解释,在本实施例中,请参见图4,所述步骤s20包括有如下过程:
[0054]
步骤s201,外网协调方12基于paillier算法,生成初始化公私钥对,并将公钥pubkey和内网参与方节点标识hi分别发送给外网发起方10与外网传输监听模块13,对提供给外网发起方与内网参与方迭代批次的中间参数进行加密,外网协调方12保存privkey,以及在接收迭代批次中间参数后进行解密,同时设置当前迭代批次参与训练的数据区间;
[0055]
步骤s202,外网发起方10接收到pubkey,设置本地数据每次迭代参与训练批次,创建paillier加密处理器,初始化模型并开始首次迭代计算,生成当前迭代轮次单边梯度标记为:损失值标记为得到中间参数,其中n为任务迭代计算的轮次,j1为外网发起方的所属参数标识,通过paillier加密处理器,采用pubkey对中间参数进行加密,生成密文数据ct0n,并将发送给外网协调方12;
[0056]
步骤s203:将所述离线传输模块2接入外网联邦学习集群网络,外网传输监听模块13接收到步骤s201中传输的pubkey及内网参与方11节点标识hi,通过步骤s103中接收到的内网公钥集合x0中的公钥pi对协调方pubkey、hi进行加密,生成加密文件prifile,同时将加密文件写入离线传输模块2,文件路径为:[drive#:][/]fldir/hi/task/n/prifile,当前任务为首次批次迭代任务,此时n值为01;
[0057]
步骤s204:所述离线传输模块2断开与外网的连接,接入内网联邦学习集群网络,内网传输监听模块13扫描所述离线传输模块2的文件路径,并读取步骤s203中生成的加密文件prifile,通过步骤s102中生成的密钥对集合s,使用节点标识hi的私钥ki对加密文件进行解密,得到协调方公钥pubkey,将所得pukkey发送给内网参与方11(节点标识hi);
[0058]
步骤s205,内网参与方11接收步骤s204解密后的公钥pubkey,同步设置本地数据每次迭代参与的训练批次,创建paillier加密处理器,初始化模型,开始首次迭代计算,并将当前迭代生成的单边梯度标记为:损失值标记为得到中间参数,其中,n为任务迭代计算的轮次,j2为内网参与方11的所属参数标识,通过paillier加密处理器,采用pubkey对中间参数pubkey对中间参数进行加密,生成中间参数密文数据ct1n,并将密文数据发送给内网传输监听模块13;
[0059]
步骤s206,内网传输监听模块13接收步骤s205中的密文数据ct1n,基于步骤s102生成的密钥对s,参与方节点标识hi对应的私钥ki,对密文数据ct1n进行签名,生成签名文件ctfilen,并将签名文件写入离线传输模块2,文件路径为:[drive#:][/]fldir/hi/task/n/ctfilen;
[0060]
步骤s207,当步骤s203完成后,离线传输模块2断开与内网连接,并接入外网联邦学习集群网络,外网传输监听模块13扫描离线传输模块2的文件路径,读取步骤s206中生成的签名文件ctfile,通过步骤s103接收的内网公钥集合x0中的参与方hi标识对应的公钥pi对签名文件ctfile进行验签,验签成功后,得到步骤s205生成的密文数据ct1,并将密文数据发送给协调方12,若验签失败,说明离线传输模块2存在被篡改风险,终止隐私计算任务;
[0061]
步骤s208,外网协调方12分别接收步骤s207中的中间参数密文数据ct1和步骤s202中的中间参数密文数据ct0,再通过步骤s201中生成的私钥privkey对双方中间参数进
行解密,解密后,外网协调方12得到首轮迭代计算过程中,由外网发起方10的单边梯度损失值和内网参与方11的单边梯度损失值组成的中间参数明文数据;
[0062]
步骤s209,外网协调方12将步骤s208中得到的双方梯度进行优化、聚合后,得出首轮迭代优化后的总梯度,标记为:total_dtn,并将优化后总梯度进行切分,分别得到外网发起方10优化后的单边梯度,标记为:以及内网参与方11优化后的单边梯度,标记为:分别将优化后的梯度发送给外网发起方10和外网传输监听模块13,同时将步骤s208中到的双方损失值进行聚合,得到首轮迭代后的损失值,标记为:iter_lossn。
[0063]
实施例三
[0064]
本实施例是对所述步骤s30的进一步解释,结合图5和图6所示,所述步骤s30包括有:
[0065]
步骤s301,外网协调方将优化后的单边梯度发送给外网发起方节点,优化后的单边梯度和内网参与方节点标识hi发送给外网传输监听模块,外网发起方节点接收单边梯度根据优化后的梯度更新本地模型参数,并进行下一轮迭代批次计算,生成当前迭代轮次单边梯度标记为:损失值标记为作为中间参数,采用pubkey对中间参数通过paillier加密处理器进行加密,生成密文数据ct0
n+1
;
[0066]
步骤s302,将离线传输模块接入外网联邦学习集群网络,外网传输监听模块接收步骤s301传输的优化后的单边梯度及参与方节点标识hi,通过步骤s103接收到的内网公钥集合x0中的公钥pi对hi进行加密,生成加密文件,标记为wfilen,并将加密文件写入离线传输模块,文件路径为:[drive#:][/]fldir/hi/task/n/wfilen;
[0067]
步骤s303,完成步骤s302后,离线传输模块断开与外网的连接,并接入内网联邦学习集群网络,内网传输监听模块扫描离线传输模块的文件路径,并读取步骤s2中生成的加密文件wfilen,通过步骤s102中生成的密钥对集合s,使用节点标识hi的私钥ki对加密文件进行解密,得到解密后的单边梯度将所得梯度发送给内网参与方;
[0068]
步骤s304,内网参与方接收步骤s303解密后的单边梯度根据接收的单边梯度更新本地模型参数,并进行下一轮迭代批次计算,生成当前迭代轮次单边梯度标记为:损失值标记为作为中间参数,通过paillier加密处理器,采用pubkey对中间参数通过paillier加密处理器进行加密,生成中间参数密文数据ct1
n+1
,并将密文数据发送给内网传输监听模块;
[0069]
步骤s305,内网传输监听模块接收步骤s304中的中间参数密文数据ct1
n+1
,基于步骤s102中生成的秘钥对s,以及内网参与方节点标识hi对应的私钥ki,对密文数据ct1
n+1
进行签名,生成签名文件ctfile
n+1
,并将签名文件写入离线传输模块,文件路径为:
[0070]
[drive#:][/]fldir/hi/task/n/ctfile
n+1
;
[0071]
步骤s306,完成步骤s305之后,离线传输模块断开与内网连接,并离线传输模块接入外网联邦学习集群网络;
[0072]
步骤s307,外网传输监听模块扫描离线传输模块的文件路径,读取步骤s305中生成的签名文件ctfile
n+1
,通过步骤s103接收的内网公钥集合x0中的参与方标识hi对应的公钥pi,对签名文件ctfile
n+1
进行验签,验签成功后,获取步骤s304生成的密文数据ct1
n+1
,并将密文数据发送给外网协调方,若验签失败,说明离线传输模块存在被篡改风险,则终止隐私计算任务;
[0073]
步骤s308,外网协调方分别接收中间参数密文数据ct1
n+1
和中间参数密文数据ct0
n+1
,通过步骤s201中生成的私钥privkey对双方中间参数进行解密,经解密后,外网协调方得到首轮迭代计算过程中,由外网发起方的单边梯度损失值和内网参与方的单边梯度损失值组成的中间参数明文数据;
[0074]
外网协调方将得到的双方梯度进行优化、聚合得到当前轮次迭代优化后的总梯度,标记为:total_dt
n+1
,并将优化后总梯度进行切分,分别得到外网发起方优化后的单边梯度,标记为:以及内网参与方优化后的单边梯度,标记为:并分别把优化后的梯度发送给外网发起方与外网传输监听模块。同时将得到的双方损失值进行聚合后得出当前轮次轮迭代后的损失值,标记为:iter_lossi,外网协调方将所有迭代批次的损失值进行计算,得到收敛阀值σ2,计算公式为:n为迭代轮次,i为当前轮次变量,σ2为收敛阀值,通过σ2是否达到预设阀值,判断模型是否收敛。
[0075]
本实施例中,在两个或多个网络隔离下的联邦学习集群网络中,每个集群网络下的中心节点均可根据发联邦学习起方所在的网络环境充当协调方角色,请参见图5,当外网节点作为发起方,内网作为参与方时,外网中心节点作为当前任务协调方;同理,请参见图6,当内网节点作为发起方,外网作为参与方时,内网中心节点作为当前任务协调方。具体过程按照步骤s30来实现,具体计算流程均可按照步骤s10~步骤s40进行批次迭代训练。
[0076]
以上所述只是本发明较佳的实施例,并不用于限制本发明,凡在本发明的技术范围内所做的修改、等同替换或者改进等,均应包含在本发明所保护的范围内。
技术特征:1.一种跨网络联邦学习系统,其特征在于,包括有至少两个完全物理隔离的网络以及连接于两个网络之间的离线传输模块,两个网络分别定义为外网和内网,每个网络包括有发起方、参与方、协调方和传输监听模块,其中:外网发起方用于与内网参与方共同完成联邦学习联合建模任务;内网参与方用于提供本地数据,接受外网发起方的邀请,以及参与所述联邦学习联合建模任务;外网协调方用于对外网发起方和内网参与方执行联邦学习迭代计算过程中的中间参数进行聚合优化,并生成新的中间参数;外网传输监听模块用于从所述离线传输模块读取中间参数后发送至外网协调方,以及从外网协调方接收中间参数后写入所述离线传输模块;所述离线传输模块用于交互传输两个网络之间经过加密的中间参数。2.如权利要求1所述的跨网络联邦学习系统,其特征在于,所述离线传输模块还用于对两个网络之间交互传输的中间参数进行存储。3.一种跨网络联邦学习方法,其特征在于,该方法基于一系统实现,所述系统包括有至少两个完全物理隔离的网络以及连接于两个网络之间的离线传输模块,两个网络分别定义为外网和内网,每个网络包括有发起方、参与方、协调方和传输监听模块,所述方法包括如下步骤:步骤s10,初始化所述传输监听模块;步骤s20,外网发起方与内网参与方共同完成联邦学习模型创建,外网协调方进行环境初始化,开始首次批次迭代计算任务;步骤s30,外网协调方将所述步骤s20中迭代优化后的双方单边梯度分别发送给外网发起方与外网传输监听模块,设置执行下一轮迭代批次的数据区间,并开始下一轮迭代批次计算;步骤s40,重复迭代执行所述步骤s30,直至联邦学习任务结束。4.如权利要求3所述的跨网络联邦学习方法,其特征在于,所述步骤s10包括有如下过程:步骤s101,分别启动内网和外网的传输监听模块;步骤s102,内网和外网的传输监听模块分别采用rsa或sm2非对称算法,基于本方联邦学习集群网络各参与节点标识,生成密钥对集合s和公钥集合x;步骤s103,内网和外网的传输监听模块分别加载对方网络在所述步骤s102中生成的公钥集合x,并标记为x0;步骤s104,启动所述离线传输模块扫描监听进程,实时监听对所述离线传输模块进行读写的离线联邦学习迭代批次中间参数。5.如权利要求4所述的跨网络联邦学习方法,其特征在于,所述步骤s101中,内网和外网的所述传输监听模块基于tlcp密码协议建立安全传输通道,分别加入各方联邦学习集群网络环境,并采用netty协议与本方联邦学习集群网络各计算节点及中心节点建立安全连接,用于存储和传输联邦学习计算批次迭代过程中的中间参数。6.如权利要求5所述的跨网络联邦学习方法,其特征在于,所述步骤s102中,节点标识定义为:u={h1,h2,h3......h
i
},其中,u为所在网络环境下节点标识集合,h
i
定义为联邦学
习节点标识,i表示联邦学习集群节点数量,基于节点标识,采用rsa或sm2加密算法,分别生成生成每个节点标识对应的公私钥集合及公钥集合,其中,密钥对集合s定义为:公钥集合x定义为:其中,p
i
表示联邦学习节点标识h
i
的公钥,k
i
表示联邦学习节点标识h
i
的私钥。7.如权利要求6所述的跨网络联邦学习方法,其特征在于,所述步骤s104中,所述离线传输模块的离线传输规则包括中间参数密文数据存储路径和中间参数密文数据验证组合,双方将存储路径规则约定为:[drive#:][/]fldir/h
i
/task/n/;其中,fldir表示设备根目录,h
i
表示参与方节点标识,task为固定文件夹名称,n表示任务迭代计算的轮次,依次从01、02...n递增,密文数据验证过程中,采用密钥对集合s的参与方节点标识h
i
的节点公钥对从离线传输模块读取的中间参数进行数据解密验签,判断是否正常解密。8.如权利要求7所述的跨网络联邦学习方法,其特征在于,所述步骤s20包括有如下过程:步骤s201,外网协调方基于paillier算法,生成初始化公私钥对,并将公钥pubkey和内网参与方节点标识h
i
分别发送给外网发起方与外网传输监听模块,对提供给外网发起方与内网参与方迭代批次的中间参数进行加密,外网协调方保存privkey,以及在接收迭代批次中间参数后进行解密,同时设置当前迭代批次参与训练的数据区间;步骤s202,外网发起方接收到pubkey,设置本地数据每次迭代参与训练批次,创建paillier加密处理器,初始化模型并开始首次迭代计算,生成当前迭代轮次单边梯度标记为:损失值标记为得到中间参数,其中n为任务迭代计算的轮次,j1为外网发起方的所属参数标识,通过paillier加密处理器,采用pubkey对中间参数进行加密,生成密文数据ct0
n
,并将发送给外网协调方;步骤s203:将所述离线传输模块接入外网联邦学习集群网络,外网传输监听模块接收到步骤s201中传输的pubkey及内网参与方节点标识h
i
,通过步骤s103中接收到的内网公钥集合x0中的公钥p
i
对协调方pubkey、h
i
进行加密,生成加密文件prifile,同时将加密文件写入离线传输模块,文件路径为:[drive#:][/]fldir/h
i
/task/n/prifile,当前任务为首次
批次迭代任务,此时n值为01;步骤s204:所述离线传输模块断开与外网的连接,接入内网联邦学习集群网络,内网传输监听模块扫描所述离线传输模块的文件路径,并读取步骤s203中生成的加密文件prifile,通过步骤s102中生成的密钥对集合s,使用节点标识h
i
的私钥k
i
对加密文件进行解密,得到协调方公钥pubkey,将所得pukkey发送给内网参与方;步骤s205,内网参与方接收步骤s204解密后的公钥pubkey,同步设置本地数据每次迭代参与的训练批次,创建paillier加密处理器,初始化模型,开始首次迭代计算,并将当前迭代生成的单边梯度标记为:损失值标记为得到中间参数,其中,n为任务迭代计算的轮次,j2为内网参与方的所属参数标识,通过paillier加密处理器,采用pubkey对中间参数进行加密,生成中间参数密文数据ct1
n
,并将密文数据发送给内网传输监听模块;步骤s206,内网传输监听模块接收步骤s205中的密文数据ct1
n
,基于步骤s102生成的密钥对s,参与方节点标识h
i
对应的私钥k
i
,对密文数据ct1
n
进行签名,生成签名文件ctfile
n
,并将签名文件写入离线传输模块,文件路径为:[drive#:][/]fldir/h
i
/task/n/ctfile
n
。9.如权利要求8所述的跨网络联邦学习方法,其特征在于,所述步骤s20还包括有:步骤s207,当步骤s203完成后,离线传输模块断开与内网连接,并接入外网联邦学习集群网络,外网传输监听模块扫描离线传输模块的文件路径,读取步骤s206中生成的签名文件ctfile,通过步骤s103接收的内网公钥集合x0中的参与方h
i
标识对应的公钥p
i
对签名文件ctfile进行验签,验签成功后,得到步骤s205生成的密文数据ct1,并将密文数据发送给协调方,若验签失败,说明离线传输模块存在被篡改风险,终止隐私计算任务;步骤s208,外网协调方分别接收步骤s207中的中间参数密文数据ct1和步骤s202中的中间参数密文数据ct0,再通过步骤s201中生成的私钥privkey对双方中间参数进行解密,解密后,外网协调方得到首轮迭代计算过程中,由外网发起方的单边梯度损失值和内网参与方的单边梯度损失值组成的中间参数明文数据;步骤s209,外网协调方将步骤s208中得到的双方梯度进行优化、聚合后,得出首轮迭代优化后的总梯度,标记为:total_dt
n
,并将优化后总梯度进行切分,分别得到外网发起方优化后的单边梯度,标记为:以及内网参与方优化后的单边梯度,标记为:分别将优化后的梯度发送给外网发起方和外网传输监听模块,同时将步骤s208中到的双方损失值进行聚合,得到首轮迭代后的损失值,标记为:iter_loss
n
。10.如权利要求9所述的跨网络联邦学习方法,其特征在于,所述步骤s30包括有:步骤s301,外网协调方将优化后的单边梯度发送给外网发起方节点,优化后的单边梯度和内网参与方节点标识hi发送给外网传输监听模块,外网发起方节点接收单边梯度根据优化后的梯度更新本地模型参数,并进行下一轮迭代批次计算,生成当前迭代轮次单边梯度标记为:损失值标记为作为中间参数,采用pubkey对中间参数通过paillier加密处理器进行加密,生成密文数据ct0
n+1
;
步骤s302,将离线传输模块接入外网联邦学习集群网络,外网传输监听模块接收步骤s301传输的优化后的单边梯度及参与方节点标识h
i
,通过步骤s103接收到的内网公钥集合x0中的公钥p
i
对h
i
进行加密,生成加密文件,标记为wfile
n
,并将加密文件写入离线传输模块,文件路径为:[drive#:][/]fldir/hi/task/n/wfile
n
;步骤s303,完成步骤s302后,离线传输模块断开与外网的连接,并接入内网联邦学习集群网络,内网传输监听模块扫描离线传输模块的文件路径,并读取步骤s2中生成的加密文件wfile
n
,通过步骤s102中生成的密钥对集合s,使用节点标识h
i
的私钥k
i
对加密文件进行解密,得到解密后的单边梯度将所得梯度发送给内网参与方;步骤s304,内网参与方接收步骤s303解密后的单边梯度根据接收的单边梯度更新本地模型参数,并进行下一轮迭代批次计算,生成当前迭代轮次单边梯度标记为:损失值标记为作为中间参数,通过paillier加密处理器,采用pubkey对中间参数通过paillier加密处理器进行加密,生成中间参数密文数据ct1
n+1
,并将密文数据发送给内网传输监听模块;步骤s305,内网传输监听模块接收步骤s304中的中间参数密文数据ct1
n+1
,基于步骤s102中生成的秘钥对s,以及内网参与方节点标识h
i
对应的私钥k
i
,对密文数据ct1
n+1
进行签名,生成签名文件ctfile
n+1
,并将签名文件写入离线传输模块,文件路径为:[drive#:][/]fldir/hi/task/n/ctfile
n+1
;步骤s306,完成步骤s305之后,离线传输模块断开与内网连接,并离线传输模块接入外网联邦学习集群网络;步骤s307,外网传输监听模块扫描离线传输模块的文件路径,读取步骤s305中生成的签名文件ctfile
n+1
,通过步骤s103接收的内网公钥集合x0中的参与方标识h
i
对应的公钥p
i
,对签名文件ctfile
n+1
进行验签,验签成功后,获取步骤s304生成的密文数据ct1
n+1
,并将密文数据发送给外网协调方,若验签失败,说明离线传输模块存在被篡改风险,则终止隐私计算任务;步骤s308,外网协调方分别接收中间参数密文数据ct1
n+1
和中间参数密文数据ct0
n+1
,通过步骤s201中生成的私钥privkey对双方中间参数进行解密,经解密后,外网协调方得到首轮迭代计算过程中,由外网发起方的单边梯度损失值和内网参与方的单边梯度损失值组成的中间参数明文数据;外网协调方将得到的双方梯度进行优化、聚合得到当前轮次迭代优化后的总梯度,标记为:total_dt
n+1
,并将优化后总梯度进行切分,分别得到外网发起方优化后的单边梯度,标记为:以及内网参与方优化后的单边梯度,标记为:并分别把优化后的梯度发送给外网发起方与外网传输监听模块。同时将得到的双方损失值进行聚合后得出当前轮次轮迭代后的损失值,标记为:iter_loss
i
,外网协调方将所有迭代批次的损失值进行计算,
得到收敛阀值σ2,计算公式为:n为迭代轮次,i为当前轮次变量,σ2为收敛阀值,通过σ2是否达到预设阀值,判断模型是否收敛。
技术总结本发明公开了一种跨网络联邦学习系统及方法,包括至少两个完全物理隔离的网络及一离线传输模块,其中:外网发起方用于与内网参与方共同完成联邦学习联合建模任务;内网参与方用于提供本地数据,接受外网发起方的邀请,以及参与联邦学习联合建模任务;外网协调方用于对外网发起方和内网参与方执行联邦学习迭代计算过程中的中间参数进行聚合优化,生成新的中间参数;外网传输监听模块用于从离线传输模块读取中间参数后发送至外网协调方,以及从外网协调方接收中间参数后写入离线传输模块;离线传输模块用于交互传输两个网络之间经过加密的中间参数。本发明能实现联邦学习计算任务隔离网络中间数据的有效传输,进而完成跨网络联邦学习计算任务。联邦学习计算任务。联邦学习计算任务。
技术研发人员:王济平 黎刚 汤克云 周健雄 杨劲业 高俊杰
受保护的技术使用者:京信数据科技有限公司
技术研发日:2022.07.13
技术公布日:2022/11/1