RoBERTa - 論文解讀

image.png
論文地址:https://arxiv.org/pdf/1907.11692.pdf
論文標(biāo)題:
  • RoBERTa: A Robustly Optimized BERT Pretraining A pproach
  • 一個(gè)強(qiáng)力優(yōu)化的BERT預(yù)訓(xùn)練方法。
GitHub地址:
BERT論文解讀:http://m.itdecent.cn/p/18ebd5ab4e45

0、摘要:

語言模式預(yù)訓(xùn)練已經(jīng)帶來了顯著的性能提升,但仔細(xì)比較不同方法是一個(gè)挑戰(zhàn)。訓(xùn)練的計(jì)算成本很高,通常是在不同大小的私有數(shù)據(jù)集上進(jìn)行的,我們將展示,超參數(shù)選擇對最終結(jié)果有重大影響。我們對BERT 預(yù)訓(xùn)練進(jìn)行了一項(xiàng)復(fù)制研究,仔細(xì)測量了許多關(guān)鍵超參數(shù)和訓(xùn)練數(shù)據(jù)大小的影響。

我們發(fā)現(xiàn),BERT的訓(xùn)練明顯不足,可以與發(fā)布后的每個(gè)模型的性能相匹配或超過。作者從模型設(shè)計(jì)選擇(design choice)、訓(xùn)練策略、語料等方面入手,重新對BERT進(jìn)行了預(yù)訓(xùn)練,得到RoBERTa。實(shí)驗(yàn)結(jié)果表明RoBERTa在GLUE、RACE和SQuAD都達(dá)到了SOTA。這些結(jié)果突出了以前被忽略的設(shè)計(jì)選擇的重要性。

1、介紹:

自訓(xùn)練方法,如ELMo、GPT、XLM和XLNet帶來了顯著的性能提升,但是很難說清,這么方法中,哪一部分起到最關(guān)鍵的作用。訓(xùn)練在計(jì)算上是昂貴的,限制了可以進(jìn)行的調(diào)整的數(shù)量,并且通常使用大小不同的私人訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,限制了我們測量建模效果的能力有所提高。

我們提出了一項(xiàng)BERT預(yù)訓(xùn)練的復(fù)制研究,其中包括對超參數(shù)調(diào)節(jié)和訓(xùn)練集大小的影響的仔細(xì)評估。我們發(fā)現(xiàn)BERT的訓(xùn)練明顯不足,并提出了一種改進(jìn)的訓(xùn)練BERT模型的方法,我們稱之為RoBERTa,它可以匹配或超過所有post-BERT方法的性能。

○ RoBERTa改進(jìn)很簡單,包括:

  • (1)用更多的數(shù)據(jù)、更大的batch_size、更長的時(shí)間來訓(xùn)練模型;
  • (2)移除BERT中的NSP任務(wù);
  • (3)長序列訓(xùn)練;
  • (4)根據(jù)訓(xùn)練數(shù)據(jù)動(dòng)態(tài)調(diào)整mask方案;
  • (5)使用新的更大的數(shù)據(jù)集CC-NEWS,以更好地控制訓(xùn)練集大小的影響。

RoBERTa在GLUE任務(wù)上,創(chuàng)造了4項(xiàng)新的SOTA記錄,并在SQuAD和RACE上也與SOTA水平相匹配。

○ 總之,本文的貢獻(xiàn)是:

  • (1)提出一系列重要的BERT設(shè)計(jì)選擇和訓(xùn)練策略。
  • (2) 使用新的更大的數(shù)據(jù)集CC-NEWS,證明了更多的訓(xùn)練數(shù)據(jù)能夠進(jìn)一步提升BERT模型在下流任務(wù)中的表現(xiàn)。
  • (3)實(shí)驗(yàn)結(jié)果表明,masked language model在正確的模型設(shè)計(jì)配置下,比最近提出的其他模型方法都要好。

2、 背景:

在本節(jié)中,我們簡要概述了BERT的預(yù)訓(xùn)練方法和一些訓(xùn)練選擇,我們將在下一節(jié)中進(jìn)行實(shí)驗(yàn)研究。

2.1 設(shè)置:

BERT將兩段(tokens序列)的串聯(lián)作為輸入, x1, . . . , xN 及 y1, . . . , yM。片段通常由多個(gè)自然句子組成。這兩個(gè)段以單個(gè)輸入序列的形式呈現(xiàn)給BERT,并用特殊標(biāo)記對其進(jìn)行分隔: [CLS], x1, . . . , xN , [SEP], y1, . . . , yM, [EOS]。M和N受到約束,使得M+N<T。其中T是一個(gè)參數(shù),用于控制訓(xùn)練期間的最大序列長度。該模型首先在一個(gè)大型的未標(biāo)記文本語料庫上進(jìn)行預(yù)訓(xùn)練,然后使用結(jié)束任務(wù)標(biāo)記的數(shù)據(jù)進(jìn)行微調(diào)。

2.2 架構(gòu):

BERT使用了現(xiàn)在無處不在的Transformer架構(gòu),我們將不詳細(xì)回顧。我們使用帶有L層的Transformer架構(gòu)。每個(gè)Block塊使用一個(gè)self-attention heads,隱藏層的維度為 H。

2.3 訓(xùn)練目標(biāo):

○ 訓(xùn)練期間,BERT的兩個(gè)訓(xùn)練目標(biāo):

  • (1)masked language modeling,MLM。
  • (2)next sentence prediction,NSP。

Masked Language Model (MLM):隨機(jī)的輸入序列中的token示例如下:選擇并替換為特殊token[MASK]。在預(yù)測被masked的tokens時(shí),MLM的目標(biāo)函數(shù)是交叉熵?fù)p失函數(shù)。

BERT 的 mask策略:
隨機(jī)選擇 15% 的 token;
這些15%要被 masked 的 token 并不會真的全替換成 [MASK],而是從這些 token 中:
(1)隨機(jī)選擇 80% 替換成 [MASK] ;
(2)隨機(jī)選擇 10% 替換成隨機(jī) token;
(3)隨機(jī)選擇 10% 不改變原 token。
然后 使用交叉熵?fù)p失來預(yù)測原始的 token。

在最初的實(shí)現(xiàn)中,隨機(jī)mask和replace在開始時(shí)執(zhí)行一次,并在訓(xùn)練期間保存,盡管在實(shí)踐中,數(shù)據(jù)是重復(fù)的,但每個(gè)訓(xùn)練句子的mask并不總是相同的。

Next Sentence Prediction (NSP)
下一句預(yù)測(NSP)NSP是一種二元分類損失,用于預(yù)測原始文本中兩段話是否上下文。通過從文本語料庫中選取連續(xù)的句子來構(gòu)建正例。通過將不同文檔中的片段配對,可以構(gòu)建負(fù)例**。正反兩個(gè)例子的抽樣概率相等。

NSP目標(biāo)旨在提高下游任務(wù)的性能,例如自然語言推理,這些任務(wù)需要對句子對之間的關(guān)系進(jìn)行推理。

2.4 優(yōu)化:

BERT使用Adam進(jìn)行優(yōu)化,參數(shù)如下: β1 = 0.9, β2 = 0.999, ? = 1e-6,L2重量衰減系數(shù)為0.01,在前10000個(gè)步驟中,學(xué)習(xí)速率被預(yù)熱到1e-4的峰值,然后線性衰減。BERT訓(xùn)練時(shí),所有層和注意力權(quán)重的dropout值均為0.1,并具有一個(gè)GELU激活函數(shù)。模型針對S=1000000更新進(jìn)行預(yù)訓(xùn)練,小批量包含最大長度為T=512的 B=256 序列標(biāo)記。

2.5 數(shù)據(jù):
  • BERT訓(xùn)練數(shù)據(jù)是BOOKCORPUS圖書語料庫和WIKIPEDIA英文維基百科的結(jié)合,總共16GB的未壓縮文本。

3、實(shí)驗(yàn)設(shè)置:

在本節(jié)中,將介紹我們對BERT進(jìn)行復(fù)制研究的實(shí)驗(yàn)設(shè)置。

3.1 實(shí)施:

我們在FAIRSEQ重新實(shí)施了BERT。我們主要遵循原始BERT優(yōu)化超參數(shù),除了峰值學(xué)習(xí)率和預(yù)熱步驟數(shù),這兩個(gè)參數(shù)分別針對每個(gè)設(shè)置進(jìn)行調(diào)整。此外,我們還發(fā)現(xiàn)訓(xùn)練對Adam 的ε項(xiàng)非常敏感,在某些情況下,我們在調(diào)整后獲得了更好的性能或穩(wěn)定性。同樣,我們發(fā)現(xiàn)當(dāng)以較大的batch size訓(xùn)練時(shí),將正則項(xiàng)系數(shù)β2=0.98也能提升模型穩(wěn)定性。

