CN115883053A - 基于联邦机器学习的模型训练方法和装置 - Google Patents
基于联邦机器学习的模型训练方法和装置 Download PDFInfo
- Publication number
- CN115883053A CN115883053A CN202211369556.9A CN202211369556A CN115883053A CN 115883053 A CN115883053 A CN 115883053A CN 202211369556 A CN202211369556 A CN 202211369556A CN 115883053 A CN115883053 A CN 115883053A
- Authority
- CN
- China
- Prior art keywords
- client
- training
- gradient
- cloud server
- clients
- 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
- 238000012549 training Methods 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000010801 machine learning Methods 0.000 title claims abstract description 64
- 230000002776 aggregation Effects 0.000 claims description 10
- 238000004220 aggregation Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书实施例提供了基于联邦机器学习的模型训练方法和装置。至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,在每一轮训练中,第一客户端接收云服务器下发的全局模型;第一客户端利用本地的私有数据训练出该全局模型的梯度;第一客户端对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;第一客户端执行下一轮训练,直至全局模型收敛。本说明书实施例能够提高模型训练的安全性。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术,尤其涉及基于联邦机器学习的模型训练方法和装置。
背景技术
联邦机器学习是一个具有隐私保护效果的分布式机器学习框架,能有效帮助多个客户端在满足隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。联邦机器学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让各个客户端在不共享本端数据的基础上联合建模,实现智能协作,共同训练一个性能较好的全局模型。
在基于联邦机器学***均梯度,并利用该平均梯度更新云服务器端的全局模型,在下一轮训练时,将更新后的全局模型下发给各个客户端。
可见,在基于联邦机器学习的全局模型的训练中,各个客户端需要将自己训练出的梯度发送给云服务器。而在很多攻击场景中,可以利用客户端发送给云服务器的梯度信息恢复出该客户端本地存储的原始的私有数据,从而导致私有数据的泄露,用户的隐私无法得到保护,安全性较差。
发明内容
本说明书一个或多个实施例描述了基于联邦机器学习的模型训练方法和装置,能够提高模型训练的安全性。
根据第一方面,提供了基于联邦机器学习的模型训练方法,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该方法应用于所述至少两个客户端中的任意一个第一客户端,包括:
在每一轮训练中,第一客户端接收云服务器下发的全局模型;
第一客户端利用本地的私有数据训练出该全局模型的梯度;
第一客户端对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;
第一客户端执行下一轮训练,直至全局模型收敛。
其中,该方法进一步包括:第一客户端得到对应于该第一客户端的掩码;其中,参与所述模型训练的所有客户端对应的所有掩码的和小于预定值;
所述第一客户端对本轮训练得到的梯度进行加密,包括:
第一客户端将本轮训练得到的梯度与该第一客户端对应的掩码相加,得到加密后的梯度。
其中,所述所有客户端对应的所有掩码的和为0。
其中,所述第一客户端得到对应于该第一客户端的掩码,包括:
第一客户端得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj);
第一客户端得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u);其中,j为变量,取值为1至N;N为参与所述模型训练的所有客户端的数量减1;u表征第一客户端,vj表征参与所述模型训练的所有客户端中除了第一客户端之外的第j个客户端;
第一客户端针对每一个变量j,分别计算s(u,vj)与s(vj,u)两者的差值,根据该差值得到p(u,vj);
其中,所述根据该差值得到p(u,vj),包括:
将该差值直接作为所述p(u,vj);
或者,
计算该差值mod r,将计算出的取余的结果作为所述p(u,vj);其中,mod为取余运算,r为大于1的预设值。
其中,所述r为不小于200位的质数。
该方法进一步包括:第一客户端生成该第一客户端对应的同态加密密钥对;第一客户端将该第一客户端对应的同态加密密钥对中的公钥发送给转发服务器;以及第一客户端接收转发服务器发来的所述所有客户端中其他每一个客户端对应的公钥;
相应地,在所述第一客户端得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj)之后,进一步包括:针对所述其他每一个客户端,第一客户端利用第j个客户端对应的公钥,对对应该第j个客户端的子掩码s(u,vj)进行加密,然后将加密后的s(u,vj)发送给转发服务器;
相应地,所述第一客户端得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u),包括:
所述第一客户端接收转发服务器发来的其他每一个客户端生成的、对应第一客户端的加密后的各个子掩码s(vj,u);
第一客户端利用该第一客户端对应的同态加密密钥对中的私钥,对各个加密后的子掩码s(vj,u)进行解密,得到各个子掩码s(vj,u)。
其中,所述转发服务器包括:所述云服务器,或者独立于所述云服务器的第三方服务器。
根据第二方面提供了基于联邦机器学习的模型训练方法,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该方法应用于云服务器,包括:
在每一轮训练中,云服务器将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端;
云服务器接收每一个客户端发来的加密后的全局模型的梯度;
云服务器将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度;
云服务器利用聚合后的梯度更新全局模型;
云服务器执行下一轮训练,直至全局模型收敛。
根据第三方面,提供了基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于所述至少两个客户端中的任意一个第一客户端,该装置包括:
全局模型获取模块,配置为在每一轮训练中,接收云服务器下发的全局模型;
梯度获取模块,配置为在每一轮训练中,利用本地的私有数据训练出该全局模型的梯度;
加密模块,配置为在每一轮训练中,对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;
各模块执行下一轮训练,直至全局模型收敛。
根据第四方面,提供了基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于云服务器,该装置包括:
全局模型下发模块,配置为在每一轮训练中,将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端;
梯度接收模块,配置为在每一轮训练中,接收每一个客户端发来的加密后的全局模型的梯度;
梯度聚合模块,配置为在每一轮训练中,将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度;
全局模型更新模块,配置为在每一轮训练中,利用聚合后的梯度更新全局模型;
各模块执行下一轮训练,直至全局模型收敛。
根据第五方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
本说明书各个实施例提供的方法及装置,能够单独或者组合后实现如下有益效果:
1、客户端在得到梯度后,不是直接将梯度信息发送给云服务器,而是首先对梯度进行加密,将加密后的信息发送给云服务器。这样,云服务器从每一个客户端处得到的就是加密后的梯度,而不是梯度原文,也就是说云服务器只能获取聚合后的梯度,而不能获取每一个客户端的梯度,因此,提高了安全性。比如,攻击者无法从客户端至云服务器的传输链路上或者从云服务器中,窃取到梯度原文,从而无法通过生成对抗网络(GAN)等手段恢复出客户端所在的终端设备中的私有数据。客户端能够将隐私把握在自己手中,从而大大提高了安全性。
2、采用同态加密的手段对秘密分享时的子掩码进行加密,也就是说每一个客户端不会将子掩码的原文发送给转发服务器,而是发送被同态加密密钥对中的公钥加密后的子掩码,从而进一步提高了安全性。
3、相比于客户端之间两两交换子掩码的子掩码获取方式,本说明书实施例中采用同态加密的手段对秘密分享时的子掩码进行加密,可以依靠中心的云服务器或者第三方服务器作为中间第三方转达实现,避免了客户端之间两两交换子掩码所造成的子掩码泄露的问题,从而进一步提高了安全性。
4、在计算两个子掩码的差值时,利用该差值取余,利用取余的结果进来得到客户端对应的掩码,从而可以保证计算出的掩码的数值范围不会超过协议所能承载的最大数值,从而增加了本说明书实施例的应用范围,比如当参与基于联邦机器学习的模型训练的客户端的数量巨大时,也能够实现本说明书实施例中的模型训练。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例所应用的***结构示意图。
图2是本说明书一个实施例中由客户端执行的基于联邦机器学习的模型训练方法流程图。
图3是本说明书一个实施例中第一客户端得到该第一客户端对应的掩码的方法流程图。
图4是本说明书一个实施例中由云服务器执行的基于联邦机器学习的模型训练方法流程图。
图5是本说明书一个实施例中由客户端及云服务器配合实现的基于联邦机器学习的模型训练方法的流程图。
图6是本说明书一个实施例中应用于客户端中的基于联邦机器学习的模型训练装置的结构示意图。
图7是本说明书一个实施例中应用于客户端中的基于联邦机器学习的模型训练装置的结构示意图。
图8是本说明书一个实施例中应用于云服务器中的基于联邦机器学习的模型训练装置的结构示意图。
具体实施方式
如前所述,各个客户端需要将自己训练出的梯度发送给云服务器。而在很多攻击场景中,攻击者可以利用客户端发送给云服务器的梯度信息恢复出该客户端所在的终端设备中的原始的私有数据,比如可以通过生成对抗网络(GAN)等手段恢复出私有数据。再如,中心的云服务器收到的是逐个单独客户端的梯度信息,一般来说,中心云服务器是可靠的,但是当中心云服务端存在无意的丢失数据行为或者与其他客户端合谋时,客户端的私有数据会遭到泄露。客户端无法将隐私把握在自己手中。
下面结合附图,对本说明书提供的方案进行描述。
为了方便对本说明书的理解,首先对本说明书所应用的***架构进行描述。如图1中所示,该***架构主要包括参与联邦机器学习的M个客户端以及云服务器。M为大于1的正整数。其中,各个客户端与云服务器之间通过网络交互,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
M个客户端分别位于M个终端设备中。每一个客户端可以位于任意一个通过联邦机器学习进行建模的终端设备中,比如银行设备、支付端设备、移动终端等,云服务器可以位于云端。
本说明书实施例的方法涉及到客户端的处理以及云服务器的处理。下面分别进行说明。
首先说明在客户端中执行的模型训练方法。
图2是本说明书一个实施例中客户端执行的基于联邦机器学***台、设备集群来执行。参见图2,该方法包括:
步骤201:在每一轮训练中,第一客户端接收云服务器下发的全局模型。
步骤203:第一客户端利用本地的私有数据训练出该全局模型的梯度。
步骤205:第一客户端对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器。
步骤207:第一客户端执行下一轮训练,直至全局模型收敛。
根据上述图2所示的流程可以看出,本说明书实施例提供的方法,客户端在得到梯度后,不是直接将梯度信息发送给云服务器,而是首先对梯度进行加密,将加密后的信息发送给云服务器。这样,云服务器从每一个客户端处得到的就是加密后的梯度,而不是梯度原文,因此,提高了安全性。比如,攻击者无法从客户端至云服务器的传输链路上或者从云服务器中,窃取到梯度原文,从而无法通过生成对抗网络(GAN)等手段恢复出客户端所在的终端设备中的私有数据。客户端能够将隐私把握在自己手中,从而大大提高了安全性。
本说明书实施例的方法可以应用于基于联邦机器学习进行模型训练的各种业务场景中,比如支付宝的“蚂蚁森林”产品、扫码图像风控等。
下面结合具体实施例对图2中的每一个步骤分别进行说明。
首先对于步骤201:在每一轮训练中,第一客户端接收云服务器下发的全局模型。
为便于描述,更好地区分当前处理的客户端与其他客户端,将图2中执行模型训练方法的客户端记为第一客户端。可以理解,在本说明书实施例中,第一客户端是参与基于联邦机器学习进行模型训练的每一个客户端,也就是说,参与基于联邦机器学习进行模型训练的每一个客户端都需要执行结合图2说明的模型训练方法。
接下来对于步骤203:第一客户端利用本地的私有数据训练出该全局模型的梯度。
接下来对于步骤205:第一客户端对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器。
在本说明书实施例的方法中,需要满足如下两方面的要求:
1、安全性。
为了满足该安全性,客户端不能将自己训练出的梯度的原文直接发送给云服务器,而是发送梯度的密文。
2、可用性。
为了进行模型训练,云服务器需要得到各个客户端的各个梯度的聚合结果,该聚合结果必须等于或接近于各个梯度原文的聚合结果,从而才能更好地进行模型训练。也就是说,云服务器虽然不能直接得到每一个梯度的原文,但是得到的梯度聚合结果必须等于或者接近于各个梯度原文的聚合结果。因此,参与模型训练的所有客户端的加密处理需要保证附加在各个梯度上的所有密码的和能够或者接近于相互抵消。举一个简单的例子来说明该思想,比如需要得到结果Y,一种计算方式是Y=X1+X2,另一种计算方式是:Y=(X1+S)+(X2-S)。为了满足该要求2,本说明书实施例的方法正是利用了后一种计算思路。
此时,在本说明书一个实施例中,在步骤205之前,该方法进一步包括:步骤A:第一客户端得到该第一客户端对应的掩码。
需要说明的是,其中,参与所述模型训练的所有客户端对应的所有掩码的和小于预定值。进一步地,该所有客户端对应的所有掩码的和为0。因为该所有掩码的和小于预定值甚至可以是0,因此,可以保证后续通过掩码对梯度加密这一处理对各个客户端的梯度和的值的大小影响不大,甚至影响为0。这样,本步骤205的实现过程包括:第一客户端将本轮训练得到的梯度与该第一客户端对应的掩码进行相加,得到加密后的梯度。
每一个客户端都有自己对应的掩码,比如,参与基于联邦机器学习的模型训练方法的客户端有100个,那么,每一个客户端都会得到自己对应的掩码。为了进一步提高安全性,不同客户端对应的掩码不同。
在本说明书一个实施例中,参见图3,上述步骤A中的第一客户端得到该第一客户端对应的掩码的一种实现过程包括:
步骤301:第一客户端得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj)。
比如,参与基于联邦机器学习的模型训练方法的客户端有100个,那么,第一客户端是针对其他99个客户端分别生成对应该其他99个客户端的99个子掩码s(u,vj)。比如,s(u,v1)表示第一客户端生成的、对应于其他99个客户端中的客户端1的子掩码;同理,s(u,v2)表示第一客户端生成的、对应于其他99个客户端中的客户端2的子掩码;依次类推,s(u,v99)表示第一客户端生成的、对应于客户端99的子掩码。
步骤303:第一客户端得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u);其中,j为变量,取值为1至N;N为参与所述模型训练的所有客户端的数量减1;u表征第一客户端,vj表征参与所述模型训练的所有客户端中除了第一客户端之外的第j个客户端。
参与基于联邦机器学习的模型训练方法的所有客户端都会执行上述步骤301的处理,因此,其他每一个客户端也会生成对应第一客户端的子掩码。本步骤303中,第一客户端需要得到其他每一个客户端生成的、对应第一客户端的所有子掩码s(vj,u)。
比如,参与基于联邦机器学习的模型训练方法的客户端有100个,那么,第一客户端需要得到其他99个客户端各自生成的对应于第一客户端的99个子掩码s(vj,u)。其中,s(v1,u)表示其他99个客户端中的客户端1所生成的、对应于第一客户端的子掩码;s(v2,u)表示其他99个客户端中的客户端2所生成的、对应于第一客户端的子掩码;以此类推,s(v99,u)表示其他99个客户端中的客户端99所生成的、对应于第一客户端的子掩码。
比如,参与基于联邦机器学习的模型训练方法的客户端有100个,那么,执行完本步骤303之后,第一客户端则得到了自己生成的对应于其他99个客户端的99个子掩码,以及由其他99个客户端生成的对应于该第一客户端的99个子掩码,一共198个子掩码。
为了让参与模型训练的每一个客户端都得到其他各个客户端生成的对应于该每一个客户端的子掩码,在步骤301之后,第一客户端需要将其生成的所有子掩码都发送给云服务器或者第三方服务器,云服务器或者第三方服务器接收到之后,转发给对应的客户端。但是,如果让云服务器或者第三方服务器得到了子掩码的原文,那么,也可能会造成后续根据子掩码得到梯度原文的问题。因此,为了进一步增加安全性,在本说明书一个实施例中,可以对子掩码进行加密,发送给云服务器或者第三方服务器的都是加密后的子掩码。这样,云服务器或者第三方服务器不仅无法得到每一个客户端的梯度原文,也无法得到每一个客户端生成的子掩码的原文,大大提高了安全性。
为了实现云服务器或者第三方服务器无法得到子掩码原文的效果,该方法进一步包括:第一客户端生成该第一客户端对应的同态加密密钥对;其中,第一客户端对应的同态加密密钥对是第一客户端专用的同态加密密钥对,而不是各个客户端共用的同态加密密钥对,因此,不同客户端对应的同态加密密钥对不同;第一客户端将该第一客户端对应的同态加密密钥对中的公钥发送给转发服务器;以及第一客户端接收转发服务器发来的所述所有客户端中其他每一个客户端对应的公钥;
相应地,在步骤301之后,进一步包括:针对其他每一个客户端,第一客户端利用第j个客户端对应的公钥,对对应该第j个客户端的子掩码s(u,vj)进行加密,然后将加密后的s(u,vj)发送给转发服务器,以便由该转发服务器将加密后的s(u,vj)发送给对应的第j个客户端;
相应地,步骤303的过程包括:
第一客户端接收转发服务器发来的其他每一个客户端生成的、对应第一客户端的加密后的各个子掩码s(vj,u);
第一客户端利用该第一客户端对应的同态加密密钥对中的私钥,对各个加密后的子掩码s(vj,u)进行解密,得到各个子掩码s(vj,u)。
其中,上述转发服务器包括:云服务器,或者独立于云服务器的第三方服务器。
步骤305:第一客户端针对每一个变量j,分别计算s(u,vj)与s(vj,u)两者的差值,根据该差值得到p(u,vj)。
比如,参与基于联邦机器学习的模型训练方法的客户端有100个,即j=99,那么本步骤305中,需要计算出99个差值。即,对应其他99个客户端中的客户端1,需要计算出s(u,v1)与s(v1,u)两者的差值;对应其他99个客户端中的客户端2,需要计算出s(u,v2)与s(v2,u)两者的差值;以此类推,直至对应其他99个客户端中的客户端99,需要计算出s(u,v99)与s(v99,u)两者的差值。
需要说明的是,在计算s(u,v1)与s(v1,u)两者的差值时,谁作为减数或者被减数都可以,只要保证所有客户端计算所有两者的差值时采用相同的方法即可,比如都将自己生成的s(u,vj)作为减数,都将第j个客户端生成的s(vj,u)作为被减数。
在本说明书一个实施例中,本步骤305的实现过程采用方式一,包括:将计算出的差值直接作为p(u,vj)。
可替代的,在本说明书另一个实施例中,本步骤305的实现过程采用方式二,包括:将计算出的差值mod r,然后将取余的结果作为p(u,vj);其中,mod为取余运算,r为大于1的预设值。
在实际的业务实现中,参与模型训练的客户端的数量可能会非常多,比如有2万个客户端,那么,根据步骤305的处理,每一个客户端都需要计算19999个差值,然后在步骤307中再将该19999个差值相加,相加后得到的结果的数值会非常大,很可能超过了协议所能承载的最大数值。而后续云服务器又需要将2万个客户端得到的2万个掩码进行相加,每一个掩码又是上述19999个差值相加的和,因此,即使在一个客户端中掩码的数值不会超过协议所能承载的最大数值,但是后续云服务器需要计算的数值也可能会超过协议所能承载的最大数值。因此,为了进一步避免参与模型训练的客户端数量巨大时导致的数值范围越界的问题,本说明书实施例可以在步骤305中,每计算出一个差值时,就让该差值对r取余,这样,所有的差值相当于整体缩小了r倍,从而可以保证数值为协议所能承载的数值。其中,r可以尽量取一个较大值,从而尽可能对所有差值进行最大程度的限缩,比如,r为不小于200位的一个质数。
可以理解,取余的处理并不会对掩码和小于预定值或者掩码和等于0造成影响。无论是否利用差值取余,即无论采用方式一还是方式二,后续让所有客户端的所有掩码和小于预定值或者为0的效果是相同的。
比如,参与基于联邦机器学习的模型训练方法的客户端有100个,即j=99,那么,根据步骤307的处理,第一客户端需要计算99个p(u,vj)的和,将和值作为第一客户端对应的掩码。
根据上述图3所示流程可以看出,因为第一客户端对应的掩码是根据所有p(u,vj)的和得到的,而每一个p(u,vj)是根据s(u,vj)与s(vj,u)两者的差值得到的。这样,如果将所有客户端的所有掩码p(u,vj)相加,就会使得掩码值正负抵消,从而消除利用掩码对梯度加密的影响。
如前所述,在步骤205中,第一客户端将本轮训练得到的梯度与该第一客户端对应的掩码进行相加,得到加密后的梯度。比如,本轮训练中,第一客户端得到的梯度为x(u),第一客户端对应的掩码为步骤307中得到的∑vp(u,v),那么,在步骤205中,第一客户端计算y(u)=x(u)+∑vp(u,v),并将y(u)发送给云服务器。
接下来执行步骤207:第一客户端执行下一轮训练,直至全局模型收敛。
下面说明云服务器在基于联邦机器学习的模型训练中的处理。
图4是本说明书一个实施例中云服务器执行的基于联邦机器学***台、设备集群来执行。参见图4,该方法包括:
步骤401:在每一轮训练中,云服务器将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端。
步骤403:云服务器接收每一个客户端发来的加密后的全局模型的梯度。
步骤405:云服务器将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度。
步骤407:云服务器利用聚合后的梯度更新全局模型。
步骤409:云服务器执行下一轮训练,直至全局模型收敛。
对云服务器所执行的处理的说明也可以进一步参考结合图2、图3、图5对本说明书实施例所进行的说明。
下面结合客户端及云服务器的处理,说明在本说明书的一个实施例中基于联邦机器学习的模型训练方法。图5是本说明书一个实施例中由客户端及云服务器配合实现的基于联邦机器学习的模型训练方法的流程图。参见图5,该方法包括:
步骤501:每一个客户端生成该客户端对应的专用同态加密密钥对。
步骤503:每一个客户端将该客户端对应的同态加密密钥对中的公钥发送给云服务器。
步骤505:云服务器接收到各客户端发送的公钥后,将其广播给各个客户端,从而使得每一个客户端都得到了参与模型训练的所有客户端对应的公钥。
步骤507:第一客户端生成对应所有客户端中其他每一个客户端的各个子掩码s(u,vj)。
下述步骤中,为了便于描述,以第一客户端执行的处理为例进行说明。第一客户端执行的处理就是参与模型训练的每一个客户端执行的处理。
步骤509:对于其他N个客户端,第一客户端使用第j个客户端对应的公钥对第j个客户端对应的s(u,vj)进行加密,得到对应于第j个客户端的加密后的子掩码;其中j为变量,取值为1至N,N为参与模型训练的所有客户端的数量减1,然后将所有N个加密后的子掩码s(u,vj)发送给云服务器。
步骤511:云服务器将所有客户端发来的对应于第i个客户端的加密后的子掩码,发送给第i个客户端;其中,i为变量,取值为1至M;M为参与模型训练的所有客户端的数量。
步骤513:第一客户端接收到对应自己的各个加密后的子掩码,利用第一客户端对应的专用同态加密密钥对中的私钥对每一个加密后的子掩码进行解密,得到解密后的N个s(vj,u)。
步骤515:针对每一个变量j,第一客户端计算p(u,vj)=[s(u,vj)-s(vj,u)]mod r,得到N个p(u,vj)。
上述步骤501至步骤519的过程,可以是在每一个客户端启动时执行一次,后续每一轮训练中,直接利用N个掩码p(u,vj),即各轮训练中第一客户端利用的掩码相同。或者,上述步骤501至步骤517的过程,也可以是在每一轮训练中均执行一次,使得各轮训练中第一客户端利用的掩码不相同,进一步提高了安全性。
步骤519:在每一轮训练中,第一客户端接收云服务器下发的全局模型。
步骤521:第一客户端利用本地的私有数据训练出该全局模型的梯度记为x(u)。
步骤527:云服务器利用本轮训练中得到的聚合梯度T更新全局模型,以供所有客户端在下一轮训练中使用,直至全局模型收敛。
至此,则得到了全局模型。
本说明书实施例还提出一种业务预测方法,该方法包括:利用训练出的全局模型进行业务预测,比如进行风险用户识别等。
本说明书实施例还提出一种基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于所述至少两个客户端中的任意一个第一客户端,参见图6,该装置包括:
全局模型获取模块601,配置为在每一轮训练中,接收云服务器下发的全局模型;
梯度获取模块602,配置为在每一轮训练中,利用本地的私有数据训练出该全局模型的梯度;
加密模块603,配置为在每一轮训练中,对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;
各模块执行下一轮训练,直至全局模型收敛。
在本说明书装置的实施例中,参见图7,进一步包括:掩码获取模块701;
掩码获取模块701,配置为得到该装置所在的第一客户端对应的掩码;其中,参与模型训练的所有客户端对应的所有掩码的和小于预定值;
加密模块603在进行加密时被配置为执行:将本轮训练得到的梯度与该第一客户端对应的掩码进行相加,得到加密后的梯度。
在图6、7所示的本说明书装置的实施例中,所有客户端对应的所有掩码的和为0。
在图7所示的本说明书装置的实施例中,掩码获取模块701被配置为执行:
得到由所在的第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj);
得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u);其中,j为变量,取值为1至N;N为参与所述模型训练的所有客户端的数量减1;u表征第一客户端,vj表征参与所述模型训练的所有客户端中除了第一客户端之外的第j个客户端;
针对每一个变量j,分别计算s(u,vj)与s(vj,u)两者的差值,根据该差值得到p(u,vj);
在图7所示的本说明书装置的实施例中,掩码获取模块701被配置为执行:将该差值直接作为所述p(u,vj);或者,计算该差值mod r,将计算出的取余的结果作为所述p(u,vj);其中,mod为取余运算,r为大于1的预设值。
在图7所示的本说明书装置的实施例中,其中,所述r为不小于200位的质数。
在图7所示的本说明书装置的实施例中,掩码获取模块701进一步被配置为执行:生成第一客户端对应的同态加密密钥对;将该第一客户端对应的同态加密密钥对中的公钥发送给转发服务器;以及接收转发服务器发来的所述所有客户端中其他每一个客户端对应的公钥;
相应地,掩码获取模块701被配置为执行:
在得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj)之后,针对其他每一个客户端,利用第j个客户端对应的公钥,对对应该第j个客户端的子掩码s(u,vj)进行加密,然后将加密后的s(u,vj)发送给转发服务器;
接收转发服务器发来的其他每一个客户端生成的、对应第一客户端的加密后的各个子掩码s(vj,u);
利用该第一客户端对应的同态加密密钥对中的私钥,对各个加密后的子掩码s(vj,u)进行解密,得到各个子掩码s(vj,u)。
其中,转发服务器包括:所述云服务器,或者独立于所述云服务器的第三方服务器。
在本说明书一个实施例中提出了一种基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于云服务器,参见图8,该装置包括:
全局模型下发模块801,配置为在每一轮训练中,将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端;
梯度接收模块802,配置为在每一轮训练中,接收每一个客户端发来的加密后的全局模型的梯度;
梯度聚合模块803,配置为在每一轮训练中,将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度;
全局模型更新模块804,配置为在每一轮训练中,利用聚合后的梯度更新全局模型;
各模块执行下一轮训练,直至全局模型收敛。
本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置、***内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (12)
1.基于联邦机器学习的模型训练方法,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该方法应用于所述至少两个客户端中的任意一个第一客户端,包括:
在每一轮训练中,第一客户端接收云服务器下发的全局模型;
第一客户端利用本地的私有数据训练出该全局模型的梯度;
第一客户端对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;
第一客户端执行下一轮训练,直至全局模型收敛。
2.根据权利要求1所述的方法,其中,该方法进一步包括:第一客户端得到对应于该第一客户端的掩码;其中,参与所述模型训练的所有客户端对应的所有掩码的和小于预定值;
所述第一客户端对本轮训练得到的梯度进行加密,包括:
第一客户端将本轮训练得到的梯度与该第一客户端对应的掩码相加,得到加密后的梯度。
3.根据权利要求2所述的方法,其中,所述所有客户端对应的所有掩码的和为0。
4.根据权利要求3所述的方法,其中,所述第一客户端得到对应于该第一客户端的掩码,包括:
第一客户端得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj);
第一客户端得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u);其中,j为变量,取值为1至N;N为参与所述模型训练的所有客户端的数量减1;u表征第一客户端,vj表征参与所述模型训练的所有客户端中除了第一客户端之外的第j个客户端;
第一客户端针对每一个变量j,分别计算s(u,vj)与s(vj,u)两者的差值,根据该差值得到p(u,vj);
5.根据权利要求4所述的方法,其中,所述根据该差值得到p(u,vj),包括:
将该差值直接作为所述p(u,vj);
或者,
计算该差值mod r,将计算出的取余的结果作为所述p(u,vj);其中,mod为取余运算,r为大于1的预设值。
6.根据权利要求5所述的方法,其中,所述r为不小于200位的质数。
7.根据权利要求4所述的方法,其中,
该方法进一步包括:第一客户端生成该第一客户端对应的同态加密密钥对;第一客户端将该第一客户端对应的同态加密密钥对中的公钥发送给转发服务器;以及第一客户端接收转发服务器发来的所述所有客户端中其他每一个客户端对应的公钥;
相应地,在所述第一客户端得到由该第一客户端生成的、对应所述所有客户端中其他每一个客户端的各个子掩码s(u,vj)之后,进一步包括:针对所述其他每一个客户端,第一客户端利用第j个客户端对应的公钥,对对应该第j个客户端的子掩码s(u,vj)进行加密,然后将加密后的s(u,vj)发送给转发服务器;
相应地,所述第一客户端得到由所述其他每一个客户端生成的、对应第一客户端的各个子掩码s(vj,u),包括:
所述第一客户端接收转发服务器发来的其他每一个客户端生成的、对应第一客户端的加密后的各个子掩码s(vj,u);
第一客户端利用该第一客户端对应的同态加密密钥对中的私钥,对各个加密后的子掩码s(vj,u)进行解密,得到各个子掩码s(vj,u)。
8.根据权利要求7所述的方法,其中,所述转发服务器包括:所述云服务器,或者独立于所述云服务器的第三方服务器。
9.基于联邦机器学习的模型训练方法,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该方法应用于云服务器,包括:
在每一轮训练中,云服务器将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端;
云服务器接收每一个客户端发来的加密后的全局模型的梯度;
云服务器将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度;
云服务器利用聚合后的梯度更新全局模型;
云服务器执行下一轮训练,直至全局模型收敛。
10.基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于所述至少两个客户端中的任意一个第一客户端,该装置包括:
全局模型获取模块,配置为在每一轮训练中,接收云服务器下发的全局模型;
梯度获取模块,配置为在每一轮训练中,利用本地的私有数据训练出该全局模型的梯度;
加密模块,配置为在每一轮训练中,对本轮训练得到的梯度进行加密,然后将加密后的梯度发送给云服务器;
各模块执行下一轮训练,直至全局模型收敛。
11.基于联邦机器学习的模型训练装置,至少两个客户端以及至少一个云服务器参与基于联邦机器学习的模型训练,该装置应用于云服务器,该装置包括:
全局模型下发模块,配置为在每一轮训练中,将最新得到的全局模型下发给参与基于联邦机器学习的模型训练的每一个客户端;
梯度接收模块,配置为在每一轮训练中,接收每一个客户端发来的加密后的全局模型的梯度;
梯度聚合模块,配置为在每一轮训练中,将接收到的各个加密后的全局模型的梯度相加,得到聚合后的梯度;
全局模型更新模块,配置为在每一轮训练中,利用聚合后的梯度更新全局模型;
各模块执行下一轮训练,直至全局模型收敛。
12.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369556.9A CN115883053A (zh) | 2022-11-03 | 2022-11-03 | 基于联邦机器学习的模型训练方法和装置 |
PCT/CN2023/112501 WO2024093426A1 (zh) | 2022-11-03 | 2023-08-11 | 基于联邦机器学习的模型训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369556.9A CN115883053A (zh) | 2022-11-03 | 2022-11-03 | 基于联邦机器学习的模型训练方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883053A true CN115883053A (zh) | 2023-03-31 |
Family
ID=85759374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211369556.9A Pending CN115883053A (zh) | 2022-11-03 | 2022-11-03 | 基于联邦机器学习的模型训练方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115883053A (zh) |
WO (1) | WO2024093426A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117150566A (zh) * | 2023-10-31 | 2023-12-01 | 清华大学 | 面向协作学习的鲁棒训练方法及装置 |
CN117390448A (zh) * | 2023-10-25 | 2024-01-12 | 西安交通大学 | 一种用于云际联邦学习的客户端模型聚合方法及相关*** |
WO2024093426A1 (zh) * | 2022-11-03 | 2024-05-10 | 支付宝(杭州)信息技术有限公司 | 基于联邦机器学习的模型训练方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449872B (zh) * | 2020-03-25 | 2023-08-08 | 百度在线网络技术(北京)有限公司 | 基于联邦学习的参数处理方法、装置和*** |
CN112580821A (zh) * | 2020-12-10 | 2021-03-30 | 深圳前海微众银行股份有限公司 | 一种联邦学习方法、装置、设备及存储介质 |
CN114817958B (zh) * | 2022-04-24 | 2024-03-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于联邦学习的模型训练方法、装置、设备及介质 |
CN115021905B (zh) * | 2022-05-24 | 2023-01-10 | 北京交通大学 | 一种联邦学习本地模型更新参数聚合方法 |
CN115883053A (zh) * | 2022-11-03 | 2023-03-31 | 支付宝(杭州)信息技术有限公司 | 基于联邦机器学习的模型训练方法和装置 |
-
2022
- 2022-11-03 CN CN202211369556.9A patent/CN115883053A/zh active Pending
-
2023
- 2023-08-11 WO PCT/CN2023/112501 patent/WO2024093426A1/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024093426A1 (zh) * | 2022-11-03 | 2024-05-10 | 支付宝(杭州)信息技术有限公司 | 基于联邦机器学习的模型训练方法和装置 |
CN117390448A (zh) * | 2023-10-25 | 2024-01-12 | 西安交通大学 | 一种用于云际联邦学习的客户端模型聚合方法及相关*** |
CN117390448B (zh) * | 2023-10-25 | 2024-04-26 | 西安交通大学 | 一种用于云际联邦学习的客户端模型聚合方法及相关*** |
CN117150566A (zh) * | 2023-10-31 | 2023-12-01 | 清华大学 | 面向协作学习的鲁棒训练方法及装置 |
CN117150566B (zh) * | 2023-10-31 | 2024-01-23 | 清华大学 | 面向协作学习的鲁棒训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2024093426A1 (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112329041B (zh) | 部署合约的方法及装置 | |
US10778428B1 (en) | Method for restoring public key based on SM2 signature | |
CN115883053A (zh) | 基于联邦机器学习的模型训练方法和装置 | |
CN111654367B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN107483212A (zh) | 一种双方协作生成数字签名的方法 | |
CN112380578A (zh) | 一种基于区块链和可信执行环境的边缘计算框架 | |
CN111371790B (zh) | 基于联盟链的数据加密发送方法、相关方法、装置和*** | |
CN114219483B (zh) | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 | |
CN110880972A (zh) | 一种基于安全多方计算的区块链密钥管理*** | |
CN112818369B (zh) | 一种联合建模方法及装置 | |
CN113034135A (zh) | 基于区块链的信息处理方法、装置、设备、介质和产品 | |
CN113821789B (zh) | 基于区块链的用户密钥生成方法、装置、设备及介质 | |
CN109995739A (zh) | 一种信息传输方法、客户端、服务器及存储介质 | |
CN114301677B (zh) | 秘钥协商方法、装置、电子设备及存储介质 | |
CN116527279A (zh) | 工控网络中安全数据聚合的可验证联邦学习装置及方法 | |
US20240072996A1 (en) | System and method for key establishment | |
CN111737337B (zh) | 基于数据隐私保护的多方数据转换方法、装置及*** | |
CN111565108B (zh) | 签名处理方法、装置及*** | |
CN112003690B (zh) | 密码服务***、方法及装置 | |
CN115001719B (zh) | 隐私数据处理***、方法、装置、计算机设备及存储介质 | |
CN110035065A (zh) | 数据处理方法、相关装置及计算机存储介质 | |
CN115834038A (zh) | 基于国家商用密码算法的加密方法及装置 | |
CN115361196A (zh) | 一种基于区块链网络的业务交互方法 | |
CN114866312A (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
Kanchan et al. | Group signature based federated learning approach for privacy preservation |
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 |