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

联合更新模型的方法、装置及系统与流程

2022-02-19 23:52:04 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及计算机技术领域,尤其涉及联合更新模型的方法、装置及系统。


背景技术:

2.计算机技术的发展,使得机器学习在各种各样的业务场景中得到越来越广泛的应用。联邦学习是一种在保护隐私数据情况下进行联合建模的方法。例如,企业与企业之间需要进行合作安全建模,可以进行联邦学习,以便在充分保护企业数据隐私的前提下,使用各方的数据对数据处理模型进行协作训练,从而更准确、有效地处理业务数据。在联邦学习场景中,各方例如可以商定模型结构(或约定模型)后,各自使用隐私数据在本地进行训练,并将模型参数使用安全可信的方法进行聚合,最后各方根据聚合后模型参数改进本地模型。联邦学习实现在隐私保护基础上,有效打破数据孤岛,实现多方联合建模。


技术实现要素:

3.本说明书一个或多个实施例描述了一种联合更新模型的方法及装置,用以解决背景技术提到的一个或多个问题。
4.根据第一方面,提供一种联合更新模型的方法,用于服务方和k个训练成员联合训练模型w的过程,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定,子模型w
s1
至w
sk
与k个训练成员一一对应,训练成员i持有样本数据x
i
;在当前训练周期,所述方法包括:各个训练成员分别与服务方进行以下交互操作,从而更新本地的各个待定参数:训练成员i利用本地子模型w
ci
处理本地样本数据x
i
,并将得到的中间结果l
i
发送至服务方;服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
中各个待定参数的梯度,并向相应训练成员i反馈中间结果l
i
的梯度数据g
i
;训练成员i根据梯度数据g
i
,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度,更新本地的各个待定参数;服务方在基于各个子模型w
s1
至w
sk
中待定参数的梯度,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

5.在一个实施例中,训练成员i还持有样本数据x
i
的标签数据y
i
;所述服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
中各个待定参数的梯度包括:服务方基于子模型w
si
对中间结果l
i
的处理,得到关于样本数据x
i
的预测结果y
i
并反馈给训练成员i;训练成员i基于预测结果y
i
与标签数据y
i
的对比,确定模型损失,并将模型损失针对预测结果y
i
的梯度反馈至服务方;服务方基于训练成员i的反馈更新子模型w
si
中各个待定参数的梯度。
6.在一个实施例中,训练成员i持有样本数据x
i
的标签数据y
i
,以及子模型w'
ci
;所述服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
中各个待定参数的梯度包括:服务方基于子模型w
si
对中间结果l
i
的处理,得到关于样本数据x
i
进一步的中间结果l
si
并反馈
给训练成员i;训练成员i基于子模型w'
ci
对中间结果l
si
的处理得到预测结果y
i
,并将预测结果y
i
与标签数据y
i
进行对比,从而确定模型损失,以向服务方反馈模型损失针对中间结果l
si
的梯度数据;服务方基于模型损失针对中间结果l
si
的梯度数据更新子模型w
si
中各个待定参数的梯度。
7.在一个实施例中,所述对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s
包括:利用加权平均方式对子模型w
s1
至w
sk
中各个待同步参数进行同步,其中,单个子模型w
si
中各个待同步参数的加权权重与相应训练成员i使用的样本数数据x
i
的条数n
i
正相关;利用各个待同步参数的同步值,确定子模型w
s
中的各个待定参数。
8.在一个实施例中,样本数据x
i
的条数n
i
由服务方对中间结果l
i
的检测确定。
9.根据第二方面,提供一种联合更新模型的方法,由和k个训练成员联合训练模型的服务方执行,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定,子模型w
s1
至w
sk
与k个训练成员一一对应;在当前训练周期,所述方法包括:
10.针对单个子模型w
si
执行以下更新操作:从相应训练成员i接收其利用本地子模型w
ci
处理本地样本数据x
i
得到的中间结果l
i
;基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
的各个待定参数的梯度数据,以更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;向训练成员i反馈相应中间结果l
i
的梯度数据g
i
,以供训练成员i根据梯度数据g
i
更新本地子模型w
ci
的待定参数;在针对各个子模型w
s1
至w
sk
均完成本轮次的更新操作的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

