本发明专利技术提供一种基于区块链的联邦学习系统及方法,系统包括:模型训练模块,用于联邦学习过程的机器学习模型更新和所述机器学习模型变化值聚合;基于区块链技术的智能合约模块,用于在所述联邦学习的过程中提供去中心化的控制功能与密钥管理功能;基于IPFS协议的存储模块,用于为所述联邦学习过程中的中间信息提供去中心化的信息存储机制;每个参与联邦学习的节点上同时运行所述模型训练模块、所述基于区块链技术的智能合约模块、所述基于IPFS协议的存储模块。实现整个系统的完全去中心化,任何节点的故障和退出都不会影响其他节点继续进行联邦学习,具有更强的鲁棒性。
A federated learning system and method based on blockchain
【技术实现步骤摘要】
一种基于区块链的联邦学习系统及方法
本专利技术涉及联邦学习
,尤其涉及一种基于区块链的联邦学习系统及方法。
技术介绍
联邦学习使得各个参与机构能够在不直接交换原始数据的情况下,协同的训练机器学习模型。这对于那些数据量不足的的企业或者机构而言,能够让它们联合起来,获得更好模型的同时又不暴露原始数据,实现互利共赢。现有的工程技术中,各个机构的协同训练依赖于中心化的第三方协作节点实现控制,聚合和密钥管理。现有的中心化的方法有以下缺点:1)协作节点会持续地获得其他所有机构上传的信息。而一个好奇的协作节点可以通过这些信息推断出与各个机构原始数据相关的重要信息,如类别标签分布情况,因此会导致数据隐私的泄露。对于参与训练的机构而言,它们并不想暴露这些隐私。2)当协作节点出现故障,整个系统会发生崩溃从而无法继续运行。由于中心化的协作节点的单点故障,各个机构的联邦学习会被强行终止,无法继续协同训练。现有技术中的联邦学习方法有隐私风险和单点故障的问题。
技术实现思路
本专利技术为了解决现有的问题,提供一种基于区块链的联邦学习系统及方法。为了解决上述问题,本专利技术采用的技术方案如下所述:一种基于区块链的联邦学习系统,包括:模型训练模块,用于联邦学习过程的机器学习模型更新和所述机器学习模型变化值聚合;基于区块链技术的智能合约模块,用于在所述联邦学习的过程中提供去中心化的控制功能与密钥管理功能;基于IPFS协议的存储模块,用于为所述联邦学习过程中的中间信息提供去中心化的信息存储机制;每个参与联邦学习的节点上同时运行所述模型训练模块、所述基于区块链技术的智能合约模块、所述基于IPFS协议的存储模块。优选地,所述基于区块链技术的智能合约模块包含了训练控制模块和密钥管理模块;所述训练控制模块用于在所述联邦学习过程中的每一轮学习前随机生成包含每个参与所述联邦学习的节点的拓扑结构,在所述联邦学习过程中与各所述节点通信,通知各所述节点已有的聚合信息,并收集各所述节点进一步聚合后的信息;所述密钥管理模块存储了每个参与联邦学习的节点上传的公钥信息。优选地,所述公钥是用于同态加密的公钥;每个所述公钥与每个参与所述联邦学习的所述节点一一对应,在所述联邦学习开始前被密钥管理模块记录。优选地,每个所述节点均承担聚合任务,所有所述节点的聚合合起来是基于区块链的联邦学习系统的聚合信息。优选地,每个所述节点从前驱节点处获得加密信息,并将本地的加密信息与获得的所述加密信息相加,得到新的加密信息;所述新的加密信息传递给后继节点;累加后的所述加密信息被最后的节点解密,并用于全局训练模型的更新,得到最新的全局模型。本专利技术提供一种基于区块链的联邦学习方法,包括如下步骤:S1:所有参与联邦学习的节点在基于区块链技术的智能合约模块的密钥管理模块登记公钥,并彼此协商训练模型的结构、初始参数信息和最大训练轮数;S2:所述节点利用本地数据对所述训练模型进行本地训练,并记录所述训练模型的变化值;所述节点从所述密钥管理模块获取本轮训练所使用的同态加密的公钥,并将所述训练模型的变化值进行加密;S3:所述节点根据拓扑缓存中的拓扑结构信息,确定所述节点在当前拓扑结构中的位置;S4:所述节点在训练控制模块的通知下,依次对加密的所述训练模型的变化值进行累加聚合;S5:所述节点的聚合结束后,所述拓扑结构上的最后一个节点对聚合信息进行解密,并对全局模型参数进行更新;S6:各个所述节点获取最新的全局模型参数,并更新所述训练模型;S7:所述节点循环训练至所述训练模型收敛或达到预先协商的最大训练轮数,此时停止训练。优选地,所述本地训练的训练样本数由所述节点决定;所述拓扑缓存中的拓扑结构信息由所述训练控制模块在每一轮训练开始前生成,所述拓扑缓存中的拓扑结构信息标志了各个所述节点进行聚合的先后顺序。优选地,所述节点在所述训练控制模块的通知下沿着先后顺序依次对加密信息进行累加;每个所述节点均承担聚合的任务,所有所述节点的聚合合起来是基于区块链的联邦学习系统的聚合信息。优选地,在每一轮训练开始前,所述训练控制模块选择随机一个所述节点,将所述节点作为本轮随机生成的拓扑结构的最后一个节点,用于对所述聚合信息进行解密并更新全局模型;若选择的所述节点在本轮训练开始前出现故障,则所述训练控制模块重新选择一个所述节点;若选择的所述节点在本轮全局模型更新时出现故障,则所述训练控制模块通知所有节点将训练模型回滚至本轮训练开始前的状态,再重新随机选择一个所述节点。优选地,在每一轮训练过程中,若所述节点发生故障,所述训练控制模块会跳过故障节点,由所述故障节点的直接后继节点继续进行聚合。本专利技术的有益效果为:提供一种基于区块链的联邦学习系统及方法,通过将联邦学习中的每一个模块都实现去中心化,进而实现整个系统的完全去中心化。因此每个参与节点的地位都是完全平等的,且不存在中心化的第三方协作节点。任何节点的故障和退出都不会影响其他节点继续进行联邦学习,相比于现有方法,具有更强的鲁棒性。设计了去中心化的加密聚合方法,使得没有节点可以获得其他节点的梯度或模型等信息,避免了数据隐私泄露的风险。由于区块链的公开透明性,整个联邦学习过程的控制逻辑也是公开透明的;控制逻辑由基于区块链的智能合约实现,任何节点都可以对其进行检验,保证了整个控制逻辑是安全可靠的;同时,由于区块链的去中心化特性,控制逻辑的执行也是去中心化的;实现控制逻辑的基于区块链的智能合约会在参与联邦学习的所有节点上执行,任何单一节点无法影响它的运行。由于区块链的不可篡改性,整个联邦学习过程所记录的历史信息都被记录在区块链中且不能被修改,这有助于对联邦学习过程中的各个节点的行为进行审计。附图说明图1是本专利技术实施例中基于区块链的联邦学习系统的结构示意图。图2是本专利技术实施例中基于区块链的联邦学习系统的模型示意图。图3是本专利技术实施例中现有技术的联邦学习系统的模型示意图。图4是本专利技术实施例中基于区块链的联邦学习方法的示意图。图5是本专利技术实施例中基于区块链的联邦学习系统和方法的训练的示意图。具体实施方式为了使本专利技术实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接既可以是用于固定作用也可以是用于电路连通作用。需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术实施例和简化描述,而不是指示或本文档来自技高网...
【技术保护点】
1.一种基于区块链的联邦学习系统,其特征在于,包括:/n模型训练模块,用于联邦学习过程的机器学习模型更新和所述机器学习模型变化值聚合;/n基于区块链技术的智能合约模块,用于在所述联邦学习的过程中提供去中心化的控制功能与密钥管理功能;/n基于IPFS协议的存储模块,用于为所述联邦学习过程中的中间信息提供去中心化的信息存储机制;/n每个参与联邦学习的节点上同时运行所述模型训练模块、所述基于区块链技术的智能合约模块、所述基于IPFS协议的存储模块。/n
【技术特征摘要】
1.一种基于区块链的联邦学习系统,其特征在于,包括:
模型训练模块,用于联邦学习过程的机器学习模型更新和所述机器学习模型变化值聚合;
基于区块链技术的智能合约模块,用于在所述联邦学习的过程中提供去中心化的控制功能与密钥管理功能;
基于IPFS协议的存储模块,用于为所述联邦学习过程中的中间信息提供去中心化的信息存储机制;
每个参与联邦学习的节点上同时运行所述模型训练模块、所述基于区块链技术的智能合约模块、所述基于IPFS协议的存储模块。
2.如权利要求1所述的基于区块链的联邦学习系统,其特征在于,所述基于区块链技术的智能合约模块包含了训练控制模块和密钥管理模块;
所述训练控制模块用于在所述联邦学习过程中的每一轮学习前随机生成包含每个参与所述联邦学习的节点的拓扑结构,在所述联邦学习过程中与各所述节点通信,通知各所述节点已有的聚合信息,并收集各所述节点进一步聚合后的信息;
所述密钥管理模块存储了每个参与联邦学习的节点上传的公钥信息。
3.如权利要求2所述的基于区块链的联邦学习系统,其特征在于,所述公钥是用于同态加密的公钥;每个所述公钥与每个参与所述联邦学习的所述节点一一对应,在所述联邦学习开始前被密钥管理模块记录。
4.如权利要求1所述的基于区块链的联邦学习系统,其特征在于,每个所述节点均承担聚合任务,所有所述节点的聚合合起来是基于区块链的联邦学习系统的聚合信息。
5.如权利要求4所述的基于区块链的联邦学习系统,其特征在于,每个所述节点从前驱节点处获得加密信息,并将本地的加密信息与获得的所述加密信息相加,得到新的加密信息;所述新的加密信息传递给后继节点;累加后的所述加密信息被最后的节点解密,并用于全局训练模型的更新,得到最新的全局模型。
6.一种基于区块链的联邦学习方法,其特征在于,包括如下步骤:
S1:所有参与联邦学习的节点在基于区块链技术的智能合约模块的密钥管理模块登记公钥,并彼此协商训练模型的结构、初始参数信息和最大训练轮数;
【专利技术属性】
技术研发人员:王智,武鑫,
申请(专利权)人:清华大学深圳国际研究生院,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。