ALBERT: 【A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS】

論文地址: https://openreview.net/pdf?id=H1eA7AEtvS
GitHub地址:https://github.com/google-research/ALBERT
機構(gòu):谷歌
0.摘要:
在對自然語言表示進行預(yù)訓(xùn)練時,增加模型大小通常會提高下游任務(wù)的性能。但是這種純粹依賴模型尺寸進而期望大力出奇跡的想法在未來會越發(fā)困難。進一步增加模型大小將帶來以下困難:(1)GPU/TPU內(nèi)存不足(2)訓(xùn)練時間會更長(3)模型退化。所以,為了解決上述這些問題,本文提出通過兩種參數(shù)精簡技術(shù)來降低內(nèi)存消耗,并加快BERT的訓(xùn)練速度。此外,本文還引入一個自監(jiān)督損失(self-supervised loss),用于對句子連貫性(inter-sentence coherence)建模,并證明該損失函數(shù)能夠提升多句子作為輸入的下游任務(wù)的性能。本文所提出的模型ALBERT在 GLUE、RACE 和 SQuAD 這3個基準(zhǔn)上都取得了新的SOTA結(jié)果,且參數(shù)量還少于 BERT-large。
1 介紹:
全網(wǎng)絡(luò)預(yù)訓(xùn)練在語言表征學(xué)習(xí)方面取得了一系列突破。許多非平凡的NLP任務(wù),包括那些訓(xùn)練數(shù)據(jù)有限的任務(wù),都從這些預(yù)訓(xùn)練模型中受益匪淺。這些突破的一個最引人注目的跡象是,在中國高中英語考試中,閱讀理解任務(wù)的機器性能發(fā)生了變化,RACE test(Lai等人,2017):最初描述任務(wù)并制定建模挑戰(zhàn)的論文報告了最先進的機器的accuracy為44.1%;最新公布的結(jié)果顯示,它們的模型性能為83.2%(Liu等人,2019年);我們在這里介紹的工作將其推高至89.4%,這是一個驚人的45.3%的改進,主要歸功于我們目前構(gòu)建高性能預(yù)訓(xùn)練語言表達(dá)的能力。這些改進的證據(jù)表明,大型網(wǎng)絡(luò)對于實現(xiàn)最先進的性能至關(guān)重要(Devlin等人,2019年;Radford等人,2019年)。
在應(yīng)用場景中通常是預(yù)訓(xùn)練一個大規(guī)模的模型,再對其進行蒸餾萃取出一個更小的模型??紤]到模型大小的重要性,我們不禁要問:“擁有更好的NLP模型和擁有更大的模型一樣容易嗎?”
-
上述問題首要解決的便是:
(1)內(nèi)存受限。當(dāng)下的各種SOTA模型動輒數(shù)億甚至數(shù)十億個參數(shù),倘若要擴大模型規(guī)模,這個內(nèi)存問題是無法回避的。
(2)訓(xùn)練速度上的限制。由于通信開銷與模型中參數(shù)的數(shù)量成正比,在分布式訓(xùn)練中訓(xùn)練速度將成為一大瓶頸。簡單地增加隱含層單元數(shù),只會適得其反,從而降低性能。Table 1和Fig 1中可以看出將BERT-large 的隱藏層單元數(shù)增加一倍, 該模型(BERT-xlarge)在 RACE 基準(zhǔn)測試上的準(zhǔn)確率顯著降低。
image.png
為解決上述問題,已有先賢們做了一些研究,比如模型并行化、智能內(nèi)存管理等。這些解決方案只解決了內(nèi)存受限問題,而沒有考慮模型通信開銷過大和模型退化問題。為此,本文提出A Lite BERT(ALBERT)模型以解決上述三個問題。 該模型的參數(shù)量遠(yuǎn)遠(yuǎn)少于傳統(tǒng)的 BERT 架構(gòu)。
- ALBERT 引入2種參數(shù)精簡技術(shù),克服了擴展預(yù)訓(xùn)練模型面臨的主要障礙。
(1)第一種技術(shù)是對嵌入?yún)?shù)進行因式分解(factorized embedding parameterization):將一個大的詞匯嵌入矩陣分解為兩個小矩陣,從而將隱藏層的大小與詞匯嵌入的大小分離開來。這種分離便于后續(xù)隱藏層單元數(shù)量的增加,怎么說呢?就是增加隱藏層單元數(shù)量,并不顯著增加詞匯嵌入的參數(shù)量。
(2)第二種技術(shù)是跨層參數(shù)共享:這一技術(shù)可以避免參數(shù)量隨著網(wǎng)絡(luò)深度的增加而增加。
這兩種技術(shù)都顯著降低了 BERT 的參數(shù)量,同時不顯著損害其性能, 從而提升了參數(shù)效率。ALBERT 的配置類似于 BERT-large,但參數(shù)量僅為后者的 1/18,訓(xùn)練速度卻是后者的 1.7 倍。 這些參數(shù)精簡技術(shù)還可以充當(dāng)某種形式的正則化,可以使訓(xùn)練更加穩(wěn)定,且有利于泛化。
為了進一步提升 ALBERT 的性能, 本文還引入了一個自監(jiān)督損失函數(shù),用于句子順序預(yù)測(SOP,sentence-order prediction)。SOP 主要聚焦于句間連貫,用于解決原版 BERT中下一句預(yù)測(NSP)損失的低效問題。因為確實已有研究(Yang et al., 2019; Liu et al., 2019)表明NSP是可以去掉的。
基于上述的這3個設(shè)計,ALBERT 能夠擴展為更大的版本,在參數(shù)量仍然小于 BERT-large的同時,性能可以顯著提升。本文在GLUE、SQuAD 和 RACE 這3個自然語言理解基準(zhǔn)測試上都刷新了記錄:在 RACE 上的準(zhǔn)確率為 89.4%,在 GLUE 上的得分為 89.4,在 SQuAD 2.0 上的 F1 得分為 92.2。
2、相關(guān)工作:
2.1 擴大自然語言的表征能力:
自然語言的表征學(xué)習(xí)其重要程度不言而喻,目前的趨勢已從前兩年預(yù)訓(xùn)練詞向量如標(biāo)準(zhǔn)的Word2Vec抑或是基于上下文語境的ELMo轉(zhuǎn)變?yōu)檎麄€網(wǎng)絡(luò)的預(yù)訓(xùn)練+下游任務(wù)微調(diào)。一般上來說,模型更大能夠提升性能,比如Devlin et al. (2019)的工作就表明采用更多的隱含層單元數(shù)、更多的隱含層和更多的attention head能夠提升性能。但是,凡事都有其適用范圍。Devlin在隱含層單元數(shù)設(shè)置為1024后,就沒有繼續(xù)增加了。本文繼續(xù)進一步,發(fā)現(xiàn)當(dāng)隱含層單元數(shù)增加為2048個后,模型性能是退化的。所以,擴大自然語言的表征學(xué)習(xí)模型,并不是簡單地增加模型尺寸。
另外,面對有限的計算資源,特別是GPU/TPU的內(nèi)存受限,大規(guī)模模型的訓(xùn)練會顯得很艱難。之前研究者們的方案有以下幾種:(1)Chen et al. (2016) 提出的gradient checkpointing,以降低內(nèi)存消耗,從而使得內(nèi)存的占用是次線性的,其代價是需要一個額外的forward pass。(2)Gomez et al. (2017)提出從下一層重構(gòu)每一層的激活,如此便無需存儲中間激活。這兩種方法是以犧牲速度為代價換取內(nèi)存占用的降低。反觀本文的方法,通過參數(shù)精簡技術(shù)降低內(nèi)存占用的同時還加速了訓(xùn)練速度,著實令人驚喜。
2.2 跨層參數(shù)共享:
跨層參數(shù)共享在之前的Transformer架構(gòu)中就有,但是Transformer只注重訓(xùn)練用于標(biāo)準(zhǔn)encoder-decoder的任務(wù),而非預(yù)訓(xùn)練+下游任務(wù)微調(diào)的設(shè)置。與本文的觀察所不同的是,Dehghani et al. (2018)發(fā)現(xiàn)跨層參數(shù)共享(Universal Transformer,UT)在語言建模和主謂一致方面能夠取得比標(biāo)準(zhǔn)Transformer更好的結(jié)果。近來, Bai et al. (2019)提出的Deep Equilibrium Model (DQE)表明DQE能夠在某一層取得輸入嵌入與輸出嵌入保持一致的平衡點。
2.3 句子順序目標(biāo):
為了學(xué)習(xí)句子之間的連貫性,ALBERT引入了一個預(yù)測兩個連續(xù)句子次序的目標(biāo)函數(shù)。針對篇章中句子的連貫和銜接,此前就有學(xué)者在預(yù)訓(xùn)練中采用類似操作,比如基于Skip thought (Kiros et al., 2015)和FastSent (Hill et al., 2016)是通過對句子進行encoding進而預(yù)測句子周邊詞匯,從而學(xué)習(xí)句子嵌入。Gan et al., 2017雖然也是學(xué)習(xí)句子嵌入,但是使用的是預(yù)測后續(xù)的句子,而非僅僅其周邊單詞。[Jernite et al., 2017; Nie et al., 2019]所采用的目標(biāo)則是預(yù)測顯性話語標(biāo)記語(explicit discourse markers,即話語末尾標(biāo)記語)。本文所提出的損失函數(shù)是面向文本段落segments,而非句子。BERT中采用的一個損失函數(shù)是預(yù)測兩個segments是否來自相同文檔,更確切地說是,其正樣本是下一個句子,而負(fù)樣本是隨機的其他文檔句子。相比于上述的這些方法,本文的句子次序預(yù)測更具挑戰(zhàn)性,于下游任務(wù)更有益。
3、BERT的組成:
在本節(jié)中,我們將介紹ALBERT的設(shè)計策略,并提供與原始BERT架構(gòu)的相應(yīng)配置相對應(yīng)量化比較(Devlin等人,2019年)。
3.1 模型架構(gòu)選擇:
ALBERT 架構(gòu)的主干網(wǎng)絡(luò)與 BERT 相似,即使用 Transformer 編碼器和 GELU 非線性激活函數(shù)。為便于論述,本文做如下約定:詞嵌入大小為 E 、編碼器層數(shù)為 L、隱藏層大小為 H。與 Devlin 等人的研究一樣,本文將 前饋網(wǎng)絡(luò)/濾波器 大小設(shè)置為 4H,將注意力頭的數(shù)量設(shè)置為 H/64。
○ 本文ALBERT框架與BERT相比有以下3點改進:
-
一、嵌入向量參數(shù)化的因式分解:
在BERT 及后續(xù)的 XLNet 和 RoBERTa 中,WordPiece 詞嵌入大小E 和隱藏層大小H 是相等的,即E ≡ H E 。這在建模和實際使用中,看起來可能并不是最優(yōu)的。
(1)從建模的角度來說,WordPiece 詞嵌入的目標(biāo)是學(xué)習(xí)上下文無關(guān)的表示,而隱藏層嵌入的目標(biāo)是學(xué)習(xí)上下文相關(guān)的表示。[Liu et al.,2019]通過上下文長度相關(guān)的實驗表明,BERT的表征能力很大一部分來自于使用上下文以在學(xué)習(xí)過程提供上下文相關(guān)的表征信息。因此,將 WordPiece 詞嵌入大小 E 從隱藏層大小 H 分離出來,可以更高效地利用總體的模型參數(shù), 其中H 遠(yuǎn)遠(yuǎn)大于EE。
(2)從實踐的角度,自然語言處理使用的詞典大小V 一般非常龐大,如果E 恒等于H ,即E ≡ H E ,那么增加H 將直接增大詞典嵌入矩陣的大小(V × E )。這會導(dǎo)致模型參數(shù)劇增,而模型訓(xùn)練過程中大部分參數(shù)的更新是很稀疏的。
因此,本文所提出的ALBERT對詞嵌入?yún)?shù)進行了因式分解,將其分解為兩個小矩陣。本文不再將 one-hot 向量直接映射到大小為H 的隱藏空間,而是先將它們映射到一個低維詞嵌入空間E ,然后再映射到隱藏空間。通過這種分解,可以將詞嵌入?yún)?shù)從O(V×H)降低到O(V×E+E×H)。這在H 遠(yuǎn)遠(yuǎn)大于E 的時候,參數(shù)量減少得非常明顯。
-
二、跨層參數(shù)共享:
此外,ALBERT中還使用了一種跨層參數(shù)共享機制來進一步提升參數(shù)效率。其實目前有很多方式來共享參數(shù),比如只共享前饋網(wǎng)絡(luò)不同層之間的參數(shù),或者只共享注意力機制的參數(shù),而 ALBERT 采用的是所有層共享所有參數(shù)。
在之前也有學(xué)者提出過類似機制,比如[Dehghani et al. (2018)]的(Universal Transformer, UT)和Bai et al. (2019)和Deep Equilibrium Models(DQE深度平衡模型)。雖然上述方案都有一定提升效果,但在度量過程發(fā)現(xiàn)詞嵌入的 L2 距離和余弦相似性是震蕩而不是收斂的,是震蕩的。如下圖 2 展示了每一層輸入與輸出嵌入矩陣間的 L2 距離與余弦相似性。

