[发明专利]一种基于区块链开展可信联邦学习的方法在审
| 申请号: | 202210127941.6 | 申请日: | 2022-02-11 |
| 公开(公告)号: | CN114462624A | 公开(公告)日: | 2022-05-10 |
| 发明(设计)人: | 陈钟;李青山;高健博;任立峰;吴振豪;兰云飞;郝嘉琨 | 申请(专利权)人: | 博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司 |
| 主分类号: | G06N20/00 | 分类号: | G06N20/00;G06F21/62;G06Q20/38 |
| 代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李珉 |
| 地址: | 100031 北京市西*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 区块 开展 可信 联邦 学习 方法 | ||
1.一种基于区块链开展可信联邦学习的方法,涉及任务发布者、数据拥有者和区块链共识节点:任务发布者通过联邦学习,在不收集隐私数据的前提下完成模型的训练,同时可以免除检验模型的工作量;数据拥有者只需按照普通的联邦学习进行训练即可;区块链共识节点负责对数据拥有者提交的训练好的模型进行验证,并聚合得到聚合模型,其特征在于:具体包括以下步骤:
步骤1、任务发布者通过区块链智能合约发布模型数据需求,并提供任务所需的检验数据和需要训练的模型;
步骤2、数据拥有者通过智能合约响应任务发布者的模型训练要求,确认参与联邦学习任务;智能合约将任务发布者提供的需要训练的模型分发给数据拥有者;
步骤3、数据拥有者利用所拥有的本地数据训练需要训练的模型,再将训练好的本地模型作为训练模型,进行多次重复训练,得到最终训练好的本地模型;
步骤4、数据拥有者在限定的时间内将最终训练好的本地模型通过智能合约上传到区块链,区块链会将最终训练好的本地模型存储到区块链存储区中;
步骤5、每个区块链共识节点访问区块链存储区,负责对数据拥有者提交的训练好的模型进行共识验证;对验证通过后的数据拥有者上传的训练好的模型进行聚合,得到聚合模型;聚合之后,区块链共识节点相互之间对聚合模型进行共识验证;
步骤6、任务发布者检验聚合模型,如果该聚合模型的效果还不能达到任务发布者的预期,那么将聚合模型分发给数据拥有者,并跳转至步骤3继续联邦学习任务;如果聚合模型能够满足任务发布者的要求,任务结束。
2.根据权利要求1所述的一种基于区块链开展可信联邦学习的方法,其特征在于:所述步骤1的具体方法为:
在联邦学习开始前,任务发布者在区块链上利用智能合约发布联邦学习模型训练任务,需要明示所需模型数据的特征;并上传验证该模型训练任务所需的数据到区块链存储区,区块链的共识节点能够访问区块链存储区中任务发布者的数据并用于对数据拥有者上传模型的共识验证。
3.根据权利要求2所述的一种基于区块链开展可信联邦学习的方法,其特征在于:步骤1所述智能合约支持模型训练任务逻辑的实现以及任务信息发布、任务领取、训练好的模型存储、聚合模型存储、模型评估和奖励分配的实现;
所述模型数据以智能合约调用参数返回,存储在区块链存储区中,区块链存储模型数据使用默克尔树实现,支持为上链的模型数据生成默克尔证明;
模型数据能够放在区块链链上存储通过智能合约读取;还能够放在区块链下存储,使用分布式文件系统Ipfs进行存储,区块链上存储相应模型数据的哈希值,通过智能合约解析哈希值验证数据。
4.根据权利要求3所述的一种基于区块链开展可信联邦学习的方法,其特征在于:所述步骤2的具体方法为:
数据拥有者通过阅读数据发布者对数据的要求,判定自己所拥有的数据与该任务的匹配程度,如果自认为匹配度高,则通过智能合约进行响应,确认参加该联邦学习任务;通过智能合约,数据拥有者调用智能合约中模型读取接口,获取需要训练的模型。
5.根据权利要求4所述的一种基于区块链开展可信联邦学习的方法,其特征在于:步骤3所述数据拥有者利用所拥有的本地数据训练需要训练的模型的方式如下公式所示:
其中,是第i个数据拥有者训练好的本地模型,是根据gt和Di求取的模型梯度,γ则是学习率,控制梯度对模型的影响,Di为数据拥有者所拥有的本地数据,需要训练的模型gt,t为训练的轮次。
6.根据权利要求5所述的一种基于区块链开展可信联邦学习的方法,其特征在于:步骤5所述对验证通过后的数据拥有者上传的训练好的本地模型进行聚合,是通过对各个数据拥有者训练好的本地模型的数据量加权平均实现,如下公式所示:
其中,gt+1为聚合模型,ni为第i个数据拥有者的数据量,n为总数据量。
7.根据权利要求5所述的一种基于区块链开展可信联邦学习的方法,其特征在于:步骤5所述区块链共识节点进行共识验证由具备抗拜占庭攻击的bft类共识算法实现,共识节点包括负责执行模型聚合操作的主节点和负责模型验证操作的从节点;具体验证方法为:
步骤S1、区块链共识节点接收到数据拥有者提交的训练好的模型后,首先验证交易的合法性,全部通过验证的交易被放到交易池中;对交易池中的交易中的模型进行模型评估,将模型的验证结果附加在此交易后,并用本共识节点的公钥对此交易进行签名;
步骤S2、当主节点的交易池中得到一定量的交易或者在规定时间窗口中不再接收到新的交易后,主节点将这部分交易进行排序后打包成一个区块,并将这部分交易从交易池中删除;然后主节点将一个区块编号并签名后放在预准备消息中,并广播给所有节点,然后所有共识的节点开启BFT共识的三阶段流程,此时主节点已经完成预准备阶段而其他从节点还处于等待状态;
步骤S3、当从节点接收到来自主节点的预准备消息后,该从节点会对区块中包含的模型进行检验,如果主节点发布的区块中对模型的验证结果和某从节点不同,该从节点将认为主节点为恶意节点,拒绝向此区块投票;如果验证结果与所有从节点全都相同,从节点也完成预准备阶段,并向所有节点广播准备消息,标识进入准备阶段;
步骤S4、当一个从节点收集齐不少于所有节点总数的2/3的节点的准备消息后,根据相应的预准备消息中的区块信息,从交易池中删除区块中包含的交易信息,该从节点完成准备阶段;然后该从节点向全网广播提交消息进入提交阶段;对于主节点,只要收集齐不少于所有节点总数的2/3的节点的准备消息即可完成准备阶段,并全网广播提交消息进入提交阶段;
步骤S5、当任意一个共识节点收集齐不少于所有节点总数的2/3的节点的提交消息时,即完成提交阶段,完成整个BFT共识流程,此时将该轮共识确定的区块写入到区块链全局状态中,开始进行下一个区块的共识过程;
步骤S6、若主节点监测到模型训练任务中已达到预定义的模型数量,则开始模型聚合工作,并将最终聚合模型进行提交,聚合模型的提交和验证过程与训练好的模型相同,返回步骤1进行共识;
步骤S7、若一个主节点在一个时间窗口内始终未获得2/3的准备或提交消息,则触发视图切换流程,即进行视图切换、选举新主节点、新主节点应答三个阶段;当新的主节点被选举出之后,返回步骤S1进行共识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司,未经博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210127941.6/1.html,转载请声明来源钻瓜专利网。