我們用最多T=512個(gè)標(biāo)記的序列進(jìn)行預(yù)訓(xùn)練。與Devlin等人不同,我們不會隨機(jī)注入短序列,也不會在前90%的更新中使用縮短的序列長度進(jìn)行訓(xùn)練。我們只訓(xùn)練全長序列。我們在DGX-1機(jī)器上使用混合精度浮點(diǎn)算法進(jìn)行訓(xùn)練,每臺機(jī)器配備 8×32GB Nvidia V100 GPU,由Infiniband互連。

3.2 數(shù)據(jù):

BERT風(fēng)格的預(yù)訓(xùn)練主要依賴于大量的文本。Baevski等人對比于BERT,通過幾項(xiàng)工作針對更大、更多樣化的數(shù)據(jù)集進(jìn)行了訓(xùn)練,得以證明:增加數(shù)據(jù)大小可以提高最終任務(wù)的性能。

不幸的是,并非所有額外的數(shù)據(jù)集都可以公開發(fā)布。在文中的研究中,作者專注于收集盡可能多的實(shí)驗(yàn)數(shù)據(jù),使能夠在每次比較中匹配數(shù)據(jù)的整體質(zhì)量和數(shù)量。

原文考慮五個(gè)不同大小和域的英語語料庫,總計(jì)超過160GB的未壓縮文本。使用以了下文本語料庫:

  • BOOKCORPUS:再加上英語維基百科。這是用于測試的原始數(shù)據(jù)訓(xùn)練BERT,大小為 16GB。

  • CC-NEWS:這是從新聞的英文部分收集的數(shù)據(jù)集。數(shù)據(jù)包含63個(gè)數(shù)以百萬計(jì)的英語新聞文章,2016年過濾后為 76GB。

  • OPENWEBTEXT:這是對Radford等人中描述的WebText語料庫的開源再創(chuàng)作。該文本是從Reddit上共享的URL中提取的web內(nèi)容,至少有三次投票,大小為 38GB。

  • STORIES:Trinh和Le引入的一個(gè)數(shù)據(jù)集,其中包含經(jīng)過過濾的CommonCrawl數(shù)據(jù)子集,以匹配Winograd模式的故事式風(fēng)格,大小為 31GB。

3.3 評估:

在之前的工作之后,我們使用以下三個(gè)基準(zhǔn)來評估下游任務(wù)的預(yù)訓(xùn)練模型。

  • (1)GLUE: General Language Understanding Evaluation
○ GLUE通用語言理解評估基準(zhǔn)是評估自然語言理解系統(tǒng)的9個(gè)數(shù)據(jù)集的集合。

6項(xiàng)任務(wù)分為單句分類任務(wù)和句子對分類任務(wù)。GLUE組織者提供訓(xùn)練和開發(fā)數(shù)據(jù)拆分,以及一個(gè)提交服務(wù)器和排行榜,允許參與者評估和比較他們的系統(tǒng)與私有的測試數(shù)據(jù)。

對于第4節(jié)中的復(fù)制研究,我們報(bào)告了在相應(yīng)的單任務(wù)訓(xùn)練數(shù)據(jù)(即,沒有多任務(wù)訓(xùn)練或整合)上微調(diào)預(yù)訓(xùn)練模型后,開發(fā)集的結(jié)果。我們的微調(diào)程序遵循最初的BERT論文。在第5節(jié)中,我們還報(bào)告了從公共排行榜獲得的測試集結(jié)果。這些結(jié)果取決于我們在第5.1節(jié)中描述的幾個(gè)特定于任務(wù)的修改。

  • (2)SQuAD: Stanford Question Answering Dataset
○ 斯坦福問答數(shù)據(jù)集(STAND)提供了一段上下文和一個(gè)問題。任務(wù)是回答這個(gè)問題通過從上下文中提取相關(guān)span。

我們評估了兩個(gè)版本的SQuAD:V1.1 和 V2.0。在V1中上下文總是包含答案,而在V2中提供的上下文中,有些問題沒有得到回答,使任務(wù)更具挑戰(zhàn)性。

對于SQuAD 的V1.1版本,我們采用了與BERT相同的span預(yù)測方法。 對于SQuAD V2.2,我們添加了一個(gè)額外的二元分類器來預(yù)測問題是否可以回答,我們通過將分類項(xiàng)和span損失項(xiàng)相加來聯(lián)合訓(xùn)練。在評估過程中,我們只預(yù)測分類為成對的span指數(shù)。

(3)RACE: ReAding Comprehension from Examinations

○ RACE考試閱讀理解任務(wù)是一個(gè)大規(guī)模的閱讀理解數(shù)據(jù)集:

包含28000多篇文章和近100000個(gè)問題。該數(shù)據(jù)集收集自中國為中學(xué)生設(shè)計(jì)的英語考試。在比賽中,每篇文章都有多個(gè)問題。對于每個(gè)問題的任務(wù)是從四個(gè)選項(xiàng)中選擇一個(gè)正確答案。與其他流行的閱讀理解數(shù)據(jù)集相比,RACE的語境要長得多,而且需要推理的問題比例非常大。

4 訓(xùn)練程序分析:

該章節(jié)探索和量化什么樣的設(shè)置對于預(yù)訓(xùn)練BERT是重要的。
作者實(shí)驗(yàn)的模型初始設(shè)置與BERT-base ( L = 12 , H = 768 , A = 12 , 110 M params ) 一致。

4.1 Static vs. Dynamic Masking:
○ BERT依賴于隨機(jī)mask和預(yù)測標(biāo)記。原始的BERT實(shí)現(xiàn)在數(shù)據(jù)預(yù)處理期間執(zhí)行一次mask,從而產(chǎn)生一個(gè)靜態(tài)mask。為了避免對每個(gè)epoch中的每個(gè)訓(xùn)練實(shí)例使用相同的mask,訓(xùn)練數(shù)據(jù)被復(fù)制了10次,以便在40個(gè)epoch中,每個(gè)序列以10種不同的方式被mask訓(xùn)練。因此,在訓(xùn)練過程中,每個(gè)訓(xùn)練序列都被用同一個(gè)mask觀看四次。

我們將這種策略與動(dòng)態(tài)mask進(jìn)行比較,在動(dòng)態(tài)mask中,我們每次向模型提供一個(gè)序列時(shí)都會生成mask模式。當(dāng)進(jìn)行更多步驟的預(yù)訓(xùn)練或使用更大的數(shù)據(jù)集時(shí),這一點(diǎn)變得至關(guān)重要。

○ 動(dòng)態(tài)mask:對每個(gè)序列進(jìn)行mask的操作是在喂給模型該序列時(shí)執(zhí)行的。這在預(yù)訓(xùn)練更多步驟或更大數(shù)據(jù)集時(shí),至關(guān)重要。
image.png
實(shí)驗(yàn)結(jié)果:

表1發(fā)現(xiàn):動(dòng)態(tài)mask略比靜態(tài)mask好,因此作者后面的實(shí)驗(yàn)均采用動(dòng)態(tài)mask方式。

4.2 模型輸入格式和下一個(gè)句子預(yù)測:

Model Input Format and Next Sentence Prediction

在原始的BERT預(yù)訓(xùn)練過程中,模型觀察到兩個(gè)串聯(lián)的文檔段,它們要么是連續(xù)采樣的來自同一文檔(p=0.5)或不同文檔。除了MLM 建模目標(biāo),該模型還通過輔助下一句預(yù)測(NSP)來預(yù)測觀察到的文檔片段是否來自相同或不同的文檔。

假設(shè)NSP loss是訓(xùn)練原始BERT模型的一個(gè)重要因素。Devlin等人觀察到,移除NSP會損害性能,QNLI、MNLI和SQuAD1.1的性能顯著下降。然而,最近的一些研究質(zhì)疑了NSP loss 的必要性。為了更好地理解這種差異,我們比較了幾種不同的訓(xùn)練形式:

  • SEGMENT-PAIR+NSP:這遵循了BERT中使用的原始輸入格式,帶有 NSP
    loss。每個(gè)輸入都有一對段,每個(gè)段可以包含多個(gè)自然句子,但總的組合長度必須小于512個(gè)tokens。

  • SENTENCE-PAIR+NSP:每個(gè)輸入都包含一對自然句子,可以從一個(gè)文檔的連續(xù)部分采樣,也可以從另一個(gè)文檔中采樣單獨(dú)的文件。由于這些輸入明顯短于512個(gè)tokens,因此我們增加了批處理大小 batch size ,以使tokens的總數(shù)與段對+NSP類似。我們保留NSP的loss。

  • FULL-SENTENCES:每個(gè)輸入都包含從一個(gè)或多個(gè)文檔中連續(xù)采樣的完整句子,因此總長度為最多512個(gè)tokens。輸入可能會跨越文檔邊界。當(dāng)我們到達(dá)一個(gè)文檔的末尾時(shí),我們開始從下一個(gè)文檔中抽取句子,并在文檔之間添加一個(gè)額外的分隔符標(biāo)記。我們移除了NSP loss。

  • DOC-SENTENCES:輸入的結(jié)構(gòu)類似于FULL-SENTENCES,只是它們不能跨越文檔邊界。在文檔末尾附近采樣的輸入可能短于512個(gè)tokens,因此在這些情況下,我們會動(dòng)態(tài)增加批處理大小,以獲得與FULLSENTENCES相似的總tokens數(shù),我們移除了NSP loss。