Figure 2展示了BERT-Large 與 ALBERT-Large(設(shè)置參見Table 2) 每一層輸入嵌入與輸出嵌入間的 L2 距離與余弦相似性。從Figure 2可以發(fā)現(xiàn) ALBERT 從一層到另一層的轉(zhuǎn)換要比 BERT 平滑得多。這說明權(quán)重共享有效地提升了神經(jīng)網(wǎng)絡(luò)參數(shù)的魯棒性。盡管相比于 BERT,ALBERT在兩個評價指標(biāo)都有所下降,但在 24 層以后,它們也不會收斂到 0。這也表明ALBERT參數(shù)的解空間與DQE是大不相同的。

-
三、句間連貫性損失:
除了語言建模損失(masked language modeling,MLM)外,BERT 還使用了額外的下一句預(yù)測損失(NSP)。NSP損失本是為了提升下游任務(wù)的性能,但是后來很多研究 (Yang et al., 2019; Liu et al.,2019)發(fā)現(xiàn)這種機制并不是很高效,因此決定去除它,這一決定使多個下游任務(wù)性能得到改善。
據(jù)此我們猜測,NSP低效的原因,主要是它的難度太小。因為下一句預(yù)測將主題預(yù)測和連貫性預(yù)測結(jié)合到單個任務(wù)中,然而主題預(yù)測比連貫性預(yù)測簡單得多,同時NSP與MLM損失函數(shù)學(xué)到的內(nèi)容是有重合的。
由于句子間建模是語言理解的一個重要方面,因此本文提出一種基于語言連貫性的損失函數(shù)。在ALBERT中本文使用了一個句子次序預(yù)測(SOP)損失函數(shù),它會避免預(yù)測主題,而只關(guān)注建模句子之間的連貫性。SOP正樣本獲取方法與BERT相同,而負(fù)樣本僅僅是將正樣本的兩個segments次序?qū)Q。實驗結(jié)果表明SOP能夠在合理范圍內(nèi)解決NSP任務(wù)。在使用了該損失函數(shù)后,ALBERT能顯著提升下游多句子編碼任務(wù)的性能。
3.2 模型設(shè)置:
本文用到的BERT和ALBERT對應(yīng)的超參數(shù)如Table 2所示。可以看出,ALBERT的模型參數(shù)量遠(yuǎn)遠(yuǎn)小于對應(yīng)的BERT模型。例如,ALBERT-large的參數(shù)量僅為BERT-large的1/18,即18M vs 334M。對于ALBERT-xxlarge,由于24層網(wǎng)絡(luò)結(jié)構(gòu)與12層網(wǎng)絡(luò)結(jié)構(gòu)在結(jié)果上接近,但是計算量更大,所以本文主要采用12層的網(wǎng)絡(luò)結(jié)構(gòu)。
參數(shù)效率的提高是ALBERT設(shè)計最重要的優(yōu)勢選擇。在量化這一優(yōu)勢之前,我們需要先介紹一下我們的實驗裝置更多細(xì)節(jié)。
4 實驗結(jié)果:
4.1 實驗設(shè)置:
為了進行更公平的對比,本文一方面使用與原始 BERT相同的配置訓(xùn)練試驗?zāi)P?,另一方面采?BOOKCORPUS 和 English Wikipedia 共計 16GB 的純文本作為預(yù)訓(xùn)練任務(wù)的數(shù)據(jù)。與BERT一樣,使用的詞典大小是30,000;此外還借鑒了XLNet中使用的SentencePiece。在MLM目標(biāo)函數(shù)上使用n?gram的masking,隨機選用n?gram的mask遮蔽輸入。預(yù)測生成的n-gram的概率:

本文設(shè)置的n-gram最大長度為3,即MLM目標(biāo)最多由3個全詞組成。
所有模型更新都使用了4096的批量大小和具有0.00176學(xué)習(xí)率的LAMB優(yōu)化器(You等人,2019年)。除非有特殊規(guī)定,我們對所有型號進行125000步的訓(xùn)練。訓(xùn)練是在Cloud TPU V3上完成的。用于訓(xùn)練的TPU數(shù)量從64到512不等,取決于型號大小。本節(jié)中描述的實驗裝置也適用于我們自己的所有版本的BERT以及ALBERT模型,除非另有規(guī)定。
4.2 評價基準(zhǔn):
4.2.1 內(nèi)在評估:
為了監(jiān)控訓(xùn)練進度,我們基于從SQuAD 和 RACE采用與第二節(jié)相同的程序創(chuàng)建了一個開發(fā)集。我們在MLM和句子分類任務(wù)發(fā)表了準(zhǔn)確度。注意,我們只使用這個集合來檢查模型是如何收斂的;它的使用方式不會影響任何下游評估的表現(xiàn),例如,通過模型選擇。
4.2.2 下游評估:
繼Yang et al.(2019)和Liu et al.(2019)之后,我們在三個流行的基準(zhǔn)上評估了我們的模型:通用語言理解評估(GLUE-he General Language Understanding Evaluation)基準(zhǔn)(Wang et al.,2018),斯坦福問答數(shù)據(jù)集的兩個版本(SQuAD;Rajpurkar等人,2016年;2018年),
以及考試閱讀理解(RACE)數(shù)據(jù)集(Lai等人,2017年)。為完整起見,我們在附錄A.3中提供了這些基準(zhǔn)的描述。如(Liu等人,2019年)所述,我們在開發(fā)集上提前停止,在開發(fā)集上報告除我們的最終比較基于任務(wù)排行榜,我們還報告了測試集結(jié)果。對于如果數(shù)據(jù)集在開發(fā)集上有很大的差異,我們報告的中位數(shù)超過5次。
4.3 BERT 與 ALBERT 總體比較:
從Table 3看出,ALBERT-xxlarge 的參數(shù)量只有 BERT-Large 70% ,但性能卻能夠顯著超越BERT-large。具體表現(xiàn)在SQuAD v1.1上提升1.7%,在SQuAD v2.0上提升4.2%,MNLI上提升2.2%,在SST-2上提升3.0%,在RACE上提升8.5%。此外,與BERT large相比,ALBERT xxlarge取得了顯著的改進。這說明形如BERT-xlarge的大參數(shù)模型相較于更小參數(shù)量的模型是更難訓(xùn)練的。
另一個有趣的觀察結(jié)果是,在相同的訓(xùn)練配置(相同數(shù)量的TPU)下,訓(xùn)練時的數(shù)據(jù)吞吐量速度。因為更少的通信和更少的計算,與相應(yīng)的BERT模型相比,ALBERT模型具有更高的數(shù)據(jù)吞吐量。如果我們使用BERT large作為基線,我們觀察到ALBERT large的迭代速度約為1.7倍,由于結(jié)構(gòu)更大,通過數(shù)據(jù)的速度大約慢了3倍。接下來,我們進行實驗,量化每個設(shè)計的個體貢獻(xiàn)ALBERT的選擇。

