XLNet團隊:只要公平對比,BERT毫無還手之力

机器之心發表於2019-07-23

今天,我們應該使用 BERT 還是 XLNet?直觀看來 XLNet 要比 BERT 好一些,畢竟提出模型以後,XLNet 在 GLUE 基準及其它很多 NLP 任務上都超過了 BERT,或者說超過了 BERT 和 BERT 的各種變體。而且從模型原理上來說,似乎 XLNet 那種隨機排列的語言模型更適合預訓練語言建模。

但早幾天前,Facebook 表示只要訓練更久一點、資料量再大一點,BERT 還是能重新達到 GLUE 基準的第一名。畢竟最開始 BERT 只用了 13GB 的文字就完成預訓練,而後 XLNet 卻是在 126GB 的純文字上訓練出了新的 SOTA 模型。儘管 XLNet 在原論文中以相同的資料集對比了 BERT-base 和 XLNet-base,但 4 個任務上的測試結果說服力似乎不那麼強?

為此,XLNet 團隊以更公平的方式對比了 XLNet 和 BERT 的效果,對上述質疑進行了回應。研究者表示,他們幾乎確保了每一個引數都採用相同的值,使用相同的訓練資料,這樣對比 BERT 和 XLNet 就非常合理了。重要的是,這套超參是從 BERT 複製到 XLNet 的,也就是說 BERT 在訓練過程中會略有一些優勢——因為這些超參是谷歌專門為 BERT 最佳化的。

作為 XLNet 工作的導師,卡耐基梅隆大學(CMU)教授 Ruslan Salakhutdinov 也在社交網路上為自己弟子的研究站臺。

XLNet團隊:只要公平對比,BERT毫無還手之力

最終,實驗展示了兩個非常有意思的結果:

在相同環境和配置下訓練兩個模型,XLNet 在所有資料集上都超過了 BERT,且提升還不小;

在 11 個基準的 8 箇中,採用 XLNet 架構所獲得的效能增益要超過採用 10 倍預訓練資料所獲得的效能增益。

這兩個實驗結果都表明,在公平對比下,BERT 似乎真的也就能掙扎一下。那麼,問題來了,Facebook 的大規模 RoBERTa 又是怎樣超過 XLNet 的?

公平的競技場

7 月 19 號,Facebook 提交了一個名為 Robustly Optimized BERT pretraining Approach(RoBERTa)的模型,它在 11 項 NLP 任務中有 6 項超過了整合版的 XLNet,並且總分也比它略高一點。Facebook 表示,他們採用了 BERT-Large,並透過更多的資料與更長的訓練來提升預訓練過程。因為目前還沒有公開資料,我們也不知道這個「更多」到底是多多少。

但是我們可以透過更公平的方式對比它們的效率啊,為此 XLNet 團隊也就完成了這項更詳細的測試任務。具體而言,在原論文中,XLNet 的研究人員就做了控制變數測試,在相同資料集下對比了 XLNet-base 和 BERT-base 模型。

之後,很多開發者關心預訓練大模型之間的效能差異,因為這樣可以更好地確定實踐中到底該用 BERT 還是 XLNet。因此,研究團隊對 XLNet-Large 和 BERT-Large 進行對比產生了興趣,也就有了後續的公平競技場。

在這次的研究中,研究人員確保幾乎所有可能的引數在 BERT 和 XLNet 上都是一致的。BERT 的引數來自於論文,是在 BERT 上最佳化過,但是 XLNet 上沒有最佳化過的。研究團隊具體控制了以下引數變數:

  • 同樣的批大小:256;

  • 同樣的訓練步數:1M;

  • 同樣的最佳化器:Adam、學習率 1e-4、前 10k 預熱、線性衰減;

  • 同樣的訓練語料:Wikipedia + BooksCorpus。研究人員使用和 BERT 相同的工具處理維基百科資料,但是因為未知原因,他們的維基百科語料僅有 2 B 的詞,而 BERT 有 2.5B。因此,XLNet 實際上依賴的訓練資料略微少一些;

  • 同樣的模型引數:24 層、1024 個隱層單元、16 個注意力頭;

  • 同樣的微調引數搜尋空間。

此外,研究人員對資料相關的實現細節進行了改進,以便於和 BERT 比較。

  • 在 XLNet 之前的實現中,未被 mask 的字元不會在預訓練中看到 CLS 和 SEP 標籤。但在當前實現中,未被 mask 的字元可以看到 CLS 和 SEP 標籤,這一點和 BERT 保持相同。

  • 在微調中,和 BERT 一樣,研究人員使用了 BERT 的資料處理形式 [CLS, A, SEP, B, SEP],而不是保留 XLNet 本身的方式 [A, SEP, B, SEP, CLS]。

此外,研究人員考慮到了三種 BERT 的變體,並將每個單獨任務最好的微調結果記錄下來,三種變體分別是:

  • Model-I:BERT 作者自己釋出的模型;

  • Model-II:全詞 mask 的 BERT,也是原作者公佈的;

  • Model-III:由於研究人員發現「下一句預測(NSP)」任務可能對效能帶來影響,因此他們使用 BERT 預訓練程式碼重新訓練了一個沒有 NSP 損失的模型。

XLNet 的作者認為,以上的設定可能給 BERT 帶來一些優勢,因為單個任務的最好表現結果可能出自不同的 BERT 變體。此外如下圖所示的 XLNet-Large(as in paper),它採用了論文中訓練結果,即使用更多訓練資料和更大的批大小。

XLNet團隊:只要公平對比,BERT毫無還手之力

XLNet-Large(論文中的)、XLNet-Large-wikibook(和 BERT-Large 保持一致的)以及和 BERT 的對比,從測試結果來看,BERT 妥妥地被全面超越。

GLUE 基準和 SQuAD 驗證集上的結果,以及 RACE 上的測試集結果如上圖。訓練中沒有進行資料增強,模型構建中沒有使用整合模型或者多工學習

從表中可以看到很多有意思的資訊:

  • 雖然在幾乎完全一致的資料集上預訓練,XLNet 還是在所有資料集中超過了 BERT 的表現。

  • 多訓練十倍資料量帶來的效能提升(相比從 XLNet-Large-wikibooks 到 XLNet-Large 使用更多訓練資料帶來的提升),其提升幅度還不如從 BERT 轉向 XLNet 高(11 個基準中 8 個超過了 BERT)。

  • 對於一些基準測試資料集,比如 CoLA 和 MRPC,模型訓練更多的資料可以比訓練更少的資料效果要好。

從上述實驗結果中,我們或許已經可以得出結論。

XLNet 提高了效能。上面結果 1 與研究人員在原論文對 base 模型做的控制變數實驗結果一致,表明在相同的訓練條件下 XLNet 對 BERT 的明顯優勢。

XLNet-Large 可以更好地進行最佳化。結果 2 和結果 3 似乎表明之前釋出的 XLNet-Large(經過更多資料訓練)沒有充分利用資料規模。因此,研究人員將繼續研究如何正確擴充套件 XLNet 預訓練語言。根據目前有限的觀察結果,XLNet 團隊認為以下訓練細節可能發揮重要作用:

  • 資料相關:資料規模、資料來源、資料清洗、資料編碼、資料格式化

  • 最佳化相關:學習率(及規劃)、批大小、訓練步驟數、最佳化器

  • 重要的是,這些引數可能彼此還有更高階的互動

Facebook AI 最近的 GLUE 排行榜似乎也暗示了訓練細節的重要性。

總而言之,本研究更加明確地將演算法/模型的影響與其他因素分離,例如訓練細節、大規模計算和大資料。基於實驗結果,XLNet 團隊認為演算法與模型至少與其他因素一樣重要,它們很可能都是實現自然語言理解的最終目標所必需的。這些新的結果很快也會被更新到 XLNet 論文上。

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

相關文章