本发明涉及区块链技术领域,具体地,涉及一种基于联邦学习的数据共享系统、方法、介质及设备。
背景技术:
企业之间的机器学习模型训练,随着模型结构的复杂度和深度的提高,需要大量的训练数据。这些数据可能包括用户隐私、企业机密,以及来自不适合公开披露的数据源的数据等,因此,尽管不同企业的业务目标相对接近,但是共享数据进行模型训练很难实现。本方法结合联邦学习技术和区块链技术,允许多个参与方“数据不出本地”的进行联合运算,实现跨企业数据协同。
专利文献cn112714050a(申请号:cn202011525604.x)公开了一种基于区块链和联邦学习的数据共享与隐私保护方法,涉及数据安全技术领域,其包括:在同一用户的智能家居场景下,建立设备区块链来管理智能设备的权限,并在多个智能设备之间建立共识机制;在不同用户的智能家居场景下,建立共享区块链来接收上传数据,并管理数据的所有权,随后利用智能合约,实现企业对用户数据的共享交易;完成交易后,企业根据自身业务需求与共享区块链上的用户数据进行联邦学习,进而预测得到服务模型,并存储于模型区块链一,在用户想要获得服务时,在模型区块链一上申请关联服务模型,随后将关联数据作为关联服务模型的输入,得到推荐结果。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于联邦学习的数据共享系统、方法、介质及设备。
根据本发明提供的基于联邦学习的数据共享系统,包括:
数据平台:收集企业数据并整理为数据集,在联合运算过程中提供算力,对本地数据进行本地运算,根据训练定义对管辖的数据进行加密,并保存和维护训练完成的模型参数和模型文件;
联邦工作站:管理模型训练历史、多方协作记录和数据集增补修改历史;
联邦中心:发布各企业提供的数据集以及信息,接收和处理来自不同企业的联合运算请求,在联合运算过程中作为可信第三方参与运算。
优选的,所述数据平台维护和披露数据集属性,包括统计信息和数据来源说明。
优选的,所述联邦工作站抓取和监控多方训练过程中,企业之间互相通信、企业和联邦中心通信时发送的数据。
优选的,所述联邦工作站对数据和模型的变更记录、训练记录,以及联合计算过程中的出口数据进行存证。
优选的,所述联邦中心监控运算过程,提供训练监控面板。
根据本发明提供的基于联邦学习的数据共享方法,包括如下步骤:
步骤1:企业之间通过联邦中心浏览和筛选对方披露的数据集,确定联合运算的算法后发起联合训练请求,在都接受训练请求后本地联邦工作站发起本地训练;
步骤2:联邦工作站从本地数据平台拉取训练数据进行本地计算后,根据联合训练的相关参数,采用不同的加密手段对生成的中间结果或最终结果进行加密;
步骤3:参与训练的企业进行通讯,汇总运算结果;
步骤4:对数据和训练信息进行区块链存证。
优选的,所述训练信息包括:数据集更新信息、模型文件版本信息、训练历史和训练过程中发送出的加密数据。
优选的,联邦中心作为可信第三方参与汇总运算,对汇总运算进行协助且不保存数据,在训练完成后,由参与各方分别持有相关参数或模型。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。
根据本发明提供的一种基于联邦学习的数据共享设备,包括:控制器;
所述控制器包括所述的存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于联邦学习的数据共享方法的步骤;或者,所述控制器包括所述的基于联邦学习的数据共享系统。
与现有技术相比,本发明具有如下的有益效果:
本发明采用横向联邦学习技术,解决了数据不出本地完成多方协同运算的问题,在实现企业数据资产降本增效的同时,保证了企业数据安全。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为多方协同运算架构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
如图1,根据本发明提供的基于联邦学习的数据共享系统,包括如下模块:
1)企业数据平台:
a、收集和整理数据,供后续协同运算使用;
b、维护和披露数据集属性,包括统计信息、数据来源说明等;
c、在联合运算过程中提供算力,针对本地数据进行本地运算,并根据训练定义,对所管辖的数据进行加密;
d、保存和维护训练完成的模型参数和模型文件。
2)企业联邦工作站:
a、管理模型训练历史、多方协作记录、数据集增补修改历史;
b、抓取和监控多方训练过程中,企业之间互相通信、企业和联邦中心通信时发送的数据;
c、对数据和模型变更记录、训练记录,以及联合计算过程中出口数据进行存证。
3)联邦中心:
a、发布各企业可以提供的数据集以及信息;
b、接收和处理来自不同企业的联合运算请求;
c、在联合运算过程中作为可信第三方,参与运算;
d、监控运算过程,提供训练监控面板。
根据本发明提供的基于联邦学习的数据共享方法,包括如下步骤:
步骤1:企业a或企业b通过联邦中心,浏览和筛选对方披露的数据集,确定联合运算的算法,发起联合训练请求,双方都接受训练请求后,在本地联邦工作站发起本地训练;
步骤2:企业联邦工作站从本地数据平台拉取训练数据,进行本地计算后,根据联合训练的相关参数,采用不同的加密手段对生成的中间结果,或最终结果进行加密;
企业联邦工作站和企业数据平台通过企业内网,或者以太网连接。企业联邦工作站可以通过网络地址、文件存储路径、或数据库操作进行数据的获取。加密手段包括多种多方安全计算领域的手段,例如同态加密、秘密共享、混淆电路、不经意传输等。
步骤3:参与训练的双方进行通讯,汇总运算结果。此步骤也允许联邦中心参与,但联邦中心不保存任何数据,只作为可信第三方,对计算进行协助,训练完成后,相关的参数或模型,由参与各方分别持有;
训练各方的目标,是根据自身的数据对模型的各个参数进行动态调整,使模型能够在自身数据集上获得更好的准确度。而汇总的运算结果,实际上就是多方汇总之后对参数的调整量。得到了调整量后,将调整量发回参与方,用来帮助参与方更新自身模型的参数。迭代上述步骤,其产物实质上就等价于将多方数据明文集中后,进行运算得到的模型。
步骤4:对数据和训练相关信息进行区块链存证。这些信息包括:数据集更新信息、模型文件版本信息、训练历史、一次训练过程中,发送出的加密数据。
区块链存证的具体步骤为:采用链上链下协同的方式,将每次需要进行存证的信息进行打包,并将生成的文件存放在公开存储位置。同时计算生成的文件包的哈希值,将此哈希值保存在区块链上。这样每次获取文件包的时候,通过重新计算哈希值,并于链上存储的哈希进行比较,就可以推断出文件是否经过了二次篡改。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。