xlnet自回歸預訓練(XLNet團隊只要公平對比)
2023-04-17 06:50:17 2
機器之心報導
參與:思、澤南、一鳴
是的,BERT 毫無還手之力,但 XLNet 沒有中文預訓練模型...
今天,我們應該使用 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,且提升還不小;
在 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-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
,