seq2seq 預訓練語言模型 BART 和T5


***************************原文     https://zhuanlan.zhihu.com/p/420090646     ********************************

 

自回歸 auturegression 語言模型,例如GPT,采用自左向右解碼的方式,適用於自然語言生成NLG任務

自編碼 autoencoder 語言模型,如BERT,每個時刻的輸出都可以充分利用雙向信息,適用於自然語言理解任務。但是在NLG表現不佳。

 

 

 如上圖右三,UniLM將通過修改attention mask,將Encoder和Decoder結合,這種方式稱作Prefix LM。結構上還是只是使用了encoder

Bart和T5的結構又回到了最原始的Transformers結構。

圖中方塊代表序列中的元素,線代表attention,深色的線代表全可見attention,淺色的線代表因果掩碼 causal masking,即當前時刻只能看見之前的元素。不能看見未來的元素。

Attention的掩碼矩陣如下圖所示:

 

 

左圖:完全可見矩陣,模型輸出可以看見任意時刻的輸入,Transformer的Encoder Bert用的就是這種掩碼

中圖:因果掩碼矩陣,模型輸出只能看見當前時刻之前的輸入,黑色部分,這樣可以防止未來的輸入干擾當前輸入的結果。TRM的Decoder  GPT等單向語言模型使用的就是這種掩碼

右圖:帶有前綴的因果掩碼矩陣,前綴部分和完全可見矩陣一樣,輸出能夠看見前綴任意時刻的輸入,超過前綴范圍使用的因果掩碼UniLM采用這種掩碼。

 

Bart和T5模型

Bart是FaceBook提出

T5是Google提出。都是在19年10月份提出。

動機

  • BART想要統一BERT和GPT,從一開始就確定了使用Transformers的原始結構。BART探究了各種目標函數的有效性,即對輸入加各種類型的噪聲,在輸出時將其還原。BART在NLU任務上保持了和RoBerta差不多的前提下,在多個NLG任務中取得了SOTA成績。論文算上參考文獻總共長度10頁。
  • T5其實是一篇關於語言模型的Survey,其思路是從頭開始,找出語言模型的最優結構,在嘗試了多種結構之后發現Seq2Seq結構是最好的,然后從模型的目標函數,數據集,訓練時間,模型大小,多任務學習,等角度做了大量的實驗,確定方向之后擴大模型規模,最終在多個NLU和NLG任務中達到了SOTA水平。此外,這個工作還產出了一個干凈的大規模英文預料:C4。論文算上參考文獻長達67頁。

預訓練任務

     BART的預訓練任務是將帶有噪音的輸入還原,。最終采用的是   Text Infilling+Sentence permutation

其中Text Infilling起到了最主要的作用。其實就是Span級別的mask,只不過這里允許span的長度為0,span的長度服從泊松分布,總共mask 30%的字符。

T5使用兩種任務,分為無監督和有監督。無監督也是span級別的mask。只不過輸出不需要還原整句。只需要輸出mask掉的tokens就可以。總共mask 15%字符。

 

微調

BART的微調方式如下圖:

1 左邊是分類任務的微調方式,輸入將會同時送入encoder和decoder,最終使用最后一個輸出為文本分類表示

2  右邊是翻譯任務的微調方式,由於翻譯任務的詞表可能和模型詞表不同,所以這里使用給一個新的小型encoder 替換bart中的embedding

 

 

T5的微調方式如下圖

無論是分類任務還是生成任務,全都視為生成式任務

 

 

 

一些其他的細節

位置編碼:

Transformer使用position encoding。使用的是sinusoidal函數

BERT和Bart使用的是可學習的絕對位置嵌入

T5改成了相對位置嵌入  relative  position embeddings

激活函數:

Transformer最開始使用的是Relu,Bert和GPT使用的是Gelu,Bart使用的是  GElu,不過T5還是使用當初的ReLU。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM