CN111813869B - 一种基于分布式数据的多任务模型训练方法及系统 - Google Patents
一种基于分布式数据的多任务模型训练方法及系统 Download PDFInfo
- Publication number
- CN111813869B CN111813869B CN202010849745.0A CN202010849745A CN111813869B CN 111813869 B CN111813869 B CN 111813869B CN 202010849745 A CN202010849745 A CN 202010849745A CN 111813869 B CN111813869 B CN 111813869B
- Authority
- CN
- China
- Prior art keywords
- training
- model
- node
- task
- parameter set
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种基于分布式数据的多任务模型训练方法及系统。所述方法包括:循环执行以下步骤,直到满足循环停止条件:针对任一任务,训练节点确定存储目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;训练节点对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;训练节点向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;循环停止后,针对任一任务,将训练节点当前的本地模型参数集作为模型初始参数集,以得到针对该任务的特定模型。
Description
技术领域
本说明书实施例涉及模型训练领域,尤其涉及一种基于分布式数据的多任务模型训练方法及系统。
背景技术
在分布式数据存储场景中,数据存储在不同的数据节点中,在针对分布式数据进行模型训练时,由训练节点从不同的数据节点获取数据进行模型训练。例如,在需要训练一种用于区分违规用户的分类模型时,训练节点可以从多家银行获取用户数据进行模型训练。
在针对分布式数据进行模型训练时,训练节点也可以在同一个通用模型的基础上,根据不同的任务训练出应用场景不同的特定模型。例如,根据区分违规用户、区分风险用户这两个任务,使用同一个通用的用户分类模型,从不同的数据节点获取标记了违规用户标签的用户数据、以及标记了风险用户标签的用户数据。基于获取的两类用户数据,分别独立训练通用的用户分类模型,从而得到一个用于区分违规用户的特定用户分类模型、以及一个用于区分风险用户的特定用户分类模型。
实际应用中,在同一个通用模型的基础上,根据不同的任务训练不同的特定模型时,训练节点针对任一任务的模型训练过程都是独立于其他任务的模型训练过程的,因此,整体的训练效率低下。
发明内容
为了提高多任务场景下的整体训练效率,本说明书提供了一种基于分布式数据的多任务模型训练方法及系统。技术方案如下。
一种基于分布式数据的多任务模型训练方法,应用于包括训练节点和至少2个数据节点的系统,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本进行训练,每种类型的标签对应一种业务含义;所述方法包括:
循环执行以下联合训练步骤,直到满足循环停止条件:
针对任一任务,训练节点确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
训练节点对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
训练节点向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
循环停止后,将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,训练节点使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
一种基于分布式数据的多任务模型训练系统,包括训练节点和至少2个数据节点,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本进行训练,每种类型的标签对应一种业务含义;所述系统用于循环执行联合训练步骤,直到满足循环停止条件;
训练节点用于:
在每轮循环中,执行以下步骤:
针对任一任务,确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
在循环停止后,执行以下步骤:
将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,训练节点使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型;
数据节点用于:
在每轮循环中,接收训练节点下发的模型参数集,并基于接收到的模型参数集更新本地模型。
上述技术方案通过针对多个任务进行综合训练,可以将模型参数集向“全部任务经过训练后的综合模型损失减小的方向”进行训练,因此,训练得到的模型参数集,可以作为各个任务的模型初始参数集用于模型训练,与各个任务的局部最优解(各个任务的局部损失最小时对应的模型参数集)的综合距离较近。
从全部任务的角度考虑,训练得到的模型初始参数集的选取可以更快地完成全部任务。因此,通过上述技术方案,可以针对多个任务提高整体训练效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种基于分布式数据的模型训练系统的结构示意图;
图2是本说明书实施例提供的一种多任务模型训练过程的原理示意图;
图3是本说明书实施例提供的一种基于分布式数据的多任务模型训练方法的原理示意图;
图4是本说明书实施例提供的另一种基于分布式数据的多任务模型训练方法的原理示意图;
图5是本说明书实施例提供的一种基于分布式数据的多任务模型训练方法的流程示意图;
图6是本说明书实施例提供的一种独立训练中单轮迭代的原理示意图;
图7是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在分布式数据存储场景中,数据存储在不同的数据节点中,在针对分布式数据进行模型训练时,由训练节点从不同的数据节点获取数据进行模型训练。例如,在需要训练一种用于区分违规用户的分类模型时,训练节点可以从多家银行获取用户数据进行模型训练。
其中,数据节点或训练节点可以是实际的计算设备,也可以是虚拟的计算模块,本说明书并不限定。
如图1所示,为本说明书提供的一种基于分布式数据的模型训练系统的结构示意图。其中包含1个训练节点和4个数据节点。不同数据节点可以存储有不同的数据,训练节点可以从不同的数据节点获取数据进行模型训练。
在针对分布式数据进行模型训练时,训练节点也可以在同一个通用模型的基础上,根据不同的任务训练出应用场景不同的特定模型。
例如,根据区分违规用户、以及区分风险用户这两个任务,使用同一个通用的用户分类模型,训练节点从不同的数据节点获取标记了违规用户标签的用户数据、以及标记了风险用户标签的用户数据。基于获取的两类用户数据,分别独立训练通用的用户分类模型,从而得到一个用于区分违规用户的特定用户分类模型、以及一个用于区分风险用户的特定用户分类模型。
其中,通用模型可以是一种未确定参数、且用于通用场景的模型。例如,在分类场景中,通用的分类模型可以是逻辑回归模型。
由于不同任务使用同一个通用模型进行模型训练,输入模型的样本特征和模型输出值的取值范围可以是固定的,因此,不同任务中,模型训练所使用的样本特征可以相同,样本标签值的取值范围也可以相同。
例如,根据区分违规用户、以及区分风险用户这两个任务,使用同一个通用的用户分类模型进行模型训练。训练节点从不同的数据节点获取标记了违规用户标签的用户样本数据、以及标记了风险用户标签的用户样本数据。
通用的用户分类模型中,输入模型的样本特征可以包含用户剩余资产、用户交易频率、用户信用等级这三个特征,模型输出值可以是0或1。因此,两类用户样本数据的样本特征可以都包含用户剩余资产、用户交易频率、用户信用等级这三个特征,样本标签值的取值范围可以都是{0,1}。在此基础上,才能够针对区分违规用户、区分风险用户两个任务,分别使用同一个通用的用户分类模型进行模型训练。
需要注意的是,不同任务中,尽管样本标签值的取值范围可以相同,但样本标签的类型可以不同,对应的业务含义也可以不同。
例如,在区分违规用户的任务中,训练节点获取的用户样本数据中,样本标签的类型可以包括“违规用户”和“非违规用户”,对应的样本标签值分别可以是0和1,对应的业务含义分别是“用户属于违规用户”和“用户属于非违规用户”。
在区分风险用户的任务中,训练节点获取的用户样本数据中,样本标签的类型可以包括“有风险用户”和“无风险用户”,对应的样本标签值分别可以是0和1,对应的业务含义分别是“用户属于有风险用户”和“用户属于无风险用户”。
实际应用中,在同一个通用模型的基础上,根据不同的任务训练不同的特定模型时,训练节点针对任一任务的模型训练过程都是独立于其他任务的模型训练过程的,各个任务的模型训练过程互不影响。因此,整体的训练效率低下。
如图2所示,为本说明书提供的一种多任务模型训练过程的原理示意图。其中包含3个任务,分别为任务1、任务2和任务3。
模型训练的过程中,可以先根据经验确定一个模型初始参数集,之后通过多轮迭代,更新模型当前的参数集,直到当前模型满足训练要求。
其中,在执行任务1时,首先根据经验确定一个模型初始参数集A,在经过10轮迭代后,得到的当前模型参数集X满足任务1的训练要求。
在执行任务2时,首先根据经验确定一个模型初始参数集B,在经过100轮迭代后,得到的当前模型参数集Y满足任务2的训练要求。
在执行任务3时,首先根据经验确定一个模型初始参数集C,在经过500轮迭代后,得到的当前模型参数集Z满足任务3的训练要求。
3个任务的执行过程互相独立,因此,3个任务的整体训练效率低下。
为了针对多任务模型训练的场景,提高多任务的整体训练效率,本说明书提供了一种基于分布式数据的多任务模型训练方法。
该方法主要针对多任务的训练过程中的模型初始参数集进行改进,避免根据主观经验确定不同任务的初始参数集,而是根据各个任务综合确定出一个相同的模型初始参数集,使得所确定的模型初始参数集与各个任务的局部最优解(各个任务的局部损失最小时对应的模型参数集)的综合距离较近,从而在客观上可以从多任务整体的角度更快地完成全部任务,提高多任务的整体训练效率。
为了便于理解本说明书中多任务的模型初始参数集的确定方法,下面给出两种确定方法用于示例性说明。
1)确定方法一。
确定方法一可以包括:根据经验确定一个模型参数集,将模型参数集向全部任务的综合模型损失下降的方向进行训练。
在训练的任意一轮迭代中,可以分别确定各个任务当前的模型损失,进而确定全部任务的综合模型损失、以及综合模型损失下降的方向,将模型参数集向全部任务的综合模型损失下降的方向进行更新。
其中,模型损失可以是基于当前的模型参数集确定的模型损失函数值。全部任务的综合模型损失,可以是各个任务的模型损失的加和。
确定训练完成后得到的模型参数集为模型初始参数集。
其中,训练中的每轮迭代都使得基于当前的模型参数集确定的全部任务的综合模型损失在减小,因此,训练完成后得到的模型参数集,在作为模型初始参数集时,对应的全部任务的综合模型损失可以是确定方法一中得到的模型参数集中最小的。
因此,该模型初始参数集与随机确定的模型初始参数集相比,从客观上减小了与各个任务的局部最优解的综合距离。
如图3所示,为本说明书提供的一种基于分布式数据的多任务模型训练方法的原理示意图。其中包含3个任务,分别为任务1、任务2和任务3。
首先根据经验确定一个模型参数集H,再根据任务1、2、3中的样本将模型参数集向全部任务的综合模型损失下降的方向进行训练,直到确定出一个模型参数集U满足训练要求。
具体的训练要求可以是基于当前的模型参数集,全部任务的综合模型损失是局部最小的。
将模型参数集U确定为任务1、2、3的模型初始参数集,并分别针对任务1、2、3进行模型训练,直到满足各个任务的训练要求,得到分别针对任务1、2、3的特定模型的参数集O、P、Q。
显然,基于模型初始参数集U,可以从多任务的整体角度,提高整体训练效率,能够更快地满足任务1、2、3的训练要求。
2)确定方法二。
基于确定方法一,全部任务的综合模型损失,可以是各个任务的模型损失的加和。
模型损失下降的方向中,下降最快的方向是模型损失的梯度方向,因此,确定综合模型损失下降的方向,可以是确定综合模型损失的梯度。
而综合模型损失的梯度,可以认为是各个任务的模型损失加和的梯度,也就是各个任务的模型损失的梯度加和。
因此,分别确定各个任务的模型损失,进而确定全部任务的综合模型损失、以及综合模型损失下降的方向,可以是分别确定各个任务的模型损失的梯度,并对所确定的各个任务的模型损失梯度进行汇总,汇总结果可以作为综合模型损失下降的方向。
在此基础上,确定方法二可以包括:根据经验确定一个模型参数集θ1,并针对θ1进行多轮更新。
每轮更新中可以包括:针对每个任务,将当前的模型参数集θi向该任务模型损失的梯度的方向进行训练,得到暂时的模型参数集,并根据暂时的模型参数集确定模型损失的梯度;汇总全部任务所确定的模型损失的梯度,利用汇总结果对θi进行更新,得到θi+1(i=1,2,3,...)。
确定多轮更新完成后得到的模型参数集为多任务的模型初始参数集。
确定方法二中,每轮更新中针对每个任务,并不是基于当前的模型参数集θi确定模型损失的梯度,而是基于训练后暂时得到的模型参数集确定模型损失的梯度。汇总全部任务训练后暂时得到的模型损失梯度后,基于汇总结果对当前的模型参数集θi进行更新,得到θi+1。
也就是说,一轮更新后,基于全部任务训练后暂时得到的模型损失梯度汇总结果、对模型参数集进行了更新,因此,当前的模型参数集θi+1与θi相比,将θi+1作为模型初始参数集针对各个任务分别进行训练后所确定的综合模型损失、小于将θi作为模型初始参数集针对各个任务分别进行训练后所确定的综合模型损失。
多轮更新使得基于当前更新得到的模型参数集,作为模型初始参数集针对各个任务分别进行训练后所确定的综合模型损失逐渐减小,直到当前更新得到的模型参数集θi+1满足预设要求。
预设要求可以是更新达到预设次数,也可以是作为当前更新得到的模型参数集θi+1与上一轮更新得到的模型参数集θi差距表征值小于预设阈值,也可以是θi+1作为模型初始参数集针对各个任务分别进行训练后所确定的综合模型损失小于预设阈值。本说明书对此不作限定。
需要注意的是,确定方法二的每轮更新中,针对每个任务的训练可以是迭代次数相同的训练,更进一步地,迭代次数可以较少,从而可以更快地进行更新,例如,可以是迭代2次的训练。
因此,经过多轮更新后,最后一轮更新后得到的模型参数集θm,在作为各个任务的模型初始参数集时,经过一定次数的迭代训练后,可以使得各个任务中模型经过训练后的综合模型损失,与确定方法二中得到的其他模型参数集θn(n<m)在作为各个任务的模型初始参数集时各个任务中模型经过训练后的综合模型损失相比较小。
由于减小了各个任务中模型经过训练后的综合模型损失,因此,多轮更新完成后得到的模型参数集、与随机确定的模型初始参数集相比,可以从客观上减小与各个任务的局部最优解的综合距离。
如图4所示,为本说明书提供的另一种基于分布式数据的多任务模型训练方法的原理示意图。其中包含2个任务,分别为任务1和任务2。
首先根据经验确定一个模型参数集I,再根据任务1中的样本向任务1模型损失的梯度的方向进行2次迭代训练,得到暂时的模型参数集I1;根据任务2中的样本向任务2模型损失的梯度的方向进行2次迭代训练,得到暂时的模型参数集I2。
任务1中基于模型参数集I1,确定模型损失梯度为a1;任务2中基于模型参数集I2,确定模型损失梯度为a2。
基于a1和a2,对模型参数集I进行更新,得到模型参数集J。具体可以是将a1和a2的均值作为损失梯度,对模型参数集I进行更新。
重复上述步骤,直到更新达到预设次数,得到模型参数集V。
将模型参数集V作为各个任务的模型初始参数集V,分别针对任务1和任务2进行训练,直到满足任务1和任务2的训练要求,得到特定模型的模型参数集M和N。
显然,基于模型初始参数集V,可以从多任务的整体角度,提高整体训练效率,能够更快地满足任务1和任务2的训练要求。
可以理解的是,确定方法二中,通过降低多个任务中经过训练的模型综合损失,使得在确定模型初始参数集时,综合了多个任务的模型训练经验,使用了元学习相关的理念。因此,所确定的模型初始参数集,从整体角度能够更快地满足各个任务的训练要求,到达局部最优解。
下面针对本说明书提供的一种基于分布式数据的多任务模型训练方法进行详细地解释。
如图5所示,为本说明书提供的一种基于分布式数据的多任务模型训练方法的流程示意图。
该方法可以应用于包括训练节点和至少2个数据节点的系统,系统中不同数据节点可以在本地存储有相同特征的样本和相同的通用模型,训练节点可以存储有该通用模型,具体可以是存储该通用模型的初始参数集。
训练节点可以用于执行至少2种任务,不同任务可以使用具有不同标签类型的样本进行训练,每种类型的标签可以对应一种业务含义。
基于上述分析,为了适应相同的通用模型,数据节点可以使用相同特征的样本,样本的标签值的取值范围也可以相同。
该方法可以至少包括以下步骤。
S101:针对任一任务,训练节点确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度。
S102:训练节点针对多个任务执行S101后,对所确定的多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集。
S103:训练节点向系统中的数据节点下发当前的本地模型参数集,以使系统中每个数据节点基于接收到的模型参数集更新本地模型。
S104:判断训练节点当前的本地模型参数集是否满足循环停止条件,如果不满足,则执行S101,如果满足,则执行S105。
S105:将训练节点当前的本地模型参数集确定为联合训练结果;针对任一任务,训练节点使用联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
需要注意的是,S101到S103属于一轮循环,可能循环执行S101-S103。
此外,在S101-S105中,数据节点可以更新本地存储的模型,而训练节点可以更新本地存储的通用模型。在之后的模型训练过程中,训练节点可能接收到数据节点发送的模型参数集,但训练节点并不会更新接收到的模型参数集,而只更新本地所存储的通用模型参数集。
当然,训练节点可以更新通用模型参数集,也可以更新通用模型。本说明书对此并不限定。实质上,更新模型可以是通过更新模型参数集、对模型进行更新。因此,训练节点可以存储通用模型的参数集,在训练过程中只对所存储的通用模型参数集进行更新。
针对S101,下面分别从目标数据节点、独立训练、任务梯度三个方面进行描述。
1)目标数据节点。
基于上述分析,不同任务可以使用具有不同标签类型的样本进行训练,每种类型的标签可以对应一种业务含义。
因此,需要针对任一任务确定该任务使用的标签类型的样本。
在分布式数据存储的场景下,存储有该任务使用的标签类型的样本的数据节点可以是一个或多个。因此,可以确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点。
例如,在区分风险用户的任务中,需要使用具有风险标签类型的样本进行模型训练。在系统中的数据节点中,存储有风险标签类型的样本的数据节点可以有5个,因此,可以将这5个数据节点确定为目标数据节点。
2)独立训练。
独立训练可以是迭代次数较少的训练,用于获取当前模型参数集针对任一任务,经过较少次数的迭代后暂时的模型参数集。迭代次数较少,可以加快独立训练完成的速度,提高S101的执行效率。
独立训练可以理解为上述确定方法二中,每轮更新中针对一个任务的训练。具体解释可以参见上述的确定方法二。
独立训练的方法可以是训练节点从全部目标数据节点中获取到样本进行训练。
更优选的,独立训练的方法也可以是目标数据节点协助训练节点进行训练,而目标数据节点中的样本并不会发送出去。
其中,同一任务对应的样本可以存储于多个数据节点中。
独立训练中的每轮迭代可以包括以下步骤:任一目标数据节点将当前本地模型的模型训练特征上传到训练节点;训练节点根据接收到的至少1个模型训练特征确定出综合模型训练特征,并将综合模型训练特征下发到目标数据节点,以使每个目标数据节点根据综合模型训练特征更新数据节点本地模型。
模型训练特征可以包括:数据节点当前的本地模型损失函数的梯度;或者数据节点训练当前的本地模型后得到的、本地模型的参数集。
需要注意的是,S101的独立训练中,训练节点本地的模型参数集并不会更新,这里的本地模型参数集是训练节点维护更新的模型参数集,与接收到的模型训练特征中的模型参数集并不相同。
为了便于理解,如图6所示,为本说明书提供的一种独立训练中单轮迭代的原理示意图。
其中包含3个目标数据节点,分别是目标数据节点1、目标数据节点2和目标数据节点3。
每个目标数据节点基于本地样本集、以及当前的数据节点本地模型,确定出数据节点本地模型的损失函数当前的梯度,分别是梯度1、梯度2和梯度3。每个目标数据节点将确定的梯度发送到训练节点。
训练节点基于接收到的梯度1、梯度2和梯度3,确定出综合梯度,并将综合梯度下发到每个目标数据节点。
每个目标数据节点可以基于接收到的综合梯度,对当前的数据节点本地模型进行更新。
显然,这种独立训练的方式可以从客观上保护各个数据节点的数据安全,在整个独立训练过程中,样本并没有从数据节点发送出去。可以理解的是,独立训练的具体流程利用了联邦学习相关的理念,可以在分布式数据存储的场景下,在保证数据节点中的数据或样本集不外发的前提下,由数据节点和训练节点协同进行模型训练。
下面针对独立训练的综合模型训练特征确定过程、综合模型训练特征下发、训练停止条件三个方面进行解释。
a综合模型训练特征确定。
训练节点可以指定全部目标数据节点上传当前本地模型的模型训练特征,以便于确定综合模型训练特征。这种方式可以使得综合模型训练特征包含全部目标数据节点的模型训练特征。
训练节点也可以指定部分目标数据节点上传当前本地模型的模型训练特征。这种方式可以使得综合模型训练特征能够更快确定,提高综合模型训练特征的速度。
训练节点在指定部分目标数据节点时,独立训练中每轮迭代所指定的节点数量、以及具体的目标数据节点可以具有随机性。
本实施例并不限定训练节点具体的、确定综合模型训练特征的方法。具体可以是根据接收到的模型训练特征求均值,或者求加权均值。
b综合模型训练特征下发。
训练节点可以将确定出的综合模型训练特征下发到每个目标数据节点上,以使每个目标数据节点根据当前迭代中的综合模型训练特征更新本地的数据节点本地模型。
这是为了使得目标数据节点之间的本地模型保持一致。
c训练停止条件。
独立训练可以是迭代次数较少的训练,因此训练停止条件可以是训练中的迭代达到预设的次数。
需要注意的是,本实施例并不限定不同任务、不同轮循环中独立训练中的训练停止条件一定相同。
例如,针对任务1,独立训练可以是迭代2次的训练;针对任务2,独立训练可以是迭代4次的训练。
由于独立训练的结果可以用于确定一次任务梯度,在之后的循环中,重新执行S101时,需要根据上一轮循环中更新的数据节点本地模型重新执行独立训练。因此,独立训练可以是迭代次数较少的训练,从而加快循环的执行速度。
3)任务梯度。
独立训练结束后,训练节点可以基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度。
任务的梯度可以理解为,上述确定方法二中,一个任务的模型损失的梯度,也就是一个任务中的模型损失函数的梯度。
由于本实施例中分布式数据存储的场景,因此需要基于独立训练后的多个目标数据节点,综合多个目标数据节点的样本集,确定任务的模型损失的梯度。
具体可以包括以下步骤:训练节点接收独立训练后、任一目标数据节点发送的当前该目标数据节点本地模型损失函数的梯度;训练节点根据接收到的至少1个梯度确定该任务的梯度。
基于这些步骤,在确定任务的梯度时,样本也并没有从目标数据节点发送出去,进一步从客观上保证了数据节点上的数据安全。
其中,训练节点可以根据独立训练后、全部目标数据节点的本地模型损失函数的梯度进行汇总,确定汇总结果为任务梯度。这种方式可以包含全部的目标数据节点上的损失梯度,可以考虑到全部的目标数据节点上的样本集。
训练节点也可以指定部分目标数据节点,根据独立训练后、指定的部分目标数据节点的本地模型损失函数的梯度进行汇总,确定汇总结果为任务梯度。这种方式可以加快任务梯度的确定速度。
具体的汇总过程可以是将接收到的梯度加和、并乘以一个参数,乘积作为汇总结果。
在指定部分目标数据节点时,每轮循环中所指定的节点数量、具体的目标数据节点可以具有随机性。
S101描述的是针对单个任务如何确定任务梯度,在S102中,训练节点需要针对多个任务执行S101,也就是分别针对多个任务确定任务梯度。
需要注意的是,由于数据节点可能存储多个标签类型的样本,因此,不同的任务在确定任务梯度时,可能确定同一个数据节点为目标数据节点。
在具体的确定任务梯度过程中,被多个任务确定为目标数据节点的数据节点,可以针对多个任务使用多个相同的通用模型,分别执行S101的步骤。
此外,在S102中,训练节点可以确定需要执行的全部任务执行S101,从而汇总全部任务的梯度,更新训练节点当前的本地模型参数集。这种方法可以包含全部的任务,考虑到全部的任务。
训练节点也可以确定需要执行的部分任务执行S101,汇总所确定的任务的梯度,更新训练节点当前的本地模型参数集。这种方法可以通过减少需要执行S101 的任务数量,提高S102的执行速度。
其中,确定部分任务时,在每轮循环中执行S102时,任务数量和具体的任务可以具有随机性。
而多个任务的任务梯度的汇总方法,具体可以是将确定的任务梯度加和、并乘以一个参数,乘积作为汇总结果。
之后训练节点可以根据汇总结果对训练节点当前的本地模型参数集进行更新。此处更新可以理解为上述确定方法二中,基于汇总结果对当前的模型参数集θi进行更新,得到θi+1。
在S103中,训练节点可以向系统中的全部数据节点下发当前的本地模型参数集,是为了使得系统中全部数据节点的模型参数集保持统一。
部分数据节点在经过S101和S102之后,被确定为目标数据节点的数据节点本地的模型进行了训练更新,而未被确定为目标数据节点的其他数据节点的本地模型没有进行训练更新,并且在S102中的多个任务中,不同任务所确定的目标数据节点的本地模型之间的训练更新也并不相同。
因此,在经过S101和S102后,系统中全部数据节点的本地模型之间存在不同。通过训练节点下发训练节点当前的本地模型参数集,可以使得系统的全部数据节点统一更新模型参数集,使得全部数据节点本地的模型保持一致。
执行完S103后,在S104中,可以判断训练节点当前的本地模型参数集是否满足循环停止条件。
如果不满足,则重新执行S101;如果满足循环停止条件,则循环停止,执行S105。
其中,本实施例并不限定具体的循环停止条件。以下三种示例用于示例性说明。
1)循环达到预设次数;2)当前循环得到的训练节点本地模型参数集与上一轮循环得到的训练节点本地模型参数集之间,差距表征值小于预设阈值;3)S102中的梯度汇总结果等于0。
需要注意的是,本实施例中并不限定判断训练节点当前的本地模型参数集是否满足循环停止条件这一步骤的具体执行时机;可以在S103之后执行,也可以在S102之后执行。
解释完S104的步骤之后,综合理解S101-S103的步骤,属于一个循环,循环中基于多个任务的梯度更新了训练节点本地的模型参数集,使得训练节点本地的模型参数集在作为全部任务的模型初始参数集时,经过一定次数的迭代训练,可以使得全部任务的综合模型损失逐渐减小。
循环中,数据节点协助了训练节点的训练过程,样本在整个循环中没有从数据节点发送出去,在客观保证数据节点的数据安全的基础上,数据节点与训练节点联合完成了整个针对训练节点本地模型参数集的训练过程,使得最终经过多轮S101-S103循环得到的训练节点本地模型参数集,在作为各个任务的模型初始参数集的情况下,从客观上减小了与全部任务的局部最优解的综合距离。
因此,S101-S103所属的多轮循环可以被称为联合训练,最终得到的训练节点当前的本地模型参数集可以被称为联合训练结果。
因此,在S105中,可以将训练节点当前的本地模型参数集确定为联合训练结果。
而联合训练结果可以作为全部任务的模型初始参数集,用于之后的训练,可以从全部任务的整体角度,更快地到达全部任务的局部最优解。
具体步骤可以是:针对任一任务,训练节点使用联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
其中,在利用任一任务对应的标签类型的样本进行训练时,本实施例并不限定具体的训练方式。以下两种示例用于示例性说明。
1)针对任一任务,训练节点以联合训练结果作为通用模型的模型初始参数集,从存储有该任务对应的标签类型的样本的数据节点获取样本,进行训练,得到针对该任务的特定模型。
2)针对任一任务,为了便于描述,将存储有该任务对应的标签类型的样本的数据节点称为样本数据节点。
训练节点、以及样本数据节点,将联合训练结果作为通用模型的模型初始参数集,对样本数据节点本地的通用模型进行训练,得到针对该任务的特定模型。
具体的训练过程中,每轮迭代可以包括以下步骤:任一样本数据节点将当前本地模型的模型训练特征上传到训练节点;训练节点根据接收到的至少1个模型训练特征确定出综合模型训练特征,并将综合模型训练特征下发到样本数据节点,以使每个样本数据节点根据综合模型训练特征更新样本数据节点本地模型。
模型训练特征可以包括:数据节点当前的本地模型损失函数的梯度;或者数据节点训练当前的本地模型后得到的、本地模型的参数集。
具体的综合模型训练特征的确定和下发,在上文独立训练的解释中已经描述,此处不再赘述。
每轮迭代中,确定综合模型训练特征所需的模型训练特征可以是全部样本数据节点上传的模型训练特征,也可以是部分样本数据节点上传的模型训练特征。
具体的训练过程中,本说明书并不限定具体的训练停止条件。训练停止条件可以是训练中的迭代达到预设次数;可以是当前迭代中更新得到的样本数据节点本地模型参数集、与上一轮迭代得到的样本数据节点本地模型参数集的差距表征值小于预设阈值;也可以是基于当前迭代中更新得到的样本数据节点本地模型,综合了全部样本数据节点的模型损失的综合模型损失小于预设阈值。
基于这种训练方法,可以使得样本数据节点中的样本数据并不发送出去,并且可以协助训练节点进行模型训练,从客观上保证了数据节点的数据安全。
可以理解的是,S105中描述的是针对任一任务,得到针对该任务的特定模型。而针对训练节点需要执行的全部任务,可以使用相同的方法得到针对各个任务的特定模型,以满足任务需求。
基于上述方法实施例,通过针对多个任务进行综合训练,可以将模型参数集向“全部任务经过训练后的综合模型损失减小的方向”进行训练,因此,训练得到的模型参数集,可以作为各个任务的模型初始参数集用于模型训练,与各个任务的局部最优解(各个任务的局部损失最小时对应的模型参数集)的综合距离较近。
从全部任务的角度考虑,训练得到的模型参数集,在作为各个任务的模型初始参数及时,可以从整体的角度更快地完成全部任务,得到针对各个任务的特定模型。因此,通过上述技术方案,可以针对多个任务提高整体训练效率。
此外,数据节点与训练节点之间通过传输模型训练特征、以及综合模型训练特征,在客观上保证数据节点的数据安全的前提下,可以由数据节点协同训练节点,实现训练节点的模型训练过程。
为了便于进一步的理解,本说明书提供了一种基于分布式数据的多任务模型训练方法的应用实例。需要注意的是,该应用实例用于示例性说明,并不能限定本说明书公开的范围。
该应用实例应用于包含训练节点、数据节点1和数据节点2的系统中。
该方法应用实例可以包括以下步骤。
S201:训练节点针对任务1,确定存储有任务1对应的标签类型的样本的数据节点1为目标数据节点。数据节点1确定当前本地模型的损失梯度,并将所确定的梯度上传到训练节点。
S202:训练节点根据接收到的梯度,确定综合梯度,并将综合梯度下发到数据节点1。
S203:数据节点1根据接收到的综合梯度更新当前本地模型。
重复执行2次上述步骤S201-S203的过程此处省略,独立训练可以是迭代3次的训练。
S204:数据节点1在独立训练后,将当前本地模型损失梯度上传到训练节点,训练节点确定任务1的模型损失梯度。
S205:训练节点针对任务2,确定存储有任务2对应的标签类型的样本的数据节点2为目标数据节点。数据节点2确定当前本地模型的损失梯度,并将所确定的梯度上传到训练节点。
S206:训练节点根据接收到的梯度,确定综合梯度,并将综合梯度下发到数据节点2。
S207:数据节点2根据接收到的综合梯度更新当前本地模型。
重复执行2次上述步骤S205-S207的过程此处省略,独立训练可以是迭代3次的训练。
S208:数据节点2在独立训练后,将当前本地模型损失梯度上传到训练节点,训练节点确定任务2的模型损失梯度。
S209:训练节点对任务1和任务2的模型损失梯度进行汇总,得到汇总结果更新训练节点当前的本地模型参数集。
S210:训练节点向数据节点1和数据节点2下发训练节点当前的本地模型参数集,以使数据节点1和数据节点2根据接收到的模型参数集配置数据节点本地模型。
S211:训练节点判断循环次数是否大于100次。
如果循环次数没有大于100次,则重复执行上述步骤S201-S210;如果循环次数大于100次,则执行S212。
具体的循环中重复的步骤S201-S211此处省略。
S212:训练节点针对任务1,将当前的训练节点本地模型参数集下发到数据节点1,使得数据节点1根据接收到的模型参数集配置数据节点本地模型。
S213:数据节点1确定当前本地模型的损失梯度,并将所确定的梯度上传到训练节点。
S214:训练节点根据接收到的梯度,确定综合梯度,并将综合梯度下发到数据节点1。
S215:数据节点1根据接收到的综合梯度更新当前本地模型。
重复执行上述步骤S213-S215的过程此处省略,直到满足任务1的训练要求,从而在数据节点1本地得到针对任务1的特定模型。
也可以针对任务2执行类似的步骤,得到针对任务2的特定模型。
除了上述的方法实施例,本说明书还提供了一种基于分布式数据的多任务模型训练系统。
系统中可以包括训练节点和至少2个数据节点,不同数据节点本地可以存储有相同特征的样本和相同的通用模型,训练节点可以存储有该通用模型;训练节点可以用于执行至少2种任务,不同任务可以使用具有不同标签类型的样本进行训练,每种类型的标签可以对应一种业务含义;系统可以用于循环执行联合训练步骤,直到满足循环停止条件。
其中,系统中的训练节点可以用于:
在每轮循环中,执行以下步骤:
针对任一任务,确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;向系统中的数据节点下发当前的本地模型参数集,以使系统中每个数据节点基于接收到的模型参数集更新本地模型。
在循环停止后,执行以下步骤:
将训练节点当前的本地模型参数集确定为联合训练结果;针对任一任务,训练节点使用联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
而系统中的数据节点可以用于:在每轮循环中,接收训练节点下发的模型参数集,并基于接收到的模型参数集更新本地模型。
针对训练节点,独立训练中的每轮迭代可以包括以下步骤:
任一目标数据节点将当前本地模型的模型训练特征上传到训练节点;训练节点根据接收到的至少1个模型训练特征确定出综合模型训练特征,并将综合模型训练特征下发到目标数据节点,以使每个目标数据节点根据综合模型训练特征更新本地模型。
模型训练特征可以包括:数据节点当前的本地模型损失函数的梯度;或者数据节点训练当前的本地模型后得到的、本地模型的参数集。
独立训练的训练停止条件可以包括:迭代达到预设次数。
训练节点可以具体用于:
接收独立训练后、任一目标数据节点发送的当前该目标数据节点本地模型损失函数的梯度;根据接收到的至少1个梯度确定该任务的梯度。
系统实施例的详细解释可以参见上述方法实施例。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种如图5所示的基于分布式数据的多任务模型训练方法中训练节点所执行的步骤、或者任一数据节点所执行的步骤。
图7示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种如图5所示的基于分布式数据的多任务模型训练方法中训练节点所执行的步骤、或者任一数据节点所执行的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
Claims (13)
1.一种基于分布式数据的多任务模型训练方法,应用于包括训练节点和至少2个数据节点的系统,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本对通用模型进行训练,得到不同的模型,每种类型的标签对应一种业务含义;所述方法包括:
循环执行以下联合训练步骤,直到满足循环停止条件:
针对任一任务,训练节点确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
训练节点对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
训练节点向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
循环停止后,将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,训练节点使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
2.根据权利要求1所述的方法,同一任务对应的样本存储于多个数据节点中,所述独立训练中的每轮迭代包括以下步骤:
任一目标数据节点将当前本地模型的模型训练特征上传到训练节点;
训练节点根据接收到的至少1个模型训练特征确定出综合模型训练特征,并将综合模型训练特征下发到目标数据节点,以使每个目标数据节点根据综合模型训练特征更新本地模型。
3.根据权利要求2所述的方法,所述模型训练特征包括:
数据节点当前的本地模型损失函数的梯度;
或者数据节点训练当前的本地模型后得到的、本地模型的参数集。
4.根据权利要求1所述的方法,所述基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度,包括:
训练节点接收独立训练后、任一目标数据节点发送的当前该目标数据节点本地模型损失函数的梯度;
训练节点根据接收到的至少1个梯度确定该任务的梯度。
5.根据权利要求1所述的方法,所述独立训练的训练停止条件包括迭代达到预设次数。
6.一种基于分布式数据的多任务模型训练方法,应用于训练节点,所述训练节点所在的系统中包括至少2个数据节点,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本对通用模型进行训练,得到不同的模型,每种类型的标签对应一种业务含义,标签值的取值范围相同;所述方法包括:
循环执行以下联合训练步骤,直到满足循环停止条件:
针对任一任务,确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
循环停止后,将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
7.一种基于分布式数据的多任务模型训练系统,包括训练节点和至少2个数据节点,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本对通用模型进行训练,得到不同的模型,每种类型的标签对应一种业务含义;所述系统用于循环执行联合训练步骤,直到满足循环停止条件;
训练节点用于:
在每轮循环中,执行以下步骤:
针对任一任务,确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
在循环停止后,执行以下步骤:
将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,训练节点使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型;
数据节点用于:
在每轮循环中,接收训练节点下发的模型参数集,并基于接收到的模型参数集更新本地模型。
8.根据权利要求7所述的系统,同一任务对应的样本存储于多个数据节点中,所述独立训练中的每轮迭代包括以下步骤:
任一目标数据节点将当前本地模型的模型训练特征上传到训练节点;
训练节点根据接收到的至少1个模型训练特征确定出综合模型训练特征,并将综合模型训练特征下发到目标数据节点,以使每个目标数据节点根据综合模型训练特征更新本地模型。
9.根据权利要求8所述的系统,所述模型训练特征包括:
数据节点当前的本地模型损失函数的梯度;
或者数据节点训练当前的本地模型后得到的、本地模型的参数集。
10.根据权利要求7所述的系统,所述训练节点具体用于:
接收独立训练后、任一目标数据节点发送的当前该目标数据节点本地模型损失函数的梯度;
根据接收到的至少1个梯度确定该任务的梯度。
11.根据权利要求7所述的系统,所述独立训练的训练停止条件包括迭代达到预设次数。
12.一种基于分布式数据的多任务模型训练装置,应用于训练节点,所述训练节点所在的系统中还包括至少2个数据节点,不同数据节点本地存储有相同特征的样本和相同的通用模型,训练节点存储有该通用模型;训练节点用于执行至少2种任务,不同任务使用具有不同标签类型的样本对通用模型进行训练,得到不同的模型,每种类型的标签对应一种业务含义,标签值的取值范围相同;所述装置包括:
循环单元:
循环执行以下联合训练步骤,直到满足循环停止条件:
针对任一任务,确定存储有该任务对应的标签类型的样本的数据节点为目标数据节点;对目标数据节点当前的本地模型进行独立训练,基于独立训练后的目标数据节点本地模型损失函数的梯度确定该任务的梯度;
对多个任务的梯度进行汇总,并利用梯度汇总结果更新训练节点当前的本地模型参数集;
向所述系统中的数据节点下发当前的本地模型参数集,以使所述系统中每个数据节点基于接收到的模型参数集更新本地模型;
训练单元:
循环停止后,将训练节点当前的本地模型参数集确定为联合训练结果;
针对任一任务,使用所述联合训练结果作为模型初始参数集,利用该任务对应的标签类型的样本进行训练,以得到针对该任务的特定模型。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849745.0A CN111813869B (zh) | 2020-08-21 | 2020-08-21 | 一种基于分布式数据的多任务模型训练方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849745.0A CN111813869B (zh) | 2020-08-21 | 2020-08-21 | 一种基于分布式数据的多任务模型训练方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813869A CN111813869A (zh) | 2020-10-23 |
CN111813869B true CN111813869B (zh) | 2021-03-23 |
Family
ID=72859638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010849745.0A Active CN111813869B (zh) | 2020-08-21 | 2020-08-21 | 一种基于分布式数据的多任务模型训练方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813869B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215238B (zh) * | 2020-10-29 | 2022-06-07 | 支付宝(杭州)信息技术有限公司 | 一种通用特征提取模型构建方法、系统及装置 |
CN114584471A (zh) * | 2020-11-16 | 2022-06-03 | 中国移动通信有限公司研究院 | 一种基于联邦学习的网络数据分析功能的模型训练方法及装置 |
CN112559007B (zh) * | 2020-12-14 | 2022-09-23 | 北京百度网讯科技有限公司 | 多任务模型的参数更新方法、装置及电子设备 |
CN113031520B (zh) * | 2021-03-02 | 2022-03-22 | 南京航空航天大学 | 一种跨域预测的元不变特征空间学习方法 |
CN113052322A (zh) * | 2021-03-10 | 2021-06-29 | 广东博智林机器人有限公司 | 机器学习的建模方法、装置、存储介质和处理器 |
CN113240127B (zh) * | 2021-04-07 | 2024-07-12 | 睿蜂群(北京)科技有限公司 | 基于联邦学习的训练方法、装置、电子设备及存储介质 |
CN113902473B (zh) * | 2021-09-29 | 2024-06-14 | 支付宝(杭州)信息技术有限公司 | 业务预测系统的训练方法及装置 |
CN117436499A (zh) * | 2022-07-22 | 2024-01-23 | 华为技术有限公司 | 一种模型训练系统、方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657696A (zh) * | 2018-11-05 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 多任务监督学习模型训练、预测方法和装置 |
CN110909145A (zh) * | 2019-11-29 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 针对多任务模型的训练方法及装置 |
CN111461156A (zh) * | 2019-01-18 | 2020-07-28 | 搜狗(杭州)智能科技有限公司 | 一种多任务训练方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475853B (zh) * | 2020-06-24 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 一种基于分布式数据的模型训练方法及系统 |
-
2020
- 2020-08-21 CN CN202010849745.0A patent/CN111813869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657696A (zh) * | 2018-11-05 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 多任务监督学习模型训练、预测方法和装置 |
CN111461156A (zh) * | 2019-01-18 | 2020-07-28 | 搜狗(杭州)智能科技有限公司 | 一种多任务训练方法及装置 |
CN110909145A (zh) * | 2019-11-29 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 针对多任务模型的训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111813869A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813869B (zh) | 一种基于分布式数据的多任务模型训练方法及系统 | |
CN109816589B (zh) | 用于生成漫画风格转换模型的方法和装置 | |
CN109063920B (zh) | 一种交易风险识别方法、装置、及计算机设备 | |
CN113377540A (zh) | 集群资源调度方法及装置、电子设备和存储介质 | |
CN109829432B (zh) | 用于生成信息的方法和装置 | |
CN111553488B (zh) | 一种针对用户行为的风险识别模型训练方法及系统 | |
CN109146638B (zh) | 异常金融交易群体的识别方法及装置 | |
CN109981787B (zh) | 用于展示信息的方法和装置 | |
CN104392174B (zh) | 应用程序动态行为的特征向量的生成方法及装置 | |
CN113010896B (zh) | 确定异常对象的方法、装置、设备、介质和程序产品 | |
CN110740194B (zh) | 基于云边融合的微服务组合方法及应用 | |
CN110874650B (zh) | 融合公域数据和私有数据的联盟学习方法、装置和系统 | |
CN109977905B (zh) | 用于处理眼底图像的方法和装置 | |
CN111475853B (zh) | 一种基于分布式数据的模型训练方法及系统 | |
CN111047332B (zh) | 模型训练和风险识别方法、装置及设备 | |
CN114374703B (zh) | 云手机信息的获取方法、装置、设备以及存储介质 | |
CN111899747B (zh) | 用于合成音频的方法和装置 | |
CN112330329A (zh) | 风险交易数据处理方法、装置、设备及存储介质 | |
CN113128677A (zh) | 模型生成方法和装置 | |
US8739114B2 (en) | Using infeasible nodes to select branching variables | |
CN111210279B (zh) | 一种目标用户预测方法、装置和电子设备 | |
CN109712011B (zh) | 社区发现方法和装置 | |
CN107633219A (zh) | 一体化光学字符识别方法和系统 | |
CN114462502A (zh) | 一种核身推荐模型训练方法及装置 | |
CN109597851B (zh) | 基于关联关系的特征提取方法和装置 |
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 |