掌桥专利:专业的专利平台
掌桥专利
首页

多方联合进行模型训练的方法及装置

文献发布时间:2024-04-18 19:58:30


多方联合进行模型训练的方法及装置

技术领域

本说明书一个或多个实施例涉及隐私计算技术领域,尤其涉及一种多方联合进行模型训练的方法及装置。

背景技术

传统机器学习或普通分布式机器学习的训练过程,仅在单台机器或同一网域内的集群上完成。而隐私计算场景下的拆分学习(或联邦学习)训练过程中,计算过程在各数据提供方自己的网络集群中完成,中间数据(如隐层、梯度等)需要跨机构传输。

拆分学习根据训练数据在不同数据方中的分布情况,分为垂直拆分学习和水平拆分学习。垂直拆分学习针对数据垂直分布场景,也即不同数据方拥有相同的样本空间,但特征空间不同,且其中一方持有样本标签,比如说,银行和支付平台拥有同一批用户,银行持有用户的征信数据和银行流水等,信用平台持有用户的信用服务数据和是否违约的标签数据。

图1示出两方垂直拆分学习的典型架构,其中A方和B方各自在本地利用基础模型(base model)处理训练样本的私有特征,输出非敏感的嵌入数据(embedding)。B方融合从A方接收到的嵌入数据后传入融合模型(fuse model),继续进行模型的前向传播(ForwardPropagation,简称FP),传播完成后根据标签(label)计算出损失(loss)和梯度(gradient),依次反向传播(Back Bropagation,简称BP),以更新融合模型和基础模型。

申请人发现,在垂直拆分学习的过程中,因各参与方的网络情况不同,传输过程中网络带宽有限,传输延迟大、时间消耗长,各方之间互相等待传输数据造成计算资源利用率低。由此,本说明书实施例提出一种针对垂直拆分学习的优化方案,可以有效减小通信、运算过程的时间,提高资源利用率,加速模型训练。

发明内容

本说明书实施例描述一种多方联合进行模型训练的方法及装置,可以有效减小通信、运算过程的时间,提高资源利用率,加速模型训练。

根据第一方面,提供一种多方联合进行模型训练的方法,应用于训练样本数据垂直分布的场景,所述方法应用于所述多方中任意的非标签方;所述非标签方针对本地部署的嵌入模型维护先进先出的任务队列,所述任务队列用于指示任务执行的顺序;所述方法包括:

一旦从所述多方中的标签方接收完成针对一批次样本的回传梯度,将针对该批次样本的反向传播任务加入所述任务队列;所述反向传播任务指示基于所述回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型;每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

在一个实施例中,所述方法还包括:读取所述任务队列中当前排在队首的任务,作为待执行的目标任务;在所述目标任务为前向传播任务的情况下,将执行该前向传播任务后得到的嵌入数据上传至所述标签方,以使所述标签方基于所述嵌入数据和对应的标签数据确定针对一批次样本的回传梯度。

根据第二方面,提供一种多方联合进行模型训练的方法,应用于训练样本数据垂直分布的场景,所述方法应用于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级;所述方法包括:

一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列;所述组合任务指示,基于所述嵌入数据和对应的标签数据更新所述嵌入模型和融合模型,以及计算针对所述非标签方的回传梯度。每次执行完一个组合任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,所述第二优先级低于所述第一优先级;所述任务队列初始被添加预定数量的前向传播任务。

在一个实施例中,所述组合任务包括针对所述融合模型的前向传播子任务和反向传播子任务,前者指示沿所述融合模型的正向处理所述多方的嵌入数据,后者指示基于正向处理的预测结果和对应的标签数据沿所述融合模型的反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述组合任务还包括针对所述嵌入模型的反向传播子任务,指示基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。

在一个实施例中,所述将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列,包括:将所述组合任务添加到所述任务队列的队尾;将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,包括:将所述前向传播任务添加到所述任务队列的队尾。

进一步,在一个具体的实施例中,所述方法还包括:从所述任务队列中查询具有第一优先级的第一任务;若存在第一任务,读取排序靠前的第一任务作为当前待执行的目标任务;若不存在第一任务,读取排序靠前的具有第二优先级的第二任务,作为目标任务。

在另一个实施例中,所述任务队列为先进先出队列;所述将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列,包括:将所述组合任务添加到所述任务队列的目标位置,所述目标位置的排序先于任一个第二优先级的任务,晚于已有的第一优先级的任务。将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,包括:将所述前向传播任务添加到所述任务队列的队尾。

进一步,在一个具体的实施例中,所述方法还包括:从所述任务队列中读取队列头部的任务作为当前待执行的目标任务。

在一个例子中,在所述目标任务为所述组合任务的情况下,将执行所述组合任务的过程中计算出的回传梯度下发至对应的非标签方。

根据第三方面,提供一种多方联合进行模型训练的方法,应用于训练样本数据垂直分布的场景,所述方法应用于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级;所述方法包括:

一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级;所述双向任务指示,沿所述融合模型的前向处理所述多方的嵌入数据,沿反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述反向传播任务指示,基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为所述第二优先级并加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

根据第四方面,提供一种多方联合进行模型训练的装置,应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中任意的非标签方;所述非标签方针对本地部署的嵌入模型维护先进先出的任务队列,所述任务队列用于指示任务执行的顺序;所述装置包括:

反向任务加入模块,配置为一旦从所述多方中的标签方接收完成针对一批次样本的回传梯度,将针对该批次样本的反向传播任务加入所述任务队列;所述反向传播任务指示基于所述回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。前向任务加入模块,配置为每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

根据第五方面,提供一种多方联合进行模型训练的装置,应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级;所述装置包括:

组合任务加入模块,配置为一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列;所述组合任务指示,基于所述嵌入数据和对应的标签数据更新所述嵌入模型和融合模型,以及计算针对所述非标签方的回传梯度。前向任务加入模块,配置为每次执行完一个组合任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,所述第二优先级低于所述第一优先级;该任务队列初始被添加预定数量的前向传播任务。

根据第六方面,提供一种多方联合进行模型训练的装置,应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级;所述装置包括:

多任务加入模块,配置为一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级;所述双向任务指示,沿所述融合模型的前向处理所述多方的嵌入数据,沿反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述反向传播任务指示,基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。前向任务加入模块,配置为每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为所述第二优先级并加入所述任务队列;该任务队列初始被添加预定数量的前向传播任务。

根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行第一方面、第二方面或第三方面的方法。

根据第八方面,提供了一种计算设备,包括存储器和处理器,上述存储器中存储有可执行代码,该处理器执行上述可执行代码时,实现第一方面、第二方面或第三方面的方法。

通过采用本说明书实施例提供的上述方法和装置,1)将数据传输过程与运算过程并行进行,提高了运算资源和网络资源的利用效率,减少了大量的闲置时间,加快了训练速度。2)通过事件触发方式,降低了系统调度复杂度。其中非标签方或标签方的前向传播任务的事件触发条件决定了任务流水线并行量,限制了更新过程中的反向传播计算出的更新方向与当前模型参数错位程度,保证了收敛性与收敛速度。3)标签方通过维护带优先级的任务队列避免了基础模型前向传输对融合模型的前、后向传播任务的阻塞,同时非标签方中前向和后向任务的同优先级实现了训练过程的均衡更新。4)非标签方中反向传播任务的入队完全通过梯度传输完成事件的驱动,标签方中组合任务的入队完全通过嵌入数据的传输完成事件的确定,不要求数据更新案批次顺序进行的乱序模式提高了任务对网络抖动的适应性,在限制了参数错位程度的前提下,保证收敛速度基本不变情况下的网络自适应模型更新。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出两方垂直联邦学习的典型架构;

图2为两方垂直数据分布场景下的数据切分示意图;

图3为垂直拆分学习中对一批次训练样本进行处理的步骤示意图;

图4为本说明书实施例披露的优化方案中非标签方基于其维护的任务队列参与联合训练的数据流示意图;

图5为本说明书实施例披露的多方联合进行模型训练的方法应用于非标签方的流程步骤示意图;

图6为本说明书实施例披露的非标签方中的任务队列初始被添加4个前向传播任务后的队列结构示意图;

图7为本说明书实施例披露的非标签方中的任务队列被添加反向传播任务后的队列结构示意图;

图8为本说明书实施例披露的非标签方中的任务队列由反向传播任务的完成触发新的前向传播任务的添加的队列结构变化示意图;

图9为本说明书实施例披露的优化方案中标签方基于其维护的优先队列参与联合训练的数据流示意图;

图10为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的流程步骤示意图之一;

图11为本说明书实施例披露的标签方中的任务队列初始被添加4个前向传播任务后的队列结构示意图;

图12为本说明书实施例披露的标签方中标注有不同优先级的计算任务依次从队尾插入而产生的队列结构示意图;

图13为本说明书实施例披露的标签方中具有高优先级的计算任务被插入目标位置前后的队列结构变化示意图;

图14为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的流程步骤示意图之二;

图15为本说明书实施例披露的标签方中双向任务和反向传播任务依次从队尾插入前后的队列结构变化示意图;

图16为本说明书实施例披露的标签方中具有高优先级的双向任务被插入目标位置、反向传播任务被插入队尾的队列结构变化示意图;

图17为本说明书实施例披露的多方联合进行模型训练的装置结构示意图之一;

图18为本说明书实施例披露的多方联合进行模型训练的装置结构示意图之二;

图19为本说明书实施例披露的多方联合进行模型训练的装置结构示意图之三。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

如前所述,本说明书实施例提出一种针对垂直拆分学习的优化方案。在此优化方案中,提出基于事件驱动加速垂直联邦学习,实现多个批次(batch)并行训练和模型的乱序更新,从而可以有效减小通信、运算过程的时间,提高资源利用率,加速模型训练。

在介绍上述针对垂直拆分学习的优化方案之前,为帮助理解,先介绍垂直拆分学习涉及的垂直数据分布,以及垂直拆分学习中常规一轮次迭代训练涉及的处理步骤。

一、数据垂直分布情况

参与垂直拆分学习的多个数据提供方具有相同的样本空间,具体各自持有相同样本的不同特征部分,多个数据提供方之一还持有样本标签。需理解,文中或将数据提供方换称为数据方、参与方、计算方、或方等。另外,将多方中持有样本标签的一方称为有标签方或标签方,将其他没有标签数据的参与方称为无标签方或非标签方。

下面结合不同业务场景,以两方为例介绍垂直拆分学习中训练样本数据在多方中的垂直分布情况。

以两方为例,图2中示意A方持有样本特征A,B方持有样本特征B和样本标签。

在推荐场景中,训练样本为推荐样本,A方持有的样本特征A为推荐样本的用户特征数据,B方持有的样本特征B和样本标签分别为推荐样本的对象特征数据和用户行为标签。需说明,文中提及的用户特征等与用户相关的数据,都是在用户确认授权后进行采集和使用。

在一个实施例中,A方为社交平台或支付平台等,其持有的用户特征数据包括用户的静态属性,和/或,用户的动态行为特征。在一个具体的实施例中,用户的静态属性可以包括职业、兴趣爱好、常驻地、资产信息等。示例性地,可以从用户注册信息提取这些特征。在一个具体的实施例中,用户的动态行为特征可以包括社交时长、社交频次、好友数量、个人动态条数、点赞数等。在另一个具体的实施例中,用户的动态行为特征可以包括支付频次、支付金额、支付时段等。

在一个实施例中,B方可以是电商平台或内容平台等,其拥有的对象特征数据针对的业务对象可以是商品、服务、公众号、订阅号、应用、内容资讯、广告等。在一个具体的实施例中,对象特征数据为商品特征,如类目、产地、成本、售价、销量和目标受众等。在另一个具体的实施例中,对象特征数据为公众号特征,如类别、关注人数、发布内容的频次、点赞量和转发量等。在又一个具体的实施例中,对象特征数据为广告特征,如广告载体(含图片、文本、或音视频)、广告内容、代言人信息等。

B方持有的用户行为标签指示用户是否对业务对象做出预定行为。可以理解,预定行为与业务对象相适应。在一个具体的实施例中,业务对象为商品或服务,此时,预定行为可以是购买或使用。在另一个具体的实施例中,业务对象为公众号或订阅号,此时,预定行为可以是关注或订阅。在又一个具体的实施例中,业务对象为应用,此时,预定行为可以是下载或注册。在还一个具体的实施例中,业务对象为广告或内容资讯,此时,预定行为可以是点击。

以上,介绍推荐场景中的两方数据垂直分布。

在风控场景中,A方和B方可以各自持有相同用户的不同行为数据,且B方还持有用户的风险标签。在一个实施例中,A方为银行,B方为支付平台,其中银行持有用户的银行流水,如存取款记录等;支付平台持有用户的支付数据,如支付金额、支付次数等。在另一个实施例中,A方为信用服务平台,B方为征信机构,其中信用服务平台持有用户使用信用服务数据,如免押金租借图书、自行车等的记录;征信机构持有用户征信数据,如用户有多少张信用卡、还款违约记录等。

上述风险标签可以是风险类别标签,如低风险、中风险和高风险等,也可以是风险分值标签,如百分制中的30分、90分等。

以上分别结合推荐场景和风控场景,并以两方为例,介绍参与垂直拆分学习的多方的垂直数据分布。可以理解,多方不限于两方,业务场景不限于推荐场景和风控场景,在此不作穷举。

二、垂直拆分学习中常规一轮次迭代训练涉及的处理步骤

需理解,文中提及的多方各自在本地部署基础模型,其中标签方还在本地部署融合模型。另外,每轮次迭代训练涉及多方各自利用本地模型处理同一批次(batch)的训练样本,多方可以预先约定迭代训练的轮次序号与样本批次之间的映射关系,这不会泄露数据隐私,具体可以采样已有的相关技术实现,不作赘述。

图3为垂直拆分学习中对一批次训练样本进行处理的步骤示意图。如图3所示,每一轮垂直拆分学习的训练过程都包括以下步骤的执行:基础模型(文中或称嵌入模型)的前向传播、嵌入数据(或称隐层数据)上传、等待各方嵌入数据的传输完成、融合模型的前向传播和后向传播、梯度下发、基础模型的后向传播。需说明,对于单方针对单个处理步骤参与执行的内容,可以采用已有的常规技术实现。为帮助理解,对图3示意的各步骤内容进行简单介绍。

