BERT翻譯(v1版本)

Abstract

我們介紹了一個叫BERT的模型,BERT是“Bidirectional Encoder Representations from Transformers”首字母的縮寫。與最近的語言表示模型不同,BERT通過在每一層中連接左邊(上文)和右邊(下文)的內容 被設計成一個雙向表示的深度預訓練模型。這樣做的結果是,預訓練的bert表示可以只添加一個輸出層來進行微調,從而使很多任務達到sota的結果,例如QA,語言推斷,而無需對特定任務進行實質性的體系結構修改。

BERT在概念上很簡單,在實踐中也很強大。 它在11種自然語言處理任務上獲得了新的SOTA結果,包括將GLUE基準提高到80.4%(絕對提高7.6%),MultiNLI(多語型自然語言推理)的準確性提高到86.7%(絕對提高5.6%)。 SQuAD v1.1問題回答測試F1達到93.2(絕對提高1.5),比人類的表現高2.0。

1 Introduction

語言模型預訓練對改善許多自然語言處理任務非常有效(Dai and Le, 2015; Peters et al., 2017, 2018; Radford et al., 2018; Howard and Ruder, 2018) 。 這些任務包括句子級任務,例如自然語言推理(Bowman et al., 2015; Williams et al., 2018)和釋義(原文:paraphrasing)(Dolan and Brockett, 2005),旨在通過整體分析來預測句子之間的關係,以及token-level的任務,例如命名實體識別(Tjong Kim Sang and De Meulder, 2003)和SQuAD問題解答(Rajpurkar et al., 2016),在這些任務中需要模型產生細粒度的token級別的輸出。

現有兩種將預訓練語言表示應用於下游任務的策略:基於特徵的方法和微調的方法。 基於特徵的方法,例如ELMo(Peters等人,2018),使用特定於任務的架構,其使用預訓練表示作爲附加特徵。 微調(fine-tuning)方法,例如Generative Pre-trained Transformer(OpenAI GPT)(Radford et al., 2018)引入了最小的任務特定參數,並通在下游任務上對預訓練的參數進行微調。 在先前的工作中,這兩種方法在預訓練期間都具有相同的目標功能,它們使用單向語言模型來學習通用語言表示。

我們認爲,當前的技術嚴重限制了預訓練表示的能力,特別是對於微調方法。 主要的限制是標準語言模型是單向的,並且這限制了可以在預訓練期間使用的體系結構的選擇。 例如,在OpenAI GPT中,作者使用從左到右的體系結構,其中每個token只能在Transformer的self-attention中關注到當前步之前的token(Vaswani等人,2017)。 這樣的限制對於句子級任務不是最理想的,在對token-level任務採用基於微調的方法(例如SQuAD問題回答)時可能會毀滅性的(Rajpurkar等人,2016)。 在這些任務中,迫切的需要從兩個方向整合上下文。

在本文中,我們通過提出BERT:來自Transformer的雙向編碼器表示法,改進了基於微調的方法。 BERT通過提出一個新的預訓練目標:受完形填空任務啓發的“屏蔽語言模型”(MLM)(泰勒,1953年)來解決前面提到的單向約束。 MLM從輸入中隨機屏蔽了某些標記,目的是僅根據其上下文來預測屏蔽單詞的原始詞彙ID。 與從左到右的語言模型預訓練不同,MLM目標允許表示融合左側和右側的上下文,這使我們可以預訓練深層雙向Transformer。 除了屏蔽語言模型之外,我們還引入了“下一個句子預測”任務,該任務共同預訓練了文本對(text-pair)的表示。

本文的貢獻如下:

  • 我們證明了雙向預訓練對於語言表示的重要性。 與Radford等人不同。(2018),Radford等人使用單向語言模型進行預訓練,BERT使用MLM來實現預訓練的深度雙向表示。 這也與Peters等人相反。 (2018),Peters等人使用的是經過獨立訓練的從左到右和從右到左的LMs的淺層連接。

  • 我們表明,經過預訓練的表示形式消除了許多需要精心設計任務特定體系結構的需求。 BERT是第一個基於fine-tuning 的表示模型,可在一系列sentence-level和token-level任務上得到SOTA的結果,其性能優於具有特定任務架構的許多系統。

  • BERT提高了11項NLP任務的最新SOTA。 我們還報告了BERT的大量消融研究(後文中的第五部分Ablation Studies),表明我們模型的雙向性質是唯一最重要的新貢獻。 代碼和預訓練模型將在goo.gl/language/bert.1上提供

