1.本发明涉及人工智能领域,具体而言,涉及一种模型训练方法、装置、计算机可读存储介质及计算机设备。
背景技术:2.为了将预训练模型应用到下游任务,传统的微调方法通常需要微调模型所有参数。对于不同下游任务,往往需要保存多个不同微调模型。随着大规模预训练模型的流行以及下游任务的多样性,微调的训练难度和参数保存难度也随之增加。lightweight fine-tuning中的prefix-tuning通常冻结预训练模型,仅利用少量额外任务进行训练得到前缀参数,以适应下游任务,不仅避免了预训练模型先验知识的遗忘,也提高了训练的时间效率和参数存储的空间效率。然而,由于前缀参数是人为设置的且个数固定,因此采用这样的前缀来微调模型无法完全适配不同任务。
3.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:4.本发明实施例提供了一种模型训练方法、装置、计算机可读存储介质及计算机设备,以至少解决添加前缀的预训练模型由于前缀过长或者过短导致模型出现过拟合或者欠拟合的技术问题。
5.根据本发明实施例的一个方面,提供了一种模型训练方法,包括:获取初始任务模型,其中,所述初始任务模型包括预训练模型以及一组前缀参数,所述前缀参数为所述初始任务模型的超参数,用于使所述初始任务模型适配不同任务;基于训练样本数据对所述初始任务模型进行训练,得到所述初始任务模型中与所述前缀参数对应的目标权重,其中,所述训练样本数据与目标任务对应;基于所述目标权重及所述初始任务模型,确定目标任务模型。
6.可选地,所述基于训练样本数据对所述初始任务模型进行训练,得到所述初始任务模型中与所述前缀参数对应的目标权重,包括:基于所述预训练模型,确定与所述前缀参数对应的待定权重;基于所述训练样本数据对所述初始任务模型的所述待定权重以及所述前缀参数进行优化训练,得到目标前缀参数以及与所述目标前缀参数对应的目标权重。
7.可选地,所述基于所述预训练模型,确定与所述前缀参数对应的待定权重,包括:在所述预训练模型包括多个网络层的情况下,所述待定权重包括:层内待定权重;确定所述前缀参数中任意一个前缀参数对应的层内待定权重,包括:确定所述任意一个前缀参数对应的目标网络层,其中,所述目标网络层为所述预训练模型包括的多个网络层之一;获取所述预训练模型中位于所述目标网络层的上一网络层的模型参数;基于所述上一网络层的模型参数确定所述层内待定权重。
8.可选地,所述基于所述上一网络层的模型参数确定所述层内待定权重,包括:根据所述上一网络层的模型参数,获取所述上一网络层的学习特征;根据所述学习特征,构建所
述层内待定权重。
9.可选地,所述根据所述学习特征,构建所述层内待定权重,包括:生成待定因数;通过逻辑斯蒂函数将待定因数与所述学习特征转换到概率值区间,得到所述层内待定权重。
10.可选地,所述基于所述预训练模型,确定与所述前缀参数对应的待定权重,包括:在所述预训练模型包括多个网络层的情况下,所述待定权重包括:层间待定权重;确定所述前缀参数中任意一个前缀参数对应的层间待定权重,包括:确定所述多个网络层中任意一个网络层对应的层间待定权重;确定所述前缀参数中任意一个前缀参数对应的目标网络层,其中,所述目标网络层为所述多个网络层之一;将所述目标网络层对应的层间待定权重确定为所述任意一个前缀参数对应的层间待定权重。
11.可选地,上述方法还包括:发送所述目标权重及所述前缀参数至存储有所述预训练模型的第一目标设备,其中,所述第一目标设备用于根据所述目标权重、所述前缀参数以及所述预训练模型生成所述目标任务模型。
12.可选地,所述预训练模型包括以下任意之一:预训练语言模型,预训练图像识别模型。
13.根据本发明实施例的另一方面,还提供了一种模型训练方法,包括:发送训练样本数据至第二目标设备,其中,所述训练样本数据与目标任务对应;接收第二目标设备返回的目标权重以及前缀参数,其中,所述前缀参数为初始任务模型的一组超参数,用于使所述初始任务模型适配不同任务,所述目标权重为基于训练样本数据对所述初始任务模型进行训练得到的与所述前缀参数对应的权重;基于所述目标权重、所述前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,所述预训练模型与所述初始任务模型中的预训练模型相同。
14.根据本发明实施例的另一方面,还提供了一种模型训练装置,包括:获取模块,用于获取初始任务模型,其中,所述初始任务模型包括预训练模型以及一组前缀参数,所述前缀参数为所述初始任务模型的超参数,用于使所述初始任务模型适配不同任务;训练模块,用于基于训练样本数据对所述初始任务模型进行训练,得到所述初始任务模型中与所述前缀参数对应的目标权重,其中,所述训练样本数据与目标任务对应;第一确定模块,用于基于所述目标权重及所述初始任务模型,确定目标任务模型。
15.根据本发明实施例的另一方面,还提供了一种模型训练装置,包括:发送模块,用于发送训练样本数据至第二目标设备,其中,所述训练样本数据与目标任务对应;接收模块,用于接收第二目标设备返回的目标权重以及前缀参数,其中,所述前缀参数为初始任务模型的一组超参数,用于使所述初始任务模型适配不同任务,所述目标权重为基于训练样本数据对所述初始任务模型进行训练得到的与所述前缀参数对应的权重;第二确定模块,用于基于所述目标权重、所述前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,所述预训练模型与所述初始任务模型中的预训练模型相同。
16.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的模型训练方法。
17.根据本发明实施例的另一方面,还提供了一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序;所述处理器,用于执行所述存储器中存储的计算机程
序,所述计算机程序运行时使得所述处理器执行上述任意一项所述的模型训练方法。
18.在本发明实施例中,采用为初始任务模型中的前缀参数匹配权重的方式,通过模型训练为不同的前缀参数匹配不同的目标权重值,适当地将每一个前缀参数对模型的影响进行放缩,达到了动态调整预训练模型的前缀参数的“长度”的目的,从而实现了改进初始任务模型以提高其处理特定任务时的性能的技术效果,进而解决了添加前缀的预训练模型由于前缀过长或者过短导致模型出现过拟合或者欠拟合的技术问题。
附图说明
19.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
20.图1示出了一种用于实现模型训练方法的计算机终端的硬件结构框图;
21.图2是根据本发明实施例的模型训练方法一的流程图;
22.图3是根据本发明可选实施例提供的动态前缀微调模型的结构示意图;
23.图4是根据本发明实施例的模型训练方法二的流程图;
24.图5是根据本发明实施例的模型训练装置一的结构框图;
25.图6是根据本发明实施例的模型训练装置二的结构框图;
26.图7是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.首先,在对本技术实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
30.预训练模型,即用较大的数据集训练好的初始模型,在将预训练模型应用于目标任务时,需要根据目标任务的特性对该初始模型进行精调,从而达到使精调后的模型适配于目标任务的目的。
31.轻量微调(lightweight fine-tuning),旨在在冻结预训练模型参数的基础上,仅利用少量参数调整模型以使得调整后的模型适配于特定目标任务并获得较好的效果的方法。
32.前缀微调,(prefix-tuning),一种轻量微调方法,将一个连续的特定于任务的向量序列添加到输入,称之为前缀,与提示微调(prompt-tuning)不同的是,前缀完全由自由参数组成,与真正的token不对应,类似于一种虚拟token,对模型进行优化时,前缀微调仅优化前缀。通过在输入文本数据或预训练模型每层的前面给定一些前缀,可以更好地挖掘预训练模型的先验知识,使模型在低资源场景或少量训练参数下表现出良好的效果。
33.前缀参数,即前缀微调方法中的前缀,由自由参数组成,针对模型进行优化时,前缀微调仅优化前缀参数而冻结预训练模型的模型参数。
34.实施例1
35.根据本发明实施例,还提供了一种模型训练的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
36.本技术实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现模型训练方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为bus总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
37.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
38.存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的模型训练方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
39.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
40.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与
计算机终端10的用户界面进行交互。
41.在上述运行环境下,本技术提供了如图2所示的模型训练方法一。图2是根据本发明实施例的模型训练方法一的流程图。如图2所示,该方法包括如下步骤:
42.步骤s202,获取初始任务模型,其中,初始任务模型包括预训练模型以及一组前缀参数,前缀参数为初始任务模型的超参数,用于使初始任务模型适配不同任务。
43.本实施例中,预训练模型为用较大的数据集训练好的初始模型,在后续的针对目标任务进行的精细微调中,预训练模型本身的参数不再进行调整,该预训练模型相当于被“冻结”了。本步骤中的一组前缀参数和预训练模型组成初始任务模型即为前缀微调模型(prefix-tuning),前缀参数经过微调后,使得前缀参数结合预训练模型得到的模型可以适配于下游任务。
44.需要说明的是,前缀参数作为初始任务模型的超参数,是作为一种输入直接由工作人员设置的参数,其参数个数固定,而预训练模型中的模型参数基于大数据集训练得到的。此外,前缀参数的值也可以通过训练优化得到,例如在冻结了预训练模型,保持其模型参数不变之后,采用小规模的样本集训练该前缀参数,得到前缀参数的具体的值。
45.步骤s204,基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,其中,训练样本数据与目标任务对应。
46.由于前缀参数是一种个数固定、由工作人员设置的超参数,而预训练模型的学习能力不一,需要的参数量也不同,因此若前缀参数的个数过多或者过少,可能引起整个模型的过拟合或者欠拟合,导致处理目标任务的效果不佳。然而,现有技术中无法改变前缀参数的个数,因此无法解决该技术问题。本步骤中,通过为前缀参数匹配目标权重,若为部分前缀参数赋予较低的目标权重,则对当前前缀参数起到抑制作用,降低了该部分前缀参数对于执行下游目标任务的影响,相当于将该预训练模型对应的前缀参数的整体“长度”降低,变相地对前缀参数的“个数”进行调整,使得调整后的目标任务模型更加适配于执行目标任务。反之,还可以通过目标权重对另一些前缀参数进行放大。
47.步骤s206,基于目标权重及初始任务模型,确定目标任务模型。需要说明的是,目标任务模型与初始任务模型中都包括预训练模型,且预训练模型的参数保持一致,目标任务模型通过为模型中的前缀参数添加目标权重,使得初始任务模型向适配于执行目标任务的方向进一步优化,提高了处理目标任务的模型性能。
48.通过上述步骤,采用为初始任务模型中的前缀参数匹配权重的方式,通过模型训练为不同的前缀参数匹配不同的目标权重值,适当地将每一个前缀参数对模型的影响进行放缩,达到了动态调整预训练模型的前缀参数的“长度”的目的,从而实现了改进初始任务模型以提高其处理特定任务时的性能的技术效果,进而解决了添加前缀的预训练模型由于前缀过长或者过短导致模型出现过拟合或者欠拟合的技术问题。
49.作为一种可选的实施例,为了获得目标权重的值,可以采用模型训练的方式不断优化得到。首先,可以基于预训练模型,确定与前缀参数对应的待定权重;然后基于训练样本数据对初始任务模型的待定权重以及前缀参数进行优化训练,得到目标前缀参数以及与目标前缀参数对应的目标权重。
50.基于预训练模型确定的待定权重可以是一个权重的初始值,在确定待定权重时可以根据预训练模型的结构、模型参数、以及预训练模型已经习得的一些特征对待定权重进
行初始化。本可选的实施例中,可以将前缀参数的权重的优化过程与前缀参数本身优化的过程在基于机器学习的训练中同步进行,也可以仅对权重进行优化,基于训练样本数据对初始任务模型的待定权重进行优化训练,得到目标权重。需要说明的是,多个目标权重的数值不需要做归一化处理,通过训练优化,若部分前缀参数的目标权重的值接近0,则意味着将这部分前缀参数对模型的影响“剔除”,虽然没有删除这些前缀参数,但是却起到了变相减少前缀参数数量的作用,因此可以使得目标任务模型发挥更好的性能。
51.作为一种可选的实施例,基于预训练模型,确定与前缀参数对应的待定权重,可以包括如下方式:在预训练模型包括多个网络层的情况下,待定权重包括:层内待定权重;确定前缀参数中任意一个前缀参数对应的层内待定权重,包括:确定任意一个前缀参数对应的目标网络层,其中,目标网络层为预训练模型包括的多个网络层之一;获取预训练模型中位于目标网络层的上一网络层的模型参数;基于上一网络层的模型参数确定层内待定权重。
52.可选的,预训练模型可以是包括多个网络层的深度神经网络模型,每一层网络层均对应了一些前缀参数,层内待定权重即是为每一个网络层对应的多个前缀参数分配的层内权重。通过为每一个网络层的前缀参数分配层内待定权重,并采用模型训练的方式将层内待定权重优化为层内目标权重,可以实现为不同网络层赋予不同数量的前缀参数的目的,达到动态调整前缀的学习能力的效果。对于预训练模型来说,每层网络层蕴含的知识以及学习能力不一,不同任务所需前缀长度也不一,因此现有技术中为每一个网络层赋予数量相同的前缀参数的方式无法完全适配模型的不同网络层以及不同任务。通过为不同网络层的前缀参数添加层内待定权重,并基于层内待定权重训练得到层内目标权重,可以将每一网络层对应的部分前缀参数进行抑制或者放大,相当于降低或者提高了该网络层对应的前缀参数的个数,实现了对整个轻量微调模型的前缀参数的个数安排的动态调节,使得模型可以更好地适配目标任务。
53.作为一种可选的实施例,基于上一网络层的模型参数确定层内待定权重,可以包括如下步骤:根据上一网络层的模型参数,获取上一网络层的学习特征;根据学习特征,构建层内待定权重。
54.通过获取预训练模型的上一网络层的模型参数,然后根据该模型参数指定当前网络层的层内待定权重,可以实现利用上一层的信息、知识和训练结果帮助下一层的参数的初始构建。可选的,上一网络层的学习特征可以包括分类特征cls(classification,简称cls),也可以采用上一层的其他token来辅助构建层内待定权重。
55.作为一种可选的实施例,根据学习特征,构建层内待定权重,可以包括生成待定因数;通过逻辑斯蒂函数将待定因数与学习特征转换到概率值区间,得到层内待定权重。其中,待定因数表示需要在模型训练过程中自动学习的层内待定权重中的参数,通过逻辑斯蒂函数可以将待定因数与上一网络层的学习特征转换为概率值,概率值区间的范围是[0,1],并将该概率值确定为层内待定权重的值,后续可以将层内待定权重与初始任务模型结合为待训练模型,然后使用训练样本数据进行训练,得到待定因数的值,即可确定每个前缀参数对应的层内待定权重的目标值。
[0056]
可选的,可以根据如下公式构建层内待定权重:
[0057]
αi=sigmoid(w
·
[cls]
i-1
)
[0058]
其中,αi表示所述目标网络层对应的待定权重,i表示所述目标网络层的层数,w表示待定因数,[cls]
i-1
表示所述目标网络层的上一网络层的学习特征,sigmoid表示逻辑斯蒂函数。
[0059]
作为一种可选的实施例,还可以采用如下方式确定与前缀参数对应的待定权重:在预训练模型包括多个网络层的情况下,待定权重包括层间待定权重;确定前缀参数中任意一个前缀参数对应的层间待定权重,包括:确定多个网络层中任意一个网络层对应的层间待定权重;确定前缀参数中任意一个前缀参数对应的目标网络层,其中,目标网络层为多个网络层之一;将目标网络层对应的层间待定权重确定为任意一个前缀参数对应的层间待定权重。
[0060]
相对于层内待定权重,层间待定权重可以被看做粗粒度的权重系数,对应于预训练模型的不同网络层,每一个网络层可以对应一个层间待定权重,该网络层对应的每一个前缀参数均需采用该层间待定权重进行抑制或者放大,该权重系数可以将该网络层的所有前缀参数与该网络层的预训练模型的模型参数之间的权重比例进行调整,该层间待定权重也可以通过模型训练自动学习得到,即学习得到层间待定权重对应的目标值,目标值即为目标权重。
[0061]
作为一种可选的实施例,在预训练模型包括多个网络层的情况下,待定权重可以包括层间待定权重和层内待定权重两部分,对应的目标权重也可以包括层间目标权重和层内目标权重两部分。经过模型训练优化,层间待定权重优化为层间目标权重,层内待定权重优化为层内目标权重。层间目标权重可以被称为粗粒度参数,层内目标权重可以被称为细粒度参数,对于初始任务模型的前缀参数而言,将原本的前缀参数分别乘上细粒度参数和粗粒度参数即可得到目标任务模型中的目标前缀参数。例如,目标任务模型的第i层参数可以表示如下:hi′←
[hi;λi·
αi·
δhi]。
[0062]
其中,hi表示初始任务模型中预训练模型的第i层的模型参数与该层对应的前缀参数的和,δhi表示对应预训练模型的第i层的前缀参数,λi表示第i层对应的层间目标权重,即粗粒度参数,αi表示第i层对应的层内目标权重,即细粒度参数,hi′
表示引入了前缀参数的权重之后的目标任务模型的第i层的参数。
[0063]
作为一种可选的实施例,获得了目标任务模型之后,还可以发送目标权重及前缀参数至存储有预训练模型的第一目标设备,其中,第一目标设备用于根据目标权重、前缀参数以及预训练模型生成目标任务模型。本实施例中,用于执行下游任务的第一目标设备中可以预先存储有预训练模型,而仅从服务器中下载目标权重以及前缀参数即可在本地生成目标任务模型,通过十分轻量的前缀参数数据以及目标权重数据的传输和存储,大大减轻了第一目标设备端的模型数据传输压力以及模型数据存储的压力。
[0064]
作为一种可选的实施例,预训练模型包括以下任意之一:预训练语言模型,预训练图像识别模型。其中,预训练语言模型可以包括prefix-tuning模型,prefix-tuning模型对输入和预训练模型每层的开头都添加可训练的连续token,称作前缀(prefix),训练时固定预训练模型的模型参数,仅更新前缀参数。此外,上述方法还可以应用于基于transformers的语言模型中,以实现能提高参数利用率,减少参数的冗余,减少过拟合,帮助在公开数据集上训练得到的预训练模型在处理下游任务时的效果提升,更好的完成任务。例如,在预训练模型为语言模型,且目标任务为推理任务时,采用prefix-tuning模型来推理问题与答案
是否存在关联关系的正确率为66%,通过为前缀参数添加目标权重,可以将推理任务的正确率提高到68%,显然提高了模型在特定下游任务上的表现。
[0065]
图3是根据本发明可选实施例提供的动态前缀微调模型的结构示意图,如图3所示,prefix-tuning表示前缀微调模型,该模型由固定长度、固定数量的前缀参数以及冻结的预训练模型组成。dynamic prefix-tuning表示动态前缀微调模型,该模型由前缀参数、前缀参数对应的目标权重以及冻结的预训练模型组成。图3中的预训练模型包括多个网络层,即图中的第1层至第n层,每层网络层对应预训练模型的模型参数以及一层前缀参数。图例中的细粒度参数即为层内目标权重或者层内待定权重,粗粒度参数即为层间目标权重或者层间待定权重,取决于该动态前缀微调模型是否经过了模型训练。由图中可知,每一个粗粒度参数覆盖每层内的所有前缀参数,即该层的所有前缀参数均对应同一个粗粒度参数,该参数可以调整该层的前缀参数整体与该层的模型参数之间的权重比例;细粒度参数则可以为层中的每一个前缀参数赋予一个权重值,通过该细粒度参数可以对每一层内的前缀参数进行抑制或者放大,实现不同层之间的前缀参数的“个数”的动态调整,使得最后得到的动态前缀微调模型与目标任务更加适配,其中,图3中的动态前缀微调模型即为上述方法中的目标任务模型的一个具体实施例。
[0066]
实施例2
[0067]
本技术还提供了如图4所示的模型训练方法二,图4是根据本发明实施例的模型训练方法二的流程图。如图4所示,该方法包括如下步骤:
[0068]
步骤s402,发送训练样本数据至第二目标设备,其中,训练样本数据与目标任务对应。
[0069]
步骤s404,接收第二目标设备返回的目标权重以及前缀参数,其中,前缀参数为初始任务模型的一组超参数,用于使初始任务模型适配不同任务,目标权重为基于训练样本数据对初始任务模型进行训练得到的与前缀参数对应的权重。
[0070]
步骤s406,基于目标权重、前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,预训练模型与初始任务模型中的预训练模型相同。
[0071]
通过上述步骤,提供了一种可以应用在终端设备的方法,通过终端设备与第二目标设备之间的数据交互以实现快速训练得到目标任务模型并将该目标任务模型在终端设备中生成。本实施例中的第二目标设备可以为服务器,终端设备用于执行下游的目标任务,其需要获取能够执行目标任务的目标任务模型,此时终端设备可以将与目标任务对应的训练样本数据发送给第二目标设备,第二目标设备基于模型类型为前缀微调模型的初始任务模型进行训练,为模型中的前缀参数添加目标权重,得到适配于目标任务的目标任务模型,然后第二目标设备可以仅将前缀参数以及目标权重返回给终端设备即可,这两种数据都是轻量级的数据,传输速度快,终端存储无压力,终端设备基于本身预先存储的预训练模型结合前缀参数以及目标权重即可在终端设备中生成目标任务模型,完成了模型的快速创建于传输,提高了模型的生成速度以及对于目标任务的适配性,并且通过为前缀参数添加权重,提高了模型的性能表现。
[0072]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0073]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的模型训练方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
[0074]
实施例3
[0075]
根据本发明实施例,还提供了一种用于实施上述模型训练方法一的装置,图5是根据本发明实施例的模型训练装置一的结构框图,如图5所示,该模型训练装置一50包括:获取模块52,训练模块54和第一确定模块56,下面对该装置的各个部分进行说明:
[0076]
获取模块52,用于获取初始任务模型,其中,初始任务模型包括预训练模型以及一组前缀参数,前缀参数为初始任务模型的超参数,用于使初始任务模型适配不同任务;
[0077]
训练模块54,连接于上述获取模块52,用于基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,其中,训练样本数据与目标任务对应;
[0078]
第一确定模块56,连接于上述训练模块54,用于基于目标权重及初始任务模型,确定目标任务模型。
[0079]
此处需要说明的是,上述获取模块52,训练模块54和第一确定模块56对应于实施例1中的步骤s202至步骤s206,多个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0080]
实施例4
[0081]
根据本发明实施例,还提供了一种用于实施上述模型训练方法二的装置,图6是根据本发明实施例的模型训练装置二的结构框图,如图6所示,该模型训练装置二60包括:发送模块62,接收模块64和第二确定模块66,下面对该模型训练装置二60的各个部分进行说明:
[0082]
发送模块62,用于发送训练样本数据至第二目标设备,其中,训练样本数据与目标任务对应;
[0083]
接收模块64,连接于上述发送模块62,用于接收第二目标设备返回的目标权重以及前缀参数,其中,前缀参数为初始任务模型的一组超参数,用于使初始任务模型适配不同任务,目标权重为基于训练样本数据对初始任务模型进行训练得到的与前缀参数对应的权重;
[0084]
第二确定模块66,连接于上述接收模块64,用于基于目标权重、前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,预训练模型与初始任务模型中的预训练模型相同。
[0085]
此处需要说明的是,上述发送模块62,接收模块64和第二确定模块66对应于实施例2中的步骤s402至步骤s406,多个模块与对应的步骤所实现的实例和应用场景相同,但不
限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0086]
实施例5
[0087]
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
[0088]
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0089]
在本实施例中,上述计算机终端可以执行应用程序的模型训练方法中以下步骤的程序代码:获取初始任务模型,其中,初始任务模型包括预训练模型以及一组前缀参数,前缀参数为初始任务模型的超参数,用于使初始任务模型适配不同任务;基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,其中,训练样本数据与目标任务对应;基于目标权重及初始任务模型,确定目标任务模型。
[0090]
可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器、存储器等。
[0091]
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的模型训练方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的模型训练方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0092]
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取初始任务模型,其中,初始任务模型包括预训练模型以及一组前缀参数,前缀参数为初始任务模型的超参数,用于使初始任务模型适配不同任务;基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,其中,训练样本数据与目标任务对应;基于目标权重及初始任务模型,确定目标任务模型。
[0093]
可选的,上述处理器还可以执行如下步骤的程序代码:基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,包括:基于预训练模型,确定与前缀参数对应的待定权重;基于训练样本数据对初始任务模型的待定权重以及前缀参数进行优化训练,得到目标前缀参数以及与目标前缀参数对应的目标权重。
[0094]
可选的,上述处理器还可以执行如下步骤的程序代码:基于预训练模型,确定与前缀参数对应的待定权重,包括:在预训练模型包括多个网络层的情况下,待定权重包括:层内待定权重;确定前缀参数中任意一个前缀参数对应的层内待定权重,包括:确定任意一个前缀参数对应的目标网络层,其中,目标网络层为预训练模型包括的多个网络层之一;获取预训练模型中位于目标网络层的上一网络层的模型参数;基于上一网络层的模型参数确定层内待定权重。
[0095]
可选的,上述处理器还可以执行如下步骤的程序代码:基于上一网络层的模型参数确定层内待定权重,包括:根据上一网络层的模型参数,获取上一网络层的学习特征;根
据学习特征,构建层内待定权重。
[0096]
可选的,上述处理器还可以执行如下步骤的程序代码:根据学习特征,构建层内待定权重,包括:生成待定因数;通过逻辑斯蒂函数将待定因数与学习特征转换到概率值区间,得到层内待定权重。
[0097]
可选的,上述处理器还可以执行如下步骤的程序代码:基于预训练模型,确定与前缀参数对应的待定权重,包括:在预训练模型包括多个网络层的情况下,待定权重包括:层间待定权重;确定前缀参数中任意一个前缀参数对应的层间待定权重,包括:确定多个网络层中任意一个网络层对应的层间待定权重;确定前缀参数中任意一个前缀参数对应的目标网络层,其中,目标网络层为多个网络层之一;将目标网络层对应的层间待定权重确定为任意一个前缀参数对应的层间待定权重。
[0098]
可选的,上述处理器还可以执行如下步骤的程序代码:发送目标权重及前缀参数至存储有预训练模型的第一目标设备,其中,第一目标设备用于根据目标权重、前缀参数以及预训练模型生成目标任务模型。
[0099]
可选的,上述处理器还可以执行如下步骤的程序代码:预训练模型包括以下任意之一:预训练语言模型,预训练图像识别模型。
[0100]
可选的,上述处理器还可以执行如下步骤的程序代码:发送训练样本数据至第二目标设备,其中,训练样本数据与目标任务对应;接收第二目标设备返回的目标权重以及前缀参数,其中,前缀参数为初始任务模型的一组超参数,用于使初始任务模型适配不同任务,目标权重为基于训练样本数据对初始任务模型进行训练得到的与前缀参数对应的权重;基于目标权重、前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,预训练模型与初始任务模型中的预训练模型相同。
[0101]
本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端70还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
[0102]
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
[0103]
实施例6
[0104]
本发明的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述计算机可读存储介质可以用于保存上述实施例1所提供的模型训练方法所执行的程序代码。
[0105]
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0106]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取初始任务模型,其中,初始任务模型包括预训练模型以及一组前缀参数,前缀参数为初始任务模型的超参数,用于使初始任务模型适配不同任务;基于训练样本数据对初始任务模
型进行训练,得到初始任务模型中与前缀参数对应的目标权重,其中,训练样本数据与目标任务对应;基于目标权重及初始任务模型,确定目标任务模型。
[0107]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于训练样本数据对初始任务模型进行训练,得到初始任务模型中与前缀参数对应的目标权重,包括:基于预训练模型,确定与前缀参数对应的待定权重;基于训练样本数据对初始任务模型的待定权重以及前缀参数进行优化训练,得到目标前缀参数以及与目标前缀参数对应的目标权重。
[0108]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于预训练模型,确定与前缀参数对应的待定权重,包括:在预训练模型包括多个网络层的情况下,待定权重包括:层内待定权重;确定前缀参数中任意一个前缀参数对应的层内待定权重,包括:确定任意一个前缀参数对应的目标网络层,其中,目标网络层为预训练模型包括的多个网络层之一;获取预训练模型中位于目标网络层的上一网络层的模型参数;基于上一网络层的模型参数确定层内待定权重。
[0109]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于上一网络层的模型参数确定层内待定权重,包括:根据上一网络层的模型参数,获取上一网络层的学习特征;根据学习特征,构建层内待定权重。
[0110]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据学习特征,构建层内待定权重,包括:生成待定因数;通过逻辑斯蒂函数将待定因数与学习特征转换到概率值区间,得到层内待定权重。
[0111]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于预训练模型,确定与前缀参数对应的待定权重,包括:在预训练模型包括多个网络层的情况下,待定权重包括:层间待定权重;确定前缀参数中任意一个前缀参数对应的层间待定权重,包括:确定多个网络层中任意一个网络层对应的层间待定权重;确定前缀参数中任意一个前缀参数对应的目标网络层,其中,目标网络层为多个网络层之一;将目标网络层对应的层间待定权重确定为任意一个前缀参数对应的层间待定权重。
[0112]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:上述方法还包括:发送目标权重及前缀参数至存储有预训练模型的第一目标设备,其中,第一目标设备用于根据目标权重、前缀参数以及预训练模型生成目标任务模型。
[0113]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:预训练模型包括以下任意之一:预训练语言模型,预训练图像识别模型。
[0114]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:发送训练样本数据至第二目标设备,其中,训练样本数据与目标任务对应;接收第二目标设备返回的目标权重以及前缀参数,其中,前缀参数为初始任务模型的一组超参数,用于使初始任务模型适配不同任务,目标权重为基于训练样本数据对初始任务模型进行训练得到的与前缀参数对应的权重;基于目标权重、前缀参数以及预存在本地的预训练模型,确定目标任务模型,其中,预训练模型与初始任务模型中的预训练模型相同。
[0115]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0116]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0117]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0118]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0119]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0120]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0121]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。