CN117556467A - 数据处理方法及相关装置 - Google Patents
数据处理方法及相关装置 Download PDFInfo
- Publication number
- CN117556467A CN117556467A CN202311581002.XA CN202311581002A CN117556467A CN 117556467 A CN117556467 A CN 117556467A CN 202311581002 A CN202311581002 A CN 202311581002A CN 117556467 A CN117556467 A CN 117556467A
- Authority
- CN
- China
- Prior art keywords
- neural network
- parameters
- participants
- model
- training
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012549 training Methods 0.000 claims abstract description 162
- 238000003062 neural network model Methods 0.000 claims abstract description 118
- 238000013528 artificial neural network Methods 0.000 claims abstract description 74
- 238000003860 storage Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000002776 aggregation Effects 0.000 claims abstract description 36
- 238000004220 aggregation Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims description 31
- 230000000977 initiatory effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 239000010410 layer Substances 0.000 description 67
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013175 transesophageal echocardiography Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0499—Feedforward networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据处理方法及相关装置,方法包括:确定Q个参与方;协商神经网络的规模参数,规模参数与Q个客户设备对应的可信执行环境的存储区域相关;根据规模参数生成初始的神经网络模型,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数;将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器;将Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数。
Description
技术领域
本申请涉及隐私计算或者分布式机器学习技术领域,具体涉及一种数据处理方法及相关装置。
背景技术
传统的数据联合建模中,服务器收集来自各个参与方的数据,并统一训练机器学习模型,最后将训练好的模型发送给各参与方。随着《数据安全法》、《个人隐私保护法》的相继出台,对于数据持有方而言,直接传输数据成了可能会违法的高危行为。
为了在数据联合建模的同时保护数据的隐私,已经出现了多种分布式机器学习方法。这些方法中,用户仅向服务器发送本地更新的模型参数。这允许用户在训练中不泄露他们自己的数据,从而保护他们的隐私。不幸的是,最近的研究表明,针对分布式机器学习方法仍存在攻击,攻击者可以从模型参数中恢复部分敏感信息。此类攻击的突出例子是数据重建和各种类型的推理攻击,因此,如何在数据联合建模过程中,针对模型参数进行保护,以深度提升数据安全性的问题亟待解决。
发明内容
本申请实施例提供了一种数据处理方法及相关装置,可以在数据联合建模过程中,利用可信执行环境的安全特性实现安全的神经网络模型训练,对模型参数进行保护,提升训练过程中数据的安全性。
第一方面,本申请实施例提供一种数据处理方法,应用于多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;所述方法包括:
确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
第二方面,本申请实施例提供了一种数据处理装置,应用于多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;所述装置包括:确定单元、协商单元、生成单元、训练单元和聚合单元,其中,
所述确定单元,用于确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
所述协商单元,用于协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
所述生成单元,用于根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
所述训练单元,用于将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
所述聚合单元,用于将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
第三方面,本申请实施例提供一种服务器,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具备如下有益效果:
可以看出,本申请实施例中所描述的数据处理方法及相关装置,应用于多方计算系统的服务器,多方计算系统包括服务器和P个客户设备,P为大于1的整数;服务器包括第一可信执行环境区域,P个客户设备中每一客户设备均包括一个第二可信执行区域;确定Q个参与方,Q个参与方为P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数,协商神经网络的规模参数,规模参数与Q个客户设备对应的可信执行环境的存储区域相关,根据规模参数生成初始的神经网络模型,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数,将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器,将Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将目标模型参数分发给Q个参与方中的每一参与方,一方面,可以基于参与方的可信执行环境区域的内存动态生成神经网络模型,以及通过各个参与方的可信执行区域安全训练神经网络模型,另一方面,可以安全聚合训练结果,将最终的模型参数进行保护,提升训练过程中数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种神经网络模型的结构示意图;
图2是本申请实施例提供的一种服务器的结构示意图;
图3是本申请实施例提供的一种客户设备的结构示意图;
图4是本申请实施例提供的一种用于实现数据处理方法的多方计算系统的架构示意图;
图5是本申请实施例提供的一种数据处理方法的流程示意图;
图6是本申请实施例提供的一种优化神经网络模型的三个阶段的流程示意图;
图7是本申请实施例提供的一种优化神经网络模型的初始化阶段的流程示意图;
图8是本申请实施例提供的一种神经网络一层的规模协商过程的流程示意图;
图9是本申请实施例提供的一种优化神经网络模型的训练阶段的流程示意图;
图10是本申请实施例提供的一种客户设备进行神经网络训练的流程示意图;
图11是本申请实施例提供的一种服务器对模型进行安全聚合的流程示意图;
图12是本申请实施例提供的另一种服务器的结构示意图;
图13是本申请实施例提供的一种数据处理装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所描述节点可以为电子设备,电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集群。客户设备也可以包括上述电子设备。
本申请实施例中,可信执行环境(TEE)是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境,在移动设备的安全计算领域比较常见。TEE通过基于硬件的资源隔离机制将安卓、IOS等丰富执行环境(Rich Execution Environment,简称REE)系统与安全的可信执行环境(简称TEE)系统进行隔离,安全系统的资源不允许REE端直接访问,并通过一整套访问控制策略和密码算法机制保证TEE中数据的安全性。目前,TEE技术广泛应用于诸如移动支付等安全性要求较高的应用中。
本申请实施例中,神经网络模型可以包括多层前馈神经网络。如图1所示,可以看出,图1所示的多层神经网络模型中将若干个单层神经网络(如:输入层、中间层、输出层)级联在一起,前一层的输出,作为后一层的输入,这就构成了多层前馈神经网络(multi-layerfeedforward neural networks)。更确切的说,每一层神经元仅仅与下一层的神经元全连接。但在同一层之内,神经元彼此不连接。
其中,图中每条边都有一个权值,表示从出发节点到目的节点的求和系数,另外,除了输出层以外,每个节点都有一个激活函数,通常使用sigmoid函数作为激活函数,具体如下:
进一步的,在模型使用过程中,输入信息只会单向传播(图中从左至右传播)进行计算,直到得到输出值。
在模型训练过程中,输入信息先是从左向右传播,然后计算得到输出值后,与预期的输出值进行对比,计算差值(即误差值),然后反向传播误差,实现从右往左逐层修正参数值。
假设每一层都有n个节点,那么层与层之间就有n2条边,每条边有一个参数,所以两层之间共需要n2个参数。
本申请实施例中,涉及两类设备:服务器和客户设备。其中,仅有一个服务器,有多个(不少于2个)客户设备。如图2所示,服务器设备中有两个隔离的执行环境:可信执行环境(Trusted Execution Environment,简记为TEE)、丰富执行环境(Rich ExecutionEnvironment,简记为REE)。服务器的TEE和REE均有独立的处理单元和存储空间。服务器的REE与TEE之间可以通过切换机制相互切换。
相应的,和服务器设备一样,如图3所示,客户设备中也有两个隔离的执行环境:TEE、REE。并且TEE和REE均有独立的处理单元和存储空间。除此之外,客户设备的TEE和REE之间还共享一块共享存储区域。客户设备的REE与TEE之间可以通过切换机制相互切换。
下面对本申请实施例进行详细介绍。
请参阅图4,图4是本申请实施例提供的一种用于实现数据处理方法的多方计算系统的架构示意图,如图所示,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;基于该多方计算系统可以实现如下功能:
确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
本申请实施例,一方面,可以基于参与方的可信执行环境区域的内存动态生成神经网络模型,以及通过各个参与方的可信执行区域安全训练神经网络模型,另一方面,可以安全聚合训练结果,将最终的模型参数进行保护,提升训练过程中数据的安全性。
请参阅图5,图5是本申请实施例提供的一种数据处理方法的流程示意图,应用于图4所示的多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;如图所示,本数据处理方法包括:
501、确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数。
本申请实施例中,Q个参与方为P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数,当然,Q同时可以为大于1的整数。
举例说明下,本申请实施例中,以银行业务为例,客户设备可以为各个银行,即参与方可以是银行,具体实现中,可以在数据联合建模过程中,保证模型参数的安全性。
可选的,上述步骤501,将所述确定Q个参与方,可以包括如下步骤:
11、向所述P个客户设备广播模型训练发起消息,所述模型训练发起消息携带消息内容;
12、接收所述P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容;
13、根据所述P个应答消息确定所述Q个参与方。
本申请实施例中,消息内容也可以包括以下至少一种:模型数据类型、模型训练的目的、发起的时间、模型训练需要的数据类型、神经网络的层数num_of_layers等等,在此不做限定。
具体实现中,可以向P个客户设备广播模型训练发起消息,查询本地是否存有该模型数据类型,该模型训练发起消息携带消息内容,P个客户设备中的每一客户设备在接收到广播模型训练发起消息之后,如果存有则回应“参与模型训练”的消息;否则回应“不参与”消息。
接着,可以接收P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容,根据P个应答消息确定Q个参与方,即将参与模型训练的客户设备作为参与方。
具体实现中,如果一个客户设备不存有模型训练所需数据的时候,该客户设备不参与模型训练。举例说明下,服务器的话,则首先要确定哪些参与方参与本次训练,包括以下步骤:首先,服务器向所有的客户设备广播模型训练发起消息,该消息内包含如下信息:模型训练的目的、发起的时间、模型训练需要的数据类型、神经网络的层数num_of_layers。该消息发出后,服务器等待收集回应消息;各客户设备收到广播消息后,查询本地是否存有该模型数据类型,如果存有则回应“参与模型训练”的消息;否则回应“不参与”消息;服务器收到来自所有客户设备的消息后,确定哪些客户设备参与模型训练。
502、协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关。
本申请实施例中,每一层的规模受到设备TEE存储空间大小的限制,由于本申请实施例中,限定在TEE中执行模型训练过程,如果神经网络的某一层涉及的参数过多,无法在TEE中得以存储和运算,则无法实现本申请实施例中保护参数的目的。
具体实现中,协商神经网络的规模参数,该规模参数与Q个客户设备对应的可信执行环境的存储区域相关,即规模参数基于Q个客户设备对应的最小的可信执行环境的存储区域。
可选的,所述规模参数包括参数数量和节点数量,上述步骤502,协商神经网络的规模参数,可以包括如下步骤:
21、接收所述Q个参与方中每一参与方上报的自身的所述第二可信执行区域可用于存储参数的存储容量,得到Q个存储容量;
22、从所述Q个存储容量中选取最小值,根据所述最小值确定所述参数数量;
23、根据所述参数数量和前馈型神经网络模型的特性确定所述节点数量。
本申请实施例中,可以接收Q个参与方中每一参与方上报的自身的第二可信执行区域可用于存储参数的存储容量,得到Q个存储容量,再从Q个存储容量中选取最小值,根据最小值确定参数数量,具体的,可以根据最小值与一个参数占用的存储空间的字节大小之间的比值确定参数数量,再根据参数数量和前馈型神经网络模型的特性确定节点数量。由于前馈型神经网络的特点,每一层节点数的平方等于上一层关联的参数个数,所以整个神经网络所关联的。也就是说,每一层最多不超过个节点数目,其中,参数num_of_layers表示神经网络的层数,再将num_of_para、num_of_nodes发送给所有参与的客户设备。
举例说明下,假设最小的存储容量为min_storage个字节,假设一个参数占用的存储空间为occpuied_by_one_para字节,服务器通过如下公式计算能够存储的参数:
上面occpuied_by_one_para的取值通常为32、64。
进一步的,服务器经过计算得到num_of_para的值后,可以得出结论:整个神经网络最多关联num_of_para个参数。
由于前馈型神经网络的特点,每一层节点数的平方等于上一层关联的参数个数,所以整个神经网络所关联的。也就是说,每一层最多不超过个节点数目,其中,参数num_of_layers表示神经网络的层数,再将num_of_para、num_of_nodes发送给所有参与的客户设备。
503、根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数。
本申请实施例中,可以根据规模参数生成初始的神经网络模型,其中,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数。
具体实现中,可以通过第一可信执行环境区域,根据规模参数生成初始的神经网络模型。
举例说明下,针对服务器生成初始的神经网络模型,初始的神经网络模型中,所有的参数都是随机生成的,服务器要为每个节点生成一个初始参数,共需要生成num_of_para个参数。每个参数都从一个预设的实数区间中随机选择一个实数。预设的实数区间可以预先设置或者系统默认,例如,预设的实数区间记为[bottom,top],即区间上限为top,下限为bottom,典型取值为是[0,1]。
504、将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器。
本申请实施例中,可以将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器。
具体的,通过Q个参与方中的每一参与方的第二可信执行区域利用各自的训练集对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器。训练集可以包括以下至少一种:一维数据、二维数据或者多维数据,一维数据可以包括以下至少一种:语音信号、本地数据(年龄、消费记录)、传感器信号、数据库数据等等,在此不做限定,二维数据可以包括以下至少一种:图像数据、本地数据(年龄、消费记录)、数据库数据等等,在此不做限,多维数据可以包括以下至少一种:本地数据(年龄、消费记录)、数据库数据等等,在此不做限定。
具体实现中,各客户设备接收上一步服务器生成的所有参数(共num_of_para个),并依据先后顺序关联到每一层的每个节点上。所有初始的参数值、参数和节点的关联关系存储在REE存储区内。
可选的,还可以包括如下步骤:
通过所述第一可信执行环境区域生成加密密钥,使用所述Q个参与方中每一参与方的公钥对所述加密密钥进行加密,得到Q个重加密密钥,将所述Q个重加密密钥分别发送给所述Q个参与方中相应的参与方;通过所述Q个参与方中每一参与方采用各自的私钥对相应的重加密密钥进行解密,得到所述加密密钥;
则,上述步骤504,将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,可以按照如下方式实施:
使用所述加密密钥对所述初始的神经网络模型进行加密,得到加密后的所述初始的神经网络模型,再将加密后的所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方采用所述加密密钥对加密后的所述初始的神经网络模型进行解密,得到所述初始的神经网络模型,并将所述初始参数依据先后顺序关联到每一层的每个节点。
本申请实施例中,服务器可以通过第一可信执行环境区域生成加密密钥,使用Q个参与方中每一参与方的公钥对加密密钥进行加密,得到Q个重加密密钥,将Q个重加密密钥分别发送给Q个参与方中相应的参与方,通过Q个参与方中每一参与方采用各自的私钥对相应的重加密密钥进行解密,得到加密密钥。
进一步的,可以使用加密密钥对初始的神经网络模型进行加密,得到加密后的初始的神经网络模型,再将加密后的初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方采用加密密钥对加密后的初始的神经网络模型进行解密,得到初始的神经网络模型,并将初始参数依据先后顺序关联到每一层的每个节点,从而,不仅可以将神经网络模型安全分发给各个参与方,还能够保证模型参数的安全性。
举例说明下,服务器的TEE可以随机生成一个128比特的AES加密密钥,使用各客户设备的RSA公钥对AES加密密钥进行加密,并发送给各客户设备。各客户设备收到后,在TEE中使用自己的RSA私钥在进行解密,并将解密得到的AES加密密钥存储在TEE存储区域中。该密钥用于后续阶段中加密传输训练中的参数值。
505、将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
本申请实施例中,各客户设备在本地TEE内进行神经网络训练,然后,将训练结果汇总给服务器,由服务器进行安全的聚合,得到最终模型。
可选的,上述步骤505,将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,可以包括如下步骤:
A1、获取所述Q个训练结果中每一训练结果对应的模型参数,得到Q组模型参数;
A2、根据所述Q组模型参数确定所述Q个参与方中每一参与方的调和平均值,得到Q个调和平均值;
A3、根据所述Q个调和平均值确定所述聚合后的模型参数。
本申请实施例中,可以获取Q个训练结果中每一训练结果对应的模型参数,得到Q组模型参数,再根据Q组模型参数确定Q个参与方中每一参与方的调和平均值,得到Q个调和平均值,具体的,可以确定每一组模型参数中每一模型参数的倒数,得到多个倒数,再确定该多个倒数之和,确定Q与该多个倒数之和之间的比值,将该比值作为该组模型参数的调和平均值,最后,可以根据Q个调和平均值确定聚合后的模型参数。
举例说明下,假设每个模型都有一系列的参数值,假设本申请实施例中的神经网络共有n个参数,依次记为(a1,a2,...,an)假设有m个客户设备参与,服务器收到来自第一个客户设备的模型参数解密后为:
从第二个客户设备发来的模型参数解密后为:
…
从第m个客户设备发来的模型参数解密后为:
则对于每个参数,安全聚合即求该参数对应的各客户设备发来的模型参数的调和平均值,即,对于i=1,2,...,n,有:
这样依次计算得到(a1,a2,...,an)的值作为最终神经网络模型。
可选的,上述步骤505,将所述目标模型参数分发给所述Q个参与方中的每一参与方,可以包括如下步骤:
B1、通过所述加密密钥对所述目标模型参数进行加密,得到加密后的所述目标模型参数;
B2、将加密后的所述目标模型参数分发给所述Q个参与方中的每一参与方。
本申请实施例中,可以通过加密密钥对目标模型参数进行加密,得到加密后的目标模型参数,再将加密后的目标模型参数分发给Q个参与方中的每一参与方。Q个参与方中的每一参与方在接收到加密后的目标模型参数之后,则可以利用加密密钥对加密后的目标模型参数进行解密,得到目标模型参数,再由各个参与方基于目标模型参数更新本地模型。
举例说下,服务器的TEE内可以使用各客户设备的RSA公钥将(a1,a2,...,an)分别加密,并分别发送给对应的客户设备,客户设备接收后,在TEE内使用自己的RSA私钥对其进行解密,得到(a1,a2,...,an)作为最终的神经网络模型。
本申请实施例中,实现了分布式多层前馈神经网络学习训练过程,能够在保护各个参与方不披露自己的数据、自己的本地模型训练结果的前提下,实现各参与方联合训练一个模型的效果。
本申请实施例中,如图6所示,神经网络模型的优化过程可以分成依次执行的三个阶段:初始化阶段、训练阶段、模型分发阶段。
在初始化阶段,完成参与方协商、模型初始化等模型训练开始前的必备工作;在训练阶段,服务器和各客户设备合作,迭代地对神经网络的每一层进行训练;在模型分发阶段,服务器通过聚合生成最终模型后,将模型参数安全地发送给各个客户设备。
其中,如图7所示,针对初始化阶段,在本阶段要完成训练开始前的必备工作。具体实现中,确定参与方,协商神经网络的每一层的规模,服务器生成初始的神经网络模型,各客户设备接收初始模型,服务器分发一个加密密钥给客户设备。
其中,在确定参与方的过程中,如果一个客户设备不存有模型训练所需数据的时候,该客户设备不参与模型训练。服务器首先要确定哪些参与方参与本次训练,具体可以包括以下步骤:首先,服务器向所有的客户设备广播模型训练发起消息,该消息内包含如下信息:模型训练的目的、发起的时间、模型训练需要的数据类型、神经网络的层数num_of_layers。该消息发出后,服务器等待收集回应消息。各客户设备收到广播消息后,查询本地是否存有该模型数据类型,如果存有则回应“参与模型训练”的消息;否则回应“不参与”消息。服务器收到来自所有客户设备的消息后,确定哪些客户设备参与模型训练。
其中,协商神经网络的每一层的规模的过程中,每一层的规模受到设备TEE存储空间大小的限制,由于本申请实施例中,在TEE中执行模型训练过程,如果神经网络的某一层涉及的参数过多,无法在TEE中得以存储和运算,则无法实现本方案保护参数的目的。如图8所示,每个参与的客户设备向服务器上报本地TEE可用于存储参数的存储容量;服务器收集选择其中最小的存储容量,计算能够存储多少个参数;服务器将计算结果(即,参与数量)广播给所有参与的客户设备。
进一步的,假设最小的存储容量为min_storage个字节,假设一个参数占用的存储空间为occpuied_by_one_para字节,服务器通过如下公式计算能够存储的参数:
其中,上述occpuied_by_one_para的取值通常为32、64。
进而,服务器经过计算得到num_of_para的值后,可以得出结论:整个神经网络最多关联num_of_para个参数。
由于前馈型神经网络的特点,每一层节点数的平方等于上一层关联的参数个数,所以整个神经网络所关联的。也就是说,每一层最多不超过个节点数目,其中,参数num_of_layers表示神经网络的层数。再将num_of_para、num_of_nodes发送给所有参与的客户设备。
接下来,服务器生成初始的神经网络模型,具体的,初始的神经网络模型中,所有的参数都是随机生成的,服务器要为每个节点生成一个初始参数,共需要生成num_of_para个参数。每个参数都从一个预设的实数区间中随机选择一个实数。把实数区间记为[bottom,top],即区间上限为top,下限为bottom,典型取值为是[0,1]。
紧接着,各客户设备可以接收初始模型,各客户设备接收上一步服务器生成的所有参数(共num_of_para个),并依据先后顺序关联到每一层的每个节点上。所有初始的参数值、参数和节点的关联关系存储在REE存储区内。
其中,服务器可以分发加密密钥。服务器的TEE随机生成一个128比特的AES加密密钥,使用各客户设备的RSA公钥对AES加密密钥进行加密,并发送给各客户设备。
各客户设备收到后,在TEE中使用自己的RSA私钥在进行解密,并将解密得到的AES加密密钥存储在TEE存储区域中。该密钥用于后续阶段中加密传输训练中的参数值。
进一步的,针对训练阶段,本阶段中,各客户设备在本地TEE内进行神经网络训练,然后将训练结果汇总给服务器,由服务器进行安全的聚合,得到最终模型。如图9所示,参与训练的各客户设备本地进行神经网络模型训练;各客户设备将本地训练结果发送给服务器,服务器对各客户设备发来的结果进行安全聚合。
具体实现中,如图10所示,每个客户设备本地训练神经网络的过程可以包括:REE把神经网络初始模型所有参数存入共享存储区域内;TEE从共享存储区域读取神经网络初始模型;REE将一批训练数据存入共享存储区域;TEE从共享存储区域内读取一批训练数据;TEE内使用训练数据对神经网络模型进行训练;判断是否训练数据全部参与训练,若是,则结束,若否,则执行REE将一批训练数据存入共享存储区域的步骤。
进一步的,客户设备将本地训练好的模型加密并发送给服务器,客户设备在TEE中使用服务器的RSA公钥,对本地训练得到的神经网络模型的所有参数加密,并将加密结果发送给服务器。服务器再对收到的多个模型进行安全聚合。具体的,服务器接收到所有客户设备发来的加密模型后,执行安全聚合操作。
具体实现中,如图11所示,服务器接收来自客户设备的所有加密模型;在服务器的TEE内使用服务器的RSA私钥,对所有加密模型进行解密;对模型中的每个参数,在服务器TEE内计算来自各模型的该参数的调和平均值。
具体的,假设每个模型都有一系列的参数值,假设本方案中的神经网络共有n个参数,依次记为(a1,a2,...,an)假设有m个客户设备参与,服务器收到来自第一个客户设备的模型参数解密后为:j表示客户设备编号,j=1,2,...,m。
接着,可以从第二个客户设备发来的模型参数解密后为:
…
从第m个客户设备发来的模型参数解密后为:
则对于每个参数,安全聚合即求该参数对应的各客户设备发来的模型参数的调和平均值,即,对于i=1,2,...,n,有:
进而,依次计算得到(a1,a2,...,an)的值作为最终神经网络模型。
最后,针对模型分发阶段,本阶段分成两个步骤:其一,服务器TEE内使用各客户设备的RSA公钥将(a1,a2,...,an)分别加密,并分别发送给对应的客户设备;其二,客户设备接收后,在TEE内使用自己的RSA私钥对其进行解密,得到(a1,a2,...,an)作为最终的神经网络模型。
本申请实施例,能够在保护各个参与方不披露自己的数据、自己的本地模型训练结果的前提下,实现各参与方联合训练一个模型的效果。
可以看出,本申请实施例中所描述的数据处理方法,应用于多方计算系统的服务器,多方计算系统包括服务器和P个客户设备,P为大于1的整数;服务器包括第一可信执行环境区域,P个客户设备中每一客户设备均包括一个第二可信执行区域;确定Q个参与方,Q个参与方为P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数,协商神经网络的规模参数,规模参数与Q个客户设备对应的可信执行环境的存储区域相关,根据规模参数生成初始的神经网络模型,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数,将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器,将Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将目标模型参数分发给Q个参与方中的每一参与方,一方面,可以基于参与方的可信执行环境区域的内存动态生成神经网络模型,以及通过各个参与方的可信执行区域安全训练神经网络模型,另一方面,可以安全聚合训练结果,将最终的模型参数进行保护,提升训练过程中数据的安全性。
与上述实施例一致地,请参阅图12,图12是本申请实施例提供的另一种服务器的结构示意图,如图所示,该服务器包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,应用于多方计算系统,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;本申请实施例中,上述程序包括用于执行以下步骤的指令:
确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
可选的,在所述将所述确定Q个参与方方面,上述程序包括用于执行以下步骤的指令:
向所述P个客户设备广播模型训练发起消息,所述模型训练发起消息携带消息内容;
接收所述P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容;
根据所述P个应答消息确定所述Q个参与方。
可选的,所述规模参数包括参数数量和节点数量,在所述协商神经网络的规模参数方面,上述程序包括用于执行以下步骤的指令:
接收所述Q个参与方中每一参与方上报的自身的所述第二可信执行区域可用于存储参数的存储容量,得到Q个存储容量;
从所述Q个存储容量中选取最小值,根据所述最小值确定所述参数数量;
根据所述参数数量和前馈型神经网络模型的特性确定所述节点数量。
可选的,在所述将所述Q个训练结果进行安全聚合操作,得到聚合后的模型参数方面,上述程序包括用于执行以下步骤的指令:
获取所述Q个训练结果中每一训练结果对应的模型参数,得到Q组模型参数;
根据所述Q组模型参数确定所述Q个参与方中每一参与方的调和平均值,得到Q个调和平均值;
根据所述Q个调和平均值确定所述聚合后的模型参数。
可选的,上述程序还包括用于执行以下步骤的指令:
通过所述第一可信执行环境区域生成加密密钥,使用所述Q个参与方中每一参与方的公钥对所述加密密钥进行加密,得到Q个重加密密钥,将所述Q个重加密密钥分别发送给所述Q个参与方中相应的参与方;通过所述Q个参与方中每一参与方采用各自的私钥对相应的重加密密钥进行解密,得到所述加密密钥;
在所述将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点方面,上述程序包括用于执行以下步骤的指令:
使用所述加密密钥对所述初始的神经网络模型进行加密,得到加密后的所述初始的神经网络模型,再将加密后的所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方采用所述加密密钥对加密后的所述初始的神经网络模型进行解密,得到所述初始的神经网络模型,并将所述初始参数依据先后顺序关联到每一层的每个节点。
可选的,在所述将所述目标模型参数分发给所述Q个参与方中的每一参与方方面,上述程序包括用于执行以下步骤的指令:
通过所述加密密钥对所述目标模型参数进行加密,得到加密后的所述目标模型参数;
将加密后的所述目标模型参数分发给所述Q个参与方中的每一参与方。
可以看出,本申请实施例中所描述的服务器,应用于多方计算系统的服务器,多方计算系统包括服务器和P个客户设备,P为大于1的整数;服务器包括第一可信执行环境区域,P个客户设备中每一客户设备均包括一个第二可信执行区域;确定Q个参与方,Q个参与方为P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数,协商神经网络的规模参数,规模参数与Q个客户设备对应的可信执行环境的存储区域相关,根据规模参数生成初始的神经网络模型,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数,将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器,将Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将目标模型参数分发给Q个参与方中的每一参与方,一方面,可以基于参与方的可信执行环境区域的内存动态生成神经网络模型,以及通过各个参与方的可信执行区域安全训练神经网络模型,另一方面,可以安全聚合训练结果,将最终的模型参数进行保护,提升训练过程中数据的安全性。
图13是本申请实施例中所涉及的一种数据处理装置1300的功能单元组成框图,该数据处理装置1300应用于多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;该数据处理装置1300可以包括:确定单元1301、协商单元1302、生成单元1303、训练单元1304和聚合单元1305,其中,
所述确定单元1301,用于确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
所述协商单元1302,用于协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
所述生成单元1303,用于根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
所述训练单元1304,用于将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
所述聚合单元1305,用于将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
可选的,在所述将所述确定Q个参与方方面,所述确定单元1301具体用于:
向所述P个客户设备广播模型训练发起消息,所述模型训练发起消息携带消息内容;
接收所述P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容;
根据所述P个应答消息确定所述Q个参与方。
可选的,所述规模参数包括参数数量和节点数量,在所述协商神经网络的规模参数方面,所述协商单元1302具体用于:
接收所述Q个参与方中每一参与方上报的自身的所述第二可信执行区域可用于存储参数的存储容量,得到Q个存储容量;
从所述Q个存储容量中选取最小值,根据所述最小值确定所述参数数量;
根据所述参数数量和前馈型神经网络模型的特性确定所述节点数量。
可选的,在所述将所述Q个训练结果进行安全聚合操作,得到聚合后的模型参数方面,所述聚合单元1305具体用于:
获取所述Q个训练结果中每一训练结果对应的模型参数,得到Q组模型参数;
根据所述Q组模型参数确定所述Q个参与方中每一参与方的调和平均值,得到Q个调和平均值;
根据所述Q个调和平均值确定所述聚合后的模型参数。
可选的,所述数据处理装置1300具体用于:
通过所述第一可信执行环境区域生成加密密钥,使用所述Q个参与方中每一参与方的公钥对所述加密密钥进行加密,得到Q个重加密密钥,将所述Q个重加密密钥分别发送给所述Q个参与方中相应的参与方;通过所述Q个参与方中每一参与方采用各自的私钥对相应的重加密密钥进行解密,得到所述加密密钥;
在所述将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点方面,所述训练单元1304具体用于:
使用所述加密密钥对所述初始的神经网络模型进行加密,得到加密后的所述初始的神经网络模型,再将加密后的所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方采用所述加密密钥对加密后的所述初始的神经网络模型进行解密,得到所述初始的神经网络模型,并将所述初始参数依据先后顺序关联到每一层的每个节点。
可选的,在所述将所述目标模型参数分发给所述Q个参与方中的每一参与方方面,所述聚合单元1305具体用于:
通过所述加密密钥对所述目标模型参数进行加密,得到加密后的所述目标模型参数;
将加密后的所述目标模型参数分发给所述Q个参与方中的每一参与方。
可以看出,本申请实施例中所描述的数据处理装置,应用于多方计算系统的服务器,多方计算系统包括服务器和P个客户设备,P为大于1的整数;服务器包括第一可信执行环境区域,P个客户设备中每一客户设备均包括一个第二可信执行区域;确定Q个参与方,Q个参与方为P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数,协商神经网络的规模参数,规模参数与Q个客户设备对应的可信执行环境的存储区域相关,根据规模参数生成初始的神经网络模型,初始的神经网络模型中所有的参数都是随机生成的,服务器为每个节点生成一个初始参数,将初始的神经网络模型发送给Q个参与方中的每一参与方,通过该每一参与方将初始参数依据先后顺序关联到每一层的每个节点,并通过Q个参与方中的每一参与方的第二可信执行区域对各自的初始的神经网络模型进行神经网络训练,得到Q个训练结果,将Q个训练结果汇总给服务器,将Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将目标模型参数分发给Q个参与方中的每一参与方,一方面,可以基于参与方的可信执行环境区域的内存动态生成神经网络模型,以及通过各个参与方的可信执行区域安全训练神经网络模型,另一方面,可以安全聚合训练结果,将最终的模型参数进行保护,提升训练过程中数据的安全性。
可以理解的是,本实施例的数据处理装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;所述方法包括:
确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
2.根据权利要求1所述的方法,其特征在于,所述将所述确定Q个参与方,包括:
向所述P个客户设备广播模型训练发起消息,所述模型训练发起消息携带消息内容;
接收所述P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容;
根据所述P个应答消息确定所述Q个参与方。
3.根据权利要求1或2所述的方法,其特征在于,所述规模参数包括参数数量和节点数量,所述协商神经网络的规模参数,包括:
接收所述Q个参与方中每一参与方上报的自身的所述第二可信执行区域可用于存储参数的存储容量,得到Q个存储容量;
从所述Q个存储容量中选取最小值,根据所述最小值确定所述参数数量;
根据所述参数数量和前馈型神经网络模型的特性确定所述节点数量。
4.根据权利要求1或2所述的方法,其特征在于,所述将所述Q个训练结果进行安全聚合操作,得到聚合后的模型参数,包括:
获取所述Q个训练结果中每一训练结果对应的模型参数,得到Q组模型参数;
根据所述Q组模型参数确定所述Q个参与方中每一参与方的调和平均值,得到Q个调和平均值;
根据所述Q个调和平均值确定所述聚合后的模型参数。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过所述第一可信执行环境区域生成加密密钥,使用所述Q个参与方中每一参与方的公钥对所述加密密钥进行加密,得到Q个重加密密钥,将所述Q个重加密密钥分别发送给所述Q个参与方中相应的参与方;通过所述Q个参与方中每一参与方采用各自的私钥对相应的重加密密钥进行解密,得到所述加密密钥;
所述将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,包括:
使用所述加密密钥对所述初始的神经网络模型进行加密,得到加密后的所述初始的神经网络模型,再将加密后的所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方采用所述加密密钥对加密后的所述初始的神经网络模型进行解密,得到所述初始的神经网络模型,并将所述初始参数依据先后顺序关联到每一层的每个节点。
6.根据权利要求5所述的方法,其特征在于,所述将所述目标模型参数分发给所述Q个参与方中的每一参与方,包括:
通过所述加密密钥对所述目标模型参数进行加密,得到加密后的所述目标模型参数;
将加密后的所述目标模型参数分发给所述Q个参与方中的每一参与方。
7.一种数据处理装置,其特征在于,应用于多方计算系统中的服务器,所述多方计算系统包括所述服务器和P个客户设备,P为大于1的整数;所述服务器包括第一可信执行环境区域,所述P个客户设备中每一客户设备均包括一个第二可信执行区域;所述装置包括:确定单元、协商单元、生成单元、训练单元和聚合单元,其中,
所述确定单元,用于确定Q个参与方,所述Q个参与方为所述P个客户设备中的Q个客户设备,Q为小于或等于Q且大于1的整数;
所述协商单元,用于协商神经网络的规模参数,所述规模参数与所述Q个客户设备对应的可信执行环境的存储区域相关;
所述生成单元,用于根据所述规模参数生成初始的神经网络模型,所述初始的神经网络模型中所有的参数都是随机生成的,所述服务器为每个节点生成一个初始参数;
所述训练单元,用于将所述初始的神经网络模型发送给所述Q个参与方中的每一参与方,通过该每一参与方将所述初始参数依据先后顺序关联到每一层的每个节点,并通过所述Q个参与方中的每一参与方的所述第二可信执行区域对各自的所述初始的神经网络模型进行神经网络训练,得到Q个训练结果,将所述Q个训练结果汇总给所述服务器;
所述聚合单元,用于将所述Q个训练结果进行安全聚合操作,得到聚合后的目标模型参数,将所述目标模型参数分发给所述Q个参与方中的每一参与方。
8.根据权利要求7所述的装置,其特征在于,在所述将所述确定Q个参与方方面,所述确定单元具体用于:
向所述P个客户设备广播模型训练发起消息,所述模型训练发起消息携带消息内容;
接收所述P个客户设备中每一客户设备返回的应答消息,得到P个应答消息,每一应答消息包括是否参与模型训练的回复内容;
根据所述P个应答消息确定所述Q个参与方。
9.一种服务器,其特征在于,包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-6任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581002.XA CN117556467B (zh) | 2023-11-23 | 2023-11-23 | 数据处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311581002.XA CN117556467B (zh) | 2023-11-23 | 2023-11-23 | 数据处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117556467A true CN117556467A (zh) | 2024-02-13 |
CN117556467B CN117556467B (zh) | 2024-06-07 |
Family
ID=89812405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311581002.XA Active CN117556467B (zh) | 2023-11-23 | 2023-11-23 | 数据处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117556467B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021143466A1 (zh) * | 2020-01-13 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 使用可信执行环境来进行神经网络模型训练的方法和装置 |
WO2021159684A1 (zh) * | 2020-02-14 | 2021-08-19 | 云从科技集团股份有限公司 | 数据处理方法、系统、平台、设备及机器可读介质 |
CN113435592A (zh) * | 2021-05-22 | 2021-09-24 | 西安电子科技大学 | 一种隐私保护的神经网络多方协作无损训练方法及系统 |
CN115455476A (zh) * | 2022-09-16 | 2022-12-09 | 中国电力科学研究院有限公司 | 基于多密钥同态加密的纵向联邦学习隐私保护方法及系统 |
CN116384461A (zh) * | 2021-12-20 | 2023-07-04 | 新智我来网络科技有限公司 | 基于联合学习的模型优化训练方法及装置 |
-
2023
- 2023-11-23 CN CN202311581002.XA patent/CN117556467B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021143466A1 (zh) * | 2020-01-13 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 使用可信执行环境来进行神经网络模型训练的方法和装置 |
WO2021159684A1 (zh) * | 2020-02-14 | 2021-08-19 | 云从科技集团股份有限公司 | 数据处理方法、系统、平台、设备及机器可读介质 |
CN113435592A (zh) * | 2021-05-22 | 2021-09-24 | 西安电子科技大学 | 一种隐私保护的神经网络多方协作无损训练方法及系统 |
CN116384461A (zh) * | 2021-12-20 | 2023-07-04 | 新智我来网络科技有限公司 | 基于联合学习的模型优化训练方法及装置 |
CN115455476A (zh) * | 2022-09-16 | 2022-12-09 | 中国电力科学研究院有限公司 | 基于多密钥同态加密的纵向联邦学习隐私保护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117556467B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112910840B (zh) | 一种基于联盟区块链的医疗数据存储共享方法及系统 | |
TWI706279B (zh) | 多方安全計算方法及裝置、電子設備 | |
US11601407B2 (en) | Fast oblivious transfers | |
CN112751673B (zh) | 一种基于端边云协同的可监管数据隐私共享方法 | |
Zhang et al. | Secure and efficient data storage and sharing scheme for blockchain‐based mobile‐edge computing | |
CN103229450B (zh) | 用于安全多租户数据存储的系统和方法 | |
CN109728906B (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
CN112380578A (zh) | 一种基于区块链和可信执行环境的边缘计算框架 | |
CN114219483B (zh) | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 | |
JP2023500570A (ja) | コールドウォレットを用いたデジタルシグニチャ生成 | |
CN109635572A (zh) | 一种基于区块链的合约签订方法、装置及终端设备 | |
Liu et al. | EMK-ABSE: Efficient multikeyword attribute-based searchable encryption scheme through cloud-edge coordination | |
CN117201132A (zh) | 一种完全去中心化的多委员会属性基加密方法及其应用 | |
CN111200604A (zh) | 一种基于数据聚合的隐私保护方法及系统 | |
CN117390676A (zh) | 可信执行环境的离线隐私保护预测方法、系统及设备 | |
CN117278210A (zh) | 基于可信执行环境的随机不经意传输扩展方法及相关装置 | |
CN117556467B (zh) | 数据处理方法及相关装置 | |
CN111865948A (zh) | 基于匿名身份的对等云认证和密钥协商方法、系统和计算机存储介质 | |
Wang et al. | Provable Secure for the Ultra-lightweight RFID Tag Ownership Transfer Protocol in the Context of IoT Commerce. | |
Li et al. | Two‐Party Attribute‐Based Key Agreement Protocol with Constant‐Size Ciphertext and Key | |
CN110677253A (zh) | 基于非对称密钥池和ecc的抗量子计算rfid认证方法及系统 | |
TWI782701B (zh) | 區塊鏈錢包的非互動式批核系統及其方法 | |
Li et al. | Efficient and traceable data sharing for the Internet of Things in smart cities | |
CN108712657B (zh) | 一种弹幕验证方法、计算机设备和存储介质 | |
CN115460020B (zh) | 数据共享方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant |