完勝BERT!谷歌NLP預(yù)訓(xùn)練利器:小模型也有高精度,單個(gè)GPU就能訓(xùn)練 | 代碼開源
十三 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
這款NLP預(yù)訓(xùn)練模型,你值得擁有。
它叫ELECTRA,來自谷歌AI,不僅擁有BERT的優(yōu)勢(shì),效率還比它高。
ELECTRA是一種新預(yù)訓(xùn)練方法,它能夠高效地學(xué)習(xí)如何將收集來的句子進(jìn)行準(zhǔn)確分詞,也就是我們通常說的token-replacement。
有多高效?
只需要RoBERTa和XLNet四分之一的計(jì)算量,就能在GLUE上達(dá)到它們的性能。并且在SQuAD上取得了性能新突破。
這就意味著“小規(guī)模,也有大作用”,在單個(gè)GPU上訓(xùn)練只需要4天的時(shí)間,精度還要比OpenAI的GPT模型要高。
ELECTRA已經(jīng)作為TensorFlow的開源模型發(fā)布,包含了許多易于使用的預(yù)訓(xùn)練語言表示模型。
讓預(yù)訓(xùn)練變得更快
現(xiàn)存的預(yù)訓(xùn)練模型主要分為兩大類:語言模型?(Language Model,LM)和掩碼語言模型?(Masked Language Model,MLM)。
例如GPT就是一種LM,它從左到右處理輸入文本,根據(jù)給定的上下文預(yù)測(cè)下一個(gè)單詞。
而像BERT、RoBERTa和ALBERT屬于MLM,它們可以預(yù)測(cè)輸入中被掩蓋的少量單詞。MLM具有雙向的優(yōu)勢(shì),它們可以“看到”要預(yù)測(cè)的token兩側(cè)的文本。
但MLM也有它的缺點(diǎn):與預(yù)測(cè)每個(gè)輸入token不同,這些模型只預(yù)測(cè)了一個(gè)很小的子集(被掩蓋的15%),從而減少了從每個(gè)句子中獲得的信息量。
而ELECTRA使用的是一種新的預(yù)訓(xùn)練任務(wù),叫做replaced token detection?(RTD)。
它像MLM一樣訓(xùn)練一個(gè)雙向模型,也像LM一樣學(xué)習(xí)所有輸入位置。
受生成對(duì)抗網(wǎng)絡(luò)(GAN)的啟發(fā),ELECTRA通過訓(xùn)練模型來區(qū)分“真實(shí)”和“虛假”輸入數(shù)據(jù)。
BERT破壞輸入的方法是,使用“[MASK]”替換token,而這個(gè)方法通過使用不正確的(但有些可信的)偽token替換一些輸入token。
例如下圖中的“cooked”可以替換為“ate”。
首先使用一個(gè)生成器預(yù)測(cè)句中被mask掉的token,接下來使用預(yù)測(cè)的token替代句中的[MASK]標(biāo)記,然后使用一個(gè)判別器區(qū)分句中的每個(gè)token是原始的還是替換后的。
在預(yù)訓(xùn)練后,將判別器用于下游任務(wù)。
完勝BERT,SQuAD 2.0表現(xiàn)最佳
將ELECTRA與其他最先進(jìn)的NLP模型進(jìn)行比較可以發(fā)現(xiàn):
在相同的計(jì)算預(yù)算下,它比以前的方法有了很大的改進(jìn),在使用不到25%的計(jì)算量的情況下,性能與RoBERTa和XLNet相當(dāng)。
為了進(jìn)一步提高效率,研究人員還嘗試了一個(gè)小型的ELECTRA模型,它可以4天內(nèi)在單個(gè)GPU上進(jìn)行訓(xùn)練。
雖然沒有達(dá)到需要許多TPU來訓(xùn)練的大型模型的精度,但ELECTRA仍然表現(xiàn)得突出,甚至超過了GPT(只需要1/30的計(jì)算量)。
最后,為了看看是否能夠大規(guī)模實(shí)施,研究人員使用了更多的計(jì)算量(大約與RoBERTa相同的數(shù)量,約T5的10%),來訓(xùn)練一個(gè)大型ELECTRA。
結(jié)果表明,在SQuAD 2.0測(cè)試集上效果達(dá)到了最佳。
不僅如此,在GLUE上也超過了超過了RoBERTa、XLNet和ALBERT。
代碼已開源
其實(shí),這項(xiàng)研究早在去年9月份的時(shí)候便已發(fā)表。但令人激動(dòng)的是,就在近幾日,代碼終于開源了!
主要是ELECTRA進(jìn)行預(yù)訓(xùn)練和對(duì)下游任務(wù)進(jìn)行微調(diào)的代碼。目前支持的任務(wù)包括文本分類、問題回答和序列標(biāo)記。
開源代碼支持在一個(gè)GPU上快速訓(xùn)練一個(gè)小型的ELECTRA模型。
ELECTRA模型目前只適用于英語,但研究人員也表示,希望將來能發(fā)布多種語言的預(yù)訓(xùn)練模型。
傳送門
谷歌AI博客:
https://ai.googleblog.com/2020/03/more-efficient-nlp-model-pre-training.html
GitHub地址:
https://github.com/google-research/electra
論文地址:
https://openreview.net/pdf?id=r1xMH1BtvB



