1
| 本文作者: 栗峰 | 2019-09-16 09:54 |
雷鋒網AI科技評論編者按:BERT, RoBERTa, DistilBERT, XLNet到底哪家強?在不同的研究領域和應用場景如何選擇成了大難題。凡事莫慌,這篇文章幫你理清思路。
谷歌基于transformer的BERT系列一經問世就在NLP領域掀起了一場風暴,在幾項任務中的表現可謂勢頭強勁,已經超越了先前沿用的最先進的技術。最近,谷歌對BERT進行了改版,我將對比改版前后主要的相似點和不同點,以便你可以選擇在研究或應用中使用哪一種。
BERT是一個雙向transformer,用于對大量未標記的文本數據進行預訓練,以學習一種語言表示形式,這種語言表示形式可用于對特定機器學習任務進行微調。雖然BERT在幾項任務中的表現都優于NLP領域沿用過的最先進的技術,但其性能的提高主要還是歸功于雙向transformer、掩蔽語言模型對任務的訓練以及結構預測功能,還包括大量的數據和谷歌的計算能力。
最近,又提出了幾種方法改進BERT的預測指標或計算速度,但是始終達不到兩者兼顧。XLNet和RoBERTa改善了性能,而DistilBERT提高了推理速度。下表對它們進行了比較:

圖1:比較BERT和最近的一些改進情況
GPU計算時間是估算的(使用4個TPU Pod進行為時4天的原始訓練)
使用大量的小批次數據,根據掩蔽程序的差異進行學習速度和延長時間的訓練
數據來源是原始論文
XLNet是一種大型雙向transformer,它使用的是改進過的訓練方法,這種訓練方法擁有更大的數據集和更強的計算能力,在20個語言任務中XLNet比BERT的預測指標要更好。
為了改進訓練方法,XLNet引入了置換語言建模,其中所有標記都是按隨機順序預測的。 這與BERT的掩蔽語言模型形成對比,后者只預測了掩蔽(15%)標記。 這也顛覆了傳統的語言模型,在傳統語言模型中,所有的標記都是按順序而不是按隨機順序預測的。 這有助于模型學習雙向關系,從而更好地處理單詞之間的關系和銜接。此外使用Transformer XL做基礎架構,即使在不統一排序訓練的情況下也能表現出良好的性能。
XLNet使用了超過130 GB的文本數據和512 TPU芯片進行訓練,運行時間為2.5天,XLNet用于訓練的資料庫要比BERT大得多。
RoBERTa,在Facebook上推出的Robustly是BERT的優化方案,RoBERTa在BERT的基礎上進行再訓練,改進了訓練方法,還增加了1000%的數據,強化了計算能力。
為了優化訓練程序,RoBERTa從BERT的預訓練程序中刪除了結構預測(NSP)任務,引入了動態掩蔽,以便在訓練期間使掩蔽的標記發生變化。在這過程中也證實了大批次的訓練規模在訓練過程中的確更有用。
重要的是,RoBERTa使用160 GB的文本進行預訓練,其中包含了16GB的文本語料庫和BERT使用的英文Wikipedia。其他數據包括CommonCrawl News數據集(6300萬篇文章,76 GB),Web文本語料庫(38GB)和普通爬蟲的故事(31 GB)。 再加上1024個 V100的Tesla GPU每天都在運行,這使得RoBERTa具備了進行預訓練的基礎。
因此,RoBERTa在GLUE基準測試結果上優于BERT和XLNet:

圖2:RoBERTa的性能比較。
另一方面,為了減少BERT或相關模型的計算(訓練,預測)時間,理應選擇使用較小的網絡以達到相似的性能。其實有許多方法可以做到這一點,包括剪枝,蒸餾和量化,然而,所有這些都會導致預測指標更低。
DistilBERT學習了BERT的蒸餾(近似)版本,保留了95%的性能,但只使用了一半的參數。 具體來說,它沒有標記類型和池化層的嵌入,只保留了谷歌BERT中一半的層。 DistilBERT使用了一種叫做蒸餾的技術,它與谷歌的BERT(也就是由較小的神經網絡構成大型神經網絡)相似。 這個原理是,一旦要訓練一個大型神經網絡,就可以使用較小的網絡來預估其完整的輸出分布。這在某種意義上類似于后驗近似。 在貝葉斯統計中用于后驗近似的關鍵優化函數之一是Kulback Leiber散度,自然在這里也被用到了。
雷鋒網提示:在貝葉斯統計中,我們接近真實的后驗值(來自數據),而對于蒸餾,我們只能做到接近在較大網絡中學習到的后驗值。
如果你真的需要推理速度快一點,可以接受代價是預測精度稍微下降那么一些的話,那么DistilBERT會是一個合適的選擇,但是,如果你還在尋找最佳的預測性能,你最好使用Facebook的RoBERTa。
從理論上講,基于XLNet置換的訓練應該能處理好依賴關系,并且可能在長期運行中能表現出更好的性能。
但是,Google的BERT確實提供了良好的基線,如果你沒有上述任何關鍵需求,就可以使用BERT維持系統的正常運行。
大多數性能的改善(包括BERT本身)都是由于增加了數據量,計算能力或訓練過程。 雖然它們確實具有自己的價值,但它們往往傾向于在計算和預測指標之間進行權衡。當前真正需要的是在使用更少的數據和計算資源的同時還可以使性能得到基本的改進。(雷鋒網)
原文作者:SuleimanKhan
原文鏈接:https://towardsdatascience.com/bert-roberta-distilbert-xlnet-which-one-to-use-3d5ab82ba5f8
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。