目前大部分的nlp任务采用两阶段的模型,第一阶段进行预训练,一般是训练一个语言模型。最出名的是BERT,BERT的预训练阶段包括两个任务,一个是Masked Language Model,还有一个是Next Sentence Prediction。通过预训练能够利用海量的无标注的预料,以从中抽取出语言学特征,并在第二阶段结合具体任务,以这些从海量无标住语料中抽取出的语言学特征作为特征补充。第一阶段预训练出的模型具有很强的泛化能力,一方面是因为语料非常丰富能够学习到很多特征,另一方面是因为使用多层的Transformer作为特征提取器能够抽取出泛化能够更强的特征。从GPT2.0可以看出加大用于进行预训练模型的语料,同时提高这些语料的质量能够使训练出的模型更具泛化性能。从ERNIE来看补充更多的先验知识供预训练模型学习能够使模型泛化能力更高。ERNIE相当于融入了知识图谱。
在具体的第二阶段的任务中我们只需结合第一阶段的预训练模型简单的修改一些输出层,再用我们自己的数据进行一个增量训练,对权重进行一个轻微的调整。例如BERT训练好的模型会保存在checkpoint中,在我们进行具体的第二阶段的任务时,例如分类任务,只需传入当前的训练语料会加载预训练模型的图以及训练好的具备丰富特征的参数,因为预训练好的模型泛化能力很强,所以具体任务中只需要对可训练的这些参数进行fine-tuning(微调)便能满足当前任务,因为可用的标注语料很少,只用这些语料通过特征抽取器可能并无法抽取出泛化能力强的特征,通过预训练的模型能够进行很好的特征补充,使得抽取出的特征更加适用于我们具体的任务。结合具体任务的训练语料对可训练的参数进行微调,然后把这些微调后的参数以及图保存起来,以便于我们进一步进行预测时使用。
原文地址:https://www.cnblogs.com/dyl222/p/10779742.html