11.在一个实施例中,所述基于子模型w
si
对相应中间结果l
i
的处理,确定子模型w
si
的各个待定参数的梯度数据包括:基于子模型w
si
对中间结果l
i
的处理,得到关于相应样本数据的预测结果y
i
并反馈给训练成员i,以供训练成员i基于预测结果y
i
与相应标签数据y
i
的对比,确定模型损失针对预测结果y
i
的梯度反馈至服务方;基于模型损失针对预测结果y
i
的梯度确定相应子模型w
si
中各个待定参数的梯度。
12.在一个实施例中,所述对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s
包括:利用加权平均方式对各个子模型w
s1
至w
sk
中各个待同步参数进行同步,其中,单个子模型w
si
中各个待同步参数的加权权重与相应训练成员i使用的样本数数据x
i
的条数n
i
正相关;利用各个待同步参数的同步值,确定子模型w
s
中的各个待定参数。
13.在一个实施例中,样本数据x
i
的条数n
i
由服务方对中间结果l
i
的检测确定。
14.根据第三方面,提供一种联合更新模型的方法,由和k个训练成员联合训练模型w的服务方执行,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定;在当前训练周期,所述方法包括:接收训练成员i利用本地子模型处理本地样本数据x
i
得到的中间结果l
i
;将中间结果l
i
分配给子模型w
sj
,并基于子模型w
sj
对中间结果l
i
的处理,确定子模型w
sj
中各个待定参数的梯度数据及中间结果l
i
的梯度数据,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;向训练成员i反馈中间结果l
i
的梯度数据,以供训练成员i根据中间结果l
i
的梯度数据更新本地子模型w
ci
的待定参数;在基于各个子模型w
s1
至w
sk
中待定参数的梯度数据,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1

至w
sk
中的待定参数进行同步以确
定聚合的子模型w
s

15.根据第四方面,提供一种联合更新模型的系统,包括用于联合训练模型w的服务方和k个训练成员,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定,子模型w
s1
至w
sk
与k个训练成员一一对应,训练成员i持有样本数据x
i
;其中:
16.各个训练成员分别配置为与服务方进行以下交互操作,从而更新本地的各个待定参数:训练成员i利用子模型w
ci
处理样本数据x
i
,并将得到的中间结果l
i
发送至服务方;服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
中各个待定参数的梯度,并向训练成员i反馈中间结果l
i
的梯度数据g
i
,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;训练成员i根据梯度数据g
i
,更新本地的各个待定参数;
17.服务方还配置为,在基于各个子模型w
s1
至w
sk
中待定参数的梯度,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

18.根据第五方面,提供一种联合更新模型的装置,设于和k个训练成员联合训练模型w的服务方,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定,子模型w
s1

w
sk
与k个训练成员一一对应;所述装置包括同步单元以及对应于子模型w
s1
至w
sk
的k个更新单元,其中:
19.在单个训练周期,单个更新单元配置为针对单个子模型w
si
执行以下更新操作:从相应训练成员i接收其利用本地子模型w
ci
处理本地样本数据x
i
得到的中间结果;基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
的各个待定参数的梯度数据,以更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;向训练成员i反馈相应中间结果l
i
的梯度数据g
i
,以供训练成员i根据梯度数据g
i
更新本地子模型w
ci
的待定参数;
20.所述同步单元配置为:在针对各个子模型w
s1
至w
sk
均完成本轮次的更新操作的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

21.根据第六方面,提供一种联合更新模型的装置,设于和k个训练成员联合训练模型的服务方,所述模型w包括所述k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定;所述装置包括:
22.接收单元,配置为接收训练成员i利用本地子模型处理本地样本数据x
i
得到的中间结果l
i

23.处理单元,配置为将中间结果l
i
分配给子模型w
sj
,并基于子模型w
sj
对中间结果l
i
的处理,确定子模型w
sj
中各个待定参数的梯度数据及中间结果l
i
的梯度数据,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;
24.反馈单元,配置为向训练成员i反馈中间结果l
i
的梯度数据,以供训练成员i根据中间结果l
i
的梯度数据更新本地子模型w
ci
的待定参数;
25.同步单元,配置为在完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待定参数进行同步以确定聚合的子模型w
s