** ○ 接下來介紹ALBERT中3個主要部分對模型提升所帶來的影響。**
4.4 嵌入向量的因式分解:
- Table 4 展示了在ALBERT-base(具體設(shè)置參見上述Table 2)上修改詞嵌入大小 E 帶來的影響,它們的參數(shù)量及下游任務(wù)效果也都展示在內(nèi)。

Table 4:ALBERT-base 隨詞嵌入大小的改變,其性能與參數(shù)量的變化
- 對于non-shared下(BERT-style),更大的嵌入尺寸能夠取得更好的結(jié)果,但是提升的幅度其實不大。對于all-shared(ALBERT-style),嵌入大小128是最好的?;谏鲜鲞@些結(jié)果,本文在后續(xù)的實驗中的嵌入大小統(tǒng)一選用E = 128。
4.5 跨層參數(shù)共享:
Table 5 展示了不同跨層參數(shù)共享的效果,同樣使用 ALBERT-base 作為示例模型,此外還增加了嵌入大小為768的結(jié)果。對比了所有all-shared策略(ALBERT-style)、not-shared 策略(BERT-style)及其介于二者之間的中間策略(僅注意力參數(shù)共享,F(xiàn)NN不共享;僅FNN參數(shù)共享,注意力參數(shù)不共享)。
還有其他跨層共享參數(shù)的策略。例如,我們可以將L層分成大小為M的N組,每個大小為M的組共享參數(shù)??偟膩碚f,我們的實驗結(jié)果表明,組大小M越小,我們得到的性能越好。然而,減小組大小M也會顯著增加總體參數(shù)的數(shù)量。我們選擇所有共享策略作為默認(rèn)選擇。

