掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的联邦学习方法及装置

文献发布时间:2023-06-19 11:45:49


一种基于区块链的联邦学习方法及装置

技术领域

本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种基于区块链的联邦学习方法及装置。

背景技术

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。

现有的基于同态加密的联邦学习方法一般是:各设备端利用本地数据集训练本地模型,得到各自训练后的本地模型梯度信息,并利用同态加密算法(比如Paillier算法等)对各自训练后的本地模型梯度信息进行加密,将各自加密后的本地模型梯度信息发送给服务端。然后,服务端在接收到各设备端发送的各自加密后的本地模型梯度信息后,按照预设的聚合方式对这些加密后的本地模型梯度信息进行聚合处理,得到处于加密状态的全局模型梯度信息(密文形式的全局模型梯度信息)。服务端将处于加密状态的全局模型梯度信息发送给各设备端,以使各设备端利用同态加密算法对各自所接收的处于加密状态的全局模型梯度信息进行解密,并基于解密后的全局模型梯度信息继续利用本地数据集训练本地模型,直至本地模型收敛或达到迭代训练次数为止,得到全局模型。然而,这种处理方式虽然利用同态加密为联邦学习提供了强大的隐私保障,但它执行复杂的加密操作(比如模乘或指数运算等),且该复杂的加密操作非常耗时,需要消耗大量计算资源。同时,复杂加密操作后会产生更大的密文,该密文在传输过程中比明文传输过程中所消耗的网络资源更多。

综上,目前亟需一种基于区块链的联邦学习方法,用以解决现有技术中存在对本地模型梯度信息进行同态加密所产生的计算开销大以及通信开销大的问题。

发明内容

本发明实施例提供了一种基于区块链的联邦学习方法及装置,用以解决现有技术中存在对本地模型梯度信息进行同态加密所产生的计算开销大以及通信开销大的问题。

第一方面,本发明实施例提供了一种基于区块链的联邦学习方法,包括:

第一节点基于本地训练数据对第i轮本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息;所述第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的;

所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息;

所述第一节点按照梯度合并规则,将所述各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息;

所述第一节点对所述n类第三子梯度信息分别进行同态加密,得到n类密文,并将所述n类密文发送给所述区块链;所述n类密文用于所述区块链中的聚合节点对第i+1轮联邦学习训练的各第一节点反馈的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文。

上述技术方案中,本发明中的技术方案一方面引入了区块链机制,将各第一节点产生的本地模型梯度密文以上链的方式存储至区块链中;同时,引入区块链中的聚合节点进行聚合处理,得到全局模型梯度密文并上链至区块链中。该方式基于区块链的去中心化以及可追溯特性可以确保各第一节点上传的本地模型梯度密文的完整性,并可以确保聚合处理各本地模型梯度密文过程的公开可验证性以及确保全局模型梯度密文的正确性,从而可以消除现有技术中服务端作恶的可能性。另一方面,各第一节点基于梯度裁剪量化规则对自身产生的本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息,并按照梯度合并规则,将各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息。然后对n类第三子梯度信息分别进行同态加密,得到n类密文。由于将训练后的本地模型梯度信息中各第一子梯度信息分别进行裁剪量化及合并处理,之后再进行同态加密,因此有助于降低同态加密所产生的计算资源消耗,并可以减少密文传输过程中所消耗的网络资源,从而可以解决现有技术中存在对本地模型梯度信息进行同态加密所产生的计算开销大以及通信开销大的问题。

可选地,在所述第一节点基于本地训练数据对第i轮本地模型进行训练之前,还包括:

所述第一节点对所述第i轮全局模型梯度信息密文进行同态解密,得到第i轮全局模型梯度信息;

所述第一节点确定所述第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值大于设定阈值。

上述技术方案中,在基于本地训练数据对第i轮本地模型进行训练之前,通过将第i轮全局模型梯度信息和第i-1轮全局模型梯度信息的差值与设定阈值进行比较,能够及时地获知当前的联邦学习训练状态,以此可以及时地确定是否需要进行第i+1轮联邦学习训练;同时在确定第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值小于等于设定阈值时,也可以避免后续再次进行联邦学习训练,从而避免联邦学习训练资源的浪费。

可选地,所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息,包括:

所述第一节点基于梯度裁剪算法分别对所述各第一子梯度信息进行裁剪处理,得到裁剪后的各第一子梯度信息;

所述第一节点基于梯度量化算法分别对所述裁剪后的各第一子梯度信息进行量化处理,得到所述各第二子梯度信息。

上述技术方案中,通过使用梯度裁剪算法以及梯度量化算法对各第一子梯度进行裁剪量化,可以使得各第一子梯度信息被简化,更便于后续的数据处理,从而有助于降低后续的同态加密运算的复杂度,并有助于减少同态加密运算所消耗的时间。

可选地,所述第一节点基于梯度量化算法分别对所述裁剪后的各第一子梯度信息进行量化处理,得到所述各第二子梯度信息,包括:

针对所述裁剪后的各第一子梯度信息中每个第一子梯度信息,所述第一节点将所述第一子梯度信息与梯度阈值进行比较;所述梯度阈值是根据所述裁剪后的各第一子梯度信息的分布规律确定的;

所述第一节点基于梯度量化规则,根据所述第一子梯度信息与所述梯度阈值的比较结果,确定所述第一子梯度信息对应的第二子梯度信息。

上述技术方案中,通过将裁剪后的各第一子梯度信息分别与阈值进行比较,可以实现对裁剪后的各第一子梯度信息的分类,如此便于后续基于分类结果及时准确地对裁剪后的各第一子梯度信息进行量化,以获得各第二子梯度信息。

可选地,在得到第i+1轮全局模型梯度密文之后,还包括:

所述第一节点从所述区块链获取所述第i+1轮全局模型梯度密文,并对所述第i+1轮全局模型梯度密文进行同态解密,得到第i+1轮全局模型梯度信息;

所述第一节点若确定所述第i+1轮全局模型梯度信息与所述第i轮全局模型梯度信息的差值小于等于所述设定阈值,则将所述第i+1轮全局模型梯度信息作为目标全局模型梯度信息,从而得到训练好的联邦学习模型。