26.根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面或第三方面的方法。
27.根据第八方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面或第三方面的方法。
28.通过本说明书实施例提供的方法、装置和系统,基于训练成员的数据构成水平切分,且模型在训练成员和服务方切分成两部分的情形,由服务方将服务方切分得到的子模型配置为多个可同步聚合的子模型。这样,在单个训练周期,服务方配置的多个可同步聚合的子模型可以与各个训练成员一一对应,单个训练成员上的子模型和服务方的单个子模型串联相当于联合训练的模型。而服务方在各个子模型中待定参数的梯度或待定参数更新完成后,可以对待定参数的梯度或待定参数进行同步,以聚合为服务方切分得到的子模型。如此,可以使得各个训练成员可以并行计算,大大减少各个训练成员之间计算的相互等待时间,提高联合训练模型的效率。
附图说明
29.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
30.图1是在联合更新模型中各个训练成员的样本数据呈水平切分且模型在水平方向上切分的实施架构示意图;
31.图2示出本说明书一个实施例的联合训练模型的实施架构示意图;
32.图3示出本说明书一个实施例的联合训练模型的流程示意图;
33.图4示出本说明书一个实施例的由服务方执行的联合训练模型的流程示意图;
34.图5示出本说明书一个实施例的设于服务方的联合训练模型的装置示意性框图;
35.图6示出本说明是一个实施例的设于服务方的联合训练模型的装置示意性框图。
具体实施方式
36.下面结合附图,对本说明书提供的方案进行描述。
37.联邦学习(federated learning),又可以称为联邦机器学习、联合学习、联盟学习等。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
38.具体地,假设企业a、企业b各自建立一个任务模型,单个任务可以是分类或预测,而这些任务也已经在获得数据时由各自用户的认可。然而,由于数据不完整,例如企业a缺少标签数据、企业b缺少用户特征数据,或者数据不充分,样本量不足以建立好的模型,那么在各端的模型有可能无法建立或效果并不理想。联邦学习要解决的问题是如何在a和b各端建立高质量的机器学习模型,该模型的训练兼用a和b等各个企业的数据,并且各个企业的自有数据不被其他方知晓,即在不违反数据隐私法规情况下,建立一个共有模型。这个共有模型就好像各方把数据聚合在一起建立的最优模型一样。这样,建好的模型在各方的区域
仅为自有的目标服务。
39.联邦学习的各个机构可以称为训练成员,各个训练成员分别可以持有不同的业务数据,还可以通过设备、计算机、服务器等参与机器学习模型的联合训练。这里的业务数据例如可以是字符、图片、语音、动画、视频等各种数据。通常,各个训练成员持有的业务数据具有相关性,各个训练成员对应的业务方也可以具有相关性。例如,涉及金融业务的多个业务方中,业务方1为银行,为用户提供储蓄、贷款等业务,可以持有用户的年龄、性别、收支流水、贷款额度、存款额度等数据,业务方2为p2p平台,可以持有用户的借贷记录、投资记录、还款时效等数据,业务方3为购物网站,持有用户的购物习惯、付款习惯、付款账户等数据。再例如,涉及医疗业务的多个业务方中,各个业务方可以是各个医院、体检机构等,如业务方1为医院a,对应用户年龄、性别、症状、诊断结果、治疗方案、治疗结果等等诊疗记录作为本地业务数据,业务方2可以为体检机构b,对应用户年龄、性别、症状、体检结论等等的体检记录数据,等等。单个训练成员可以持有一个业务的业务数据,也可以持有多个业务方的业务数据。
40.联邦学习可以由两个或两个以上的训练成员共同训练业务模型。这里的业务模型可以用于处理业务数据,得到相应的处理结果。具体处理什么样的业务数据,得到什么样的业务处理结果,根据实际需求而定。例如,业务数据可以是用户金融相关的数据,得到的业务处理结果为用户的金融信用评估结果,再例如,业务数据可以是用户的客服对话数据,得到的业务处理结果为客服答案的推荐结果,等等。业务数据的形式也可以是文字、图片、动画、音频、视频等各种形式的数据。各个训练成员分别可以利用训练好的业务模型对本地业务数据进行本地业务处理。
41.可以理解,联邦学习可以分为横向联邦学习(特征对齐)、纵向联邦学习(样本对齐)与联邦迁移学习。本说明书提供的实施架构可以是用于各种联邦学习架构,尤其适用于横向联邦学习,即,各个业务方分别提供部分独立样本。
42.如图1所示,在一种数据呈水平切分的实施架构下,模型在水平方向上进行切分。如图1所示。各个分别持有部分训练样本训练成员例如记为alice,服务方记为bob。联邦学习过程中联合更新的模型包括训练成员上的子模型和服务方子模型。其中,各个训练成员分别对应的各个子模型具有一致的结构,例如一致的神经网络层数,各层具有数量相同或相差不大的参数数量,从而具有基本一致的模型参数。可以理解的是,虽然图1以神经网络为例进行说明,但实践中各个训练成员联合训练的模型还可以为线性模型、逻辑回归模型等等可以通过梯度更新待定参数的机器学习模型。
43.为了减少各个训练成员之间因数据差距等因素导致的模型参数发散,常规技术采用在联合训练模型过程中训练成员上的子模型的参数在各个训练成员之间相互传递的串行模式进行联合学习。以图1示出的神经网络为例,alice1通过本地子模型处理本地训练样本,得到当前的中间结果l1,并通过前向传递将l1传递给bob。bob通过服务方子模型处理中间结果l1,并得到中间结果l1的梯度反馈至alice1。alice1利用中间结果l1的梯度更新训练成员的子模型的待定参数,更新后的待定参数可以称为当前参数。当前参数由alice1传递至bob端。bob将当前参数传递至下一个训练成员,例如alice2。alice2利用当前参数更新本地子模型,并执行与alice1类似的以上操作,将更新后的当前参数反馈至bob,依次类推。以上训练过程在各个训练成员间循环执行。可选地,单个训练成员还可以执行多个更新周期,
在此不做限定。
44.根据以上描述的训练原理可知,在这种架构下,各个训练成员之间需要相互等待计算过程,导致训练效率降低。如果训练成员子模型的待定参数采用安全多方计算在各个训练成员之间传递,则由于安全多方计算利用密码学算法对明文数据进行加密计算,在进行每层神经网络计算时都需进行大量的数据传输(如密钥、计算的中间结果等)和加解密计算,训练时间仍然较长,对于深层神经网络等包含大量参数的模型的联合训练不太友好。
45.为此,本说明书提出一种实施架构,在服务方设置多个服务方子模型,构成并行分布式的联合训练,并且为了防止模型发散,经过一定更新周期,对服务方的各个待定参数进行同步聚合。在每个更新周期都对服务方的各个待定参数进行同步的情况下,还可以利用待定参数的梯度数据的同步达到待定参数同步的目的。
46.图2是本说明书的技术构思下的实施架构示意图。如图2所示,在图1架构的基础上,将服务方bob所持有的的子模型分裂为k个完全一样的子模型。bob端的这k个子模型分别可以与k个训练成员(如alice)一一对应。服务方bob分裂的k个子模型可以配置在分布式系统、服务器集群或者计算机的并行任务等中,以能够进行并行执行相关计算。
47.进一步地,各个训练成员alice分别与相应的配置有相应服务方子模型之一的分布式设备或者并行任务之一等进行交互,向其发送前向传输的中间结果,并从接收其反馈的相应中间结果的梯度数据,从而更新本地的子模型。而bob端可以基于各个分裂的子模型对中间结果的处理得到本地待定参数的梯度。bob端可以对各个子模型的本地待定参数的梯度进行同步聚合,也可以对基于梯度更新后的待定参数进行同步,从而聚合得到服务方bob所持有的子模型。
48.如此,在图2的实施架构下,保留了图1中避免模型发散的初衷,同时各个训练成员之间又可以并行计算,从而大大缩减了等待时间,提高联合训练模型的效率。
49.下面详细描述本说明书的技术构思。
50.请参考图3所示,给出了一个实施例的联合更新模型的流程图。执行该联合更新模型的流程的系统可以通过服务方和k个训练成员实现,单个训练成员或服务方可以是任何具有计算、处理能力的设备、平台或设备集群。服务方例如可以是可信第三方等。
51.在本说明书的实施架构下,各个训练成员可以各自持有部分样本数据,例如各持有1000条样本数据。单个训练成员可以持有训练样本的全部特征以及标签数据,也可以仅持有样本的特征数据,而标签数据由服务方持有,在此不做限定。
52.可以理解,联合更新模型的过程中,可以有多个迭代周期,在初始化的模型基础上进行迭代。在一个实施例中,初始时,可以由服务方确定整体模型并初始化模型参数,然后拆分为服务方部分的子模型,例如记为w
s
,以及训练成员部分的子模型,例如记为w
c
,并将练成员部分的子模型w
c
下发部分给各个训练成员,各个训练成员得到的子模型例如记为w
ci
,其中i=1,2
……
k。在另一个实施例中,初始时也可以由各个训练成员协商训练成员方的子模型结构,由各个训练成员在本地构建子模型w
ci
,并协商或由服务方初始化各个模型参数(包括各个待定参数),服务方根据各个训练成员的协商,或根据各个训练成员构建的子模型w
ci
构建服务方模型w
s
。服务方设置k个子模型,分别记为w
s1
至w
sk
,并各自与各个子模型w
c1
至w
ck
一一对应构成完整模型。k个子模型w
s1
至w
sk
可以在各个周期以同步聚合为服务方子模型w
s
。最终训练完成后,可以使用单个子模型w
s
,恢复成图1所示的架构。
53.如图3所示,联合更新模型的流程具体可以包括以下步骤:步骤301,各个训练成员分别与服务方进行交互操作,从而更新本地的各个待定参数;以服务方和训练成员i之间的交互过程为例的交互操作包括:步骤3011,训练成员i利用子模型w
ci
处理样本数据x
i
,并将得到的中间结果l
i
发送至服务方;步骤3012,服务方基于子模型w
si
对中间结果l
i
的处理,更新子模型中各个待定参数的梯度或利用梯度更新各个待定参数,并向训练成员i反馈中间结果l
i
的梯度数据g
i
,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;步骤3013,训练成员i根据梯度数据g
i
,更新本地的各个待定参数;步骤302,服务方在基于各个子模型w
s1
至w
sk
中待定参数的梯度,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中各个待同步参数进行同步以确定聚合的子模型w
s

