RoBERTa 和 ALBERT

BERT 模型是 2018 年提出的惠拭,并在很多自然語言處理任務有前所未有的提升费什。因此 2019 年就有很多工作是圍繞著 BERT 展開的镀迂,其中出現(xiàn)了兩個 BERT 的改進版模型,RoBERTa 和 ALBERT泪幌。RoBERTa 在更大的數(shù)據(jù)集和最優(yōu)的參數(shù)中訓練 BERT毯欣,使 BERT 的性能再次提升馒过;ALBERT 主要是對 BERT 進行壓縮臭脓,通過共享所有層的參數(shù)以及 Embedding 分解減少 BERT 的參數(shù)量酗钞。

1. 前言

本文主要介紹 BERT 的兩種改進模型 RoBERTa 和 ALBERT娇澎,關于 BERT 模型可以參考之前的文章 《徹底理解 Google BERT 模型》,首先總體看一下 RoBERTa 和 ALBERT 的一些特點重绷。

RoBERTa:

  • 更大的訓練集尘执,更大的 batch辆毡。
  • 不需要使用 NSP Loss厅篓。
  • 使用更長的訓練 Sequence膜赃。
  • 動態(tài) Mask剧董。

ALBERT:

  • 分解 Embedding 矩陣赶熟,減少維度领猾。
  • 所有 Transformer 層共享參數(shù)米同。
  • 使用 SOP (Sentence Order Prediction) 替代 NSP。

2. RoBERTa

RoBERTa 主要試驗了 BERT 中的一些訓練設置 (例如 NSP Loss 是否有意義摔竿,batch 的大小等)面粮,并找出最好的設置,然后再更大的數(shù)據(jù)集上訓練 BERT继低。

2.1 更大的數(shù)據(jù)集

原來的 BERT 只使用了 16G 的數(shù)據(jù)集熬苍,而 RoBERTa 在更大的數(shù)據(jù)集上訓練 BERT,使用了 160G 的語料:

  • BOOKCORPUS,16G柴底,原來 BERT 的訓練數(shù)據(jù)集
  • CC-NEWS婿脸,76G
  • OPENWEBTEXT,38G
  • STORIES柄驻,31G

2.2 去掉 NSP Loss

BERT 在訓練的過程中采用了 NSP Loss狐树,原本用意是為了讓模型能夠更好地捕捉到文本的語義,給定兩段語句 X = [x1, x2, ..., xN] 和 Y = [y1, y2, ...., yM]鸿脓,BERT 中的 NSP 任務需要預測 Y 是不是 出現(xiàn)在 X 的后面褪迟。

但是 NSP Loss 受到不少文章的質(zhì)疑 ,例如 XLNet答憔,RoBERTa 采用了一個實驗驗證 NSP Loss 的實用性味赃。實驗中采用了四種組合:

Segment-Pair + NSP:這個是原來 BERT 的訓練方法,使用 NSP Loss虐拓,輸入的兩段文字 X 和 Y 可以包含多個句子心俗,但是 X + Y 的長度要小于 512。

Sentence-Pair + NSP:與上一個基本類似蓉驹,也使用 NSP Loss城榛,但是輸入的兩段文字 X 和 Y 都分別是一個句子,因此一個輸入包含的 token 通常比 Segment-Pair 少态兴,所以要增大 batch狠持,使總的 token 數(shù)量和 Sentence-Pair 差不多。

Full-Sentences:不使用 NSP瞻润,直接從一個或者多個文檔中采樣多個句子喘垂,直到總長度到達 512。當采樣到一個文檔末尾時绍撞,會在序列中添加一個文檔分隔符 token正勒,然后再從下一個文檔采樣。

Doc-Sentences:與 Full-Sentences 類似傻铣,不使用 NSP章贞,但是只能從一個文檔中采樣句子,所以輸入的長度可能會少于 512非洲。Doc-Sentences 也需要動態(tài)調(diào)整 batch 大小鸭限,使其包含的 token 數(shù)量和 Full-Sentences 差不多。

RoBERTa 使用 NSP 和不使用 NSP

上圖是實驗結果两踏,最上面的兩行是使用 NSP 的败京,可以看到使用 Segment-Pair (多個句子) 要好于 Sentence-Pair (單個句子),實驗結果顯示使用單個句子會使 BERT 在下游任務的性能下降缆瓣,主要原因可能是使用單個句子導致模型不能很好地學習長期的依賴關系喧枷。

中間兩行是不使用 NSP Loss 的結果,可以看到兩種方式都是比使用 NSP 效果要好的,這說明了 NSP Loss 實際上沒什么作用隧甚,因此在 RoBERTa 中丟棄了 NSP Loss车荔。

2.3 動態(tài) Mask

原始的 BERT 在訓練之前就把數(shù)據(jù) Mask 了,然后在整個訓練過程中都是保持數(shù)據(jù)不變的戚扳,稱為 Static Mask忧便。即同一個句子在整個訓練過程中,Mask 掉的單詞都是一樣的帽借。

RoBERTa 使用了一種 Dynamic Mask 的策略珠增,將整個數(shù)據(jù)集復制 10 次,然后在 10 個數(shù)據(jù)集上都 Mask 一次砍艾,也就是每一個句子都會有 10 種 Mask 結果蒂教。使用 10 個數(shù)據(jù)集訓練 BERT。

下圖是實驗結果脆荷,可以看到使用 Dynamic Mask 的結果會比原來的 Static Mask 稍微好一點凝垛,所以 RoBERTa 也使用了 Dynamic Mask。

RoBERTa 使用 Dynamic Mask

2.4 更大的 batch

之前的一些關于神經(jīng)網(wǎng)絡翻譯的研究顯示了使用一個大的 batch 并相應地增大學習率蜓谋,可以加速優(yōu)化并且提升性能梦皮。RoBERTa 也對 batch 大小進行了實驗,原始的 BERT 使用的 batch = 256桃焕,訓練步數(shù)為 1M剑肯,這與 batch = 2K,訓練步數(shù) 125K 的計算量是一樣的观堂,與 batch = 8K 和訓練步數(shù)為 31K 也是一樣的让网。下圖是使用不同 batch 的實驗結果,不同 batch 學習率是不同的型将,可以看到使用 batch = 2K 時的效果最好寂祥。

RoBERTa batch size

3. ALBERT

BERT 的預訓練模型參數(shù)量很多,訓練時候的時間也比較久七兜。ALBERT 是一個對 BERT 進行壓縮后的模型,降低了 BERT 的參數(shù)量福扬,減少了訓練所需的時間腕铸。

注意 ALBERT 只是減少 BERT 的參數(shù)量,而不減少其計算量铛碑。ALBERT 能減少訓練時間狠裹,這是因為減少了參數(shù)之后可以降低分布式訓練時候的通訊量;ALBERT 不能減少 inference 的時間汽烦,因為 inference 的時候經(jīng)過的 Transformer 計算量和 BERT 還是一樣的涛菠。

下面介紹 ALBERT 的一些優(yōu)化方法。

3.1 Factorized embedding parameterization

這是對 Embedding 進行分解,從而減少參數(shù)俗冻。在 BERT 中礁叔,Embedding 的維度和 Transformer 隱藏層維度是一樣的,都是 H迄薄。假設詞庫的大小為 V琅关,則單詞的 Embedding 矩陣參數(shù)量就有 VH,如果詞庫很大讥蔽,則參數(shù)量會很多涣易。

因此,ALBERT 使用了一種基于 Factorized 的方法冶伞,不是直接把單詞的 one-hot 矩陣映射到 H 維的向量新症,而是先映射到一個低維空間 (E 維),再映射到 H 維的空間响禽,這個過程類似于做了一次矩陣分解账劲。

3.2 Cross-layer parameter sharing

這個是參數(shù)共享機制,即所有 Transformer 層共享一套參數(shù)金抡,Transformer 包括 Multi-Head Attention 的參數(shù)和 Feed-Forward 的參數(shù)瀑焦。針對不同部分的參數(shù),ALBERT 采用了四種方式實驗梗肝。

all-shared:共享所有的 Transformer 參數(shù)榛瓮。

shared-attention:只共享 Transformer 中 Multi-Head Attention 的參數(shù)。