image.png
實(shí)驗(yàn)結(jié)果:
  • (1)作者發(fā)現(xiàn)使用單個(gè)句子會損害下游任務(wù)的性能,作者推測這是因?yàn)樵撃P蜔o法學(xué)習(xí)遠(yuǎn)程依賴關(guān)系。
  • (2)去掉NSP任務(wù)會有略微的提升。
  • (3)DOC-SENTENCES比FULL-SENTENCES表現(xiàn)好。

然而,由于DOC-sequences格式會導(dǎo)致不同的批量大小,我們在剩下的實(shí)驗(yàn)中使用FULL-SENTENCES,以便與相關(guān)工作進(jìn)行比較。

4.3 大批量訓(xùn)練:

過去的工作在神經(jīng)機(jī)器翻譯已經(jīng)表明,訓(xùn)練非常大的小批量可以同時(shí)提高優(yōu)化速度和結(jié)束任務(wù)性能時(shí),學(xué)習(xí)率適當(dāng)增加。最近的研究表明,BERT很適合較大規(guī)模的batch訓(xùn)練。

Devlin等人最初對BERT-base進(jìn)行了1M步的訓(xùn)練,批量大小為256個(gè)序列。這相當(dāng)于計(jì)算成本,通過梯度累積,訓(xùn)練125K步,批量大小為2K序列,或批量為8K的31K步驟。

image.png

在表3中,我們比較了BERT-base在增加batch size時(shí)的困惑度和最終任務(wù)性能,控制了通過訓(xùn)練數(shù)據(jù)的次數(shù)。我們觀察到,大批量的訓(xùn)練提高了MLM模型目標(biāo)的復(fù)雜性,以及最終任務(wù)的準(zhǔn)確性。通過分布式數(shù)據(jù)并行訓(xùn)練,大批量也更容易并行化,在以后的實(shí)驗(yàn)中,我們使用8K序列進(jìn)行批量訓(xùn)練。

值得注意的是,You等人用更大的批量訓(xùn)練BERT,最多32K序列。我們將進(jìn)一步探索大批量訓(xùn)練的局限性留給未來的工作。

總結(jié):通過實(shí)驗(yàn)發(fā)現(xiàn),增大batch size能夠進(jìn)一步提升模型的性能,且更大的batch size更易于分布式數(shù)據(jù)的并行訓(xùn)練。
4.4 文本編碼 - Text Encoding:
○ 字節(jié)對編碼Byte-Pair Encoding (BPE) :

是字符級和單詞級表示的混合,允許處理自然語言語料庫中常見的大型詞匯。BPE依賴于子詞單元,而不是完整的詞,子詞單元是通過對訓(xùn)練語料庫進(jìn)行統(tǒng)計(jì)分析來提取的。BPE詞匯表的大小通常在10K-100K子單詞單位之間。然而,unicode字符在其中占了相當(dāng)大的一部分在建模大型和多樣的語料庫時(shí)使用的詞匯,例如本工作中考慮的語料庫。Radford et al介紹了一種巧妙的BPE實(shí)現(xiàn),它使用字節(jié)而不是unicode字符作為基本子字單元。使用字節(jié)可以學(xué)習(xí)中等大?。?0K個(gè)單位)的子單詞詞匯表,它仍然可以對任何輸入文本進(jìn)行編碼,而不引入任何“未知”標(biāo)記。

最初的BERT實(shí)現(xiàn)使用字符級別大小為30K的BPE詞匯表,在使用啟發(fā)式標(biāo)記化規(guī)則對輸入進(jìn)行預(yù)處理后學(xué)習(xí)。在Radford等人之后,我們考慮用更大的字節(jié)級的BPE詞匯來訓(xùn)練BERT,其中包含50K的子字單位,而不需要任何額外的預(yù)處理或令牌化。這分別為BERT - base和Bert - lagle增加了約15M和20M的額外參數(shù)。

