1. 程式人生 > 實用技巧 >BART: Denoising Sequence-to-Sequence Pre-training翻譯

BART: Denoising Sequence-to-Sequence Pre-training翻譯

摘要

我們介紹了BART,一種用於預訓練序列到序列模型的去噪自編碼器。通過(1)使用任意噪聲函式來對文字進行加噪,並(2)學習模型以重建原始文字來訓練BART。它使用基於標準Tranformer的神經機器翻譯架構,儘管它很簡單,但可以看作是BERT(由於雙向編碼器),GPT(具有從左至右解碼器)以及許多其他最近的預訓練方案的擴充套件。我們評估了多種加噪方法,發現通過隨機改變原始句子的排列順序並使用新的填充方案(其中文字段被單個mask標記替換)能獲得最佳效能。當針對文字生成進行微調時,BART特別有效,並且對於理解任務也很有效。在使用可比較的GLUE和SQuAD資源訓練時,它與RoBERTa的效能相匹配,並在一系列對話生成,問答和摘要任務方面取得了最好的成果,且獲得了多達6 ROUGE的收益。與機器翻譯的反向翻譯系統相比,僅對目標語言進行了預訓練,BART還提供了1.1 BLEU的提升。我們還報告了在BART框架內使用其他預訓練方案的消融實驗,以更好地衡量哪些因素最能影響下游任務效能。

1.介紹

在這裡插入圖片描述
  自監督方法在各種NLP任務中均取得了顯著成功。最成功的方法是遮蔽語言模型的變體,該模型對自編碼器進行去噪處理,這些自編碼器經過訓練可以重建文字,其中單詞的隨機子集已被遮蔽。最近的工作顯示出通過改善遮蔽字元的分佈,預測遮蔽字元的順序以及替換遮蔽字元的可用上下文可以獲得較大的收益。但是,這些方法通常專注於特定型別的下游任務(例如,跨度預測,生成等),從而限制了它們的適用性
  在本文中,我們提出了BART,它可以預先訓練一個結合了雙向和自迴歸的transformer模型。BART是一種採用序列到序列模型構建的去噪自編碼器,適用於非常廣泛的下游任務。預訓練有兩個階段(1)使用任意的噪聲功能對文字進行加噪,以及(2)學習序列到序列模型以重建原始文字

。BART使用基於Tranformer的標準神經機器翻譯結構,儘管它很簡單,但可以看作是對BERT(由於雙向編碼器),GPT(從左至右解碼器)以及許多其他最近的預訓練方案的擴充套件(請參見圖1)。
  這種設定的主要優點是噪聲的靈活性。可以將任意加噪方式應用於原始文字,包括更改其長度。我們評估了多種加噪方法,發現通過隨機改變原始句子的順序並使用新的填充方案(其中任意長度的文字跨度(包括零長度)被單個mask標記替換)能獲得最佳效能。這種方法通過強制模型對更復雜句子結構進行推理,並對輸入進行更長的範圍轉換,從而擴充套件了BERT中的原始單詞遮蔽和下一句預測目標
  當對文字生成進行微調時,BART特別有效,同時對於理解任務也很有效。在使用可比較的GLUE和SQuAD資源訓練時,它與RoBERTa的效能相匹配,並在一系列對話生成,問答和摘要任務方面取得了最好的成果,且獲得了多達6 ROUGE的收益。
  BART還開闢了關於微調的新思路。我們提出了一種新的機器翻譯方案,其中BART模型堆疊在其他幾個transformer層之上。這些層經過訓練將外語本質上翻譯為具有噪聲的英語,然後通過BART進行傳播,從而將BART作為預訓練的目標端語言模型。在WMT Romanian-English基準中,此方法在強大的反向翻譯MT基準上將效能提高了1.1 BLEU。
  為了更好地理解這些影響,我們還報告了一種消融分析,該分析可使用其他最近提出的訓練目標。這項研究使我們能夠謹慎地控制許多因素,包括資料和優化引數,這些因素對於最終效能與選擇訓練目標同樣重要。我們發現,在我們考慮的所有任務中,BART表現出最穩定的效能。

2.模型

BART是一種去噪自編碼器,可將具有噪聲的文件對映到原始文件。它被實現為序列到序列模型,該模型包含在具有噪聲的文字上進行雙向編碼的編碼器,以及從左至右的自迴歸解碼器。對於預訓練,我們主要優化原始文件的負對數似然。

2.1 結構

