目前效果較好的大部分的nlp任務都會應用預訓練語言模型的遷移知識,主要是采用兩階段的模型。第一階段進行預訓練,一般是訓練一個語言模型。最出名的是BERT,BERT的預訓練階段包括兩個任務,一個是Masked Language Model,還有一個是Next Sentence Prediction。通過預訓練能夠利用海量的無標注的語料,以從中抽取出語言學特征,並在第二階段結合具體任務,把這些從海量無標注語料中抽取出的語言學特征作為特征補充,遷移到下游任務中進行應用。第一階段預訓練出的模型具有很強的泛化能力,一方面是因為語料非常豐富能夠得到很好的表征,另一方面是因為使用多層的Transformer作為特征提取器能夠抽取出泛化能夠更強的特征。從GPT2.0可以看出加大用於進行預訓練模型的語料,同時提高這些語料的質量能夠使訓練出的模型更具泛化性能。從微軟提出的多任務深度神經網絡以及清華和華為ERNIE: Enhanced Language Representation with Informative Entities以及百度的ERNIE: Enhanced Representation through Knowledge Integration來看補充更多的先驗知識供預訓練語言模型學習能夠使模型泛化能力更高。ERNIE相當於融入了知識圖譜,清華的ERNIE在BERT的MLM以及Next Sentence Prediction任務的基礎上增加了denoising entity auto-encoder (dEA)任務,這是自然而然應該想到了,MLM相當於在字上的降噪,增加了實體信息,自然應該在實體層次進行降噪。
在具體的第二階段的任務中我們只需結合第一階段的預訓練(pre-train)模型簡單的修改一些輸出層,再用我們自己的數據進行一個增量訓練,對權重進行一個輕微的調整(fine-tune)。例如BERT訓練好的模型會保存在checkpoint中,在我們進行具體的第二階段的任務時,例如分類任務,只需傳入當前的訓練語料會加載預訓練模型的圖以及訓練好的具備豐富特征的參數,因為預訓練好的模型泛化能力很強,所以具體任務中只需要對可訓練的這些參數進行fine-tuning(微調)便能滿足當前任務,因為可用的標注語料很少,只用這些語料通過特征抽取器可能並無法抽取出泛化能力強的表征,通過預訓練的模型能夠進行很好的特征補充,使得抽取出的特征更加適用於我們具體的任務。結合具體任務的訓練語料對可訓練的參數進行微調,然后把這些微調后的參數以及圖保存起來,以便於我們進一步進行預測時使用。
論文的詳細介紹參考另一篇博客:https://www.cnblogs.com/dyl222/p/10960842.html