上述技术方案中,通过将第i+1轮全局模型梯度信息和第i轮全局模型梯度信息的差值与设定阈值进行比较,可以及时地获知当前的联邦学习训练状态,以此可以及时地确定是否需要进行第i+2轮联邦学习训练。同时,在确定第i+1轮全局模型梯度信息与第i轮全局模型梯度信息的差值小于等于设定阈值时,就可以将第i+1轮全局模型梯度信息作为目标全局模型梯度信息,以此获得训练好的联邦学习模型。

第二方面,本发明实施例提供了一种基于区块链的联邦学习方法,包括:

聚合节点从区块链上获取各第一节点发送的各n类密文;第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述聚合节点是所述N个区块链节点中除所述各第一节点以外的其它节点中的任一个;

所述聚合节点对所述各第一节点的各n类密文中同类的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文,并将所述第i+1轮全局模型梯度密文发送给所述区块链;

其中,所述n类密文是所述第一节点对n类第三子梯度信息分别进行同态加密得到的;所述n类第三子梯度信息是所述第一节点按照梯度合并规则对各第二子梯度信息中每m个第二子梯度信息进行合并确定的;所述各第二子梯度信息是所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化得到的;所述第i+1轮本地模型梯度信息是所述第一节点基于本地训练数据对第i轮本地模型进行训练确定的;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的。

上述技术方案中,本发明中的技术方案一方面引入了区块链机制,区块链中的聚合节点是N个区块链节点中除各第一节点以外的其它节点中随机选取的任一个,如此可以确保聚合节点选取的随机性、不可预测性,进一步可以提升聚合处理的安全性。然后,基于聚合节点对上链的各第一节点产生的本地模型梯度密文进行聚合处理,得到全局模型梯度密文并上链至区块链中。同时,该方式基于区块链的去中心化以及可追溯特性可以确保聚合节点聚合处理各本地模型梯度密文过程的公开可验证性以及确保全局模型梯度密文的正确性,从而可以消除现有技术中服务端作恶的可能性。此外,第一节点将训练后的本地模型梯度信息中各第一子梯度信息分别进行裁剪量化及合并处理,之后再进行同态加密,如此有助于降低同态加密所产生的计算资源消耗,并可以减少密文传输过程中所消耗的网络资源。

可选地,所述聚合节点对所述各第一节点的n类密文中同类的密文进行聚合处理,包括:

所述聚合节点对所述各第一节点的签名分别进行验证;

所述聚合节点按照设定的聚合规则,对验证成功的至少两个第一节点所对应的至少两个n类密文中同类的密文进行聚合处理。

上述技术方案中,通过对各第一节点的签名进行验证,可以验证各第一节点上传的密文的真实性,并可以避免密文在发送过程中存在篡改的风险,从而可以验证各第一节点的身份信息的真实性,同时,可以将签名验证不成功的第一节点的密文进行筛除,以避免对后续的密文聚合处理产生干扰,影响聚合处理结果的准确性。此外,按照设定的聚合规则,对验证成功的至少两个第一节点的同类密文进行聚合处理,可以得到准确的全局模型梯度密文,并可以确保聚合处理结果的准确度高。

可选地,在将所述第i+1轮全局模型梯度密文发送给所述区块链之后,还包括:

所述聚合节点接收代理节点发送的全局模型梯度密文验证通过消息;所述代理节点是基于代理节点选取规则从所述各第一节点中选取的;所述全局模型梯度密文验证通过消息是所述代理节点在确定所述第i+1轮全局模型梯度密文与自己基于设定的聚合规则所确定的第i+1轮全局模型梯度密文一致时生成的;

所述聚合节点若确定所述代理节点针对第i+1轮全局模型梯度密文的验证符合设定要求,则将所述第i+1轮全局模型梯度密文对应的新区块添加至所述区块链。

上述技术方案中,在确定代理节点针对第i+1轮全局模型梯度密文的验证符合设定要求时,就可以确定该第i+1轮全局模型梯度密文是准确的,同时将该准确的第i+1轮全局模型梯度密文对应的新区块添加至区块链,以便各第一节点能够及时地从区块链上获取该准确的第i+1轮全局模型梯度密文,并基于该准确的第i+1轮全局模型梯度密文判断第i+1轮联邦学习训练是否已满足训练终止条件。

第三方面,本发明实施例提供了一种基于区块链的联邦学习装置,包括:

确定单元,用于基于本地训练数据对第i轮本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息;所述第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的;

第一处理单元,用于基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息;按照梯度合并规则,将所述各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息;对所述n类第三子梯度信息分别进行同态加密,得到n类密文,并将所述n类密文发送给所述区块链;所述n类密文用于所述区块链中的聚合节点对第i+1轮联邦学习训练的各第一节点反馈的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文。

可选地,所述第一处理单元还用于:

在基于本地训练数据对第i轮本地模型进行训练之前,对所述第i轮全局模型梯度信息密文进行同态解密,得到第i轮全局模型梯度信息;

确定所述第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值大于设定阈值。

可选地,所述第一处理单元具体用于:

基于梯度裁剪算法分别对所述各第一子梯度信息进行裁剪处理,得到裁剪后的各第一子梯度信息;

基于梯度量化算法分别对所述裁剪后的各第一子梯度信息进行量化处理,得到所述各第二子梯度信息。

可选地,所述第一处理单元具体用于:

针对所述裁剪后的各第一子梯度信息中每个第一子梯度信息,将所述第一子梯度信息与梯度阈值进行比较;所述梯度阈值是根据所述裁剪后的各第一子梯度信息的分布规律确定的;

基于梯度量化规则,根据所述第一子梯度信息与所述梯度阈值的比较结果,确定所述第一子梯度信息对应的第二子梯度信息。

可选地,所述第一处理单元还用于:

在得到第i+1轮全局模型梯度密文之后,从所述区块链获取所述第i+1轮全局模型梯度密文,并对所述第i+1轮全局模型梯度密文进行同态解密,得到第i+1轮全局模型梯度信息;

若确定所述第i+1轮全局模型梯度信息与所述第i轮全局模型梯度信息的差值小于等于所述设定阈值,则将所述第i+1轮全局模型梯度信息作为目标全局模型梯度信息,从而得到训练好的联邦学习模型。

第四方面,本发明实施例提供了一种基于区块链的联邦学习装置,包括:

获取单元,用于从区块链上获取各第一节点发送的各n类密文;第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述聚合节点是所述N个区块链节点中除所述各第一节点以外的其它节点中的任一个;