54.首先,在步骤301中,各个训练成员分别与服务方进行交互操作,从而更新本地的各个待定参数。可以理解,该步骤中,各个训练成员与服务方的交互操作可以并行进行。以下以训练成员i为例进行描述,其中,i为1

k之间的任意整数。
55.在步骤3011中,训练成员i利用本地子模型w
ci
处理本地样本数据x
i
,并将得到的中间结果l
i
发送至服务方。这里的中间结果是训练成员本地的子模型对本地样本数据的处理结果。中间结果相当于单个训练成员对本地样本数据进行类似于编码、加密、特征提取之类的预处理得到的表示本地数据的结果。该结果之所以成为中间结果,是因为其还需要服务方子模型的进一步处理。
56.训练成员i的样本集中的样本数据可以包括特征数据x和标签y,也可以只包含特征数据x,而标签数据y由服务方持有,在此不做限定。这里的样本数据x
i
可以理解为训练成员i从本地样本集中获取的当前批次的样本数据。训练成员i本地的子模型w
ci
对样本数据x
i
的处理结果可以是向量、矩阵等形式。在一个简单例子中,假设子模型w
ci
具有参数矩阵w
ci
,其对样本数据x
i
的处理结果为:l
i
=w
ci
×
x
i
,或者是l
i
=g(w
ci
×
x
i
),等等,其中g表示softmax、relu之类的激活函数。
57.训练成员i可以将中间结果l
i
发送至服务方。
58.然后,在步骤3012中,服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型中各个待定参数的梯度,并向相应训练成员i反馈中间结果l
i
的梯度数据g
i
。可以理解,服务方可以将中间结果l
i
分配至配置有子模型w
si
的模块或设备进行处理,得到关于样本数据x
i
的预测结果。基于预测结果和样本标签的对比,确定模型损失,为了向模型损失减小方向调整模型中的待定参数,可以检测模型损失针对各个待定参数的梯度。
59.服务方可以利用子模型w
si
可以对中间结果l
i
进行更深层次的处理,例如经过深度神经网络的处理,挖掘更高阶的特征,得到更准确的预测结果。例如一个具体例子中子模型w
si
中的参数为w
si
及b
si
、a
si
等等,子模型w
si
对中间结果l
i
进行处理得到的预测结果y
i
可以为y
i
=g3[g1(g2(w
ci
×
x
i
) a
si
) b
si
],等等,其中,g1、g2、g3均为激活函数。实践中,预测结果可以是向量形式,也可以是数值形式,在此不再赘述。
[0060]
在标签数据y
i
由服务方持有的情况下,服务方可以得到预测结果y
i
,将标签数据y
i
和预测结果y
i
对比,确定模型损失。在标签数据y
i
由训练成员i持有的情况下,服务方还可以将预测结果y
i
发送给训练成员i,由训练成员i将标签数据y
i
和预测结果y
i
对比,确定模型损失,并反馈至服务方。模型损失可以根据实际业务需求确定,例如可以是均方差、范数、交叉
熵等各种合理的形式。在当前批次的样本数据涉及多条训练样本的情况下,模型损失还可以是各条样本数据对应的损失之和。
[0061]
在可选的实现方式中,在标签数据y
i
由训练成员i持有的情况下,训练成员i上还可以设置有另一部分子模型w'
ci
,服务方基于w
ci
对中间结果l
i
的处理,得到进一步的中间结果l
si
并反馈至训练成员i,由训练成员i确定预测结果y
i
,并将标签数据y
i
和预测结果y
i
对比,确定模型损失。
[0062]
可以理解,模型损失可以看作预测结果y
i
的函数,在利用模型损失确定待定参数或中间结果的梯度时,需要先利用模型损失对预测结果y
i
取偏导数,然后利用预测结果y
i
对待定参数或中间结果的偏导数与模型损失对预测结果y
i
的偏导数的乘积,确定相应待定参数或中间结果的梯度。因此,在一些实施例中,训练成员i向服务方反馈的不是模型损失值,而是模型损失对预测结果y
i
的偏导数值(即梯度),或者模型损失对服务方从传递的中间结果l
si
的偏导数值。以模型损失为均方差为例,模型损失例如记为|y
i

