CN117688576A - 一种基于可信执行环境的联邦学习计算方法及相关设备 - Google Patents
一种基于可信执行环境的联邦学习计算方法及相关设备 Download PDFInfo
- Publication number
- CN117688576A CN117688576A CN202311727012.XA CN202311727012A CN117688576A CN 117688576 A CN117688576 A CN 117688576A CN 202311727012 A CN202311727012 A CN 202311727012A CN 117688576 A CN117688576 A CN 117688576A
- Authority
- CN
- China
- Prior art keywords
- model
- federal learning
- training
- stage
- learning model
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 360
- 238000004891 communication Methods 0.000 claims description 118
- 230000002427 irreversible effect Effects 0.000 claims description 103
- 238000012795 verification Methods 0.000 claims description 80
- 230000006870 function Effects 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 22
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 2
- 238000013175 transesophageal echocardiography Methods 0.000 description 87
- 230000002441 reversible effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000011160 research Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000003745 diagnosis Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000011282 treatment Methods 0.000 description 4
- 238000013459 approach Methods 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
- 201000010099 disease Diseases 0.000 description 3
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000001052 transient effect Effects 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种基于可信执行环境的联邦学习计算方法及相关设备,用于在可信执行环境中保护联邦学习训练参与方的数据隐私安全以及训练后的模型安全。包括:确定目标联邦学习模型中第一级联邦学习模型,第二级联邦学习模型及第三级联邦学习模型;获取联邦学习训练参与方进行联邦学习模型训练时的目标识别码,根据目标识别码确定目标训练数据;将目标训练数据输入至第一级联邦学习模型、第二级联邦学习模型及第三级联邦学习模型,得到模型参数数据;根据模型参数数据及对应于目标训练数据的预测结果数据,分别调整第一模型参数、第二模型参数和第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种基于可信执行环境的联邦学习计算方法及相关设备。
背景技术
联邦学习是一种能够利用多方私有数据集来完成一个共有模型的训练,同时保证每方数据安全和隐私的深度学习算法。在进行联邦学习时,一般情况下,各方的私有数据不离开本方基础设施,以保证数据安全及减少网络传输,尤其是在数据提供方是带宽受限的物联网(IoT,internet ofthings)设备时。
同时,由于联邦学习服务器架设在一个独立于各方的第三方设备(比如公有云)上,参与运算的各方可能并不信任这个第三方,有可能各方提供宝贵的私有数据训练而成的模型被第三方窃取。具体而言,由于交互参数会导致数据存在泄露的风险,现有的联邦学习方案往往需要结合其他隐私保护技术以实现安全的联邦模型训练过程。因此,保存最后的公有模型和全局参数用于自己的推理服务,且在使用模型进行推理服务的过程中,如何保障联邦学习各数据提供方的数据安全,是现在亟须解决的技术难题。
发明内容
本申请实施例提供了一种基于可信执行环境的联邦学习计算,用于在可信执行环境中保护联邦学习训练参与方的数据隐私安全以及训练后的模型安全。
本申请实施例第一方面提供了一种基于可信执行环境的联邦学习计算方法,应用于计算机设备,所述计算机设备与联邦学习服务器通信连接,目标联邦学习模型运行于所述计算机设备及所述联邦学习服务器,所述联邦学习服务器及所述计算机设备部署有可信执行环境,所述方法包括:
确定所述目标联邦学习模型中的底层局部模型,将所述底层局部模型设置为第一级联邦学习模型,并以所述目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将所述目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将所述目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型;其中,所述第一不可逆运算层为所述目标联邦学习模型中排位次序为第一排位的不可逆运算层;
将所述第一级联邦学习模型部署于所述计算机设备的第一级可信执行环境,将所述第二级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以内,所述第三级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以外;
获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据;
将所述目标训练数据输入至所述第一级联邦学习模型,得到初始输出数据;将所述初始输出数据传输至所述第二级联邦学习模型,得到中间输出数据;将所述中间输出数据传输至所述第三级联邦学习模型,得到对应于所述第三级联邦学习模型的模型参数数据;
根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、所述第二级联邦学习模型的第二模型参数和所述第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型;其中,训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型用于组成训练完成的联邦学习模型。
可选地,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据,包括:
在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集;其中,所述训练数据集包括不同识别码的训练数据,任一所述第一级可信执行环境与任一所述联邦学习训练参与方的所述训练数据集存在关联关系;
将置于所述第一级可信执行环境中的所述训练数据集通过第一级可信执行环境间的两两连接的第一安全通信通道进行求交运算,获取每一联邦学习训练参与方的相同识别码,并将所述相同识别码设置为所述目标识别码;
将任一所述联邦学习训练参与方的训练数据集中与所述目标识别码对应的训练数据确定为初始训练数据;
将所述所有联邦学习训练参与方提供的所述初始训练数据,输入至与所述所有联邦学习训练参与方各自对应的所述第一级联邦学习模型,得到训练完成的所述目标训练数据。
可选地,所述在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集之前,所述方法还包括:
建立任意任一所述联邦学习训练参与方与所述第一级可信执行环境上的第一公共通信通道;其中,所述第一公共通信通道用于所述联邦学习训练参与方与所述第一级可信执行环境进行验证;
当所述第一级可信执行环境满足第一预设验证条件时,建立所述联邦学习训练参与方的所述第一安全通信通道。
可选地,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
建立任意两个联邦学习训练参与方于所述计算机设备的所述第一级可信执行环境上的第二公共通信通道;其中,所述第二公共通信通道用于所述联邦学习训练参与方传输验证请求信息及验证结果信息;
当所述验证请求信息及所述验证结果信息满足第二预设验证条件时,建立所述任意两个联邦学习训练参与方的第二安全通信通道;其中,所述第二安全通信通道用于传输所述目标识别码。
可选地,所述建立任意两个联邦学习训练参与方于所述计算机设备的所述第一级可信执行环境上的第二公共通信通道之后,所述方法还包括:
触发信息定位指令,以根据所述信息定位指令验证所述第一级联邦学习模型的信息定位功能;
若所述信息定位功能满足预设功能需求,确定所述第一级联邦学习模型验证通过。
可选地,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
建立所述计算机设备与所述联邦学习服务器的第三公共通信通道;其中,所述第三公共通信通道用于所述计算机设备验证所述联邦学习服务器的所述第三级可信执行环境;
当所述联邦学习服务器的所述第二级可信执行环境满足第三预设验证条件时,建立所述计算机设备与所述联邦学习服务器的第三安全通信通道;其中,所述第三安全通信通道用于传输所述初始输出数据及所述模型参数数据。
可选地,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
验证所述第二级联邦学习模型是否存在不可逆运算层,且所述不可逆运算层是否运行于所述第二级联邦学习模型;
所述根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型之后,所述方法还包括:
当所述第二级联邦学习模型存在所述不可逆运算层,且所述第二级联邦学习模型运行所述不可逆运算层时,将所述第二模型参数及所述第三模型参数发送至任一联邦学习训练参与方,并确定与所述任一联邦学习训练参与方对应的所述第一模型参数。
本申请实施例第二方面提供了一种基于可信执行环境的联邦学习计算系统,应用于计算机设备,所述计算机设备与联邦学习服务器通信连接,目标联邦学习模型运行于所述计算机设备及所述联邦学习服务器,所述联邦学习服务器及所述计算机设备部署有可信执行环境,所述系统包括:
切分单元,用于确定所述目标联邦学习模型中的底层局部模型,将所述底层局部模型设置为第一级联邦学习模型,并以所述目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将所述目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将所述目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型;其中,所述第一不可逆运算层为所述目标联邦学习模型中排位次序为第一排位的不可逆运算层;
部署单元,用于将所述第一级联邦学习模型部署于所述计算机设备的第一级可信执行环境,将所述第二级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以内,所述第三级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以外;
获取单元,用于获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据;
输入单元,用于将所述目标训练数据输入至所述第一级联邦学习模型,得到初始输出数据;将所述初始输出数据传输至所述第二级联邦学习模型,得到中间输出数据;将所述中间输出数据传输至所述第三级联邦学习模型,得到对应于所述第三级联邦学习模型的模型参数数据;
调整单元,用于根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、所述第二级联邦学习模型的第二模型参数和所述第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型;其中,训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型用于组成训练完成的联邦学习模型。
本申请实施例第二方面提供的用于执行第一方面所述的联邦学习计算方法。
本申请实施例第三方面提供了一种基于可信执行环境的联邦学习计算装置,包括:
中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
所述存储器为短暂存储存储器或持久存储存储器;
所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的联邦学习计算方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面所述的联邦学习计算方法。
从以上技术方案可以看出,本申请实施例具有以下优点:通过本申请实施例公开的一种基于可信执行环境的联邦学习计算方法,通过在可信执行环境中将联邦学习模型划分,保证了联邦学习模型可以在不同设备上进行训练,使得各联邦学习训练参与方不仅可以将他们的模型部署到本地计算设备上,而且可以安全地部署到公有云的服务器中。同时,通过高效的可信执行环境,提高了联邦学习模型效率。再有,通过模型划分,使得即使IoT这种内存和计算能力受限的设备也可以参与大模型的联邦学习。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有的一种联邦学习计算方法的系统架构示意图;
图2为本申请实施例公开的一种基于可信执行环境的联邦学习计算系统的架构示意图;
图3为本申请实施例公开的一种本地可信执行环境的验证及通道建立的流程示意图;
图4为本申请实施例公开的一种本地可信执行环境的相互验证的流程示意图;
图5为本申请实施例公开的一种生成本地训练数据的流程示意图;
图6为本申请实施例公开的一种基于可信执行环境的联邦学习计算方法的流程示意图;
图7为本申请实施例公开的另一种基于可信执行环境的联邦学习计算方法的流程示意图;
图8为本申请实施例公开的另一种基于可信执行环境的联邦学习计算方法的流程示意图;
图9为本申请实施例公开的一种基于可信执行环境的联邦学习计算系统的结构示意图;
图10为本申请实施例公开的一种基于可信执行环境的联邦学习计算装置的结构示意图。
具体实施方式
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
还需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为现有的一种联邦学习计算方法的系统架构示意图。具体而言,图一所示是由某社区医院、某科研机构以及某专科医院三方参与的联邦学习。参与的每一方都有自己的私有数据集,同时还拥有一个与联邦学习全局服务器上的全局模型完全相同的本地私有模型。于图1中,参与计算的每一方利用本地私有数据集和私有模型进行一轮训练。训练完成后将私有模型的参数上传给位于联邦学习全局服务器中的全局模型,如图1中1、1′以及1″所示。再有,联邦学习全局服务器中的全局模型按照预先定义的加权平均算法对三方上传的三份私有模型的参数进行聚合,如图1中2所示。其次,联邦学习全局服务器将聚合平均后的参数发送给各参与运算的第三方,如图1中3所示。参与运算的三方用从联邦学习全局服务器接收到的聚合平均后的参数更新本地模型。参与运算的三方利用更新后的模型以及本地私有数据集进行下一轮的训练。执行第1步联邦学习中按照私有数据集中数据格式是否相同可以分为水平和垂直的联邦学习。具体此处不对水平或垂直联邦学习的数据集格式进行详细描述。
例如:图1中的社区医院和专科医院的数据集由就诊病人的病历组成。这两家医院由于采用相同的病历本,因此每条数据的格式是相同的,都包含病人姓名、性别、年龄、病情诊断、医疗方案等。对于这两家医院而言,由于每条数据记录格式在水平方向是相同的,只是每一方包含不同样例(不同病人)。如果需要合并两家私有数据集的话,只需要将两家的记录在垂直方向简单叠加即可。该联邦学习方案称为水平联邦学习。图1中的科研机构的每条记录和两家医院中的每一家记录格式都不同。例如,该科研机构和某医院可能包含相同的信息,比如病人姓名、性别、年龄等,但是同时包含不同的信息,比如医院记录还可能包含病情诊断、医疗方案,而科研机构可能包含基因信息、病毒培养结果等。同时两家机构又可能同时包含某一特定病人的信息。对于这两家机构而言,如果需要合并两家私有数据集的话,需要找到在两家机构都存在的某一特定病人,将两家都包含的信息比如病人姓名、性别、年龄,以及每一家机构特有的信息比如病情诊断、医疗方案以及基因信息、病毒培养结果在水平方向进行组合,合并成一条记录。该联邦学习方案称为水平联邦学习。图一中由于对于两家医院而言,该联邦学习方案是水平的,而对于任何一家医院和科研机构而言是垂直的,因此对于这三家机构而言,就是水平和垂直联邦学习方案的混合,称为混合型联邦学习。
由此,为了找到某条特定记录是否存在于每方数据集中同时保证每方数据集对其它方不可见,需要用到多方安全计算(MPC,multi party computation)的一个特例,私有集合求交(PSI,private sets intersection)算法。假设每方的每条记录都由一个相同的关键值Key ID来表示,PSI的目的就是运用MPC在保证每方数据集对其它方不可见的情况下找到这些存在于所有参与方的数据集中的记录的ID集合。因此,由以上描述可知,在找到某个存在于所有数据集中的某个ID以后,会发现,对应于该ID,每方数据集中的记录格式可能并不相同,比如图1中,医院的记录可能是ID,姓名、性别、年龄、病情诊断、医疗方案,而科研机构的记录可能是ID,姓名、性别、年龄、基因信息、病毒培养结果。由于格式不同,无法用同一个深度学习模型的输入层来兼容这两种不同的输入格式。因此,垂直型联邦学习需要对不同输入做不同的处理:用每方特有的一个称之为底层模型(Bottom-model)的模型来处理每一方特定的输入格式,用一个共同的模型来执行输入异构完成后的相同运算。在图1中,每方的局部模型会比联邦服务全局服务器上的全局模型多一个底层模型。在进行参数聚合时,局部模型和全局模型只需要对全局模型中的参数进行处理。此外,由于联邦学习服务器架设在一个独立于各方的第三方设备(比如公有云)上,参与运算的各方可能并不信任这个第三方。有可能各方提供宝贵的私有数据训练而成的模型的知识产权被该第三方窃取。
由此,目前的联邦学习方案实现如上所述。这些实现存在如下问题:1、这些实现大多基于MPC和同态加密实现。此外,有些方案也采用基于TEE的方案来模拟MPC实现,将整个模型放入TEE中进行训练。2、参与运算的各方都必须在本地训练自己的私有模型。3、基于TEE的方案来模拟MPC实现,将整个模型放入TEE中进行训练。
由此,为解决上述问题,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参阅图6,图6为本申请实施例公开的一种基于可信执行环境的联邦学习计算方法的流程示意图。包括步骤601-步骤605。需要提前说明的是,本申请技术方案中,主要应用于计算机设备,其中,该计算机设备与联邦学习服务器通信连接,相关的联邦学习模型运行于计算机设备及联邦学习服务器中。在联邦学习服务器及计算机设备中均部署有TEE。为方便理解和描述,后续不再对此进行赘述。
601、确定目标联邦学习模型中的底层局部模型,将底层局部模型设置为第一级联邦学习模型,并以目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型。
具体的,先确定目标联邦学习模型中的底层局部模型,由此,将底层局部模型设置为第一级联邦学习模型,再确定目标联邦学习模型的不可逆运算层,从而,以目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型。不难理解的是,第一不可逆运算层为目标联邦学习模型中排位次序为第一排位的不可逆运算层。需要说明的是,本实施例中并不对第一不可逆运算层在目标联邦学习模型中的排位次序进行限制,例如,第一不可逆运算层可以是在排位次序中第五层不可逆运算层,也可以是第一层不可逆运算层,具体此处不做赘述。然后,在第二级联邦学习模型中,则是包括第一不可逆运算层之前的不可逆运算层或可逆运算层。第三级联邦学习模型中,则是包括第一不可逆运算层之后的不可逆运算层或可逆运算层,具体此处不做限制。
在其中一个具体的实施例中,还可以是通过两级TEE以及模型的数学不可逆切分来实现。具体此处不做赘述。
602、将第一级联邦学习模型部署于计算机设备的第一级可信执行环境,将第二级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以内,第三级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以外。
基于步骤601的描述,将第一级联邦学习模型部署于计算机设备的第一级可信执行环境,将第二级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以内,第三级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以外。
在其中一个具体的实施例中,具体而言,1.两级TEE的部署:a)第一级TEE部署在参与运算的各方私有计算设备上;b)第二级TEE部署在第三方联邦学习服务器上。2.将模型切分按照数学不可逆原则切分为三部分:a)第一部分在第一级TEE内;b)第二部分在第二级TEE内;c)第三部分在联邦服务器TEE外完成模型剩余部分的运算。第一级TEE将各方的私有数据集输入,完成MPC的PSI运算。将PSI运算的结果(垂直型)或者本地私有数据集作为模型切分第一部分的输入,并将第一部分的运算结果作为输出。第二级TEE将第一级TEE的输出作为输入,完成模型切分第二部分的运算,并将第一部分的运算结果作为输出。联邦学习服务器利用本地计算资源(CPU或者GPU)来完成模型剩余第三部分的运算。
进一步的,其中,可参阅图2,图2为本申请实施例公开的一种基于可信执行环境的联邦学习计算系统的架构示意图。具体而言,
1.本地计算环境(计算机设备)上的第一级可信执行环境TEE,参与联邦计算的每一方都会在本地计算环境上创建这样一个TEE。该TEE内包含:(a)PSI运算:以找到用于从各方数据集中找到相同关键值ID的集合,图2中用ID1,ID2,和ID3三个ID值表示。这里保留了PSI这个名称,但是由于PSI的计算是在本地TEE内完成的,其算法可以直接采用通用数学求交运算,而不要采用MPC的PSI实现,因此效率更高。由于每方的PSI都需要比对己方与其它所有方的所有ID,因此所有TEE环境内的PSI模块都应该具备和其它PSI模块的网络通信能力。(b)在PSI完成共同ID的寻找后,每方需要在本地数据集中找到这些共同ID对应的详细数据记录。图2中,PSI在三方数据集中共找到ID1,ID2,和ID3三个共同ID值,每方在本地记录中查找到对应于这三个ID的三条记录,如图4所示,每方找到的具体记录的数据格式和值可能是不同的。(c)将每方的本地记录中对应于共同ID的记录作为输入,执行本例底层模型的计算。
2.联邦学习服务器环境上的第二级可信执行环境TEE,这个TEE是全局唯一的。该TEE中包含全局模型的头部一层或多层。具体在全局模型中如何划分,应符合数据不可逆运算原则。该TEE以联邦学习所有参与方的输出作为输入,执行模型头部一层或多层的计算,将最后一层的运算结果作为输出。
3.联邦学习服务器环境上的外部执行环境:该环境运算全局模型除第二级可信执行环境TEE包含的头部一层或多层以外的所有层。通常为了提高性能,该外部执行环境可以是CPU或者任何加速计算设备比如图形加速卡(GPU,graphics processing unit)、现场可编程控制器(FPGA,fieldprogrammable gate array)、专用加速芯片(ASIC,applicationspecific integrated circuit)。
其中,为了保护每方的本地数据,如果第一级可信执行环境TEE内某方的底层模型中不包含不可逆运算,从而可以经由该方第一级TEE的输出反向求出该方的输入,则可以按数学不可逆运算原则将全局模型划分为三块,将第一块和每方的底层模型结合放入第一级TEE中,第二块放入第二级TEE中,第三块在外部环境中执行。综上所述,第一级联邦学习模型可以理解为目标联邦学习模型的子模型,而第二级联邦学习模型及第三级联邦学习模型可以理解为目标联邦学习模型的两个分区或划分。
不难理解的是,由图2可知,第二级可信执行环境里的Norm、Multi-HeadAttention以及MLP都是不可逆运算,都可以作为划分分界线。同理,这个分界线也可以在后续任一分界处中的任一层。具体划分取决于用户对安全性和性能的平衡需求。简而言之,放入可信执行环境中的计算越多,则越安全。反之,放在可行执行环境外的计算越多,则性能越好。
由于在两部分之间的通信数据中,第一个MLP层的计算结果Ο=σ(M×X+B),在M为不可逆的情况下该运算是不可逆的层。
由此,基于上述图2的描述,本申请技术方案主要提供一个实现基于可信执行环境和不可逆运算的大模型联邦计算在不可信服务器上的高效多级TEE实现方案,因此该方案的参与方分为三类角色:
1.不可信服务器平台提供方:该平台提供方通常为公有云提供商或者是某一联邦计算模型参与训练方的私有云,用以提供训练大模型所需的硬件(计算资源、网络资源和存储资源)和软件(操作系统、软件执行环境如Python,模型训练框架如TensorFlow,Pytorch或第三方训练框架。该模型训练框架需提供将整个模型进行切分并独立部署的能力,也可由下述之专利方案提供方在该模型训练框架提供的开发接口上自行开发。模型的切分并独立部署不属于该专利描述的技术范畴)。
2.方案提供方:方案提供方提供该方案中所有的公共实现,使得其它参与方可以只关注于自己的特定业务,而无需关心这些公共计算的实现。这些公共实现包括:(a)第一级TEE中的:i.PSI计算的实现以及相互验证和通信;ii.根据PSI计算结果ID在本地训练数据中定位相应的记录;iii.将查找到的记录输入给计算参与方提供的本地模型。(b)提供对各级TEE的验证的实现。(c)提供各级TEE之间以及TEE内部与外部之间的数据通信与交换。(d)将计算参与方提供的模型按照数学不可逆运算原则进行切分,并将切分部署到相应的各级TEE计算环境中。
3.联邦计算模型参与训练方(联邦学习训练参与方):由于不可信服务器平台提供方以及方案提供方的存在,联邦计算模型参与训练方可以只关注于数据和如何定义模型本身,而无需考虑联邦计算实现的细节。具体包括:(a)如何按照专利方案提供方的PSI计算的实现定义自己的训练数据集格式(ID及训练数据记录)。(b)如何定义适合本地数据格式的底层模型。由于具体应用的不同,本地底层模型的定义也将千差万别,如何定义本地底层模型并将各联邦计算模型参与训练方底层模型的输出输入到公共模型也将随着具体应用的改变而改变。
为方便理解和描述,后续不再对此进行赘述。
603、获取多个联邦学习训练参与方于第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据目标识别码确定对应不同联邦学习训练参与方的目标训练数据。
由步骤602可知,为方便对本实施例中的联邦学习模型进行训练,同时,也获取到对应于联邦学习训练参与方相关数据的训练结果,联邦学习训练参与方可通过安全通信通道向计算机设备提供对应的目标训练数据。不难理解的是,目标训练数据在部署于计算机设备的第一级可信执行环境中第一级联邦学习模型进行训练,目标训练数据包括对应不同联邦学习训练参与方中,具有相同目标识别码的训练数据。
在其中一个具体的实施例中,在对所有联邦学习训练参与方及其己方第一级TEE环境或第二级TEE环境的安全验证通过后,便可以建立联邦学习训练参与方与计算机设备的安全通信通道。不难理解的是,在本实施例中,该安全通信通道还可以理解为联邦学习训练参与方向目标联邦学习模型传输训练数据的通讯通道,具体此处不对安全通信通道进行限制,后续也不再对此进行赘述。
604、将目标训练数据输入至第一级联邦学习模型,得到初始输出数据;将初始输出数据传输至第二级联邦学习模型,得到中间输出数据;将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的模型参数数据。
将第二级联邦学习模型及第三级联邦学习模型划分完成后,便可以对目标联邦学习模型进行训练。具体的,先获取联邦学习训练参与方提供的目标训练数据,再将目标训练数据输入至第一级联邦学习模型,得到初始输出数据;将初始输出数据传输至第二级联邦学习模型,得到中间输出数据;将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的模型参数数据。
在其中一个具体的实施例中,将目标训练数据输入至第一级可信执行环境中的底层局部模型后,底层局部模型对目标训练数据进行训练,得到初始输出数据,然后,第二级可信执行环境中的运算层对初始输出数据进行计算,从而获取中间输出数据。其中,目标训练数据可以是上述中所描述的包含对应ID的医疗数据或公安数据等,具体此处不做目标训练数据的具体内容进行限制。在获取到中间输出数据后,将该中间输出数据传输给第二级可信执行环境以外的运算层,并由此得到模型参数数据。不难理解的是,即为GPU上的运算层。进一步的,在本实施例中,模型参数数据可以理解为在联邦计算全局服务器中对目标训练数据进行计算后的结果数据,具体此处不做赘述。
605、根据模型参数数据及对应于目标训练数据的预测结果数据,分别调整第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型。
获取到模型参数数据后,便根据模型参数数据,以及对应于目标训练数据的预测结果数据,分别调整第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,从而得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型,由此,便可以得到训练完成的联邦学习模型。需要说明的是,对应的调整顺序,应当理解为依次对第三模型参数、第二模型参数及第一模型参数进行调整。不难理解的是,在目标训练数据中,可以预先对该目标训练数据的训练结果进行预测,从而得到预测结果数据。例如,将对应ID的医疗数据或公安数据等作为目标训练数据时,预测结果数据可以是对应于具体某人的医疗诊断结果或相关联系结果等。具体此处不对具体的预测结果数据进行限制。其中训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型可用于组成训练完成的联邦学习模型。
在其中一个具体的实施例中,通过模型参数数据及预测结果数据先对第二级联邦学习模型和第三级联邦学习模型的模型参数进行调整,然后,再获取到调整后的第二级联邦学习模型和第三级联邦学习模型,再将通过反向梯度算出的对应于第二级联邦学习模型的结果数据,输入至第一级联邦学习模型,从而对第一级联邦学习模型的模型参数进行调整,直至在后续的训练中,预测结果数据与模型参数数据匹配或收敛,则可确定该联邦学习模型的训练完成。
在另外一个具体的实施例中,还可以将多组训练数据输入至二级联邦学习模型和第三级联邦学习模型,直到所有的训练数据训练完成,则确定该联邦学习模型训练完成。
通过本实施例公开的一种基于可信执行环境的联邦学习计算方法,通过在可信执行环境中将联邦学习模型划分,保证了联邦学习模型可以在不同设备上进行训练,使得各联邦学习训练参与方不仅可以将他们的模型部署到本地计算设备上,而且可以安全地部署到公有云的服务器中。同时,通过高效的可信执行环境,提高了联邦学习模型效率。再有,通过模型划分,使得即使IoT这种内存和计算能力受限的设备也可以参与大模型的联邦学习。
为方便对上述图6中所描述的联邦学习计算方法进行详细描述,请参阅图7,图7为本申请实施例公开的另一种基于可信执行环境的联邦学习计算方法的流程示意图。包括步骤701-步骤710。需要说明的是,在图7所描述的技术方案中,需要对部署于可信执行环境中的联邦学习模型的验证方式进行详细描述。
701、确定目标联邦学习模型中的底层局部模型,将底层局部模型设置为第一级联邦学习模型,并以目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型。
702、将第一级联邦学习模型部署于计算机设备的第一级可信执行环境,将第二级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以内,第三级联邦学习模型部署于联邦学习服务器的第二级可信执行环境以外。
本实施例中步骤701-步骤702与前述图6中步骤601-步骤602类似,具体此处不做赘述。
703、建立任意任一联邦学习训练参与方与第一级可信执行环境上的第一公共通信通道,以当第一级可信执行环境满足第一预设验证条件时,建立联邦学习训练参与方的第一安全通信通道。
在联邦学习参与方向本地所有的第一级可信执行环境提供本地训练数据之前,也需要验证本地第一级可信执行环境。具体的,建立任意任一联邦学习训练参与方与第一级可信执行环境上的第一公共通信通道,从而当第一级可信执行环境满足第一预设验证条件时,建立联邦学习训练参与方的第一安全通信通道。其中,第一公共通信通道用于联邦学习训练参与方与第一级可信执行环境进行验证。
在其中一个具体的实施例中,为了增加系统的灵活性,考虑到某些联邦学习训练参与方可能没有能力建设自己的本地底层局部模型的训练能力,因此也需要将第一级可信执行环境部署到第三方比如公有云上。因此,通过建立任一联邦学习训练参与方与第一级TEE上的公共通信通道,从而对第一级TEE上的底层局部模型进行验证,在底层局部模型满足相关的设计需求时,例如,该底层局部模型可否完成数据结构的调整和数据的组合等,具体此处不对具体的设计需求进行限制。不难理解的是,上述中所描述的设计需求即为对应的第一预设验证条件。由此,在底层局部模型满足相关的设计需求时,便可以建立第一安全通信通道。
704、建立任意两个联邦学习训练参与方于第一级可信执行环境上的第二公共通信通道,以当验证请求信息及验证结果信息满足第二预设验证条件时,建立任意两个联邦学习训练参与方的第二安全通信通道。
需要提前说明的是,本实施例中,请参阅图3,图3为本申请实施例公开的一种本地可信执行环境的验证及通道建立的流程示意图。计算机设备上的本地第一级TEE包括PSI相互验证及通信模块、PSI数据查询及训练集生成模块、二级TEE验证及通信模块以及本地底层模型。具体的,为对本地第一级TEE进行验证时,则需要对上述中的各个模块及模型进行验证。具体的,先建立任意两个联邦学习训练参与方于计算机设备的可信执行环境上的第二公共通信通道,再当验证请求信息及验证结果信息满足第二预设验证条件时,删除第二公共通信通道,设置通信通道密钥,以根据通信通道密钥建立任意两个联邦学习训练参与方的第一安全通信通道。不难理解的是,第二公共通信通道用于联邦学习训练参与方传输验证请求信息及验证结果信息。
在其中一个具体的实施例中,请参阅图4,图4为本申请实施例公开的一种本地可信执行环境的相互验证的流程示意图。
由图4可以看出,对于不同联邦学习训练参与方的一级TEE环境验证,主要是通过双方PSI相互验证及通信模块完成,验证完成前双方采用公共信道传输验证请求和结果,即上述中所描述的验证请求信息及验证结果信息。例如,在本实施例中,A、B和C三方先通过第二公共通信通道进行PSI间的相互验证,在验证完整以后,拆除该第二公共通信通道,两两之间设置通信通道密钥,从而根据通信通道密钥建立安全加密通道,即上述中所描述的第一安全通信通道。具体的,双方建立安全加密信道,交换双方关键值ID字段。后续将对此进行详细描述。
进一步的是,该验证的主要目的是确认对方本地可信执行环境内PSI数据查询及训练集生成模块确实是从该放的本地训练数据集中按照关键值ID字段读出的真实记录并提交给该方的本地模型进行训练,防止某一其他方提供虚假训练数据集。还需要说明的是,在第一级TEE环境相互验证完成之前,己方PSI相互验证及通信模块与他方的PSI相互验证及通信模块间的网络通信为公共信道传输,该信道仅用于对他方第一级TEE环境的验证。在己方完成针对某特定方的第一级TEE环境的验证完成之后,拆除己方PSI相互验证及通信模块与他方的PSI相互验证及通信模块间的公共信道,建立安全通信信道(TSL信道),信道密码由TEE环境硬件自动维护。在完成针对某特定方的第一级TEE环境的验证完成之后,己方PSI相互验证及通信模块仅对外发送记录中的关键值ID字段内容,而不包含任何记录中的任何内容。
705、触发信息定位指令,以根据信息定位指令验证第一级联邦学习模型的信息定位功能,并当信息定位功能满足预设功能需求时,确定第一级联邦学习模型验证通过。
基于上述步骤704所描述的内容可知,为对第一级联邦学习模型进行验证,可以通过触发信息定位指令,从而根据信息定位指令验证第一级联邦学习模型的信息定位功能,并当信息定位功能满足预设功能需求时,确定第一级联邦学习模型验证通过。
在其中一个具体的实施例中,为验证第一级联邦学习模型是否满足设计需要,具体需要对底层模型进行验证。具体而言,触发具体的信息定位指令,从PSI数据查询及训练集生成模块接收训练数据,从而验证相关的定位功能。若定位功能验证通过,则确定该第一级联邦学习模型验证通过。
进一步的是,再对PSI数据查询及训练集生成模块的验证过程中,PSI数据查询及训练集生成模块在完成步骤703后才执行。具体而言,该模块仅从己方PSI相互验证及通信模块接收关键值ID字段内容,并根据关键值ID字段内容自动从己方本地数据中提取与关键值ID字段内容匹配的记录,提供给本地底层模型。
706、建立计算机设备与联邦学习服务器的第三公共通信通道,以当联邦学习服务器的可信执行环境满足第三预设验证条件时,建立计算机设备与联邦学习服务器的第三安全通信通道。
在完成上述验证之后,需要验证联邦学习训练参与方与联邦学习服务器上的第二级联邦学习模型的验证。具体的,先建立计算机设备与联邦学习服务器的第三公共通信通道,从而当联邦学习服务器的可信执行环境满足第三预设验证条件时,建立计算机设备与联邦学习服务器的第三安全通信通道。需要说明的是,第三公共通信通道用于计算机设备验证联邦学习服务器的可信执行环境,同时,第三安全通信通道用于传输目标训练数据及模型参数数据。
在其中一个具体的实施例中,本实施例中步骤706主要是对本地二级TEE验证及相关通信模块的验证。具体而言,首先建立二级TEE验证及通信模块与联邦学习服务器间的网络通信为公共信道传输(即上述中所描述的第三公共通信通道),该信道仅用于对联邦学习服务器上第二级TEE环境的验证。然后,在完成对联邦学习服务器上第二级TEE环境的验证之后,拆除该模块与联邦学习服务器间的网络通信为公共信道传输,建立安全通信信道(TSL信道),即上述中所描述的第三安全通信通道,其中,该通信信道的信道密码,即上述中所描述的第二通信信道密钥,由双方TEE环境硬件自动维护。
进一步的是,在完成对联邦学习服务器上第二级TEE环境的验证之后,该模块仅接收从本地底层模型发送过来的结果,并通过相关的加密信道传输给第二级TEE环境。同时,也能通过加密信道接收从第二级TEE环境发送过来的反向梯度,发送给本地底层模型。为方便理解,后续将对此进行详细描述。不难理解的是,其中,对应第三预设验证条件在其中一个可实现的技术方案中,可以理解为验证联邦学习服务器是否正常部署有可信执行环境,或者是是否正常设置有对应的联邦学习模型等。
707、验证第二级联邦学习模型是否存在不可逆运算层,且不可逆运算层运行于第二级联邦学习模型,以当第二级联邦学习模型存在不可逆运算层,且第二级联邦学习模型运行不可逆运算层时,将第二模型参数及第三模型参数发送至任一联邦学习训练参与方,并确定与任一联邦学习训练参与方对应的第一模型参数。
基于上述验证完成后,便需要验证第二级联邦学习模型是否存在不可逆运算层,且不可逆运算层是否运行于第二级联邦学习模型,从而当第二级联邦学习模型存在不可逆运算层,且第二级联邦学习模型运行不可逆运算层时,将第一模型参数、第二模型参数及第三模型参数,通过安全通信通道发送至任一联邦学习训练参与方。
在其中一个具体的实施例中,本实施例中步骤707需要在上述步骤703-步骤706的验证完成之后才能执行相关验证。具体而言,是验证联邦学习训练参与方对联邦学习服务器上二级TEE环境。进一步的是,该验证可通过本地一级TEE执行环境内的二级TEE验证及通信模块完成。验证内容具体包括:验证联邦学习服务器上二级TEE环境内的子模型上执行的确实是数学不可逆运算。验证联邦学习服务器上二级TEE环境只将环境内的模型参数发送给各个联邦学习训练参与方,而没有发送给其他任何第三方(包括写入本地文件系统)。
在另外一个具体的实施例中,该验证还可以与步骤703同时并发执行,以提升效率,具体此处不做限制。
708、获取多个联邦学习训练参与方于第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据目标识别码确定对应不同联邦学习训练参与方的目标训练数据。
709、将目标训练数据输入至第一级联邦学习模型,得到初始输出数据;将初始输出数据传输至第二级联邦学习模型,得到中间输出数据;将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的模型参数数据。
710、根据模型参数数据及对应于目标训练数据的预测结果数据,分别调整第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型。
本实施例中步骤708-步骤710与前述图6中步骤603-步骤605类似,具体此处不做赘述。但需要说明的是,在本实施例中,由图7的上述步骤描述可知,在本实施例中,在一次训练过程中,目标训练数据仅为对应其中一个具体的目标识别码的训练数据。
在其中一个具体的实施例中,第一级联邦学习模型中的底层模型前向计算完成后将结果通过本地一级TEE中的二级TEE验证及通信模块发送给联邦学习服务器上的二级TEE内的子模型。该二级TEE内的第二级联邦学习模型完成前向计算以后将计算结果发送给二级TEE外的第三级联邦学习模型,完成整个全局模型的前向计算。后向计算的梯度传输过程与上述之正向计算数据流相反,不再赘言。
进一步的是,当模型训练完成或者中间需要缓存训练结果时,二级TEE内将其内的模型参数发送给各联邦学习训练参与方,由各联邦学习训练参与方负责保存而不保存到本地。二级TEE外的模型参数可以保存或缓存在联邦学习服务器本地文件系统上,可参阅步骤706所描述。
通过本实施例公开的一种基于可信执行环境的联邦学习计算方法,通过在TEE内执行模型划分,保证了大模型可以在不同设备上进行训练,使得各联邦学习训练参与方不仅仅可以将他们的模型部署到本地私有计算设备上,而且可以安全地部署到公有云上。再有,通过模型划分,使得即使IoT这种内存和计算能力受限的设备也可以参与大模型的联邦学习。因为各联邦学习训练参与方只需在本地运行一个极小的本地底层模型,需要繁琐计算和大量运算是在内存和计算资源充足的联邦学习服务器上完成的;而不是像传统联邦学习那样,在内存和计算能力受限的本地设备上进行模型计算,而联邦学习服务器只完成参数的接收、聚合和同步。其次,提高了联邦学习中大模型的效率。具体而言,通过高效的TEE实现而不是同态加密等低效方式实现多方安全计算。TEE只运行模型的极小一到两部分,而不是像传统联邦学习那样,对所有层执行效率极低的MPC计算或同态加密。最后,通过对模型头部参数进行安全保护的方式,防止第三方窃取训练的模型的知识产权。
进一步的是,为方便对上述图6或图7中模型参数的调整方式进行详细描述,请参阅图8,图8为本申请实施例公开的另一种基于可信执行环境的联邦学习计算方法的流程示意图。包括步骤801-步骤807。
801、在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集,以将置于第一级可信执行环境中的训练数据集通过第一级可信执行环境间的两两连接的第一安全通信通道进行求交运算,获取每一联邦学习训练参与方的相同识别码,将相同识别码设置为目标识别码。
不难理解的是,在图8中,具体为对应于步骤603或步骤708的细化步骤。其中,可通过第一安全通信通道获取所有联邦学习训练参与方的训练数据集,将置于可信执行环境中的训练数据集进行求交运算,并将不同联邦学习训练参与方中的相同识别码设置为目标识别码。其中,训练数据集包括不同识别码的训练数据,任一第一级可信执行环境与任一联邦学习训练参与方的训练数据集存在关联关系。不难理解的是,识别码即为上述中所描述的关键值ID。
在其中一个具体的实施例中,可参阅图4,基于步骤703至704中对于图4的描述,在图7所述的通信通道验证完成后,便可以利用PSI运算,从安全通信通道找到各联邦学习训练参与方的数据集,从而找到相同关键值ID的集合。基于图4可以看出,对于不同关键值,标记为ID1,ID2及ID3这三个ID值进行表示。在本实施例中保留PSI名称,同时,由于PSI计算是在本地计算机设备的TEE环境中完成,因此,可以直接采用通用的数学求交运算,而无需采用MPC的PSI实现,因此效率更高。由于每方的PSI都需要比对己方与其它所有方的所有ID,因此所有TEE环境内的PSI模块都应该具备和其它PSI模块的网络通信能力。在PSI完成共同ID的寻找后,每一联邦学习训练参与方需要在本地数据集中找到这些共同ID对应的详细数据记录。由此,便可以将所需获取数据的ID设置为目标识别码。
802、将任一联邦学习训练参与方的训练数据集中与目标识别码对应的训练数据确定为初始训练数据。
由此,基于步骤801所找到的目标识别码,便需要将任一联邦学习训练参与方的训练数据集中与目标识别码对应的训练数据确定为初始训练数据。
在其中一个具体的实施例中,于图4中,PSI在三方数据集中共找到ID1,ID2,和ID3三个共同ID值,每一联邦学习训练参与方在本地记录中查找到对应于这三个ID的三条记录。进一步的是,如图4所示,每一联邦学习训练参与方找到的具体记录的数据格式和值可能是不同的。由此,便可以将目标识别码对应的训练数据设置为初始训练数据。
例如,将在每一联邦学习训练参与方的数据集中,ID1对应的数据(具有相关的数据格式和值)设置为初始训练数据。
进一步的是,在其中一个具体的实施例中,请参阅图5,图5为本申请实施例公开的一种生成本地训练数据的流程示意图。具体而言,在完成上述图7中的各类验证。
更进一步的是,基于步骤802所找到的初始训练数据,从而,调整第一联邦学习训练参与方的第一训练数据的数据结构,调整第二联邦学习训练参与方的第二训练数据的数据结构,获取具有同一数据结构的中间训练数据,然后,将分别与第一联邦学习训练参与方或第二联邦学习训练参与方对应的中间训练数据进行组合,得到目标训练数据。具体而言,则是将所有联邦学习训练参与方的初始训练数据输入至第一级联邦学习模型,得到训练完成的目标训练数据。
在其中一个具体的实施例中,将每一联邦学习训练参与方的本地记录中对应于共同ID的记录作为输入,执行本例底层模型的计算。具体的,例如,第一联邦学习训练参与方为社区医院和专科医院,由于其对应于ID1的数据由就诊病人的病历组成。由于上述第一联邦学习训练参与方的数据的格式包含病人姓名、性别、年龄、病情诊断、医疗方案等。而第二联邦学习训练参与方为科研机构,由于其对应于ID1的数据内容可能与第一联邦学习训练参与方的数据内容部分相同,比如病人姓名、性别、年龄等,但是同时包含不同的信息,比如医院记录还可能包含病情诊断、医疗方案,而科研机构可能包含基因信息、病毒培养结果等。因此,则需要调整第一联邦学习训练参与方或第二联邦学习训练参与方中对应于ID1数据的数据结构,从而获取具有同一数据结构的训练数据,然后,再将该训练数据置于底层模型进行组合排列,从而得到目标训练数据。换言之,可以理解为,需要第一联邦学习训练参与方的三行数据,需要第二联邦学习训练参与方的两行数据,将对应的三行数据和两行数据进行组合,从而得到最终的五行数据,即为目标训练数据。
803、将对应于目标识别码的目标训练数据输入至第二级联邦学习模型,得到中间输出数据,并将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的训练结果数据。
本实施例中步骤803与前述图6中步骤604类似,具体此处不做赘述。但需要说明的是,在获取对应于目标识别码的目标训练数据后,便可以将目标训练数据通过安全通信通道输入至第二级联邦学习模型,得到第二级联邦学习模型输出的中间输出数据,再将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的模型参数数据。
804、确定第三级联邦学习模型中所有不可逆运算层的排位次序,以根据与排位次序相反的次序,将训练结果数据及预测结果数据输入至第三级联邦学习模型的所有不可逆运算层,获取对应于第三不可逆运算层的第一损失函数值,并根据第一损失函数值对第二模型参数进行调整。
在获取到第三级联邦学习模型输出的模型参数数据时,可以同步确定第三级联邦学习模型中所有不可逆运算层的排位次序,从而根据与排位次序相反的次序,将模型参数数据及预测结果数据输入至第三级联邦学习模型的所有不可逆运算层,获取对应于第三不可逆运算层的第一损失函数值,并根据第一损失函数值对第二模型参数进行调整。
在其中一个具体的实施例中,当对第二级联邦学习模型的第二模型参数进行调整时,将中间输出数据传输至部署在非可信执行环境的第三级联邦学习模型后,便需要确定第三级联邦学习模型中所有不可逆运算层的排位次序,从而根据与排位次序相反的次序,将模型参数数据及预测结果数据输入至第三级联邦学习模型的所有不可逆运算层,由此获取对应于不可逆运算层的第一损失函数值。不难理解的是,该第一损失函数值为第三级联邦学习模型中的排列次序为第一层的不可逆运算层输出的损失函数值。不难理解的是,本实施例中所描述的预测结果数据可参阅图6中步骤605的描述,具体此处不做赘述。
在其中一个具体的实施例中,基于模型参数数据及预测结果数据可以确定第三级联邦学习模型的损失函数值,从而对该损失函数值在第三级联邦学习模型中的所有不可逆运算层执行反向梯度下降算法,从而获取到该第一损失函数值。由此,在获取到第一损失函数值后,便可以对第二模型参数进行调整,从而获取到训练完成的第二级联邦学习模型。
在其中一个具体的实施例中,利用第一损失函数值对第二模型参数进行调整后,还可以接收到联邦学习训练参与方提供的训练数据,从而该训练数据所生成的模型参数数据与预测结果数据相同,或根据初始训练数据生成的中间输出数据收敛,则可以确定第二级联邦学习模型训练完成。
基于上述实施例,在另外一个具体的实施例中,可信执行环境中的各种运算层在参数更新完成后读入下一个训练数据,如此循环往复,完成整个模型的训练。
805、依据与排位次序相反的次序,将训练结果数据及预测结果数据依次传输至第三级联邦学习模型的所有不可逆运算层,获取对应于每一不可逆运算层的第二损失函数值,以根据每一第二损失函数值,分别调整与第二损失函数值对应的不可逆运算层的第三模型参数。
当对第三级联邦学习模型的第三模型参数进行调整时,依据与排位次序相反的次序,将模型参数数据及预测结果数据依次传输至第三级联邦学习模型的所有不可逆运算层,获取对应于每一不可逆运算层的第二损失函数值。不难理解的是,在本实施例中,由于第三级联邦学习模型中每一层不可逆运算层都可以理解为一种由模型参数组成的运算层。因此,依据与排位次序相反的次序,将模型参数数据及预测结果数据依次从最上一层反向传导到第三级联邦学习模型中排列次序为第一层的不可逆运算层,便可以确定每一不可逆运算层的第二损失函数值。
在其中一个具体的实施例中,基于模型参数数据及预测结果数据可以确定第三级联邦学习模型的损失函数值,从而对该损失函数值在第三级联邦学习模型中的所有不可逆运算层执行反向梯度下降算法,将该损失函数值先输入至第三级联邦学习模型中的最后一层不可逆运算层,确定最后一层不可逆运算层的实际结果值与预测结果值,从而确定该层不可逆运算层的损失函数值,依次由最后一层到第三级联邦学习模型中的第一层,从而确定一不可逆运算层的第二损失函数值。
基于上述步骤,每当确定第二损失函数值,则可以通过第二损失函数值分别调整与第二损失函数值对应的不可逆运算层的第三模型参数,从而获取到训练完成的第三级联邦学习模型。
在其中一个具体的实施例,根据每一层不可逆运算层的第二损失函数值,对该不可逆运算层的第三模型参数进行调整,从而使得该不可逆运算层的运算结果逐渐收敛或接近每一层的预测结果数据。当满足上述条件时,则确定上述第三级联邦学习模型训练完成。
806、依据与排位次序相反的次序,将训练结果数据及预测结果数据依次传输至第三级联邦学习模型的所有不可逆运算层,获取对应于每一不可逆运算层的第二损失函数值,以根据每一第二损失函数值,分别调整与第二损失函数值对应的不可逆运算层的第一模型参数。
基于上述步骤,便可以再次依据与排位次序相反的次序,从而将模型参数数据反向输入至第三级联邦学习模型,基于第三级联邦学习模型反向输出的数据,输入至第二级联邦学习模型,从而得到第二级联邦学习模型输出的目标结果数据。然后,将目标结果数据及相关的预测结果数据传输至第一级联邦学习模型的所有不可逆运算层,获取对应于不可逆运算层的第三损失函数值,并根据第三损失函数值,调整与第三损失函数值对应的不可逆运算层的第一模型参数。
在其中一个具体的实施例中,在第二级联邦学习模型将目标结果数据通过安全通信通道传输至第一级TEE的第一级联邦学习模型后,第一级联邦学习模型中的所有不可逆运算层对目标结果数据进行反向梯度计算,从而将得到的计算结果数据,与相关的预测结果数据进行比较,得到对应于第一级联邦学习模型中所有不可逆运算层的第三损失函数值,由此,便可以根据第三损失函数值调整第一级联邦学习模型的第一模型参数。
在其中一个具体的实施例,根据第三损失函数值,对第一级联邦学习模型的不可逆运算层的第一模型参数进行调整,从而使得该不可逆运算层的运算结果逐渐收敛或接近每一层的预测结果数据。当满足上述条件时,则确定上述第一级联邦学习模型训练完成。
807、将第二模型参数及第三模型参数发送至任一联邦学习训练参与方,并确定与任一联邦学习训练参与方对应的第一模型参数。
具体的,本实施例中步骤807与前述图7中步骤710类似,具体的,当联邦学习模型的模型训练完成或者中间需要缓存训练结果时,二级TEE内的第二级联邦学习模型将其内的第二模型参数发送给所有的联邦学习训练参与方(需要一一对应),由各联邦学习训练参与方负责保存而不保存到本地。二级TEE外的模型参数(例如GPU上的第三级联邦学习模型)可以保存或缓存在联邦学习服务器本地文件系统上。不难理解的是,本实施例中不对具体的模型参数的存储方式进行限制,后续也不再对此进行赘述。
基于图6和图7所描述的技术方案,在本实施例公开的一种基于可信执行环境的联邦学习计算方法中,进一步的是,可以推广到任何模型的联邦学习中,对应的,还可以推广到与联邦学习相关联的推理应用中,具体此处不做限制。再有,通过对联邦学习模型的模型参数的实时修改,再将修改后的模型参数返回各联邦学习训练参与方,使得各联邦学习训练参与方即使将他们的本地模型部署在公有云上而不是本地私有计算设备上,该方案也是有安全保障的,提升了方案的可实现性。
再有,结合上述图6至图8的技术方案,对于保护各联邦学习训练参与方的私有训练数据而言:联邦学习训练参与方与本地一级TEE之间的私有训练数据是通过加密信道传输的,因此传输过程是安全的。所有位于联邦学习训练参与方本地一级TEE内的组件都经过了联邦学习训练参与方的功能验证,这些模块除了会和外界交流关键值ID外,所有其它私有数据字段都不会暴露在本地一级TEE之外,因此在联邦学习训练参与方本地一级TEE内,各联邦学习训练参与方私有训练数据是安全的。联邦学习训练参与方本地一级TEE与联邦学习服务器第二级TEE之间的数据传输是通过加密信道传输的,因此底层模型的结果是安全的;此外由于底层模型的运算是不可逆的,因此无法由底层模型的结果倒推出私有数据集中的数据。如果底层模型无法满足最终结果不可逆(比如在水平型联邦计算中,这个底层模型仅仅是拷贝原始输入),可以将全局模型在某个数据不可逆运算处进行划分,将第一个划分放入本地一级TEE内与本地底层模型合并,从而使得本地一级TEE内的运算不可逆。对于保护最终训练完成的模型参数知识产权而言,由于联邦学习服务器第二级TEE中的模型运算是不可逆的,通过第二级TEE的结果无法倒推出其模型中的参数,而这个模型的参数只会通过加密信道发送给各联邦学习训练参与方保存,联邦学习服务器本地没有该数据的备份。因此,即使提供联邦学习服务器的第三方保存了运行于第二级TEE环境外的子模型的参数,第三方也无法通过微调训练的方式利用全局模型尾部的参数回复其头部的参数(微调训练只能保存头部模型参数不变来得到尾部最后一层或两层的参数)。因此,要恢复模型所有层的参数,第三方将不得不利用各联邦学习训练参与方的私有数据重新训练整个模型。而从以上分析可知,第三方想通过安全漏洞无偿获取各联邦学习训练参与方的私有训练数据是不可能的。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
请参阅图9,图9为本申请实施例公开的一种基于可信执行环境的联邦学习计算系统的结构示意图。
切分单元901,用于确定目标联邦学习模型中的底层局部模型,将底层局部模型设置为第一级联邦学习模型,并以目标联邦学习模型的第一不可逆运算层为切分点,将目标联邦学习模型划分为第二级联邦学习模型和第三级联邦学习模型;其中,第一不可逆运算层为目标联邦学习模型中排位次序为第一排位的不可逆运算层;
部署单元902,用于确定目标联邦学习模型中的底层局部模型,将底层局部模型设置为第一级联邦学习模型,并以目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型;其中,第一不可逆运算层为目标联邦学习模型中排位次序为第一排位的不可逆运算层;
获取单元903,用于获取多个联邦学习训练参与方于第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据目标识别码确定对应不同联邦学习训练参与方的目标训练数据;
输入单元904,用于将目标训练数据输入至第一级联邦学习模型,得到初始输出数据;将初始输出数据传输至第二级联邦学习模型,得到中间输出数据;将中间输出数据传输至第三级联邦学习模型,得到对应于第三级联邦学习模型的模型参数数据;
调整单元905,用于根据模型参数数据及对应于目标训练数据的预测结果数据,分别调整第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型;其中,训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型用于组成训练完成的联邦学习模型。
示例性地,系统还包括:设置单元906及确定单元907;
获取单元903,具体用于在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集;其中,训练数据集包括不同识别码的训练数据,任一第一级可信执行环境与任一联邦学习训练参与方的训练数据集存在关联关系;
设置单元906,用于将置于第一级可信执行环境中的训练数据集通过第一级可信执行环境间的两两连接的第一安全通信通道进行求交运算,获取每一联邦学习训练参与方的相同识别码,并将相同识别码设置为目标识别码;
确定单元907,用于将任一联邦学习训练参与方的训练数据集中与目标识别码对应的训练数据确定为初始训练数据;
输入单元904,具体用于将所有联邦学习训练参与方提供的初始训练数据,输入至与所有联邦学习训练参与方各自对应的第一级联邦学习模型,得到训练完成的目标训练数据。
示例性地,系统还包括:建立单元908;
建立单元905,具体用于建立任意任一联邦学习训练参与方与第一级可信执行环境上的第一公共通信通道;其中,第一公共通信通道用于所述联邦学习训练参与方与第一级可信执行环境进行验证;
建立单元905,还用于当第一级可信执行环境满足第一预设验证条件时,建立联邦学习训练参与方的第一安全通信通道。
示例性地,系统还包括:
建立单元908,还用于建立任意两个联邦学习训练参与方于计算机设备的第一级可信执行环境上的第二公共通信通道;其中,第二公共通信通道用于联邦学习训练参与方传输验证请求信息及验证结果信息;
建立单元908,还用于当验证请求信息及验证结果信息满足第二预设验证条件时,建立任意两个联邦学习训练参与方的第二安全通信通道;其中,第二安全通信通道用于传输目标识别码。
示例性地,系统还包括:验证单元909;
验证单元909,用于触发信息定位指令,以根据信息定位指令验证第一级联邦学习模型的信息定位功能;
确定单元907,还用于当信息定位功能满足预设功能需求时,确定第一级联邦学习模型验证通过。
示例性地,系统还包括:
建立单元908,还用于建立计算机设备与联邦学习服务器的第三公共通信通道;其中,第三公共通信通道用于计算机设备验证联邦学习服务器的第三级可信执行环境;
建立单元908,还用于当联邦学习服务器的第二级可信执行环境满足第三预设验证条件时,建立计算机设备与联邦学习服务器的第三安全通信通道;其中,第三安全通信通道用于传输初始输出数据及模型参数数据。
示例性地,系统还包括:发送单元910;
验证单元909,还用于验证第二级联邦学习模型是否存在不可逆运算层,且不可逆运算层是否运行于第二级联邦学习模型;
发送单元910,用于当第二级联邦学习模型存在不可逆运算层,且第二级联邦学习模型运行不可逆运算层时,将第二模型参数及第三模型参数发送至任一联邦学习训练参与方,并确定与任一联邦学习训练参与方对应的第一模型参数。
下面请参阅图10,本申请实施例公开的一种基于可信执行环境的联邦学习计算装置的结构示意图包括:
中央处理器1001,存储器1005,输入输出接口1004,有线或无线网络接口1003以及电源1002;
存储器1005为短暂存储存储器或持久存储存储器;
中央处理器1001配置为与存储器1005通信,并执行存储器1005中的指令操作以执行前述图6至8中任一项所示实施例中的联邦学习计算方法。
本申请实施例还提供一种芯片系统,其特征在于,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行前述图6至8中任一项所示实施例中的联邦学习计算方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种基于可信执行环境的联邦学习计算方法,其特征在于,应用于计算机设备,所述计算机设备与联邦学习服务器通信连接,目标联邦学习模型运行于所述计算机设备及所述联邦学习服务器,所述联邦学习服务器及所述计算机设备部署有可信执行环境,所述方法包括:
确定所述目标联邦学习模型中的底层局部模型,将所述底层局部模型设置为第一级联邦学习模型,并以所述目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将所述目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将所述目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型;其中,所述第一不可逆运算层为所述目标联邦学习模型中排位次序为第一排位的不可逆运算层;
将所述第一级联邦学习模型部署于所述计算机设备的第一级可信执行环境,将所述第二级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以内,所述第三级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以外;
获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据;
将所述目标训练数据输入至所述第一级联邦学习模型,得到初始输出数据;将所述初始输出数据传输至所述第二级联邦学习模型,得到中间输出数据;将所述中间输出数据传输至所述第三级联邦学习模型,得到对应于所述第三级联邦学习模型的模型参数数据;
根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、所述第二级联邦学习模型的第二模型参数和所述第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型;其中,训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型用于组成训练完成的联邦学习模型。
2.根据权利要求1所述的联邦学习计算方法,其特征在于,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据,包括:
在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集;其中,所述训练数据集包括不同识别码的训练数据,任一所述第一级可信执行环境与任一所述联邦学习训练参与方的所述训练数据集存在关联关系;
将置于所述第一级可信执行环境中的所述训练数据集通过第一级可信执行环境间的两两连接的第一安全通信通道进行求交运算,获取每一联邦学习训练参与方的相同识别码,并将所述相同识别码设置为所述目标识别码;
将任一所述联邦学习训练参与方的训练数据集中与所述目标识别码对应的训练数据确定为初始训练数据;
将所述所有联邦学习训练参与方提供的所述初始训练数据,输入至与所述所有联邦学习训练参与方各自对应的所述第一级联邦学习模型,得到训练完成的所述目标训练数据。
3.根据权利要求2所述的联邦学习计算方法,其特征在于,所述在第一级可信执行环境内通过第一安全通信通道获取联邦学习训练参与方的训练数据集之前,所述方法还包括:
建立任意任一所述联邦学习训练参与方与所述第一级可信执行环境上的第一公共通信通道;其中,所述第一公共通信通道用于所述联邦学习训练参与方与所述第一级可信执行环境进行验证;
当所述第一级可信执行环境满足第一预设验证条件时,建立所述联邦学习训练参与方的所述第一安全通信通道。
4.根据权利要求1所述的联邦学习计算方法,其特征在于,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
建立任意两个联邦学习训练参与方于所述计算机设备的所述第一级可信执行环境上的第二公共通信通道;其中,所述第二公共通信通道用于所述联邦学习训练参与方传输验证请求信息及验证结果信息;
当所述验证请求信息及所述验证结果信息满足第二预设验证条件时,建立所述任意两个联邦学习训练参与方的第二安全通信通道;其中,所述第二安全通信通道用于传输所述目标识别码。
5.根据权利要求4所述的联邦学习计算方法,其特征在于,所述建立任意两个联邦学习训练参与方于所述计算机设备的所述第一级可信执行环境上的第二公共通信通道之后,所述方法还包括:
触发信息定位指令,以根据所述信息定位指令验证所述第一级联邦学习模型的信息定位功能;
若所述信息定位功能满足预设功能需求,确定所述第一级联邦学习模型验证通过。
6.根据权利要求1所述的联邦学习计算方法,其特征在于,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
建立所述计算机设备与所述联邦学习服务器的第三公共通信通道;其中,所述第三公共通信通道用于所述计算机设备验证所述联邦学习服务器的所述第三级可信执行环境;
当所述联邦学习服务器的所述第二级可信执行环境满足第三预设验证条件时,建立所述计算机设备与所述联邦学习服务器的第三安全通信通道;其中,所述第三安全通信通道用于传输所述初始输出数据及所述模型参数数据。
7.根据权利要求1所述的联邦学习计算方法,其特征在于,所述获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据之前,所述方法还包括:
验证所述第二级联邦学习模型是否存在不可逆运算层,且所述不可逆运算层是否运行于所述第二级联邦学习模型;
所述根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、第二级联邦学习模型的第二模型参数和第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型之后,所述方法还包括:
当所述第二级联邦学习模型存在所述不可逆运算层,且所述第二级联邦学习模型运行所述不可逆运算层时,将所述第二模型参数及所述第三模型参数发送至任一联邦学习训练参与方,并确定与所述任一联邦学习训练参与方对应的所述第一模型参数。
8.一种基于可信执行环境的联邦学习计算系统,其特征在于,应用于计算机设备,所述计算机设备与联邦学习服务器通信连接,目标联邦学习模型运行于所述计算机设备及所述联邦学习服务器,所述联邦学习服务器及所述计算机设备部署有可信执行环境,所述系统包括:
切分单元,用于确定所述目标联邦学习模型中的底层局部模型,将所述底层局部模型设置为第一级联邦学习模型,并以所述目标联邦学习上层全局模型的第一不可逆运算层为切分点将上层全局模型切分为两个子模型,将所述目标联邦学习上层全局的第一个子模型设置为第二级联邦学习模型,将所述目标联邦学习上层全局的第二个子模型设置为第三级联邦学习模型;其中,所述第一不可逆运算层为所述目标联邦学习模型中排位次序为第一排位的不可逆运算层;
部署单元,用于将所述第一级联邦学习模型部署于所述计算机设备的第一级可信执行环境,将所述第二级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以内,所述第三级联邦学习模型部署于所述联邦学习服务器的第二级可信执行环境以外;
获取单元,用于获取多个联邦学习训练参与方于所述第一级可信执行环境中进行联邦学习模型训练时的目标识别码,以根据所述目标识别码确定对应不同联邦学习训练参与方的目标训练数据;
输入单元,用于将所述目标训练数据输入至所述第一级联邦学习模型,得到初始输出数据;将所述初始输出数据传输至所述第二级联邦学习模型,得到中间输出数据;将所述中间输出数据传输至所述第三级联邦学习模型,得到对应于所述第三级联邦学习模型的模型参数数据;
调整单元,用于根据所述模型参数数据及对应于所述目标训练数据的预测结果数据,分别调整所述第一级联邦学习模型的第一模型参数、所述第二级联邦学习模型的第二模型参数和所述第三级联邦学习模型的第三模型参数,以得到训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型;其中,训练完成的第一级联邦学习模型、第二级联邦学习模型和第三级联邦学习模型用于组成训练完成的联邦学习模型。
9.一种基于可信执行环境的联邦学习计算装置,其特征在于,所述装置包括:
中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
所述存储器为短暂存储存储器或持久存储存储器;
所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行权利要求1至7中任意一项所述的联邦学习计算方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7中任意一项所述的联邦学习计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311727012.XA CN117688576A (zh) | 2023-12-14 | 2023-12-14 | 一种基于可信执行环境的联邦学习计算方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311727012.XA CN117688576A (zh) | 2023-12-14 | 2023-12-14 | 一种基于可信执行环境的联邦学习计算方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117688576A true CN117688576A (zh) | 2024-03-12 |
Family
ID=90126165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311727012.XA Pending CN117688576A (zh) | 2023-12-14 | 2023-12-14 | 一种基于可信执行环境的联邦学习计算方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117688576A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101343A (zh) * | 2024-04-24 | 2024-05-28 | 天津医康互联科技有限公司 | 一种用于医院内网环境的联邦学习系统 |
-
2023
- 2023-12-14 CN CN202311727012.XA patent/CN117688576A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101343A (zh) * | 2024-04-24 | 2024-05-28 | 天津医康互联科技有限公司 | 一种用于医院内网环境的联邦学习系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Privacy-preserving object detection for medical images with faster R-CNN | |
WO2021120676A1 (zh) | 联邦学习网络下的模型训练方法及其相关设备 | |
CN110189192B (zh) | 一种信息推荐模型的生成方法及装置 | |
CN108712260B (zh) | 云环境下保护隐私的多方深度学习计算代理方法 | |
US20230039182A1 (en) | Method, apparatus, computer device, storage medium, and program product for processing data | |
CN113159327B (zh) | 基于联邦学习系统的模型训练方法、装置、电子设备 | |
CN111507481A (zh) | 一种联邦学习系统 | |
US11843586B2 (en) | Systems and methods for providing a modified loss function in federated-split learning | |
Alzubi et al. | Optimal multiple key‐based homomorphic encryption with deep neural networks to secure medical data transmission and diagnosis | |
CN117688576A (zh) | 一种基于可信执行环境的联邦学习计算方法及相关设备 | |
WO2022142060A1 (zh) | 基于联邦学习的虹膜图像特征提取方法、系统和装置 | |
CN112799708A (zh) | 联合更新业务模型的方法及系统 | |
CN111612167A (zh) | 机器学习模型的联合训练方法、装置、设备及存储介质 | |
Zhang et al. | A partially hidden policy CP-ABE scheme against attribute values guessing attacks with online privacy-protective decryption testing in IoT assisted cloud computing | |
CN114093527A (zh) | 一种基于空间相似性约束和非负矩阵分解的药物重定位方法和系统 | |
CN116502732B (zh) | 基于可信执行环境的联邦学习方法以及系统 | |
Omer et al. | Privacy-preserving of SVM over vertically partitioned with imputing missing data | |
CN114004363A (zh) | 联合更新模型的方法、装置及系统 | |
CN117094412A (zh) | 针对非独立同分布医疗场景下的联邦学习方法和装置 | |
US20210342432A1 (en) | Decentralized biometric identification and authentication network | |
Tran et al. | A comprehensive survey and taxonomy on privacy-preserving deep learning | |
Obayes et al. | Secure heart disease classification system based on three pass protocol and machine learning | |
Sathiya et al. | Secure blockchain based deep learning approach for data transmission in IOT-enabled healthcare system | |
CN112102939B (zh) | 心脑血管疾病参考信息预测系统、方法、装置及电子设备 | |
Aghila Rajagopal et al. | AI Based Secure Analytics of Clinical Data in Cloud Environment: Towards Smart Cities and Healthcare |
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 |