第二处理单元,用于对所述各第一节点的各n类密文中同类的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文,并将所述第i+1轮全局模型梯度密文发送给所述区块链;其中,所述n类密文是所述第一节点对n类第三子梯度信息分别进行同态加密得到的;所述n类第三子梯度信息是所述第一节点按照梯度合并规则对各第二子梯度信息中每m个第二子梯度信息进行合并确定的;所述各第二子梯度信息是所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化得到的;所述第i+1轮本地模型梯度信息是所述第一节点基于本地训练数据对第i轮本地模型进行训练确定的;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的。

可选地,所述第二处理单元具体用于:

对所述各第一节点的签名分别进行验证;

按照设定的聚合规则,对验证成功的至少两个第一节点所对应的至少两个n类密文中同类的密文进行聚合处理。

可选地,所述第二处理单元还用于:

在将所述第i+1轮全局模型梯度密文发送给所述区块链之后,接收代理节点发送的全局模型梯度密文验证通过消息;所述代理节点是基于代理节点选取规则从所述各第一节点中选取的;所述全局模型梯度密文验证通过消息是所述代理节点在确定所述第i+1轮全局模型梯度密文与自己基于设定的聚合规则所确定的第i+1轮全局模型梯度密文一致时生成的;

若确定所述代理节点针对第i+1轮全局模型梯度密文的验证符合设定要求,则将所述第i+1轮全局模型梯度密文对应的新区块添加至所述区块链。

第五方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面或第二方面任意所述的基于区块链的联邦学习方法。

第六方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面或第二方面任意所述的基于区块链的联邦学习方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种联邦学习系统架构的示意图;

图2为本发明实施例提供的一种基于区块链的联邦学习方法的流程示意图;

图3为本发明实施例提供的另一种基于区块链的联邦学习方法的流程示意图;

图4为本发明实施例提供的一种基于区块链的联邦学习装置的结构示意图;

图5为本发明实施例提供的另一种基于区块链的联邦学习装置的结构示意图;

图6为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为了便于理解本发明实施例,首先以图1中示出的系统架构为例说明适用于本发明实施例的联邦学习系统架构。该联邦学习系统架构可以应用于信贷逾期模型的训练、用户资产风控模型的训练、用户产品推荐模型的训练等,在实际应用场景中,本发明实施例对此并不作限定。如图1所示,该联邦学习系统架构可以包括至少一个第一节点(比如第一节点101、第一节点102和第一节点103等)、区块链200和至少一个聚合节点(比如聚合节点301、聚合节点302和聚合节点303等)。其中,至少一个聚合节点组成为聚合委员会,聚合委员会与区块链200进行连接,且每个第一节点分别与区块链200进行连接,比如可以通过有线方式连接,或者通过无线方式连接,具体不作限定。

其中,第一节点用于参与联邦学习模型的训练。比如,第一节点参与第i轮联邦学习的训练,首先会从区块链200上获取第i-1轮全局模型梯度密文,并基于本地训练数据对第i-1轮全局模型梯度密文对应的本地模型进行训练,再将训练结果(即第i轮本地模型梯度)进行同态加密后上传至区块链200。

聚合节点用于参与联邦学习模型的训练结果的聚合。比如,聚合节点参与第i轮联邦学习的训练结果的聚合,首先会从区块链200上获取各第一节点上传的第i轮本地模型梯度密文,并对各第一节点上传的第i轮本地模型梯度密文进行聚合处理,以便得到第i轮全局模型梯度密文,再将第i轮全局模型梯度密文上传至区块链200。

区块链200会记录第一节点上传的本地模型梯度密文以及聚合节点上传的全局模型梯度密文,以便需要相应密文的区块链节点可以从该区块链200获取。比如,区块链200记录第一节点上传的第i轮本地模型梯度密文以及聚合节点上传的第i轮全局模型梯度密文。

需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。

基于上述描述,图2示例性的示出了本发明实施例提供的一种基于区块链的联邦学习方法的流程,该流程可以由基于区块链的联邦学习装置执行。

如图2所示,该流程具体包括:

步骤201,第一节点从区块链上获取第i轮全局模型梯度密文。

步骤202,所述第一节点基于本地训练数据对所述第i轮全局模型梯度密文对应的本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息。

步骤203,所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息。

步骤204,所述第一节点按照梯度合并规则,将所述各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息。

步骤205,所述第一节点对所述n类第三子梯度信息分别进行同态加密,得到n类密文。

步骤206,所述第一节点将所述n类密文发送给所述区块链。

步骤207,聚合节点从所述区块链上获取各第一节点发送的各n类密文。

步骤208,所述聚合节点对所述各第一节点的各n类密文中同类的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文。

步骤209,所述聚合节点将所述第i+1轮全局模型梯度密文发送给所述区块链。

上述步骤201和202中,第一节点从区块链上获取第i轮全局模型梯度密文,并基于本地训练数据对第i轮全局模型梯度密文对应的本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息。具体地,第一节点在接收到第i轮聚合节点发送的第i轮全局模型梯度密文对应的区块已上传至区块链的通知消息之后,从区块链上获取第i轮全局模型梯度密文。之后,对第i轮全局模型梯度信息密文进行同态解密,得到第i轮全局模型梯度信息,并确定第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值是否小于等于设定阈值。若确定第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值小于等于设定阈值,则将第i轮全局模型梯度信息作为目标全局模型梯度信息,从而得到训练好的联邦学习模型。若确定第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值大于设定阈值,则需要进行第i+1轮联邦学习训练。如此,在基于本地训练数据对第i轮本地模型进行训练之前,通过将第i轮全局模型梯度信息和第i-1轮全局模型梯度信息的差值与设定阈值进行比较,就可以及时地获知当前的联邦学习训练状态,以此可以及时地确定是否需要进行第i+1轮联邦学习训练;同时在确定第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值小于等于设定阈值时,也可以避免后续再次进行联邦学习训练,从而避免联邦学习训练资源的浪费。然后,基于本地训练数据对第i轮全局模型梯度信息对应的本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息。其中,第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;设定阈值可以由本领域技术人员根据实验结果或根据经验或者可以根据实际应用场景进行设置,本发明实施例对此并不作限定。

