CN112668037A - 一种模型训练方法、装置和电子设备 - Google Patents
一种模型训练方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112668037A CN112668037A CN202010491184.1A CN202010491184A CN112668037A CN 112668037 A CN112668037 A CN 112668037A CN 202010491184 A CN202010491184 A CN 202010491184A CN 112668037 A CN112668037 A CN 112668037A
- Authority
- CN
- China
- Prior art keywords
- model
- data provider
- target model
- data
- ciphertext
- 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
- 238000012549 training Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000004364 calculation method Methods 0.000 claims abstract description 196
- 238000009826 distribution Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 description 57
- 230000008569 process Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 17
- 230000007704 transition Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 12
- 239000012634 fragment Substances 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 238000010130 dispersion processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种模型训练方法、装置和电子设备,其中,所述方法适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景,所述方法包括:接收各数据提供方上传的中间结果,中间结果为密文,中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定目标模型的模型更新后的参数并存储;将模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据模型更新后的参数更新目标模型并进行一轮训练以得到需上传的中间结果。本发明实施例对目标模型的训练都是由各数据提供方采用本地私有数据在本地进行的,能够保证各数据提供方的数据安全。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种模型训练方法、装置和电子设备。
背景技术
随着科学技术的不断发展,解决各种不同问题的模型不断的被设计出来,使得模型被广泛的应用于各个领域;如数据挖掘领域、人工智能领域等等。其中,模型在被使用之前,需要采用训练数据来对其进行训练。
在实际应用中,模型训练所需的训练数据往往分布在多个数据提供方;为了提高模型的性能,需要采用各方的训练数据对模型进行训练;以在更大规模、更高质量的数据集上进行模型的训练。
现有技术中,一种模型训练的方法是由模型需求方对模型进行训练;即模型需求方从各个数据提供方收集明文数据,然后采用收集的明文数据对模型进行训练。但这种方式会将数据提供方的训练数据泄露给模型需求方,无法保证数据提供方提供的训练数据的安全。
发明内容
本发明实施例提供一种模型训练方法,以保证模型训练过程中的数据安全。
相应的,本发明实施例还提供了一种模型训练装置和电子设备,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种模型训练方法,适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景;具体包括:接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储;将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
可选地,当所述中间结果为模型参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,得到所述目标模型的模型更新后的参数。
可选地,当所述中间结果为梯度参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算;在密文基础上基于多方安全计算协议,采用加权计算的结果对所述目标模型进行参数更新,得到所述目标模型的模型更新后的参数。
可选地,当所述中间结果为梯度参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数;或,在密文基础上基于多方安全计算协议,分别采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到各数据提供方对应的模型更新后的参数;以及在密文基础上基于多方安全计算协议将各数据提供方对应的模型更新后的参数进行加权计算,得到所述目标模型的模型更新后的参数。
可选地,在接收各数据提供方上传的中间结果之后,所述的方法还包括:判断所述目标模型的上一更新轮次是否是混淆更新轮次;若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型;所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并并存储,包括:若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
可选地,在所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储之后,所述的方法还包括:判断所述目标模型的当前更新轮次是否是混淆更新轮次;若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方;以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果;所述将所述模型更新后的参数分发给各数据提供方,包括:若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方。
可选地,所述的方法还包括:若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次;若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方,以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
可选地,所述将所述模型更新后的参数分发给各数据提供方,包括:若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是正常更新轮次,则获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数并分发给各数据提供方;其中,所述过渡更新轮次是前一次更新轮次为正常更新轮次的混淆更新轮次。
可选地,所述判断是否需要继续训练所述目标模型,包括:获取各数据提供方上传的所述目标模型上一更新轮次的损失函数的值,所述损失函数的值是数据提供方根据上一更新轮次接收到的模型更新后的参数对目标模型进行更新后确定的,所述损失函数的值为密文;在密文的基础上基于多方安全计算将各数据提供方上传的损失函数的值进行合并,得到损失函数的合并值;在密文的基础上基于多方安全计算,依据所述损失函数的合并值判断是否需要继续训练所述目标模型。
可选地,所述的方法还包括:确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;以及向各数据提供方发送结束训练消息。
可选地,所述的方法还包括:确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;以及执行多轮模型参数更新后,向各数据提供方发送结束训练消息。
可选地,所述中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:在密文基础上基于秘密分享协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
可选地,所述中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:在密文的基础上基于同态加密协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
本发明实施例还公开了一种模型训练装置,适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景,具体包括:接收模块,用于接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;合并模块,用于在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储;模型参数分发模块,用于将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
可选地,当所述中间结果为模型参数时,所述合并模块,包括:第一中间结果合并子模块,用于确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,得到所述目标模型的模型更新后的参数。
可选地,当所述中间结果为梯度参数时,所述合并模块,包括:第二中间结果合并子模块,用于确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算;在密文基础上基于多方安全计算协议,采用加权计算的结果对所述目标模型进行参数更新,得到所述目标模型的模型更新后的参数。
可选地,当所述中间结果为梯度参数时,所述合并模块,包括:第三中间结果合并子模块,用于在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数;或,在密文基础上基于多方安全计算协议,分别采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到各数据提供方对应的模型更新后的参数;以及在密文基础上基于多方安全计算协议将各数据提供方对应的模型更新后的参数进行加权计算,得到所述目标模型的模型更新后的参数。
可选地,所述的装置还包括:第一轮次判断模块,用于在接收各数据提供方上传的中间结果之后,判断所述目标模型的上一更新轮次是否是混淆更新轮次;训练判断模块,用于若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型;所述合并模块,包括:第四中间结果合并子模块,用于若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
可选地,所述的装置还包括:第二轮次判断模块,用于在所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储之后,判断所述目标模型的当前更新轮次是否是混淆更新轮次;混淆参数分发模块,用于若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方;以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果;所述模型参数分发模块,包括:第一模型更新参数分发子模块,用于若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方。
可选地,所述的装置还包括:第三轮次判断模块,用于若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次;混淆参数分发模块,用于若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方,以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
可选地,所述模型参数分发模块,包括:第二模型更新参数分发子模块,用于若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是正常更新轮次,则获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数并分发给各数据提供方;其中,所述过渡更新轮次是前一次更新轮次为正常更新轮次的混淆更新轮次。
可选地,所述训练判断模块,用于获取各数据提供方上传的所述目标模型上一更新轮次的损失函数的值,所述损失函数的值是数据提供方根据上一更新轮次接收到的模型更新后的参数对目标模型进行更新后确定的,所述损失函数的值为密文;在密文的基础上基于多方安全计算将各数据提供方上传的损失函数的值进行合并,得到损失函数的合并值;在密文的基础上基于多方安全计算,依据所述损失函数的合并值判断是否需要继续训练所述目标模型。
可选地,所述的装置还包括:模型参数返回模块,用于确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;第一消息返回模块,用于向各数据提供方发送结束训练消息。
可选地,所述的装置还包括:模型参数返回模块,用于确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;第二消息返回模块,用于执行多轮模型参数更新后,向各数据提供方发送结束训练消息。
可选地,所述中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述合并模块,包括:第五中间结果合并子模块,用于在密文基础上基于秘密分享协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
可选地,所述中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述合并模块,包括:第六中间结果合并子模块,用于在密文的基础上基于同态加密协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
本发明实施例还公开了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中任一所述的模型训练方法。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中任一所述的模型训练方法。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,由各数据提供方基于本地私有数据对目标模型进行训练得到中间结果后,借助密文计算平台,将各自的中间结果以密文的形式通过多方安全计算进行合并,确定所述目标模型的模型更新后的参数并将所述模型更新后的参数分发给各数据提供方;然后由各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练得到中间结果,并基于中间结果借助密文计算平台确定模型更新后的参数并分发各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例对目标模型的每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,而无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。
附图说明
图1是本发明的一种模型训练系统实施例的结构框图;
图2是本发明的一种模型训练方法实施例的步骤流程图;
图3是本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图;
图4是本发明的一种模型训练方法可选实施例的步骤流程图;
图5是本发明的又一种模型训练方法可选实施例的步骤流程图;
图6是本发明的又一种模型训练方法可选实施例的步骤流程图;
图7是本发明的又一种模型训练方法可选实施例的步骤流程图;
图8是本发明的又一种模型训练方法可选实施例的步骤流程图;
图9是本发明的一种模型训练装置实施例的结构框图;
图10是本发明的一种模型训练装置可选实施例的结构框图;
图11示意性地示出了用于执行根据本发明的方法的电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种模型训练系统实施例的结构框图。
所述模型训练系统可以包括模型需求方、数据提供方和密文计算平台。其中,所述模型需求方可以为一个或多个,所述数据提供方可以为两个及两个以上,具体可以按照需求确定,本发明实施例对此不作限制;其中,为描述方便图1中仅示出了两个数据提供方和一个模型需求方。所述模型需求方在作为模型需求方的同时,也可以作为数据提供方。所述密文计算平台可以部署在所有数据提供方和模型需求方中的一方,也可以分布式地部署在所有数据提供方和模型需求方中的多方,还可以独立于所有数据提供方和模型需求方进行部署;本发明实施例对此不作限制。其中,所述密文计算平台可以基于多方安全计算协议进行密文计算,所述密文计算可以包括纯密文运算,以及明文和密文的混合运算。且密文计算平台由所有数据提供方和模型需求方中的多方共同管理;在密文计算平台进行密文计算过程中,任何一方都无法单独对数据进行解密,以保证数据安全。
本发明实施例提供的一种模型训练的方法,适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景,这种场景概括了多个数据提供方的私有数据的特征空间重叠较多,样本空间重叠较少,而联合进行数据特征对齐后的情况。其核心构思之一是,由各数据提供方基于拥有的数据对模型进行本地训练;然后借助密文计算平台,基于各数据提供方本地训练得到的结果对模型进行参数更新,并将更新的模型参数下发给各数据提供方;各数据提供方依据接收的模型参数对模型更新后继续基于拥有的数据对模型进行本地训练,然后再借助密文计算平台确定模型更新后的参数,如此循环往复,实现模型的训练,并且能够保证各数据提供方数据的隐私安全。
参照图2,示出了本发明的一种模型训练方法实施例的步骤流程图,具体可以包括如下步骤:
步骤202、接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的。
步骤204、在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
步骤206、将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
本发明实施例中,可以预先由模型需求方依据自身的模型训练需求,生成对应的模型训练需求信息;并将所述模型训练需求信息发送给各数据提供方。
本发明实施例中,所述向各数据提供方发送的模型训练需求信息中可以包括所需训练的目标模型和目标模型的初始参数;也可以只包括所需训练的目标模型,此时各数据提供方可以将默认参数确定为目标模型的初始参数。
本发明实施例中,各数据提供方各自提供对目标模型进行训练所需的部分数据(后续可以称为本地私有数据),可以看做是对目标模型训练依赖的数据集进行了横向切分后的数据。即各数据提供方所拥有的数据是具有相同的特征空间的数据,每个数据提供方分别提供不同样本在相同的一系列特征维度上的数据。例如数据提供方1拥有的数据为:用户A:{身高、体重、发型},用户B:{身高、体重、发型};数据提供方2拥有的数据为:用户C:{身高、体重、发型},用户D:{身高、体重、发型},用户E:{身高、体重、发型},用户F:{身高、体重、发型}。
各数据提供方采用各自拥有的数据,基于目标模型的初始参数对目标模型进行一轮训练,得到对应的中间结果。其中,所述中间结果可以包括多种,如目标模型的梯度参数、目标模型的模型参数等等,本发明实施例对此不作限制。然后各数据提供方可以借助密文计算平台,将各自的中间结果以密文的形式进行合并,确定所述目标模型的模型更新后的参数。
其中,密文计算平台可以将各数据提供方的中间结果,以密文的形式通过多方安全计算进行合并,确定所述目标模型的模型更新后的参数并存储;然后将合并得到的模型更新后的参数分发给各数据提供方。其中,密文计算平台确定的模型更新后的参数为密文。此外,所基于的多方安全计算协议可以是混淆电路,秘密分享,和同态加密等,如何基于多方安全计算协议进行合并在后续进行说明。
各数据提供方接收到密文计算平台下发的模型更新后的参数后,可以对模型更新后的参数进行解密;然后可以采用解密后的模型更新后的参数更新目标模型,并基于各自拥有的数据对更新后的目标模型进行一轮训练,得到对应的中间结果。再将本轮训练得到的中间结果加密后上传至密文计算平台,由密文计算平台执行上述步骤202-步骤206;如此循环往复,直到将目标模型训练为满足模型需求方的模型训练需求为止。
此外,密文计算平台在确定目标模型训练结束后,可以将最终得到的模型更新后的参数发送给模型需求方;模型需求方对模型更新后的参数进行解密后,即可以得到训练好的目标模型。
综上,本发明实施例中,由各数据提供方基于本地私有数据对目标模型进行训练得到中间结果后,借助密文计算平台,将各自的中间结果以密文的形式通过多方安全计算进行合并,确定所述目标模型的模型更新后的参数并将所述模型更新后的参数分发给各数据提供方;然后由各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练得到中间结果,并基于中间结果借助至密文计算平台确定模型更新后的参数并分发各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例对目标模型的每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,而无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。
本发明的一个实施例中,各数据提供方可以基于秘密分享协议将中间结果分片编码后发送至密文计算平台。一种在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数方式可以是:在密文基础上基于秘密分享协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。密文计算平台将模型更新后的参数分发给各数据提供方后,各数据提供方可以基于秘密分享协议对模型更新后的参数进行解密;然后再采用解密后的模型更新后的参数对目标模型进行更新。
本发明的一个实施例中,基于同态加密协议,由各数据提供方协同生成公钥和私钥,由密文计算平台持有公钥,每个数据提供方持有私钥的一部分。各数据提供方将中间结果基于所持有的公钥加密,然后将加密后的中间结果上传至密文计算平台。又一种在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数的方式可以是:在密文的基础上基于同态加密协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。密文计算平台将模型更新后的参数后分发给各数据提供方后,各数据提供方可以根据各自持有的部分私钥,联合对各模型更新后的参数进行解密。
当然,本发明的一个实施例中,还可以由密文计算平台基于同态加密协议分发公钥给各数据提供方;各数据提供方根据公钥将中间结果加密,并对加密后的中间结果进行交换和合并,确定模型更新后的参数;然后将确定的模型更新后的参数上传至密文计算平台进行解密。
以下在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数进行说明。
参照图3,示出了本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图。可以包括如下步骤:
步骤302、密文计算平台确定计算任务和对应的计算数据。
步骤304、基于多方安全计算协议生成所述计算任务对应的多方计算指令,将所述多方计算指令和计算数据发送至密文计算平台中的计算引擎。
本发明的一个可选实施例中,密文计算平台在将各数据提供方上传的中间结果进行合并过程中,需要进行多次计算。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,然后调用密文计算平台中的计算引擎对所述计算任务对应的计算数据进行处理。
其中,密文计算平台可以按照预先构建的对应各计算任务的多方安全计算协议,预先将计算任务转换成所述多方计算指令;然后将多方计算指令和对应的计算数据发送至计算引擎。
其中,所述多方安全计算协议为指示并调度计算引擎中各计算节点执行对应计算任务的多方计算的过程,其包括但不限于:描述加法、减法、乘法或除法等数学计算的计算任务的多方计算执行过程,描述逻辑和、或、非、异或、比较等逻辑计算的计算任务的多方计算执行过程,描述秘密传输的多方计算执行过程等。其中,所述多方计算指令包括:为采用多方计算的方式执行计算任务而指示计算引擎中各计算节点进行本地计算的指令,计算节点之间执行数据交互的指令,获取计算数据的指令,生成随机数的指令等。所述多方计算指令还可以包含指示计算节点执行本地计算和数据交互的计算角色的指令。所述多方计算指令可以由计算机程序语言来描述,或者由机器语言来描述。
然后计算引擎可以基于所述多方计算指令对对应的计算数据进行处理。
步骤306、计算引擎获取多方计算指令和计算数据。
其中,所述计算引擎可以包括多个计算节点,通过多个计算节点的协同计算来实现对计算任务对应计算数据的处理;计算引擎包含的计算节点的数量可以按照需求设置如4个,本发明实施例对此不作限制。
在一些示例中,计算引擎的各计算节点可以获取计算任务的完整的多方计算指令,即获取包含有每个计算节点执行的计算指令。为此,为使每个计算节点协同执行,所述步骤包括:各计算节点获取所述多方计算指令及计算角色;以供各计算节点按照所分别获取的计算角色执行所述多方计算指令。其中,所述计算角色用于标记所述多方计算指令中各执行本地计算的计算节点,以及标记所述多方计算指令中执行计算节点之间的交互时数据发送方和数据接收方等。
在又一些示例中,计算引擎的各计算节点分别获取所述多方计算指令中对应本地执行的计算指令。其中,所述本地执行的计算指令包含用于执行本地计算的指令,为执行数据交互而发出本地存储的数据的指令,为执行数据交互而将所接收的数据存储本地的指令,获取经处理的输入数据的指令,生成随机数的指令等。例如,所述多方计算指令包含计算节点S1执行生成随机数r12的指令P1,计算节点Sa执行生成随机数rab的指令Pa等,则计算节点S1获取指令P1,计算节点Sa获取指令Pa。
为执行计算任务,所述计算引擎中各计算节点还获取对应的计算数据。所述计算数据可以包括数据提供方上传的数据,如中间结果;其中,所述中间结果可以由数据提供方基于计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。本发明的一个可选实施例中,所述随机分散处理方式可以包括:随机产生至少一个私密数据,按照所产生的私密数据将输入数据进行分散处理。一种示例中,所述随机分散处理方式包括:随机产生两个私密数据x1和x'1,基于所述私密数据x1和x'1将输入数据X分散成{x1,x1,x2,x2,xa,xa,xb,x'b};其中,x2=X-x1=xa,x1=xb,x'2=X-x'1=x'b,x'1=x'a。所述计算数据还可以包括密文计算平台中数据,密文计算平台中的数据可以是密文,也可以是明文,本发明实施例对此不作限制。其中,密文计算平台中的密文数据,可以由密文计算引擎基于计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。其中,数据提供方随机分散处理的方式和密文计算平台随机分散处理的方式可以一致。
其中,当所述计算数据为密文时,每个节点获取的计算数据为计算数据的至少一个密文分片,计算数据的所有的密文分片可以组成计算数据的明文。例如上述示例中数据X的密文为{x1,x'1,x2,x'2,xa,x'a,xb,x'b};若计算节点为4个,每个计算节点获取的计算数据的密文分片可以为{x1,x'1},{x2,x'2},{xa,x'a}和{xb,x'b}。当所述计算数据为明文时,每个节点获取的计算数据可以为计算数据的本身。当计算数据包括明文和密文,计算节点获取的计算数据可以为明文和密文的至少一个密文分片。例如,所述计算数据包括A1和A2,其中,A1为密文,被随机分散为{a1,a2},,A2为明文部分。计算节点1获取的计算数据可以为a1和A2,计算节点2获取的计算数据可以为a2和A2。
步骤308、按照所述多方计算指令,所述计算引擎中至少部分计算节点分别对各自所获取的计算数据进行本地计算,和/或将本地计算所产生的中间数据进行交互,得到经由各计算节点分别持有的计算结果。
其中,根据计算任务,所述多方计算指令可指示部分计算节点仅执行本地计算,并得到计算结果。在一些示例中,所述多方计算指令包含基于计算任务中具有同态性的计算而生成的指令;按照所述多方计算指令,所述计算引擎中的计算节点执行本地计算并得到相应的计算结果。其中,所述同态性表示可具有一个封闭的具有结合律的运算,例如,加法计算等。在利用所述计算引擎执行加法计算时,多方计算指令可指示两个计算节点执行计算数据A1和A2的加法计算,并得到各自持有的计算结果。密文计算平台可通过获取该两个计算节点的计算结果得到A1+A2的处理结果。
在又一些示例中,多方计算指令包含指令计算节点分别对各自所获取的计算数据组进行本地计算的指令,以及将本地计算所产生的中间数据进行交互的指令。在一些具体示例中,多方计算指令可对应计算任务中所涉及的每个计算。在又一些具体示例中,所述多方计算指令包含基于计算任务中多个计算之间的关联关系而设置的指令。其中,所述多个计算之间的关联关系包括但不限于:计算优先级关系、计算同态性、计算可同步性、计算所需的计算数据的随机分散处理方式等。根据所述关联关系,所述密文计算平台或计算引擎优化了各计算节点的本地计算和数据交互,由此各计算节点按照优化后的多方计算指令执行本地计算的指令,以及计算节点执行数据交互的指令。例如,计算任务中包含(X+Y)×Z,多方计算指令包含:指示两个计算节点执行本地计算得到对应(X+Y)多方计算的指令,指示该两个计算节点将各自持有的对应(X+Y)多方计算的计算结果作为中间数据,并进行随机分散处理的指令,指示多个计算节点执行对应(X+Y)×Z多方计算的指令等。
步骤310、密文计算平台依据各计算节点分别持有的计算结果,确定所述计算任务对应的处理结果。
在计算引擎得到对应计算任务的计算结果后,密文计算平台可以从所述多个计算节点中选取部分计算节点所持有的计算结果用于生成一处理结果;其中,所述处理结果为所述计算任务对计算数据进行处理的处理结果。
本发明的一个实施例中,所述中间结果可以包括模型参数和/或梯度参数;当然还可以包括其他的可用于更新模型参数的信息,本发明实施例对此不作限制。
以下对中间结果为模型参数时,密文计算平台如何合并各数据提供方上传的中间结果进行说明。
参照图4,示出了本发明的一种模型训练方法可选实施例的步骤流程图。
步骤402、接收各数据提供方上传的中间结果,其中,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的,所述中间结果为模型参数,所述模型参数为密文。
本发明实施例中,各数据提供方可以将其拥有的数据划分为N个批次,每个批次可以包括至少一个样本的数据;N为正整数。然后依次采用N批次训练数据对目标模型训练后,完成对目标模型的一轮训练。各数据提供方完成对目标模型的一轮训练后,可以获取目标模型进行该轮训练后的模型参数;并将得到的模型参数确定为中间结果。然后可以借助密文计算平台,将各自的中间结果以密文的形式进行合并,确定所述目标模型的模型更新后的参数。
密文计算平台可以在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。当所述中间结果为模型参数时,实现所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数的一种方式,可以参照步骤404-步骤406:
步骤404、确定各数据提供方对应的权重信息。
步骤406、按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,得到所述目标模型的模型更新后的参数并存储。
本发明实施例中,密文计算平台可以依据预设规则,确定各数据提供方对应的权重信息;其中,所述预设规则可以按照需求设置,本发明实施例对此不作限制。本发明实施例的一个示例中,一种预设规则可以是:各数据提供方的权重信息相同。本发明实施例的又一个示例中,一种预设规则可以是:数据提供方的权重信息与数据提供方所拥有的数据量成正比;即数据提供方所拥有的用于训练目标模型的数据量越大,该数据提供方的权重信息越大。其中,权重参数可以为明文,也可以为密文,本发明实施例对此不作限制。
本发明实施例中,密文计算平台在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算的过程中,需要进行多次计算(如可以包括多次加法运算和多次乘法运算)。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据。然后可以参照步骤304-步骤310,完成对各数据提供方上传的模型参数进行加权计算,确定目标模型的模型更新后的参数。例如在计算各数据提供方的模型参数与权重信息的乘积时,可以分别生成各数据提供方对应的用于执行乘法计算的计算任务;对应的计算数据可以是模型参数和权重信息。
步骤408、将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
密文计算平台确定模型更新后的参数后,可以将模型更新后的参数分发给各数据提供方;由各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果;如此循环往复,直至满足模型需求方的模型训练需求为止。
综上,本发明实施例中,各数据提供方将每轮训练后目标模型的模型参数上传给密文计算平台;密文计算平台在确定各数据提供方对应的权重信息后,可以直接按照各数据提供方对应的权重信息,然后在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,即可得到所述目标模型的模型更新后的参数;而无需进行其他计算,进而提高了密文计算平台确定目标模型的模型更新后的参数的效率。
以下对中间结果为梯度参数时,密文计算平台如何合并各数据提供方上传的中间结果进行说明。
参照图5,示出了本发明的又一种模型训练方法可选实施例的步骤流程图。
步骤502、接收各数据提供方上传的中间结果,其中,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的,所述中间结果为梯度参数,所述梯度参数为密文。
本发明实施例中,各数据提供方可以将其拥有的数据划分为N个批次,每个批次可以包括至少一个样本的数据;N为正整数。然后依次采用N批次训练数据对目标模型训练后,完成对目标模型的一轮训练。各数据提供方在采用第N批次数据对目标模型进行反向传播的过程中,可以在计算得到目标模型的梯度参数后,将该梯度参数确定为中间结果。然后可以借助密文计算平台,将各自的中间结果以密文的形式进行合并,确定所述目标模型的模型更新后的参数。进而无需计算目标模型的模型参数,提高了各数据提供方确定中间结果的效率。
密文计算平台可以在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。当所述中间结果为梯度参数时,实现所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数的一种方式,可以参照步骤504-步骤508:
步骤504、确定各数据提供方对应的权重信息。
其中,步骤504与上述步骤204类似,在此不再赘述。
步骤506、按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算。
本发明实施例中,密文计算平台在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算的过程中,需要进行多次计算(如可以包括多次加法运算和多次乘法运算)。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据;然后可以参照步骤304-步骤310,完成对各数据提供方上传的梯度参数进行加权计算,确定目标模型对应的模型更新后的参数。例如,在计算各数据提供方的梯度参数与权重信息的乘积时,可以分别生成各数据提供方对应的用于执行乘法计算的计算任务,该计算任务对应的计算数据可以包括梯度参数和权重信息。
步骤508、在密文基础上基于多方安全计算协议,采用加权计算的结果对所述目标模型进行参数更新,得到所述目标模型的模型更新后的参数并存储。
本发明实施例中,采用加权计算的结果对所述目标模型进行参数更新的过程中,需要计算多次计算;在每进行一次计算时,可以生成该次计算对应的计算任务,然后调用密文计算平台中的计算引擎对所述计算任务对应的计算数据进行处理。再可以参照步骤304-步骤310,确定所述目标模型的模型更新后的参数。
步骤510、将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
参照图6,示出了本发明的又一种模型训练方法可选实施例的步骤流程图。
步骤602、接收各数据提供方上传的中间结果,其中,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的,所述中间结果为梯度参数,所述梯度参数为密文。
本步骤602与上述步骤502类似,在此不再赘述。
当所述中间结果为梯度参数时,实现所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数的一种方式,可以参照步骤604-步骤606:
步骤604、在密文基础上基于多方安全计算协议,分别采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到各数据提供方对应的模型更新后的参数。
本发明实施例中,在每采用一个数据提供方上传的梯度参数对所述目标模型进行参数更新的过程中,均需要计算多次计算。在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据;然然后可以参照步骤304-步骤310,确定各数据提供方对应的模型更新后的参数。
步骤606、在密文基础上基于多方安全计算协议将各数据提供方对应的模型更新后的参数进行加权计算,得到所述目标模型的模型更新后的参数并存储。
其中步骤606与上述步骤404-步骤406类似,在此不再赘述。
步骤608、将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
综上,本发明实施例中,各数据提供方将梯度参数作为中间结果,并将中间结果加密后上传给密文计算平台,由密文计算平台在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数;进而提高了数据提供方确定中间结果的效率;且降低了数据提供方的计算量。
参照图7,示出了本发明的又一种模型训练方法可选实施例的步骤流程图。
步骤702、接收各数据提供方上传的中间结果,其中,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的,所述中间结果为梯度参数,所述梯度参数为密文。
本步骤702与上述步骤502类似,在此不再赘述。
当所述中间结果为梯度参数时,实现所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数的一种方式,可以参照步骤704:
步骤704、在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数并存储。
本发明实施例中,可以在密文基础上基于多方安全计算协议,采用一数据提供方上传的梯度参数对所述目标模型进行更新;再采用下一个数据提供方上传的梯度参数对该更新后的目标模型进行更新;以此类推,直到采用所有数据提供方上传的梯度参数对所述目标模型进行更新为止。其中,在每采用一个数据提供方上传的梯度参数对所述目标模型进行参数更新的过程中,均需要计算多次计算。在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据;然后可以参照步骤304-步骤310,确定所述目标模型的模型更新后的参数。
步骤706、将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
综上,本发明实施例中,各数据提供方将梯度参数作为中间结果,并将中间结果加密后上传给密文计算平台,由密文计算平台在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数;进而提高了密文计算平台确定的模型更新后的参数的准确性。
在上述训练过程中,由于密文计算平台在每一个更新轮次均会将模型更新后的参数分发给各数据提供方;使得各数据提供方能够获取模型参数,从而无法保证模型安全。其中,本发明实施例中,可以将从各数据提供方采用本次接收到的密文计算平台下发的模型参数更新目标模型后,至各数据提供方采用下一次接收到的密文计算平台下发模型参数更新目标模型为止,称为一个更新轮次。
为了保证模型的安全,本发明实施例中,密文计算平台可以设置混淆更新轮次,在混淆更新轮次给各数据提供方分发用于混淆模型参数的参数;在正常更新轮次将各数据提供方上传的中间结果合并得到的模型更新后的参数分发各数据提供方;以使各数据提供方无法分辨出目标模型实际的模型参数,进而保证了模型的安全。其中,其可以将除去混淆更新轮次外的其他更新轮次,称为正常更新轮次。
参照图8,示出了本发明的又一种模型训练方法可选实施例的步骤流程图。
步骤802、接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的。
步骤804、判断所述目标模型的上一更新轮次是否是混淆更新轮次。
本发明实施例的一个示例中,密文计算平台可以直接指定混淆更新轮次,例如,将第10个更新轮次-第15个更新轮次、第30个更新轮次-第40个更新轮次,指定为混淆更新轮次。本发明实施例的一个示例中,密文计算平台可以预先按照混淆更新轮次的确定规则,确定混淆更新轮次;也可以在接收到各数据提供方上传的中间结果后,按照混淆更新轮次的确定规则,确定混淆更新轮次,本发明实施例对此不作限制。例如,混淆更新轮次的确定规则为:每间隔m(m为正整数,可以按照需求设置如10)轮更新轮次设置x(x为正整数,可以按照需求设置如5)轮混淆更新轮次。又例如,将轮次为3的倍数的更新轮次设置为混淆更新轮次等等,本发明实施例对此不作限制。当然,还可以包括其他设置混淆更新轮次的方法,本发明实施例对此也不作限制。
本发明实施例中,密文计算平台接收到各数据提供方上传的中间结果后,可以判断所述目标模型的上一更新轮次是否是混淆更新轮次,以根据上一更新轮次是否是混淆更新轮次的判断结果,确定如何对当前更新轮次进行处理。其中,若所述目标模型的上一更新轮次是正常更新轮次,则执行步骤806;若所述目标模型的上一更新轮次是混淆更新轮次,则执行步骤814。
步骤806、若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型。
本发明实施例中,模型需求方也可以预先将模型训练需求信息上传至密文计算平台;其中,向密文计算平台上传的所述模型训练需求信息中可以包括模型训练的结束条件。进而可以使得由密文计算平台通过指示各数据提供方对目标模型的训练,得到模型需求方所需的目标模型。其中,密文计算平台可以在每一个更新轮次开始时,先判断是否需要继续训练所述目标模型。其中,可以依据目标模型在上一更新轮次损失函数的值,来判断是否需要继续训练所述目标模型。
本发明实施例中,当所述目标模型的上一更新轮次是混淆更新轮次时,各数据提供方在上一更新轮次是按照混淆参数进行模型更新的;此时依据目标模型在上一更新轮次损失函数的值,来判断是否需要继续训练所述目标模型的判断结果是不准确的,因此当所述目标模型的上一更新轮次是混淆更新轮次时,没有必要判断是否需要继续训练目标模型。而当所述目标模型的上一更新轮次是正常更新轮次时,各数据提供方在上一更新轮次是按照模型更新后的参数进行模型更新的;此时可以判断是否继续训练所述目标模型。
其中,所述判断是否继续训练所述目标模型,可以包括如下子步骤S2-子步骤S6:
子步骤S2、获取各数据提供方上传的所述目标模型上一更新轮次的损失函数的值,所述损失函数的值是数据提供方根据上一更新轮次接收到的模型更新后的参数对目标模型进行更新后确定的,所述损失函数的值为密文。
本发明的一个示例中,可以由数据提供方主动上传目标模型上一更新轮次的损失函数的值。其中,各数据提供方可以在每一更新轮次对目标模型进行训练得到对应的中间结果之前,计算采用上一更新轮次接收到的模型更新后的参数更新后目标模型的损失函数的值;再基于各自所拥有的数据对上一更新轮次进行模型更新后的目标模型进行训练。然后分别将该更新轮次中间结果和上一更新轮次的损失函数的值进行加密并上传给密文计算平台。对应的,密文计算平台可以在接收到各数据提供方上传的中间结果的同时,接收到各数据提供方上传的目标模型上一更新轮次的损失函数的值。
本发明的一个示例中,也可以由密文计算平台主动从各数据提供方获取目标模型上一更新轮次的损失函数的值。其中,密文计算平台可以向各数据提供方发送信息获取请求;各数据提供方接收到该信息获取请求后,可以将目标模型上一更新轮次的损失函数的值,返回给密文计算平台。
然后密文计算平台可以依据所述损失函数的值判断是继续对目标模型进行训练,还是结束对目标模型的训练。
子步骤S4、在密文的基础上基于多方安全计算将各数据提供方上传的损失函数的值进行合并,得到损失函数的合并值。
本发明实施例中,密文计算平台可以在密文的基础上基于多方安全计算将各数据提供方上传的损失函数的值进行合并,得到损失函数的合并值;然后依据损失函数的合并值,判断是否需要继续对目标模型进行训练。其中,对损失函数的值的合并方式,与上述对模型参数的合并方式类似,在此不再赘述。
子步骤S6、在密文的基础上基于多方安全计算,依据所述损失函数的合并值判断是否需要继续训练所述目标模型。
本发明实施例中,模型需求方上传至密文计算平台的结束条件可以包括多种,例如可以是损失函数的值小于阈值;又例如连续y(y为正整数,可以按照需求设置,本发明实施例对此不作限制)轮损失函数的值的变化小于设定范围,等等,本发明实施例对此不作限制。
本发明实施例中,密文计算平台可以在密文的基础上基于多方安全计算,比对所述损失函数的合并值和结束条件,判断是否需要继续训练所述目标模型。当所述损失函数的合并值满足结束条件,则确定无需继续训练所述目标模型,即停止对所述目标模型进行训练;此时可以执行步骤824和步骤826。当所述损失函数的合并值不满足结束条件,则确定需要继续对目标模型进行训练;此时可以执行步骤808。
其中,当结束条件为损失函数的值小于阈值时,密文计算平台可以生成用于执行减法计算的计算任务,并将损失函数的合并值与阈值确定为计算数据;再执行上述步骤304-步骤310,确定对应的计算结果。然后依据对应的计算结果,判断损失函数的合并值是否满足结束条件。
其中,当结束条件为连续y轮损失函数的值的变化小于设定范围时,密文计算平台可以先生成(y-1)个用于执行减法的计算任务,每一个计算任务的计算数据为相邻两轮的损失函数的合并值;然后执行步骤304-步骤310计算每个计算任务的计算结果,得到(y-1)个初步计算结果。再基于其中一个初步计算结果和设定范围的其中一个端点值,生成用于执行减法计算的计算任务;计算数据为该初步计算结果和设定范围的其中一个端点值;然后然后执行步骤304-步骤310计算该计算任务的目标计算结果。若依据该目标计算结果确定相邻两轮损失函数的合并值的变化大于设定范围,则确定损失函数的合并值不满足结束条件。若依据该目标计算结果确定相邻两轮损失函数的合并值的变化小于设定范围,则再基于初步计算结果和设定范围的另一个端点值,生成用于执行减法计算的计算任务;计算数据为该初步计算结果和设定范围的另一个端点值;然后执行步骤304-步骤310计算该计算任务的目标计算结果。若依据该目标计算结果确定相邻两轮损失函数的合并值的变化大于设定范围,则确定损失函数的合并值不满足结束条件。若依据该目标计算结果确定相邻两轮损失函数的合并值的变化小于设定范围,则基于下一个初步计算结果和设定范围的其中一个端点值,生成用于执行减法计算的计算任务,以此类推。
步骤808、若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
本发明实施例中,若确定所述目标模型的上一更新轮次是正常更新轮次,且需要继续训练所述目标模型;则无论当前更新轮次是混淆更新轮次(也可以称为过渡更新轮次,即将上一更新轮次是正常更新轮次的混淆更新轮次的轮次称为过渡更新轮次),还是正常更新轮次,均可以在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。这与上述实施例所述的合并方法类似,在此也不再赘述。然后将确定的所述目标模型的模型更新后的参数进行存储。
步骤810、判断所述目标模型的当前更新轮次是否是混淆更新轮次。
本发明实施例中,在将各数据提供方在当前更新轮次上传的中间结果进行合并得到所述目标模型的模型更新后的参数后,可以判断所述目标模型的当前更新轮次是否是混淆更新轮次;以判断是将混淆参数分发给各数据提供方,还是将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到所述目标模型的模型更新后的参数分发给各数据提供方。其中,当所述目标模型的当前更新轮次是混淆更新轮次时,可以执行步骤820;当所述目标模型的当前更新轮次是正常更新轮次时,可以执行步骤812。
步骤812、若确定需要继续训练所述目标模型且当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
本发明实施例中,若确定需要继续训练所述目标模型且当前更新轮次为正常更新轮次,则可以将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数,分发给各数据提供方。
步骤814、若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次。
本发明实施例中,若所述目标模型的上一更新轮次是混淆更新轮次,则可以直接判断所述目标模型的当前更新轮次是否是混淆更新轮次。其中,当所述目标模型的当前更新轮次是正常更新轮次时,可以执行步骤816;当所述目标模型的当前更新轮次是混淆更新轮次时,可以执行步骤820。
步骤816、若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是正常更新轮次,则获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数。其中,所述过渡更新轮次是前一次更新轮次为正常更新轮次的混淆更新轮次。
步骤818、将基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数,分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
其中,当某一正常更新轮次的上一更新轮次是正常更新轮次,密文计算平台在该正常更新轮次接收到的各数据提供方上传的中间结果,是各数据提供方对基于模型更新后的参数更新的目标模型进行训练的中间结果。而当某一正常更新轮次的上一更新轮次是混淆更新轮次,密文计算平台在该正常更新轮次接收到的各数据提供方上传的中间结果,是各数据提供方对基于混淆参数更新的目标模型进行训练的中间结果;基于该中间结果确定的模型更新后的参数是不准确的。因此当所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是正常更新轮次时,为了保证模型训练的准确性,可以获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数。其中,所述过渡更新轮次是前一次更新轮次为正常更新轮次的混淆更新轮次。例如,第1-5轮为正常更新轮次,第6-10轮为混淆更新轮次,第11-第15轮为正常更新轮次;第16-第20轮为混淆更新轮次,第21-第25轮为正常更新轮次。其中,第6轮、第16轮均可以称为过渡更新轮次;若当前更新轮次为第21轮,则第16轮为与当前更新轮次最近的一过渡更新轮次。
步骤820、将预设的混淆参数分发给各数据提供方;以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
本发明实施例中,密文计算平台可以预先为混淆更新轮次设置混淆参数;也可以按照混淆参数的生成规则,预先生成各混淆更新轮次对应的混淆参数。然后在确定所述目标模型的当前更新轮次是混淆更新轮次时,直接选取该混淆更新轮次对应的混淆参数。当然,也可以在确定所述目标模型的当前更新轮次是混淆更新轮次时,按照混淆参数的生成规则,根据各数据提供方上传的中间结果生成该混淆更新轮次对应的混淆参数。其中,所述混淆参数可以用于混淆目标模型的模型参数,混淆参数的生成规则可以按照需求设置,本发明实施例对此不作限制;不同的混淆更新轮次的混淆参数可以不同。
本发明实施例中,在确定需要继续训练所述目标模型且当前更新轮次是混淆更新轮次,或者,确定所述目标模型的上一更新轮次和当前更新轮次均是混淆更新轮次;则可以将确定的混淆参数分发给各数据提供方;各数据提供方接收到混淆参数后,可以分别依据混淆参数更新所述目标模型,进而完成了目标模型的本更新轮次的参数更新。然后各数据提供方再分别采用各自拥有的数据对更新后的目标模型进行一轮训练,并上传进行一轮训练得到的中间结果。
步骤822、将最后得到的模型更新后的参数发送至对应的模型需求方。
步骤824、向各数据提供方发送结束训练消息。
本发明实施例中,在确定需要结束对目标模型进行训练时,一方面可以将最后得到的模型更新后的参数发送至对应的模型需求方;另一方面,可以直接向各数据提供方发送结束训练消息,以指示各数据提供方停止对目标模型进行训练。
在上述模型训练的过程中,所有参与训练的数据提供方均会获知训练得到的目标模型的模型参数,或者至少获知和训练得到的最终的模型参数相近的前一轮训练后的模型参数;因此为了进一步保障模型的安全,在确定需要结束对目标模型进行训练时,再执行多轮模型参数更新后,向各数据提供方发送结束训练消息。
本发明的一个示例中,所述执行多轮模型参数更新,可以是指执行多轮混淆更新轮次。每一更新轮次,密文计算平台均将预设的混淆参数分发给各数据提供方。
本发明的另一个示例中,所述执行多轮模型参数更新,也可以是指按照前面所述的正常的训练过程进行多轮训练,也就是混淆更新轮次与正常更新轮次混合执行。
综上,本发明实施例中,密文计算平台接收各数据提供方上传的中间结果后,可以判断所述目标模型的上一更新轮次是否是混淆更新轮次;若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型;若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。然后判断所述目标模型的当前更新轮次是否是混淆更新轮次;若所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方,以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。若所述目标模型的当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方。若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次;若所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方;若所述目标模型的当前更新轮次是正常更新轮次,则获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数并分发给各数据提供方;从而保证能够确定准确的模型更新后的参数,保障了模型训练的准确性。且本发明实施例通过设置混淆更新轮次,在混淆更新轮次将混淆参数分发给各数据提供方,使各数据提供方无法获取到真实的模型更新后的参数,保证了模型安全。
其次,本发明实施例中,在确定需要停止继续训练所述目标模型时,执行多轮模型参数更新后,再向各数据提供方发送结束训练消息;进而使得各数据提供方无法获知训练得到的目标模型的模型参数,进一步提高了对模型的保护。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明实施例还公开了一种模型训练装置,适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景;可以包括如下模块:
参照图9,示出了本发明一种模型训练装置实施例的结构框图。
接收模块902,用于接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;
合并模块904,用于在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储;
模型参数分发模块906,用于将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
参照图10,示出了本发明一种模型训练装置可选实施例的结构框图。
本发明一个可选实施例中,当所述中间结果为模型参数时,所述合并模块904,包括:
第一中间结果合并子模块9042,用于确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,得到所述目标模型的模型更新后的参数。
本发明一个可选实施例中,当所述中间结果为梯度参数时,所述合并模块904,包括:
第二中间结果合并子模块9044,用于确定各数据提供方对应的权重信息;按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算;在密文基础上基于多方安全计算协议,采用加权计算的结果对所述目标模型进行参数更新,得到所述目标模型的模型更新后的参数。
本发明一个可选实施例中,当所述中间结果为梯度参数时,所述合并模块904,包括:
第三中间结果合并子模块9046,用于在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数;或,在密文基础上基于多方安全计算协议,分别采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到各数据提供方对应的模型更新后的参数;以及在密文基础上基于多方安全计算协议将各数据提供方对应的模型更新后的参数进行加权计算,得到所述目标模型的模型更新后的参数。
本发明一个可选实施例中,所述的装置还包括:
第一轮次判断模块908,用于在接收各数据提供方上传的中间结果之后,判断所述目标模型的上一更新轮次是否是混淆更新轮次;
训练判断模块910,用于若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型;
所述合并模块904,包括:
第四中间结果合并子模块9048,用于若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
本发明一个可选实施例中,所述的装置还包括:
第二轮次判断模块912,用于在所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储之后,判断所述目标模型的当前更新轮次是否是混淆更新轮次;
混淆参数分发模块914,用于若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方;以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果;
所述模型参数分发模块906,包括:
第一模型更新参数分发子模块9062,用于若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方。
本发明一个可选实施例中,所述的装置还包括:
第三轮次判断模块916,用于若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次;
混淆参数分发模块914,用于若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方,以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
本发明一个可选实施例中,所述模型参数分发模块906,包括:
第二模型更新参数分发子模块9064,用于若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是正常更新轮次,则获取基于各数据提供方在与当前更新轮次最近的一过渡更新轮次上传的中间结果进行合并得到的模型更新后的参数并分发给各数据提供方;其中,所述过渡更新轮次是前一次更新轮次为正常更新轮次的混淆更新轮次。
本发明一个可选实施例中,所述训练判断模块910,用于获取各数据提供方上传的所述目标模型上一更新轮次的损失函数的值,所述损失函数的值是数据提供方根据上一更新轮次接收到的模型更新后的参数对目标模型进行更新后确定的,所述损失函数的值为密文;在密文的基础上基于多方安全计算将各数据提供方上传的损失函数的值进行合并,得到损失函数的合并值;在密文的基础上基于多方安全计算,依据所述损失函数的合并值判断是否需要继续训练所述目标模型。
本发明一个可选实施例中,所述的装置还包括:
模型参数返回模块918,用于确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;
第一消息返回模块920,用于向各数据提供方发送结束训练消息。
本发明一个可选实施例中,所述的装置还包括:
模型参数返回模块918,用于确定需要停止继续训练所述目标模型时,将最后得到的模型更新后的参数发送至对应的模型需求方;
第二消息返回模块922,用于执行多轮模型参数更新后,向各数据提供方发送结束训练消息。
本发明一个可选实施例中,所述中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述合并模块904,包括:
第五中间结果合并子模块90410,用于在密文基础上基于秘密分享协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
本发明一个可选实施例中,所述中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述合并模块904,包括:
第六中间结果合并子模块90412,用于在密文的基础上基于同态加密协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数。
综上,本发明实施例中,由各数据提供方基于本地私有数据对目标模型进行训练得到中间结果后,借助密文计算平台,将各自的中间结果以密文的形式通过多方安全计算进行合并,确定所述目标模型的模型更新后的参数并将所述模型更新后的参数分发给各数据提供方;然后由各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练得到中间结果,并基于中间结果借助密文计算平台确定模型更新后的参数并分发各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例对目标模型的每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,而无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的模型训练方法。
本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的模型训练方法。
本发明实施例一个示例中提供了一种电子设备,例如服务器,图11示出了可以实现根据本发明的服务器,例如管理服务器、存储服务器、应用服务器、云控服务、服务器集群等。该服务器传统上包括处理器1110和以存储器1120形式的计算机程序产品或者计算机可读介质。存储器1120可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器1120具有用于执行上述方法中的任何方法步骤的程序代码1131的存储空间1130。例如,用于程序代码的存储空间1130可以包括分别用于实现上面的方法中的各种步骤的各个程序代码1131。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图11的服务器中的存储器1120类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如1110之类的处理器读取的代码,这些代码当由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种模型训练方法、一种模型训练装置和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种模型训练方法,其特征在于,所述方法适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景,所述方法包括:
接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;
在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储;
将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
2.根据权利要求1所述的方法,其特征在于,当所述中间结果为模型参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:
确定各数据提供方对应的权重信息;
按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的模型参数进行加权计算,得到所述目标模型的模型更新后的参数。
3.根据权利要求1所述的方法,其特征在于,当所述中间结果为梯度参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:
确定各数据提供方对应的权重信息;
按照各数据提供方对应的权重信息,在密文基础上采用多方安全计算协议对各数据提供方上传的梯度参数进行加权计算;
在密文基础上基于多方安全计算协议,采用加权计算的结果对所述目标模型进行参数更新,得到所述目标模型的模型更新后的参数。
4.根据权利要求1所述的方法,其特征在于,当所述中间结果为梯度参数时,所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数,包括:
在密文基础上基于多方安全计算协议,依次采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到所述目标模型的模型更新后的参数;或,
在密文基础上基于多方安全计算协议,分别采用各数据提供方上传的梯度参数对所述目标模型进行更新,得到各数据提供方对应的模型更新后的参数;以及在密文基础上基于多方安全计算协议将各数据提供方对应的模型更新后的参数进行加权计算,得到所述目标模型的模型更新后的参数。
5.根据权利要求1所述的方法,其特征在于,在接收各数据提供方上传的中间结果之后,所述的方法还包括:
判断所述目标模型的上一更新轮次是否是混淆更新轮次;
若所述目标模型的上一更新轮次是正常更新轮次,则判断是否需要继续训练所述目标模型;
所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并并存储,包括:
若确定需要继续训练所述目标模型,则在密文基础上基于多方安全计算协议,将各数据提供方在当前更新轮次上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储。
6.根据权利要求5所述的方法,其特征在于,在所述在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储之后,所述的方法还包括:
判断所述目标模型的当前更新轮次是否是混淆更新轮次;
若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方;以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果;
所述将所述模型更新后的参数分发给各数据提供方,包括:
若确定需要继续训练所述目标模型且所述目标模型的当前更新轮次是正常更新轮次,则将基于各数据提供方在当前更新轮次上传的中间结果进行合并得到的模型更新后的参数分发给各数据提供方。
7.根据权利要求5所述的方法,其特征在于,所述的方法还包括:
若所述目标模型的上一更新轮次是混淆更新轮次,则判断所述目标模型的当前更新轮次是否是混淆更新轮次;
若所述目标模型的上一更新轮次是混淆更新轮次且当前更新轮次是混淆更新轮次,则将预设的混淆参数分发给各数据提供方,以使各数据提供方分别依据混淆参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
8.一种模型训练装置,其特征在于,所述装置适用于目标模型训练所依赖的数据横向分布在多个数据提供方的场景,所述装置包括:
接收模块,用于接收各数据提供方上传的中间结果,其中,所述中间结果为密文,所述中间结果是各数据提供方基于本地私有数据对目标模型进行训练得到的;
合并模块,用于在密文基础上基于多方安全计算协议将各数据提供方上传的中间结果进行合并,确定所述目标模型的模型更新后的参数并存储;
模型参数分发模块,用于将所述模型更新后的参数分发给各数据提供方;以使各数据提供方分别依据所述模型更新后的参数更新所述目标模型,对更新后的目标模型进行一轮训练以得到需上传的中间结果。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7中任一项所述的模型训练方法。
10.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-7中任一项所述的模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491184.1A CN112668037B (zh) | 2020-06-02 | 2020-06-02 | 一种模型训练方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491184.1A CN112668037B (zh) | 2020-06-02 | 2020-06-02 | 一种模型训练方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112668037A true CN112668037A (zh) | 2021-04-16 |
CN112668037B CN112668037B (zh) | 2024-04-05 |
Family
ID=75403951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010491184.1A Active CN112668037B (zh) | 2020-06-02 | 2020-06-02 | 一种模型训练方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112668037B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003950A (zh) * | 2021-10-19 | 2022-02-01 | 南京三眼精灵信息技术有限公司 | 基于安全计算的联邦机器学习方法、装置、设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180137360A1 (en) * | 2016-11-11 | 2018-05-17 | Qualcomm Incorporated | Unified embedding with metric learning for zero-exemplar event detection |
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN109977694A (zh) * | 2019-03-11 | 2019-07-05 | 暨南大学 | 一种基于协作深度学习的数据共享方法 |
WO2019231481A1 (en) * | 2018-05-29 | 2019-12-05 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN110704860A (zh) * | 2019-11-18 | 2020-01-17 | 深圳前海微众银行股份有限公司 | 提升安全性的纵向联邦学习方法、设备、系统及存储介质 |
CN111046857A (zh) * | 2020-03-13 | 2020-04-21 | 同盾控股有限公司 | 基于知识联邦的人脸识别方法、装置、设备、介质及系统 |
CN111046433A (zh) * | 2019-12-13 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习的模型训练方法 |
US20200125859A1 (en) * | 2018-10-17 | 2020-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for estimating position |
CN111177768A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法和装置 |
WO2020098336A1 (zh) * | 2018-11-16 | 2020-05-22 | 京东城市(南京)科技有限公司 | 数据共享方法、装置、数字网关及计算机可读存储介质 |
-
2020
- 2020-06-02 CN CN202010491184.1A patent/CN112668037B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180137360A1 (en) * | 2016-11-11 | 2018-05-17 | Qualcomm Incorporated | Unified embedding with metric learning for zero-exemplar event detection |
WO2019231481A1 (en) * | 2018-05-29 | 2019-12-05 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
US20200125859A1 (en) * | 2018-10-17 | 2020-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for estimating position |
WO2020098336A1 (zh) * | 2018-11-16 | 2020-05-22 | 京东城市(南京)科技有限公司 | 数据共享方法、装置、数字网关及计算机可读存储介质 |
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN109977694A (zh) * | 2019-03-11 | 2019-07-05 | 暨南大学 | 一种基于协作深度学习的数据共享方法 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN110704860A (zh) * | 2019-11-18 | 2020-01-17 | 深圳前海微众银行股份有限公司 | 提升安全性的纵向联邦学习方法、设备、系统及存储介质 |
CN111046433A (zh) * | 2019-12-13 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习的模型训练方法 |
CN111046857A (zh) * | 2020-03-13 | 2020-04-21 | 同盾控股有限公司 | 基于知识联邦的人脸识别方法、装置、设备、介质及系统 |
CN111177768A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法和装置 |
Non-Patent Citations (4)
Title |
---|
BENQIANG MAO: "Collaborative Regression Analysis Algorithm for Multi Organizational Coupling Feature to Ensure Privacy: LARS Based on Federal Learning", 《 2019 INTERNATIONAL CONFERENCE ON MACHINE LEARNING, BIG DATA AND BUSINESS INTELLIGENCE (MLBDBI)》, 2 January 2020 (2020-01-02) * |
MOMING DUAN ET AL.: "Astraea: Self-Balancing Federated Learning for Improving Classification Accuracy of Mobile Deep Learning Applications", 《2019 IEEE 37TH INTERNATIONAL CONFERENCE ON COMPUTER DESIGN (ICCD)》, pages 246 - 254 * |
杨强: "联邦学习:人工智能的最后一公里", 《智能系统学报》, pages 1 - 5 * |
杨烨: "多数据源隐私保护数据清洗与联合学习研究", 《中国优秀硕士学位论文全文全文数据库信息科技辑》, 15 February 2020 (2020-02-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003950A (zh) * | 2021-10-19 | 2022-02-01 | 南京三眼精灵信息技术有限公司 | 基于安全计算的联邦机器学习方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112668037B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112182644B (zh) | 一种数据处理方法、装置和电子设备 | |
US20210409191A1 (en) | Secure Machine Learning Analytics Using Homomorphic Encryption | |
CN113095510B (zh) | 一种基于区块链的联邦学习方法及装置 | |
CN111553483A (zh) | 基于梯度压缩的联邦学习的方法、装置及系统 | |
CN112347500B (zh) | 分布式系统的机器学习方法、装置、系统、设备及存储介质 | |
JP6016948B2 (ja) | 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム | |
US11488144B2 (en) | System and method of multi-round token distribution using a blockchain network | |
CN112329072B (zh) | 一种基于安全多方计算的模型联合训练方法 | |
CN105103487A (zh) | 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统 | |
KR20200094173A (ko) | 블록체인 기반 스마트 계약의 다중-당사지 생성을 위한 시스템 및 방법 | |
CN112926064B (zh) | 一种模型训练方法及装置、数据处理系统和电子设备 | |
CN112464155B (zh) | 一种数据处理方法、多方安全计算系统和电子设备 | |
CN109687952A (zh) | 数据处理方法及其装置、电子装置及存储介质 | |
CN112668748A (zh) | 一种预测方法、装置和电子设备 | |
CN110969264A (zh) | 模型训练方法、分布式预测方法及其系统 | |
CN111143862B (zh) | 数据处理方法、查询方法、装置、电子设备和系统 | |
CN115037477A (zh) | 一种基于区块链的联邦学习隐私保护方法 | |
EP3591563A1 (en) | Verifying the integrity of a plurality of data blocks | |
CN112597542B (zh) | 目标资产数据的聚合方法及装置、存储介质、电子装置 | |
CN112668038A (zh) | 一种模型训练方法、装置和电子设备 | |
CN109818754B (zh) | 客户端为多个客户端和单一服务器生成密钥的方法、设备 | |
CN110874481B (zh) | 一种基于gbdt模型的预测方法和装置 | |
CN112668016B (zh) | 一种模型训练方法、装置和电子设备 | |
CN112668037A (zh) | 一种模型训练方法、装置和电子设备 | |
CN109981591B (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 | ||
GR01 | Patent grant |