文本編碼總結(jié)以下幾點(diǎn):
  • 字節(jié)對編碼(BPE)是字符級和單詞級表示形式的混合體,可以處理自然語言語料庫中常見的大詞匯。

  • Radford在GPT2里提出了一種更巧妙的BPE實(shí)現(xiàn)版本byte-level text encoding,該方法使用bytes作為基礎(chǔ)的子詞單元,這樣便把詞匯表的大小控制到了5w。它可以在不需要引入任何未知字符前提下對任意文本進(jìn)行編碼。

  • BERT原始版本使用字符級(character-level)的BPE詞匯表,大小是3w,是用啟發(fā)式分詞規(guī)則對輸入進(jìn)行預(yù)處理學(xué)習(xí)得到的。

  • 之前的一些實(shí)驗(yàn)結(jié)果表明,這兩種文本編碼的實(shí)驗(yàn)性能區(qū)別不大,可能Radford BPE Encoding在某些任務(wù)上的終端性能略微差點(diǎn),但是RoBerta作者堅(jiān)信通用的編碼模式比性能上的輕微損失更重要,所以在實(shí)驗(yàn)中采用了byte-level text encoding。

5、RoBERTa:

  • 結(jié)合之前章節(jié)提出的改進(jìn)配置,作者將這些配置結(jié)合起來,改進(jìn)后的模型成為RoBERTa。
○ 具體來說,RoBERTa使用:
  • (1)dynamic mask。
  • (2)FULL-SENTENCES without NSP。
  • (3)large mini-batches。
  • (4)byte-level BPE等設(shè)置。

此外,我們還調(diào)查了在之前的工作中被低估的另外兩個(gè)重要因素

  • (1)用于預(yù)訓(xùn)練的數(shù)據(jù)。
  • (2)通過數(shù)據(jù)的訓(xùn)練次數(shù)。

例如,最近提出的XLNet架構(gòu)使用比原始BERT多近10倍的數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練。它還以8倍于優(yōu)化步驟一半的批量進(jìn)行訓(xùn)練,因此在預(yù)訓(xùn)練中看到的序列數(shù)量是BERT的4倍。

為了將這些因素的重要性與其他建模選擇區(qū)分開來,從訓(xùn)練RoBERTa開始遵循大型架構(gòu)(L=24,H=1024,A=16,355M參數(shù))。在Devlin等人使用的可比圖書語料庫和維基百科數(shù)據(jù)集上預(yù)訓(xùn)練了10萬步。使用1024個(gè)V100 GPU對模型進(jìn)行了大約一天的預(yù)訓(xùn)練。

image.png
實(shí)驗(yàn)結(jié)果:
  • 在控制訓(xùn)練數(shù)據(jù)時(shí),觀察到RoBERTa比最初報(bào)告的BERT-large結(jié)果有了很大的改進(jìn)。

  • 接下來,將這些數(shù)據(jù)與第3.2節(jié)中描述的三個(gè)附加數(shù)據(jù)集結(jié)合起來。與之前相同的訓(xùn)練步驟數(shù)(100K)??偣差A(yù)訓(xùn)練了超過160GB的文本。觀察到,整個(gè)計(jì)算性能進(jìn)一步改善所有下游任務(wù),證明了在預(yù)訓(xùn)練過程中,數(shù)據(jù)集規(guī)模和多樣性的重要性。

  • 最后,我們對RoBERTa進(jìn)行了更長時(shí)間的預(yù)訓(xùn)練,將預(yù)訓(xùn)練步驟的數(shù)量從100K增加到300K,然后進(jìn)一步增加到500K。我們再次觀察到下游任務(wù)性能顯著提高,在大多數(shù)任務(wù)中,300K和500K步長模型的性能優(yōu)于XLNet-large。我們注意到,即使是我們訓(xùn)練時(shí)間最長的模型似乎也不會過度擬合我們的數(shù)據(jù),并且可能會從額外的訓(xùn)練中受益。

  • 作者在GLUE,SQuaD和RACE這三個(gè)不同的基準(zhǔn)上評估了RoBERTa模型。具體來說,考慮RoBERTa在前面介紹的所有五個(gè)數(shù)據(jù)集上訓(xùn)練超過500 K步。