從上述結(jié)果可以看出,all-shared型策略在E=768和E=128上都會一定程度上降低性能。但是,需要說明的是,下降幅度較小,對于E=128,平均下降1.5;對于E=768,平均下降2.5。再細(xì)看,共享FFN層的參數(shù),應(yīng)該是罪魁禍?zhǔn)祝欢⒁饬C制的參數(shù)共享帶來的影響不能一概而論,對于E=128反而在平均性能上提升了0.1,對于E=768平均性能下降0.7。
4.6 句子次序預(yù)測(SOP):
本文這里對比了3種策略:沒有句子間損失(比如XLNet和RoBERTa)、NSP(比如BERT)、SOP(ALBERT)。這里采用的ALBERT也是ALBERT-base。對比過程,一方面對比自身任務(wù)中的準(zhǔn)確率,另一方面是下游任務(wù)的性能表現(xiàn)。在自身任務(wù)這一維度,可以看出NSP損失對于SOP幾乎是沒有任何益處,NSP訓(xùn)練后,在SOP上的表現(xiàn)只有52%,這跟瞎猜差不了多少。據(jù)此,可以得出結(jié)論:NSP建模止步于主題識別。反觀SOP損失,確實一定程度上能夠解決NSP任務(wù),其準(zhǔn)確率為78.9%,而自身的準(zhǔn)確率為86.5%。更為重要的是,在下游任務(wù)上SOP損失統(tǒng)統(tǒng)起到促進作用,具體表現(xiàn)在SQuAD1.1提升1%,SQuAD 2.0提升2%,RACE提升1.7%。
Table 6 展示了SOP與下一句預(yù)測損失(NSP)的對比效果。

