(12)发明专利申请
(10)申请公布号 CN 111898137 A(43)申请公布日 2020.11.06
(21)申请号 202010617332.X(22)申请日 2020.06.30
(71)申请人 深圳致星科技有限公司
地址 518038 广东省深圳市南山区粤海街
道高新区社区白石路3609号深圳湾科技生态园二区9栋A2405(72)发明人 任正行 胡水海
(74)专利代理机构 深圳市力道知识产权代理事
务所(普通合伙) 44507
代理人 何姣(51)Int.Cl.
G06F 21/60(2013.01)G06F 21/62(2013.01)G06N 3/04(2006.01)G06N 3/08(2006.01)
权利要求书4页 说明书14页 附图4页
G06N 20/00(2019.01)
CN 111898137 A(54)发明名称
一种联邦学习的隐私数据处理方法、设备及系统
(57)摘要
本发明公开了一种联邦学习隐私数据处理方法。该隐私数据处理方法包括:接收所述协调
获取设备或其他参与设备发送的聚合模型参数;
训练数据,并生成更新模型,输出更新模型的更新模型参数;使用加密算法对所述更新模型参数进行密态计算生成密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;将所述密文数据发送给所述协调方或其他所述参与方得到全局模型。本发明通过将密文计算中的第一操作数拆解为多个第二操作数,满足了机器指令的需求,可在通用的处理器上实现执行联邦学习的密态计算任务。
CN 111898137 A
权 利 要 求 书
1/4页
1.一种联邦学习的隐私数据处理方法,其特征在于,所述联邦学习隐私数据处理方法应用于参与设备,所述参与设备与协调设备或其他参与设备通信连接,所述联邦学习隐私数据处理方法包括:
接收所述协调设备或其他参与设备发送的聚合模型参数;获取训练数据,根据所述参与设备的本地训练数据和所述聚合模型参数对联邦学习的待训练模型进行本地训练并生成更新模型,得到更新模型的更新模型参数;
生成密文数据,使用加密算法对所述更新模型参数进行密态计算生成密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;
发送所述密文数据,将所述密文数据发送给所述协调设备或其他所述参与设备得到全局模型,所述协调设备或所述其他参与设备对全局模型进行密态计算后得到更新聚合模型参数。
2.根据权利要求1所述的隐私数据处理方法,其特征在于,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤,包括:
识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数根据预设的算法拆解为多个所述第二操作数;
将所述第一操作数的运算转化为多个并列的第二操作数的运算。3.根据权利要求2所述的隐私数据处理方法,其特征在于,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:
第二操作数的比特数为所述处理器支持执行运算的最大比特数;或
获取所述处理器上支持执行的多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。
4.根据权利要求3中任一项所述的隐私数据处理方法,其特征在于,所述处理器为图形处理器GPU,所述密态计算的任务在图形处理器GPU上执行的步骤,包括:
所述GPU包括多个并行处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;
所述GPU包括多个并行处理单元的高速缓存,将所述密文计算的中间结果数据存储在所述高速缓存。
5.根据权利要求3或4所述的隐私数据处理方法,其特征在于,所述隐私数据处理方法还包括:
识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。
6.根据权利要求1至5中任一项所述的隐私数据处理方法,其特征在于,所述加密算法为同态加密或秘密分享算法。
7.根据权利要求1至6中任一项所述的隐私数据处理方法,其特征在于,在对待训练模型进行本地训练之前还包括:接收训练模型设定指令,并根据设定的训练模型调取相应的训练模型数据,应用所述训练模型数据对所述训练数据进行本地训练生成初始模型,得到初始模型的初始模型参数。
2
CN 111898137 A
权 利 要 求 书
2/4页
8.一种联邦学习的隐私数据处理方法,其特征在于,所述联邦学习隐私数据处理方法应用于协调设备,所述协调设备与多个参与设备通信连接,所述联邦学习隐私数据处理方法包括:
接收各所述参与设备发送的模型参数数据,所述模型参数数据为密文数据;聚合各所述参与设备的模型参数数据,使用加密算对接收到的各所述参与设备的模型参数数据进行密态计算产生全局模型,得到聚合模型参数,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;
发送所述聚合模型参数,将所述聚合模型参数发送给各所述参与方,以供各所述参与方基于接收的所述聚合模型参数更新本地的训练模型。
9.根据权利要求8所述的隐私数据处理方法,其特征在于,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤,包括:
识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个所述第二操作数;将所述第一操作数的运算转化为多个并列的第二操作数的运算。
10.根据权利要求9所述的数据处理方法,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:
第二操作数的比特数为所述处理器指令支持的最大比特数;或
获取所述处理器支持的执行多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。
11.根据权利要求10所述的数据处理方法,其特征在于,所述处理器为图形处理器GPU,所述密态计算的任务在图形处理器GPU上执行的步骤,包括:
所述GPU包括多个并行处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;
所述GPU包括多个并行处理单元的高速缓存,将密文计算的中间结果数据存储在所述高速缓存。
12.根据权利要求10或11所述的隐私数据处理方法,其特征在于,所述隐私数据处理方法还包括:
识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。
13.根据权利要求8-12中任一项所述的隐私数据处理方法,其特征在于,所述加密算法为同态加密算法或秘密分享算法。
14.一种联邦学习设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习隐私数据处理程序,所述联邦学习数据处理程序被所述处理器执行时实现如权利要求1-7中任一项所述的联邦学习隐私数据处理方法的步骤。
15.一种联邦学习设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习隐私数据处理程序,所述联邦学习数据处理程序被所述处理器执行时实现如权利要求8-13中任一项所述的联邦学习隐私数据处理方法的
3
CN 111898137 A
权 利 要 求 书
3/4页
步骤。
16.一种联邦学习隐私数据处理系统,其特征在于,所述联邦学习隐私数据处理系统包括:至少一个参与设备和至少一个协调设备,所述参与设备为权利要求14所述的设备,所述协调设备为权利要求15所述的设备。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有联邦学习隐私数据处理程序,所述联邦学习隐私数据处理程序被处理器执行时实现如权利要求1至13中任一项所述的联邦学习隐私数据处理方法的步骤。
18.一种用于实现联邦学习的隐私数据处理的GPU芯片,其特征在于,所述GPU包括:接口模块,其用于连接到外部处理设备以接收待密态计算数据,所述待密态计算数据包括加密数据、解密数据或密态运算数据中的至少一种;
存储器,存储所述密态计算的计算结果数据;计算模块,调取所述外部处理设备内的算法库中的算法库和函数库中的函数,对所述待密态计算数据进行所述密态计算,在所述密态计算的过程中,识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数,将所述第一操作数的运算转化为多个并列的第二操作数的运算;
所述计算模块包括多个并行的处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在所述多个并行的处理单元内同时执行。
19.根据权利要求18所述的GPU芯片,其特征在于,所述GPU包括多个warp,每个warp包括多个并行处理线程,所述多个并行处理单元是warp中的并线线程。
20.根据权利要求18或19所述的GPU芯片,其特征在于,所述GPU包括多个并行线程的高速缓存,将密态计算的中间处理计算结果数据存储在所述高速缓存。
21.一种联邦学习的隐私数据处理设备,其特征在于,包括:如权利要求18至20中任一项所述的GPU芯片,以及存储器,与所述GPU芯片可通信地连接,被配置为存储从外部处理设备接收的所述密态计算任务处理源数据以及所述计算模块的任务处理结果数据。
22.一种异构处理系统,其特征在于,包括:主处理设备,包括主处理器;以及从处理设备,包括如权利要求18到20中任一所述的GPU芯片,其中,所述主处理设备被配置为将密态计算任务处理源数据和任务配置数据发送给所述从处理设备,以及从所述从处理设备接收任务处理结果数据。
23.一种联邦学习系统,其特征在于,所述系统包括:交互单元,用于接收交互指令,所述交互指令包括资源管理、模型定义、数据导入、模型训练或模型发布中的至少一种指令;
模型单元,存储有多种训练模型以供调取,当接收到的所述交互指令为模型定义指令时,从所述模型单元中调取相应的模型数据;
加密单元,获取训练数据,应用所述模型数据对所述训练数据进行训练生成模型,得到模型参数;
4
CN 111898137 A
权 利 要 求 书
4/4页
所述加密单元还包括算法库,调用所述算法库中的特定加密算法对所述模型参数进行密态计算得到密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;
通讯单元,发送加密后的模型参数数据给协调方或参与方,或接所述收协调方或所述参与方发送的聚合模型参数数据;
协议管理单元,管理多个安全协议,所述安全协议包括多方安全计算、同态加密协议、秘钥分发协议中的至少一种。
5
CN 111898137 A
说 明 书
一种联邦学习的隐私数据处理方法、设备及系统
1/14页
技术领域
[0001]本发明涉及隐私数据加密处理领域,尤其涉及一种联邦学习的隐私数据处理方法、设备及系统。背景技术
[0002]在联邦学习应用中,参与设备需要向协调设备发送更新模型的更新模型参数(例如,神经网络模型权值,或者梯度信息),从而使得更新模型参数更新会被协调者获悉。在不能保证协调设备可靠性的场景下,可能会泄露参与设备的隐私数据信息。为了确保不向协调设备泄露参与设备的隐私数据信息,参与设备可以通过Paillier或RSA等加密算法对隐私数据信息进行加密。
[0003]传统机器学习一般使用的是32-bit的基本运算,这些基本运算一般都有机器指令的直接支持,而联邦学习中使用的Paillier或RSA算法加密后的数据运算是1024-bit或2048-bit甚至更长的大整数运算,而目前的机器指令不支持这样大整数的运算。发明内容
[0004]鉴于上述,本说明书的实施例提供一种联邦学习的隐私数据处理方法、设备及系统。利用该数据处理方法、设备及系统,可在芯片上实现支持大整数的运算。[0005]根据本说明书的实施例的一个方面,提供一种联邦学习的隐私数据处理方法,所述联邦学习隐私数据处理方法应用于参与设备,所述参与设备与协调设备或其他参与设备通信连接,所述联邦学习隐私数据处理方法包括:接收所述协调设备或其他参与设备发送的聚合模型参数;获取训练数据,根据所述参与设备的本地训练数据和所述聚合模型参数对联邦学习的待训练模型进行本地训练并生成更新模型,得到更新模型的更新模型参数;生成密文数据,使用加密算法对所述更新模型参数进行密态计算生成密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;发送所述密文数据,将所述密文数据发送给所述协调设备或其他所述参与设备得到全局模型,所述协调设备或所述其他参与设备对全局模型进行密态计算后得到更新聚合模型参数。[0006]可选的,在上述方面的一个示例中,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤,包括:识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数根据预设的算法拆解为多个所述第二操作数;将所述第一操作数的运算转化为多个并列的第二操作数的运算。[0007]可选的,在上述方面的一个示例中,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:第二操作数的比特数为所述处理器支持执行运算的最大比特数;或获取所述处理器上支持执行的多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。[0008]可选的,在上述方面的一个示例中,所述GPU包括多个并行处理单元,所述并行处
6
CN 111898137 A
说 明 书
2/14页
理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;所述GPU包括多个并行处理单元的高速缓存,将所述密文计算的中间结果数据存储在所述高速缓存。[0009]可选的,在上述方面的一个示例中,所述隐私数据处理方法还包括识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。[0010]可选的,在上述方面的一个示例中,所述加密算法为同态加密或秘密分享算法。[0011]可选的,在上述方面的一个示例中,在对待训练模型进行本地训练之前还包括:接收训练模型设定指令,并根据设定的训练模型调取相应的训练模型数据,应用所述训练模型数据对所述训练数据进行本地训练生成初始模型,得到初始模型的初始模型参数。[0012]根据本说明书的实施例的另一方面,提供一种联邦学习的隐私数据处理方法,所述联邦学习隐私数据处理方法应用于协调设备,所述协调设备与多个参与设备通信连接,所述联邦学习隐私数据处理方法包括:接收各所述参与设备发送的模型参数数据,所述模型参数数据为密文数据;聚合各所述参与设备的模型参数数据,使用加密算法对接收到的各所述参与设备的模型参数数据进行密态计算产生全局模型,得到聚合模型参数,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;发送所述聚合模型参数,将所述聚合模型参数发送给各所述参与方,以供各所述参与方基于接收的所述聚合模型参数更新本地的训练模型。[0013]可选地,在上述方面的一个示例中,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤,包括:识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个所述第二操作数;将所述第一操作数的运算转化为多个并列的第二操作数的运算。[0014]可选地,在上述方面的一个示例中,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:第二操作数的比特数为所述处理器指令支持的最大比特数;或获取所述处理器支持的执行多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。[0015]可选地,在上述方面的一个示例中,所述处理器为图形处理器GPU,所述密态计算的任务在图形处理器GPU上执行的步骤,包括:所述GPU包括多个并行处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;所述GPU包括多个并行处理单元的高速缓存,将密文计算的中间结果数据存储在所述高速缓存。[0016]可选地,在上述方面的一个示例中,所述隐私数据处理方法还包括,识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。[0017]可选地,在上述方面的一个示例中,所述加密算法为同态加密算法或秘密分享算法。
[0018]根据本说明书的实施例的另一方面,提供一种联邦学习设备,所述设备为参与设
7
CN 111898137 A
说 明 书
3/14页
备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习隐私数据处理程序,所述联邦学习数据处理程序被所述处理器执行时实现如上述的联邦学习隐私数据处理方法的步骤。
[0019]根据本说明书的实施例的另一方面,提供一种联邦学习设备,所述设备为协调设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习隐私数据处理程序,所述联邦学习数据处理程序被所述处理器执行时实现如上述的联邦学习隐私数据处理方法的步骤。
[0020]根据本说明书的实施例的另一方面,提供一种联邦学习隐私数据处理系统,所述联邦学习隐私数据处理系统包括:至少一个如上所述的参与设备和至少一个如上所述的协调设备。
[0021]根据本说明书的实施例的另一方面,提供所述计算机可读存储介质,其存储有联邦学习隐私数据处理程序,所述联邦学习隐私数据处理程序被处理器执行时是的机器执行如上所述的联邦学习隐私数据处理方法的步骤。[0022]根据本说明书的实施例的另一方面,提供一种用于实现联邦学习的隐私数据处理的GPU芯片,包括:接口模块,其用于连接到外部处理设备以接收待密态计算数据,所述待密态计算数据包括加密数据、解密数据或密态运算数据中的至少一种;存储器,存储所述密态计算的计算结果数据;计算模块,调取所述外部处理设备内的算法库中的算法库和函数库中的函数,对所述待密态计算数据进行所述密态计算,在所述密态计算的过程中,识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数,将所述第一操作数的运算转化为多个并列的第二操作数的运算;所述计算模块包括多个并行的处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在所述多个并行的处理单元内同时执行。[0023]可选地,在上述方面的一个示例中,所述GPU包括多个warp,每个warp包括多个并行处理线程,所述多个并行处理单元是warp中的并线线程。[0024]可选地,在上述方面的一个示例中,所述GPU包括多个并行线程的高速缓存,将密态计算的中间处理计算结果数据存储在高速缓存。[0025]根据本说明书的实施例的另一方面,提供一种联邦学习的隐私数据处理设备,包括:如上所述的GPU芯片,以及存储器,与所述GPU芯片可通信地连接,被配置为存储从外部处理设备接收的所述密态计算任务处理源数据以及所述计算模块的任务处理结果数据。[0026]根据本说明书的实施例的另一方面,提供一种异构处理系统,包括:主处理设备,包括主处理器;以及从处理设备,包括如上所述的GPU芯片,其中,所述主处理设备被配置为将密态计算任务处理源数据和任务配置数据发送给所述从处理设备,以及从所述从处理设备接收任务处理结果数据。
[0027]根据本说明书的实施例的另一方面,提供一种联邦学习系统,所述系统包括:交互单元,用于接收交互指令,所述交互指令包括资源管理、模型定义、数据导入、模型训练或模型发布中的至少一种指令;模型单元,存储有多种训练模型以供调取,当接收到的所述交互指令为模型定义指令时,从所述模型单元中调取相应的模型数据;加密单元,获取训练数据,应用所述模型数据对所述训练数据进行训练生成模型,得到模型参数;所述加密单元还
8
CN 111898137 A
说 明 书
4/14页
包括算法库,调用所述算法库中的特定加密算法对所述模型参数进行密态计算得到密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;通讯单元,发送加密后的模型参数数据给协调方或参与方,或接所述收协调方或所述参与方发送的聚合模型参数数据;协议管理单元,管理多个安全协议,所述安全协议包括多方安全计算、同态加密协议、秘钥分发协议中的至少一种。附图说明
[0028]通过参照下面的附图,可以实现对于本说明书内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
[0029]图1示出了根据本说明书的实施例的硬件运行环境的结构示意图。
[0030]图2示出了根据本说明书的实施例的应用于参与方的联邦学习隐私数据处理方法的流程图。
[0031]图3示出了根据本说明书的实施例的将第一操作数拆解为第二操作数的方法的流程图。
[0032]图4示出了根据本说明书的实施例的将第一操作数拆解为第二操作数的示意图。[0033]图5示出了根据本说明书的实施例的应用于协调方的联邦学习隐私数据处理方法的流程图。
[0034]图6示出了根据本说明书的实施例的用于实现联邦学习的隐私数据处理的GPU芯片的示意图。
[0035]图7示出了根据本说明书的实施例的联邦学习系统的架构图。[0036]图8示出了根据本说明书的实施例的联邦学习过程示意图。
具体实施方式
[0037]以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。[0038]如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。[0039]在本文中,术语“相连”是指两个组件之间直接机械连接、连通或电连接,或者通过中间组件来间接机械连接、连通或电连接。术语“电连接”是指两个组件之间可以进行电通信以进行数据/信息交换。同样,所述电连接可以指两个组件之间直接电连接,或者通过中间组件来间接电连接。所述电连接可以采用有线方式或无线方式来实现。[0040]在人工智能(Artificial Intelligence,AI)领域,联邦学习是很重要的机器学习框架。该机器学习框架可以在保证不同企业、机构或用户的数据安全性、私密性和合法性的前提下,实现双方数据的共享,例如,用于AI的训练和学习,从而打破数据孤岛限制。[0041]如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。需
9
CN 111898137 A
说 明 书
5/14页
要说明的是,本发明实施例设备是参与设备,参与设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。[0042]如图1所示,该设备可以包括:处理器1001,例如CPU或GPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0043]本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0044]如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及联邦学习隐私数据处理程序,还可包括TEE(Trusted execution environment,可信执行环境)模块。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持联邦学习隐私数据处理程序以及其它软件或程序的运行。TEE是主处理器内的安全区域,运行在一个独立的环境中且与操作系统并行运行,它确保TEE中加载的代码和数据的机密性和完整性都得到保护。TEE中运行的受信任应用程序可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。在本实施例中,TEE模块的实现方式可以有多种,如基于Intel的Software Guard Extensions(软件保护扩展,SGX)、AMD的Secure Encrypted Virtualization(安全虚拟化加密,SEV)、ARM的Trust Zone或MIT的Sanctum。对TEE模块的认证和鉴权,可以通过第三方安全服务器来完成。例如,当TEE是使用Intel的SGX时,可以通过Intel的安全服务器对所述TEE进行认证,即保证所述TEE的安全。[0045]在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与各协调设备建立通信连接;而处理器1001可以用于调用存储器1005中存储的联邦学习隐私数据处理程序,并执行以下操作:接收所述协调设备或其他参与设备发送的聚合模型参数;获取训练数据,根据所述参与设备的本地训练数据和所述聚合模型参数对联邦学习的待训练模型进行本地训练并生成更新模型,得到更新模型的更新模型参数;生成密文数据,使用加密算法对所述更新模型参数进行密态计算生成密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,第一操作数的比特数大于所述第二操作数的比特数;发送所述密文数据,将所述密文数据发送给所述协调设备或其他所述参与设备得到全局模型,所述协调设备或所述其他参与设备对全局模型进行密态计算后得到更新聚合模型参数。[0046]进一步地,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数根据预设的算法拆解为多个所述第二操作数;将所述第一操作数的运算转化为多个并列的第二操作数的运算。进一步地,第二操作数的比特数为处理器支持执行运算的最大比特数;或获取所述处理器上支持执行的多个并列的第二操作数的运算的并行处理单元的数量,根据并行处理单元的数量确定第二操作
10
CN 111898137 A
说 明 书
6/14页
数的比特数。进一步地,所述处理器为图形处理器GPU,所述密态计算的任务在图形处理器GPU上执行的步骤,包括:所述GPU包括多个并行处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;所述GPU包括多个并行处理单元的高速缓存,将所述密文计算的中间结果数据存储在所述高速缓存。[0047]进一步地,所述隐私数据处理方法还包括识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。[0048]进一步地,所述加密算法为同态加密或秘密分享算法。[0049]进一步地,在对待训练模型进行本地训练之前还包括:接收训练模型设定指令,并根据设定的训练模型调取相应的训练模型数据,应用所述训练模型数据对所述训练数据进行本地训练生成初始模型,得到初始模型的初始模型参数。[0050]此外,本发明实施例还提出一种协调设备,协调设备与参与设备通信连接,所述协调设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习隐私数据处理程序,所述联邦学习隐私数据处理程序被所述处理器执行时实现如下所述的联邦学习隐私数据处理方法的步骤:
[0051]接收各所述参与设备发送的模型参数数据,所述模型参数数据为密文数据;聚合各所述参与设备的模型参数数据,使用加密算对接收到的各所述参与设备的模型参数进行密态计算产生全局模型,得到聚合模型参数,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;发送所述聚合模型参数,将所述聚合模型参数发送给各所述参与方,以供各所述参与方基于接收的所述聚合模型参数更新本地的训练模型。[0052]进一步地,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤,包括:识别所述操作数的比特数,当所述操作数的比特数大于等于设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个所述第二操作数;将所述第一操作数的运算转化为多个并列的第二操作数的运算。[0053]进一步地,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤在处理器上执行,包括:第二操作数的比特数为所述处理器指令支持的最大比特数;或获取所述处理器支持的执行多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。[0054]进一步地,所述处理器为图形处理器GPU,所述密态计算的任务在图形处理器GPU上执行的步骤,包括:所述GPU包括多个并行处理单元,所述并行处理单元是具备独立任务处理能力的最小处理单元,将所述多个并列的第二操作数的运算在GPU的多个并行处理单元内同时执行;所述GPU包括多个并行处理单元的高速缓存,将密文计算的中间结果数据存储在所述高速缓存。[0055]进一步地,所述隐私数据处理方法还包括识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。[0056]进一步地,所述加密算法为同态加密算法或秘密分享算法。
11
CN 111898137 A[0057]
说 明 书
7/14页
此外,本发明实施例还提出一种联邦学习隐私数据处理系统,所述联邦学习隐私
数据处理系统包括至少一个如上所述的协调设备、至少一个如上所述的参与设备。[0058]本发明协调设备、参与设备和联邦学习隐私数据处理系统的各实施例,均可参照本发明联邦学习隐私数据处理方法各个实施例,此处不再赘述。[0059]基于上述的结构,提出联邦学习隐私数据处理方法的各个实施例。
[0060]图2为根据本说明书实施例的应用于参与方的联邦学习隐私数据处理方法的流程图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,联邦学习隐私数据处理方法包括以下步骤:
[0061]在块210,接收所述协调设备或其他参与设备发送的聚合模型参数;[0062]具体地,协调设备与各参与设备可通过握手、身份认证预先建立通信连接,并确定本次联邦学习的待训练模型。在联邦学习过程中,协调设备与参与设备通过相互配合,对待训练模型进行多次迭代更新,得到最终收敛的待训练模型,即可结束对待训练模型的训练过程。在一次模型更新中,协调设备向各个参与设备发送本次模型更新的全局模型参数更新,各个参与设备接收协调设备发送各本次模型更新的全局模型参数更新,其中,更新的全局模型参数更新为聚合模型参数。[0063]在块220,获取训练数据,根据所述参与设备的本地训练数据和所述聚合模型参数对联邦学习的待训练模型进行本地训练并生成更新模型,得到更新模型的更新模型参数;[0064]具体地,参与设备本地存储有用于对待训练模型进行本地训练的训练数据,训练数据是待处理的原始数据,包括需要进行计算处理的数据,如图像数据、矩阵数据等,通过智能模型对该原始数据进行处理以得到计算结果,如对该原始数据进行训练和推理。具体的本地训练过程与现有的联邦学习中参与设备采用本地数据训练待训练模型的过程相同,在此不进行详细赘述。[0065]其中,更新模型参数可以是神经网络的节点之间连接的权重参数,或者模型参数更新也可以是联邦学习模型的梯度信息,例如,神经网络梯度下降算法中的梯度信息,梯度信息可以是梯度值或压缩后的梯度值;更新模型参数是一个向量,包括多个元素,如更新模型参数是权重参数时,向量中的元素是各个权重参数,向量中元素的个数即更新模型参数的长度。
[0066]在块230,生成密文数据,使用加密算法对所述更新模型参数进行密态计算生成密文数据,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;[0067]具体地,联邦学习中的密态计算需要处理2048比特的大整数运算、大量的模幂运算以及缓存大量中间处理计算结果。而目前的机器指令不支持进行大整数的运算,因此将第一操作数中的大比特数拆解为多个小比特数的第二操作数,而第二操作数为可适用于机器指令的操作数,解决了机器指令无法执行大整数运算的问题。机器指令是指处理器支持可直接执行的指令。[0068]进一步地,在一实施例中,在密态计算的过程中,将第一操作数拆解为多个第二操作数的步骤230可包括如图3所示的步骤:[0069]在块310,识别所述密态计算中操作数的比特数,当所述操作数的比特数大于等于
12
CN 111898137 A
说 明 书
8/14页
设定的阈值时,所述操作数为第一操作数,将所述第一操作数拆解为多个所述第二操作数;具体地,可设置一个阈值,如64比特,当操作数为2048比特时,超过了64比特,则认为该2048比特的操作数为第一操作数,需要将其拆分为第二操作数,拆解后的第二操作可在处理器上直接进行运算处理。[0070]在块320,将所述第一操作数的运算转化为多个并列的第二操作数的运算。[0071]具体地,将第一操作拆解为多个第二操作数时,可采用分治多进程的方法进行拆解。在计算的过程中,每一个第一操作数对应的大比特数都会被拆解成机器指令可以直接支持计算的第二操作数对应的低比特数。通过将大比特操作数拆解为小比特操作数,使拆解后的小操作数可适用于机器指令,满足了用机器指令进行密态计算的需要。[0072]在一种实施方式中,第二操作数的比特数为所述处理器支持执行运算的最大比特数,具体地,可以是处理器中的最小处理单元所支持执行运算的最大的比特数,最小处理单元是指处理器能独立执行运算的最小单元。如直接将第二操作数的比特数设置为64比特。这样可以用更少的处理单元执行相应的操作,可节省处理单元的数量。[0073]在另一种实施方式中,也可不直接将第二操作数设置为处理器执行运算的最大比特数,而是获取所述处理器上支持执行的多个并列的第二操作数的运算的并行处理单元的数量,根据所述并行处理单元的数量确定第二操作数的比特数。具体地,会预先分配好执行密态运算的并行处理单元的数量,根据该并行处理单元的数量确定第二操作数的比特数,例如,处理器中分配好的用于密态运算的并行处理单元的数量越多,则将第二操作数的比特数设置的越小。通过将处理单元分配合适的比特数,将密态计算平均分配到各个并行处理单元当中进行自计算,可合理分配处理器中的资源进行密态计算,从而提高密态计算的效率。
[0074]本发明通过对联邦学习密态环境下的计算进行分析,发现联邦学习密态环境下的计算存在以下四种特点:[0075]1.计算高度并行:数据加解密及密态计算,不同数据的计算互不影响;[0076]2.重复的轻量级运算:计算公式本身不复杂,但重复执行次数巨大;[0077]3.计算密集型任务:联邦学习中,数据IO时间不到计算时间的0.1%;[0078]4.批量大数据:数据以批量形式产生,并且数据量巨大。[0079]生成密文数据的任务在参与设备的处理器中执行,处理器包括中央处理器CPU、图形处理器GPU和可编程处理器FPGA等,处理器中执行的是机器指令,操作数是该机器指令执行各种操作的对象。通过对各种类型的处理器进行研究分析,发现GPU拥有四大优势:加速高度并行的计算任务、加速重复的轻量级计算任务、加速密集型计算任务及加速海量数据批量计算任务,更适用于联邦学习中的计算任务。[0080]GPU中的warp包括多个并行线程,该并行线程是GPU中的具备独立任务处理的最小单元,将所述多个并列的第二操作数的运算在GPU中Warp中的多个并行线程内同时执行。通过采用GPU作为密态计算的处理器,进一步提高了隐私数据处理的效率。[0081]通过对GPU进行分析发现,在GPU的设计中含多个warp,这是指线程调度的最小单位,一般warp中含有32个并行的线程,该线程是具备独立任务处理能力的最小单元。通过对密文数据进行分析发现,其中的操作数一般都为2048比特,上述的线程无法直接对其进行计算处理,因此将该2048比特的操作数进行拆解。在拆解时,将2048(比特)÷32(并行线程
13
CN 111898137 A
说 明 书
9/14页
的数量)=64(比特/线程),在这里,第一操作数为2048比特,32位并行线程的数量,64为拆解后的第二操组数。将2048比特的第一操作数平均分配在32个线程,可避免一个线程处理的操作数的比特数过大,超过了缓存的限制,从而造成频繁的内存交换;同时,GPU中最小调度单位warp中线程的数量为32,没有将该2048比特的第一操作数拆解到超过32个线程中进行计算处理,可避免做多余的线程调度。
[0082]GPU包括多个并行线程的高速缓存,将密文计算的中间结果数据存储在高速缓存,通过提高存储的速度,可进一步提高隐私数据处理的效率。[0083]进一步地,加密算法为同态加密、秘密分享或差分隐私。同态加密包括加法同态加密(homomorphic encryption),加法同态加密的算法包括Paillier、Benaloh或Okamoto-Uchiyama等;同态加密还包括乘法同态加密,乘法同态加密算法包括RSA;同态加密还包括全同态加密,全同态加密算法包括Gentry等。加密的方式还可以是秘密分享(secret sharing)或差分隐私(secret sharing)等。本领域技术人员可知,在满足联邦学习的加密需求,确保隐私数据不被泄露的前提下,该加密算法还可是其他的算法。
[0084]以下举一具体例子对将第一操作数拆解为第二操作数进行详细说明:[0085]如图4所示,假设a和b为N比特的大数,无法直接通过机器指令在处理器上进行运算,若需要在a和b之间做乘法计算。则把a折半拆分为aL,和aR;把b折半拆分为bL和bR。其中,aL代表将a拆解后的高有效位的值,aR代表将a拆解后的低有效位的值;bL代表将b拆解后的高有效位的值,bR代表将b拆解后的低有效位的值。则a和b的表达式为:
[0086]a=2N/2×aL+aR———————————————————————(1)[0087]b=2N/2×bL+bR—————————————————————— (2)[0088]则将a和b的乘法转化为aL、aR、bL和bR之间的运算如下的多项式:
[0089]a×b=2N×aL×bL+2N/2(aL×bR+aR×bL)+aR×bR————————————(3)[0090]当N非常大的时候,可通过递归折半的方式进一步拆解大数。可选地,也可以一次性地将第一操作数拆解为多个第二操作数,例如第一操作数为2048比特,第二操作数为64比特,可以直接将2048比特的第一操作数划分为64比特为一组,从高位到低位分别拆解a1,a2,a3……a32,将a1 a1,a2,a3……a32分别按照上述(1)和(2)写成相应的表达式。[0091]从上述多项式(3)中可见,其中个子项①aL×bL、②aL×bR、③aR×bL、④aR×bR不存在数据关联性,可进行并行计算。[0092]步骤240,发送所述密文数据,将所述密文数据发送给所述协调设备或其他所述参与设备得到全局模型,所述协调设备或所述其他参与设备对所述全局模型进行密态计算后产生更新的聚合模型参数。
[0093]由于各个参与设备均在本地生成更新模型参数,并且将更新模型参数通过加密算法进行密态计算后,转化为密文发送协调设备或其他参与设备,参与设备的隐私数据不会泄露给协调设备或其他参与设备,因此保护了数据的安全性。[0094]进一步地,识别所述多个并列的第二操作数的运算之间的关联性;当执行一个第二操作数的运算时,若判断该第二操作数的运算和另一个第二操作数的运算之间有关联性,则对上述两个第二操作数的运算进行处理单元的同步。处理单元的同步,是指具有关联性的处理单元的中间处理计算结果要进行聚合,所以要将两个处理单元的处理结果进行同步,以保证最终结果的准确性。具体的,如在执行加操作的时候,所有对低有效位的操作的
14
CN 111898137 A
说 明 书
10/14页
处理单元的计算任务处理结果要和对高有效位的处理单元的计算任务处理结果要进行同步,即对高有效位的计算处理要考虑到低有效位的计算结果,比如低有效位的计算结果显示要进位到高有效位,则针对高有效位的计算处理要将进位考虑在内,从而得到高有效位的计算结果。
[0095]进一步地,在模型训练之前还包括:接收训练模型设定指令,并根据所述设定的训练模型调取相应的训练模型数据,应用所述训练模型数据对所述训练数据进行本地训练,并生成初始模型,输出初始模型的初始模型参数。具体的,可根据用户的设置来指定模型,根据用户指定的模型来调取相应的模型数据,由此可进一步满足个性化的使用要求。[0096]本发明还提供一种应用于协调设备的联邦学习隐私数据处理方法,协调设备与多个参与设备通信连接,协调设备中包括TEE模块,本发明实施例协调设备和参与设备可以是智能手机、个人计算机和服务器等设备,参与设备可支持联邦学习模型的训练,在此不做具体限制。如图5所示,在本实施例中,联邦学习隐私数据处理方法包括:[0097]在块510,接收各所述参与设备发送的模型参数数据,所述模型参数数据为密文数据;
[0098]在本实施例中,协调设备与各参与设备可通过握手、身份认证预先建立通信连接,并确定本次联邦学习的待训练模型,待训练模型可以是机器学习模型,如神经网络模型。在联邦学习过程中,协调设备与参与设备通过相互配合,对待训练模型进行多次迭代更新,得到最终收敛的训练模型,即可结束对待训练模型的训练过程。在一次模型更新中,各参与设备根据本次模型更新的聚合模型参数和各自本地拥有的本地训练数据,对待训练模型分别进行本地训练,得到各自本地的更新模型参数,并将更新模型参数发送给协调设备。[0099]其中,模型参数可以是神经网络的节点之间连接的权重参数,或者模型参数也可以是联邦学习模型的梯度信息,例如,神经网络梯度下降算法中的梯度信息,梯度信息可以是梯度值或压缩后的梯度值;模型参数是一个向量,包括多个元素,如模型参数更新是权重参数时,向量中的元素是各个权重参数,向量中元素的个数即更新模型参数的长度。[0100]协调设备接收各个参与设备发送的模型参数。[0101]协调设备获得的模型参数数据为密文数据,因此无法获得各参与设备的更新模型参数,从而不会窃取参与设备的隐私,保证了参与设备的隐私不会泄露给协调设备。[0102]在块520,聚合各所述参与设备的模型参数数据,根据接收到的各所述参与设备的模型参数进行密态计算产生全局模型,并形成聚合模型参数,在所述密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数;
[0103]协调设备融合各参与设备的模型参数得到全局模型参数更新,得到全局模型参数更新。其中,融合各参与设备的模型参数得到全局模型的聚合模型参数,可以是通过融合函数对各个模型参数进行融合,融合函数可以是进行加权平均操作的函数。协调设备可设置在TEE可信执行环境中,进一步保证数据的安全性。
[0104]协调设备可根据更新全局模型来确定待训练模型是否收敛,在一种实施方式中,根据更新全局模型判断联邦学习的待训练模型是否收敛,若待训练模型收敛则结束对待训练模型的训练,或者若迭代次数达到预设最大迭代次数则结束对待训练模型的训练,或者若训练时间达到最大训练时间则结束对待训练模型的训练。
15
CN 111898137 A[0105]
说 明 书
11/14页
在一种实施方式中,可判断本次模型更新得到的聚合模型参数与上一次模型更新
得到的聚合模型参数之间的差值是否小于预设差值,若小于预设差值,则确定待训练模型已收敛,若不小于预设差值,则确定待训练模型未收敛。[0106]若确定待训练模型收敛,则协调设备可结束对待训练模型的训练,也即,将本次模型更新得到的聚合模型参数,作为待训练模型最终的参数发送给各个参与设备。若确定待训练模型未收敛,则协调设备将聚合模型参数,作为新一次模型更新的聚合模型参数,发送给各个参与设备,各个参与设备根据聚合模型参数进行新一次模型更新。循环迭代直到协调设备确定待训练模型已收敛为止。[0107]在一种实施方式中,训练模型可以是用于信贷风险预估的神经网络模型,神经网络模型的输入可以是用户的特征数据,输出可以是对用户的风险评分,参与设备可以是多家银行的设备,各自在本地拥有多个用户的样本数据,协调设备是独立于多家银行的第三方服务器。协调设备与各个参与设备按照上述实施例中联邦学习的过程进行待训练模型的训练,得到最终收敛用于信贷风险预估的神经网络模型。各家银行可采用训练得到的神经网络模型来对用户的信贷风险进行预估,将用户的特征数据输入训练好的模型中,得到该用户的风险评分。需要说明的是,待训练模型还可以是用于除信贷风险预估以外其他的应用场景,如还可以应用于绩效等级预测,论文价值评价等,本发明实施例在此不做限定。[0108]由于协调设备和各参与设备按照在联邦学习过程中,通过加密算法对隐私数据进行加密处理,使得协调设备无法获得各个银行的用户隐私数据,保证了数据传输的安全性。[0109]在块530,发送所述聚合模型参数,将所述聚合模型参数发送给各所述参与方,以供各所述参与方基于发送的所述聚合模型参数更新本地的训练模型。[0110]协调设备获取聚合模型参数,将聚合模型参数发送给各个参与设备。若协调设备在本次模型更新中检测到待训练模型收敛,则可以将聚合模型参数发送给各个参与设备,供各个参与设备根据聚合模型参数确定待训练模型的最终参数,结束本次联邦学习。若协调设备在本次模型更新中检测到待训练模型没有收敛,则可以将聚合模型参数发送给各个参与设备,各个参与设备根据聚合模型参数进行下一次模型更新;各参与设备在接收到协调设备发送的聚合模型参数后,根据训练数据和聚合模型参数继续对本地模型进行训练,如此往复,直到协调设备在本次模型更新中检测到待训练模型收敛。[0111]在密态计算的过程中,将第一操作数拆解为多个第二操作数的数据处理方法以及在GPU上执行数据处理的方法可参考上述应用在参与设备上的数据处理方法。
[0112]如图6本说明书实施例的用于实现联邦学习的隐私数据处理的GPU芯片1000的示意图,该隐私数据处理装置包括:接口模块1100、存储器1400和计算模块1200。接口模块1100连接到外部处理设备以接收待密态计算数据,待密态计算数据包括加密数据、解密数据或密态运算数据中的至少一种;存储器负责存储所述密态计算的计算结果数据,该计算结果可以是中间处理计算结果数据,也可以是最终处理的计算结果数据;计算模块负责调取主机内的算法库中的算法和函数库中的函数对待密态计算数据进行计算。[0113]计算单元还包括并行处理单元1210,在密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数,由于第二操作满足机器指令的要求,因此可在普通芯片上执行计算任务。将第一操作数的运算转化为多个第二操作数的运算,并将多个第二操作数的计算任务放到多个并行处理单元中执行,进
16
CN 111898137 A
说 明 书
12/14页
一步提高了计算的效率。
[0114]GPU中的warp包括多个并行线程,该并线线程是GPU中的具备独立任务处理的最小单元,将所述多个并列的第二操作数的运算在GPU中Warp中的多个并行线程内同时执行。通过采用GPU作为密态计算的处理器,进一步提高了隐私数据处理的效率。[0115]GPU包括多个并行线程的高速缓存,将密文计算的中间结果数据存储在高速缓存,通过提高存储的速度,可进一步提高隐私数据处理的效率。[0116]此外,本发明还提供一种联邦学习的隐私数据处理设备,包括:如上所述的GPU芯片,以及存储器,与所述GPU芯片可通信地连接,被配置为存储从外部设备接收的所述密态计算任务处理源数据以及所述计算模块的任务处理结果数据。[0117]此外,本发明提供一种异构处理系统,包括主处理器以及从处理设备,从处理设备包括如上所述的GPU芯片,其中,所述主处理设备被配置为将密态计算任务处理源数据和任务配置数据发送给所述从处理设备,以及从所述从处理设备接收任务处理结果数据。[0118]本发明还提供一种联邦学习系统,如图7所示,包括交互单元2100、模型单元2200、加密单元2300、通讯单元2400和协议管理单元2500。[0119]交互单元2100用于接收交互指令,交互指令包括资源管理、模型定义、数据导入、模型训练或模型发布中的至少一种指令,交互单元包括显示屏、鼠标、指示灯和按钮开关等可交互的设备,其中显示屏可以是触摸屏。资源管理是指对GPU的资源进行查询,例如识别GPU芯片、监测异常状态;模型定义是指对联邦学习场景中算法的定义,数据导入,模型训练是指让联邦学习的各个参与方按照模型定义中所定义的算法进行执行,模型发布是指将联邦学习的隐私数据处理结果存储到外部存储器中。
[0120]模型单元2200存储有多种训练模型以供调取,例如深度神经网络模型(DNN)和逻辑回归方法。当交互单元接收到的交互指令为模型定义指令时,从模型单元中调取相应的模型数据。[0121]加密单元2300用于获取训练数据,应用调取到的训练模型数据对获取到的训练数据进行训练生成模型,并产生模型参数。该加密单元还包括算法库2310,调用所述算法库中的特定算法对所述模型参数进行密态计算生密文数据,在密态计算的过程中,将第一操作数拆解为多个第二操作数,所述第一操作数的比特数大于所述第二操作数的比特数,关于将第一操作数拆解为第二操作数的过程请参考前面的实施例,在此不再赘述。[0122]一种实施方式中,加密单元除了算法库,还包括函数库2400,该函数库包括损失函数、梯度计算和激发函数等,在执行密态计算的过程中,调取函数库中的函数对密态数据进行计算,可进一步提高密态计算的效率。
[0123]通讯单元用于发送加密后的模型参数数据给协调设备或参与设备,或接收协调设备或参与设备处理过的结果数据,继续对所述模型进行训练,直到输出的训练结果满足预设的条件。
[0124]为保证数据的安全性,该联邦学习系统还包括协议管理单元管理多个安全协议,安全协议是联邦学习区别于普通深度学习框架的重要组件,安全协议负责将用户的数据进行加密从而防止潜在的泄露。同时也提供了诸如密钥分发的功能来完成加密任务的准备工作,使得该模块功能更加完整。安全协议包括多方安全计算、同态加密协议、秘钥分发协议中的至少一种。
17
CN 111898137 A[0125]
说 明 书
13/14页
以下通过一个实施例讲解多个用户进行联邦学习的过程以及用户的数据隐私如
何被保护。如图8所示,假设三个用户甲、乙、丙商定训练深度神经网络模型M,拥有数据D1,D2,D3。
[0126]第一步,交互单元根据接收到的模型定义的交互指令,用户定义的模型为M,调用算法库提供的深度神经网络模型,完成模型构建工作;第二步,三个用户的系统分别在模型导入模块从设备层的存储单元中读取用户的数据D1,D2,D3,各自的模型训练模块调用算法层提供的训练功能,分别得到模型输出M1,M2,M3;第三步,三个用户的模型训练模块按照安全协议提供的算法和网络设备的支持,对三个模型输出进行加密、聚合、分发等操作,将三个模型训练成果聚合为一个,记作Mout,并发送给三个用户各自的系统中;重复上述第二、第三步进行多次训练,每一次训练都使得该模型输出的效果更好,直到训练过程结束。[0127]在上述过程当中,每个用户的数据都保存在本地,并且模型的聚合分发都是在加密之后进行,因此在安全协议的框架下,没有数据被窃取的风险。该联邦学习系统的安全性得到保证。
[0128]根据本说明书的一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-8述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。[0129]在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
[0130]可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。[0131]本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。[0132]需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
[0133]面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
[0134]本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使
18
CN 111898137 A
说 明 书
14/14页
用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
19
CN 111898137 A
说 明 书 附 图
1/4页
图1
图2
20
CN 111898137 A
说 明 书 附 图
2/4页
图3
图4
21
CN 111898137 A
说 明 书 附 图
3/4页
图5
图6
22
CN 111898137 A
说 明 书 附 图
4/4页
图7
图8
23
因篇幅问题不能全部显示,请点此查看更多更全内容