一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型训练方法、装置、设备及存储介质与流程

2022-05-21 02:08:50 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种模型训练方法、装置、设备及存储介质。


背景技术:

2.联邦机器学习又称为联邦学习,能有效帮助多个机构在满足用户隐私保护、数据安全的前提下,进行数据使用和机器学习建模。根据数据和任务特点的不同可以分为纵向联邦学习、横向联邦学习以及联邦迁移学习。
3.上述的横向联邦学习在人工智能(artificial intelligence,ai)领域应用需求较多,具体是指各合作方的数据集中样本特征重叠较多,而样本标识id重叠较少的情况。以人脸识别为例,地区a和地区b的数据集在人脸特征方面有较高相似性,但人员重叠较少。由于横向联邦的自身特点,多采用对模型参数联邦聚合前后进行加解密的方案,确保用户数据不出本地,具有较好的防护安全性。
4.然而,在各合作方端,可通过自有模型参数以及解密后的模型参数推测出其他参与方的综合模型参数,尤其是在两方横向联邦训练时,可直接推测出对方的模型参数,因此存在信息泄露风险。


技术实现要素:

5.本技术实施例提供一种模型训练方法、装置、设备及存储介质,提高模型训练过程中各参与方的信息安全性。
6.本技术实施例的第一方面提供一种模型训练方法,应用于第一设备,该模型训练方法包括:
7.获取所述第一设备对第一模型进行训练的第一参数信息;
8.基于所述第一参数信息以及所述第一设备的本地样本数据,对所述第一模型进行模型训练,在所述第一模型训练结束后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息;
9.向第二设备发送所述第二参数信息,所述第二参数信息用于所述第二设备更新共享模型的模型参数,所述共享模型的模型参数是所述第二设备通过对来自不同第一设备的模型参数进行聚合处理得到的,所述共享模型与所述第一模型的模型结构相同。
10.在第一方面的一个可选实施例中,所述第一设备为联邦学习系统的第一参与方设备,所述第二设备为所述联邦学习系统的第二参与方设备;或者
11.所述第一设备为所述联邦学习系统的任意一个参与方设备,所述第二设备为所述联邦学习系统的第三方设备。
12.在第一方面的一个可选实施例中,所述第一参数信息包括所述共享模型的模型参数以及所述共享模型训练的控制参数,所述控制参数包括预设聚合次数、当前聚合次数以及所述第一模型的权重值的至少一项。
13.在第一方面的一个可选实施例中,所述获取所述第一设备对第一模型进行训练的第一参数信息,包括:
14.从所述第二设备获取所述第一设备对所述第一模型进行训练的第一参数信息。
15.在第一方面的一个可选实施例中,所述第一参数信息是经过第一加密算法加密的信息,所述第一加密算法包括多方安全计算smpc加密算法或同态加密算法。
16.在第一方面的一个可选实施例中,所述基于所述第一参数信息以及所述第一设备的本地样本数据,对所述第一模型进行模型训练,包括:
17.采用第一解密算法对所述第一参数信息进行解密,获取解密后的模型参数;所述第一解密算法包括多方安全计算smpc解密算法或同态解密算法;
18.基于解密后的模型参数以及所述第一设备的本地样本数据,对所述第一模型进行模型训练。
19.在第一方面的一个可选实施例中,所述对训练后的第一模型的模型参数进行两次加密处理,包括:
20.根据所述第一参数信息中所述共享模型训练的控制参数,确定对训练后的第一模型进行两次加密处理;
21.采用第二加密算法对训练后的第一模型的模型参数进行加密处理,再采用第一加密算法对经过加密处理后的模型参数进行二次加密处理;
22.其中所述第二加密算法包括差分隐私加密算法,所述第一加密算法包括smpc加密算法或同态加密算法。
23.在第一方面的一个可选实施例中,所述根据所述第一参数信息中所述共享模型训练的控制参数,确定对训练后的第一模型进行两次加密处理,包括:
24.若所述共享模型训练的控制参数中的当前聚合次数未达到预设聚合次数,确定对训练后的第一模型进行两次加密处理。
25.在第一方面的一个可选实施例中,所述第一模型的权重值是根据所述第一设备的本地样本数据的数量和/或重要程度确定的。
26.本技术实施例的第二方面提供一种模型训练装置,包括:
27.获取模块,用于获取所述第一设备对第一模型进行训练的第一参数信息;
28.处理模块,用于基于所述第一参数信息以及所述第一设备的本地样本数据,对所述第一模型进行模型训练,在所述第一模型训练结束后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息;
29.发送模块,用于向第二设备发送所述第二参数信息,所述第二参数信息用于所述第二设备更新共享模型的模型参数,所述共享模型的模型参数是所述第二设备通过对来自不同第一设备的模型参数进行聚合处理得到的,所述共享模型与所述第一模型的模型结构相同。
30.在第二方面的一个可选实施例中,所述第一设备为联邦学习系统的第一参与方设备,所述第二设备为所述联邦学习系统的第二参与方设备;或者
31.所述第一设备为所述联邦学习系统的任意一个参与方设备,所述第二设备为所述联邦学习系统的第三方设备。
32.在第二方面的一个可选实施例中,所述第一参数信息包括所述共享模型的模型参
数以及所述共享模型训练的控制参数,所述控制参数包括预设聚合次数、当前聚合次数以及所述第一模型的权重值的至少一项。
33.在第二方面的一个可选实施例中,所述获取模块,具体用于:
34.从所述第二设备获取所述第一设备对所述第一模型进行训练的第一参数信息。
35.在第二方面的一个可选实施例中,所述第一参数信息是经过第一加密算法加密的信息,所述第一加密算法包括多方安全计算smpc加密算法或同态加密算法。
36.在第二方面的一个可选实施例中,所述处理模块,具体用于:
37.采用第一解密算法对所述第一参数信息进行解密,获取解密后的模型参数;所述第一解密算法包括多方安全计算smpc解密算法或同态解密算法;
38.基于解密后的模型参数以及所述第一设备的本地样本数据,对所述第一模型进行模型训练。
39.在第二方面的一个可选实施例中,所述处理模块,具体用于:
40.根据所述第一参数信息中所述共享模型训练的控制参数,确定对训练后的第一模型进行两次加密处理;
41.采用第二加密算法对训练后的第一模型的模型参数进行加密处理,再采用第一加密算法对经过加密处理后的模型参数进行二次加密处理;
42.其中所述第二加密算法包括差分隐私加密算法,所述第一加密算法包括smpc加密算法或同态加密算法。
43.在第二方面的一个可选实施例中,所述处理模块,具体用于:
44.若所述共享模型训练的控制参数中的当前聚合次数未达到预设聚合次数,确定对训练后的第一模型进行两次加密处理。
45.在第二方面的一个可选实施例中,所述第一模型的权重值是根据所述第一设备的本地样本数据的数量和/或重要程度确定的。
46.本技术实施例的第三方面提供一种电子设备,包括:
47.存储器;
48.处理器;以及
49.计算机程序;
50.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面中任一项所述的方法。
51.本技术实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面中任一项所述的方法。
52.本技术实施例的第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
53.本技术实施例提供一种模型训练方法、装置、设备及存储介质,可应用于横向联邦学习领域,该方法包括:获取第一设备对第一模型进行训练的第一参数信息,基于第一参数信息以及第一设备本地样本数据,对第一模型进行模型训练,在完成训练后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息,并向第二设备发送第二参数信息,以使第二设备更新共享模型的模型参数。由于第二参数信息经过两次加密处理,可降低第二参数信息在传输过程中或在第二设备处被恶意破解的风险。由于第二参数信息始终处
于加密状态,可避免各方推测出其他第一设备的模型参数,从而实现对各参与方的信息安全防护。
附图说明
54.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
55.图1为本技术实施例提供的联邦学习的系统架构示意图一;
56.图2为本技术实施例提供的联邦学习的系统架构示意图二
57.图3为本技术实施例提供的模型训练方法的流程示意图一;
58.图4为本技术实施例提供的模型训练方法的流程示意图二;
59.图5为本技术实施例提供的模型训练方法的交互示意图;
60.图6为本技术实施例提供的加密前后横向联邦训练过程loss的对比图;
61.图7为加密前后横向联邦训练过程准确率的对比图;
62.图8为本技术实施例提供的模型训练装置的结构示意图;
63.图9为本技术实施例提供的电子设备的硬件结构示意图。
64.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
65.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
66.本技术实施例的说明书、权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述之外的顺序实施。
67.应当理解,本文中使用的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
68.下面首先对本技术实施例涉及的专业术语进行简要说明。
69.安全多方计算(smpc,secure multi-party computation):是研究针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。
70.同态加密(he,homomorphic encryption):是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果
与用同一方法处理未加密的原始数据得到的输出结果是一样的。
71.差分隐私(dp,differential privacy):是密码学中的一种手段,它提供一种信息理论安全性保障,即函数的输出结果对数据集中的任何特定记录都不敏感。
72.图1为本技术实施例提供的联邦学习的系统架构示意图一。如图1所示,本实施例的联邦学习系统包括:多个参与方设备(例如图1中的参与方设备11、12、13)和一个第三方设备14,其中每个参与方设备分别与第三方设备14通信连接,第三方设备14和参与方设备11、12、13可以参与联邦学习过程。其中,参与方设备11、12、13在本地训练的模型分别记为模型1、模型2以及模型3,模型1、2、3的模型结构相同。
73.在联邦学习过程中,第三方设备14向各个参与方设备下发共享模型(是模型1、2、3的聚合模型)的相关参数,每个参与方设备基于共享模型的相关参数对本地模型进行赋值,并利用本地样本数据对本地模型进行模型训练,得到训练后的模型参数,并将训练后的模型参数通过预设方式上传至第三方设备14,第三方设备14将各个参与方设备上传的模型参数进行聚合处理,得到更新后的共享模型的模型参数,依次重复上述过程,直至聚合后的共享模型收敛为止。
74.可选的,在一些实施例中,第三方设备可以是多个参与方设备中的任意一个,即参与联邦学习过程的各参与方设备均可作为第三方设备,用于聚合各参与方设备的模型参数,向各参与方设备同步更新后的共享模型的模型参数。
75.图2为本技术实施例提供的联邦学习的系统架构示意图,与图1不同的是,如图2所示,本实施例的联邦学习系统包括:多个参与方设备,分别为参与方设备11、12、13、14,参与方设备11、12、13分别与参与方设备15通信连接,参与方设备之间不分主从。在联邦学习过程中,参与方设备15向参与方设备11、12、13下发共享模型的相关参数,每个参与方设备(11、12、13)基于共享模型的相关参数对本地模型进行赋值,并利用本地样本数据对本地模型进行模型训练,得到训练后的模型参数,并将训练后的模型参数通过预设方式发送至参与方设备15,参与方设备15将各个参与方设备(11、12、13)发送的模型参数进行聚合处理,得到更新后的共享模型的模型参数,依次重复上述过程,直至聚合后的共享模型收敛为止。
76.为了便于理解,下面基于图1所示的系统架构,结合实际应用给出联邦学习的几个具体实现场景。
77.在一种可选的场景中,以人脸识别为例,参与方设备可以是各大数据平台的服务器,服务器中存储有大量用户的人脸图像。第三方设备可以向各参与方设备发送图像识别模型的相关参数,每个参与方设备分别基于本地用户样本数据中的人脸图像进行本地图像识别模型的训练,得到训练后的模型参数,将训练后的模型参数通过预设方式上传至第三方设备,第三方设备将各参与方设备上传的模型参数进行聚合处理,得到更新后的图像识别模型,该图像识别模型可用于进行人脸识别。
78.在另一种可选的场景中,以健康预测为例,参与方设备可以是各大医院平台的服务器,服务器中存储有大量患者的健康指标参数。第三方设备可以向各参与方设备发送健康预测模型的相关参数,每个参与方设备分别基于本地患者样本数据中的各项健康指标参数进行健康预测模型的训练,得到训练后的模型参数,将训练后的模型参数通过预设方式上传至第三方设备,第三方设备将各参与方设备上传的模型参数进行聚合处理,得到更新后的健康预测模型,该健康预测模型可用于预测患者的健康状态。
79.在又一种可选的场景中,以语音识别为例,参与方设备可以是不同地区社交平台的服务器,服务器中存储有不同地区用户的语音数据。第三方设备可以向各参与方设备发送语音识别模型的相关参数,每个参与方设备分别基于本地用户语音数据进行语音识别模型的训练,得到训练后的模型参数,将训练后的模型参数通过预设方式上传至第三方设备,第三方设备将各参与方设备上传的模型参数进行聚合处理,得到更新后的语音识别模型,该语音识别模型可用于准确识别各类方言语音。
80.上述几种场景仅作为一种示例,其他任意可通过多方参与进行信息与模型参数加密交换的场景均在本技术实施例的保护范围内,对此本技术实施例不作任何限制。
81.上述几个场景均属于横向联邦学习的范畴,即各参与方的数据集中样本特征的重叠较多,样本标识的重叠较少。目前,横向联邦学习工作流程如下:
82.步骤1、第三方设备(controller)将最新模型发送给各参与方设备(worker)。
83.步骤2、每个参与方设备利用本地数据训练模型,并将模型参数加密后发送给第三方设备。
84.步骤3、第三方设备聚合各参与方的加密模型参数得到新模型。
85.步骤4、第三方设备将新模型加密返回给各参与方设备。
86.步骤5、各参与方设备解密后更新本地模型。
87.步骤6、重复上述步骤2至4,直至聚合的新模型的损失函数最小化。
88.由于横向联邦学习的特点,现有加密方案仅对传输过程以及controller端具有较好的防护安全性,然而对于各worker端,则可通过本地模型的模型参数以及来自controller端的解密后的模型参数,推测出其他参与方的综合模型参数,尤其是在两方横向联邦模型的训练中,可直接推测出对方的模型参数,存在信息泄露的风险,从而严重影响横向联邦学习的安全性和可用性。
89.对此,本技术实施例提出一种模型训练方法,训练过程提供一套安全有效的横向联邦综合加密方案,在不影响模型训练效果的同时,实现对传输过程、controller端以及各worker端的信息安全防护,提高横向联邦学习技术的安全性和可用性。发明人的主要发明思路如下:考虑到各worker端对本地模型参数加密后,上传至controller端,controller端存在的恶意破解风险,以及仅存在两方worker端时,任一方worker端解密controller端的共享模型参数后,结合自身模型参数信息推测出另一方worker端模型参数的风险,可以在各worker端模型训练后,发送模型参数之前,增加对worker端模型参数的差分隐私加密处理,从而保证各worker端的模型参数在controller端始终处于加密状态,实现对各worker端的信息安全防护,最后利用深度学习强大的抗干扰学习能力,保证训练后的模型性能与现有训练方法得到的模型性能相当。
90.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
91.图3为本技术实施例提供的模型训练方法的流程示意图一。本实施例提供的模型训练方法可应用于第一设备,第一设备可以是如图1所示的任意参与方设备,相应的,第二设备可以是如图1所示的第三方设备14。或者,第一设备可以是如图2所示的参与方设备11、12、13的任意一个,第二设备可以是如图2所示的参与方设备14。如图3所示,该模型训练方法包括如下步骤:
92.步骤101、获取第一设备对第一模型进行训练的第一参数信息。
93.在本技术的一个可选实施例中,第一参数信息包括共享模型的模型参数以及共享模型训练的控制参数,其中共享模型训练的控制参数包括预设聚合次数、当前聚合次数以及第一模型的权重值的至少一项。
94.需要说明的是,第一模型位于第一设备中,共享模型位于第二设备中,共享模型是第二设备基于来自各第一设备的第一模型的模型参数确定的联邦学习模型。或者说,共享模型的模型参数是通过对来自不同第一设备的模型参数进行聚合处理得到的。
95.本实施例中,共享模型与来自各第一设备的第一模型的模型结构相同。
96.在本技术的一个可选实施例中,第一设备从第二设备获取第一设备对第一模型进行训练的第一参数信息。
97.具体的,第一设备从第二设备获取第一参数信息,包括如下两种可能的情况:
98.在一种可能的情况下,若第一设备的第一模型为首次训练,即第一模型在初始化阶段,第一设备接收第二设备发送的第一参数信息,该第一参数信息包括初始化共享模型的模型参数以及共享模型训练的控制参数。
99.上述情况中,由于第二设备会将初始化共享模型的模型参数以及共享模型训练的控制参数发送给所有第一设备,各第一设备获取的参数信息相同,因此第一参数信息可以是没有经过加密处理的信息。相应的,第一设备在接收到第一参数信息后,将第一参数信息中的初始共享模型的模型参数赋值第一设备本地的第一模型,随后进行本地模型训练。
100.可选的,在一些实施例中,第二设备在初始化阶段发送的第一参数信息也可以是经过加密处理的信息。
101.在另一种可能的情况下,若第一设备的第一模型不为首次训练,即第一模型在模型更新阶段,第一设备接收第二设备发送的第一参数信息,该第一参数信息包括当前共享模型的模型参数以及当前共享模型训练的控制参数。
102.上述情况中,第一参数信息是经过加密处理的信息。可选的,第二设备获取当前共享模型的模型参数以及当前共享模型训练的控制参数,采用第一加密算法对上述参数进行加密处理,生成经过加密处理的第一参数信息。相应的,第一设备在接收到第一参数信息后,首先对第一参数信息进行解密处理,例如采用第一解密算法对第一参数信息进行解密,得到解密后的当前共享模型的模型参数以及当前共享模型训练的控制参数,将当前共享模型的模型参数赋值第一设备本地的第一模型,随后进行本地模型训练。
103.可选的,上述的第一加密算法包括多方安全计算smpc加密算法或同态加密算法。相应的,上述的第一解密算法包括smpc解密算法或同态解密算法。
104.步骤102、基于第一参数信息以及第一设备的本地样本数据,对第一模型进行模型训练。
105.在本技术的一个可选实施例中,第一设备在接收到来自第二设备的第一参数信息后,基于第一参数信息中的模型参数赋值第一设备本地的第一模型,即可根据第一设备的本地样本数据进行模型训练。在完成本地第一模型的训练之后,获取训练后的第一模型的模型参数。
106.可选的,训练后的第一模型的模型参数包括第一模型的内部参数以及第一模型的权重值。
107.可选的,训练后的第一模型的模型参数也可以是经权重计算后的第一模型的内部参数。
108.可选的,第一模型的权重值是根据第一设备的本地样本数据的数量和/或重要程度确定的。例如,第一设备1的本地样本数据的数量远大于第一设备2或3的本地样本数据的数量,可提升第一设备1中的第一模型的权重值。又例如,第一设备2的本地样本数据的参考价值远高于第一设备1或3的本地样本数据的参考价值,可提升第一设备2中的第一模型的权重值。对于权重值的调整策略,本实施例不作具体限定。
109.可选的,第一设备的模型权重值的调整可在第二设备中执行,即第二设备可根据各第一设备的训练样本数据的数量和/或重要程度,调整各第一设备的模型权重值。可选的,第二设备可以通过第一参数信息来更新各第一设备的模型权重值。
110.应理解,不同第一设备的权重值可能不同也可能相同,但总的来说,所有第一设备的第一模型的权重值的和为1。
111.需要说明的是,经过模型训练后的第一模型的权重值可能发生改变,也可能不发生改变,对此本技术实施例不作任何限制。
112.步骤103、在第一模型训练结束后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息。
113.本实施例中,若确定所有本地样本数据均参与本轮第一模型的训练,可认为第一模型训练结束。
114.本实施例中,两次加密可采用不同的加密算法。通过对第一设备训练后的第一模型的模型参数进行两次加密处理,保证第一设备发送至第二设备的模型参数始终处于加密状态,降低模型参数被恶意破解的风险,从而实现对第一设备的信息安全防护。
115.步骤104、向第二设备发送第二参数信息。
116.本实施例中,第二设备接收来自不同第一设备发送的第二参数信息,根据各第一设备的第二参数信息,完成对共享模型的模型参数的更新(聚合处理过程)。随后,第二设备可以将更新后的共享模型的模型参数加密后返回至各第一设备,以使各方本地模型的模型参数与共享模型的模型参数完成同步。
117.本实施例示出的模型训练方法,从某一第一设备的角度出发,通过获取第一设备对第一模型进行训练的第一参数信息,基于第一参数信息以及第一设备本地样本数据,对第一模型进行模型训练,在完成训练后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息,并向第二设备发送第二参数信息,以使第二设备更新共享模型的模型参数。由于第二参数信息经过两次加密处理,可降低第二参数信息在传输过程中或在第二设备处被恶意破解的风险。由于第二参数信息始终处于加密状态,可避免各方推测出其他第一设备的模型参数,从而实现对各参与方的信息安全防护。
118.基于上述实施例,下面对第一设备在本地进行模型训练的过程以及训练完成后的参数处理过程进行详细说明。
119.图4为本技术实施例提供的模型训练方法的流程示意图二。本实施例提供的模型训练方法同样可应用于第一设备,第一设备可以是如图1所示的任意参与方设备,相应的,第二设备可以是如图1所示的第三方设备14。或者,第一设备可以是如图2所示的参与方设备11、12、13的任意一个,第二设备可以是如图2所示的参与方设备14。
120.本实施例主要对第一设备本地模型的训练过程进行描述。如图4所示,该模型训练方法包括如下步骤:
121.步骤201、基于第一参数信息中的共享模型的模型参数以及第一设备的本地样本数据,对第一模型进行模型训练。
122.本实施例中,共享模型的模型参数可以是初始共享模型的模型参数,也可以是至少经过一次模型聚合的共享模型的模型参数。应理解,第一设备的本地样本数据包括新增的本地样本数据、更新的本地样本数据等,第一设备可基于新增或更新的本地样本数据对第一模型进行模型训练,该训练过程可看作是对第一模型的模型更新过程。
123.步骤202、在第一模型训练结束后,根据第一参数信息中共享模型训练的控制参数,确定对训练后的第一模型的模型参数进行两次加密处理。
124.步骤203、采用第二加密算法对训练后的第一模型的模型参数进行加密处理,再采用第一加密算法对经过加密处理后的模型参数进行二次加密处理,得到第二参数信息。
125.在本技术的一个可选实施例中,若共享模型训练的控制参数中的当前聚合次数未达到预设聚合次数,确定对训练后的第一模型的模型参数进行两次加密处理。两次加密过程,包括:采用第二加密算法对训练后的第一模型的模型参数进行加密处理,再采用第一加密算法对经过加密处理后的第一模型的模型参数进行二次加密处理,得到第二参数信息。其中第一加密算法包括smpc加密算法或同态加密算法,第二加密算法包括差分隐私加密。
126.可选的,在一些实施例中,若共享模型训练的控制参数中的当前聚合次数达到预设聚合次数,确定对训练后的第一模型的模型参数进行一次加密处理。加密处理过程,包括:采用第一加密算法对训练后的第一模型的模型参数进行加密处理,得到第二参数信息。其中第一加密算法包括smpc加密算法或同态加密算法。
127.步骤204、向第二设备发送第二参数信息。
128.本实施例示出的模型训练方法,在完成本地模型训练后,根据模型训练的控制参数,第一设备将对训练后的本地模型参数进行两次加密处理,两次加密的加密方式不同,通过本实施例的综合加密方案,可保证模型参数在第二设备处始终处于加密状态,从而实现对各第一设备端的信息安全的有效防护。
129.图5为本技术实施例提供的模型训练方法的交互示意图。在该交互示意图中示出了两个第一设备(图5中的worker_ni以及worker_nj)与第二设备(图5中的controller)的交互过程。
130.如图5所示,本实施例中模型训练方法的交互步骤包括:
131.步骤1、横向联邦训练启动阶段,由controller端初始化共享模型的模型参数以及训练控制参数,并同步发送给各worker端。
132.其中,各worker端的模型结构与共享模型的模型结构相同。控制参数包括预设聚合次数(或称为计划聚合次数)、当前聚合计数、各端模型的权重的至少一项。
133.步骤2、各worker端接收到共享模型的模型参数以及训练控制参数后,首先判断是否是初始化阶段,如果是则跳转步骤7,否则执行步骤3。
134.步骤3、各worker端对共享模型的模型参数进行smpc解密,首先进行模型参数的整数部分和小数部分分离,具体公式如下:
135.model[nj].params[i].data=model[nj].params[i].data%q