1 Related Work

預訓練通用語言表示形式已有很長的歷史,本節中我們將簡要回顧最流行的方法。

2.1 Feature-based Approaches

幾十年來,學習廣泛適用的單詞表示法一直是研究的活躍領域,包括非神經(Brown等,1992; Ando和Zhang,2005; Blitzer等,2006)和神經(Collobert和Weston,2008; 2006)。 Mikolov等,2013; Pennington等,2014)方法。 經過預訓練的詞嵌入被認爲是現代NLP系統不可或缺的一部分,與從頭開始學習的嵌入相比有顯着改進(Turian等,2010)。

這些方法已推廣到較粗粒度(相對於詞嵌入),例如句子嵌入(Kiros等人,2015; Logeswaran和Lee,2018)或段落嵌入(Le和Mikolov,2014)。 與傳統的單詞嵌入一樣,這些學習的表示形式通常也用作下游模型中的特徵。

ELMo從一個不同的角度闡述了傳統的詞嵌入研究。 他們建議從語言模型中提取上下文相關的功能。 當將上下文詞嵌入與現有的特定於任務的體系結構集成時,ELMo改進了幾個主要的NLP任務(Peters等,2018)的最新技術,其中包括問題解答(Rajpurkar等,2016)。 在SQuAD上,進行情感分析(Socher等人,2013),和命名實體識別(Tjong Kim Sang和De Meulder,2003)。

2.2 Fine-tuning Approaches

從語言模型(LMs)進行遷移學習的最新趨勢是,在針對監督的下游任務微調相同模型之前,先在LM目標上預先訓練一些模型架構(Dai and Le, 2015; Howard and Ruder, 2018; Radford et al., 2018)。 這些方法的優點是幾乎不需要從頭學習參數。 至少部分是由於這一優勢,OpenAI GPT(Radford et al., 2018)在GLUE基準測試中在許多句子級任務上獲得了之前的SOTA結果(Wang et al., 2018)。

2.3 Transfer Learning from Supervised Data

儘管無監督預訓練的優勢在於幾乎可以無限量地使用數據,但也有工作表明可以從具有大型數據集的監督任務中進行有效轉移,例如自然語言推理(Conneau et al。,2017)和機器翻譯(McCann et al。,2017)。 在NLP之外,計算機視覺研究也證明了從大型預訓練模型進行遷移學習的重要性,一個有效的方法是fine-tune在ImageNet上預訓練的模型(Deng et al., 2009; Yosinski et al., 2014)。

3 BERT

我們將在本節中介紹BERT及其詳細實現。 我們首先介紹BERT的模型架構和輸入表示。 然後,在第3.3節中介紹預訓練任務,即本文的核心創新點。 預訓練程序和微調程序分別在3.4和3.5節中詳細介紹。 最後,在第3.6節中討論了BERT與OpenAI GPT之間的區別。

3.1 Model Architecture

BERT的模型架構是多層雙向Transformer編碼器,其基於Vaswani等人所述的原始實現。 (2017)並在tensor2tensor庫中發佈。2^2由於最近已經無處不在使用Transformers,並且我們的實現與原始實現完全相同,因此我們將省略對模型體系結構的詳盡背景說明,並向讀者介紹Vaswani等人。 (2017)以及出色的指南,例如“The Annotated Transformer”3^3

在這裏插入圖片描述

在這項工作中,我們將層(即Transformer模塊)的數量表示爲L,將隱藏的大小表示爲H,並將self-attention heads的數量表示爲A。在所有情況下,我們將前饋/濾波器的大小設置爲 4H,即當H = 768爲3072,H = 1024時爲4096。我們主要報告兩種模型尺寸的結果:

  • BERTBASE_{BASE}: L=12, H=768, A=12, Total Pa- rameters=110M
  • BERTLARGE_{LARGE}: L=24, H=1024, A=16, Total Parameters=340M

爲了做比較,BERTBASE_{BASE}的大小設置爲和GPT相同。但是,BERT的Transformer是雙向的self-attention,而GPT中的Transformer使用的self-attention有更多的限制,當前的token只能從它的前文獲取信息。在文獻中雙向Transformer一般被稱爲“Transformer encoder”,而只能獲取前文信息的‘left-context-only’版本的Transformer稱爲“Transformer decoder”,它可以被用來生成文本。BERT、OpenAI GPT和ELMo的對比在Figure1中給出。

3.2 Input Representation