4.7 相同訓(xùn)練時長下的對比:
從Table 7中的提速結(jié)果看出BERT-large的數(shù)據(jù)吞吐量大概是ALBERT-xxlarge的3.17倍。一般而言,訓(xùn)練越長性能越高,鑒于此,我們進一步對比相同訓(xùn)練時長下不同模型的表現(xiàn)。

- 在訓(xùn)練了差不多相同的時間之后,ALBERT-xxlarge 明顯優(yōu)于 BERT-large。 ALBERT-xxlarge 比 BERT-large: 平均值提升1.5% ,在RACE提高 5.2%.
4.8 引入額外訓(xùn)練集和Dropout的影響:
上述實驗都是在 Wikipedia 和 BOOKCORPUS 數(shù)據(jù)集上進行的,那么,如果增加額外的數(shù)據(jù)會對結(jié)果產(chǎn)生怎樣的影響?這里采用的額外數(shù)據(jù)與XLNet和RoBERTa中的相同。

-
Figure 3a 表明,添加額外數(shù)據(jù)后,模型的開發(fā)集 MLM 準(zhǔn)確率顯著提升。
添加額外數(shù)據(jù)后模型在下游任務(wù)中的性能情況,如Table 8 所示:

- 我們還注意到,即使在訓(xùn)練了 100 萬步之后,最大的模型仍然沒有過擬合。因此,嘗試刪除dropout,以進一步提高模型能力。如Figure 3b 所示,去掉 dropout 可以顯著提高 MLM 準(zhǔn)確度。去掉dropout后在下游任務(wù)上的表現(xiàn)如Table 9所示:

4.9 當(dāng)下SOTA模型在NLU任務(wù)上的對比:
除了上述實驗之外,ALBERT 在 GLUE、SQuAD 和 RACE 基準(zhǔn)測試中都取得了 SOTA 結(jié)果,如Figure 10、11 所示:


5. 總結(jié):
雖然ALBERT-xxlarge的參數(shù)比BERT-large少,并且得到了明顯更好的結(jié)果,但由于其結(jié)構(gòu)更大,計算成本更高。因此,下一步重要的是加快速度通過稀疏注意力等方法提高ALBERT的訓(xùn)練和推理速度(Child等人。2019)和封鎖注意力(Shen等人,2018年)。一個正交的研究路線,可以提供額外的表現(xiàn)力,包括硬示例挖掘(Mikolov等人,2013年)等高效的語言建模訓(xùn)練(Yang等人,2019年)。此外,盡管我們有令人信服的證據(jù)表明,語序預(yù)測是一項更為持續(xù)有效的學(xué)習(xí)任務(wù),可以帶來更好的語言表達(dá),我們假設(shè),目前的自我監(jiān)督訓(xùn)練損失可能還沒有捕捉到更多維度,這可能會為最終的表征創(chuàng)造額外的表征能力。
本文的貢獻(xiàn)主要在3個方面:
(1)對嵌入矩陣分解:解除詞嵌入和隱含層大小的關(guān)系,便于隱含層大小的擴展而不劇增模型參數(shù)。
(2)跨層參數(shù)共享:雖然一定程度上微微降低性能,但是可以大大地降低模型參數(shù),收益很高。
(3)放棄NSP,引入SOP:更為有力地學(xué)習(xí)句子間的連貫性。額外trick:
(4)ALBERT 去掉Dropout操作,因為模型一直沒有過擬合,而Dropout作用是為了防止過擬合,在此模型中沒有必要了。
(5)增大數(shù)據(jù)規(guī)模大力出奇跡。