y
i
|2/n,则训练成员i向服务方反馈模型损失对于y
i
的梯度2|y
i

y
i
|/n的值。
[0063]
服务方根据以上情形下的模型损失或训练成员反馈的梯度,不仅可以确定子模型w
si
中各个待定参数的梯度,还可以确定中间结果l
i
的梯度(例如记为g
i
)。可以理解,在确定待定参数的梯度时,中间结果l
i
可以看作已知量,而确定中间结果l
i
的梯度时,相关待定参数可以看作已知量。服务方(或配置相应子模型w
si
的模块或设备)可以将中间结果l
i
的梯度数据g
i
反馈至训练成员i。其中,针对子模型w
si
中各个待定参数的梯度可以由相应计算机模块或子设备用于更新子模型w
si
中相应的各个待同步参数。单个待同步参数为相应待定参数或其梯度。
[0064]
接着,在步骤3013中,训练成员i根据梯度数据g
i
,更新本地的各个待定参数。训练成员i可以通过中间结果l
i
的梯度数据g
i
,进一步确定本地子模型w
ci
中各个待定参数的梯度。进一步地,训练成员i还可以通过诸如梯度下降法、牛顿或其他可以沿梯度方向更新待定参数的方法,更新本地的各个待定参数。
[0065]
通过以上步骤3011