BART使用(Vaswani et al., 2017)中的標準序列到序列transformer架構,並與GPT類似,我們將ReLU啟用函式修改為GeLU,並以 N ( 0 , 0.02 ) \mathcal N(0,0.02) N(0,0.02)初始化引數。對於我們的base模型,我們使用6層編碼器和解碼器,對於我們的big模型,我們則使用12層。BART架構與BERT中使用的架構密切相關,但有以下區別:(1)解碼器的每一層還對編碼器的最終隱藏層執行自注意力(如在transformer序列到序列模型中一樣); (2)BERT在進行單詞預測之前使用了一個附加的前饋網路,而BART則沒有。總體而言,BART包含的引數比同等大小的BERT模型大約多了10%。

2.2 與訓練BART

在這裡插入圖片描述
  對BART的訓練是通過對文件加噪,然後優化重構損失(解碼器輸出與原始文件之間的交叉熵)來進行的。與針對特定加噪方案量身定製的現有去噪自編碼器不同,BART允許我們應用任何型別的文件加噪方式。在極端情況下,所有有關源的資訊都丟失了,BART相當於一種語言模型。
  我們嘗試了幾種先前提出的新的加噪方法,但我們相信其他新替代方法具有更大的潛力。下面總結了我們使用的加噪方法,圖2顯示了示例。
  Token Masking。與BERT相似,對隨機字元進行取樣並替換為[MASK]元素。
  Token Deletion。隨機字元將從輸入中刪除。與字元遮蔽相反,該模型必須確定哪些位置缺少輸入。
  Text Infilling。取樣了多個文字跨度,跨度的長度來自泊松分佈( λ = 3 λ=3 λ=3)。每個跨度都替換為一個[MASK]字元。0長度跨度對應於[MASK]字元的插入。文字填充的靈感來自於SpanBERT,但是SpanBERT取樣了來自不同(固定幾何)分佈的跨度長度,並用完全相同長度的[MASK]字元序列替換了每個跨度。文字填充可以指導模型預測某個跨度中缺少多少字元。
  Sentence Permutation。根據句號將文件分為多個句子,然後將這些句子隨機排列。
  Document Rotation。均勻地隨機選擇一個字元,然後旋轉文件,使其從該字元開始。此任務訓練模型以識別文件的開始。

3.微調BART

在這裡插入圖片描述
  BART產生的表示形式可以以多種方式用於下游任務。

3.1 序列分類任務

對於序列分類任務,將相同的輸入饋入編碼器和解碼器,並將最後一個解碼器字元的最終隱藏狀態饋入新的線性分類器。此方法與BERT中的CLS字元相似;但是,我們時在末尾添加了額外的字元,以使解碼器中字元的表示形式可以參與來自完整輸入的解碼器狀態(圖3a)。

3.2 字元分類任務

對於字元分類任務,例如SQuAD的答案終點分類,我們將完整文件輸入編碼器和解碼器,並使用解碼器的頂部隱藏狀態作為每個單詞的表示。該表示用於對字元進行分類。

3.3 序列生成任務

由於BART具有自迴歸解碼器,因此可以針對諸如生成式問答和摘要之類的序列生成任務直接進行微調。在這兩個任務中,資訊都是從輸入中複製但受到操縱的,這與去噪預訓練目標密切相關。此處,編碼器輸入是輸入序列,解碼器自動生成輸出。

3.4 機器翻譯

我們還將探索使用BART來改進機器翻譯解碼器以翻譯成英語。以前的工作顯示可以通過合併預訓練的編碼器來改進模型,但是在解碼器中使用預訓練的語言模型的收益受到限制。我們證明,通過新增從bitext學習到的一組新的編碼器引數,可以將整個BART模型(編碼器和解碼器)用作單個預訓練解碼器進行機器翻譯(參見圖3b)
  更準確地說,我們將BART的編碼器嵌入層替換為新的隨機初始化的編碼器。該模型是端到端訓練的,它訓練了新的編碼器以將其他語言的詞對映到輸入中,BART可以將其去噪為英語。新的編碼器可以使用與原始BART模型不同的詞表。
  我們分兩步訓練源編碼器,在兩種情況下都從BART模型的輸出反向傳播交叉熵損失。第一步,我們凍結大多數BART引數,僅更新隨機初始化的源編碼器,BART位置嵌入以及BART編碼器第一層的自注意輸入投影矩陣。第二步,我們訓練所有模型引數進行少量迭代。