這篇論文提出了?GPT (Generative Pre-Training)?模型,這是?GPT系列(包括 GPT-2, GPT-3, ChatGPT, GPT-4 等)的奠基之作。它標志著自然語言處理領域向大規模無監督預訓練+任務特定微調范式的重大轉變,并取得了顯著的成功。
文章鏈接:language_understanding_paper.pdfhttps://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
Abstract(摘要)
自然語言理解包含一系列廣泛而多樣的任務,例如文本蘊含、問答、語義相似性評估和文檔分類。盡管大型未標記文本語料庫非常豐富,但用于學習這些特定任務的標記數據卻十分稀缺,這使得判別訓練的模型難以達到足夠的性能。
我們證明,通過在一個龐雜的未標記文本語料庫上對語言模型進行生成式預訓練,再在各自特定的任務上進行判別式微調,可以顯著提升這些任務的性能。與之前的方法不同,我們在微調期間利用任務感知(task-aware)的輸入轉換,實現了有效的遷移學習,同時只需要對模型架構進行最小的改動。
我們在多個自然語言理解基準測試上驗證了方法的有效性。我們通用的、與任務無關的模型(general task-agnostic model)性能優于那些專門為每個任務定制架構的判別訓練模型,在所研究的 12 項任務中的 9 項上顯著提高了現有技術水平。例如,我們在常識推理(Stories Cloze Test)上獲得了 8.9% 的絕對提升,在問答(RACE)上獲得了 5.7% 的絕對提升,在文本蘊含(MultiNLI)上獲得了 1.5% 的絕對提升。
1 Introduction(簡介)
從原始文本中有效學習的能力,對于減輕自然語言處理(NLP)中對監督學習的依賴至關重要。?? 大多數深度學習方法需要大量手動標記的數據,這限制了它們在許多缺乏標注資源的領域中的應用 [61]。在這些情況下,能夠利用未標記數據中語言信息的模型,提供了一種有價值的替代方案,無需費時費力地收集更多標注。此外,即使存在大量監督數據的情況下,以無監督的方式學習良好的表征也能顯著提升性能。迄今為止,最具說服力的證據是廣泛使用預訓練詞嵌入 [10, 39, 42] 來提升一系列 NLP 任務的性能 [8, 11, 26, 45]。
然而,從未標記文本中利用超越詞語級別的信息,主要面臨兩個挑戰。首先,尚不清楚哪種優化目標最有效地學習可用于遷移的文本表征。最近的研究探索了各種目標,如語言建模 [44]、機器翻譯 [38] 和語篇連貫性分析 [22],不同方法在不同任務上各有優勢1。其次,對于如何將這些學習到的表征最有效地遷移到目標任務上,目前尚無共識。現有技術通常結合以下手段:針對任務修改模型架構 [43, 44]、使用復雜的學習策略 [21],以及添加輔助學習目標 [50]。這些不確定性增加了開發有效語言處理半監督學習方法的難度。
本文中,我們探索了一種結合無監督預訓練和監督微調的半監督方法,用于語言理解任務。我們的目標是學習一種通用表征,只需極少調整即可遷移到廣泛的任務中。我們假設可獲取一個大型未標記文本語料庫和多個包含手動標注訓練樣本的數據集(目標任務)。我們的設置不要求目標任務與未標記語料庫同屬一個領域。我們采用兩階段訓練過程:首先,我們在未標記數據上使用語言建模目標來學習神經網絡模型的初始參數;隨后,我們使用相應的監督目標將這些參數適配到目標任務。
對于模型架構,我們采用 ??Transformer?? [62],該架構已在機器翻譯 [62]、文檔生成 [34] 和句法分析 [29] 等多種任務上表現出色。與循環網絡等替代方案相比,該模型為處理文本中的長期依賴關系提供了更結構化的記憶,從而能在不同任務中實現魯棒的遷移性能。在遷移過程中,我們利用基于??遍歷式方法??[52]的任務特定輸入適配技術,該技術將結構化的文本輸入處理為單個連續的詞元序列。如我們的實驗所示,這些適配使我們能夠通過對預訓練模型架構進行極少改動,即可實現有效的微調。
我們在四類語言理解任務上評估了我們的方法:自然語言推理、問答、語義相似性和文本分類。我們通用的、??與任務無關的模型??性能優于那些專門為每個任務定制架構的判別訓練模型,在所研究的 12 項任務中的 9 項上顯著提高了現有技術水平。例如,我們在常識推理(??Stories Cloze Test??[40])上獲得了 8.9% 的絕對提升,在問答(??RACE??[30])上獲得了 5.7% 的絕對提升,在文本蘊含(??MultiNLI??[66])上獲得了 1.5% 的絕對提升,在最新引入的??GLUE??多任務基準測試 [64] 上獲得了 5.5% 的絕對提升。我們還分析了預訓練模型在四種不同場景下的??零樣本行為??(zero-shot behaviors),表明該模型確實獲取了對下游任務有用的語言知識。
2 Related Work(相關工作)
NLP 的半監督學習??
我們的工作總體上屬于自然語言??半監督學習??的范疇。這一范式已引起廣泛關注,并應用于序列標注 [24, 33, 57] 或文本分類 [41, 70] 等任務。最早的方法使用未標記數據來計算詞級或短語級統計信息,然后將其用作監督模型中的特征 [33]。過去幾年中,研究人員展示了使用在未標記語料庫上訓練的??詞嵌入??[11, 39, 42] 來提升各種任務性能的優勢 [8, 11, 26, 45]。然而,這些方法主要遷移的是??詞級信息??,而我們的目標是捕獲更??高級別的語義??。
最近的研究致力于探索從未標記數據中學習和利用超越詞級的語義。可以使用未標記語料庫訓練的??短語級或句子級嵌入??,已被用于將文本編碼成適合各種目標任務的向量表征 [28, 32, 1, 36, 22, 12, 56, 31]。
??無監督預訓練??
??無監督預訓練??是半監督學習的一種特殊情況,其目的是找到一個良好的??初始化點??,而不是修改監督學習的目標函數。早期研究探索了該技術在圖像分類 [20, 49, 63] 和回歸任務 [3] 中的應用。后續研究 [15] 表明,預訓練可作為一種??正則化方案??,使深度神經網絡具有更好的??泛化能力??。近期的研究將該方法用于輔助訓練深度神經網絡處理各種任務,如圖像分類 [69]、語音識別 [68]、??實體消歧?? (entity disambiguation) [17] 和機器翻譯 [48]。
與我們工作最相近的研究,涉及使用??語言建模目標??預訓練神經網絡,然后在監督下對目標任務進行??微調??。Dai 等人 [13] 以及 Howard 和 Ruder [21] 遵循此方法來改進文本分類。然而,盡管預訓練階段有助于捕獲一些語言信息,但他們使用的 ??LSTM 模型將其預測能力限制在了短距離范圍內??。相比之下,我們選擇的 ??Transformer 網絡能夠捕獲更長距離的語言結構??,這一點在我們的實驗中得到驗證。此外,我們還在更廣泛的任務上證明了我們模型的有效性,包括自然語言推理、釋義檢測和故事補全。其他方法 [43, 44, 38] 則在目標任務上訓練監督模型時,??使用預訓練的語言模型或機器翻譯模型的隱藏層表征作為輔助特征??。這需要為每個獨立的目標任務引入大量新參數,而我們在遷移過程中僅需對模型架構進行??極小的改動??。
??輔助訓練目標??
??添加輔助的無監督訓練目標??是半監督學習的另一種形式。Collobert 和 Weston 的早期工作 [10] 使用了多種輔助 NLP 任務,如詞性標注、組塊分析、命名實體識別和語言建模,以改進語義角色標注。最近,Rei [50] 在其目標任務的目標函數上??添加了輔助的語言建模目標??,并在序列標注任務上展示了性能提升。我們的實驗也使用了一個輔助目標,但正如我們所示,??無監督預訓練已經學到了許多與目標任務相關的語言層面知識??。
3 Framework(框架)
我們的訓練過程分為兩個階段:
- ??第一階段??:在大型文本語料庫上學習高容量語言模型(無監督預訓練);
- ??第二階段??:使用標記數據將模型適配到判別任務(監督微調)。
??3.1 無監督預訓練??
給定無監督的token語料庫 ,我們使用標準語言建模目標最大化以下似然函數:
其中:
- k?為上下文窗口大小,
- 條件概率?P?由參數為?Θ?的神經網絡建模。
參數通過隨機梯度下降[51]優化。
模型架構??:
使用??多層Transformer解碼器??[34](Transformer[62]的變體)。該模型對輸入上下文token執行??多頭自注意力操作??,再通過位置前饋層生成目標token的輸出分布:
其中:
是token的上下文向量,
- n?為層數,
是token嵌入矩陣,
是位置嵌入矩陣。
3.2 監督微調??
通過公式(1):訓練模型后,我們將參數適配到監督目標任務。假設有一個帶標簽的數據集?C,每個實例由輸入token序列?
及其標簽?y?組成。輸入通過預訓練模型傳遞,獲得最終Transformer塊的激活值
,再輸入至添加的線性輸出層(參數為
)以預測?y:
目標函數為:
關鍵改進??:
將??語言建模作為輔助目標??,通過以下方式提升學習效果:
(a) 改善監督模型的泛化能力,
(b) 加速收斂(與先前工作[50,43]結論一致)。
優化目標(權重?λ):
微調新增參數??:
僅需線性層權重? 和分隔符的嵌入向量(見3.3節)。
圖1??:(左)??本研究使用的Transformer架構與訓練目標??;(右)??面向不同任務微調的輸入轉換方法??。我們將所有結構化輸入轉換為詞元序列(token sequences),由預訓練模型處理,后接線性層+softmax層。
3.3 任務特定輸入轉換??
對文本分類等任務,可直接按上述方式微調。但問答或文本蘊含等任務需處理結構化輸入(如有序句子對、文檔-問題-答案三元組)。由于預訓練模型在連續文本序列上訓練,需修改以適配此類任務。
我們采用??遍歷式方法??[52],將結構化輸入轉換為預訓練模型可處理的序列。這些轉換避免跨任務的大規模架構修改,具體如下(圖1右側示意):
注:所有轉換均包含隨機初始化的起始符??s??和結束符??e?。
??任務類型?? | ??輸入轉換規則?? |
---|---|
??文本蘊含?? | 將前提?p?與假設?h?的token序列拼接,中間插入分隔符?$ ? |
??相似性?? | 比較的兩個句子無固有順序。修改輸入序列包含??兩種可能的句子順序??(中間加分隔符),分別獨立處理生成表示 |
??問答與常識推理?? | 給定上下文文檔?z、問題?q?和備選答案 |
4 Experiments(實驗?)?
??4.1 設置??
??無監督預訓練數據??
使用 ??BooksCorpus 數據集??[71],包含超過 7,000 本未出版書籍(涵蓋冒險、奇幻、浪漫等多種體裁)。關鍵優勢在于其包含??長距離連續文本??,使生成式模型能學習遠程依賴信息。作為對比,類似方法 ELMo[44] 使用的 1B Word Benchmark 數據集規模相近,但其句子級打亂破壞了長程結構。我們的語言模型在該語料庫上達到 ??18.4 的極低 token 級別困惑度??。
??模型規格??
模型主要遵循原始 Transformer 工作[62]:
- ??架構??:12 層僅含解碼器的 Transformer(768 維狀態,12 個掩碼自注意力頭)
- ??前饋網絡??:3072 維內部狀態
- ??優化器??:Adam[27],最大學習率 2.5e-4
- ??學習率調度??:前 2000 步線性升溫,后余弦退火至 0
- ??訓練??:100 個 epoch,小批量(mini-batch)大小 64,序列長度 512 token
- ??正則化??:
- 全模型使用 LayerNorm[2]
- 權重初始化:N(0,0.02)
- 字節對編碼(BPE)詞表:40,000 合并[53]
- 殘差連接、嵌入層、注意力層的 Dropout:0.1
- 改進版 L2 正則化[37]:權重衰減系數?w=0.01(偏置項除外)
- ??激活函數??:高斯誤差線性單元(GELU)[18]
- ??位置編碼??:學習式位置嵌入(替代原始正弦編碼)
- ??文本處理??:
- 使用?
ftfy
?庫清理原始文本 - 標準化標點與空格
- 使用?
spaCy
?分詞器
- 使用?
??微調細節??
- 除非特別說明,??復用無監督預訓練的超參數??
- 分類器添加 Dropout:0.1
- 多數任務學習率:6.25e-5,批量大小 32
- ??快速收斂??:3 個 epoch 即可完成微調
- ??學習率調度??:線性衰減,包含 0.2% 訓練步數的預熱階段
- 輔助目標權重?λ=0.5
表 1:實驗使用的任務與數據集??
任務類型 | 數據集 |
---|---|
自然語言推理 | SNLI[5], MultiNLI[66], QNLI[64], RTE[4], SciTail[25] |
問答與常識推理 | RACE[30], Story Cloze[40] |
語義相似性 | MSR Paraphrase Corpus[14], Quora Question Pairs[9], STS Benchmark[6] |
文本分類 | Stanford Sentiment Treebank-2[54], CoLA[65] |
4.2 監督微調??
我們在多種監督任務上實驗:自然語言推理、問答、語義相似性和文本分類(部分任務屬于 GLUE 多任務基準[64])。任務概覽見圖 1(注:原文未在實驗部分嵌入圖 1)。
??自然語言推理(NLI)??
任務目標:判斷句子對關系(蘊含/矛盾/中立)。評估 5 個異構數據集:
- SNLI(圖像描述)
- MultiNLI(轉錄語音、流行小說、政府報告)
- QNLI(維基百科)
- SciTail(科學考試)
- RTE(新聞)
??表 2:自然語言推理任務結果(對比當前最優方法)??
方法 | MNLI-m | MNLI-mm | SNLI | SciTail | QNLI | RTE |
---|---|---|---|---|---|---|
ESIM+ELMo[44] (5x) | - | - | 89.3 | - | - | - |
CAFE[58] (5x) | 80.2 | 79.0 | 89.3 | - | - | - |
Stochastic Answer Network[35] (3x) | 80.6 | 80.1 | - | - | - | - |
CAFE[58] | 78.7 | 77.9 | 88.5 | 83.3 | - | - |
GenSen[64] | 71.4 | 71.3 | - | - | 82.3 | 59.2 |
Multi-task BiLSTM+Attn[64] | 72.2 | 72.1 | - | - | 82.1 | 61.7 |
??Finetuned Transformer LM (本文)?? | ??82.1?? | ??81.4?? | ??89.9?? | ??88.3?? | ??88.1?? | 56.0 |
??關鍵結論??:
- 在 5 個數據集中的 4 個顯著超越基線(MNLI 提升 1.5%,SciTail 提升 5%,QNLI 提升 5.8%,SNLI 提升 0.6%)
- RTE 上表現較弱(56.0% vs 61.7%),可能因訓練數據量小(僅 2490 樣本),多任務訓練或可改善
??問答與常識推理??
- ??數據集??:
- RACE[30]:初高中考試閱讀理解題(需推理能力)
- Story Cloze[40]:從兩個選項中選擇多句故事的合理結尾
- ??結果優勢??:
- 遠程依賴處理能力提升
- Story Cloze 提升 8.9%,RACE 整體提升 5.7%
??表 3:問答與常識推理結果(對比當前最優方法)??
方法 | Story Cloze | RACE-m | RACE-h | RACE |
---|---|---|---|---|
val-LS-skip[55] | 76.5 | - | - | - |
Hidden Coherence Model[7] | 77.6 | - | - | - |
Dynamic Fusion Net[67] (9x) | - | 55.6 | 49.4 | 51.2 |
BiAttention MRU[59] (9x) | - | 60.2 | 50.3 | 53.3 |
??Finetuned Transformer LM (本文)?? | ??86.5?? | ??62.9?? | ??57.4?? | ??59.0?? |
??語義相似性??
任務目標:判斷句子是否語義等價(需處理改寫、否定與歧義)。
- ??數據集??:
- MRPC[14](新聞源)
- QQP[9](Quora 問題對)
- STS-B[6](語義文本相似性基準)
??表 4:語義相似性與分類結果(基于 GLUE 基準)??
方法 | CoLA (mc) | SST2 (acc) | MRPC (F1) | STSB (pc) | QQP (F1) | GLUE |
---|---|---|---|---|---|---|
Sparse byte mLSTM[16] | - | 93.2 | - | - | - | - |
TF-KLD[23] | - | - | 86.0 | - | - | - |
ECNU (混合集成)[60] | - | - | - | 81.0 | - | - |
Single-task BiLSTM+ELMo+Attn[64] | 35.0 | 90.2 | 80.2 | 55.5 | 66.1 | 64.8 |
Multi-task BiLSTM+ELMo+Attn[64] | 18.9 | 91.6 | 83.5 | 72.8 | 63.3 | 68.9 |
??Finetuned Transformer LM (本文)?? | ??45.4?? | ??91.3?? | ??82.3?? | ??82.0?? | ??70.3?? | ??72.8?? |
??關鍵結論??:
- 在三個語義相似性任務中的兩個達到最優(STS-B 絕對提升 1 分)
- QQP 顯著提升(70.3% F1,絕對提升 4.2%)
??文本分類??
- ??任務??:
- CoLA[65]:句子語法性判斷(測試模型語言歸納偏差)
- SST-2[54]:標準二分類
- ??結果??:
- CoLA 得分 45.4(大幅超越先前最優 35.0)
- SST-2 準確率 91.3%(與最優結果相當)
- GLUE 總分 72.8(顯著超越先前 68.9)
??整體結論??:
- 在評估的 ??12 個數據集中刷新 9 項最佳結果??(包括多個集成模型)
- 模型在大小數據集上均表現優異(STS-B:5.7k 樣本 → SNLI:550k 樣本)
5 Analysis(分析)??
本節通過三個關鍵實驗深入探究模型特性:遷移層數的影響、零樣本行為及消融研究。
5.1 遷移層數的影響??
我們觀察了從無監督預訓練向監督目標任務遷移不同數量層數的效果。??圖2(左)?? 展示了模型在MultiNLI和RACE任務上的性能隨遷移層數變化的函數關系:
- ??核心發現??:
- 遷移詞嵌入層可提升性能(符合常規預期)
- 每增加一個Transformer層都帶來額外增益
- ??完全遷移??(所有層)在MultiNLI上帶來高達9%的提升
- ??技術意義??:
表明預訓練模型的??每一層??都包含對解決目標任務有用的功能模塊
圖2:(左)從預訓練語言模型遷移不同層數對RACE和MultiNLI的影響;(右)零樣本性能隨語言模型預訓練更新的演化趨勢,各任務性能在隨機猜測基線(0%)與當前最佳單模型(100%)間歸一化
5.2 零樣本行為??
為理解Transformer語言模型預訓練的有效性,我們提出假設:??生成模型通過學習執行下游任務來提升語言建模能力??,且Transformer的結構化注意力記憶比LSTM更有利于遷移。為驗證此假設:
- ??實驗設計??:
設計??啟發式解決方案??,使生成模型無需監督微調即可執行任務?? - ?觀測結果??(圖2右):
啟發式性能??穩定且持續提升??,表明生成式預訓練學習了廣泛的任務相關功能??
LSTM的零樣本性能??波動顯著??,驗證Transformer的歸納偏置有利于遷移
具體啟發式方法??:
??任務類型?? | ??零樣本實現邏輯?? |
---|---|
CoLA(語法可接受性) | 計算生成模型賦予token的平均對數概率作為得分,通過閾值判斷預測結果 |
SST-2(情感分析) | 為每個樣本添加"very"標記,限制輸出分布僅含"positive"/"negative",選擇概率更高的詞 |
RACE(問答) | 選擇文檔和問題條件下生成模型賦予最高平均token對數概率的答案 |
DPRD[46](指代消解) | 用兩種可能指代替換定代詞,預測替換后序列獲得更高平均對數概率的解析結果 |
5.3 消融研究??
通過三組對照實驗剖析關鍵組件貢獻(結果見??表5??):
??實驗1:移除輔助語言建模目標??
- ??方法??:微調時禁用公式(5)中的?
?項
- ??發現??:
- NLI任務和QQP性能下降
- ??規律??:大型數據集受益于輔助目標,小型數據集則不然
??實驗2:Transformer vs LSTM??
- ??方法??:用單層2048單元LSTM替換Transformer架構
- ??結果??:
- 平均分下降5.6(見表5 "Avg. Score"列)
- 僅在MRPC上表現優于Transformer
- ??結論??:Transformer的長程依賴處理能力對遷移至關重要
??實驗3:無預訓練對比??
- ??方法??:直接在監督目標任務上訓練Transformer(無預訓練階段)
- ??結果??:
- ??全面性能下降??(平均分降14.8%)
- 所有任務均受損,驗證預訓練的基礎性作用
表5:不同任務的消融分析結果??(Avg. Score為所有結果未加權平均值)
方法 | Avg. Score | CoLA (mc) | SST2 (acc) | MRPC (F1) | STSB (pc) | QQP (F1) | MNLI (acc) | QNLI (acc) | RTE (acc) |
---|---|---|---|---|---|---|---|---|---|
??完整模型?? | ??74.7?? | ??45.4?? | ??91.3?? | ??82.3?? | ??82.0?? | ??70.3?? | ??81.8?? | ??88.1?? | ??56.0?? |
無預訓練 | 59.9 | 18.9 | 84.0 | 79.4 | 30.9 | 65.5 | 75.7 | 71.2 | 53.8 |
無輔助LM目標 | 75.0 | 47.9 | 92.0 | 84.9 | 83.2 | 69.8 | 81.1 | 86.9 | 54.4 |
LSTM+輔助LM | 69.1 | 30.3 | 90.5 | 83.2 | 71.8 | 68.1 | 73.7 | 81.1 | 54.6 |
??核心結論??:
- 預訓練貢獻 > 輔助目標 > 架構選擇
- 完整模型在復雜任務(QNLI/RTE)上優勢最顯著
6 Conclusion(結論)??
我們提出了一種通過??生成式預訓練(generative pre-training)??與??判別式微調(discriminative fine-tuning)??相結合的框架,利用??單一任務無關模型(single task-agnostic model)??實現強大的自然語言理解能力。通過在包含??長程連續文本(long stretches of contiguous text)??的多樣化語料庫上進行預訓練,我們的模型習得了豐富的世界知識以及處理遠程依賴的能力,這些能力成功遷移至解決判別性任務,包括:
- 問答系統(question answering)
- 語義相似性評估(semantic similarity assessment)
- 蘊含關系判定(entailment determination)
- 文本分類(text classification)
在研究的??12個數據集中??,我們在??9項任務上顯著提升了當前最佳性能??(state of the art)。利用無監督(預)訓練提升判別性任務性能,長期以來一直是機器學習研究的重要目標。我們的工作表明,實現顯著的性能提升是切實可行的,并為適用模型(Transformer架構)和數據集(具有遠程依賴的文本)的選擇提供了關鍵指導。我們期望這項工作能推動無監督學習的新研究,不僅限于自然語言理解領域,還可拓展至其他領域,從而進一步深化對無監督學習??運作機制(how)??與??適用條件(when)??的理解。