上述步骤203和204中,第一节点基于梯度裁剪量化规则对第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息,并按照梯度合并规则,将各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息。具体地,第一节点基于梯度裁剪算法分别对各第一子梯度信息进行裁剪处理,得到裁剪后的各第一子梯度信息,并基于梯度量化算法分别对裁剪后的各第一子梯度信息进行量化处理,得到各第二子梯度信息。再按照梯度合并规则,将各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息。比如,假设有50个第二子梯度信息,可以依次将该50个第二子梯度信息按照每10个一组的形式,分成5组,针对每个组,将该组所包含的子梯度信息进行合并,从而可以形成5类第三子梯度信息。如此,通过使用梯度裁剪算法以及梯度量化算法对各第一子梯度进行裁剪量化,可以使得各第一子梯度信息被简化,更便于后续的数据处理,从而有助于降低后续的同态加密运算的复杂度,并有助于减少同态加密运算所消耗的时间。同时,将各第二子梯度信息中每m个子梯度信息合并成为一个梯度信息,如此可以使得后续进行同态加密的子梯度信息的数据量减少,从而使得同态加密后的密文数量减少,以此可以降低同态加密所产生的计算资源消耗,并可以减少密文传输过程中所消耗的网络资源。

其中,第一节点基于梯度量化算法分别对裁剪后的各第一子梯度信息进行量化处理的实施过程具体为:针对裁剪后的各第一子梯度信息中每个第一子梯度信息,第一节点将第一子梯度信息与梯度阈值进行比较,并基于梯度量化规则,根据第一子梯度信息与梯度阈值的比较结果,确定第一子梯度信息对应的第二子梯度信息。如此,通过将裁剪后的各第一子梯度信息分别与阈值进行比较,可以实现对裁剪后的各第一子梯度信息的分类,如此便于后续基于分类结果及时准确地对裁剪后的各第一子梯度信息进行量化,以获得各第二子梯度信息。其中,梯度阈值是根据裁剪后的各第一子梯度信息的分布规律确定的。

一种梯度量化规则为:若确定第一子梯度信息大于梯度阈值,则将第一子梯度信息设置为第一值;若确定第一子梯度信息小于等于梯度阈值的绝对值,则将第一子梯度信息设置为第二值;若确定第一子梯度信息小于梯度阈值的负数,则将第一子梯度信息设置为第三值,从而可以得到各第一子梯度信息对应的各第二子梯度信息。

另一种梯度量化规则为:若确定第一子梯度信息大于零,则将第一子梯度信息设置为第四值;若确定第一子梯度信息小于等于零,则将第一子梯度信息设置为第五值,从而可以得到各第一子梯度信息对应的各第二子梯度信息。

上述步骤205和206中,第一节点对n类第三子梯度信息分别进行同态加密,得到n类密文,并将n类密文发送给区块链。具体地,第一节点根据同态加密算法(比如Paillier同态加密算法、Gentry同态加密算法等)分别对n类第三子梯度信息进行加密,得到n类密文,然后将n类密文发送给区块链。

示例性地,比如有20个第一子梯度信息,第一节点基于梯度裁剪算法分别对该20个第一子梯度信息进行裁剪处理,得到裁剪后的20个第一子梯度信息。再基于梯度量化算法分别对裁剪后的20个第一子梯度信息进行量化处理,得到20个第二子梯度信息。然后,按照梯度合并规则,将20个第二子梯度信息中每2个第二子梯度信息进行合并,得到10个第三子梯度信息。最后利用Paillier同态加密算法对该10个第三子梯度信息分别进行加密,得到10类密文,并将该10类密文发送给区块链。相比现有技术中直接利用Paillier同态加密算法将20个第一子梯度信息进行加密,得到20类密文,本发明的技术方案可以显著降低同态加密所产生的计算资源消耗,同时可以显著降低密文传输数量,从而实现高效率的联邦学习。

上述步骤207、208和209中,聚合节点从区块链上获取各第一节点发送的各n类密文,并对各第一节点的各n类密文中同类的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文,之后将第i+1轮全局模型梯度密文发送给区块链。如此,本发明中的技术方案一方面引入了区块链机制,区块链中的聚合节点是N个区块链节点中除各第一节点以外的其它节点中随机选取的任一个,如此可以确保聚合节点选取的随机性、不可预测性,进一步可以提升聚合处理的安全性。然后,基于聚合节点对上链的各第一节点产生的本地模型梯度密文进行聚合处理,得到全局模型梯度密文并上链至区块链中。同时,该方式基于区块链的去中心化以及可追溯特性可以确保聚合节点聚合处理各本地模型梯度密文过程的公开可验证性以及确保全局模型梯度密文的正确性,从而可以消除现有技术中服务端作恶的可能性。其中,聚合节点是N个区块链节点中除各第一节点以外的其它节点中的任一个。

具体地,聚合节点在从区块链上获取各第一节点发送的各n类密文之后,首先对各第一节点的签名分别进行验证,得到验证成功的至少两个第一节点。再按照设定的聚合规则,对验证成功的至少两个第一节点所对应的至少两个n类密文中同类的密文进行聚合处理,以此得到第i+1轮全局模型梯度密文。基于此,通过对各第一节点的签名进行验证,可以验证各第一节点上传的密文的真实性,并可以避免密文在发送过程中存在篡改的风险,从而可以验证各第一节点的身份信息的真实性,同时,可以将签名验证不成功的第一节点的密文进行筛除,以避免对后续的密文聚合处理产生干扰,影响聚合处理结果的准确性。此外,按照设定的聚合规则,对验证成功的至少两个第一节点的同类密文进行聚合处理,可以得到准确的全局模型梯度密文,并可以确保聚合处理结果的准确度高。

示例性地,假设有10个第一节点,每个第一节点发送给区块链的密文有10类。聚合节点在从区块链上获取10个第一节点各自发送的10类密文之后,首先对10个第一节点的签名分别进行验证,得到验证成功的8个第一节点。其中,2个第一节点的签名验证失败。再按照设定的聚合规则,对8个10类密文中同类的密文进行聚合处理,以此得到第i+1轮全局模型梯度密文。

在将第i+1轮全局模型梯度密文发送给区块链之后,聚合节点会接收代理节点发送的全局模型梯度密文验证通过消息。再基于该全局模型梯度密文验证通过消息,在确定代理节点针对第i+1轮全局模型梯度密文的验证符合设定要求时,将第i+1轮全局模型梯度密文对应的新区块添加至区块链;在确定代理节点针对第i+1轮全局模型梯度密文的验证不符合设定要求时,会根据货币惩罚机制惩罚代理节点。其中,全局模型梯度密文验证通过消息是代理节点在确定第i+1轮全局模型梯度密文与自己基于设定的聚合规则所确定的第i+1轮全局模型梯度密文一致时生成的;代理节点是基于代理节点选取规则从各第一节点中选取的。