我們的輸入表示能夠清楚的用一個token序列表達一個文本或成對的句子(例如[question , answer]),對於給定的一個token,它的表示由相應的token相加得到,包括分句信息和位置信息。我們在Figure2中給出了圖像表示。

在這裏插入圖片描述

The specifics are:

  • 我們使用WordPiece詞嵌入表示,包含30000個詞。我們使用“##”來對詞分片。

  • 我們使用了預先學習的位置編碼,可以支持512長度的序列。

  • 每個序列的第一個token都是特殊的分類嵌入編碼([CLS])。最後一層的隱藏狀態(例如Transformer的輸出)會與這個token有關,在分類任務中會使用這個token,此時它表示了所有序列的信息。對於非分類的任務,這個向量就沒用了,可以被忽略。

  • 句子對被封裝進一個序列中。我們通過以下兩種方法區分句子。一,我們使用一個特殊的token([SEP])來分隔兩個句子。二,對應於第一個句子中的每個token,我們向其添加預先學習到的句子向量,這個句子向量的每個token都是A的embedding。同樣的,對應於第二個句子中的每個token,我們向其添加預先學習到的句子向量,這個句子向量的每個token都是B的embeding。

  • 對於單個句子的輸入,我們只使用包含A的embedding的句子向量。

3.3 Pre-training Tasks

與Peters、Radford等人不同,我們沒有使用傳統的從左到右或者從右到左的語言模型來預訓練BERT。相反,我們使用了兩個新穎的任務來進行預訓練,這兩個任務會在本節中描述。

3.3.1 Task #1: Masked LM

從直覺上講,有理由相信,一個深度雙向模型比 從左到右的模型 或者 從左到右與從右到左進行淺層相連的模型要更加強大。不幸的是,標準的語言模型只能從左到右或從右到左訓練,因爲雙向語言模型將允許每個單詞在多層上下文中間接“看到自己”。

爲了訓練一個深度的雙向表示,我們採用了一個簡單的方法,隨機的屏蔽掉一定百分比的token,然後只預測這部分token。我們稱此方法爲“掩蓋式語言模型(MLM)”,儘管在文獻中通常將其稱爲“完形填空”任務(Taylor,1953)。在這種情況下,就像在標準語言模型中一樣,最後的隱層向量中與被屏蔽的token相關的部分會通過softmax反饋到輸出中。在我們所有的實驗中,我們隨機屏蔽了每個序列中的部分token,數量是所有WordPiece token的15%。與去噪自編碼器不同(Vincent et al., 2008),我們只預測屏蔽掉的單詞而不是預測所有的輸入。

儘管這使我們可以獲得一個雙向的預訓練模型,但這個方法有兩個缺點。缺點一,由於[MASK]這個token在fine-tuning過程中是不存在的,會使預訓練任務和微調任務不相同。爲了緩解這個問題,我們並不會一直使用[MASK]替換被屏蔽的token。相反的,訓練數據的生成過程會隨機的選擇15%的token,例如:在“in the sentence my dog is hairy”這句話中我們隨機選擇了“hairy”,然後會執行下面的操作:

  • 數據生成器不會始終使用[MASK]來代替選擇的單詞,它會執行以下操作:

  • 80%的情況下:使用[MASK]替換隨機選中的詞,例如:my dog is hairy → my dog is [MASK]

  • 10%的情況下:隨機選取個單詞來替換選中的詞,例如:my dog is hairy → my dog is apple

  • 10%的情況下:保持選中的詞不變,例如:my dog is hairy → my dog is hairy,這樣做的目的是使表示偏向實際觀察到的單詞。

Transformer解碼器不知道哪個單詞會被預測也不知道哪個單詞是被隨機替換的,所以它強制保留了每個輸入token的上下文分佈表示。此外,因爲隨機替換的情況只有所有token的1.5%,這看起來不會損害模型的語言理解能力。

使用MLM的第二個缺點是,每批次只預測了15%的令牌,這表明模型收斂可能需要更多的預訓練步驟。在第5.3節中,我們證實了MLM的收斂速度比從左到右的模型慢,但是MLM模型的經驗改進遠遠超過了增加的訓練成本。

3.3.2 Task #2: Next Sentence Prediction

許多重要的下游任務,例如問答(QA)和自然語言推論(NLI),都是基於對兩個文本句子之間關係的理解,而語言建模並不能直接捕獲這些關係。爲了訓練一個能夠理解句子關係的模型,我們預訓練了一個預測下一個句子的二值化預測任務,這個任務可以使用任何單語語料庫。具體而言,爲每個預訓練樣本選擇句子A和B時,50%的情況B是A的下一個句子,而50%情況B是來自語料庫的隨機句子。