1.基础模型的前向传播

多方中的各方加载同一批次的训练样本,并各自利用本地部署的基础模型前向处理该批训练样本的本地特征,得到对应的嵌入数据。示例性的,嵌入数据可以为该批次训练样本中各个训练样本的嵌入向量组成的嵌入矩阵。

示例性的,A方利用图3中示意的基础模型A处理一批次样本的样本特征A,得到对应的嵌入数据A,B方利用图3中示意的基础模型B处理同一批次样本的样本特征B,得到对应的嵌入数据B。

由上,多方各自利用本地基础模型前向处理同一批次训练样本的不同特征部分,从而得到对应的嵌入数据。

2.嵌入数据上传

多方中的各个非标签方将其本地生成的嵌入数据上传至多方中的标签方。

3.等待各方嵌入数据的传输完成

针对一批次训练样本,标签方需等待其他各个非标签方的嵌入数据的传输完成,再进行后续处理。

4.融合模型的前向传播和后向传播

针对一批次训练样本,标签方先对本方产生的嵌入数据和其他各方传输完成的嵌入数据进行融合处理,如拼接、相加等,再利用融合模型对融合数据进行前向处理,得到该批次样本对应的预测结果。之后,基于预测结果和该批次样本对应的标签数据计算损失,从而基于损失后向计算融合模型的梯度,并对融合模型进行参数更新。

5.梯度下发

标签方通过对融合模型进行反向传播计算,可以得到回传至各方嵌入模型的回传梯度,将此回传梯度下发给对应的非标签方。

6.基础模型的后向传播

多方各自利用回传至本地基础模型的梯度,沿后向对本地基础模型进行模型参数的梯度计算和参数更新。

以上结合图3介绍垂直拆分学习中常规一轮次迭代训练中,多方各自利用本地模型处理一批次训练样本以更新本地模型的步骤。具体地,多方各自更新本地基础模型,标签方还更新本地融合模型。

接下来介绍本说明书实施例披露的针对垂直拆分学习的优化方案。此优化方案涉及对多方中非标签方和/或标签方的优化,具体地,多方各自维护针对本地模型的一个计算任务队列,并据此逐个执行联合训练时的计算任务,例如,基础模型的前向传播等,任务队列中计算任务的添加基于事件的触发,从而可以有效降低系统调度复杂度,另外,通过对事件进行限定,支持在上限范围内的多个批次的并行训练和模型的乱序更新。

下面先介绍优化方案在非标签方的应用,之后再介绍优化方案在标签方的应用。

参见图4,其中示意在任意的一个非标签方实施优化方案的架构图。具体地,A方维护一个针对本地部署的基础模型A的任务队列A,用于存储两类具有相同优先级的计算任务,即前向传播任务和反向传播任务,在图4中对应示意为任务A_FP和任务A_BP。

任务A_FP在判断出嵌入模型的前向传播超前反向传播的步数小于预设阈值的情况下被自动添加到任务队列A,其中预设阈值决定了任务流水线并行量,限制了更新过程中的反向传播计算出的更新方向与当前模型参数的错位程度,保证了收敛性与收敛速度。

任务A_BP由标签方梯度传输完成的事件触发,如此可以有效降低系统的调度复杂度。

A方对任务队列A中的各个任务进行顺序执行,数据传输(包括嵌入数据上传和梯度数据下载)与本地计算任务的执行并行进行。如此,提高了运算资源和网络资源的利用效率,减少了大量的闲置时间,加快了训练速度。

下面结合图5至图8以及更多实施例,描述任意一个非标签方实施优化方案的具体步骤。图5为本说明书实施例披露的多方联合进行模型训练的方法应用于非标签方的流程步骤示意图,其中多方中的各方均可以被实现为任何具有计算、处理能力的装置、服务器、平台或设备集群等。

图5中示意的训练方法应用于训练样本数据垂直分布的场景,对于数据垂直分布的介绍可以参见前述实施例中的相关描述,此处不作赘述。

图5中示意的方法步骤可以由多方中任意的一个非标签方执行,非标签方中针对本地部署的嵌入模型维护先进先出的任务队列,该任务队列用于指示任务的执行顺序,例如,图4中示意A方维护的任务队列A。如图5所示,所述方法包括以下步骤:

步骤S51,一旦从多方中的标签方接收完成针对一批次样本的回传梯度,将针对该批次样本的反向传播任务加入任务队列;其中反向传播任务指示基于所述回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。

需理解,联合训练中采用多少批次的训练样本,就会有相应数量的反向传播任务被添加到任务队列,每次添加都是由相对应回传梯度的下载完成而立即触发。