3013,各个训练成员分别和服务方进行交互,该过程可以并行执行,从而减少相互等待。其中,服务方的各个子模型w
s1
至w
sk
中的待同步参数各自通过相应梯度进行更新。
[0066]
进一步地,在步骤302中,服务方在基于各个子模型w
s1
至w
sk
中待定参数的梯度,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s
。可以理解,为了避免模型发散,保持图1一致的思想,子模型w
s1
至w
sk
中各个待同步参数在各个周期的训练过程中均可以进行同步。由于在子模型w
si
确定服务方子模型中各个待定参数的梯度后,还可以利用梯度对待定参数进行更新,因此,待同步参数可以是子模型w
s1
至w
sk
中待定参数的梯度数据,也可以是根据梯度数据更新后的待定参数,在此不做限定。
[0067]
服务方对子模型w
s1
至w
sk
中待同步参数进行同步,可以通过求均值、中位数、最大值、最小值、加权平均等方式实现。其中,加权平均方式中的权值可以预先设定,也可以按照预定规则计算确定。在一个可选的实现方式中,在通过加权平均方式进行同步的情况下,可以通过权重与相应训练成员在当前周期使用的训练样本数量正相关的预定规则确定单个子模型的待同步参数对应的权重。假设单个训练成员当前使用的样本数据x
i
包括n
i
条训练
样本,则同步过程例如可以为:w
s

i
表示与子模型w
si
对应的待同步参数。其中,可以由训练成员i在传输中间结果l
i
时一并传输给服务方,也可以由服务方根据中间结果l
i
检测确定,在此不做限定。其中,由服务方根据中间结果l
i
检测确定可以减少数据传输,减轻数据传输压力。此时,可以通过训练成员向服务方传递的数据量,或者矩阵维度等,检测训练样本条数。例如,训练成员i对单条训练样本的输出为t维向量,则一个s
×
t维的矩阵可能代表了s条训练样本的中间结果。
[0068]
如此,在各个周期,服务方都可以对各个子模型w
s1
至w
sk
进行参数同步,从而保持服务方子模型的统一性。服务方利用同步后的待同步参数同步各个子模型w
s1
至w
sk
的待定参数,相当于聚合出针对服务方(如bob)本地模型部分的一个全局的子模型w
s

