CN112231742A - 基于隐私保护的模型联合训练方法及装置 - Google Patents

基于隐私保护的模型联合训练方法及装置 Download PDF

Info

Publication number
CN112231742A
CN112231742A CN202011465465.6A CN202011465465A CN112231742A CN 112231742 A CN112231742 A CN 112231742A CN 202011465465 A CN202011465465 A CN 202011465465A CN 112231742 A CN112231742 A CN 112231742A
Authority
CN
China
Prior art keywords
model
target
gradient
trained
parameters
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
Application number
CN202011465465.6A
Other languages
English (en)
Other versions
CN112231742B (zh
Inventor
周启贤
张君涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202011465465.6A priority Critical patent/CN112231742B/zh
Publication of CN112231742A publication Critical patent/CN112231742A/zh
Application granted granted Critical
Publication of CN112231742B publication Critical patent/CN112231742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Bioethics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本说明书实施例提供了一种基于隐私保护的模型联合训练方法及装置。在联合训练过程是在目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次的条件下,开始基于目标数量对用于联合训练的梯度的数量进行调整,由服务器确定出在下一轮或几轮迭代中终端需向服务器发送的梯度的数量(即,目标数量),使得参与联合训练的终端不必在整个联合训练的过程中将得到的所有梯度都上传至服务器。

Description

基于隐私保护的模型联合训练方法及装置
技术领域
本说明书实施例涉及数据安全技术领域,具体地,涉及模型的联合训练方法及装置。
背景技术
为解决数据孤岛问题,通过多个端之间的配合实现的模型的联合训练,逐渐引起业界的重视。
该联合训练过程涉及的端(可以包括服务器和至少一个终端)的数量不唯一,在联合训练的过程中,至少两个参与联合训练的端之间可能需进行不止一次的数据传输。可见,联合训练一定程度的伴随着通信开销大、数据安全存在隐患的现象。在某些网络环境、计算环境中,该现象更加明显。
发明内容
本说明书实施例提供了模型的联合训练方法及装置,在有效地对模型进行联合训练的同时,有效地降低由联合训练引起的资源消耗,同时起到隐私保护作用。
根据第一方面,提供了模型的第一种联合训练方法,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述方法由所述服务器执行,所述方法包括:
根据待训练的模型的信息,确定目标数量;所述目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次时,若干个终端中的任意一个终端向所述服务器发送的梯度的数量;
针对若干个终端中的所述任意一个终端,将所述目标数量发送至该终端,使得该终端在迭代的轮次大于或等于目标迭代的轮次时,根据该终端生成的对应于所述模型的各个参数的梯度,确定出目标数量个目标梯度;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
在一个实施例中,所述模型的信息包括:待训练的模型的参数的数量、上一次训练待训练的模型的时间中的至少一种。
在一个实施例中,根据待训练的模型的信息,确定目标数量,包括:
在本次迭代的轮次大于或等于预设的目标迭代的轮次、且本次迭代未达到训练结束条件时,针对若干个终端中的每一个终端,获取该终端上一次迭代中确定出的损失;训练结束条件是根据待训练的模型的信息得到的;
根据该终端在上一次迭代中确定出的损失,确定该终端在执行本次迭代时向所述服务器发送的梯度的数量,作为目标数量。
在一个实施例中,根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数之前,所述方法还包括:
对待训练的模型的参数进行加密,得到加密后的模型;
将加密后的模型发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端根据所述加密后的模型,得到待训练的模型。
在一个实施例中,对待训练的模型的参数进行加密之前,所述方法还包括:
针对待训练的模型的每组参数,对该组参数进行第一扁平化处理,得到该组参数对应的综合参数值;待训练的模型的每组参数是根据预设的第一分组规则,对待训练的模型的各个参数进行分组得到的;
对待训练的模型的参数进行加密,包括:
针对各组参数对应的综合参数值,采用各组参数分别对应的密钥,分别地进行加密。
在一个实施例中,所述模型通过神经网络实现,所述神经网络包括多个层;任意一组参数对应于所述神经网络的一个层。
在一个实施例中,对待训练的模型的参数进行加密之前,所述方法还包括:
确定对待训练的模型的参数进行加密所需的第一密钥,所述第一密钥包括公钥和私钥;
对待训练的模型的参数进行加密,包括:
采用所述私钥对待训练的模型的参数进行加密;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数之前,所述方法还包括:
将所述公钥发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端采用所述公钥对加密后的模型解密。
在一个实施例中,所述目标梯度是根据综合梯度值得到的;所述综合梯度值是根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别进行第二扁平化处理之后,根据所述目标数量得到的;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,包括:
针对于任一终端发送的目标梯度进行第二恢复处理,得到第二恢复处理结果;
将所述若干个终端发送的对应于同一组参数的第二恢复处理结果进行聚合,得到该组参数的可用梯度值;
根据所述模型的各个参数的当前值和对应的可用梯度值,更新该参数。
根据第二方面,提供了模型的第二种联合训练方法,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述方法由若干个终端中的任意一个终端执行,所述方法包括:
接收所述服务器发送的目标数量,所述目标数量是根据待训练的模型的信息得到的;
根据该终端本地的训练样本,得到对应于模型参数的各个梯度;
在迭代的轮次大于或等于预设的目标迭代的轮次时,根据各个梯度,确定出目标数量个目标梯度;
将所述目标梯度发送至所述服务器,使得所述服务器根据该终端发送的目标梯度,得到训练后的模型参数,以得到训练后的模型。
在一个实施例中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之前,所述方法还包括:
接收所述服务器发送的加密后的模型;
根据该终端本地的训练样本,得到对应于模型参数的各个梯度,包括:
根据该终端本地的训练样本以及加密后的模型,得到对应于模型参数的各个梯度。
在一个实施例中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之前,所述方法还包括:
接收所述服务器发送的公钥;
根据该终端本地的训练样本以及加密后的模型,得到对应于模型参数的各个梯度,包括:
采用所述公钥,对加密后的模型进行解密,得到所述模型;
将该终端本地的训练样本输入所述模型,根据所述模型的输出,得到对应于模型参数的各个梯度。
在一个实施例中,所述加密后的模型,是将模型参数划分为多个参数组,将每组参数第一扁平化处理为综合参数值后进行加密得到的;
采用所述公钥,对加密后的模型进行解密,得到所述模型包括:
采用所述公钥,对加密后的模型解密,得到各个参数组对应的综合参数值;
对所述综合参数值进行第一恢复处理,恢复各个参数组,进而得到所述模型。
在一个实施例中,根据所述目标数量以及各个梯度,确定出目标数量个目标梯度,包括:
在本次迭代得到的各个梯度中,确定出目标数量个最大的梯度;
根据目标数量个最大的梯度,确定目标梯度。
在一个实施例中,根据目标数量个最大的梯度,确定目标梯度,包括:
采用预设的第二密钥对目标数量个最大的梯度进行加密,得到目标梯度。
在一个实施例中,根据各个梯度,确定出目标数量个目标梯度,包括:
根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别扁平化为多个综合梯度值;
从所述多个综合梯度值中,选择所述目标数量个最大的综合梯度值,作为所述目标梯度。
在一个实施例中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之后,所述方法还包括:
将本次迭代确定出的损失发送至所述服务器,使得所述服务器根据本次迭代确定出的损失,确定该终端在执行下一次迭代时采用的目标数量。
根据第三方面,提供了用于模型联合训练的第一种装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述装置应用于所述服务器,所述装置包括:
目标数量确定模块,配置为根据待训练的模型的信息,确定目标数量;所述目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次时,若干个终端中的任意一个终端向所述服务器发送的梯度的数量;
目标数量发送模块,配置为针对若干个终端中的每一个终端,将所述目标数量发送至该终端,使得该终端在迭代的轮次大于或等于目标迭代的轮次时,根据该终端生成的对应于所述模型的各个参数的梯度,确定出目标数量个目标梯度;
聚合模块,配置为根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
据第四方面,提供了用于模型联合训练的第二种装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述装置应用于所述终端中的任意一个,所述装置包括:
目标数量接收模块,配置为接收所述服务器发送的目标数量,所述目标数量是根据待训练的模型的信息得到的;
梯度生成模块,配置为根据该终端本地的训练样本,得到对应于模型参数的各个梯度;
目标梯度确定模块,配置为在迭代的轮次大于或等于预设的目标迭代的轮次时,根据各个梯度,确定出目标数量个目标梯度;
目标梯度发送模块,配置为将所述目标梯度发送至所述服务器,使得所述服务器根据该终端发送的目标梯度,得到训练后的模型参数,以得到训练后的模型。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面的方法。
根据本说明书一个实施例提供的方法和装置,在模型训练达到一定程度时,即,在迭代式的训练过程中当迭代的轮次大于或等于预设的目标迭代的轮次时,由服务器确定出在下一轮或几轮迭代中终端需向服务器发送的梯度的数量(即,目标数量)。由于在联合训练的过程中,服务器能够较为及时的获知模型的训练状况,则服务器能够灵活的根据模型的训练状况对目标数量进行调整,进而能够在不影响模型的训练效果的前提下,使得参与联合训练的终端不必在整个联合训练的过程中将得到的所有梯度都上传至服务器,以避免终端向服务器传输数据的过程造成过多的资源消耗。并且,由于本说明书中的联合训练过程是在目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次的条件下,才开始基于目标数量对用于联合训练的梯度的数量进行调整,则可以结合实际的需求,通过对目标迭代的设计,对终端发送给服务器的梯度的数量的调整时机进行灵活调整,增加联合训练过程的灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的若干个终端与服务器之间的交互示意图;
图2示出一种根据模型的各个参数的梯度进行联合训练的过程;
图3示出根据一个实施例的联合训练过程;
图4示出根据一个实施例的联合训练过程的时间进程;
图5示出根据一个实施例的确定目标数量的示意图;
图6示出根据一个实施例的确定目标数量个最大梯度的示意图;
图7示出根据一个实施例的终端与服务器共同进行模型的联合训练的过程;
图8示出根据一个实施例的服务器实施的对模型进行加密的过程;
图9示出根据一个实施例的服务器实施的对模型进行第一扁平化处理并得到加密后的模型的示意图;
图10示出根据一个实施例的终端实施的对一次迭代得到的各个梯度进行第二扁平化处理并得到目标梯度的示意图;
图11示出根据一个实施例的用于模型的联合训练的第一种装置的示意性框图;
图12示出根据一个实施例的用于模型的联合训练的第二种装置的示意性框图;
图13示出根据一个实施例的对应于图3的电子终端示意图。
具体实施方式
下面结合附图和实施例对本说明书作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本说明书中的实施例及实施例中的特征可以相互组合。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
为便于说明,现就现有的通过至少一个端的配合实现的联合训练过程进行介绍。示例性的,在如图1所示的网络架构中,服务器与终端1至终端k连接,服务器和与之连接的终端之间可以进行数据传输。需要说明的是,本说明书并不排除与服务器连接的终端数量为一个的情形。
本说明书对上述终端不做具体限制,该终端可以是手机、平板电脑、个人电脑、笔记本电脑、掌上电脑(Personal Digital Assistant ,PDA)、可穿戴终端(例如,智能眼镜、智能手表)、ATM机、智能安防系统、智能家居等等。
进一步地,本说明书中的服务器是指网络中能对其它终端提供服务的计算机系统。服务器服务的对象通常称为终端或客户端,服务器与终端之间可以通过有线或者无线的方式通信连接。服务器的实现方式是多种多样的,可以是单台的计算机终端,也可以是多台计算机终端的组合(例如,集群服务器,云服务器等)。服务器在一些应用场景中也可以被称为服务端,云端等。
此外,本说明书对模型的具体形式、架构不做具体限制,该模型可以根据实际的需求确定。例如,在本说明书一个可选的实施例中,该模型可以是人工神经网络(ArtificialNeural Network,ANN)模型、极端梯度提升(eXtreme Gradient Boosting,XGBoost)模型等。根据实际的需求,该模型可以是由若干个形式不同、架构不同的子模型构成的。
采用图1所示的网络架构进行联合训练的过程可以如图2中的步骤S200和步骤S202所示,图1中的终端1至终端k中的任意一个终端均可以作为图2中的终端a。终端a在历史的各个时刻中,基于其采集到的本地的数据,得到用于训练模型的训练样本。服务器将待训练的模型(在本说明书中,在本次训练完成之前的模型可以称为待训练的模型,在本次训练完成之后的模型可以称为训练后的模型)发送至终端a。其中,步骤S200和步骤S202的执行次序不分先后。
终端a在得到待训练的模型之后(例如,待训练的模型可以是由服务器发送至终端a的),将训练样本输入待训练的模型,得到模型基于该训练样本的输出,并进一步根据待训练的模型的输出得到参数的梯度。由于一般情况下待训练的模型的参数不唯一,则可以针对待训练的模型的每个参数,得到该参数的梯度,如图2步骤S204所示。
在终端a得到各个参数的梯度之后,将各个参数的梯度发送至服务器。在参与训练的终端的数量不唯一的情况下,服务器可以对接收到的来自于各个终端的各个梯度进行聚合,并根据聚合的结果调整模型的参数,如图2步骤S206至步骤S210所示。之后,经若干次迭代,在达到训练结束条件的时,服务器得到训练后的模型的参数。
至此,模型的联合训练过程完成。
可选地,在服务器得到训练后的模型的参数之后,将训练后的模型的参数发送至各个终端(例如图1中的终端1至终端k)。各个终端在接收到服务器发送的训练后的模型参数之后,根据该训练后的模型的参数对该终端已有的待训练的模型的参数进行更新,得到训练后的模型,如图2步骤S212所示。
在实际的场景中,有可能存在部署于终端中的模型随着时间的推移,需要间隔一段时间进行一次训练的情况。示例性的,在如图1所示的场景中,在历史时刻t1中,服务器将模型发送至各个终端,使得各个终端能够根据该模型执行业务。此后,直至当前时刻t2,该模型已经在该终端中使用了时长(t2-t1)。场景在该时长(t2-t1)中很有可能已经发生变化,则终端在时刻t1接收到的模型可能已经不再适用于当前的时刻t2,有必要对该模型进行训练。
在该情形下,本步骤中的待训练的模型即为终端在时刻t1中接收到的模型。在时刻t1中,该接收到的模型是适于时刻t1的、具备良好的模型能力的、训练后的模型。而在时刻t2中,该在时刻t1中接收到的模型已经不适于当前的场景,则模型在时刻t2中是待训练的模型。
可见,本说明书中的模型是否是待训练的模型,一定程度的取决于模型上一次训练的时刻距离当前时刻的时长。若当前时刻为前述的时刻t1,则该模型是训练后的模型;若当前时刻为前述的时刻t2,则该模型是待训练的模型。
此外,假设在时刻t2对该模型进行了训练,则在未来的时刻t3中,在时刻t2经训练得到的训练后的模型也有可能是待训练的模型。以此类推,可以得到在此后各个时刻中模型状态的变化,在此不一一例举。
如此,本步骤中的待训练的模型可以是历史时刻中得到在该历史时刻中的训练后的模型,但是在当前时刻,该模型的状态是待训练状态。
通过上述介绍可知,模型的参数可能不唯一,则在某一轮迭代中,服务器从某一终端接收到的梯度的数量可能也不唯一,若模型是架构较为复杂的神经网络,则服务器接收到的梯度的数量可能是较为庞大的。并且,模型联合训练过程中向服务器发送梯度的终端的数量也可能不唯一,则进一步提高了服务器接收到的梯度的数量。
一方面,终端将数量众多的梯度发送至服务器将消耗较多的通信资源,若终端与服务器之间的通信链路较为繁忙,有可能存在该数量众多的梯度无法及时发送至服务器;另一方面,服务器接收到的梯度的数量也较多,后续服务器对该较多的梯度进行聚合所消耗的数据处理资源也将较多,有损模型的训练效率。
有鉴于此,本说明书提供一种模型的联合训练过程,所述联合训练包括若干次迭代,所述联合训练由服务器和若干个终端共同进行,如图3所示,该过程可以包括以下步骤中的一个或多个。
S300:服务器获取待训练的模型。
本说明书对待训练的模型的由来不做具体限制,该待训练的模型可以是预先的存储在服务器中的,也可以是服务器通过某些途经获得的。待训练的模型的由来以及获取方式不视为对本说明书中的过程的限制。
进一步地,本说明书对服务器获取待训练的模型的时机不做具体限制。例如,执行本步骤的时间可以在如图4所示的时间轴中联合训练开始的节点之前,也可以在联合训练开始的节点之后。
S302:服务器确定目标迭代的轮次。
本说明书中的联合训练过程将经历若干次(例如,一次或至少两次)迭代的过程,在如图4所示的场景中,模型的联合训练过程共经历了j次迭代。
本说明书中的目标迭代的轮次用于表征某终端对其得到的梯度进行压缩的时机,即,将联合训练的第几次迭代作为目标迭代,则终端就从该第几次迭代开始对其得到的梯度进行压缩。在如图4所述的实施例中,服务器将第i次迭代确定为目标迭代(此时,目标迭代的轮次为i),则在第1次迭代至第i-1次迭代中,终端无需对其得到的梯度进行压缩;在第i次迭代至第j次迭代中,终端对其得到的梯度进行压缩。
终端对梯度进行压缩的方式可以根据实际的需求确定。在本说明书一个可选的实施例中,终端对梯度的压缩是指:对某一轮次得到的梯度的数量的压缩。例如,在如图4所示的实施例中,终端在目标迭代(第i次迭代)之前,终端不对梯度进行压缩,将其得到的各个梯度发送至服务器;在目标迭代之后,终端对其得到的各个梯度进行筛选(以实现针对所述数量的压缩),将筛选出梯度而不是全部的梯度发送至服务器。
本说明书中的目标迭代的轮次可以根据历史中进行联合训练时得到的各数据、预设业务规则、模型的信息、参与训练的各个终端的信息(例如,参与联合训练的终端的数量、各个终端用于本次联合训练的训练样本的数量、终端诸如计算能力等属性)中的至少一种确定。
在某些场景中,步骤S300和步骤S302的执行次序可以不分先后。
S304:服务器根据待训练的模型的信息,确定目标数量。
在本说明书中,待训练的模型的信息可以是模型固有的、不会随时间发生变化的信息的,例如模型的属性信息。模型的属性信息可以包括模型参数的数量、模型的类型(神经网络模型、树模型等)、模型的架构中的至少一种。示例性的,在模型的类型是神经网络时,模型架构可以包括CNN(卷积神经网络,Convolutional Neural Networks)、RNN(循环神经网络,Recurrent Neural Network)、DBN(深度信念网络,Deep Belief Network)和GAN(生成式对抗网络,Generative Adversarial Networks)等。
此外,待训练的模型的信息还可以是在模型使用过程中、训练过程中生成的、一定程度的随时间发生变化的信息。例如,模型距上次训练的时长(可以根据上一次训练待训练的模型的时间得到)、参与本次联合训练的终端的数量、目标迭代的轮次中的至少一种。
进一步地,该待训练的模型的信息还可以是根据预设的业务规则人为设定的信息。
可见,本说明书中的待训练的模型的信息至少可以根据模型的状态、模型的属性、预设的训练目标、业务规则中的至少一种得到。
于是,可以根据如上所述得到的待训练的模型的信息,确定与前述梯度的压缩程度相关的目标数量。目标数量的确定方式和作用将在下文进行具体描述。
在本说明书一个可选的实施例中,在目标数量的确定不依赖于目标迭代的轮次时,步骤S302与步骤S304的执行次序可以不分先后。
S306:服务器针对若干个终端中的每一个终端,将所述目标数量发送至该终端。
由前述内容可知,本说明书确定目标数量所述采用的依据可能较为复杂。在该依据不受联合训练的过程影响的情况下(例如,该依据是模型的属性、业务规则、终端提供的训练样本中的至少一种),可以在步骤S302之前确定出目标数量,并可选地,在步骤S302之前执行本步骤。即,服务器向终端发送目标数量的时机,可以根据实际情况确定,不必拘泥于本说明书步骤编号的限制。
S308:终端接收所述服务器发送的目标数量。
在本说明书一个可选的实施例中,终端具有数据存储功能,则终端可以对接收到的目标数量进行储存。在某些情况下,模型的生命周期中可能会周期性或间歇性的经历若干次联合训练,在相邻的两次联合训练各自采用的目标数量不同的情况下,终端可以根据最近一次接收到的目标数量对已经储存的目标数量进行更新。
S310:终端获取待训练的模型。
本说明书中,终端获取待训练的模型的方式可以有多种。
在一个可选的实施例中,服务器将其获取的待训练的模型(例如,在步骤S300中获取的),发送至参与所述联合训练的各个终端中的至少一个,以使得该终端得到待训练的模型。此时,步骤S310与步骤S302的次序不分先后。
S312:终端根据该终端本地的训练样本,得到对应于模型参数的各个梯度。
在本说明书一个可选的实施例中,各个终端中的至少一个终端,采用有监督训练的方式参与联合训练。则该终端本地的训练样本可以包括:样本特征和与该样本特征对应的样本标签,如图7所示。
可选地,确定训练样本的过程可以是:根据所述历史数据,得到样本特征以及与该样本特征对应的样本标签,将所述样本特征和与该样本特征对应的样本标签作为一个训练样本。其中,确定样本特征和与该样本特征对应的样本标签的执行次序不分先后。
之后,可以针对每个训练样本,将该训练样本的样本特征输入待训练的模型,得到待训练的模型输出。由于待训练的模型的能力尚不完备,则待训练的模型输出与该训练样本的样本标签之间具有一定的差异,则可以根据确定出的待训练的模型输出与样本标签之间的差异,确定应于模型参数的各个梯度。
或者,现有技术中其他的确定梯度的方法,均可以适用于本说明书中的联合训练的过程。
S314:终端在迭代的轮次大于或等于预设的目标迭代的轮次时,根据所述目标数量以及各个梯度,确定出目标梯度。
由前述内容可知,本说明书中的目标迭代的轮次是由服务器确定的,但是,在联合训练的过程中,判断当前的迭代轮次是否大于或等于目标迭代的轮次的过程,可以是由服务器、终端中的任意一个执行的。
在本说明书一个可选的实施例中,判断当前的迭代轮次是否达到目标迭代的轮次是由服务器执行的,则服务器可以在确定当前的迭代轮次达到目标迭代的轮次时,将目标数量发送至终端,使得终端能够根据所述目标数量以及各个梯度,确定出目标梯度。
则在该实施例中,终端在接收到目标数量之前,默认向服务器发送其在本迭代轮次得到的各个梯度,此时,服务器向终端发送的目标数量除具备通知终端对梯度的压缩程度的功能之外,还具备通知终端何时开启压缩的功能。
在本说明书另一个可选的实施例中,判断当前的迭代轮次是否达到目标迭代的轮次是由终端执行的,则终端在接收到服务器发送的目标轮次之后,本地判断当前迭代轮次是否达到所述目标迭代的轮次。
如果当前迭代轮次小于前述目标迭代的轮次,则将步骤S312得到的各个梯度作为目标梯度;如果当前迭代轮次大于或等于目标迭代的轮次,则根据前述目标数量以及各个梯度,确定出目标梯度。
示例性的,本说明书将一终端在一迭代轮次中从其确定出的各个梯度中筛选出部分梯度,作为目标梯度的过程称为压缩。在本说明书其他可选的实施例中,还可以采用其他的能够减少发送至服务器的数据的量和/或减少数据传输消耗的资源(该资源可以是网络资源、数据处理资源、时间等)的方式,作为本说明书中的压缩,在此不一一列举。
S316:终端将所述目标梯度发送至所述服务器。
本说明书对终端将目标梯度发送至服务器的具体方式不做限制。例如,终端发送目标数据所采用的信道可以与接收服务器发送的数据时所采用的信道相同或不同。
在本说明书一个可选的实施例中,所述信道是高安全性的信道,例如采用TLS/SSL协议的信道。
S318:服务器根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
由前述内容可知,采用本说明书的过程,能够一定程度的减少终端向服务器发送的梯度(即目标梯度)的数量,则服务器接收到的梯度的数量也能够有效的减少,特别是在参与联合训练的终端的数量较多的情况下,本说明书中的过程对所述数量的控制效果将更加明显。由于服务器接收到的梯度的数量一定程度的减少了,则服务器在对接收到的梯度进行处理时消耗的资源也能够有效的减少。
本说明书对服务器根据目标梯度得到训练后的模型参数的方式不做具体限制,在一个可选的实施例中,服务器可以首先针对所述模型的每个参数,在接收到的各个目标梯度中,确定出对应于该参数的目标梯度。然后针对对应于该参数的目标梯度进行聚合,得到该参数对应的聚合后的梯度。之后根据该聚合后的梯度,对该参数进行调整(若所述参数是权重,则该调整可以是提高该权重、降低该权重或保持该权重不变。在保持权重不变的情况下,所述调整的程度为0),得到调整后的参数。
在本次迭代达到预设的训练结束条件时,该调整后的参数,即为训练后的模型参数,根据该训练后的模型参数,即能够得到训练后的模型。在本次迭代未达到预设的训练结束条件时,可以在此后的若干次迭代中,继续对模型的至少部分参数进行调整,直至到预设的训练结束条件。
其中,预设的训练结束条件可以根据实际的需求确定。在一个可选的实施例中,训练结束条件可以是:调整后的参数满足预设训练要求(例如,一次联合训练持续的时长达到预设的要求)、参数调整后的模型输出的结果与真实结果(可以是所述训练样本的样本标签和/或测试集的标签)之间的差异小于预设的差异阈值、迭代的次数达到预设次数中的至少一种。
在本说明书一个可选的实施例中,在服务器得到训练后的模型之后,可以将该训练后的模型发送至所述终端中的至少一个,以使得接收到该训练后的模型的终端基于该训练后的模型执行业务。
以下对上述流程中涉及的几个步骤进行进一步详细描述。
一、确定目标数量。
由前述内容可知,本说明书中的目标数量用于限定终端向服务器发送的梯度的数量,对本说明书中的过程的实施起到较为重要的作用。
在本说明书一个可选的实施例中,目标数量可以由服务器单独确定。具体地,由服务器执行的确定目标数量的过程可以是:服务器在确定当前迭代的轮次大于或等于预设的目标迭代的轮次时,确定当前迭代与目标迭代之间间隔的迭代个数,根据所述个数、模型参数的数量(也可称为模型的大小)、模型距上次训练的时长、参与本次联合训练的终端的数量、目标迭代的轮次中的至少一种,确定所述目标数量,如图5所示。
可选地,所述目标数量与所述个数负相关,和/或目标数量可以与参数的数量正相关,和/或目标数量可以与模型距上次训练的时长正相关、和/或与参与本次联合训练的终端的数量负相关、和/或与目标迭代在各次迭代中所处的轮次负相关(即,目标迭代的轮次在联合训练过程中越靠近联合训练结束的时刻,则目标数量越小)。
在本说明书另一个可选的实施例中,目标数量可以由服务器和终端共同确定。具体地,由服务器和终端执行的确定目标数量的过程可以是:在本次迭代的轮次(即当前迭代轮次)大于或等于预设的目标迭代的轮次时,终端根据确定出的待训练的模型输出与样本标签之间的差异,确定所述模型对应于本次迭代的损失。之后,终端将本次迭代确定出的损失发送至所述服务器,如图7所示,使得所述服务器根据本次迭代确定出的损失,确定该终端在执行下一次迭代时采用的目标数量。可选地,所述目标数量与所述损失正相关。
本说明书中的过程将目标数量与损失之间建立一定的关联关系,能够有效地将联合训练过程中随时间动态变化的模型的能力体现在目标数量中,进而在对终端生成的梯度进行压缩的条件下,使得模型能够得到恰当的训练,既不会引起服务器接收到的梯度的数量过大造成资源的消耗,也不会引起服务器接收到的梯度的数量过小造成的联合训练效率低下。
需要说明的是,在服务器和终端共同确定目标数量的实施例中,不排除服务器在根据损失确定目标数量时,还一定程度的采用了所述个数、模型参数的数量、模型距上次训练的时长、参与本次联合训练的终端的数量、目标迭代的轮次中的至少一种,作为确定所述目标数量的依据,如图5所示。
如前所述,参与联合训练的终端可以不唯一,则可以针对每个终端,分别地确定出该终端对应的目标数量。可选地,在目标数量是为终端进行个性化设计得到的情况下,每一个终端将其本地的参与本次联合训练的训练样本的数量,和/或参与下一次迭代的训练样本的数量,发送至所述服务器。服务器根据该终端本地的参与本次联合训练和/或下一次迭代的样本的数量,确定该终端在下一次迭代中对应的目标数量。目标数量可以与所述训练样本的数量负相关。
在本说明书一个可选的实施例中,还可以针对在目标迭代之后每次迭代,根据该次迭代在本次联合训练的各次迭代中的次序,确定该次迭代对应的目标数量,以实现针对每次迭代的目标数量的个性化设置。可选地,本次迭代对应的目标数量与本次迭代所处的次序负相关。
需要说明的是,本说明书确定出的用于下一次迭代的目标数量有可能大于、等于或小于本次迭代采用的目标数量。即,在一次联合训练的过程中需要若干次确定目标数量以对目标数量进行调整时,该调整有可能是使得目标数量增加、有可能是使得目标数量不变、也有可能是使得目标数量减少。
二、终端根据目标数量确定目标梯度。
通过前述的过程,服务器确定出目标数量之后,将该目标数量发送至终端(若各终端各自对应的目标数量不同,则服务器针对每个终端,分别地向该终端发送该终端对应的目标数量)。终端在接收到目标数量之后,根据该接收到的目标数量,在本次迭代中得到的各个梯度中,确定出目标数量个梯度。然后,根据确定出目标数量个梯度确定目标梯度。
由前述的内容可知,目标梯度的数量可以小于本次迭代由该终端得到的所有梯度的数量。如果不将所有梯度均发送至服务器,由可能存在模型的某些参数得不到恰当的调整的现象,则如何从本次迭代得到的各个梯度中确定出恰当的目标梯度,在对梯度进行压缩的同时避免影响联合训练的效果,较为关键。
由此,本说明书中的过程在本次迭代得到的各个梯度中,确定出目标数量个最大的梯度。根据目标数量个最大的梯度,确定目标梯度。在本说明书一个可选的实施例中,可以将目标数量个最大的梯度直接作为目标梯度。
若一参数对应的梯度较大,则表明由该参数引起的模型能力欠缺的可能性较大,则应着重对梯度较大参数进行调整,以保障联合训练的效果。
如图6所示的示例中,某终端在一次迭代的过程中确定出了多个梯度。此时目标数量是4,则确定出的4个最大的梯度包括:梯度
Figure DEST_PATH_IMAGE001
、梯度
Figure 689688DEST_PATH_IMAGE002
、梯度
Figure DEST_PATH_IMAGE003
和梯度
Figure 15496DEST_PATH_IMAGE004
。在一个实施例中,可以将这4个最大的梯度作为目标梯度。
三、服务器对模型进行加密。
相较于在单端执行的模型训练过程,联合训练有赖于端与端之间的通信,若存在不法分子对该通信的过程进行攻击,则会存在联合训练过程涉及的数据被泄露的隐患。
有鉴于此,在服务器将待训练的模型发送至终端之前,对待训练的模型的参数进行加密,得到加密后的模型,如图7所示。将加密后的模型发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端根据所述加密后的模型,得到待训练的模型。则即使不法分子截获了由服务器发送至终端的待训练的模型,不法分子也无法根据该加密后的待训练的模型得到待训练的模型。
由前述内容可知,本说明书中定义模型在联合训练开始至联合训练结束之间的时间段内为待训练的模型,则在本说明书一个可选的实施例中,可以在每次迭代中,服务器向终端发送待训练的模型(即为向终端发送待训练的模型的参数的过程)之前,均由服务器对待训练的模型进行加密。
本说明书对服务器进行加密时采用的加密方式不做具体限制,在服务器将加密后的模型发送至终端之后,终端可以对该加密后的模型进行解密,以得到待训练的模型。
在本说明书一个可选的实施例中,在服务器针对待训练的模型进行加密之前,可以先确定出对待训练的模型的参数进行加密所需的第一密钥,所述第一密钥包括公钥和私钥,如图7所示。然后,服务器采用所述私钥对待训练的模型的参数进行加密,得到加密后的模型;并将用于对加密后的模型进行解密的公钥发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端采用所述公钥对加密后的模型解密,并基于解密后得到的待训练的模型确定梯度。
为进一步提高对待训练的模型的保密效果,服务器与终端之间传输加密后的模型所采用的信道,和服务器与终端之间传输公钥所采用的信道不同。
在本说明书一个可选的实施例中,采用Paillier算法生成第一密钥,并采用第一密钥对待训练的模型进行加密的过程可以如下:
S800:随机的确定第一素数p和第二素数q,使得第一素数p和第二素数q满足预设的素数确定条件。
可选地,本步骤中的过程可以是:随机的确定第一素数p和第二素数q,将第一素数p减1得到第一量(p-1)、将第二素数q减1得到第二量(q-1),使得第一量(p-1)和第二量(q-1)的乘积与第一素数p和第二素数q的乘积的最大公约数为1。可选地,确定公约数的过程可以采用gcd算法,如公式(1)所示。
Figure 333345DEST_PATH_IMAGE006
公式(1)
可选地,第一素数p和第二素数q均为取值较大的素数。例如,除满足公式(1)中所示的内容以外,第一素数p和第二素数q的乘积大于1024时,才确定第一素数p和第二素数q满足预设的素数确定条件。
S802:根据所述第一素数p和第二素数q,采用预设的第一规则,确定第一系数n。
可选地,本步骤中的过程可以是:确定第一素数p和第二素数q的乘积作为第一系数n,如公式(2)所示。
Figure 51902DEST_PATH_IMAGE008
公式(2)
S804:根据所述第一素数p和第二素数q,采用预设的第二规则,确定第二系数λ。
可选地,本步骤中的过程可以是:确定第一量(p-1)和第二量(q-1)的最小公倍数,作为第二系数λ。示例性的,确定最小公倍数的过程可以采用lcm算法,如公式(3)所示。
Figure 506017DEST_PATH_IMAGE010
公式(3)
S806:根据所述第一系数n,确定指定函数L(
Figure DEST_PATH_IMAGE011
),使得指定函数L(
Figure 268306DEST_PATH_IMAGE011
)的输出与所述第一系数n负相关。
可选地,指定函数L(
Figure 807872DEST_PATH_IMAGE011
)是一次函数,则本步骤中的过程可以是:根据所述第一系数n确定斜率和截距,所述斜率与所述第一系数n负相关,所述截距与所述第一系数n正相关。其中,截距可以是负数。
示例性的,指定函数L(
Figure 330120DEST_PATH_IMAGE011
)可以如公式(4)所示。
Figure DEST_PATH_IMAGE013
公式(4)
在公式(4)中,所述斜率是第一系数n的倒数;所述截距是第一系数n的倒数的相反数。
S808:根据所述第一系数n,随机的确定第三系数g。
可选地,第三系数g是小于
Figure 622430DEST_PATH_IMAGE014
的随机正整数。
S810:根据第一系数n、第二系数λ和第三系数g,确定第三量v。
可选地,确定第三量v的过程可以是:以第三系数g为底数,以第二系数λ为指数进行计算,得到第四量;确定第四量与第一系数n的平方的余数,作为第三量v。如公式(5)所示。
Figure 571931DEST_PATH_IMAGE016
公式(5)
S812:将所述第三量v作为指定函数L(
Figure 333214DEST_PATH_IMAGE011
)的自变量,得到指定函数L(
Figure 924732DEST_PATH_IMAGE011
)输出的第五量,并根据所述第五量和第一系数n,得到第四系数μ。
可选地,可以将所述第五量倒数与第一系数n的余数,作为第四系数μ,如公式(6)所示。
Figure 87860DEST_PATH_IMAGE018
公式(6)
S814:根据所述第一系数n和第三系数g,确定所述公钥PK;并根据所述第二系数λ和第四系数μ确定所述私钥SK,如公式(7)所示。
Figure 457531DEST_PATH_IMAGE020
公式(7)
通过前述过程,即可得到用于对模型进行加密的第一密钥。采用第一密钥中的私钥SK对模型加密的过程可以是:确定所述待训练的模型的参数作为明文m。根据第一系数n,随机的确定第五系数r。根据所述第五系数r和所述公钥,得到所述明文对应的密文c(即加密后的模型的参数。可以作为加密后的模型)。
其中,根据第一系数n,随机的确定第五系数r的过程可以是:在小于第一系数n的正整数中确定第五系数r。可选地,第五系数r与第一系数n互质,和/或第五系数r在第一系数n的平方的剩余系中存在乘法逆元。明文m是小于第一系数n的正整数。
可选地,得到所述密文c的过程可以是:以第三系数g为底数,以明文m为指数进行计算,得到第六量;以第五系数r为底数,以第一系数n为指数进行计算,得到第七量;根据第六量和第七量确定第八量,可选地,第六量和第七量中的至少一个与第八量正相关。确定第八量与第一系数n的平方的余数,作为所述明文对应的密文c。第八量可以是第六量和第七量的乘积,则得到密文c的过程可以如公式(8)所示。
Figure 237268DEST_PATH_IMAGE022
公式(8)
四、终端对加密后的模型进行解密。
由前述内容可知,服务器将公钥PK发送至终端,则终端可以根据该公钥PK,对得到的加密后的模型进行解密。
在本说明书一个可选的实施例中,该解密的过程可以是:密文c为底数,以第二系数λ为指数进行计算,得到第一项;确定第一项与第一系数n的平方的余数,作为第二项。以第二项作为指定函数L(
Figure 101319DEST_PATH_IMAGE011
)的自变量,得到指定函数L(
Figure 384532DEST_PATH_IMAGE011
)输出的第三项。然后,确定所述第三项和第四系数μ的乘积与所述第一系数n的余数,作为所述密文c对应的明文m。
该采用公钥PK通过解密的方式得到明文m的过程可以如公式(9)所示。
Figure 331629DEST_PATH_IMAGE024
公式(9)
至此,终端基于该解密的过程得到了待训练的模型的参数,进而得到了待训练的模型,终端可以继续执行针对该待训练的模型的联合训练过程。
在本说明书一个可选的实施例中,服务器在执行针对模型进行的加密时,可以针对本次联合训练确定第一密钥,即本次联合训练的过程中,服务器始终以该第一密钥对模型进行加密。
在本说明书另外一个可选的实施例中,服务器在执行针对模型进行的加密时,可以针对本次联合训练中的每一次迭代,确定本次迭代对应的第一密钥,使得每次迭代所采用的第一密钥有可能不同,以加强隐私保护。
在本说明书再一个可选的实施例中,服务器在执行针对模型进行的加密时,可以针对参与联合训练的每个终端,确定该终端对应的第一密钥,使得参与联合训练的至少两个终端接收到的加密后的模型不同,并且该两个终端接收到的密钥也不同。则该实施例中的联合训练过程,能够较大程度的避免终端之间以共谋的方式窃取其他端的隐私的现象。
五、服务器在对模型进行加密之前,对模型的参数进行第一扁平化处理。
由前述内容可知,服务器对模型进行加密的过程会产生一定的计算资源的消耗,本说明书通过由服务器执行的对模型的参数进行的第一扁平化处理,降低对模型加密的难度,进而降低由模型加密产生的资源消耗。其中,第一扁平化处理的目的是降低对模型的参数的加密的难度,现有的任何可以实现该目的数据处理手段均可以作为本说明书中的第一扁平化处理。
在本说明书一个可选的实施例中,可以首先根据预设的第一分组规则,对待训练的模型的各个参数进行分组,得到若干个组,使得每个参数对应于唯一的一个组。然后,以组为单位,分别地针对待训练的模型的每组参数进行第一扁平化处理,得到该组参数对应的综合参数值。之后,针对得到的每个综合参数值,采用所述第一密钥进行加密(在第一密钥包括公钥和私钥时,可以采用私钥进行加密),得到该综合参数值的加密结果。各个综合参数值的各自的加密结果,共同构成加密后的模型。
例如一模型包括64个参数,若不进行第一扁平化处理,直接对参数进行加密,需进行64次加密,才能够得到加密后的模型。若将该模型的64个参数分为16个组,并针对每个组中的参数进行第一扁平化处理,共得到16个综合参数值,之后对综合参数值进行加密,则仅需进行16次加密即可。可见通过本说明书中的第一扁平化处理过程,能够有效的减小加密的难度。
分组过程所采取的实施方式以及第一扁平化处理过程所采取的实施方式,可以根据实际的需求确定,使得分组至少能将两个或两个以上的参数分到一个组中,并使得该第一扁平化处理过程至少能够达到“将多个参数转化一个参数”和/或“将维的数量较多的参数转化为维数较低的参数”的目的。
在本说明书一个可选的实施例中,可以根据模型的类型、模型的架构、模型的参数的数量、模型参数的表征方式(表征方式可以是数值的方式、向量的方式、表格的方式等),确定分组和第一扁平化处理所采取的实施方式。
示例性的,在所述模型是神经网络模型时,可以将神经网络的每一层对应于一个组,如图9所示,该神经网络模型包括四个层,每一个层对应于一个组,使得该层的参数即为该组中的参数。则对神经网络的一组参数进行第一扁平化处理的过程,可以是将该组参数对应的神经网络的参数进行诸如求和或求平均等具有降维性质的运算,将运算得到的结果,作为该组参数对应的综合参数值。
在进行第一扁平化处理之后,即可对针对第一扁平化处理得到的各个综合参数值进行分别地加密,得到每个组各自对应的加密后的结果,即得到加密后的模型,如图9所示。
相应的,终端在接收到加密后的模型之后,采用所述公钥对加密后的模型进行解密,得到各个参数组对应的综合参数值。然后,对所述综合参数值进行第一恢复处理(Reshape),恢复各个组的参数,进而得到所述模型。其中,第一恢复处理具体所述采用的方式与第一扁平化处理的方式相对应。
在本说明书一个可选的实施例中,服务器在对模型进行加密时,可以针对每组参数,确定该组参数对应的第一密钥,使得至少两个组各自对应的第一密钥不同。然后,采用该组参数对应的第一密钥对该组参数进行加密。则,终端需针对每组参照,采用与该组参数对应的公钥进行解密。
六、终端对发送至服务器的目标梯度加密。
由前述内容可知,联合训练的过程中存在端与端之间的不可信,则有必要对终端发送至服务器的数据(例如,目标梯度)进行加密,以避免泄露终端的隐私。并且,为使得服务器能够根据各个终端发送的目标梯度进行聚合,终端可以采用加法同态加密算法(例如,Paillier算法)或全同态加密算法(例如,Gentry算法)对其将要发送至服务器的梯度进行加密。
为减少终端对数据进行加密时消耗的资源,在本说明书一个可选的实施例中,还可以将该终端在本次迭代得到的各个梯度划分为多个梯度组,如图10所示。针对每个梯度组,分别地进行第二扁平化处理,得到该梯度组对应的综合梯度值。之后,在得到的各个综合梯度值中,确定出目标数量个最大的综合梯度值。然后,采用预设的第二密钥,对目标数量个最大的综合梯度值进行加密,将得到的结果作为目标梯度。第二密钥可以根据实际的需求基于加法同态加密算法或全同态加密算法确定。第二密钥可以与第一密钥相同或不同。
需要说明的是,图10中仅仅示例性的示出了4个梯度组,实际的场景中,梯度组的数量可以根据实际的需求得到。
其中,第二扁平化处理的目的是降低对梯度进行加密的难度,现有的任何可以实现该目的数据处理手段均可以作为本说明书中的第二扁平化处理。在某些情形下,第二扁平化处理的方式可以与第一扁平化处理的方式相同。
此外,划分得到梯度组的具体方式和/或第二扁平化处理的具体方式可以根据实际需要确定。在本说明书一个可选的实施例中,可以根据模型的类型和/或模型的架构,确定划分梯度组所采取的实施方式和第二扁平化处理所采取的实施方式。在所述模型是神经网络模型时,可以根据神经网络的每一层参数对应的梯度得到一个梯度组,如图10所示。在图10所示的各个梯度是根据如图9所示的神经网络模型得到的情况下,对应于该神经网络的第一层的梯度
Figure DEST_PATH_IMAGE025
至梯度
Figure 51192DEST_PATH_IMAGE026
,构成第一个梯度组,以此类推,得到各梯度组。
相应的,服务器在接收到来自于各个终端的目标梯度之后,针对每个目标梯度,进行第二恢复处理,得到第二恢复处理结果。然后,针对模型的每个参数,将对应于该参数的各个第二恢复处理结果进行聚合,得到对应于该参数的可用梯度值,以对该参数进行调整,以更新所述参数。在未达到训练结束条件的时,根据各更新后的参数得到待训练的模型;在达到训练结束条件的时,根据各更新后的参数得到训练后的模型。其中,第二恢复处理具体所述采用的方式是根据第二扁平化处理的方式得到的。
或者,在进行聚合时可以以前述第一分组规则得到的参数的组作为聚合的单位。则可以针对于任一终端发送的目标梯度进行第二恢复处理,得到第二恢复处理结果;将所述若干个终端发送的对应于同一组参数的第二恢复处理结果进行聚合,得到该组参数的可用梯度值,以对该参数进行调整,以更新所述参数。
在本说明书另一个可选的实施例中,还可以对确定出的本次迭代将要发送至服务器的各个梯度(例如前述的目标数量个最大的梯度)划分为多个梯度组。针对每个梯度组,进行第二扁平化处理,得到该梯度组对应的综合梯度值。然后,采用预设的第二密钥,对每个综合梯度值进行加密,将得到的结果作为目标梯度。
可见,通过本说明中的联合训练过程,在模型训练达到一定程度时,即,在迭代式的训练过程中当迭代的轮次大于或等于预设的目标迭代的轮次时,由服务器确定出在下一轮或几轮迭代中终端需向服务器发送的梯度的数量(即,目标数量)。由于在联合训练的过程中,服务器能够较为及时的获知模型的训练状况,则服务器能够灵活的根据模型的训练状况对目标数量进行调整,进而能够在不影响模型的训练效果的前提下,使得参与联合训练的终端不必在整个联合训练的过程中将得到的所有梯度都上传至服务器,以避免终端向服务器传输数据的过程造成过多的资源消耗。并且,由于本说明书中的联合训练过程是在目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次的条件下,才开始基于目标数量对用于联合训练的梯度的数量进行调整,则可以结合实际的需求,通过对目标迭代的设计,对终端发送给服务器的梯度的数量的调整时机进行灵活调整,增加联合训练过程的灵活性。
基于同样的思路,本说明书实施例还提供了对应于图3所示过程的用于模型联合训练的第一种装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,该第一种装置如图11所示,该第一种装置应用于参与联合训练过程的服务器。
图11为本说明书实施例提供的第一种装置的结构示意图,该第一种装置可以包括以下单元和/或模块中的一个或多个:
目标数量确定模块1100,配置为根据待训练的模型的信息,确定目标数量;所述目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次时,若干个终端中的任意一个终端向所述服务器发送的梯度的数量;
目标数量发送模块1102,配置为针对若干个终端中的每一个终端,将所述目标数量发送至该终端,使得该终端在迭代的轮次大于或等于目标迭代的轮次时,根据该终端生成的对应于所述模型的各个参数的梯度,确定出目标数量个目标梯度;
聚合模块1104,配置为根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
可选地,所述模型的信息包括:待训练的模型的参数的数量、上一次训练待训练的模型的时间中的至少一种。
可选地,所述目标数量确定模块1100包括损失获取子模块11000和目标数量确定子模块11002。
损失获取子模块11000,配置为在本次迭代的轮次大于或等于预设的目标迭代的轮次、且本次迭代未达到训练结束条件时,针对若干个终端中的每一个终端,获取该终端上一次迭代中确定出的损失;训练结束条件是根据待训练的模型的信息得到的。
目标数量确定子模块11002,配置为根据该终端在上一次迭代中确定出的损失,确定该终端在执行本次迭代时向所述服务器发送的梯度的数量,作为目标数量。
可选地,所述第一种装置还可以包括第一加密模块1112。第一加密模块1112配置为对待训练的模型的参数进行加密,得到加密后的模型。
可选地,所述第一种装置还可以包括待训练的模型发送模块1114。待训练的模型发送模块1114配置为将加密后的模型发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端根据所述加密后的模型,得到待训练的模型。
可选地,所述第一种装置还可以包括第一扁平化处理模块1110。第一扁平化处理模块1110配置为针对待训练的模型的每组参数,对该组参数进行第一扁平化处理,得到该组参数对应的综合参数值;待训练的模型的每组参数是根据预设的第一分组规则,对待训练的模型的各个参数进行分组得到的
可选地,所述第一加密模块1112具体配置为针对各组参数对应的综合参数值,采用各组参数分别对应的密钥,分别地进行加密。
可选地,所述模型通过神经网络实现,所述神经网络包括多个层;任意一组参数对应于所述神经网络的一个层。
可选地,所述第一种装置还可以包括第一密钥确定模块1106。第一密钥确定模块1106配置为确定对待训练的模型的参数进行加密所需的第一密钥,所述第一密钥包括公钥和私钥。
可选地,所述第一加密模块1112具体配置为采用所述私钥对待训练的模型的参数进行加密。
可选地,所述第一种装置还可以包括公钥发送模块1108。公钥发送模块1108配置为将所述公钥发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端采用所述公钥对加密后的模型解密。
可选地,所述目标梯度是根据综合梯度值得到的;所述综合梯度值是根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别进行第二扁平化处理之后,根据所述目标数量得到的。
可选地,聚合模块1104可以包括第二恢复处理子模块、可用梯度值确定子模块11042和更新子模块11044。
第二恢复处理子模块,配置为针对于任一终端发送的目标梯度进行第二恢复处理,得到第二恢复处理结果。
可用梯度值确定子模块11042,配置为将所述若干个终端发送的对应于同一组参数的第二恢复处理结果进行聚合,得到该组参数的可用梯度值。
更新子模块11044,配置为根据所述模型的各个参数的当前值和对应的可用梯度值,更新该参数。
基于同样的思路,本说明书实施例还提供了对应于图3所示过程的用于模型联合训练的第二种装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,该第二种装置如图12所示,该第二种装置应用于参与联合训练过程的任意一个终端。
图12为本说明书实施例提供的第二种装置的结构示意图,该第二种装置可以包括以下单元和/或模块中的一个或多个:
目标数量接收模块1200,配置为接收所述服务器发送的目标数量,所述目标数量是根据待训练的模型的信息得到的;
梯度生成模块1202,配置为根据该终端本地的训练样本,得到对应于模型参数的各个梯度;
目标梯度确定模块1204,配置为在迭代的轮次大于或等于预设的目标迭代的轮次时,根据各个梯度,确定出目标数量个目标梯度;
目标梯度发送模块1212,配置为将所述目标梯度发送至所述服务器,使得所述服务器根据该终端发送的目标梯度,得到训练后的模型参数,以得到训练后的模型。
可选地,所述第二种装置还可以包括加密后的模型接收模块1206。加密后的模型接收模块1206配置为接收所述服务器发送的加密后的模型。
可选地,梯度生成模块1202具体配置为根据该终端本地的训练样本以及加密后的模型,得到对应于模型参数的各个梯度。
可选地,所述第二种装置还可以包括公钥接收模块1208。公钥接收模块1208配置为接收所述服务器发送的公钥。
可选地,梯度生成模块1202可以包括解密子模块12020和梯度生成子模块12022。
解密子模块12020,配置为采用所述公钥,对加密后的模型进行解密,得到所述模型。
梯度生成子模块12022,配置为将该终端本地的训练样本输入所述模型,根据所述模型的输出,得到对应于模型参数的各个梯度。
可选地,所述加密后的模型,是将模型参数划分为多个参数组,将每组参数第一扁平化处理为综合参数值后进行加密得到的。
可选地,解密子模块12020具体配置为采用所述公钥,对加密后的模型解密,得到各个参数组对应的综合参数值;对所述综合参数值进行第一恢复处理,恢复各个参数组,进而得到所述模型。
可选地,目标梯度确定模块1204可以包括确定第一子模块12040和确定第二子模块12042。
确定第一子模块12040,配置为在本次迭代得到的各个梯度中,确定出目标数量个最大的梯度。
确定第二子模块12042,配置为根据目标数量个最大的梯度,确定目标梯度。
可选地,确定第二子模块12042具体配置为采用预设的第二密钥对目标数量个最大的梯度进行加密,得到目标梯度。
可选地,目标梯度确定模块1204可以包括综合梯度值确定子模块和确定第三子模块。
综合梯度值确定子模块,配置为根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别扁平化为多个综合梯度值。
确定第三子模块,配置为从所述多个综合梯度值中,选择所述目标数量个最大的综合梯度值,作为所述目标梯度。
可选地,所述第二种装置还可以包括损失发送模块1210。损失发送模块1210配置为将本次迭代确定出的损失发送至所述服务器,使得所述服务器根据本次迭代确定出的损失,确定该终端在执行下一次迭代时采用的目标数量。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述任意一个模型的联合训练过程。
本说明书实施例还提出了图13所示的电子设备的示意结构图。如图13,在硬件层面,该电子设备可以包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述任意一个模型的联合训练过程。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件异或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (20)

1.一种基于隐私保护的模型联合训练方法,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述方法由所述服务器执行,所述方法包括:
根据待训练的模型的信息,确定目标数量;所述目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次时,若干个终端中的任意一个终端向所述服务器发送的梯度的数量;
针对若干个终端中的所述任意一个终端,将所述目标数量发送至该终端,使得该终端在迭代的轮次大于或等于目标迭代的轮次时,根据该终端生成的对应于所述模型的各个参数的梯度,确定出目标数量个目标梯度;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
2.根据权利要求1所述的方法,其中,所述模型的信息包括:待训练的模型的参数的数量、上一次训练待训练的模型的时间中的至少一种。
3.根据权利要求1所述的方法,其中,根据待训练的模型的信息,确定目标数量,包括:
在本次迭代的轮次大于或等于预设的目标迭代的轮次、且本次迭代未达到训练结束条件时,针对若干个终端中的每一个终端,获取该终端上一次迭代中确定出的损失;训练结束条件是根据待训练的模型的信息得到的;
根据该终端在上一次迭代中确定出的损失,确定该终端在执行本次迭代时向所述服务器发送的梯度的数量,作为目标数量。
4.根据权利要求1所述的方法,其中,根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数之前,所述方法还包括:
对待训练的模型的参数进行加密,得到加密后的模型;
将加密后的模型发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端根据所述加密后的模型,得到待训练的模型。
5.根据权利要求4所述的方法,其中,对待训练的模型的参数进行加密之前,所述方法还包括:
针对待训练的模型的每组参数,对该组参数进行第一扁平化处理,得到该组参数对应的综合参数值;待训练的模型的每组参数是根据预设的第一分组规则,对待训练的模型的各个参数进行分组得到的;
对待训练的模型的参数进行加密,包括:
针对各组参数对应的综合参数值,采用各组参数分别对应的密钥,分别地进行加密。
6.根据权利要求4所述的方法,其中,所述模型通过神经网络实现,所述神经网络包括多个层;任意一组参数对应于所述神经网络的一个层。
7.根据权利要求4所述的方法,其中,对待训练的模型的参数进行加密之前,所述方法还包括:
确定对待训练的模型的参数进行加密所需的第一密钥,所述第一密钥包括公钥和私钥;
对待训练的模型的参数进行加密,包括:
采用所述私钥对待训练的模型的参数进行加密;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数之前,所述方法还包括:
将所述公钥发送至参与所述联合训练的若干个终端中的每一个终端,使得每一个终端采用所述公钥对加密后的模型解密。
8.根据权利要求1所述的方法,其中,所述目标梯度是根据综合梯度值得到的;所述综合梯度值是根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别进行第二扁平化处理之后,根据所述目标数量得到的;
根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,包括:
针对于任一终端发送的目标梯度进行第二恢复处理,得到第二恢复处理结果;
将所述若干个终端发送的对应于同一组参数的第二恢复处理结果进行聚合,得到该组参数的可用梯度值;
根据所述模型的各个参数的当前值和对应的可用梯度值,更新该参数。
9.一种基于隐私保护的模型联合训练方法,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述方法由若干个终端中的任意一个终端执行,所述方法包括:
接收所述服务器发送的目标数量,所述目标数量是根据待训练的模型的信息得到的;
根据该终端本地的训练样本,得到对应于模型参数的各个梯度;
在迭代的轮次大于或等于预设的目标迭代的轮次时,根据各个梯度,确定出目标数量个目标梯度;
将所述目标梯度发送至所述服务器,使得所述服务器根据该终端发送的目标梯度,得到训练后的模型参数,以得到训练后的模型。
10.根据权利要求9所述的方法,其中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之前,所述方法还包括:
接收所述服务器发送的加密后的模型;
根据该终端本地的训练样本,得到对应于模型参数的各个梯度,包括:
根据该终端本地的训练样本以及加密后的模型,得到对应于模型参数的各个梯度。
11.根据权利要求10所述的方法,其中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之前,所述方法还包括:
接收所述服务器发送的公钥;
根据该终端本地的训练样本以及加密后的模型,得到对应于模型参数的各个梯度,包括:
采用所述公钥,对加密后的模型进行解密,得到所述模型;
将该终端本地的训练样本输入所述模型,根据所述模型的输出,得到对应于模型参数的各个梯度。
12.根据权利要求11所述的方法,其中,所述加密后的模型,是将模型参数划分为多个参数组,将每组参数第一扁平化处理为综合参数值后进行加密得到的;
采用所述公钥,对加密后的模型进行解密,得到所述模型包括:
采用所述公钥,对加密后的模型解密,得到各个参数组对应的综合参数值;
对所述综合参数值进行第一恢复处理,恢复各个参数组,进而得到所述模型。
13.根据权利要求9所述的方法,其中,根据各个梯度,确定出目标数量个目标梯度,包括:
在本次迭代得到的各个梯度中,确定出目标数量个最大的梯度;
根据目标数量个最大的梯度,确定目标梯度。
14.根据权利要求13所述的方法,其中,根据目标数量个最大的梯度,确定目标梯度,包括:
采用第二密钥对目标数量个最大的梯度进行加密,得到目标梯度。
15.根据权利要求9所述的方法,其中,根据各个梯度,确定出目标数量个目标梯度,包括:
根据预设的第二分组规则将所述各个参数的梯度划分为多个梯度组,将该多个梯度组分别扁平化为多个综合梯度值;
从所述多个综合梯度值中,选择所述目标数量个最大的综合梯度值,作为所述目标梯度。
16.根据权利要求13所述的方法,其中,根据该终端本地的训练样本,得到对应于模型参数的各个梯度之后,所述方法还包括:
将本次迭代确定出的损失发送至所述服务器,使得所述服务器根据本次迭代确定出的损失,确定该终端在执行下一次迭代时采用的目标数量。
17.一种基于隐私保护的模型联合训练装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述装置应用于所述服务器,所述装置包括:
目标数量确定模块,配置为根据待训练的模型的信息,确定目标数量;所述目标数量是在迭代的轮次大于或等于预设的目标迭代的轮次时,若干个终端中的任意一个终端向所述服务器发送的梯度的数量;
目标数量发送模块,配置为针对若干个终端中的每一个终端,将所述目标数量发送至该终端,使得该终端在迭代的轮次大于或等于目标迭代的轮次时,根据该终端生成的对应于所述模型的各个参数的梯度,确定出目标数量个目标梯度;
聚合模块,配置为根据接收到的分别来自于若干个终端的各个目标梯度,得到训练后的模型参数,以得到训练后的模型。
18.一种基于隐私保护的模型联合训练装置,所述联合训练由服务器和若干个终端共同进行,所述联合训练包括若干次迭代,所述装置应用于所述终端中的任意一个,所述装置包括:
目标数量接收模块,配置为接收所述服务器发送的目标数量,所述目标数量是根据待训练的模型的信息得到的;
梯度生成模块,配置为根据该终端本地的训练样本,得到对应于模型参数的各个梯度;
目标梯度确定模块,配置为在迭代的轮次大于或等于预设的目标迭代的轮次时,根据各个梯度,确定出目标数量个目标梯度;
目标梯度发送模块,配置为将所述目标梯度发送至所述服务器,使得所述服务器根据该终端发送的目标梯度,得到训练后的模型参数,以得到训练后的模型。
19.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-17中任一项的所述的方法。
20.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-17中任一项所述的方法。
CN202011465465.6A 2020-12-14 2020-12-14 基于隐私保护的模型联合训练方法及装置 Active CN112231742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011465465.6A CN112231742B (zh) 2020-12-14 2020-12-14 基于隐私保护的模型联合训练方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011465465.6A CN112231742B (zh) 2020-12-14 2020-12-14 基于隐私保护的模型联合训练方法及装置

Publications (2)

Publication Number Publication Date
CN112231742A true CN112231742A (zh) 2021-01-15
CN112231742B CN112231742B (zh) 2021-06-18

Family

ID=74124039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011465465.6A Active CN112231742B (zh) 2020-12-14 2020-12-14 基于隐私保护的模型联合训练方法及装置

Country Status (1)

Country Link
CN (1) CN112231742B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800468A (zh) * 2021-02-18 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于隐私保护的数据处理方法、装置及设备
CN112950221A (zh) * 2021-03-26 2021-06-11 支付宝(杭州)信息技术有限公司 建立风控模型的方法和装置以及风险控制方法和装置
CN113487036A (zh) * 2021-06-24 2021-10-08 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质
CN113902473A (zh) * 2021-09-29 2022-01-07 支付宝(杭州)信息技术有限公司 业务预测系统的训练方法及装置
CN113946861A (zh) * 2021-10-14 2022-01-18 中国电信股份有限公司 推荐模型的训练方法、信息推荐方法、装置、设备及介质
CN114862556A (zh) * 2022-05-19 2022-08-05 中国银行股份有限公司 一种信用评估方法及装置
CN115514557A (zh) * 2022-09-21 2022-12-23 成都卫士通信息产业股份有限公司 一种数据分类分级方法、系统、设备及计算机存储介质
CN116611536A (zh) * 2023-07-19 2023-08-18 支付宝(杭州)信息技术有限公司 模型训练方法及装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401552A (zh) * 2020-03-11 2020-07-10 浙江大学 一种基于调整批量大小与梯度压缩率的联邦学习方法和系统
CN111553483A (zh) * 2020-04-30 2020-08-18 同盾控股有限公司 基于梯度压缩的联邦学习的方法、装置及系统
CN111784002A (zh) * 2020-09-07 2020-10-16 腾讯科技(深圳)有限公司 分布式数据处理方法、装置、计算机设备及存储介质
CN112015749A (zh) * 2020-10-27 2020-12-01 支付宝(杭州)信息技术有限公司 基于隐私保护更新业务模型的方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401552A (zh) * 2020-03-11 2020-07-10 浙江大学 一种基于调整批量大小与梯度压缩率的联邦学习方法和系统
CN111553483A (zh) * 2020-04-30 2020-08-18 同盾控股有限公司 基于梯度压缩的联邦学习的方法、装置及系统
CN111784002A (zh) * 2020-09-07 2020-10-16 腾讯科技(深圳)有限公司 分布式数据处理方法、装置、计算机设备及存储介质
CN112015749A (zh) * 2020-10-27 2020-12-01 支付宝(杭州)信息技术有限公司 基于隐私保护更新业务模型的方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卢效峰等: "《一种面向边缘计算的高效异步联邦学习机制》", 《计算机研究与发展》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800468A (zh) * 2021-02-18 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于隐私保护的数据处理方法、装置及设备
CN112800468B (zh) * 2021-02-18 2022-04-08 支付宝(杭州)信息技术有限公司 一种基于隐私保护的数据处理方法、装置及设备
CN112950221A (zh) * 2021-03-26 2021-06-11 支付宝(杭州)信息技术有限公司 建立风控模型的方法和装置以及风险控制方法和装置
CN113487036A (zh) * 2021-06-24 2021-10-08 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质
CN113487036B (zh) * 2021-06-24 2022-06-17 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质
CN113902473A (zh) * 2021-09-29 2022-01-07 支付宝(杭州)信息技术有限公司 业务预测系统的训练方法及装置
CN113946861A (zh) * 2021-10-14 2022-01-18 中国电信股份有限公司 推荐模型的训练方法、信息推荐方法、装置、设备及介质
CN114862556A (zh) * 2022-05-19 2022-08-05 中国银行股份有限公司 一种信用评估方法及装置
CN115514557A (zh) * 2022-09-21 2022-12-23 成都卫士通信息产业股份有限公司 一种数据分类分级方法、系统、设备及计算机存储介质
CN116611536A (zh) * 2023-07-19 2023-08-18 支付宝(杭州)信息技术有限公司 模型训练方法及装置、电子设备及存储介质
CN116611536B (zh) * 2023-07-19 2023-09-29 支付宝(杭州)信息技术有限公司 模型训练方法及装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112231742B (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112231742B (zh) 基于隐私保护的模型联合训练方法及装置
CN109886687B (zh) 一种基于区块链实现安全多方计算的结果验证方法及系统
CN102687184B (zh) 代理计算系统、方法及代理计算委托装置
CN112329072B (zh) 一种基于安全多方计算的模型联合训练方法
CN111404943B (zh) 数据的处理方法、装置、电子设备及计算机可读存储介质
CN110391895B (zh) 数据预处理方法、密文数据获取方法、装置和电子设备
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
CN111143862B (zh) 数据处理方法、查询方法、装置、电子设备和系统
CN114143311B (zh) 一种基于区块链的隐私保护方案聚合方法及装置
CN106230578A (zh) 一种基于加权处理的三维Lorenz映射控制的二进制安全算术编码方法
CN115766159A (zh) 隐私数据处理方法、装置及电子设备
CN110213050B (zh) 密钥生成方法、装置及存储介质
CN110611568B (zh) 基于多种加解密算法的动态加解密方法、装置、及设备
CN116151627B (zh) 一种业务风控的方法、装置、存储介质及电子设备
Yang et al. Secure and efficient parallel hash function construction and its application on cloud audit
CN116401683A (zh) 一种模型训练方法、装置、存储介质以及电子设备
CN113935737B (zh) 基于区块链的随机数生成方法及装置
CN115276952B (zh) 一种隐私数据处理方法及装置
CN117792602A (zh) 一种基于多方全同态加密的隐私数据处理方法
CN116629381A (zh) 一种联邦迁移学习方法、装置、存储介质及电子设备
CN116319827A (zh) 消息广播方法及装置
CN113902443A (zh) 数据处理方法、装置和服务器
CN113612799A (zh) 一种基于sm2算法的区块链哈希加密方法及装置
CN118839775B (zh) 一种基于llm模型的推理计算方法和装置
Sabonchi et al. Ensuring Information Security in Smart Door Lock Systems Using the Cuckoo Search Algorithm.

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40044754

Country of ref document: HK