另外,回传梯度是相邻的神经网络层之间反向传回的梯度,基于回传梯度可以确定模型梯度,从而在更新模型时沿着模型梯度的方向进行更新,对于回传梯度、模型梯度和模型更新的描述可以参见已有的相关技术,在此不作赘述。由此,通过执行反向传播任务可以实现对本地嵌入模型的参数更新。

示例性的,在非标签方中,响应于从标签方接收完成针对某一批次样本的回传梯度,生成梯度传输完成的事件,此事件自动触发反向传播任务的添加。在一个例子中,参见图7,其中示意加入反向传播任务A_BP1后的任务队列。需说明,对于任务队列中的任务标识A_BP1和A_FP4,其中A表示非标签方A方,BP表示反向传播任务,FP表示前向传播任务,1和4表示任务所对应训练样本的批次序号,对于说明书附图中其他图示中的任务标识可以照此解读。

以上,可以实现在回传梯度传输完成事件的触发下在任务队列中加入反向传播任务。

步骤S52,每次执行完一个反向传播任务,将利用嵌入模型处理一批次样本的前向传播任务加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

在执行本步骤之前,所述方法还可以包括:初始化一个为空的任务队列,并向其中添加预定数量的前向传播任务。需理解,预定数量为正整数,由工作人员预先设定,例如,设定为4。示例性的,图6示意初始被添加4个前向传播任务的任务队列。

基于此,通过执行本步骤,可以将样本批次的并行处理量始终限制为不超过预定数量。示例性的,图8示出反向传播任务A_BP1被执行完成后,前向传播任务A_FP5被加入任务队列。

如此,每执行完一个反向传播任务就像队列中新添加一个前向传播任务,可以将嵌入模型的前向传播超前反向传播的步数限制为不超过预定数量,从而限制了更新过程中的反向传播计算出的更新方向与当前模型参数的错位程度,保证了收敛性和收敛速度。

根据另一方面的实施例,图5中示出的方法还包括:读取所述任务队列中当前排在队首的任务,作为待执行的目标任务。

进一步,在一个具体的实施例中,在所述目标任务属于前向传播任务的情况下,例如,读取的目标任务是图6中示意的任务A_FP1,将执行该前向传播任务后得到的嵌入数据上传至标签方,以使所述标签方基于所述嵌入数据和对应的标签数据确定针对一批次样本的回传梯度。

在另一个具体的实施例中,在所述目标任务属于反向传播任务的情况下,例如,读取的目标任务是图8中示意的任务A_BP1,基于目标任务指示的回传梯度沿嵌入模型的反向确定模型梯度并更新模型。

以上介绍任务队列中任务的顺序执行。

根据又一方面的实施例,对于任务队列中任务的删除,在一个具体的实施例中,可以在任务被读取后随之将其从任务队列中删除。在另一个具体的实施例中,在任务被读取后先不删除,而是一旦执行完成就马上删除。

以上介绍本说明书实施例提出的针对垂直拆分学习的优化方案在非标签方的应用。接下来介绍该优化方案在标签方中的应用。

参见图9,其中示意在标签方实施优化方案的架构图。具体地,B方维护一个针对本地部署的基础模型B和融合模型的任务队列B,用于存储两类具有不同优先级的计算任务,即前向传播任务和组合任务,在图9中对应示意为任务B_FP和任务B_GP。

任务B_FP是针对基础模型B的前向传播任务,在判断出基础模型B的前向传播超前反向传播的步数小于预设阈值的情况下被自动添加到任务队列B,其中预设阈值决定了任务流水线并行量,限制了更新过程中的反向传播计算出的更新方向与当前模型参数的错位程度,保证了收敛性与收敛速度。

任务B_GP是组合任务,包括针对融合模型的前向和后向传播任务,以及针对基础模型B的后向传播任务。任务B_GP由所有非标签方针对一批次样本的嵌入数据的传输完成的事件触发,如此可以有效降低系统的调度复杂度。

任务队列B指示任务执行的顺序和优先级,任务B_GP的优先级高于任务B_FP的优先级,任务队列中的优先级更高的任务B_GP优先被执行,从而避免标签方中前向传播任务对组合任务的阻塞,优先完成组合任务的计算。

下面结合图10至图13以及更多实施例,描述优化方案应用于标签方的具体实施步骤。

图10为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的流程步骤示意图之一,其中标签方针对本地部署的嵌入模型和融合模型维护任务队列,此任务队列用于指示任务执行的顺序和优先级。示例性的,可参见图9中示意B方维护任务队列B。需说明,图10示意的方法可以单独实施,也可以与图5示意的方法联合实施。

如图10所示,标签方执行以下方法步骤:

