重回榜首!Facebook開源加強版BERT,全面超越XLNet

大資料文摘發表於2020-04-06

重回榜首!Facebook開源加強版BERT,全面超越XLNet

大資料文摘出品

作者:寧靜

剛剛被拉下神壇的BERT又一次稱霸了GLUE、SQuAD和RACE三個排行榜。

今年六月,谷歌釋出XLNet,指出並解決了BERT的缺點,在20多個指標上全面刷爆了BERT之前的成績,資料、算力相比BERT增加了很多,也在業內引起了激烈討論:到底該用BERT還是XLNet

Facebook前幾天宣佈:如果訓練更久一點、資料量再大一點,BERT 還是能重新達到 GLUE 基準的第一名。

今天,Facebook開源了這個基於BERT開發的加強版預訓練模型RoBERTa,全稱"Robustly optimized BERT approach"——強力優化BERT方法,在GLUE、SQuAD和RACE三個排行榜上都取得了最優成績。

在今天的官方推文中,Facebook AI也直接明瞭地點出了這一方法的稱霸訣竅:更久的訓練時間、更多的資料、更強力調參。

重回榜首!Facebook開源加強版BERT,全面超越XLNet 

Facebook也強調了RoBERTa誕生的意義:

調整BERT訓練程式可以顯著提高其在各種NLP任務上的表現,同時也表明了這種方法的競爭力。更廣泛來看,這項研究進一步證明了,監督訓練有可能達到或超過更傳統的監督方法的表現。RoBERTa是Facebook不斷致力於推動自我監督系統最先進技術的一部分,該系統的開發可以減少對時間和資源密集型資料標籤的依賴。

這項研究由Facebook AI和華盛頓大學的研究團隊共同完成,並公開了論文和程式碼,先附上鍊接:

論文連結:

https://arxiv.org/pdf/1907.11692.pdf

Github程式碼連結:

https://github.com/pytorch/fairseq/tree/master/examples/roberta

亮點:RoBERTa基於BERT的改進

RoBERTa基於BERT的改進在四個方面展開,包括:

  1. 更長時間地訓練模型,批量更大,資料更多;

  2. 刪除下一句預測的目標;

  3. 較長時間的訓練;

  4. 動態改變應用於訓練資料的masking模式。

論文的貢獻在於:

  1. 提出了一套重要的BERT設計選擇和訓練策略,並引入了能夠提高下游任務成績的備選方案;

  2. 文中使用一種新的資料集CCNEWS,並確認使用更多資料進行預訓練,進一步改善了下游任務的效能;

  3. 預訓練的masked language model相比發表的其他方法都更具有競爭力,已經開源了在PyTorch中模型訓練和引數微調的程式碼。

模型內部架構

之前的BERT採用Transformer 結構,改經後的RoBERTa使用的是L層的transformer 架構,每個block 都使用一個self-attention head和隱藏維度H。

在講解模型內部原理之前先簡單介紹NLP領域中常用的Transformer 結構:

       重回榜首!Facebook開源加強版BERT,全面超越XLNet   

Transformer的主體結構圖


模型分為編碼器和解碼器兩個部分,編碼器和解碼器的輸入就是利用學習好的embeddings將tokens(一般應該是詞或者字元)轉化為d維向量。對解碼器來說,利用線性變換以及softmax函式將解碼的輸出轉化為一個預測下一個token的概率。

Transformer用於機器翻譯任務,表現極好,可並行化,並且大大減少訓練時間。

模型預訓練

在預訓練模型的過程中,需要完成兩個指標:Masked Language Model (MLM) 和Next Sentence Prediction (NSP)

  • Masked Language Model (MLM) :MLM的目標是masked tokens序列中的交叉熵,選擇輸入中的隨機token樣本,並替換為特殊的token [MASK],BERT模型一致選擇輸入token中的15%作為可能的替換,在所選的token(selected tokens)中,80%的selected tokens替換為token [MASK],10%的selected tokens保持不變,另外10%替換為隨機選擇的詞彙表token。

  • Next Sentence Prediction (NSP)下一句預測:預測兩個語段之間的二元分類損失,判斷語句有沒有前後的依從關係,其中正樣本來自於文字語料庫中提取連續的句子,負樣本來自於不同文件的段進行配對,正負樣本相同的概率進行取樣。