需要说明的是,在得到第i+1轮全局模型梯度密文之后,第一节点从区块链获取第i+1轮全局模型梯度密文,并对第i+1轮全局模型梯度密文进行同态解密,得到第i+1轮全局模型梯度信息。再将第i+1轮全局模型梯度信息和第i轮全局模型梯度信息的差值与设定阈值进行比较,并基于比较结果可以及时地获知当前的联邦学习训练状态,以此可以及时地确定是否需要进行第i+2轮联邦学习训练。若确定第i+1轮全局模型梯度信息与第i轮全局模型梯度信息的差值小于等于设定阈值,就可以将第i+1轮全局模型梯度信息作为目标全局模型梯度信息,以此获得训练好的联邦学习模型。若确定第i+1轮全局模型梯度信息与第i轮全局模型梯度信息的差值大于设定阈值,则需要进行第i+2轮联邦学习训练,直至满足训练终止条件(当前轮的全局模型梯度信息与上一轮的全局模型梯度信息的差值小于等于设定阈值),以此得到训练好的联邦学习模型。

有鉴于此,下面结合图3,对本发明实施例中基于区块链的联邦学习方法的实施过程进行具体描述。其中,图3为本发明实施例提供的另一种基于区块链的联邦学习方法的流程示意图。此外,需要说明的是,每个客户端节点在训练全局模型的时候通常会得到多个本地模型梯度(即多个模型参数),且每个本地模型梯度可以包括多个子梯度。比如,某一客户端节点的某一本地模型梯度为W

Step1:区块链系统初始化。

下面对本发明实施例中区块链系统初始化的实施过程进行描述。

a、构建Paillier加密系统,并基于Paillier加密系统为区块链系统中各客户端节点生成用于各自本地模型梯度加密的公钥pk

需要说明的是,除了基于Paillier加密系统进行同态加密,也可以采用其它同态加密算法(比如支持使用SIMD操作、能直接对双精度浮点类型的实数甚至复数进行编码,加密和运算的CKKS方法等)进行同态加密。

b、每个客户端节点从去零的模q剩余类Z

c、每个客户端节点从去零的模q剩余类Z

