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

预训练语言模型的微调方法、装置及计算机可读存储介质与流程

2022-07-10 15:32:43 来源:中国专利 TAG:


1.本发明涉及自然语言处理(natural language processing,nlp)中的预训练语言模型(pre-trained language model,plm)技术领域,特别是指一种预训练语言模型的微调方法、装置及计算机可读存储介质。


背景技术:

2.预训练模型在图像处理领域中早已被应用,而plm的概念于2015年被认为首次提出,并逐渐在各个任务中的取得优异性能。在此之前,nlp领域更常用的是使用词嵌入(word embedding)技术,将词嵌入一个多维空间中,并且在比较大的语料库上训练后,用以捕捉词和词之间的特定关系。常用的词向量训练模型有word2vec和glove等。词嵌入可以用于初始化下游模型的第一层嵌入层,加上其他功能层,进行整个模型的构建,但早期的词嵌入的方法没有保留每个词上下文的信息,有其局限性。
3.预训练语言模型(pre-trained language model,plm)利用大量在人们生活中出现过的文本来训练,使模型在这些文本中学习到每一个词或字出现的概率分布,以此来建模出符合这些文本分布的模型。另外,语言模型通常是根据上下文来预测相邻的词或字是什么,根据训练任务不同会有一些差别。所以语言模型的语料的标签是它的上下文,不需要重新标注,这就决定了几乎可以无限制地利用大规模的语料来训练语言模型,使其学习到丰富的语义知识。正因为语料的规模之大,使得预训练语言模型得以获得了强大的能力,使用预训练语言模型能够大大提升下游相关任务上的性能,同时降低了训练的难度。目前场景的预训练语言模型有:从语言模型提取嵌入(embeddings from language models,elmo)、生成式预训练(generative pre-training,gpt/gpt2)和基于transformer的双向编码器表示(bidirectional encoder representations from transformers,bert)等模型。
4.在获得预训练语言模型后,可以利用预训练好的模型参数初始化下游任务的网络结构,这样通过预训练学到的语言学知识就被引入到下游任务中。为使得模型适应于解决具体的下游任务,通常需要对模型进行网络参数的微调(fine-tuning),对模型进行结构改造。如图1所示,预训练语言模型的微调流程通常包括第一阶段和第二阶段,分别是热身训练(warm up)和标准训练。在热身训练结束后进入标准训练,训练到预定的训练结束条件后,结束训练。相比于标准训练,热身训练过程中通常会对预训练语言模型进行较大幅度的调整,模型参数发生较大的调整,会导致预训练语言模型在预训练阶段学习到的通用语言知识丢失(遗忘),在上述微调过程中,如何在保留通用语言知识和取得适用于下游任务的模型中取得折中,成为一个亟待解决的问题。


技术实现要素:

5.本发明要解决的技术问题是提供一种预训练语言模型的微调方法、装置及计算机可读存储介质,能够在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中。
6.为解决上述技术问题,本发明的实施例提供技术方案如下:
7.本发明的实施例提供一种预训练语言模型的微调方法,包括:
8.获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
9.对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
10.根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
11.可选的,所述方法还包括:
12.在确定本次需要更新所述任一编码层的模型参数的情况下,根据所述任一编码层的模型参数的梯度,更新所述任一编码层的模型参数;
13.在确定本次不需要更新所述任一编码层的模型参数的情况下,拒绝更新所述任一编码层的模型参数。
14.可选的,按照以下任一方式,计算所述任一编码层的梯度范数:
15.计算所述任一编码层的各个模型参数的梯度的平方和,得到所述任一编码层的梯度范数;
16.计算所述任一编码层的各个模型参数的绝对值的和值,得到所述任一编码层的梯度范数;
17.确定所述任一编码层的各个模型参数的绝对值的中的最大者,作为所述任一编码层的梯度范数。
18.可选的,所述确定所述预训练语言模型中每个编码层的梯度阈值,包括:
19.根据预设的阈值函数,计算每个编码层的梯度阈值,其中,所述阈值函数的输入为编码层的序号,所述阈值函数的输出为所述编码层的梯度阈值。
20.可选的,所述编码层的序号按照从所述预训练语言模型的输入层到输出层的方向依次顺序编号,所述阈值函数的输出与所述阈值函数的输入正相关。
21.可选的,所述梯度范数为非负值。
22.本发明实施例还提供了一种预训练语言模型的微调装置,包括:
23.确定模块,用于获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
24.计算模块,用于对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
25.判断模块,用于根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
26.可选的,所述微调装置还包括:
27.更新模块,用于在所述判断模块确定本次需要更新所述任一编码层的模型参数的情况下,根据所述任一编码层的模型参数的梯度,更新所述任一编码层的模型参数;以及,在所述判断模块确定本次不需要更新所述任一编码层的模型参数的情况下,拒绝更新所述任一编码层的模型参数。
28.可选的,所述计算模块,还用于按照以下任一方式,计算所述任一编码层的梯度范
数:
29.计算所述任一编码层的各个模型参数的梯度的平方和,得到所述任一编码层的梯度范数;
30.计算所述任一编码层的各个模型参数的绝对值的和值,得到所述任一编码层的梯度范数;
31.确定所述任一编码层的各个模型参数的绝对值的中的最大者,作为所述任一编码层的梯度范数。
32.可选的,所述确定模块,还用于根据预设的阈值函数,计算每个编码层的梯度阈值,其中,所述阈值函数的输入为编码层的序号,所述阈值函数的输出为所述编码层的梯度阈值。
33.可选的,所述编码层的序号按照从所述预训练语言模型的输入层到输出层的方向依次顺序编号,所述阈值函数的输出与所述阈值函数的输入正相关。
34.本发明实施例还提供了一种预训练语言模型的微调装置,包括:
35.处理器;以及
36.存储器,在所述存储器中存储有计算机程序指令,
37.其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
38.获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
39.对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
40.根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
41.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的预训练语言模型的微调方法的步骤。
42.本发明的实施例具有以下有益效果:本发明实施例针对每个编码层设置对应的梯度阈值,根据编码层的梯度范数是否小于该阈值,来判断是否需要对上述编码层进行模型参数的更新,避免模型参数发生幅度过大的调整,从而能够在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中,使得模型能够保留较多的通用语言知识,提高模型的性能。
附图说明
43.图1为现有技术的预训练语言模型的微调过程的示意图;
44.图2为本发明实施例的预训练语言模型的微调方法的一种流程示意图;
45.图3为本发明实施例的预训练语言模型的微调方法的另一种流程示意图;
46.图4为本发明实施例提供的预训练语言模型的一种结构示意图;
47.图5为本发明实施例提供的阈值函数的一个示例图;
48.图6为本发明实施例的预训练语言模型的微调装置的一种结构框图;
49.图7为本发明实施例的预训练语言模型的微调装置的另一种结构框图;
50.图8为本发明实施例的预训练语言模型的微调装置的又一种结构框图。
具体实施方式
51.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
52.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。说明书以及权利要求中“和/或”表示所连接对象的至少其中之一。
53.以下描述提供示例而并非限定权利要求中阐述的范围、适用性或者配置。可以对所讨论的要素的功能和布置作出改变而不会脱离本公开的精神和范围。各种示例可恰适地省略、替代、或添加各种规程或组件。例如,可以按不同于所描述的次序来执行所描述的方法,并且可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
54.如背景技术所述的,在预训练语言模型的微调过程中,需要根据下游任务对模型参数进行调整。但是如果对模型参数的调整幅度过大,将导致模型在预训练阶段所学习到的通用语言知识发生丢弃或遗忘,从而影响了模型性能。
55.为了在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中,使模型能够保留较多的通用语言知识,进而提高模型的性能,本发明实施例提供了一种预训练语言模型的微调方法,如图2所示,包括:
56.步骤201,获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值。
57.这里,所述预训练语言模型是预先通过预训练阶段训练得到的一种模型,所述预训练语言模型通常是基于大量的文本训练得到,学习获得了大量的通用语言知识。具体的,所述预训练语言模型可以是elmo模型、gpt/gpt2模型或bert模型等,本发明实施例对此不做具体限定。
58.所述预训练语言模型通常都包括有输入层和输出层,在输入层和输出层之间通常有多个编码层。本发明实施例在上述步骤201中,确定各个编码层的梯度阈值,以用于后续步骤的判断。
59.步骤202,对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数。
60.在将预训练语言模型应用于具体的下游任务时,需要根据下游任务对预训练语言模型进行微调,具体的,可以利用训练样本对预训练语言模型进行训练,调整其模型参数。
该微调过程通常包括热身训练阶段和标准训练阶段。相比于标准训练阶段,热身训练阶段通常会对模型参数进行较大幅度的调整。
61.例如,微调过程中对预训练语言模型进行10000次的训练,其中,前2000次为热身训练,后8000次为标准训练。通常,两个阶段的训练样本不同,例如,热身训练阶段采用的训练样本的复杂程度低于标准训练阶段采用的训练样本复杂程度。具体的,热身训练阶段的训练样本的文本长度小于标准训练阶段的训练样本的文本长度。另外,热身训练阶段模型的学习率可以随着训练过程的进行而逐渐增大。
62.优选的,考虑到热身训练阶段对模型参数调整幅度较大,本发明实施例可以应用于微调过程中的热身训练阶段。当然,也可能在标准训练阶段执行本发明实施例的方法,对此本发明不做特别限定。
63.在步骤202中,可以利用具体下游任务的训练样本,对预训练语言模型进行训练,在训练过程中对模型参数进行调整(微调),由于可能进行多次迭代训练,在每次迭代训练结束后,通常需要更新编码层的模型参数。为了避免模型参数的调整幅度过大,本发明实施例在对每个编码层进行模型参数调整之前,计算该编码层的梯度范数,所述梯度范数用于表征该编码层的模型参数的梯度变化程度,通常编码层的模型参数的梯度变化程度越大,所述梯度范数也越大。这里,梯度范数通常为非负值。
64.步骤203,根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
65.本发明实施例在步骤203中,通过比较所述任一编码层的梯度范数与所述任一编码层的梯度阈值的大小关系,确定在本次迭代训练结束后,是否更新所述任一编码层的模型参数。通常,在所述任一编码层的梯度范数小于所述任一编码层的梯度阈值时,确定本次需要更新所述任一编码层的模型参数;在所述任一编码层的梯度范数不小于所述任一编码层的梯度阈值时,确定本次不需要更新所述任一编码层的模型参数。
66.通过以上步骤,本发明实施例在预训练语言模型的微调过程中,在每次更新任意一个编码层的模型参数之前,通过梯度阈值来判断该编码层的模型参数的调整幅度是否过大,并在过大时,拒绝进行该编码层模型参数的调整,从而可以在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中,使模型能够保留较多的通用语言知识,进而提高了模型的性能。
67.如图3所示,本发明实施例提供的另一种预训练语言模型的微调方法,包括:
68.步骤301,获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值。
69.步骤302,对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数。
70.步骤303,根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
71.以上步骤301~303与图2中的步骤201~203相类似,为节约篇幅,此处不再赘述。
72.步骤304,在确定本次需要更新所述任一编码层的模型参数的情况下,根据所述任一编码层的模型参数的梯度,更新所述任一编码层的模型参数。
73.在确定本次模型参数需要更新时,本发明实施例可以根据编码层的模型参数的梯
度,进行模型参数的更新。在更新完成后,若当前已满足预设的微调训练的结束条件,则结束流程,否则,继续下一轮的迭代训练。
74.步骤305,在确定本次不需要更新所述任一编码层的模型参数的情况下,拒绝更新所述任一编码层的模型参数。
75.在确定本次模型参数不需要更新时,本发明实施例将拒绝本次的模型参数的更新。然后,判断当前是否已满足预设的微调训练的结束条件,若是,则结束流程,否则,继续下一轮的迭代训练。
76.图4给出了预训练语言模型一种结构示意图,包括有输入层、输出层以及位于输入层和输出层之间的多层编码层。其中,越靠近输入层的编码层,通常会学习到更多的通用语言知识,如语法结构、词性特性等。而越靠近输出层的编码层,通常会学习到更多的与具体的下游任务相关的知识。因此,越靠近输入层的编码层其模型参数的梯度阈值也越小,越靠近输出层的编码层其模型参数的梯度阈值也越大,这样可以使得靠近输入层的编码层保留更多的通用语言知识,靠近输出层的编码层能够学习到更多的与任务相关的知识,从而在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中。
77.在以上步骤201和301中,本发明实施例可以根据预设的阈值函数,计算每个编码层的梯度阈值,其中,所述阈值函数的输入为编码层的序号,所述阈值函数的输出为所述编码层的梯度阈值。
78.假设所述编码层的序号按照从所述预训练语言模型的输入层到输出层的方向依次顺序编号,例如,依次编号为编码层1、编码层2、

、编程层n,所述阈值函数的输出与所述阈值函数的输入正相关,这样可以使得越靠近输入层的编码层其模型参数的梯度阈值也越小,越靠近输出层的编码层其模型参数的梯度阈值也越大。另外,所述梯度范数通常为非负值。图5给出了阈值函数的一个示例,该示例中,所述阈值函数输出的梯度阈值与输入的编码层序号之间为线性关系,且输出随着输入的增大而增大。
79.在以上步骤202和302中,本发明实施例可以按照以下任一方式,计算所述编码层的梯度范数:
80.方式1:计算所述任一编码层的各个模型参数的梯度的平方和,得到所述任一编码层的梯度范数;
81.方式2:计算所述任一编码层的各个模型参数的绝对值的和值,得到所述任一编码层的梯度范数;
82.方式3:确定所述任一编码层的各个模型参数的绝对值的中的最大者,作为所述任一编码层的梯度范数。
83.当然,本发明实施例还可以采用其他计算方式计算所述梯度范数,例如,计算所述任一编码层的各个模型参数的绝对值的平均值,作为所述任一编码层的梯度范数;又或者是,按照预设的参数权重,对所述任一编码层的各个模型参数的绝对值进行加权求和,得到所述任一编码层的梯度范数,等等。这些方式都可以应用于本发明,此处不再一一举例说明。
84.基于以上的预训练语言模型的微调方法,本发明实施例还提供了一种预训练语言模型的微调装置,如图6所示,包括:
85.确定模块61,用于获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
86.计算模块62,用于对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
87.判断模块63,用于根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
88.通过以上模型,本发明实施例的微调装置,能够在保留预训练语言模型的通用语言知识和训练获得适用于下游任务的模型中取得较好的折中,使得模型能够保留较多的通用语言知识,提高了模型的性能。
89.可选的,如图7所示,本发明提供的另一种预训练语言模型的微调装置,除了包括图6中的模块外,还包括:
90.更新模块64,用于在所述判断模块确定本次需要更新所述任一编码层的模型参数的情况下,根据所述任一编码层的模型参数的梯度,更新所述任一编码层的模型参数;以及,在所述判断模块确定本次不需要更新所述任一编码层的模型参数的情况下,拒绝更新所述任一编码层的模型参数。
91.可选的,图6或图7中的所述计算模块62,还用于按照以下任一方式,计算所述编码层的梯度范数:
92.计算所述任一编码层的各个模型参数的梯度的平方和,得到所述任一编码层的梯度范数;
93.计算所述任一编码层的各个模型参数的绝对值的和值,得到所述任一编码层的梯度范数;
94.确定所述任一编码层的各个模型参数的绝对值的中的最大者,作为所述任一编码层的梯度范数。
95.可选的,图6或图7中的所述确定模块61,还用于根据预设的阈值函数,计算每个编码层的梯度阈值,其中,所述阈值函数的输入为编码层的序号,所述阈值函数的输出为所述编码层的梯度阈值。
96.可选的,所述编码层的序号按照从所述预训练语言模型的输入层到输出层的方向依次顺序编号,所述阈值函数的输出与所述阈值函数的输入正相关。
97.可选的,所述梯度范数为非负值。
98.需要说明的是,该实施例中的装置是与上述图2或图3所示的方法对应的设备,上述各实施例中的实现方式均适用于该设备的实施例中,也能达到相同的技术效果。本发明实施例提供的上述设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
99.请参考图8,本发明实施例还提供了预训练语言模型的微调装置的一种硬件结构框图,如图8所示,该预训练语言模型的微调装置800包括:
100.处理器802;和
101.存储器804,在所述存储器804中存储有计算机程序指令,
102.其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器802执行以下
步骤:
103.获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
104.对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
105.根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
106.进一步地,如图8所示,该预训练语言模型的微调装置800还可以包括网络接口801、输入设备803、硬盘805、和显示设备806。
107.上述各个接口和设备之间可以通过总线架构互连。总线架构可以是包括任意数量的互联的总线和桥。具体由处理器802代表的一个或者多个具有计算能力的处理器,所述处理器可以包括中央处理器(cpu,central processing unit)和/或图形处理器(gpu,graphics processing unit),以及由存储器804代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
108.所述网络接口801,可以连接至网络(如因特网、局域网等),从网络中接收数据(如训练样本和/或预训练语言模型),并可以将接收到的数据保存在硬盘805中。
109.所述输入设备803,可以接收操作人员输入的各种指令,并发送给处理器802以供执行。所述输入设备803可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等)。
110.所述显示设备806,可以将处理器802执行指令获得的结果进行显示,例如显示预训练语言模型训练的微调进度等。
111.所述存储器804,用于存储操作系统运行所必须的程序和数据,以及处理器802计算过程中的中间结果等数据。
112.可以理解,本发明实施例中的存储器804可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器804旨在包括但不限于这些和任意其它适合类型的存储器。
113.在一些实施方式中,存储器804存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8041和应用程序8042。
114.其中,操作系统8041,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序8042,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序8042中。
115.本发明上述实施例揭示的预训练语言模型的微调方法可以应用于处理器802中,或者由处理器802实现。处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现
过程中,上述预训练语言模型的微调方法的各步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器804,处理器802读取存储器804中的信息,结合其硬件完成上述方法的步骤。
116.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
117.对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
118.具体地,所述计算机程序被处理器802执行时还可实现如下步骤:
119.在确定本次需要更新所述任一编码层的模型参数的情况下,根据所述任一编码层的模型参数的梯度,更新所述任一编码层的模型参数;
120.在确定本次不需要更新所述任一编码层的模型参数的情况下,拒绝更新所述任一编码层的模型参数。
121.具体地,所述计算机程序被处理器802执行时还可实现如下步骤:
122.按照以下任一方式,计算所述任一编码层的梯度范数:
123.计算所述任一编码层的各个模型参数的梯度的平方和,得到所述任一编码层的梯度范数;
124.计算所述任一编码层的各个模型参数的绝对值的和值,得到所述任一编码层的梯度范数;
125.确定所述任一编码层的各个模型参数的绝对值的中的最大者,作为所述任一编码层的梯度范数。
126.具体地,所述计算机程序被处理器802执行时还可实现如下步骤:
127.根据预设的阈值函数,计算每个编码层的梯度阈值,其中,所述阈值函数的输入为编码层的序号,所述阈值函数的输出为所述编码层的梯度阈值。
128.具体地,所述编码层的序号按照从所述预训练语言模型的输入层到输出层的方向依次顺序编号,所述阈值函数的输出与所述阈值函数的输入正相关。
129.具体地,所述梯度范数为非负值。
130.可理解的,本发明实施例中,所述计算机程序被处理器802执行时可实现上述图2或图3所示的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘
述。
131.在本发明的一些实施例中,还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现以下步骤:
132.获得一预先训练好的预训练语言模型,确定所述预训练语言模型中每个编码层的梯度阈值;
133.对所述预训练语言模型进行训练,并在所述训练过程中每次更新任一编码层的模型参数之前,计算所述任一编码层的梯度范数;
134.根据所述任一编码层的梯度范数是否小于所述任一编码层的梯度阈值,确定本次是否需要更新所述任一编码层的模型参数。
135.该程序被处理器执行时能实现上述预训练语言模型的微调方法中的所有实现方式,且能达到相同的技术效果,为避免重复,此处不再赘述。
136.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
137.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
138.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
139.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
140.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
141.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的预训练语言模型的微调方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁盘或者光盘等各种可以存储程序代码的介质。
142.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献