public_key[i]
[0136]
其中,i=1,2,..,n,model[nj].params.data为模型参数值,nj为worker的序号,i为模型参数序号,n为模型参数总数,q为smpc参数,public_key为公钥。
[0137]
步骤4、各worker端为本地模型进行赋值,然后在训练控制参数的配置下利用本地数据对模型进行迭代训练。
[0138]
步骤5、各worker端本地模型迭代训练结束后,对本地模型进行权重处理,具体公式如下:
[0139]
model[nj].params[i].data=model[nj].params[i].data*weight_nj
[0140]
其中,weight_nj为第nj个worker对应的模型权重,且m为worker个数(即模型个数),各端权重可根据各端数据量或数据重要性等实际情况确定。
[0141]
步骤6、各worker端判断本次模型训练是否是最后一次,如果是则跳转步骤8,否则执行步骤7。
[0142]
本步骤中判断各worker端本次模型训练是否是最后一次可根据共享模型的当前聚合次数确定,若确定“预设聚合次数-当前聚合次数=1”,则确定本次模型训练是最后一次。
[0143]
步骤7、各woker端对本地模型的参数进行差分隐私加密。以模型参数加密为例,差分隐私加密的具体公式如下:
[0144]
model[nj].params[i].data=model[nj].params[i].data*(1 randn(0,1)*sigma)或者
[0145]
model[nj].params[i].data=model[nj].params[i].data randn(0,1)*sigma
[0146]
其中i=1,2,..,n,randn(0,1)为均值为0、方差为1的正态随机函数,sigma为差分隐私强度控制参数(一般为0.1、0.01、0.001、0.0001,具体可根据实际需要确定)。
[0147]
步骤8、各worker端对本地模型的参数进行smpc加密。以模型参数加密为例,smpc加密的具体公式如下:
[0148]
model[nj].params[i].data=model[nj].params[i].data private_key_nj[i]
[0149]
其中i=1,2,..,n,private_key_nj为第nj个woker端对应的私钥。
[0150]
步骤9、各worker端将加密后的模型参数发送给controller。
[0151]
步骤10、controlle端接收到参数,首先判断是否各worker端的参数都已全部接收到,如果否继续等待,如果是进行模型聚合,具体公式如下:
[0152][0153]
其中i=1,2,..,n,nj代表worker的编号
[0154]
步骤11、controller端将聚合后的模型参数以及训练控制参数同步发送给各worker,并转至步骤2,直至全部训练结束。
[0155]
需要说明的是,发明人采用上述技术方案进行试验验证发现,采用两种加密方式进行模型训练,与不加密方式进行模型训练相比,在模型训练损失loss和模型测试准确率方面,不论整体还是细节方面,均具有较高的重合度,说明采用两种加密方式进行模型训练的技术方案,在实现加密的同时,可实现与不加密方式进行模型训练相当的训练效果,由于采用两种加密方式对模型参数进行加密,可进一步提升各worker端的信息安全性。
[0156]
具体的,发明人利用mnist数据和lenet网络进行了横向联邦学习模型参数差分隐私加密对比试验,试验条件如下:worker数为2,模型中的迭代数量batch_size均为64,学习率lr为0.01,worker端迭代10个batch聚合1次;总共聚合5000次,分别按照不加密、按步骤7的第一个公式加密、按步骤7的第二个公式加密进行对比,试验结果参见附图6和7。
[0157]
图6为本技术实施例提供的加密前后横向联邦训练过程loss的对比图,图7为加密前后横向联邦训练过程准确率的对比图。其中图6的横坐标为迭代次数,纵坐标为loss;图7的横坐标为迭代次数,纵坐标为准确率。图6和图7中的“dp_no”曲线对应实验条件“不加密”,“dp_mode_1”曲线对应实验条件“按步骤7的第一个公式加密”,“dp_mode_2”曲线对应实验条件“按步骤7的第二个公式加密”。
[0158]
上述实施例采用对模型参数进行差分隐私和smpc的综合加密方案,规避对深度学习算子的加密改造,通过smpc加密方法实现对传输过程以及controller端的安全防护,同时通过在模型参数增加差分加密处理,保证模型参数始终处于加密状态,从而实现对各worker端的安全防护,最后利用深度学习强大的抗干扰学习能力,保证模型性能与无加密情况相当。
[0159]
本技术实施例可以根据上述方法实施例对模型训练装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以使用硬件的形式实现,也可以使用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以使用对应各个功能划分各个功能模块为例进行说明。
[0160]
图8为本技术实施例提供的模型训练装置的结构示意图。如图8所示,本实施例提供的模型训练装置300,包括:获取模块301,处理模块302以及发送模块303。
[0161]
获取模块301,用于获取第一设备对第一模型进行训练的第一参数信息;
[0162]
处理模块302,用于基于所述第一参数信息以及所述第一设备的本地样本数据,对所述第一模型进行模型训练,在所述第一模型训练结束后,对训练后的第一模型的模型参数进行两次加密处理,得到第二参数信息;
[0163]
发送模块303,用于向第二设备发送所述第二参数信息,所述第二参数信息用于所述第二设备更新共享模型的模型参数,所述共享模型的模型参数是所述第二设备通过对来自不同第一设备的模型参数进行聚合处理得到的,所述共享模型与所述第一模型的模型结构相同。
[0164]
在本技术的一个可选实施例中,所述第一设备为联邦学习系统的第一参与方设备,所述第二设备为所述联邦学习系统的第二参与方设备;或者
[0165]
所述第一设备为所述联邦学习系统的任意一个参与方设备,所述第二设备为所述联邦学习系统的第三方设备。
[0166]
在本技术的一个可选实施例中,所述第一参数信息包括所述共享模型的模型参数以及所述共享模型训练的控制参数,所述控制参数包括预设聚合次数、当前聚合次数以及所述第一模型的权重值的至少一项。
[0167]
在本技术的一个可选实施例中,所述获取模块301,具体用于:
[0168]
从所述第二设备获取所述第一设备对所述第一模型进行训练的第一参数信息。
[0169]
在本技术的一个可选实施例中,所述第一参数信息是经过第一加密算法加密的信息,所述第一加密算法包括多方安全计算smpc加密算法或同态加密算法。
[0170]
在本技术的一个可选实施例中,所述处理模块302,具体用于:
[0171]
采用第一解密算法对所述第一参数信息进行解密,获取解密后的模型参数;所述第一解密算法包括多方安全计算smpc解密算法或同态解密算法;
[0172]
基于解密后的模型参数以及所述第一设备的本地样本数据,对所述第一模型进行模型训练。
[0173]
在本技术的一个可选实施例中,所述处理模块302,具体用于:
[0174]
根据所述第一参数信息中所述共享模型训练的控制参数,确定对训练后的第一模型进行两次加密处理;
[0175]
采用第二加密算法对训练后的第一模型的模型参数进行加密处理,再采用第一加密算法对经过加密处理后的模型参数进行二次加密处理;
[0176]
其中所述第二加密算法包括差分隐私加密算法,所述第一加密算法包括smpc加密算法或同态加密算法。
[0177]
在本技术的一个可选实施例中,所述处理模块302,具体用于:
[0178]
若所述共享模型训练的控制参数中的当前聚合次数未达到预设聚合次数,确定对训练后的第一模型进行两次加密处理。
[0179]
在本技术的一个可选实施例中,所述第一模型的权重值是根据所述第一设备的本地样本数据的数量和/或重要程度确定的。
[0180]
本实施例提供的模型训练装置,可以执行上述任一方法实施例中第一设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0181]
图9为本技术实施例提供的电子设备的硬件结构示意图,如图9所示,本实施例提供的分享服务器400,包括:
[0182]
存储器401;
[0183]
处理器402;以及
[0184]
计算机程序;
[0185]
其中,计算机程序存储在存储器401中,并被配置为由处理器402执行以实现上述任一方法实施例中第一设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0186]
可选的,存储器401既可以是独立的,也可以跟处理器402集成在一起。当存储器401是独立于处理器402之外的器件时,分享服务器400还包括:总线403,用于连接存储器401和处理器402。
[0187]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器402执行以实现如前述任一方法实施例中第一设备的技术方案。
[0188]
本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前述任一方法实施例中第一设备的技术方案。
[0189]
本技术实施例还提供了一种芯片,包括:处理模块与通信接口,该处理模块能执行前述任一方法实施例中第一设备的技术方案。
[0190]
进一步地,该芯片还包括存储模块(如,存储器),存储模块用于存储指令,处理模块用于执行存储模块存储的指令,并且对存储模块中存储的指令的执行使得处理模块执行
前述任一方法实施例中第一设备的技术方案。
[0191]
应理解,上述处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0192]
存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
[0193]
总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
[0194]
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0195]
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。
[0196]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例的技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献