步骤S101,一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列;所述组合任务指示,基于所述嵌入数据和对应的标签数据更新所述嵌入模型和融合模型,以及计算针对所述非标签方的回传梯度。

首先需说明,上述第一优先级中的“第一”,以及文中他处的“第一”、“第二”等类似用语均是为了区分同类事物,不具有排序等其他限定作用。

可以理解,上述组合任务包括针对融合模型的前向传播子任务和反向传播子任务,其中前向传播子任务指示沿融合模型的正向处理多方的嵌入数据,例如,对多方的嵌入数据进行拼接、求和或求平均等融合处理后输入融合模型,后向传播子任务指示基于正向处理得到的预测结果和对应的标签数据沿融合模型的反向确定模型梯度并更新模型,以及获取针对多方各自本地部署的嵌入模型的回传梯度。

上述组合任务还包括针对嵌入模型的反向传播子任务,指示基于针对本方的回传梯度沿本方嵌入模型的反向确定模型梯度并更新模型。

另外,组合任务的执行除了需要用到非标签方针对一批次样本上传的嵌入数据,还需要用到标签方自身利用本地嵌入模型处理该批次样本而得到的嵌入数据,但实际在标签方中,本地嵌入数据的生成会超前嵌入数据的接收完成,所以可以默认在从非标签方接收针对一批次样本的嵌入数据之前,标签方本地已产出针对该批次样本的嵌入数据,并存储在了缓存(例如图9中示出的缓存)中。

另外,联合训练中采用多少批次的训练样本,就会有相应数量的组合任务被添加到任务队列,每次添加都是由多方中的各个非标签方针对同一批次样本的嵌入数据全部上传完成而立即触发。

示例性的,在标签方中,响应于从各个非标签方都接收完成针对某一批次样本的嵌入数据,生成嵌入数据传输完成的事件,此事件自动触发组合任务的添加。

以上,可以实现由嵌入数据传输完成事件驱动向任务队列中加入组合任务。

步骤S102,每次执行完一个组合任务,将利用嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入任务队列,所述第二优先级低于所述第一优先级;所述任务队列初始被添加预定数量的前向传播任务。

在执行本步骤之前,所述方法还可以包括:初始化一个为空的任务队列,并向其中添加预定数量的前向传播任务。需理解,预定数量为正整数,由工作人员预先设定,例如,设定为4。另外,在图10示意的方法与图5示意的方法联合使用时,标签方和非标签方初始向各自任务队列添加的前向任务传播数量可以相同,也就是各自的预定数量相同,以实现任务流水线的同步。示例性的,图11示意标签方维护的任务队列初始被添加4个前向传播任务的任务队列。

基于此,通过执行本步骤,每执行完一个反向传播任务就像队列中新添加一个前向传播任务,可以将样本批次的并行处理量始终限制为不超过预定数量,将嵌入模型的前向传播超前反向传播的步数限制为不超过预定数量,从而限制了更新过程中的反向传播计算出的更新方向与当前模型参数的错位程度,保证了收敛性和收敛速度。

根据另一方面的实施例,图10示出的方法还包括:读取所述任务队列中待执行的目标任务。可以理解,任务队列指示任务执行的顺序和优先级,需要优先读取并执行优先级更高的任务,目标任务的读取方式与不同优先级计算任务在任务队列中插入位置的确定方式相适应。

在一个实施例中,步骤S101中将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列,包括:将所述组合任务添加到所述任务队列的队尾;步骤S102中将利用嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入任务队列,包括:将所述前向传播任务添加到所述任务队列的队尾。

基于此,读取所述任务队列中待执行的目标任务可以包括:从所述任务队列中查询具有第一优先级的第一任务。进一步,若存在第一任务,读取排序靠前的第一任务作为当前待执行的目标任务。示例性的,可以读取图12中的任务B_GP1作为目标任务。

若不存在第一任务,读取排序靠前的具有第二优先级的第二任务,作为目标任务。示例性的,可以读取图11中的任务B_FP1作为目标任务。

在另一个实施例中,任务队列为先进先出队列。步骤S101中将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列,包括:将该组合任务添加到任务队列的目标位置,该目标位置的排序先于任一个第二优先级的任务,晚于已有的第一优先级的任务。示例性的,可以参见图13中将任务B_GP3的插入任务队列。

步骤S102中将利用嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入任务队列包括:将该前向传播任务添加到所述任务队列的队尾。

基于此,读取所述任务队列中待执行的目标任务可以包括:从所述任务队列中读取队列头部的任务作为当前待执行的目标任务。

以上介绍任务队列中,将不同优先级的计算任务插入任务队列时,对插入位置的确定方式,以及相应在读取待执行的目标任务时,确定目标任务的方式。

根据再一方面的实施例,在读取所述任务队列中待执行的目标任务之后,执行目标任务。在一个具体的实施例中,在所述目标任务属于组合任务的情况下,将执行所述组合任务的过程中计算出的回传梯度下发至对应的非标签方。

