多任务模型的参数更新方法、装置及电子设备与流程

文档序号:24413778发布日期:2021-03-26 20:25阅读:168来源:国知局
多任务模型的参数更新方法、装置及电子设备与流程

1.本申请涉及计算机技术领域,尤其涉及深度学习与人工智能技术领域,提出一种多任务模型的参数更新方法、装置及电子设备。


背景技术:

2.多任务学习是指优化多个目标函数的训练任务,是监督学习的一种形式。多任务学习的核心问题和难点是如何处理多个子任务的训练数据,平衡多个子任务的优化学习。
3.相关技术中,可以通过分布式训练的方式实现多任务模型的训练,即通过多台机器进行联合训练,以满足机器的数据容量限制和深度学习的性能要求。在分布式训练中,最常见的模式是参数服务器模式。集群中的节点可以分为计算节点和参数服务节点两种。其中,计算节点负责对分配到本地的训练数据(块)的计算学习,并更新对应的参数;参数服务节点采用分布式存储的方式,各自存储全局参数的一部分,并作为服务方接受计算节点的参数查询和更新请求。


技术实现要素:

4.本申请提供了一种用于多任务模型的参数更新方法、装置、电子设备、存储介质以及计算机程序产品。
5.根据本申请的一方面,提供了一种多任务模型的参数更新方法,包括:获取训练样本集,其中,所述样本集中包括多个样本及每个样本所属的任务;根据所述每个样本所属的任务,依次将所述每个样本放入对应的样本队列;在任一样本队列中的样本数量达到训练数据要求的情况下,利用所述任一样本队列中的样本,对所述多任务模型中的共享网络层及与所述任一样本队列关联的任务对应的目标子网络层进行训练,以生成与所述任一样本队列关联的任务对应的模型参数更新梯度;根据所述更新梯度,对参数服务器中所述共享网络层及所述目标子网络层的参数进行更新。
6.根据本申请的另一方面,提供了一种多任务模型的参数更新装置,包括:获取模块,用于获取训练样本集,其中,所述样本集中包括多个样本及每个样本所属的任务;分类模块,用于根据所述每个样本所属的任务,依次将所述每个样本放入对应的样本队列;训练模块,用于在任一样本队列中的样本数量达到训练数据要求的情况下,利用所述任一样本队列中的样本,对所述多任务模型中的共享网络层及与所述任一样本队列关联的任务对应的目标子网络层进行训练,以生成与所述任一样本队列关联的任务对应的模型参数更新梯度;更新模块,用于根据所述更新梯度,对参数服务器中所述共享网络层及所述目标子网络层的参数进行更新。
7.根据本申请的再一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的多任务模型的参数更新方法。
8.根据本申请的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前所述的多任务模型的参数更新方法。
9.根据本申请的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前所述的多任务模型的参数更新方法。
10.根据本申请的技术方案,解决了相关技术中,在多任务模型的分布式训练中,对一个任务进行一次训练之后,必须更新多任务模型中所有任务的模型参数,从而导致多任务模型的精度和性能下降的问题。通过根据训练样本集中每个样本所属的任务,依次将每个样本放入对应的样本队列,并在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据更新梯度,对参数服务器中的共享网络层及目标子网络层的参数进行更新。由此,通过在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度。
11.应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图用于更好地理解本方案,不构成对本申请的限定。其中:
13.图1为本申请实施例所提供的一种多任务模型的参数更新方法的流程示意图;
14.图2为本申请实施例所提供的另一种多任务模型的参数更新方法的流程示意图;
15.图3为本申请实施例所提供的再一种多任务模型的参数更新方法的流程示意图;
16.图4为本申请实施例提供的一种多任务模型的参数更新装置的结构示意图;
17.图5为用来实现本申请实施例的多任务模型的参数更新方法的电子设备的框图。
具体实施方式
18.以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
19.以下对本申请的方案涉及的技术领域进行简要说明:
20.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
21.深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在规律和表示层次,这些学习过
程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。
22.本申请实施例针对相关技术中,在多任务模型的分布式训练中,对一个任务进行一次训练之后,必须更新多任务模型中所有任务的模型参数,从而导致多任务模型的精度和性能下降的问题,提出一种多任务模型的参数更新方法。
23.下面参考附图对本申请提供的多任务模型的参数更新方法、装置、电子设备、存储介质及计算机程序产品进行详细描述。
24.图1为本申请实施例所提供的一种多任务模型的参数更新方法的流程示意图。
25.如图1所示,该多任务模型的参数更新方法,包括以下步骤:
26.步骤101,获取训练样本集,其中,样本集中包括多个样本及每个样本所属的任务。
27.需要说明的是,本申请实施例的多任务模型的参数更新方法可以由本申请实施例的多任务模型的参数更新装置执行,本申请实施例的多任务模型的参数更新装置可以配置在任意电子设备中,以执行本申请实施例的多任务模型的参数更新方法。
28.在本申请实施例中,本申请实施例的多任务模型训练方法可以应用在任意的需要同时实现多个功能的模型训练场景中,比如,可以应用在信息流推荐、广告推荐,搜索推荐等应用场景。
29.作为一种示例,本申请实施例的多任务模型训练方法可以应用在广告推荐场景中,以用于训练具有多个子任务的广告推荐模型。比如,广告推荐模型可以用于预测广告的点击率和转化率,即广告推荐模型包含两个子任务:广告的点击率和转化率。
30.其中,训练样本集,可以是根据多任务模型的实际应用场景中的历史使用数据生成的。
31.需要说明的是,在有监督训练场景中,每个样本可以包括训练数据和对训练数据的标注数据;在无监督训练场景中,每个样本可以仅包括训练数据。
32.举例来说,本申请实施例的多任务模型的参数更新方法应用在广告推荐场景中时,即多任务模型可以是广告推荐模型,广告推荐模型可以应用在具有广告推荐功能的应用场景中,从而可以从广告推荐模型所应用的应用程序的历史使用数据中获取训练样本集。比如,在无监督训练场景中,可以将应用程序中一个广告的广告类型、时长、标签等特征数据作为一个样本;在有监督训练场景中,可以将应用程序中一个广告的广告类型、时长、标签等特征数据作为一个训练数据,并将用户对该广告的点击率、观看时长、点赞数、转发数、分享数、转化率等用户操作数据,作为该训练数据对应的标注数据,进而将该训练数据和该训练数据对应的标注数据作为一个样本。进而根据上述方式根据应用程序中大量广告的历史使用数据,生成包含大量训练样本的训练样本集。
33.在本申请实施例中,在获取训练样本集时,还可以对每个样本用于训练多任务模型中的哪个任务进行标注,即训练样本集中还可以包括每个样本所属的任务。
34.步骤102,根据每个样本所属的任务,依次将每个样本放入对应的样本队列。
35.在本申请实施例中,由于对多任务模型中的多个任务的训练目标不同,因此训练各个任务所使用的样本也可以是不同的,从而可以根据训练样本集中各样本所属的任务对
训练样本集进行分类,以将属于同一任务的样本放入相同的样本队列。从而可以利用一个样本队列中的样本单独对多任务模型中的一个任务进行训练。
36.作为一种可能的实现方式,还可以在多任务模型训练的过程中,实时获取训练样本集,并在每获取到一个样本时,便根据该样本所属的任务将其放入相应的样本队列。
37.步骤103,在任一样本队列中的样本数量达到训练数据要求的情况下,利用任一样本队列中的数据,对多任务模型中的共享网络层及与任一样本队列关联的任务对应的目标子网络层进行训练,以生成与任一样本队列关联的任务对应的模型参数更新梯度。
38.其中,共享网络层,是指多任务模型的每个任务均需要使用的网络层。子网络层,是指多任务模型中由任一个任务单独使用的网络层。目标子网络层,是指当前需要训练的任务单独使用的子网络层。
39.在本申请实施例中,由于样本队列中的样本数量达到一定数量时,才能保证对任务的训练效果,因此可以预先设置批数据的数量(即训练数据要求)。从而在对训练数据集中的样本放入相应样本队列的过程中,可以实时确定各样本队列中的样本数量,并在任一样本队列中的样本数量达到预先设置的批数据的数量时,将该样本队列中的各样本依次输入多任务模型中,以利用该样本队列中的样本对多任务模型中的共享网络层进行训练,以及对与该样本队列关联的任务对应的目标子网络层进行训练,确定与该样本队列关联的任务对应的模型参数更新梯度。
40.步骤104,根据更新梯度,对参数服务器中共享网络层及目标子网络层的参数进行更新。
41.其中,参数服务器,是指用于存储多任务模型的模型参数的服务器,可以接受计算节点的参数查询和更新请求,以对存储的模型参数进行更新。
42.在本申请实施例中,利用与任务关联的样本队列中的样本对多任务模型中的该任务进行一轮训练之后,可以将生成的模型参数更新梯度发送至参数服务器,以使参数服务器根据生成的模型参数更新梯度中包括的对目标子网络层的更新梯度,对目标子网络层的模型参数进行更新,以及可以根据生成的模型参数更新梯度中包括的对共享网络层的更新梯度,对共享网络层的模型参数进行更新。
43.根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,依次将每个样本放入对应的样本队列,并在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据更新梯度,对参数服务器中的共享网络层及目标子网络层的参数进行更新。由此,通过在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度。
44.在本申请一种可能的实现形式中,可以通过标签技术对每个样本所属的任务进行标注,以实现对训练样本集的分类,以进一步提升多任务模型的训练效果。
45.下面结合图2,对本申请实施例提供的多任务模型的参数更新方法进行进一步说明。
46.图2为本申请实施例所提供的另一种多任务模型的参数更新方法的流程示意图。
47.如图2所示,该多任务模型的参数更新方法,包括以下步骤:
48.步骤201,获取训练样本集,其中,样本集中包括多个样本及每个样本所属的任务。
49.上述步骤201的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
50.步骤202,根据每个样本所属的任务,确定每个样本对应的任务标签。
51.作为一种可能的实现方式,可以在每个样本中添加一个属性域,之后根据每个样本所属的任务确定每个样本对应的任务标签,进而根据每个样本对应的任务标签确定每个样本的属性域的取值,以通过属性域的取值标示样本的任务标签。
52.举例来说,多任务模型为广告推荐模型,广告推荐模型的包含两个任务:任务1为预测广告点击率,任务2为预测广告转化率。若样本1所属的任务为任务1,则可以将样本1对应的任务标签确定为1,并将样本1的属性域的取值确定为[1];若样本2所属的任务为任务2,则可以将样本2对应的任务标签确定为2,并将样本2的属性域的取值确定为[2];若样本3所属的任务为任务1与任务2,则可以将样本3对应的任务标签确定为1和2,并将样本3的属性域的取值确定为[1,2];依次类推,直至确定出训练样本集中所有样本的任务标签。
[0053]
步骤203,根据每个样本对应的任务标签,依次将每个样本放入任务标签对应的样本队列中。
[0054]
在本申请实施例中,确定出每个样本对应的任务标签之后,可以将具有相同任务标签的样本划分至同一个样本队列。
[0055]
作为一种示例,样本对应的任务标签可以有一个或多个,从而可以根据样本对应的任务标签的数量对训练样本集进行划分,以确定各样本对应的样本队列。
[0056]
情况一
[0057]
在任一样本对应一个任务标签的情况下,确定该任务标签对应的样本队列中均包含任一样本。比如,若样本1对应的任务标签为1,则可以将样本1放入任务标签1对应的样本队列中,其中,任务标签1对应的样本队列中包含可以用于训练任务1的所有样本。
[0058]
情况二
[0059]
在任一样本对应多个任务标签的情况下,确定多个任务标签中的每个任务标签对应的样本队列中均包含任一样本。
[0060]
举例来说,若样本2对应的任务标签为1和2,则可以既将样本2放入任务标签1对应的样本队列中,又将样本2放入任务标签2对应的样本队列中,以使样本2既可以用于训练任务1,又可以用于训练任务2。
[0061]
步骤204,在任一样本队列中的样本数量达到训练数据要求的情况下,利用任一样本队列中的样本,对多任务模型中的共享网络层及与任一样本队列关联的任务对应的目标子网络层进行训练,以生成与任一样本队列关联的任务对应的模型参数更新梯度。
[0062]
上述步骤204的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
[0063]
步骤205,根据任一样本队列关联的任务标签,确定目标参数服务器。
[0064]
在本申请实施例中,不同任务对应的模型参数可以利用不同的参数服务器进行存储,以便于多任务模型的局部参数更新。因此,可以根据与各参数服务器存储的模型参数关
联的任务,确定各参数服务器对应的任务标签,以建立任务标签与参数服务器的对应关系,对各参数服务器存储的模型参数所属的任务进行标示。从而,利用样本队列中的样本对多任务模型中的任一个任务完成一轮训练并生成模型参数更新梯度之后,可以根据样本队列对应的任务标签,以及任务标签与参数服务器的对应关系,确定与该任务标签对应的目标参数服务器。
[0065]
步骤206,将生成的模型参数更新梯度发送给目标参数服务器,以使目标参数服务器,根据更新梯度对共享网络层及目标子网络层的参数进行更新。
[0066]
在本申请实施例中,确定出存储当前训练的任务对应的目标参数服务器之后,可以将该任务对应的模型参数更新梯度发送至目标参数服务器,以使目标参数服务器根据对共享网络层的更新梯度,对存储的共享网络层的模型参数进行更新,以及根据对目标子网络层的更新梯度,对存储的目标子网络层的模型参数进行更新。
[0067]
根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,确定每个样本对应的任务标签,并根据每个样本对应的任务标签,依次将每个样本放入任务标签对应的样本队列中,之后在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据任一样本队列关联的任务标签,确定目标参数服务器,以将生成的模型参数更新梯度发送给目标参数服务器,以使目标参数服务器,根据更新梯度对共享网络层及目标子网络层的参数进行更新。由此,通过在标签技术对每个样本所属的任务进行标注,以便于对训练样本集进行分类,并通过不同的参数服务器存储不同任务对应的模型参数,进而在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而不仅实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度,而且进一步提升了局部参数更新的便捷性。
[0068]
在本申请一种可能的实现形式中,还可以根据多任务模型中每个任务的权重,约束各任务对共享网络层的模型参数的更新幅度,以降低多任务的任务偏向性,进一步提升多任务模型的精度。
[0069]
下面结合图3,对本申请实施例提供的多任务模型的参数更新方法进行进一步说明。
[0070]
图3为本申请实施例所提供的再一种多任务模型的参数更新方法的流程示意图。
[0071]
如图3所示,该多任务模型的参数更新方法,包括以下步骤:
[0072]
步骤301,获取训练样本集,其中,样本集中包括多个样本及每个样本所属的任务。
[0073]
步骤302,根据每个样本所属的任务,依次将每个样本放入对应的样本队列。
[0074]
步骤303,在任一样本队列中的样本数量达到训练数据要求的情况下,利用任一样本队列中的样本,对多任务模型中的共享网络层及与任一样本队列关联的任务对应的目标子网络层进行训练,以生成与任一样本队列关联的任务对应的模型参数更新梯度。
[0075]
上述步骤301

303的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
[0076]
步骤304,确定任一样本队列关联的任务的权重。
[0077]
在本申请实施例中,由于对任务训练的次数越多,该任务对应的样本对多任务模型的优化效果越好,因此可以根据对任务训练的次数,即与任务关联的样本队列中的样本数量达到训练数据要求的次数,确定各任务的权重。
[0078]
作为一种可能的实现方式,可以在利用样本队列中的样本对多任务模型中的共享网络层进行训练,以及对与该样本队列关联的任务对应的目标子网络层进行训练,并生成该任务对应的模型参数更新梯度之后,可以确定该任务关联的样本队列中的样本数量达到训练数据要求的次数,并将该次数确定为该任务的权重。
[0079]
举例来说,在与任务1关联的样本队列中的样本数量第1次达到训练数据要求时,可以将任务1的权重确定为1;在与任务1关联的样本队列中的样本数量第2次达到训练数据要求时,可以将任务1的权重确定为2。
[0080]
步骤305,根据权重及更新梯度,对参数服务器中共享网络层及目标子网络层的参数进行更新。
[0081]
在本申请实施例中,确定出当前训练的任务的权重之后,可以根据该任务的权重与生成的该任务对应的模型参数更新梯度,对参数服务器中共享网络层的模型参数进行更新,以及对任务对应的目标子网络层的模型参数进行更新。
[0082]
作为一种可能的实现方式,由于多任务模型中的共享网络层,可以对所有任务对应的样本队列中的样本进行处理,可以影响多任务模型中所有任务的性能,而每个任务对应的子网络层,仅对该任务对应的样本队列中的样本进行处理,而与多任务模型中其他任务的样本和性能均无关。因此,可以仅在更新共享网络层的参数时引入任务的权重,即在本申请实施例一种可能的实现方式中,上述步骤305,可以包括:
[0083]
根据更新梯度,对目标子网络层的参数进行更新;
[0084]
根据权重及更新梯度,确定共享网络层的更新梯度;
[0085]
根据共享网络层的更新梯度,对共享网络层的参数进行更新。
[0086]
在本申请实施例中,由于每个任务对应的子网络层,仅对该任务对应的样本队列中的样本进行处理,而与多任务模型中其他任务的样本和性能均无关,因此可以根据通过样本队列生成的模型参数更新梯度,直接对相应任务对应的子网络层中的参数进行更新,以使目标子网络层的参数更新过程仅与相应任务对应的样本队列有关,而不依赖于其他任务对应的样本,从而降低了多任务模型训练的任务偏向性,提升了各任务的训练精度。
[0087]
在本申请实施例中,由于多任务模型中的共享网络层,可以对所有任务对应的样本队列中的样本进行处理,可以影响多任务模型中所有任务的性能。因此,可以根据通过每个任务对应的样本队列生成的模型参数更新梯度,共同对多任务模型中的共享网络层的模型参数进行更新,以使共享网络层在各任务中均可以具有较好的处理性能。
[0088]
在本申请实施例一种可能的实现方式中,由于任务的权重,可以反映通过该任务对应的样本队列生成的梯度,在多任务模型训练过程中进行模型参数更新时的重要程度,因此,可以根据模型参数更新梯度及每个任务的权重,确定共享网络层的更新梯度,以根据共享网络层的更新梯度更新共享网络层中的模型参数时,通过任务的权重平衡各任务的样本队列对共享网络层的优化效果,保证共享网络层对各任务进行处理时均可以具有较高的精度。
[0089]
可选的,可以将任务对模型参数的更新梯度与任务的权重的乘积,确定为共享网
络层的更新梯度,并将共享网络层的更新梯度发送至参数服务器,以使参数服务器根据共享网络层的更新梯度,对共享网络层的参数进行更新。
[0090]
根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,依次将每个样本放入对应的样本队列,并在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据任务的权重及更新梯度,对参数服务器中共享网络层及目标子网络层的参数进行更新。由此,通过在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,并根据多任务模型中每个任务的权重,约束各任务对共享网络层的模型参数的更新幅度,从而不仅实现了分布式训练多任务模型时的局部参数更新,而且降低了多任务的任务偏向性,进一步提升了多任务模型的精度。
[0091]
为了实现上述实施例,本申请还提出一种多任务模型的参数更新装置。
[0092]
图4为本申请实施例提供的一种多任务模型的参数更新装置的结构示意图。
[0093]
如图4所示,该多任务模型的参数更新装置40,包括:
[0094]
获取模块41,用于获取训练样本集,其中,样本集中包括多个样本及每个样本所属的任务;
[0095]
分类模块42,用于根据每个样本所属的任务,依次将每个样本放入对应的样本队列;
[0096]
训练模块43,用于在任一样本队列中的样本数量达到训练数据要求的情况下,利用任一样本队列中的样本,对多任务模型中的共享网络层及与任一样本队列关联的任务对应的目标子网络层进行训练,以生成与任一样本队列关联的任务对应的模型参数更新梯度;
[0097]
更新模块44,用于根据更新梯度,对参数服务器中共享网络层及目标子网络层的参数进行更新。
[0098]
在实际使用时,本申请实施例提供的多任务模型的参数更新装置,可以被配置在任意电子设备中,以执行前述多任务模型的参数更新方法。
[0099]
根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,依次将每个样本放入对应的样本队列,并在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据更新梯度,对参数服务器中的共享网络层及目标子网络层的参数进行更新。由此,通过在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度。
[0100]
在本申请一种可能的实现形式中,上述分类模块42,包括:
[0101]
第一确定单元,用于根据每个样本所属的任务,确定每个样本对应的任务标签;
[0102]
分类单元,用于根据每个样本对应的任务标签,依次将每个样本放入任务标签对
应的样本队列中。
[0103]
进一步的,在本申请另一种可能的实现形式中,上述分类单元,包括:
[0104]
第一确定子单元,用于在任一样本对应多个任务标签的情况下,确定多个任务标签中的每个任务标签对应的样本队列中均包含任一样本。
[0105]
进一步的,在本申请再一种可能的实现形式中,上述更新模块44,包括:
[0106]
第二确定单元,用于根据任一样本队列关联的任务标签,确定目标参数服务器;
[0107]
发送单元,用于将生成的模型参数更新梯度发送给目标参数服务器,以使目标参数服务器,根据更新梯度对共享网络层及目标子网络层的参数进行更新。
[0108]
进一步的,在本申请又一种可能的实现形式中,上述更新模块44,包括:
[0109]
第三确定单元,用于确定任一样本队列关联的任务的权重;
[0110]
更新单元,用于根据权重及更新梯度,对参数服务器中共享网络层及目标子网络层的参数进行更新。
[0111]
进一步的,在本申请又一种可能的实现形式中,上述更新单元,包括:
[0112]
第一更新子单元,用于根据更新梯度,对目标子网络层的参数进行更新;
[0113]
第二确定子单元,用于根据权重及更新梯度,确定共享网络层的更新梯度;
[0114]
第二更新子单元,用于根据共享网络层的更新梯度,对共享网络层的参数进行更新。
[0115]
需要说明的是,前述对图1、图2、图3所示的多任务模型的参数更新方法实施例的解释说明也适用于该实施例的多任务模型的参数更新装置40,此处不再赘述。
[0116]
根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,确定每个样本对应的任务标签,并根据每个样本对应的任务标签,依次将每个样本放入任务标签对应的样本队列中,之后在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据任一样本队列关联的任务标签,确定目标参数服务器,以将生成的模型参数更新梯度发送给目标参数服务器,以使目标参数服务器,根据更新梯度对共享网络层及目标子网络层的参数进行更新。由此,通过在标签技术对每个样本所属的任务进行标注,以便于对训练样本集进行分类,并通过不同的参数服务器存储不同任务对应的模型参数,进而在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而不仅实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度,而且进一步提升了局部参数更新的便捷性。
[0117]
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0118]
图5示出了可以用来实施本申请的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本申请的实现。
[0119]
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0120]
设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0121]
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如多任务模型的参数更新方法。例如,在一些实施例中,多任务模型的参数更新方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的多任务模型的参数更新方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行多任务模型的参数更新方法。
[0122]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0123]
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0124]
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0125]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0126]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
[0127]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps(virtual private server,虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0128]
根据本申请实施例的技术方案,通过根据训练样本集中每个样本所属的任务,依次将每个样本放入对应的样本队列,并在任一样本队列中的样本数量达到训练数据要求的情况下,利用该样本队列中的数据,对多任务模型中的共享网络层及与该样本队列关联的任务对应的目标子网络层进行训练,以生成与该样本队列关联的任务对应的模型参数更新梯度,进而根据更新梯度,对参数服务器中的共享网络层及目标子网络层的参数进行更新。由此,通过在多任务模型中的某个任务对应的样本数量达到批数据要求时,仅利用该任务对应的样本对多任务模型的共享网络层以及该任务对应的子网络层进行训练,而无需更新其他任务对应的子网络层的参数,从而实现了分布式训练多任务模型时的局部参数更新,提升了多任务模型的精度。
[0129]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0130]
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1