舉例:

Input == [CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]

Label == IsNext

Input == [CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP]

Label == NotNext

我們完全隨機的選擇NotNext句子,最終的預訓練模型在此任務上達到97%-98%的準確率。 儘管這個任務很簡單,但我們在5.1節中證明了完成此任務的預訓練對QA和NLI都非常有益。

3.4 Pre-training Procedure

預訓練過程很大程度上遵循了現有文獻中有關語言模型預訓練的方法。對於預訓練語料庫,我們把BooksCorpus(800M字)(Zhu等人,2015)與English Wikipedia(2,500M字)串聯起來使用。對於Wikipedia,我們僅提取文本段落,而忽略列表、表格和標題。爲了提取長的連續序列,使用文檔級語料庫至關重要,而不是諸如Billion Word Benchmark(Chelba等人,2013)之類的經過打亂順序的句子級語料庫。

爲了生成訓練所需的每個輸入序列,我們從語料庫中抽取了兩個跨度的文本,我們將它們稱爲“句子”,即使它們通常比單個句子長得多(但也可能更短)。第一個句子接收A嵌入,第二個句子接收B嵌入。50%的情況B確實是A的下一個句子,而50%的情況B是隨機的句子,這是爲“next sentence prediction”任務準備的。對它們進行採樣,以使總長度≤512個token。LM掩蔽操作在WordPiece標記化之後應用,其統一掩蔽率爲15%,並且沒有對任何部的分單詞特別考慮。

我們以256個序列(256個序列* 512個令牌= 128,000個令牌/批)的批處理大小進行1,000,000步的訓練,這大約是33億個單詞語料庫的40個紀元。
我們使用包含256個序列的batch(256 sequences * 512 tokens = 128,000 tokens/batch)訓練了1,000,000步,這大約是在33億個單詞語料上訓練40次迭代。我們使用Adam優化算法,學習速率爲1e-4,β1= 0.9,β2= 0.999,L2權重衰減爲0.01,我們對學習速率使用了預熱的處理方法,在前10,000步迭代內進行預熱,之後進行線性衰減。我們在所有層上使用的dropout probability爲0.1。像OpenAI GPT一樣,我們使用gelu激活函數(Hendrycks和Gimpel,2016)而不是標準relu激活函數。訓練損失是 MLM似然損失的平均值與預測下個句子的似然損失的平均值 的和。

BERTBASE_{BASE}模型的訓練是在雲端TPU上進行的,每個Pod上配置4塊TPU(總共使用16塊TPU),BERTLARGE_{LARGE}的訓練也是在雲端TPU上進行的,但每個Pod上配置了16塊TPU(總共使用64塊)。

3.5 Fine-tuning Procedure

對於序列級別的分類任務,BERT的微調很簡單。爲了獲得一個能把輸入序列中的信息集中起來且是固定維度的表示,我們把最後一層的隱藏狀態(即Transformer的輸出)的第一個token構造相應的特殊字嵌入[CLS]。並把它做爲分類的輸入。我們將該向量表示爲CRHC\in \mathbb{R}^{H}。在微調期間添加的唯一新參數是分類層WRK×HW\in\mathbb{R}^{K\times H},其中K是分類器標籤的數量。標籤概率PRKP\in \mathbb{R}^{K}用標準softmax計算,P=softmax(CWT)P=softmax\left ( CW^{T} \right )。 BERT的所有參數和W都經過最大化正確標籤的對數概率來微調。對於跨度級和token級預測任務,必須根據任務的特定方式稍微修改上述過程。詳情見第4節的相應小節。

對微調來說,模型的超參數除了batch sizelearning rateepochs外,均與預訓練中相同。dropout 的丟棄均設爲0.1。最佳超參數值是特定於任務的,但我們發現以下一系列可能的值在所有任務中都適用:

  • Batch size: 16, 32
  • Learning rate (Adam): 5e-5, 3e-5, 2e-5
  • Number of epochs: 3, 4

我們注意到,相對於小的數據集,大的數據集對超參的選擇更不敏感。微調通常會很快,因此我們可以在開發集上對上面的所有的參數做一個全局搜索,選擇表現最好的模型。

3.6 Comparison of BERT and OpenAI GPT

