0
雷鋒網(wǎng) AI 源創(chuàng)評論按:近日,谷歌宣布將 AI 語言模型 ELECTRA 作為 TensorFlow 之上的開源模型發(fā)布。該方法用到了一種稱為替換令牌檢測(RTD)的新預(yù)訓(xùn)練任務(wù),使其能夠在從所有輸入位置學(xué)習(xí)的同時,訓(xùn)練雙向模型。
并且,在同等計算資源的情況下,ELECTRA 的性能優(yōu)于現(xiàn)有方法;而在參數(shù)量只有 1/30 的情況下,取得不遜于最先進(jìn) BERT 系列模型的性能。谷歌發(fā)布了相關(guān)文章介紹這一開源成果,雷鋒網(wǎng) AI 源創(chuàng)評論將其整理編譯如下。
近年來,語言預(yù)訓(xùn)練模型的最新進(jìn)展使得自然語言處理也取得了重大進(jìn)展,其中不乏一些最先進(jìn)的模型,例如:BERT,RoBERTa,XLNet,ALBERT 和 T5 等。
這些方法雖然在設(shè)計上有所不同,但在利用特定的 NLP 任務(wù)(例如:情感分析和問題解答等)進(jìn)行微調(diào)時,有著相同思路,即:利用大量未標(biāo)記的文本,來構(gòu)建語言理解的通用模型。
因此,現(xiàn)有的預(yù)訓(xùn)練方法通常分為兩類:語言模型(LM),例如:GPT。該類方法按照從左到右的順序處理輸入文本,然后在給定先前上下文的情況下,預(yù)測下一個單詞。
另一個則是掩碼語言模型(MLM),例如:BERT,RoBERTa 和 ALBERT。這類模型它們分別預(yù)測輸入中已被屏蔽的少量單詞內(nèi)容。MLM 相比 LM 而言,具有雙向預(yù)測的優(yōu)勢,因為它可以看到要預(yù)測的單詞左側(cè)和右側(cè)的文本。
但 MLM 模型預(yù)測也有缺點,這些模型的預(yù)測僅限于輸入標(biāo)記的某個很小的子集(被掩蓋部分的 15%),從而減少了他們從每個句子中獲得信息的量,增加了計算成本。
現(xiàn)有的預(yù)訓(xùn)練方法及其缺點。箭頭指示哪些標(biāo)記用于生成給定的輸出表示形式(矩形)。左:傳統(tǒng)語言模型(例如 GPT)僅使用當(dāng)前單詞左側(cè)的上下文。右:掩碼語言模型(例如 BERT)從左到右都使用上下文,但是對于每個輸入僅預(yù)測一小部分單詞
正是為了克服以上兩類語言模型存在的缺點,谷歌提出了 ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)語言模型。這是一種新型預(yù)訓(xùn)練方法,其關(guān)鍵點在于將預(yù)訓(xùn)練文本編碼器作為標(biāo)識符而非生成器,來處理現(xiàn)存語言模型的問題。
論文地址:https://openreview.net/pdf?id=r1xMH1BtvB
在相同的模型大小、數(shù)據(jù)、計算量的情況下,該方法的性能顯著優(yōu)于 MLM 類的方法,例如 BERT 和 XLNet;而且,ELECTRA 小模型僅需要在 1 塊 GPU 訓(xùn)練 4 天即可得到。
具體實驗數(shù)據(jù)顯示,這個小模型比 BERT 小模型在 GLUE 得分上 高 5 個點,甚至比更大的 GPT 模型(該模型使用 30 倍以上的計算能力)效果還要好。
而 ELECTRA 在使用少于 1/4 的計算量時,可以在 GLUE 自然語言理解基準(zhǔn)上達(dá)到 RoBERTa 和 XLNet 的性能。如果使用更多的計算機(jī)來訓(xùn)練大型 ELECTRA,該模型在 SQuAD 2.0 的問答數(shù)據(jù)集和語言理解任務(wù)的排行榜上,獲得了最先進(jìn)的表現(xiàn)。(具體數(shù)據(jù)見第四小節(jié))
ELECTRA 使用一種稱為替換令牌檢測(RTD)的新預(yù)訓(xùn)練任務(wù),該任務(wù)在從所有輸入位置(如:LM)學(xué)習(xí)的同時,訓(xùn)練雙向模型(如:MLM)。
具體而言,ELECTRA 的目標(biāo)是學(xué)習(xí)區(qū)分輸入的詞。它不使用掩碼,而是從一個建議分布中采樣詞來替換輸入,這解決了掩碼帶來的預(yù)訓(xùn)練和 fine-tune 不一致的問題。
然后模型再訓(xùn)練一個判別器,來預(yù)測每個詞是原始詞還是替換詞。而判別器的一個優(yōu)點則是:模型從輸入的所有詞中學(xué)習(xí),而不是像 MLM 那樣,僅使用掩蓋的詞,因此計算更加有效。
正如很多開發(fā)者聯(lián)想到的對抗學(xué)習(xí)方法,ELECTRA 確實受到到生成對抗網(wǎng)絡(luò)的啟發(fā)(GAN)。但不同的是,模型采用的是最大似然而非對抗學(xué)習(xí)。
例如下圖中,單詞「cooked」可以替換為「ate」。盡管這有些道理,但它并不適合整個上下文。預(yù)訓(xùn)練任務(wù)需要模型(即鑒別器)來確定原始輸入中的哪些標(biāo)記已被替換或保持相同。
正是由于該模型的二進(jìn)制分類任務(wù)適用于每個輸入單詞,而非僅有少量的掩碼單詞(在 BERT 樣式的模型中為 15%),因此,RTD 方法的效率比 MLM 高。這也解釋了為什么 ELECTRA 只需更少的示例,就可以達(dá)到與其它語言模型相同性能的原因。
從所有輸入位置學(xué)習(xí)時,替換的令牌檢測可進(jìn)行雙向訓(xùn)練
其中,替換令牌來自生成器的神經(jīng)網(wǎng)絡(luò)。生成器的目標(biāo)是訓(xùn)練掩碼語言模型,即給定輸入序列后,按照一定的比例(通常 15%)將輸入中的詞替換成掩碼;然后通過網(wǎng)絡(luò)得到向量表示;之后再采用 softmax 層,來預(yù)測輸入序列中掩蓋位置的詞。
盡管生成器的結(jié)構(gòu)類似于 GAN,但由于難以將該方法應(yīng)用于文本任務(wù),因此得到的訓(xùn)練目標(biāo)函數(shù)為掩蓋詞的最大似然。
之后,生成器和判別器共享相同的輸入詞嵌入。判別器的目標(biāo)是判斷輸入序列每個位置的詞是否被生成器替換,如果與原始輸入序列對應(yīng)位置的詞不相同,就判別為已替換。
生成器與判別器神經(jīng)網(wǎng)絡(luò)模型
研究人員將 ELECTRA 與其他最新的 NLP 模型進(jìn)行了比較,發(fā)現(xiàn)在給定相同的計算預(yù)算的情況下,它與以前的方法相比有了實質(zhì)性的改進(jìn),其性能與 RoBERTa 和 XLNet 相當(dāng),而使用的計算量不到 1/4。
x 軸顯示用于訓(xùn)練模型的計算量(以 FLOPs 為單位),y 軸顯示 dev GLUE 得分。與現(xiàn)有的預(yù)訓(xùn)練 NLP 模型相比,ELECTRA 的學(xué)習(xí)效率要高得多。但值得注意的是,目前 GLUE 上的最佳模型(例如 T5(11B))不適合該圖,因為它們使用的計算量比其他模型多得多(比 RoBERTa 多 10 倍)
為了進(jìn)一步提高效率,研究人員嘗試了一個小型的 ELECTRA 模型,該模型可以在 4 天的時間內(nèi)在單個 GPU 上進(jìn)行良好的訓(xùn)練。
盡管無法達(dá)到與需要訓(xùn)練許多 TPU 的大型模型相同的精度,但 ELECTRA-small 的性能仍然很好,甚至比 GPT 還要好,而所需的計算量卻只有其三分之一。
之后,為了測試這一結(jié)果是否能大規(guī)模實施,研究人員使用了更多的計算量(大約與 RoBERTa 相同的數(shù)量,大約是 T5 的 10%)訓(xùn)練了一個大型 ELECTRA 模型。
研究人員將大型 ELECTRA、RoBERTa、XLNet、BERT 和 ALBERT 模型在 SQuAD 2.0 問題回答數(shù)據(jù)集的表現(xiàn)做了測試,結(jié)果如下表所示;可以看到在 GLUE 排行榜上,ELECTRA 的表現(xiàn)優(yōu)于其它所有模型。
但相比大型 T5-11b 模型,后者在 GLUE 上的得分仍然更高。但值得注意的是,ELECTRA 的大小是其三分之一,并使用 10%的計算進(jìn)行訓(xùn)練。
SQUAD 2.0 數(shù)據(jù)集在 ELECTRA-Large 和其他最新模型中得分
目前,用于預(yù)訓(xùn)練 ELECTRA 并在下游任務(wù)上對其進(jìn)行微調(diào)的代碼已發(fā)布,當(dāng)前支持的任務(wù)包括:文本分類、問題解答和序列標(biāo)記。
該代碼支持在一個 GPU 上快速訓(xùn)練小型 ELECTRA 模型。之后,谷歌還計劃發(fā)布適用于 ELECTRA-Large,ELECTRA-Base 和 ELECTRA-Small 的預(yù)訓(xùn)練代碼。(ELECTRA 模型目前僅支持英語,后續(xù)將發(fā)布更多語言版本)
原文地址:
https://ai.googleblog.com/2020/03/more-efficient-nlp-model-pre-training.html
GitHub 地址:
雷鋒網(wǎng) AI 源創(chuàng)評論 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。