5.1 GLUE 結(jié)果:
image.png
對于GLUE,我們考慮兩個(gè)定影設(shè)置:
  • 在第一個(gè)設(shè)置(single task,dev)中,我們分別為每個(gè)GLUE任務(wù)微調(diào)RoBERTa,只使用相應(yīng)任務(wù)的訓(xùn)練數(shù)據(jù)。我們考慮每個(gè)任務(wù)的有限超參數(shù)掃描,具有批量大小∈ {16, 32}以及學(xué)習(xí)率∈ {1e?5,2e?5,3e?5} ,在前6%的步驟中進(jìn)行線性預(yù)熱,然后線性衰減到0。我們?yōu)?0個(gè)epochs和根據(jù)dev集合上每個(gè)任務(wù)的評估指標(biāo)提前停止。其余超參數(shù)與訓(xùn)練前相同。在此設(shè)置中,我們報(bào)告了在五次隨機(jī)初始化過程中每個(gè)任務(wù)的開發(fā)集結(jié)果中值,無需進(jìn)行模型置亂。

  • 在第二個(gè)場景(合奏、測試)中,我們通過GLUE排行榜將RoBERTa與測試集上的其他方法進(jìn)行比較。雖然許多對GLUE排行榜的提交依賴于多任務(wù)微調(diào),但我們的提交僅依賴于單任務(wù)微調(diào)。對于RTE、STS和MRPC我們發(fā)現(xiàn),從MNLI單任務(wù)模型開始,而不是從基線預(yù)訓(xùn)練的RoBERTa開始,進(jìn)行微調(diào)是有幫助的。我們探索了一個(gè)更廣闊的領(lǐng)域附錄中描述的超參數(shù)空間,以及每個(gè)任務(wù)5到7個(gè)模型之間的集成。

○ 特定于任務(wù)的改進(jìn):

GLUE任務(wù)中的兩個(gè)需要特定于任務(wù)的微調(diào)方法,以實(shí)現(xiàn)有競爭力的排行榜結(jié)果。

  • (1)QNLI:最近在GLUE排行榜上提交的報(bào)告采用了QNLI任務(wù)的兩兩排名公式,從訓(xùn)練集中挖掘候選答案并相互比較,以及單個(gè)(問題,候選)配對被歸類為正例。
    這個(gè)公式大大簡化了任務(wù),但不能直接進(jìn)行比較致BERT。在最近的工作之后,我們在提交測試時(shí)采用了排名方法,但用于與BERT進(jìn)行直接比較我們報(bào)告基于純分類方法的開發(fā)集結(jié)果。
  • WNLI
    我們發(fā)現(xiàn)提供的NLI格式數(shù)據(jù)處理起來很有挑戰(zhàn)性。相反我們使用SuperGLUE重新格式化的WNLI數(shù)據(jù),這表明查詢代詞和指代詞的span。我們利用margin ranking loss微調(diào)。
    對于給定的輸入句子,使用spaCy來從句子中提取額外的候選名詞短語,并對模型進(jìn)行微調(diào),使其對正例的指稱短語的評分高于任何負(fù)例候選短語。但是缺點(diǎn)是,我們只能使用正例的訓(xùn)練樣本,而這排除了提供的一半以上的訓(xùn)練樣本。
  • 結(jié)果

  • 第一個(gè)設(shè)置(單任務(wù),dev),RoBERTa實(shí)現(xiàn)所有9種GLUE的最新結(jié)果任務(wù)開發(fā)集。重要的是,RoBERTa使用與Bert-large一樣的MLM預(yù)訓(xùn)練目標(biāo)和架構(gòu),然而,它的表現(xiàn)始終優(yōu)于XLNet - large。與我們在這項(xiàng)工作中探索的數(shù)據(jù)集大小和訓(xùn)練時(shí)間等更普通的細(xì)節(jié)相比,這就提出了關(guān)于模型體系結(jié)構(gòu)和訓(xùn)練前目標(biāo)的相對重要性的問題。

  • 在第二個(gè)場景(合奏、測試)中,將RoBERTa提交給GLUE排行榜,并在9項(xiàng)任務(wù)中的4項(xiàng)任務(wù)中取得SOTA。這尤其令人興奮,因?yàn)榕c其他大多數(shù)任務(wù)不同,RoBERTa不依賴于多任務(wù)微調(diào)。預(yù)計(jì),未來的工作可能會通過結(jié)合更復(fù)雜的多任務(wù)微調(diào)程序進(jìn)一步改善這些結(jié)果。

5.2 SQuAD 結(jié)果:

與過去的工作相比,我們對SQuAD采取了更簡單的方法。特別是,雖然BERT和XLNet都使用額外的QA數(shù)據(jù)集來增加他們的訓(xùn)練數(shù)據(jù),但我們僅使用提供的SQuAD訓(xùn)練數(shù)據(jù)對RoBERTa進(jìn)行微調(diào)。Yang等人還采用了一個(gè)定制的分層學(xué)習(xí)速率計(jì)劃layer-wise learning rate schedule來進(jìn)行微調(diào)。

image.png

對于SQuAD v1.1我們遵循與Devlin等人相同的微調(diào)程序。此外SQuAD v2.0,我們還對給定的這個(gè)問題是可以回答的;我們通過將分類項(xiàng)和span loss項(xiàng)相加,將該分類器與span 預(yù)測器聯(lián)合訓(xùn)練。

結(jié)果:

結(jié)果我們在表6中給出了我們的結(jié)果。SQuAD v1.1開發(fā)集,RoBERTa與XLNet最先進(jìn)的設(shè)置相匹配(SOTA:state-of-the-art)。

在SQuAD v2.0開發(fā)集,RoBERTa設(shè)置了一個(gè)新的SOTA,提高了0.4個(gè)點(diǎn)(EM)和0.6個(gè)點(diǎn)(F1)。我們還將RoBERTa提交公SQuA D2.0排行榜,并評估其相對于其他系統(tǒng)的性能。

大多數(shù)頂級系統(tǒng)建立在BERT或XLNet。兩者都依賴于額外的外部訓(xùn)練數(shù)據(jù)。相比之下,我們提交的工作沒有使用任何其他數(shù)據(jù)。單一RoBERTa模型優(yōu)于其他所有單一模型,是不依賴數(shù)據(jù)擴(kuò)充的模型中得分最高的。

5.3 RACE 結(jié)果:

在RACE中,系統(tǒng)提供一條通道文本、一個(gè)相關(guān)問題和四個(gè)候選答案。系統(tǒng)需要對以下哪項(xiàng)進(jìn)行分類這四個(gè)候選答案是正確的。我們通過將每個(gè)候選答案與相應(yīng)的問題和段落連接起來來改進(jìn)RoBERTa的這項(xiàng)任務(wù)。然后我們對每個(gè)這四個(gè)序列并將[CLS]經(jīng)過全連接層進(jìn)行表示,用于預(yù)測正確答案。截?cái)嚅L度大于問題-答案對的128個(gè)tokens,甚至還包括通道,以便總長度最多為512個(gè)tokens。

  • RACE測試集的結(jié)果如所示表7。RoBERTa均取得SOTA。
image.png

6、相關(guān)工作:

最近的許多論文都為每個(gè)最終任務(wù)使用了微調(diào)模型的基本方式,并使用某種不同的MLM模型目標(biāo)進(jìn)行預(yù)訓(xùn)練。然而,較新的方法通過多任務(wù)微調(diào)、實(shí)體嵌入、span預(yù)測和自回歸預(yù)訓(xùn)練的多種變體提高了性能。通過在更多數(shù)據(jù)上訓(xùn)練更大的模型,性能通常也會得到改善。我們的目標(biāo)是復(fù)制、簡化和更好地調(diào)整BERT的訓(xùn)練,作為更好地理解所有這些方法的相對性能的參考點(diǎn)。

7、 結(jié)論:

在預(yù)訓(xùn)練BERT模型時(shí),我們仔細(xì)評估了一些設(shè)計(jì)策略。發(fā)現(xiàn),通過對模型進(jìn)行更長時(shí)間的訓(xùn)練,對更多數(shù)據(jù)進(jìn)行更大批量的訓(xùn)練,可以顯著提高性能;刪除下一句預(yù)測目標(biāo)NSP;長序列訓(xùn)練;以及動(dòng)態(tài)地改變應(yīng)用于訓(xùn)練數(shù)據(jù)的mask模式。這些改進(jìn)稱之為RoBERTa,在GLUE, RACE 和 SQuAD方面取得了SOTA,而不需要對GLUE進(jìn)行多任務(wù)微調(diào),也不需要為SQuAD提供額外的數(shù)據(jù)。

這些結(jié)果說明了這些之前被忽視的設(shè)計(jì)決策的重要性,并表明BERT的預(yù)訓(xùn)練目標(biāo)與最近提出的備選方案相比仍然具有競爭力。此外,我們還使用了一個(gè)新的數(shù)據(jù)集CC-NEWS,并在以下網(wǎng)址發(fā)布了預(yù)訓(xùn)練和微調(diào)的模型和代碼:https://github.com/pytorch/fairseq

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容