現有的模型中最適合與BERT進行對比的是OpenAI的GPT模型,GPT模型在一個很大的文本語料上訓練了一個基於Transformer的從左到右的語言模型。實際上,我們有意將BERT中的許多設計、決策 設計的和GPT中的儘量相近,以便可以對兩種方法進行最小化差異的比較。這項工作的核心論點是,在第3.3節中介紹的兩個新提出的預訓練任務對過往任務的提升起了主要做用。但是我們確實注意到,BERT和GPT的訓練方法之間還有其他一些區別:

  • GPT使用的訓練語料是BooksCorpus(800萬字);BERT的訓練語料是BooksCorpus (800萬字)和維基百科(2500萬字)。

  • GPT使用句子分隔符([SEP])和分類token([CLS]),它們僅在微調時引入;BERT在預訓練期間學習[SEP],[CLS]和句子A / B的嵌入。

  • GPT訓練了1M步,一個batch中有32000字; BERT也訓練了1M步,但一個batch包含128,000字。

  • GPT對所有微調實驗都使用值爲5e-5的學習率; BERT根據不同的任務選擇不同的微調學習速率,該速率在開發集上表現最佳。

爲了排除這些差異帶來的影響,我們在5.1節中進行了消融實驗,該實驗表明,大多數改進實際上來自於新的預訓練任務。

4 Experiments

在本節中,我們將介紹BERT模型在11個NLP任務上的微調結果。
在這裏插入圖片描述
Figure 3:我們的特定任務模型是通過將BERT與一個附加的輸出層合併而形成的,因此只需要從頭開始學習最少的參數。 在任務中,(a)和(b)是序列級任務,而(c)和(d)是token級任務。 在圖中,E表示輸入嵌入,Ti表示tokeni_i的上下文表示,[CLS]是用於分類輸出的特殊符號,[SEP]是用於分隔非連續token序列的特殊符號。

4.1 GLUE Datasets

通用語言理解評估(GLUE)基準(Wang et al., 2018)是一個各種自然語言理解任務的集合。大多數GLUE數據集已經存在了很多年,但是GLUE的目的是(1)使用規範的方法來把數據集劃分成Train,Dev和Test ,以及(2)設置評估服務器以緩解評估不一致的問題,以及測試集過擬合的問題。GLUE不會分發測試集的標籤,用戶必須將其預測結果上傳到GLUE服務器以進行評估,但要限制提交的數量。

GLUE基準測試包括以下數據集,Wang等人對其進行了概述。 (2018):

MNLI (Multi-Genre Natural Language Inference)是一個大規模的、來源衆多的、用來做蘊含分類任務的數據集, 目的就是推斷兩個句子是意思蘊含, 矛盾, 還是無關的。

QQP Quora Question Pairs是一個二元分類任務,目標是確定在Quora上詢問的兩個問題在語義上是否等效。

QNLI Question Natural Language Inference是Stanford Question Answering數據集(Rajpurkar et al., 2016)的一個版本,該數據集已轉換爲二分類任務(Wang等,2018)。 正例是(question, sentence)句對,正例句對包含正確的答案,負例是來自同一段落的(question, sentence)句對,不包含答案。

SST-2斯坦福情感樹庫是一個二分類的單句分類任務,由從電影評論中提取的句子,以及人工標註的情感標籤組成。(Socher等人,2013)。

CoLA語言可接受語料庫是一個二元單句分類任務,其目標是預測英語句子在語言上是否“可接受”(Warstadt et al., 2018))。

STS-B 語義文本相似性基準語料庫是從新聞標題和其他來源提取的句子對的集合(Cer et al。,2017)。 他們用1到5分打分,表示這兩個句子在語義上有多相似。

MRPC 微軟研究院釋義語料庫由自動從在線新聞資源中提取的句子對組成,並帶有說明句子對中的句子在語義上是否等效的人工標註信息(Dolan and Brockett, 2005)。

RTE 識別文本蘊含是一項類似於MNLI的二分類蘊含任務,但是訓練數據少得多(Bentivogli et al., 2009)。

WNLI Winograd NLI是一個小型自然語言推理數據集,源自(Levesque et al., 2011)。 GLUE網頁指出,此數據集的構建存在問題7^7,已提交給GLUE的每個受過訓練的系統的效果都比預測多數類的65.1基線準確性差。 因此,出於對OpenAI GPT不公平的考慮,我們將其排除在外。 對於我們的GLUE提交,我們始終會預測多數類。

4.1.1 GLUE Results

在這裏插入圖片描述