d、每个客户端节点从它的n个公钥{pk

e、生成创世区块。

Step2:确定联邦学习的第0轮全局模型梯度。

下面对本发明实施例中确定联邦学习的第0轮全局模型梯度的实施过程进行描述。

a、基于参数选取规则,随机选取出一个长度为d比特的字符串,并将该字符串作为选取第0轮领导者所需的参数s

b、从K个参与联邦学习的客户端节点中随机选取出百分之N的客户端节点,并将该百分之N的客户端节点组成为第0轮聚合委员会,而剩下的客户端节点则作为工作者,用于参与联邦学习模型的训练。其中,N∈[10,20]。

示例性地,针对某一金融类场景(比如银行零售信贷中风控服务场景、信用卡贷前贷中风控服务场景等)的联邦学习,有100个客户端节点参与该某一金融类场景的联邦学习。首先,从该100个客户端节点中随机选取出10个或20个客户端节点来组成为第0轮聚合委员会。再将该100个客户端节点中未被随机选中的90个或80个客户端节点确定为工作者,以用于参与针对某一金融类场景的联邦学习模型的训练。

c、基于Algorand共识协议,从所有工作者中确定出第0轮领导者。

具体地,调用Algorand共识协议中的领导者选择函数Sor(·)和领导者验证函数Ver(·),从所有工作者中选择出一个工作者,作为第0轮领导者。

其中,领导者选择函数Sor(·)和领导者验证函数Ver(·)可以表示为:

Sor(SK

Ver(PK

其中,PK

d、第0轮聚合委员会随机初始化出一个用于联邦学习的第0轮全局模型梯度W

e、第0轮聚合委员会通过智能合约中的添加函数,将第0轮联邦学习的全局模型梯度W

f、第0轮聚合委员会中的全体成员使用gossip协议将全局模型梯度W

示例性地,针对第0轮聚合委员会中每个成员,该成员可以使用gossip协议周期性(比如1秒、2秒、5秒等)地将全局模型梯度W

需要说明的是,在将该百分之N的客户端节点组成为第0轮聚合委员会后,也可以将K个参与联邦学习的客户端节点都作为工作者,用于参与联邦学习模型的训练。也就是说,该百分之N的客户端节点有两个身份,即作为第0轮聚合委员会中的成员和用于参与联邦学习模型的训练的工作者。示例性地,从该100个客户端节点中随机选取出10个或20个客户端节点来组成为第0轮聚合委员会后,将该100个客户端节点都作为工作者,以用于参与针对某一金融类场景的联邦学习模型的训练。

Step3:确定每个工作者的各第i+1轮本地模型梯度密文。

下面以全局模型中的一个本地模型梯度为例,对本发明实施例中每个工作者确定本地模型梯度密文的实施过程进行描述。其中,每个工作者针对该全局模型中的其它本地模型梯度都可以按照该本地模型梯度的处理过程进行处理,以得到各自对应的各本地模型梯度密文,在此不再赘述。

a、针对参与第i+1轮联邦学习的训练的各工作者中每个工作者,该工作者可以利用预设的梯度下降方法(比如随机梯度下降方法、全量梯度下降法、小批量梯度下降法、Momentum梯度下降法、NAG梯度下降法等),对第i轮全局模型梯度对应的全局模型进行训练,得到该工作者的第i+1轮本地模型梯度。其中,i表示计数器,且i的初始值为0;第i+1轮本地模型梯度包括多个子梯度。

示例性地,该工作者可以采用随机梯度下降方法,基于本地训练数据集,对第i轮全局模型梯度对应的全局模型进行训练,得到该工作者的第i+1轮本地模型梯度。其中,全局模型网络结构可以为CNN(Convolutional Neural Network)卷积神经网络结构、ResNet(Residual Neural Network)残差网络结构、VGG-Net(Visual Geometry Group Network)深度卷积网络等。此外,随机梯度下降方法可以满足下述形式:

其中,

b、每个工作者利用梯度裁剪算法,将自身生成的第i+1轮本地模型梯度进行裁剪,得到裁剪后的第i+1轮本地模型梯度。

具体地,每个工作者利用梯度裁剪公式,将自身生成的第i+1轮本地模型梯度中各第一子梯度的梯度值裁剪到[-1,1]范围内。其中,梯度裁剪公式满足下述形式:

其中,

需要说明的是,在本发明实施例中,比如全局模型为卷积神经网络,则对于卷积神经网络来说,l可以通过输入的本地训练数据集的尺寸、卷积层中神经元的感受野尺寸、步长、滤波器数量和零填充的数量等计算出来。

c、确定裁剪后的第i+1轮本地模型梯度的阈值。

具体地,每个工作者根据自身的裁剪后的第i+1轮本地模型梯度中各第一子梯度的分布特征,计算出该工作者的第i+1轮本地模型梯度的阈值。

示例性地,如果第k个工作者的裁剪后的第i+1轮本地模型梯度中各第一子梯度的分布是正态分布和平均分布组合,则该工作者的第i+1轮本地模型梯度的阈值Δ

d、每个工作者利用梯度量化算法,将自身的裁剪后的第i+1轮本地模型梯度中各第一子梯度进行量化处理。

具体地,每个工作者可以利用梯度多值量化公式,将自身的裁剪后的第i+1轮本地模型梯度的第j个第一子梯度

其中,

或者,每个工作者不需要确定裁剪后的第i+1轮本地模型梯度的阈值,可以直接利用梯度二值量化公式,将自身的裁剪后的第i+1轮本地模型梯度的第j个第一子梯度

e、每个工作者利用公钥pk,对量化后的第i+1轮本地模型梯度进行批量同态加密,得到多个第i+1轮梯度密文。

具体地,每个工作者按照预设的梯度合并规则将量化后的第i+1轮本地模型梯度中各第二子梯度

需要说明的是,本发明实施例中每个工作者在进行批量同态加密时所使用的公钥相同,在进行同态解密时所使用的私钥不相同,是每个工作者自己所拥有的私钥。当然,在实际实施过程中,每个工作者也可以都拥有自己的公私钥对,即,每个工作者在进行批量同态加密时所使用的公钥不相同,在进行同态解密时所使用的私钥不相同。

示例性地,针对每个工作者,该工作者自身的量化后的第i+1轮本地模型梯度中有100个第二子梯度,即,

新子梯度

新子梯度

新子梯度

其中,r可以取10、11等,比如r取11,则新子梯度

或者,也可以按照预设的梯度合并规则将每10个第二子梯度合并为一个新子梯度,如此可以确定出10个新子梯度。再利用公钥pk对该10个新子梯度进行同态加密,得到10个第i+1轮梯度密文。或者,也可以按照预设的梯度合并规则将每20个第二子梯度合并为一个新子梯度,如此可以确定出5个新子梯度。再利用公钥pk对该5个新子梯度进行批量同态加密,得到5个第i+1轮梯度密文。在具体实施过程中,本领域技术人员可以依据经验或具体的应用场景对m的数值进行设置,本发明实施例对此并不作限定。

基于此可知,相比现有技术未对第i+1轮本地模型梯度进行裁剪量化,且直接利用公钥pk对第i+1轮本地模型梯度中所包含的100个子梯度都进行同态加密,得到100个梯度密文,再将该100个梯度密文传输给服务端进行聚合处理。由于现有技术针对100个子梯度都进行同态加密,因此需要消耗大量的同态加密运算资源,且同态加密运算非常耗时,从而增加联邦学习的时间成本,并导致联邦学习的效率降低。此外,由于现有技术针对100个子梯度都进行同态加密,导致产生的梯度密文数量很多(100个第i+1轮梯度密文),在将该100个第i+1轮梯度密文传输给服务端的过程中需要消耗大量的网络资源,使得联邦学习的通信开销大幅增加。

然而,本发明实施例通过对第i+1轮本地模型梯度中各子梯度进行裁剪量化,比如对第i+1轮本地模型梯度中的100个子梯度进行裁剪量化,再按照预设的梯度合并规则将裁剪量化后的第i+1轮本地模型梯度中的100个子梯度中每5个子梯度进行合并,确定出20个新子梯度。再利用公钥pk对该20个新子梯度进行批量同态加密,得到20个第i+1轮梯度密文。如此,由于对第i+1轮本地模型梯度中100个子梯度进行裁剪量化,因此会使得该100个子梯度各自的梯度值被简化,更便于后续的数据处理,有助于降低后续的同态加密运算的复杂度,同时也有助于减少同态加密运算所消耗的时间,从而可以提高同态加密运算的效率。此外,通过按照预设的梯度合并规则将裁剪量化后的第i+1轮本地模型梯度中100个子梯度每5个子梯度进行合并,并对合并后的20个新子梯度进行批量同态加密,或者,也可以通过按照预设的梯度合并规则将裁剪量化后的第i+1轮本地模型梯度中100个子梯度每20个子梯度进行合并,并对合并后的5个新子梯度进行批量同态加密,如此,与现有技术加密单个子梯度相比,可以显著降低同态加密所产生的计算资源消耗,同时可以显著降低密文传输数量(即减少密文传输过程中所消耗的网络资源),从而实现高效率的联邦学习。

f、每个工作者利用签名算法,确定多个第i+1轮梯度密文的签名。

具体地,每个工作者利用签名算法(比如RSA数字签名算法、ELGamal数字签名算法、DSA数字签名算法等)对多个第i+1轮梯度密文

g、每个工作者将多个第i+1轮梯度密文以及多个第i+1轮梯度密文的签名上传至区块链。

具体地,每个工作者可以将多个第i+1轮梯度密文

Step4:将每个工作者的各第i+1轮本地模型梯度密文分别进行聚合,确定出每个第i+1轮本地模型梯度密文所对应的第i+1轮全局模型梯度密文。

下面对本发明实施例中将每个工作者的各第i+1轮本地模型梯度密文分别进行聚合的实施过程进行描述。其中,基于Step3可以得到每个工作者的各第i+1轮本地模型梯度对应的各第i+1轮本地模型梯度密文;每个第i+1轮本地模型梯度密文可以包括多个第i+1轮梯度密文。

a、生成选取第i+1轮领导者所需的参数。

具体地,可以按照下述方式生成选取第i+1轮领导者所需的参数s

s

b、从K个参与联邦学习的客户端节点中随机选取出百分之N的客户端节点,并将该百分之N的客户端节点组成为第i+1轮聚合委员会,而剩下的客户端节点则作为工作者,用于参与联邦学习模型的训练。示例性地,有100个客户端节点参与某一金融类场景的联邦学习,从该100个客户端节点中随机选取出15个客户端节点来组成为第i+1轮聚合委员会。再将该100个客户端节点中未被随机选中的85个客户端节点确定为工作者,以用于参与针对某一金融类场景的联邦学习模型的训练。

然后,调用Algorand共识协议中的领导者选择函数Sor(·)和领导者验证函数Ver(·),从所有工作者中选择出一个工作者,作为第i+1轮领导者。

其中,领导者选择函数Sor(·)和领导者验证函数Ver(·)可以表示为:

Sor(SK

Ver(PK

c、创建一个包含所有工作者交易的新区块。

d、针对每个第i+1轮本地模型梯度密文,第i+1轮聚合委员会验证每个工作者签名的有效性,并记录签名验证成功的工作者的多个第i+1轮梯度密文。

具体地,针对每个第i+1轮本地模型梯度密文,第i+1轮聚合委员会中每个成员都会参与验证各工作者的签名,即,第i+1轮聚合委员会中每个成员都会从区块链上获取各工作者的签名(比如从区块链上获取各工作者针对每个第i+1轮本地模型梯度密文中多个第i+1轮梯度密文的签名),针对各工作者中每个工作者,在确定该工作者的签名验证成功后,会记录并存储该工作者的n个第i+1轮梯度密文。由于是第i+1轮聚合委员会中每个成员都会参与验证各工作者的签名的有效性,因此会采取针对该工作者的签名验证成功的成员数量达到一定要求后,才会确定该工作者的签名的验证是成功的。比如,第i+1轮聚合委员会中15个成员,针对该工作者的签名验证成功的成员数量超过三分之二(即超过10个成员),则确认该工作者的签名的验证是成功的。

或者,也可以从第i+1轮聚合委员会中随机选取出一个代理者或指定一个代理者,用于负责验证各工作者的签名的有效性。或者,也可以从第i+1轮聚合委员会中随机选取出两个代理者或指定两个代理者,用于负责验证各工作者的签名的有效性。在具体实施过程中,本领域技术人员可以依据具体的应用场景进行相应调整,本发明实施例对此并不作限定。

e、针对每个第i+1轮本地模型梯度密文,第i+1轮聚合委员会按照设定的安全聚合规则,对签名验证成功的多个工作者的所有第i+1轮梯度密文进行聚合处理,确定出每个第i+1轮本地模型梯度密文所对应的第i+1轮全局模型梯度密文。

具体地,针对任一第i+1轮本地模型梯度密文,假设签名验证成功的工作者有ρ个。则第i+1轮聚合委员会按照设定的安全聚合规则,对ρ个n类第i+1轮梯度密文中同类的梯度密文进行聚合处理,确定出该第i+1轮本地模型梯度密文所对应的第i+1轮全局模型梯度密文

全局子梯度密文

全局子梯度密文

全局子梯度密文

其中,

示例性地,针对任一第i+1轮本地模型梯度密文,继续以每个工作者上传至区块链的第i+1轮梯度密文有20个为例,而且签名验证成功的工作者有80个。则第i+1轮聚合委员会按照设定的安全聚合规则,对80个20类第i+1轮梯度密文中同类的梯度密文进行聚合处理,确定出第i+1轮全局模型梯度密文。其中,该第i+1轮全局模型梯度密文包括20个全局子梯度密文。

需要说明的是,除了上述所描述的安全聚合规则,还可以采用其它安全聚合规则(比如Krum聚合方法、修剪均值聚合方法、中值聚合方法等)对ρ个n类第i+1轮梯度密文中同类的梯度密文进行聚合处理。

Step5:对各第i+1轮本地模型梯度密文所对应的第i+1轮全局模型梯度密文进行验证。

下面对本发明实施例中将各第i+1轮本地模型梯度密文所对应的第i+1轮全局模型梯度密文进行验证的实施过程进行描述。

a、第i+1轮聚合委员会通过交易,将各第i+1轮全局模型梯度密文

b、针对每个第i+1轮全局模型梯度密文,第i+1轮领导者按照设定的安全聚合规则,重新对签名验证成功的多个工作者的所有第i+1轮梯度密文进行聚合处理,确定出新的第i+1轮全局模型梯度密文

c、第i+1轮聚合委员会基于包含所有工作者交易的新区块,利用多数投票策略确定第i+1轮领导者处理的交易是否正确。若确定正确,则将奖励发送给第i+1轮领导者,并将正确的各第i+1轮全局模型梯度密文对应的新区块通过智能合约中的添加函数加入到区块链。然后,第i+1轮聚合委员会的全体成员使用gossip协议将各第i+1轮全局模型梯度密文对应的新区块已上传至区块链的消息通知给除自身以外的其它参与联邦学习的客户端节点。示例性地,针对第i+1轮聚合委员会中每个成员,该成员可以使用gossip协议周期性(比如1秒、2秒、5秒等)地将各第i+1轮全局模型梯度密文

若确定不正确,则将包含所有工作者交易的新区块进行丢弃,并根据货币惩罚机制惩罚领导者,并重新执行Step4至Step5的处理过程。

Step6:确定当前最新区块中的各第i+1轮全局模型梯度密文是否满足联邦学习模型的训练终止条件。

下面对本发明实施例中每个工作者确定当前最新区块中的各第i+1轮全局模型梯度密文是否满足联邦学习模型的训练终止条件的实施过程进行描述。其中,联邦学习模型的训练终止条件为当前最新区块中的每个全局模型梯度与上一轮对应的全局模型梯度的差值小于等于设定阈值。

a、每个工作者通过区块链获取当前最新区块中的各全局模型梯度密文。

b、每个工作者利用自己的私钥sk

c、针对当前最新区块中的每个全局模型梯度,每个工作者确定该全局模型梯度与上一轮对应的全局模型梯度的差值是否小于等于设定阈值。若确定该全局模型梯度与上一轮对应的全局模型梯度的差值小于等于设定阈值,则将该全局模型梯度作为目标全局模型梯度。若确定该全局模型梯度与上一轮对应的全局模型梯度的差值大于设定阈值,则将i+1赋值给i,重新执行Step3至Step6的处理过程。

示例性地,每个工作者通过区块链获取当前最新区块中的第i+1轮全局模型梯度密文,并利用自己的私钥sk

上述实施例表明,本发明中的技术方案一方面引入了区块链机制,将各第一节点产生的本地模型梯度密文以上链的方式存储至区块链中;同时,引入区块链中的聚合节点进行聚合处理,得到全局模型梯度密文并上链至区块链中。该方式基于区块链的去中心化以及可追溯特性可以确保各第一节点上传的本地模型梯度密文的完整性,并可以确保聚合处理各本地模型梯度密文过程的公开可验证性以及确保全局模型梯度密文的正确性,从而可以消除现有技术中服务端作恶的可能性。另一方面,各第一节点基于梯度裁剪量化规则对自身产生的本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息,并按照梯度合并规则,将各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息。然后对n类第三子梯度信息分别进行同态加密,得到n类密文。由于将训练后的本地模型梯度信息中各第一子梯度信息分别进行裁剪量化及合并处理,之后再进行同态加密,因此有助于降低同态加密所产生的计算资源消耗,并可以减少密文传输过程中所消耗的网络资源,从而可以解决现有技术中存在对本地模型梯度信息进行同态加密所产生的计算开销大以及通信开销大的问题。

基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种基于区块链的联邦学习装置,该装置可以执行基于区块链的联邦学习方法的流程。

如图4所示,该装置包括:

确定单元401,用于基于本地训练数据对第i轮本地模型进行训练,确定出训练后的第i+1轮本地模型梯度信息;所述第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的;

第一处理单元402,用于基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化,得到各第二子梯度信息;按照梯度合并规则,将所述各第二子梯度信息中每m个第二子梯度信息进行合并,得到n类第三子梯度信息;对所述n类第三子梯度信息分别进行同态加密,得到n类密文,并将所述n类密文发送给所述区块链;所述n类密文用于所述区块链中的聚合节点对第i+1轮联邦学习训练的各第一节点反馈的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文。

可选地,所述第一处理单元402还用于:

在基于本地训练数据对第i轮本地模型进行训练之前,对所述第i轮全局模型梯度信息密文进行同态解密,得到第i轮全局模型梯度信息;

确定所述第i轮全局模型梯度信息与第i-1轮全局模型梯度信息的差值大于设定阈值。

可选地,所述第一处理单元402具体用于:

基于梯度裁剪算法分别对所述各第一子梯度信息进行裁剪处理,得到裁剪后的各第一子梯度信息;

基于梯度量化算法分别对所述裁剪后的各第一子梯度信息进行量化处理,得到所述各第二子梯度信息。

可选地,所述第一处理单元402具体用于:

针对所述裁剪后的各第一子梯度信息中每个第一子梯度信息,将所述第一子梯度信息与梯度阈值进行比较;所述梯度阈值是根据所述裁剪后的各第一子梯度信息的分布规律确定的;

基于梯度量化规则,根据所述第一子梯度信息与所述梯度阈值的比较结果,确定所述第一子梯度信息对应的第二子梯度信息。

可选地,所述第一处理单元402还用于:

在得到第i+1轮全局模型梯度密文之后,从所述区块链获取所述第i+1轮全局模型梯度密文,并对所述第i+1轮全局模型梯度密文进行同态解密,得到第i+1轮全局模型梯度信息;

若确定所述第i+1轮全局模型梯度信息与所述第i轮全局模型梯度信息的差值小于等于所述设定阈值,则将所述第i+1轮全局模型梯度信息作为目标全局模型梯度信息,从而得到训练好的联邦学习模型。

基于相同的技术构思,图5示例性的示出了本发明实施例提供的另一种基于区块链的联邦学习装置,该装置可以执行基于区块链的联邦学习方法的流程。

如图5所示,该装置包括:

获取单元501,用于从区块链上获取各第一节点发送的各n类密文;第一节点是从N个区块链节点中选取的用于参与第i+1轮联邦学习训练的节点;所述聚合节点是所述N个区块链节点中除所述各第一节点以外的其它节点中的任一个;

第二处理单元502,用于对所述各第一节点的各n类密文中同类的密文进行聚合处理,从而得到第i+1轮全局模型梯度密文,并将所述第i+1轮全局模型梯度密文发送给所述区块链;其中,所述n类密文是所述第一节点对n类第三子梯度信息分别进行同态加密得到的;所述n类第三子梯度信息是所述第一节点按照梯度合并规则对各第二子梯度信息中每m个第二子梯度信息进行合并确定的;所述各第二子梯度信息是所述第一节点基于梯度裁剪量化规则对所述第i+1轮本地模型梯度信息中的各第一子梯度信息分别进行裁剪量化得到的;所述第i+1轮本地模型梯度信息是所述第一节点基于本地训练数据对第i轮本地模型进行训练确定的;所述第i轮本地模型是基于所述第一节点从区块链上获取的第i轮全局模型梯度密文得到的。

可选地,所述第二处理单元502具体用于:

对所述各第一节点的签名分别进行验证;

按照设定的聚合规则,对验证成功的至少两个第一节点所对应的至少两个n类密文中同类的密文进行聚合处理。

可选地,所述第二处理单元502还用于:

在将所述第i+1轮全局模型梯度密文发送给所述区块链之后,接收代理节点发送的全局模型梯度密文验证通过消息;所述代理节点是基于代理节点选取规则从所述各第一节点中选取的;所述全局模型梯度密文验证通过消息是所述代理节点在确定所述第i+1轮全局模型梯度密文与自己基于设定的聚合规则所确定的第i+1轮全局模型梯度密文一致时生成的;

若确定所述代理节点针对第i+1轮全局模型梯度密文的验证符合设定要求,则将所述第i+1轮全局模型梯度密文对应的新区块添加至所述区块链。

基于相同的技术构思,本发明实施例还提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的基于区块链的联邦学习方法中所包括的步骤。

其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于区块链的联邦学习方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述基于区块链的联邦学习方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种基于区块链的异步联邦学习方法、装置及电子设备
  • 一种基于分层分片区块链的联邦学习方法、系统及装置
技术分类

06120113046513