根据又一方面的实施例,对于任务队列中任务的删除,在一个具体的实施例中,可以在任务被读取后随之将其从任务队列中删除。在另一个具体的实施例中,在任务被读取后先不删除,而是一旦执行完成就马上删除。

以上介绍本说明书实施例提出的针对垂直拆分学习的优化方案在标签方的应用。需说明,对于图10中示意的应用在标签方的方法步骤,还可以有其他变体,例如,将针对嵌入模型和融合模型的组合任务插入任务队列中替换为:将针对融合模型的前后向传播任务(或称双向传播任务)和针对融合模型的反向传播任务分别加入所述任务队列,其中双向传播任务的优先级高于反向传播任务。

具体,图14为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的流程步骤示意图之二,其中标签方针对本地部署的嵌入模型和融合模型维护任务队列,此任务队列用于指示任务执行的顺序和优先级。示例性的,可参见图9中示意B方维护任务队列B。需说明,图14示意的方法可以单独实施,也可以与图5示意的方法联合实施。

如图14所示,标签方执行以下方法步骤:

步骤S141,一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级;所述双向任务指示,沿所述融合模型的前向处理所述多方的嵌入数据,沿反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述反向传播任务指示,基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。

在一个实施例中,上述双向任务包括针对所述融合模型的前向传播子任务和反向传播子任务,前者指示沿所述融合模型的正向处理所述多方的嵌入数据,后者指示基于正向处理的预测结果和对应的标签数据沿所述融合模型的反向确定模型梯度并更新模型,以及获取针对多方各自部署的嵌入模型的回传梯度。

步骤S142,每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为所述第二优先级并加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

在一个实施例中,步骤S141中将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级,包括:先将所述双向任务添加到所述任务队列的队尾,再将所述反向传播任务添加到所述任务队列的队尾。示例性的,图15示出在任务队列的队尾先后添加双向任务B_DP1和反向传播任务B_BP1。

步骤S142中将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,包括:将所述前向传播任务添加到所述任务队列的队尾。

基于以上,在一个具体的实施例中,所述方法还可以包括:从所述任务队列中查询具有第一优先级的第一任务;若存在第一任务,读取排序靠前的第一任务作为当前待执行的目标任务;若不存在第一任务,读取排序靠前的具有第二优先级的第二任务,作为目标任务。

在另一个实施例中,所述任务队列为先进先出队列。步骤S141中将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级,包括:先将所述双向任务添加到所述任务队列的目标位置,所述目标位置的排序先于任一个第二优先级的任务,晚于已有的第一优先级的任务;再将所述反向传播任务添加到所述任务队列的队尾。示例性的,图16示出在任务队列中先将双向任务B_DP1添加到目标位置,再将反向传播任务B_BP1添加到队尾。

步骤S142中将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,包括:将所述前向传播任务添加到所述任务队列的队尾。

基于以上,在一个具体的实施例中,所述方法还可以包括:从所述任务队列中读取队列头部的任务作为当前待执行的目标任务。

另一方面,在一个具体的实施例中,在上述目标任务为所述组合任务的情况下,将执行所述组合任务的过程中计算出的回传梯度下发至对应的非标签方。

需说明,对图14示意出的步骤的介绍,还可以参见前述实施例中的相关描述。另外,对于文中各个任务的执行内容,文中主要介绍典型的执行方式,实际可以有所变化,例如,非标签方可以在本地生成的嵌入数据中添加差分隐私(Differential Privacy)噪声后再上传到标签方,标签方可以利用融合模型处理加噪后的嵌入数据,等等。

综上,采用本说明书实施例提出的针对垂直拆分学习的优化方案,1)将数据传输过程与运算过程并行进行,提高了运算资源和网络资源的利用效率,减少了大量的闲置时间,加快了训练速度。

2)通过事件触发方式,降低了系统调度复杂度。其中非标签方或标签方的前向传播任务的事件触发条件决定了任务流水线并行量,限制了更新过程中的反向传播计算出的更新方向与当前模型参数错位程度,保证了收敛性与收敛速度。

3)标签方通过维护带优先级的任务队列避免了基础模型前向传输对融合模型的前、后向传播任务的阻塞,同时非标签方中前向和后向任务的同优先级实现了训练过程的均衡更新。

4)非标签方中反向传播任务的入队完全通过梯度传输完成事件的驱动,标签方中组合任务的入队完全通过嵌入数据的传输完成事件的确定,不要求数据更新案批次顺序进行的乱序模式提高了任务对网络抖动的适应性,在限制了参数错位程度的前提下,保证收敛速度基本不变情况下的网络自适应模型更新。

与上述训练方法相对应的,本说明书实施例还披露训练装置。