模型引數優化

BERT用以下引數:β1= 0.9,β2= 0.999,ǫ = 1e-6,L2權重為0.01,伴隨著學習率的加快,在前10,000個steps中達到峰值1e-4,然後線性衰減;BERT訓練時在所有層和attention結構中採用0.1的 dropout ,使用GELU啟用函式,模型預訓練有S = 1,000,000次更新,小批量包含B = 256個sequences和T = 512的tokens序列。

實驗結果

當控制訓練資料時,我們觀察到RoBERTa比BERTLARGE結果有了很大的改進,當資料集從16GB增加到160GB,訓練次數從100K到300K再到500K的過程中,模型準確度也逐漸提升。

重回榜首!Facebook開源加強版BERT,全面超越XLNet

RoBERTa在開發和測試中使用了提供的SQuAD資料,+表示依賴於額外外部訓練資料的結果,從下面兩個表中,可以看到RoBERTa相比XLNet有精度上的提升,表中加粗的數字。

重回榜首!Facebook開源加強版BERT,全面超越XLNet

在RACE測試集上的結果顯示,RoBERTa的Accyracy相比BERT(large)提高了10個百分點,相比XLNet(large)提高了2個百分點。

重回榜首!Facebook開源加強版BERT,全面超越XLNet 

BERT與XLNet之爭

自誕生起,BERT在江湖中地地位一直頗動盪。

去年10月,谷歌放出了稱霸GLUE榜單的BERT模型,當時BERT最大的創新就是提出了Masked Language Model作為預訓練任務,解決了GPT不能雙向編碼、ELMo不能深度雙向編碼的問題。之後從那天起,很多工都不再需要複雜的網路結構,也不需要大量的標註資料,業界學術界都基於BERT做了很多事情。

2019年6月19日,谷歌又放出了一個模型XLNet,找到並解決了BERT的缺點,在20多個指標上全面刷爆了BERT之前的成績,資料、算力相比BERT增加了很多。

語言模型預訓練導致了顯著的效能增益,但是在不同方法之間仔細仍然具有挑戰性,計算的訓練成本是昂貴的,同樣,超引數選擇對最終結果有顯著的影響。

但是,XLNet的王座終沒做穩,在充分測量許多關鍵的超引數和訓練資料大小的影響,研究人員發現,Bert的訓練明顯不足,改進後的Bert模型可以達到或超過在之後釋出的每一個模型的效能。

本月初,XLNet 團隊嘗試以一種在相同環境和配置下訓練兩個模型的方式,對比了 XLNet 和 BERT 的效果,回應業內的討論。

研究者嘗試讓每一個超引數都採用相同的值,使用相同的訓練資料。

最終結果?

重回榜首!Facebook開源加強版BERT,全面超越XLNet

實驗中有一些有趣的觀察結果:

  • 使用幾乎相同的訓練配方訓練相同的資料,XLNet在所有資料集上以相當大的優勢超越BERT。

  • 在11個基準測試中的8箇中,採用10倍以上資料的收益,小於從BERT切換到XLNet的效能增益。

  • 在一些基準測試中,例如CoLA和MRPC,在更多資料上訓練的模型效能低於在較少資料上訓練的模型。

雖然這一研究是XLNet團隊釋出的,但是對於兩者的長期爭論仍然有很大的價值。感興趣的讀者可以檢視原文?

https://medium.com/@xlnet.team/a-fair-comparison-study-of-xlnet-and-bert-with-large-models-5a4257f59dc0

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2652272/,如需轉載,請註明出處,否則將追究法律責任。

相關文章