[0069]
在一个可能的设计中,可以不对k个训练成员上的子模型w
c1
至w
ck
同步,以保持其各自针对本地数据特点进行处理的优势。在另一个可能的设计中,各个训练成员还可以在各个周期对各个子模型w
c1
至w
ck
通过多方安全计算进行数据同步,从而保证模型的一致性。
[0070]
前文针对图3的描述从训练成员和服务方交互的角度描述了本说明书的技术构思。从服务方的角度,在和k个训练成员联合训练机器学习模型的情况下,假设k个训练成员中的训练成员i,持有样本数据x
i
,以及子模型w
ci
,其中i为1

k之间的正整数,k为正整数,服务方对应本地全局的子模型w
s
。模型w可以包括k个训练成员中的训练成员i上的子模型w
ci
以及服务方的子模型w
s
。在各个训练成员上的子模型w
c1
至w
ck
一致的情况下,可以记为w
c
,则模型w可以包括训练成员子模型w
c
及服务方的子模型w
s
。子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定。换句话说,在仅考虑服务方的学习架构的情形下,子模型w
s1
至w
sk
类似于水平联邦学习场景下的局部模型,子模型w
s
类似于水平联邦学习场景下的全局模型。在单个周期,联合更新模型的流程可以包括:
[0071]
针对单个子模型w
si
执行以下更新操作:从相应训练成员i接收其利用本地子模型w
ci
处理本地样本数据x
i
得到的中间结果l
i
;基于子模型w
si
对相应中间结果l
i
的处理,确定子模型w
si
的各个待定参数的梯度数据,以更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;向相应训练成员i反馈中间结果l
i
的梯度数据g
i
,以供相应训练成员i根据梯度数据g
i
更新本地子模型w
ci
的待定参数;
[0072]
在针对各个子模型w
s1
至w
sk
均完成本轮次的更新操作的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

[0073]
根据一个可能的设计,服务方的k个子模型w
s1
至w
sk
不与训练成员设置固定的对应关系,并且子模型w
s1
至w
sk
与训练成员之间的对应关系在各个周期还可以完全不同。此时,服务方执行的流程还可以如图4所示:
[0074]
步骤401,接收训练成员i利用本地子模型w
ci
处理本地样本数据x
i
得到的中间结果l
i

[0075]
步骤402,将中间结果l
i
分配给子模型w
sj
,并子设备j基于子模型w
sj
对中间结果l
i
的处理,确定子模型w
sj
中各个待定参数的梯度数据及中间结果l
i
的梯度数据;其中,j是1

k之间的正整数,j和i可以相同或不同,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;
[0076]
步骤403,向训练成员i反馈中间结果l
i
的梯度数据,以供训练成员i根据中间结果
l
i
的梯度数据更新本地子模型w
ci
的待定参数;
[0077]
步骤404,在基于各个子模型w
s1
至w
sk
中待定参数的梯度数据,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中各个待定参数的梯度或利用梯度更新的各个待定参数进行同步,从而聚合得到子模型w
s

[0078]
其中,服务方执行的流程和各个训练成员执行的流程相互配合,图3中交互流程中关于方执行流程的描述同样适应于图4及以上服务方执行的流程,在此不再赘述。
[0079]
回顾以上过程,联合训练模型过程中,基于训练成员的数据构成水平切分,且模型在训练成员和服务方切分成两部分的情形,由服务方将服务方切分得到的子模型w
s
配置为多个可同步聚合的子模型,以得到多个一致的服务方子模型,如w
s1
至w
sk
。这样,在单个训练周期,服务方的子模型w
s1
至w
sk
可以分别与k个训练成员对应以构成要联合训练的模型w。
[0080]
在单个训练周期,单个训练成员通过本地子模型处理本地样本数据,并将处理得到的中间结果传递至服务方。由服务方通过相应子模型处理该中间结果,从而得到该子模型中待定参数的梯度,以及该中间结果的梯度。相应训练成员根据相应中间结果的梯度更新本地待定参数。而服务方在各个子模型中待定参数的梯度或待定参数更新完成后,可以对待定参数的梯度或待定参数进行同步。这样,由于各个训练成员的训练过程可以并行进行,从而可以大大减少各个训练成员之间计算的相互等待时间,提高联合训练模型的效率。
[0081]
根据另一方面的实施例,本说明书还提供一种联合更新模型的系统,包括用于联合训练模型w的服务方和k个训练成员。模型w可以包括k个训练成员中任一个训练成员i上的子模型w
ci
以及服务方的子模型w
s
,子模型w
s
由服务方的k个子模型w
s1
至w
sk
以同步方式聚合确定。。在单个训练周期:
[0082]
各个训练成员分别配置为与服务方进行以下交互操作,从而更新本地的各个待定参数:训练成员i利用子模型w
ci
处理样本数据x
i
,并将得到的中间结果l
i
发送至服务方;服务方基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
中各个待定参数的梯度,并向训练成员i反馈中间结果l
i
的梯度数据g
i
,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;训练成员i根据梯度数据g
i
,更新本地的各个待定参数;
[0083]
服务方还配置为,在基于各个子模型w
s1
至w
sk
中待定参数的梯度,完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