图17为本说明书实施例披露的多方联合进行模型训练的装置结构示意图之一,该装置应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中任意的非标签方;所述非标签方针对本地部署的嵌入模型维护先进先出的任务队列,所述任务队列用于指示任务执行的顺序。如图17所示,所述装置1700包括:

反向任务加入模块1710,配置为一旦从所述多方中的标签方接收完成针对一批次样本的回传梯度,将针对该批次样本的反向传播任务加入所述任务队列;所述反向传播任务指示基于所述回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。前向任务加入模块1720,配置为每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

在一个实施例中,所示装置1700还包括:任务读取模块1730,配置为读取所述任务队列中当前排在队首的任务,作为待执行的目标任务;任务执行模块1740,配置为在所述目标任务为前向传播任务的情况下,将执行该前向传播任务后得到的嵌入数据上传至所述标签方,以使所述标签方基于所述嵌入数据和对应的标签数据确定针对一批次样本的回传梯度。

图18为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的装置结构示意图之一,该装置应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级。如图18所示,所述装置1800包括:

组合任务加入模块1810,配置为一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的组合任务标注为第一优先级并加入所述任务队列;所述组合任务指示,基于所述嵌入数据和对应的标签数据更新所述嵌入模型和融合模型,以及计算针对所述非标签方的回传梯度。前向任务加入模块1820,配置为每次执行完一个组合任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为第二优先级并加入所述任务队列,所述第二优先级低于所述第一优先级;所述任务队列初始被添加预定数量的前向传播任务。

在一个实施例中,所述组合任务包括针对所述融合模型的前向传播子任务和反向传播子任务,前者指示沿所述融合模型的正向处理所述多方的嵌入数据,后者指示基于正向处理的预测结果和对应的标签数据沿所述融合模型的反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述组合任务还包括针对所述嵌入模型的反向传播子任务,指示基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。

在一个实施例中,组合任务加入模块1810具体配置为:将所述组合任务添加到所述任务队列的队尾;前向任务加入模块1820具体配置为:将所述前向传播任务添加到所述任务队列的队尾。

进一步,在一个具体的实施例中,所述装置1800还包括任务读取模块1830,配置为:从所述任务队列中查询具有第一优先级的第一任务;若存在第一任务,读取排序靠前的第一任务作为当前待执行的目标任务;若不存在第一任务,读取排序靠前的具有第二优先级的第二任务,作为目标任务。

在一个实施例中,所述任务队列为先进先出队列;组合任务加入模块1810具体配置为:将所述组合任务添加到所述任务队列的目标位置,所述目标位置的排序先于任一个第二优先级的任务,晚于已有的第一优先级的任务。前向任务加入模块1820具体配置为:将所述前向传播任务添加到所述任务队列的队尾。

进一步,在一个具体的实施例中,所述装置1800还包括任务读取模块1830,配置为:从所述任务队列中读取队列头部的任务作为当前待执行的目标任务。

在一个例子中,所述装置1800还包括任务执行模块1840,配置为:在所述目标任务为所述组合任务的情况下,将执行所述组合任务的过程中计算出的回传梯度下发至对应的非标签方。

图19为本说明书实施例披露的多方联合进行模型训练的方法应用于标签方的装置结构示意图之二,该装置应用于训练样本数据垂直分布的场景,所述装置集成于所述多方中的标签方,所述标签方针对本地部署的嵌入模型和融合模型维护任务队列,所述任务队列用于指示任务执行的顺序和优先级。如图19所示,所述装置1900包括:

多任务加入模块1910,配置为一旦从非标签方接收完成针对一批次样本的嵌入数据,将针对该批次样本的双向任务和反向传播任务分别加入所述任务队列,其中双向任务被标注为第一优先级,反向传播任务被标注为低于所述第一优先级的第二优先级;所述双向任务指示,沿所述融合模型的前向处理所述多方的嵌入数据,沿反向确定模型梯度并更新模型,以及获取针对多方的回传梯度;所述反向传播任务指示,基于针对本方的回传梯度沿所述嵌入模型的反向确定模型梯度并更新模型。前向任务加入模块1920,配置为每次执行完一个反向传播任务,将利用所述嵌入模型处理一批次样本的前向传播任务标注为所述第二优先级并加入所述任务队列;所述任务队列初始被添加预定数量的前向传播任务。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图5、图10或图14所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图5、图10或图14所描述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

相关技术
  • 智能化运动训练模型构建方法及装置、训练方法及装置
  • 负例训练样本采集方法、装置及模型训练方法、装置
  • 模型训练方法和装置、数据预测方法和装置、服务器
  • 医学文本识别方法及装置、语句识别模型训练方法及装置
  • 多方联合进行模型训练的方法及装置
  • 一种对业务预测模型进行多方联合训练的方法及装置
技术分类

06120116498720