shared-FFN:只共享 Transformer 中 Feed-Forward 的參數(shù)巫击。

not-shared:不共享參數(shù)禀晓。

ALBERT 共享參數(shù)

上圖顯示了不同共享方式模型的參數(shù)量,可以看到共享所有參數(shù)之后的模型要遠遠小于不共享參數(shù)的模型坝锰。當 E = 768 時粹懒,not-shared 的參數(shù)量其實就是 BERT-base 的參數(shù)量,等于 108M顷级,而共享所有參數(shù)后凫乖,模型的參數(shù)量變?yōu)?31M。

通過共享參數(shù)可以有效地減少模型的參數(shù)量弓颈,另外共享參數(shù)還可以幫助模型穩(wěn)定網(wǎng)絡中的參數(shù)帽芽。作者對比了 ALBERT 和 BERT 每一層 Transformer 的輸入和輸出的 L2 距離,發(fā)現(xiàn) ALBERT 的效果更加平滑翔冀,如下圖所示导街。

3.3 使用 SOP 替換 NSP

如 RoBERTa 結果顯示的,NSP Loss 對于模型并沒有什么用處纤子,因此 ALBERT 也對 NSP 進行了一些思考搬瑰。

ALBERT 認為 BERT 中使用的 NSP 任務過于簡單了款票,因為 NSP 的反例是隨機采樣得到的,這些反例的句子通常屬于不同的主題泽论,例如前面的句子是來自體育新聞艾少,而后面的句子來自于娛樂新聞。因此 BERT 在進行 NSP 任務時佩厚,通常是不需要真正學習句子之間的語義以及順序的姆钉,只需要判斷它們的主題類型。

ALBERT 將 NSP 替換成了 SOP (sentence order prediction)抄瓦,預測兩個句子是否被交換了順序潮瓶。即輸入的兩個句子是來自同一文檔的連續(xù)句子,并隨機對這兩個句子的順序進行調(diào)換钙姊,讓模型預測句子是否被調(diào)換過毯辅。這樣可以讓模型更好地學習句子語義信息和相互關系。

4. 總結

RoBERTa 更像是一個經(jīng)過仔細調(diào)參后得到的 BERT 模型煞额,并且使用了更大的數(shù)據(jù)集進行訓練思恐。

ALBERT 對 BERT 的參數(shù)量進行了壓縮,并且能夠減少分布式訓練的開銷膊毁。但是 ALBERT 并不能減少需要的計算量胀莹,因此模型在 inference 時的速度沒有提升。

參考文獻

RoBERTa: A Robustly Optimized BERT Pretraining Approach
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婚温,一起剝皮案震驚了整個濱河市描焰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栅螟,老刑警劉巖荆秦,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異力图,居然都是意外死亡步绸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門吃媒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓤介,“玉大人,你說我怎么就攤上這事晓折』箅” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵漓概,是天一觀的道長。 經(jīng)常有香客問我病梢,道長胃珍,這世上最難降的妖魔是什么梁肿? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮觅彰,結果婚禮上吩蔑,老公的妹妹穿的比我還像新娘。我一直安慰自己填抬,他們只是感情好烛芬,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著飒责,像睡著了一般赘娄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宏蛉,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天遣臼,我揣著相機與錄音,去河邊找鬼拾并。 笑死揍堰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅义。 我是一名探鬼主播屏歹,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼之碗!你這毒婦竟也來了蝙眶?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤继控,失蹤者是張志新(化名)和其女友劉穎械馆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體武通,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡霹崎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冶忱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尾菇。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖囚枪,靈堂內(nèi)的尸體忽然破棺而出派诬,到底是詐尸還是另有隱情,我是刑警寧澤链沼,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布默赂,位于F島的核電站,受9級特大地震影響括勺,放射性物質(zhì)發(fā)生泄漏缆八。R本人自食惡果不足惜曲掰,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奈辰。 院中可真熱鬧栏妖,春花似錦、人聲如沸奖恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑟啃。三九已至论泛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翰守,已是汗流浹背孵奶。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜡峰,地道東北人了袁。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像湿颅,于是被迫代替她去往敵國和親载绿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354