Table 1:由GLUE評估服務器評分的GLUE測試結果。 每個任務下方的數字表示訓練樣本的數量。 “Average”列與官方GLUE得分略有不同,因爲我們排除了有問題的WNLI集。 OpenAI GPT =(L = 12,H = 768,A = 12); BERTBASE_{BASE} =(L = 12,H = 768,A = 12); BERTLARGE_{LARGE} =(L = 24,H = 1024,A = 16)。 BERT和OpenAI GPT是單模型,單任務。 所有的結果可以從https://gluebenchmark.com/leaderboard和https://blog.openai.com/language-unsupervised/ 獲得。

爲了在GLUE上進行微調,我們按照第3節中描述的方法來表示輸入序列或序列對,並使用與第一個輸入標記([CLS])對應的最終隱藏向量CRHC\in\mathbb{R}^{H}對應作爲聚合表示。這在圖3(a)和(b)中得到了普遍的證明。在微調過程中引入的唯一新參數是分類層WRK×HW\in\mathbb{R}^{K\times H},其中K是標籤的數目。我們用C和W計算標準分類損失,即log(softmax(CWT))log(softmax(CW^T))

我們使用32和3個階段的批處理大小覆蓋所有粘合任務的數據。對於每一個任務,我們都進行了精細的調整,學習率分別爲5e-5、4e-5、3e-5和2e-5,並選擇了在開發集上表現最好的一個。另外,對於BERTLARGE_{LARGE},我們發現微調在小數據集上有時是不穩定的(即,某些運行會產生退化的結果),因此我們運行了幾個隨機重新啓動,並選擇了在開發集上表現最好的模型。對於隨機重啓,我們使用相同的預訓練檢查點,但執行不同的微調數據洗牌和分類器層初始化。我們注意到GLUE數據集分佈不包括測試標籤,並且我們只爲每個BERTBASE{BASE}和BERTLARGE{LARGE}提交了一個GLUE評估服務器。
我們在GLUE數據集上的所有任務使用的batch size爲32,epoch爲3。我們對每一個任務都進行了微調,使用的學習速率分別爲5e-5, 4e-5, 3e-5和 2e-5,並選擇了在開發集上表現最好的模型。此外,對BERTLARGE_{LARGE}模型來說,我們發現微調在小數據集上有時候是不穩定的(即,微調有時會產生更差的結果),所以我們進行了幾次的隨機重啓操作,並選擇在開發集上表現最好的模型。對於隨機重啓,我們使用相同的預訓練檢查點,但是我們對微調數據執行不同的數據打亂和分類層的初始化。我們注意到GLUE發佈的數據集不包括測試集的標籤,所以我們只能把BERTBASE_{BASE}和BERTLARGE_{LARGE}的結果提交到GLUE的評估服務器。

實驗結果顯示在table1中,BERTBASE_{BASE}和BERTLARGE_{LARGE}在所有任務上的表現均優於所有現有系統,與SOTA結果相比,平均精度分別提高了4.4%和6.7%。 請注意,就注意力掩蔽之外的模型架構而言,BERTBASE_{BASE}和OpenAI GPT幾乎是相同的。 對於最大且報告最廣的GLUE任務MNLI,BERT比最先進的技術提高了4.7%的絕對精度。 在官方的GLUE排行榜上,8^8BERTLARGE_{LARGE}的得分爲80.4,而OpenAI GPT的得分爲72.8。

我們發現,在所有任務中,尤其是訓練數據很少的任務,BERTLARGE_{LARGE}的性能明顯優於BERTBASE_{BASE}。 模型大小的影響將在5.2節中更全面地探討。

4.2 SQuAD v1.1

斯坦福大學問答數據集(SQuAD v1.1)收集了10萬個衆包問題/答案對(Rajpurkar et al., 2016)。 給定一個問題以及Wikipedia中包含答案的段落,任務是預測段落中包含答案的文本範圍。舉例:

  • Input Question:
    Where do water droplets collide with ice
    crystals to form precipitation?
  • Input Paragraph:
    … Precipitation forms as smaller droplets
    coalesce via collision with other rain drops
    or ice crystals within a cloud. …
  • Output Answer:
    within a cloud

這種跨度的預測任務與GLUE的序列分類任務有很大的不同,但是我們能夠使BERT以一個簡單的方式在SQuAD數據上運行。與GLUE一樣,我們將輸入的問題和段落封裝進一個序列來表示,問題使用A嵌入,而段落使用B嵌入。在fine-tun階段唯一需要學習的是起始向量 SRHS\in\mathbb{RH} 和結束向量
tbc…未完,待續。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章