[0084]
更进一步地,服务方还可以设置相应联合更新模型的装置。
[0085]
根据一个可能的设计,w
s1
至w
sk
可以设置有与k个训练成员一一对应。例如服务方将k个子模型w
s1
至w
sk
分配至k个分布式设备或服务器集群中的k个服务器设备,k个分布式设备或服务器集群中的k个服务器设备可以单独与训练成员通讯等情况下,可以设置k个分布式设备或服务器集群中的k个服务器设备与k个训练成员一一对应,即w
s1
至w
sk
与k个训练成员一一对应。此时,各个分布式设备或服务器集群中的k个服务器设备可以对应有联合更新模型的更新单元,而服务方还设置有同步单元。在服务方将k个子模型w
s1
至w
sk
分配给本地的k个可并行执行的并行任务的情况下,单个并行任务可以被配置为与k个训练成员一一对应,则w
s1
至w
sk
与k个训练成员一一对应。此时,各个并行任务均可以调用服务方设置的更新单元,并利用同步单元对各个并行任务中的更新结果进行同步。
[0086]
具体地,如图5所示,是一个实施例的联合更新装置500。在单个训练周期,单个更新单元501配置为针对单个子模型w
si
执行以下更新操作:从相应训练成员i接收其利用本地子模型w
ci
处理本地样本数据x
i
得到的中间结果;基于子模型w
si
对中间结果l
i
的处理,确定子模型w
si
的各个待定参数的梯度数据,以更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;向训练成员i反馈相应中间结果l
i
的梯度数据g
i
,以供训练成员i根据梯度数据g
i
更新本地子模型w
ci
的待定参数;
[0087]
同步单元502配置为:在针对各个子模型w
s1
至w
sk
均完成本轮次的更新操作的情况下,对子模型w
s1
至w
sk
中的待同步参数进行同步以确定聚合的子模型w
s

[0088]
根据另一种可能的设计,k个子模型w
s1
至w
sk
不与k个训练成员设置固定的对应关系,并且对应关系在各个周期还可以不同。此时,服务方可以设置有包括接收单元、处理单元、反馈单元及同步单元的联合更新模型的装置。图6示出了一个实施例下的联合更新模型的装置600。
[0089]
该装置600包括:
[0090]
接收单元601,配置为接收训练成员i利用本地子模型处理本地样本数据得到的中间结果l
i

[0091]
处理单元602,配置为将中间结果l
i
分配给子模型w
sj
,并基于子模型w
sj
对中间结果l
i
的处理,确定子模型w
sj
中各个待定参数的梯度数据及中间结果l
i
的梯度数据,其中,子模型w
si
中各个待定参数的梯度用于更新相应的各个待同步参数,单个待同步参数为相应待定参数或其梯度;
[0092]
反馈单元603,配置为向训练成员i反馈中间结果l
i
的梯度数据,以供训练成员i根据中间结果l
i
的梯度数据更新本地子模型w
ci
的待定参数;
[0093]
同步单元604,配置为在完成本轮次各个子模型w
s1
至w
sk
各自的待同步参数的更新的情况下,对子模型w
s1
至w
sk
中的待定参数进行同步以确定聚合的子模型w
s

[0094]
值得说明的是,本说明书给出的装置实施例分别与前文描述的方法实施例相对应,因此,前文方法实施例中的相关描述同样可以适应于相应装置实施例,在此不再赘述。
[0095]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4等所描述的方法。
[0096]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4等所描述的方法。
[0097]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0098]
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
再多了解一些

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

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

相关文献