NLP领域预训练模型
聲明
本文原文來自于:arxiv
介紹
在大語料上訓(xùn)練的預(yù)訓(xùn)練模型可以學(xué)習(xí)得到通用的語言表達知識,對很多下游任務(wù)表現(xiàn)有幫助。隨著算力的提升、訓(xùn)練方法越來越強,這些模型也越來越深。
第一代預(yù)訓(xùn)練模型學(xué)習(xí)詞嵌入模型,由于模型本身不會用在后面的任務(wù)中,因此大多比較淺;
第二代預(yù)訓(xùn)練模型關(guān)注結(jié)合上下文語境的詞嵌入,這一些模型一般仍然需要在后續(xù)的任務(wù)中繼續(xù)學(xué)習(xí)具體的單詞表達。
背景
自然語言表示
一個好的表達應(yīng)該表達通用先驗,這些先驗不是特定于任務(wù)的,但可能對學(xué)習(xí)機器解決人工智能任務(wù)有用。對語言來說,包括語法規(guī)則和語義知識。通用的方法是用一個低維的非稀疏向量來表示句子語義。
上下文表示,([h_1,h_2,cdots,h_T] = f_{enc}(x_1, x_2,cdots,x_T))
編碼器
序列模型學(xué)習(xí)的是順序的特征,訓(xùn)練成本低,但不容易捕捉跨度較大的信息。非序列模型表達能力更強,訓(xùn)練需要更大的語料。
序列模型
卷積網(wǎng)絡(luò)
循環(huán)網(wǎng)絡(luò)
非序列模型
fully-connected self-attention
預(yù)訓(xùn)練模型的意義
在大語料上訓(xùn)練的預(yù)訓(xùn)練模型可以學(xué)到通用的語言表達知識
初始化較好,加速模型收斂
PTM可以視為一種正則化,減少過擬合
PTM歷史
第一代PTM
在大量的未標(biāo)注語料上訓(xùn)練可以輔助其他任務(wù)。CBOW和Skip-Gram是非常經(jīng)典的模型。Word2vec 是這些模型最流行的實現(xiàn)之一,它使預(yù)訓(xùn)練的詞嵌入可用于 NLP 中的不同任務(wù)。此外,GloVe也是一種廣泛使用的用于獲得預(yù)訓(xùn)練詞嵌入的模型,該模型是通過大型語料庫中的全局(詞-詞)共現(xiàn)統(tǒng)計計算得出的。
還有一些聚焦于段落或者文章的,如paragraph vector, Skip-thought vectors, Context2Vec。
第二代PTM
第二代PTM考慮每個詞的上下文語義。Dai 和 Le 為 NLP 提出了第一個成功的 PTM 實例,他們使用語言模型和序列自動編碼器初始化 LSTM,發(fā)現(xiàn)預(yù)訓(xùn)練可以提高 LSTM 在許多文本分類任務(wù)中的訓(xùn)練和泛化能力。Ramachandran等人發(fā)現(xiàn)無監(jiān)督預(yù)訓(xùn)練可以顯著改善 Seq2Seq 模型。編碼器和解碼器的權(quán)重均使用兩種語言模型的預(yù)訓(xùn)練權(quán)重進行初始化,然后使用標(biāo)注數(shù)據(jù)進行微調(diào)。除了用 LM 預(yù)訓(xùn)練上下文編碼器外,McCann 等人使用機器翻譯從使用注意力的seq2seq模型預(yù)訓(xùn)練了一個深度 LSTM 編碼器。預(yù)訓(xùn)練編碼器輸出的CoVe可以提高各種常見 NLP任務(wù)的性能。
Peters等得到了帶有雙向語言模型 (BiLM) 的預(yù)訓(xùn)練 2 層 LSTM 編碼器,由前向 LM 和后向 LM 組成。預(yù)訓(xùn)練的ELMo輸出的上下文表示在廣泛的 NLP 任務(wù)中帶來了巨大的改進。阿克比克等人使用字符級 LM 預(yù)訓(xùn)練的上下文字符串嵌入捕獲詞義。然而,這兩個 PTM 通常用作特征提取器來生成上下文詞嵌入,這些詞嵌入被輸入到主模型中以執(zhí)行下游任務(wù)。這些模型參數(shù)固定,下游任務(wù)的網(wǎng)絡(luò)參數(shù)是從頭開始訓(xùn)練的,ULMFiT嘗試對用于文本分類(TC)的預(yù)訓(xùn)練 LM 進行微調(diào),并在六個廣泛使用的文本分類數(shù)據(jù)集上取得了最先進的結(jié)果。 ULMFiT 由 3 個階段組成:
在通用領(lǐng)域數(shù)據(jù)上預(yù)訓(xùn)練 LM;
在目標(biāo)數(shù)據(jù)上微調(diào)LM;
對目標(biāo)任務(wù)進行微調(diào)。
ULMFiT 還研究了一些有效的微調(diào)策略,包括判別式微調(diào)、傾斜三角學(xué)習(xí)率和逐步解凍。
最近,非常深的 PTM 顯示了它們在學(xué)習(xí)通用語言表示方面的強大能力:例如,OpenAI GPT和 BERT。除了 LM,還提出了越來越多的自監(jiān)督任務(wù),以使 PTM 從大規(guī)模文本語料庫中捕獲更多知識。
概覽
預(yù)訓(xùn)練任務(wù)
監(jiān)督學(xué)習(xí)
非監(jiān)督學(xué)習(xí)
自監(jiān)督學(xué)習(xí)
在本節(jié)中,我們將介紹現(xiàn)有 PTM 中一些廣泛使用的預(yù)訓(xùn)練任務(wù)。我們可以將這些任務(wù)視為自監(jiān)督學(xué)習(xí)。下表還總結(jié)了他們的損失函數(shù)。
Language Modeling,用之前所有的詞預(yù)測下一個詞,問題是只能預(yù)測單向。
Masked Language Modeling (MLM),隨機用[MASK]標(biāo)識遮住一些單詞,然后用上下文預(yù)測這些單詞。為了解決訓(xùn)練和應(yīng)用過程中的不匹配,BERT使用了80%的[MASK],10%的隨機token和10%的原字符。
Sequence-to-Sequence MLM (Seq2Seq MLM),用seq2seq思想編碼帶掩碼的序列,然后再解碼得到掩碼序列。
Permuted Language Modeling (PLM),XLNet論文中指出,MASK方法本質(zhì)上還將各個被蓋住的字符視為獨立的,過度簡化。PTM將原始序列隨機打亂,然后預(yù)測某些位置上的詞。在實踐中,由于收斂緩慢,只能預(yù)測置換序列中的最后幾個標(biāo)記。并且為目標(biāo)感知表示引入了特殊的雙流自注意力。
Denoising Autoencoder (DAE),恢復(fù)被破壞的輸入語句。方法有:
使用mask遮蓋。
刪除某些字符(相比于1,需要預(yù)測位置)
文本填充。
恢復(fù)隨機打亂的句子。
文本旋轉(zhuǎn),隨機地選擇一個詞并旋轉(zhuǎn)文檔,使其以該詞開始。模型需要識別文檔的真正開始位置。
Contrastive Learning (CTL),對比學(xué)習(xí)主要通過提高正確的詞對相對于隨機詞對的表現(xiàn)來訓(xùn)練的。
Deep InfoMax (DIM),需要(f_{enc}( extrm{x}_{i:j})^T f_{enc}(hat{ extrm{x}}_{i:j}) > f_{enc}( ilde{ extrm{x}}_{i:j})^Tf_{enc}( extrm{x}_{i:j})),其中( extrm{x}_{i:j},hat{ extrm{x}}_{i:j}, ilde{ extrm{x}}_{i:j})分別表示(i, j)子段、被蓋住后的掩碼序列和一段隨機序列。
Replaced Token Detection (RTD),替換標(biāo)記檢測 (RTD) 與 NCE 相同,但根據(jù)其周圍的上下文預(yù)測標(biāo)記是否被替換。帶負(fù)采樣的 CBOW (CBOW-NS) [129] 可以看作是 RTD 的一個簡單版本,其中負(fù)樣本是從詞匯表中隨機采樣的,具有簡單的分布。
Next Sentence Prediction (NSP) ,預(yù)測兩個句子間的關(guān)系。
Sentence Order Prediction (SOP),與NSP相似,但負(fù)樣本可以為連續(xù)兩個句子顛倒順序,這樣就不能用主題進行預(yù)測了。
分類角度
為了闡明現(xiàn)有 PTM 與 NLP 的關(guān)系,我們構(gòu)建了 PTM 分類法,從四個不同的角度對現(xiàn)有 PTM 進行分類:
表示類型:根據(jù)下游任務(wù)使用的表示,我們可以將 PTM 分為非上下文模型和上下文模型。
結(jié)構(gòu):PTM 使用的骨干網(wǎng)絡(luò),包括 LSTM、Transformer 編碼器、Transformer 解碼器和完整的 Transformer 架構(gòu)。“Transformer”是指標(biāo)準(zhǔn)的編碼器-解碼器架構(gòu)。 “Transformer 編碼器”和“Transformer 解碼器”分別表示標(biāo)準(zhǔn) Transformer 架構(gòu)的編碼器和解碼器部分。它們的區(qū)別在于解碼器部分使用帶有三角矩陣的掩碼自注意力來防止單詞出現(xiàn)在它們未來(正確)的位置上。
預(yù)訓(xùn)練任務(wù)類型:PTM 使用的預(yù)訓(xùn)練任務(wù)類型。
擴展:為各種場景設(shè)計的 PTM,包括知識豐富的 PTM、多語言或特定語言的 PTM、多模型 PTM、特定領(lǐng)域的 PTM 和壓縮的 PTM。
模型分析
由于 PTM 的巨大成功,了解它們捕獲了哪些類型的知識以及如何從它們中歸納出知識非常重要。有大量文獻分析存儲在預(yù)訓(xùn)練的非上下文和上下文嵌入中的語言知識和世界知識。
非上下文詞嵌入
首先探索靜態(tài)詞嵌入以獲取各種知識。米科洛夫等人發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)語言模型學(xué)習(xí)的單詞表示能夠捕捉語言中的語言規(guī)律,單詞之間的關(guān)系可以用關(guān)系特定的向量偏移來表征。有研究發(fā)現(xiàn),Skip-Grame生成的詞向量可以捕獲句法和語義詞關(guān)系,例如 vec(“China”) ? vec(“Beijing”) ≈ vec(“Japan”) ? vec(“Tokyo”)。此外,他們發(fā)現(xiàn)詞向量的組合屬性,例如,vec(“Germany”) + vec(“capital”) 接近 vec(“Berlin”)。受這些工作的啟發(fā),Rubinstein 等人。發(fā)現(xiàn)分布詞表示擅長預(yù)測分類屬性(例如,狗是一種動物),但無法學(xué)習(xí)屬性(例如,天鵝是白色的)。同樣,古普塔等人表明 word2vec 嵌入隱式編碼實體的參考屬性。分布式詞向量與簡單的監(jiān)督模型一起,可以學(xué)習(xí)以合理的準(zhǔn)確度預(yù)測實體的數(shù)字和二進制屬性。
上下文詞嵌入
大量研究在上下文嵌入中探索和誘導(dǎo)了不同類型的知識。一般來說,有兩種類型的知識:語言知識和世界知識。
語言知識
廣泛的探索任務(wù)旨在調(diào)查 PTM 中的語言知識。坦尼,劉等人發(fā)現(xiàn) BERT 在許多句法任務(wù)上表現(xiàn)良好,例如詞性標(biāo)注和成分標(biāo)注。然而,相比于簡單的句法任務(wù),BERT 在語義和細(xì)粒度句法任務(wù)上還不夠好,此外,Tenney 等人分析了 BERT 層在不同任務(wù)中的作用,發(fā)現(xiàn) BERT 解決任務(wù)的順序與 NLP 管道中的順序相似。此外,BERT 中也證實了主謂一致和語義角色的知識。此外,休伊特和曼寧、賈瓦哈爾、金等人提出了幾種從 BERT 中提取依賴樹和選區(qū)樹的方法,證明了 BERT 編碼語法結(jié)構(gòu)的能力。雷夫等人探索了 BERT 內(nèi)部表示的幾何結(jié)構(gòu)并找到了一些證據(jù):1)語言特征似乎在單獨的語義和句法子空間中表示; 2)注意力矩陣包含語法表示; 3)BERT 在非常精細(xì)的層面上區(qū)分詞義。
世界知識
除了語言知識,PTM 還可以存儲訓(xùn)練數(shù)據(jù)中呈現(xiàn)的世界知識。探索世界知識的一種直接方法是使用“填空”完形填空語句查詢 BERT,例如,“但丁出生于 [MASK]”。彼得羅尼等人通過從多個知識源手動創(chuàng)建單標(biāo)記完形填空語句(查詢)來構(gòu)建 LAMA(語言模型分析)任務(wù)。他們的實驗表明,BERT 包含與傳統(tǒng)信息提取方法競爭的世界知識。由于LAMA的查詢生成方式簡單,江等人認(rèn)為 LAMA 只是測量語言模型知道的下限,并提出更先進的方法來生成更有效的查詢。盡管 LAMA 的發(fā)現(xiàn)令人驚訝,但它也受到了后續(xù)工作的質(zhì)疑。同樣,一些研究從 BERT 中為下游任務(wù)引入了關(guān)系知識和常識知識。
PTM擴展
知識增強PTM
PTM 通常從通用的大規(guī)模文本語料庫中學(xué)習(xí)通用語言表示,但缺乏特定領(lǐng)域的知識。將外部知識庫中的領(lǐng)域知識合并到 PTM 中已被證明是有效的。外部知識范圍從語言 、語義、常識 、事實到特定領(lǐng)域的知識。
一方面,可以在預(yù)訓(xùn)練期間注入外部知識。早期的研究側(cè)重于聯(lián)合學(xué)習(xí)知識圖嵌入和詞嵌入。自 BERT 以來,設(shè)計了一些輔助預(yù)訓(xùn)練任務(wù),將外部知識整合到深度 PTM 中。 LIBERT (基于語言的 BERT)通過額外的語言約束任務(wù)整合了語言知識。柯等人整合每個詞的情感極性,將 MLM 擴展到 Label-Aware MLM (LA-MLM)。因此,他們提出的模型 SentiLR 在多個句子和方面級別的情感分類任務(wù)上實現(xiàn)了最先進的性能。萊文等人提出了 SenseBERT,它經(jīng)過預(yù)訓(xùn)練,不僅可以預(yù)測被屏蔽的標(biāo)記,還可以預(yù)測它們在 WordNet 中的超意義。
ERNIE(THU)將在知識圖譜上預(yù)訓(xùn)練的實體嵌入與文本中相應(yīng)的實體提及相結(jié)合,以增強文本表示。同樣,KnowBERT與實體鏈接模型聯(lián)合訓(xùn)練 BERT,以端到端的方式合并實體表示。王等人提出了KEPLER,它聯(lián)合優(yōu)化了知識嵌入和語言建模目標(biāo)。這些工作通過實體嵌入注入知識圖的結(jié)構(gòu)信息。相比之下,K-BERT顯式地將從 KG 中提取的相關(guān)三元組注入到句子中,以獲得 BERT 的擴展樹形輸入。此外,熊等人采用實體替換識別來鼓勵模型更加了解事實知識。然而,大部分這些方法,都在注入知識時修改了模型參數(shù),在注入多種知識時可能會遭受災(zāi)難性的遺忘。為了解決這個問題,K-Adapter 通過針對不同的預(yù)訓(xùn)練任務(wù)獨立訓(xùn)練不同的適配器來注入多種知識,從而實現(xiàn)持續(xù)的知識注入。
另一方面,人們可以將外部知識整合到預(yù)先訓(xùn)練的模型中,而無需從頭開始重新訓(xùn)練。例如,K-BERT允許在對下游任務(wù)進行微調(diào)期間注入事實知識。關(guān)等人使用常識知識庫、ConceptNet 和 ATOMIC 來增強 GPT-2 以生成故事。楊等人提出了一種知識-文本融合模型,用于獲取機器閱讀理解的相關(guān)語言和事實知識。
此外,Logan IV 等人和 Hayashi 等人分別將語言模型擴展到知識圖語言模型(KGLM)和潛在關(guān)系語言模型(LRLM),兩者都允許以知識圖為條件進行預(yù)測。這些新穎的 KG 條件語言模型顯示出預(yù)訓(xùn)練的潛力。
多語種與特定語種的預(yù)訓(xùn)練模型
多語種
學(xué)習(xí)跨語言共享的多語言文本表示在許多跨語言 NLP 任務(wù)中起著重要作用。
跨語種語言理解
大多數(shù)早期工作都集中在學(xué)習(xí)多語言詞嵌入,它在單個語義空間中表示來自多種語言的文本。然而,這些方法通常需要語言之間的(弱)對齊。
多語言 BERT (mBERT) 由 MLM 預(yù)訓(xùn)練,使用來自前 104 種語言的維基百科文本的共享詞匯和權(quán)重。每個訓(xùn)練樣本都是一個單語文檔,沒有專門設(shè)計的跨語言目標(biāo),也沒有任何跨語言數(shù)據(jù)。即便如此,mBERT 在跨語言泛化方面的表現(xiàn)還是出奇地好。凱等人表明語言之間的詞匯重疊在跨語言成功中的作用可以忽略不計。
XLM通過合并跨語言任務(wù)、翻譯語言建模 (TLM) 改進了 mBERT,該任務(wù)在并行雙語句子對的串聯(lián)上執(zhí)行 MLM。 Unicoder進一步提出了三個新的跨語言預(yù)訓(xùn)練任務(wù),包括跨語言單詞恢復(fù)、跨語言釋義分類和跨語言掩碼語言模型(XMLM)。
XLM-RoBERTa (XLM-R)是一個在超大的數(shù)據(jù)上預(yù)訓(xùn)練的多語種編碼器,數(shù)據(jù)為100 種不同語言的 2.5TB 清洗過的CommonCrawl數(shù)據(jù)。XLM-RoBERTa 的預(yù)訓(xùn)練任務(wù)僅是單語 MLM。 XLM-R 在多個跨語言基準(zhǔn)測試中取得了最先進的結(jié)果,包括 XNLI、MLQA 和 NER。
跨語種語言生成
多語言生成是一種從輸入語言中生成不同語言文本的任務(wù),例如機器翻譯和跨語言抽象摘要。
與用于多語言分類的 PTM 不同,用于多語言生成的 PTM 通常需要對編碼器和解碼器進行聯(lián)合預(yù)訓(xùn)練,而不是只關(guān)注編碼器。
MASS使用單語Seq2Seq MLM在多種語言上預(yù)訓(xùn)練了Seq2Seq模型,并在無監(jiān)督NMT上取得了顯著改進。XNLG執(zhí)行跨語言自然語言生成的兩階段預(yù)訓(xùn)練。第一階段使用單語 MLM 和跨語言 MLM (XMLM) 任務(wù)預(yù)訓(xùn)練編碼器。第二階段通過使用單語 DAE 和跨語言自動編碼 (XAE) 任務(wù)預(yù)訓(xùn)練解碼器,同時保持編碼器固定。實驗表明 XNLG 在跨語言問題生成和跨語言抽象摘要方面的優(yōu)勢。 mBART是 BART 的多語言擴展,在跨 25 種語言的大規(guī)模單語語料庫上與 Seq2Seq 去噪自動編碼器 (DAE) 任務(wù)聯(lián)合預(yù)訓(xùn)練編碼器和解碼器。實驗表明,mBART 在各種機器翻譯 (MT) 任務(wù)中產(chǎn)生了顯著的性能提升。
特定語種
盡管多語言 PTM 在多種語言上表現(xiàn)良好,但最近的工作表明,在單一語言上訓(xùn)練的 PTM 明顯優(yōu)于多語言結(jié)果。
對于沒有明確詞邊界的中文,建模更大的粒度和多粒度詞表示已經(jīng)取得了巨大的成功。 Kuratov 和 Arkhipov 使用遷移學(xué)習(xí)技術(shù)將多語言 PTM 適配為俄語的單語 PTM。此外,還針對不同語言發(fā)布了一些單語 PTM,例如法語的 CamemBERT和 FlauBERT,芬蘭的 FinBERT,荷蘭語的 BERTje 和 RobBERT ,阿拉伯語的AraBERT。
多模態(tài)PTM
觀察 PTM 在許多 NLP 任務(wù)中的成功,一些研究集中在獲得 PTM 的跨模態(tài)版本。這些模型中的絕大多數(shù)是為一般的視覺和語言特征編碼而設(shè)計的。并且這些模型在一些龐大的跨模態(tài)數(shù)據(jù)語料庫上進行了預(yù)訓(xùn)練,例如帶有口語的視頻或帶有字幕的圖像,并結(jié)合了擴展的預(yù)訓(xùn)練任務(wù)以充分利用多模態(tài)特征。通常,基于視覺的 MLM、屏蔽視覺特征建模和視覺語言匹配等任務(wù)廣泛用于多模態(tài)預(yù)訓(xùn)練,例如 VideoBERT、VisualBERT、ViLBERT。
視頻-文本
VideoBERT 和 CBT是聯(lián)合視頻和文本模型。為了獲得用于預(yù)訓(xùn)練的視覺和語言標(biāo)記序列,視頻分別由基于 CNN 的編碼器和現(xiàn)成的語音識別技術(shù)進行預(yù)處理。單個 Transformer 編碼器在處理后的數(shù)據(jù)上接受訓(xùn)練,以學(xué)習(xí)視頻字幕等下游任務(wù)的視覺語言表示。此外,UniViLM建議引入生成任務(wù)以進一步預(yù)訓(xùn)練在下游任務(wù)中使用的解碼器。
圖像-文本
除了用于視頻語言預(yù)訓(xùn)練的方法外,還有一些作品在圖像文本對上引入了 PTM,旨在適應(yīng)視覺問答 (VQA) 和視覺常識推理 (VCR) 等下游任務(wù)。幾個提議的模型采用兩個獨立的編碼器進行圖像和文本表示,例如 ViLBERT和 LXMERT。而其他方法如 VisualBERT、B2T2、VLBERT、Unicoder-VL和 UNITER則提出了單流統(tǒng)一 Transformer。盡管這些模型架構(gòu)不同,但在這些方法中引入了類似的預(yù)訓(xùn)練任務(wù),例如 MLM 和圖像文本匹配。為了更好地利用視覺元素,在由預(yù)訓(xùn)練的 Transformer 編碼之前,通過應(yīng)用 RoI 或邊界框檢索技術(shù)將圖像轉(zhuǎn)換為區(qū)域序列。
音頻-文本
此外,有幾種方法探索了 PTM 在音頻-文本對上的可能性,例如 SpeechBERT。這項工作試圖通過使用單個 Transformer 編碼器對音頻和文本進行編碼來構(gòu)建端到端語音問答 (SQA) 模型,該編碼器在語音和文本語料庫上使用 MLM 進行了預(yù)訓(xùn)練,并在問答上進行了微調(diào)。
指定域與指定任務(wù)PTM
大多數(shù)公開可用的 PTM 都是在通用領(lǐng)域語料庫(例如維基百科)上進行訓(xùn)練的,這將它們的應(yīng)用程序限制在特定領(lǐng)域或任務(wù)上。最近,一些研究提出了在專業(yè)語料庫上訓(xùn)練的 PTM,例如 BioBERT 用于生物醫(yī)學(xué)文本,SciBERT用于科學(xué)文本,ClinicalBERT用于臨床文本。
除了對特定領(lǐng)域的 PTM 進行預(yù)訓(xùn)練外,一些工作還嘗試使可用的預(yù)訓(xùn)練模型適應(yīng)目標(biāo)應(yīng)用,例如生物醫(yī)學(xué)實體規(guī)范化、專利分類 、進度筆記分類和關(guān)鍵字提取。
還提出了一些面向任務(wù)的預(yù)訓(xùn)練任務(wù),例如用于情感分析的SentiLR 中的情感標(biāo)簽感知 MLM、用于文本摘要的 Gap Sentence Generation (GSG)和用于不流暢檢測的噪聲詞檢測。
模型壓縮
由于 PTM 通常至少包含數(shù)億個參數(shù),因此它們很難部署在現(xiàn)實生活應(yīng)用中的在線服務(wù)和資源受限的設(shè)備上。模型壓縮是一種減小模型大小和提高計算效率的潛在方法。
有五種壓縮 PTM的方法:(1) 模型剪枝,刪除不太重要的參數(shù),(2) 權(quán)重量化,使用更少的比特來表示參數(shù),(3) 相似模型單元之間的參數(shù)共享, (4) 知識蒸餾,它訓(xùn)練一個較小的學(xué)生模型,該模型從原始模型的中間輸出中學(xué)習(xí);(5) 模塊替換,用更緊湊的替代品替換原始 PTM 的模塊。
模型剪枝
模型剪枝是指去除部分神經(jīng)網(wǎng)絡(luò)(例如權(quán)重、神經(jīng)元、層、通道、注意力頭),從而達到減小模型尺寸和加快推理時間的效果。
戈登等人探討了剪枝的時間(例如,在預(yù)訓(xùn)練期間,下游微調(diào)之后的修剪)和剪枝制度。米歇爾等人和 Voita 等人試圖修剪transformer中的整個自注意力頭。
量化
量化是指將精度較高的參數(shù)壓縮到較低的精度。沉等人的作品和 Zafrir 等人只關(guān)注這個領(lǐng)域。請注意,量化通常需要兼容的硬件。
參數(shù)共享
另一種眾所周知的減少參數(shù)數(shù)量的方法是參數(shù)共享,它廣泛用于 CNN、RNN 和 Transformer 。 ALBERT使用跨層參數(shù)共享和分解嵌入?yún)?shù)化來減少 PTM 的參數(shù)。雖然參數(shù)數(shù)量大大減少,但 ALBERT 的訓(xùn)練和推理時間甚至比標(biāo)準(zhǔn) BERT 還要長。
通常,參數(shù)共享不會提高推理階段的計算效率。
知識蒸餾
知識蒸餾 (KD) 是一種壓縮技術(shù),其中訓(xùn)練稱為學(xué)生模型的小模型來重現(xiàn)稱為教師模型的大型模型的行為。在這里,教師模型可以是許多模型的集合,并且通常經(jīng)過良好的預(yù)訓(xùn)練。與模型壓縮不同,蒸餾技術(shù)通過一些優(yōu)化目標(biāo)從固定的教師模型中學(xué)習(xí)一個小的學(xué)生模型,而壓縮技術(shù)旨在搜索更稀疏的架構(gòu)。
一般來說,蒸餾機制可以分為三種類型:(1)從軟目標(biāo)概率蒸餾,(2)從其他知識蒸餾,以及(3)蒸餾到其他結(jié)構(gòu):
從軟目標(biāo)概率蒸餾。Bucilua 等人表明讓學(xué)生接近教師模型可以將知識從教師轉(zhuǎn)移到學(xué)生。一種常見的方法是逼近教師模型的對數(shù)。 DistilBERT在教師的軟目標(biāo)概率上使用蒸餾損失訓(xùn)練學(xué)生模型:
[mathcal{L}_{KD-CE} = sum_i t_i cdot log (s_i)
]
(t_i, s_i)分別表示老師和學(xué)生評估的概率。
從軟目標(biāo)概率中提取也可用于特定于任務(wù)的模型,例如信息檢索 和序列標(biāo)記。
從其他知識蒸餾。 軟目標(biāo)概率的提煉將教師模型視為一個黑匣子,只關(guān)注其輸出。分解教師模型,提煉更多的知識可以為學(xué)生模型帶來改進。
TinyBERT使用嵌入輸出、隱藏狀態(tài)和自注意力分布執(zhí)行層到層蒸餾。 MobileBERT還使用軟目標(biāo)概率、隱藏狀態(tài)和自注意力分布執(zhí)行層到層蒸餾。 MiniLM從教師模型中提取自注意力分布和自注意力值關(guān)系。
此外,其他模型通過多種方法提煉知識。孫等人介紹了一種“耐心”的師生機制,Liu 等人利用 KD 來改進預(yù)訓(xùn)練的多任務(wù)深度神經(jīng)網(wǎng)絡(luò)。
蒸餾成其他結(jié)構(gòu)。一般來說,學(xué)生模型除了較小的層尺寸和較小的隱藏尺寸,結(jié)構(gòu)與教師模型相同。然而,不僅減少參數(shù)而且簡化從 Transformer 到 RNN或 CNN的模型結(jié)構(gòu)可以降低計算復(fù)雜度。
模塊替換
模塊替換是一種有趣且簡單的減小模型尺寸的方法,它用更緊湊的替代品替換了原始 PTM 的大模塊。徐等人提出了忒修斯壓縮,由一個名為“忒修斯之船”的著名思想實驗激發(fā),該實驗逐漸將源模型中的模塊替換為更少的參數(shù)。與KD不同,忒修斯壓縮只需要一個特定任務(wù)的損失函數(shù)。壓縮過的模型,BERT-of-Theseus,比之前快1.94倍,表現(xiàn)為原來的98%。
提前退出
另一種減少推理時間的有效方法是提前退出,它允許模型在出口處提前退出,而不是通過整個模型。要執(zhí)行的層數(shù)取決于輸入。
提前退出的想法首先應(yīng)用于計算機視覺,例如 BranchyNet和 Shallow-Deep Network。隨著深度預(yù)訓(xùn)練語言模型的出現(xiàn),最近采用提前退出來加速基于 Transformer 的模型。作為一項先驅(qū)工作,Universal Transformer使用自適應(yīng)計算時間(ACT)機制來實現(xiàn)輸入自適應(yīng)計算。埃爾巴亞德等人。提出了用于機器翻譯的深度自適應(yīng)變換器,它學(xué)習(xí)預(yù)測特定序列或標(biāo)記需要多少解碼層。 Liu 等人沒有學(xué)習(xí)需要多少計算量。分別提出了基于互信息(MI)和重建損失的兩種估計方法,以直接為每個樣本分配適當(dāng)?shù)挠嬎恪?/p>
最近,DeeBERT、RightTool、FastBERT、ELBERT、PABEE被提出來減少Transformer編碼器的計算。他們的方法通常包含兩個步驟:(a)訓(xùn)練注入的出口匝道(又名內(nèi)部分類器),以及(b)設(shè)計退出策略來決定是否退出。
通常,訓(xùn)練目標(biāo)是所有出口匝道交叉熵?fù)p失的加權(quán)和
[mathcal{L}_{early-exit} = sum_{i=1}^M w_i cdot mathcal{L}_i
]
其中(M)是出口匝道的數(shù)量。 FastBERT 采用自蒸餾損失,用最終分類器生成的軟目標(biāo)訓(xùn)練每個出口。廖等人通過考慮過去和未來的信息來改進目標(biāo)。特別是,出口匝道被訓(xùn)練為聚合過去層的隱藏狀態(tài),并近似于未來層的隱藏狀態(tài)。此外,Sun 等人從集成學(xué)習(xí)和互信息的角度開發(fā)了一個新的訓(xùn)練目標(biāo),通過該目標(biāo)將出口作為一個集成進行訓(xùn)練。他們提出的目標(biāo)不僅優(yōu)化了每個出口匝道的準(zhǔn)確性,還優(yōu)化了出口匝道的多樣性。
在推理過程中,需要一個退出策略來決定是提前退出還是繼續(xù)下一層。 DeeBERT、FastBERT、Liao 等人采用預(yù)測分布的熵作為現(xiàn)有標(biāo)準(zhǔn)。同樣,RightTool使用最大的 softmax 分?jǐn)?shù)來決定是否退出。 PABEE 開發(fā)了一種基于耐心的策略,當(dāng)連續(xù)層的預(yù)測不變時,允許樣本退出。此外,Sun 等人采用基于投票的策略,讓所有過去的出口匝道投票決定是否退出。此外,李等人提出了一種基于窗口的不確定性作為退出標(biāo)準(zhǔn),以實現(xiàn)序列標(biāo)記任務(wù)的字符級提前退出(TokEE)。
使 PTM 適應(yīng)下游任務(wù)
盡管 PTM 從大型語料庫中捕獲通用語言知識,但如何有效地將其知識應(yīng)用于下游任務(wù)仍然是一個關(guān)鍵問題。
遷移學(xué)習(xí)
遷移學(xué)習(xí)是將源任務(wù)(或領(lǐng)域)的知識調(diào)整到目標(biāo)任務(wù)(或領(lǐng)域)。
NLP中的遷移學(xué)習(xí)有很多種,如領(lǐng)域適應(yīng)、跨語言學(xué)習(xí)、多任務(wù)學(xué)習(xí)等。使 PTM 適應(yīng)下游任務(wù)是順序遷移學(xué)習(xí)任務(wù),其中任務(wù)是順序?qū)W習(xí)的,目標(biāo)任務(wù)有標(biāo)記數(shù)據(jù)。
如何遷移
要將 PTM 的知識轉(zhuǎn)移到下游 NLP 任務(wù),我們需要考慮以下問題:
選擇合適的預(yù)訓(xùn)練任務(wù)、結(jié)構(gòu)和語料
不同的 PTM 通常對同一個下游任務(wù)有不同的影響,因為這些 PTM 是用各種預(yù)訓(xùn)練任務(wù)、模型架構(gòu)和語料庫進行訓(xùn)練的。
目前,語言模型是最流行的預(yù)訓(xùn)練任務(wù),可以更有效地解決范圍廣泛的 NLP 問題。然而,不同的預(yù)訓(xùn)練任務(wù)有自己的偏差,對不同的任務(wù)產(chǎn)生不同的效果。例如,NSP 任務(wù)使 PTM 理解兩個句子之間的關(guān)系。因此,PTM 可以使諸如問答 (QA) 和自然語言推理 (NLI) 等下游任務(wù)受益。
PTM 的架構(gòu)對于下游任務(wù)也很重要。例如,盡管 BERT 有助于大多數(shù)自然語言理解任務(wù),但生成語言卻很困難。
下游任務(wù)的數(shù)據(jù)分布應(yīng)該近似于 PTM。目前,有大量現(xiàn)成的 PTM,它們可以方便地用于各種特定領(lǐng)域或特定語言的下游任務(wù)。
因此,給定一個目標(biāo)任務(wù),選擇經(jīng)過適當(dāng)?shù)念A(yù)訓(xùn)練任務(wù)、架構(gòu)和語料庫訓(xùn)練的 PTM 總是一個很好的解決方案。
選擇合適的網(wǎng)絡(luò)層
給出一個預(yù)訓(xùn)練深度網(wǎng)絡(luò),不同的層應(yīng)該捕捉到不同類型的信息,例如位置標(biāo)簽、語法規(guī)則、長距離依賴、語義角色、互指。對于基于RNN的模型來說,Belinkov 和 Melamud表示,一個多層LSTM編碼器的不同層學(xué)習(xí)得到的表示對不同任務(wù)的作用不同。對于基于transformer的預(yù)訓(xùn)練模型,Tenny發(fā)現(xiàn)BERT表達傳統(tǒng)NLP的各個步驟:基礎(chǔ)的句法信息在網(wǎng)絡(luò)的早期表現(xiàn)出來,而高級的語義信息在高層出現(xiàn)。
用(H^{(l)}(1 leq l leq L))表示共(L)層的預(yù)訓(xùn)練模型第(l)層網(wǎng)絡(luò)的表示,(g(cdot))代表目標(biāo)任務(wù)的特定模型。
有三種方式選擇表達:
只選擇詞嵌入:一種方法是只選擇預(yù)先訓(xùn)練好的靜態(tài)嵌入,而模型的其余部分仍然需要為新的目標(biāo)任務(wù)從頭開始訓(xùn)練。
它們無法捕獲可能更有用的更高級別的信息。詞嵌入僅用于捕獲詞的語義含義,但我們還需要理解詞義等更高層次的概念。
頂層:最簡單有效的方法是將頂層的表示輸入特定任務(wù)的模型 (g(H(L) ))。
所有層:一種更靈活的方法是通過軟概率自動選擇最佳層,如ELMO:
[r_t = gamma sum_{l=1}^L alpha_l h_t^{(l)}
]
其中(alpha_l)是第(l)層的softmax歸一化權(quán)重,(gamma)是對預(yù)訓(xùn)練模型輸出的縮放系數(shù)。該混合表示傳給模型(g(r_l))
是否要進行微調(diào)
目前,模型遷移有兩種常見的方式:特征提取(預(yù)訓(xùn)練參數(shù)被凍結(jié))和微調(diào)(預(yù)訓(xùn)練參數(shù)被解凍和微調(diào))。
在特征提取方式中,預(yù)訓(xùn)練的模型被視為現(xiàn)成的特征提取器。此外,暴露內(nèi)部層很重要,因為它們通常編碼最可轉(zhuǎn)移的表示 。
盡管這兩種方式都可以顯著受益于大多數(shù) NLP 任務(wù),但特征提取方式需要更復(fù)雜的特定于任務(wù)的架構(gòu)。因此,對于許多不同的下游任務(wù),微調(diào)方式通常比特征提取方式更通用和方便。
微調(diào)策略
隨著 PTM 深度的增加,它們捕獲的表示使得下游任務(wù)變得更加容易。因此,整個模型的任務(wù)特定層很簡單。自 ULMFit 和 BERT 以來,fine-tuning 成為 PTMs 的主要適應(yīng)方法。然而,微調(diào)的過程通常很脆弱:即使具有相同的超參數(shù)值,不同的隨機種子也會導(dǎo)致截然不同的結(jié)果。
除了標(biāo)準(zhǔn)的微調(diào)之外,還有一些有用的微調(diào)策略。
兩階段微調(diào)
另一種解決方案是兩階段轉(zhuǎn)移,它在預(yù)訓(xùn)練和微調(diào)之間引入了一個中間階段。在第一階段,PTM 被轉(zhuǎn)換成一個由中間任務(wù)或語料庫微調(diào)的模型。在第二階段,遷移的模型針對目標(biāo)任務(wù)進行微調(diào)。孫等人表明,對相關(guān)領(lǐng)域語料庫的“進一步預(yù)訓(xùn)練”可以進一步提高 BERT 的能力,并在八個廣泛研究的文本分類數(shù)據(jù)集上取得了最先進的性能。彭等人和 Garg 等人引入了與目標(biāo)任務(wù)相關(guān)的中間監(jiān)督任務(wù),為BERT、GPT和ELMo帶來了很大的改進。李等人還對故事結(jié)局預(yù)測使用了兩階段轉(zhuǎn)移。提出的 TransBERT(可轉(zhuǎn)移 BERT)不僅可以從大規(guī)模未標(biāo)記數(shù)據(jù)中轉(zhuǎn)移通用語言知識,還可以從各種語義相關(guān)的監(jiān)督任務(wù)中轉(zhuǎn)移特定種類的知識。
多任務(wù)微調(diào)
劉等人在多任務(wù)學(xué)習(xí)框架下對BERT進行了微調(diào),這表明多任務(wù)學(xué)習(xí)和預(yù)訓(xùn)練是互補的技術(shù)。
使用額外的適配模塊進行微調(diào)
微調(diào)的主要缺點是參數(shù)效率低下:每個下游任務(wù)都有自己的微調(diào)參數(shù)。因此,更好的解決方案是在原始參數(shù)固定的情況下,在 PTM 中注入一些可微調(diào)的適配模塊。
Stickland 和 Murray 為單個共享 BERT 模型配備了小的附加任務(wù)特定的適應(yīng)模塊、投影注意層(PAL)。與 PAL 共享的 BERT 與 GLUE 基準(zhǔn)測試中單獨微調(diào)的模型相匹配,參數(shù)減少了大約 7 倍。同樣,Houlsby 等人通過添加適配器模塊修改了預(yù)訓(xùn)練 BERT 的架構(gòu)。適配器模塊產(chǎn)生緊湊且可擴展的模型;他們只為每個任務(wù)添加幾個可訓(xùn)練的參數(shù),并且可以在不重新訪問以前的任務(wù)的情況下添加新任務(wù)。原始網(wǎng)絡(luò)的參數(shù)保持固定,產(chǎn)生高度的參數(shù)共享。
其他
受廣泛使用的集成模型的成功啟發(fā),Xu 等人通過兩種有效機制改進了BERT的微調(diào):自集成和自蒸餾,可以在不利用外部資源或顯著降低訓(xùn)練效率的情況下提高BERT在下游任務(wù)上的性能。他們在單個訓(xùn)練過程中集成了集成和蒸餾。教師模型是一個集成模型,通過在之前的時間步驟中對幾個學(xué)生模型進行參數(shù)平均。
逐漸解凍也是從頂層開始逐漸解凍 PTM 層的有效方法,不是同時微調(diào)所有層。 Chronopoulou 等提出了一種更簡單的解凍方法,順序解凍,它首先只微調(diào)隨機初始化的任務(wù)特定層,然后解凍PTM的隱藏層,最后解凍嵌入層。
李和Eisner使用可變信息平靜模塊,在只保持對目標(biāo)任務(wù)有用信息的情況下,壓縮了ELMo的詞嵌入。
總的來說,以上工作表現(xiàn)了PTM的表現(xiàn)可以通過更好的微調(diào)策略來提高。
基于提示的調(diào)優(yōu)
縮小預(yù)訓(xùn)練和微調(diào)之間的差距可以進一步提高 PTM 在下游任務(wù)上的性能。另一種方法是通過設(shè)計適當(dāng)?shù)奶崾緦⑾掠稳蝿?wù)重新構(gòu)成 MLM 任務(wù)。基于提示的方法在少樣本設(shè)置、零樣本設(shè)置甚至全監(jiān)督設(shè)置中顯示出強大的力量。當(dāng)前的基于提示的方法可以根據(jù)提示是離散的還是連續(xù)的分為兩個分支。
離散提示
離散提示是要插入到輸入文本中的一系列單詞,它有助于 PTM 更好地對下游任務(wù)進行建模。孫等人通過將基于方面的情感分析 (ABSA) 任務(wù)轉(zhuǎn)換為句子對分類任務(wù)來構(gòu)建輔助句子,但其模型參數(shù)仍需要微調(diào)。 GPT-3提出了上下文學(xué)習(xí),將原始輸入與任務(wù)描述和一些示例連接起來。通過這種方式,GPT-3 可以在不調(diào)整參數(shù)的情況下實現(xiàn)具有競爭力的性能。此外,Petroni 等人發(fā)現(xiàn)在適當(dāng)?shù)氖謩犹崾鞠拢珺ERT 可以在沒有訓(xùn)練的情況下在實體預(yù)測任務(wù)(LAMA)上表現(xiàn)良好。除了 LAMA,Schick 和 Schutze提出了 PET,它為各種文本分類和蘊含任務(wù)設(shè)計了離散提示。然而,手動設(shè)計提示是一種次優(yōu)化,因此,許多方法都試圖自動生成提示,LPAQA使用了兩種方法,即基于挖掘的生成和基于釋義的生成,以找到表達特定關(guān)系的最佳模式。AutoPrompt通過梯度引導(dǎo)搜索找到最佳提示。 LM-BFF采用 T5自動生成提示。
連續(xù)提示
另一種選擇不是尋找最佳的具體提示,而是直接在連續(xù)空間中優(yōu)化提示,即提示向量不一定是 PTM 的詞類型嵌入。優(yōu)化的連續(xù)提示與詞類型嵌入連接,然后輸入 PTM。秦和艾斯納和鐘等人發(fā)現(xiàn)優(yōu)化的連續(xù)提示在關(guān)系任務(wù)上可以勝過具體提示(包括手動、挖掘(LPAQA)和梯度搜索(AutoPrompt提示)。WARP在輸入序列之前、之間和之后插入可訓(xùn)練的連續(xù)提示標(biāo)記,同時保持 PTM 的參數(shù)固定,從而在 GLUE 基準(zhǔn)測試中獲得可觀的性能。Prefix-Tuning插入連續(xù)的提示作為表格-文字生成任務(wù)中的GPT-2或總結(jié)任務(wù)中的BART的輸入前綴。Prefix-Tuning作為一種高效調(diào)參策略,在全監(jiān)督設(shè)置中得到了相當(dāng)有競爭力的表現(xiàn),并在少鏡頭設(shè)置中優(yōu)于模型微調(diào)。此外,P-Tuning 表明,在連續(xù)提示的情況下,GPT 在自然語言理解 (NLU) 任務(wù)上也可以達到與類似大小的 BERT 相當(dāng)甚至更好的性能。最近,萊斯特等人表明,提示微調(diào)隨著規(guī)模的擴大而更具競爭力。當(dāng) PTM 超過數(shù)十億個參數(shù)時,模型微調(diào)和提示微調(diào)之間的差距可以縮小,這使得基于提示的調(diào)優(yōu)成為高效服務(wù)大規(guī)模 PTM 的一種非常有前景的方法。
應(yīng)用
在本節(jié)中,我們總結(jié)了 PTM 在幾個經(jīng)典 NLP 任務(wù)中的一些應(yīng)用。
一般評價基準(zhǔn)
NLP 社區(qū)有一個基本問題,即我們?nèi)绾我钥杀容^的指標(biāo)評估 PTM。因此,大規(guī)模基準(zhǔn)測試是必要的。
通用語言理解評估 (GLUE) 基準(zhǔn)是九個自然語言理解任務(wù)的集合,包括單句分類任務(wù)(CoLA 和 SST-2)、成對文本分類任務(wù)(MNLI、RTE、WNLI、QQP 和MRPC)、文本相似性任務(wù) (STSB) 和相關(guān)排序任務(wù) (QNLI)。 GLUE 基準(zhǔn)是為評估模型的穩(wěn)健性和泛化而精心設(shè)計的。 GLUE 不提供測試集的標(biāo)簽,而是設(shè)置評估服務(wù)器。
然而,由于近年來的進步極大地侵蝕了 GLUE 基準(zhǔn)的凈空,因此提出了一個名為 SuperGLUE的新基準(zhǔn)。與GLUE相比,SuperGLUE具有更加挑戰(zhàn)性的任務(wù)和更多樣化的任務(wù)格式。
問答
問答(QA),或狹義的機器閱讀理解(MRC)概念,是 NLP 社區(qū)的重要應(yīng)用。從易到難,QA 任務(wù)分為三種類型:單輪抽取式 QA (SQuAD) 、多輪生成式 QA (CoQA) 和多跳 QA (HotpotQA) 。
BERT創(chuàng)造性地將抽取式QA轉(zhuǎn)換為跨度預(yù)測任務(wù),包括預(yù)測起始跨度標(biāo)簽和結(jié)束跨度標(biāo)簽。之后,預(yù)訓(xùn)練模型作為預(yù)測跨度的編碼器,一直有很好的表現(xiàn)。對于抽取式QA,張等人提出了一個回顧閱讀器結(jié)構(gòu)并用預(yù)訓(xùn)練模型初始化編碼器。對于多輪對話來說,Ju等人提出“預(yù)訓(xùn)練+對抗訓(xùn)練+基本原理標(biāo)記+知識蒸餾”模型,對于多跳QA,Tu等人提出了可解釋的“選擇、解答、解釋”(SAE)系統(tǒng),預(yù)訓(xùn)練模型在選擇模塊中作為編碼器。
通常,所提出的 QA 模型中的編碼器參數(shù)通過 PTM 初始化,其他參數(shù)隨機初始化。
情感分析
BERT通過簡單地對 SST-2 進行微調(diào),性能優(yōu)于以前的最先進模型,SST-2 是一種廣泛使用的情緒分析 (SA) 數(shù)據(jù)集。 Bataa 和 Wu將 BERT 與遷移學(xué)習(xí)技術(shù)結(jié)合使用,并在日本 SA 中實現(xiàn)了新的最新狀態(tài)。
盡管他們在簡單的情感分類方面取得了成功,但將 BERT 直接應(yīng)用于基于方面的情感分析(ABSA),這是一項細(xì)粒度的 SA 任務(wù),顯示出不太顯著的改進。為了更好地利用 BERT 的強大表示,Sun 等人通過將 ABSA 從單個句子分類任務(wù)轉(zhuǎn)換為句子對分類任務(wù)來構(gòu)建輔助句子。徐等人提出了后訓(xùn)練,使 BERT 從其源域和任務(wù)適應(yīng) ABSA 域和任務(wù)。此外,Rietzler 等人通過分析具有 ABSA 性能的跨域后訓(xùn)練的行為,擴展了的工作。卡里米等人表明可以通過對抗性訓(xùn)練進一步提高后訓(xùn)練 BERT 的性能。宋等人添加了一個額外的池化模塊,它可以實現(xiàn)為 LSTM 或注意力機制,以利用 BERT 中間層進行 ABSA。此外,李等人共同學(xué)習(xí)面向端到端 ABSA 的方面檢測和情感分類。 SentiLR從 SentiWordNet 獲取詞性標(biāo)簽和先驗情感極性,并采用標(biāo)簽感知 MLM 利用引入的語言知識來捕捉句子級情感標(biāo)簽和詞級情感轉(zhuǎn)變之間的關(guān)系。 SentiLR 在多個句子和方面級別的情感分類任務(wù)上實現(xiàn)了最先進的性能。
對于情感轉(zhuǎn)移,Wu 等人提出了基于 BERT 的“Mask and Infill”。在掩碼步驟中,該模型通過掩蔽情感標(biāo)記將情感與內(nèi)容分開。在填充步驟中,它使用 BERT 和目標(biāo)情緒嵌入來填充掩碼區(qū)域。
命名體識別
命名實體識別 (NER) 在信息提取中并在許多 NLP 下游任務(wù)中發(fā)揮著重要作用。在深度學(xué)習(xí)中,大多數(shù) NER 方法都在序列標(biāo)注框架中。句子中的實體信息會轉(zhuǎn)化為標(biāo)簽序列,一個標(biāo)簽對應(yīng)一個詞。該模型用于預(yù)測每個單詞的標(biāo)簽。由于ELMo和BERT在 NLP 中展示了他們的力量,關(guān)于NER的預(yù)訓(xùn)練模型有很多工作。
阿克比克等人使用預(yù)訓(xùn)練的字符級語言模型為 NER 生成詞級嵌入。 TagLM和 ELMo使用預(yù)訓(xùn)練語言模型的最后一層輸出和每層輸出的加權(quán)和作為詞嵌入的一部分。劉等人使用逐層修剪和全連接來加速 ELMo 對 NER 的推理。德夫林等人使用第一個 BPE 的 BERT 表示在沒有 CRF 的情況下預(yù)測每個單詞的標(biāo)簽。皮雷斯等人通過多語言 BERT 實現(xiàn)了零樣本 NER。蔡等人利用知識蒸餾在單個 CPU 上為 NER 運行小型 BERT。此外,BERT 還用于特定領(lǐng)域的 NER,例如生物醫(yī)學(xué)等。
機器翻譯
機器翻譯 (MT) 是 NLP 社區(qū)中的一項重要任務(wù),吸引了許多研究人員。幾乎所有的神經(jīng)機器翻譯 (NMT) 模型都共享編碼器-解碼器框架,該框架首先通過編碼器將輸入標(biāo)記編碼為隱藏表示,然后從解碼器解碼目標(biāo)語言中的輸出標(biāo)記。拉馬錢德蘭等人發(fā)現(xiàn)編碼器-解碼器模型可以通過使用兩種語言模型的預(yù)訓(xùn)練權(quán)重初始化編碼器和解碼器來顯著改進。埃杜諾夫等人使用 ELMo 在 NMT 模型中設(shè)置詞嵌入層。這項工作通過使用預(yù)訓(xùn)練的語言模型進行源詞嵌入初始化,展示了英語-土耳其語和英語-德語 NMT 模型的性能改進。
鑒于 BERT 在其他 NLP 任務(wù)上的出色表現(xiàn),研究如何將 BERT 納入 NMT 模型是很自然的。 Conneau 和 Lample嘗試通過多語言預(yù)訓(xùn)練 BERT 模型初始化整個編碼器和解碼器,并表明在無監(jiān)督 MT 和英語-羅馬尼亞語監(jiān)督 MT 上可以實現(xiàn)顯著改進。類似地,Clinchant等人推薦了一系列不同的實驗來測試使用BERT作為NMT模型的編碼器的最佳方法。他們通過使用 BERT 作為編碼器的初始化實現(xiàn)了一些改進。此外,他們發(fā)現(xiàn)這些模型可以在域外數(shù)據(jù)集上獲得更好的性能。Imamura 和 Sumita提出了一種用于 NMT 的兩階段 BERT 微調(diào)方法。在第一階段,編碼器由預(yù)訓(xùn)練的 BERT 模型初始化,它們僅在訓(xùn)練集上訓(xùn)練解碼器。在第二階段,整個 NMT 模型在訓(xùn)練集上聯(lián)合微調(diào)。通過實驗,他們表明這種方法可以超越直接對整個模型進行微調(diào)的單階段微調(diào)方法。除此之外,朱等人建議使用預(yù)訓(xùn)練的 BERT 作為額外的內(nèi)存來促進 NMT 模型。具體來說,他們首先通過預(yù)訓(xùn)練的 BERT 對輸入單詞進行編碼,并使用最后一層的輸出作為額外的內(nèi)存。然后,NMT 模型可以通過編碼器和解碼器每一層中的額外注意力模塊訪問內(nèi)存。他們在監(jiān)督方面表現(xiàn)出明顯的改善, 半監(jiān)督和無監(jiān)督 MT。
MASS(Masked Sequence-to-Sequence Pre-Training)不是僅預(yù)訓(xùn)練編碼器,而是利用 Seq2Seq MLM 聯(lián)合預(yù)訓(xùn)練編碼器和解碼器。在實驗中,這種方法在無監(jiān)督 MT 和英語-羅馬尼亞語監(jiān)督 MT 上都可以超越 Conneau 和 Lample 提出的 BERT 式預(yù)訓(xùn)練。與 MASS 不同,mBART是 BART的多語言擴展,它與 Seq2Seq 去噪自動編碼器 (DAE) 任務(wù)一起在 25 種語言的大規(guī)模單語語料庫上預(yù)訓(xùn)練編碼器和解碼器。實驗表明,mBART 可以在句子級別和文檔級別顯著改善有監(jiān)督和無監(jiān)督機器翻譯。
摘要
摘要,旨在產(chǎn)生一個較短的文本,保留較長文本的大部分含義,近年來引起了 NLP 社區(qū)的關(guān)注。自從廣泛使用 PTM 以來,該任務(wù)得到了顯著改善。鐘等人引入了可轉(zhuǎn)移的知識(例如,BERT)進行總結(jié)并超越了以前的模型。張等人嘗試預(yù)訓(xùn)練一個文檔級模型,該模型預(yù)測句子而不是單詞,然后將其應(yīng)用于諸如摘要之類的下游任務(wù)。更詳細(xì)地說,張等人為預(yù)訓(xùn)練設(shè)計了 Gap Sentence Generation (GSG) 任務(wù),其目標(biāo)涉及從輸入生成類似摘要的文本。另外,Liu和Lapata設(shè)計了BERTSUM。BERTSUM 包括一個新穎的文檔級編碼器,以及一個用于提取摘要和抽象摘要的通用框架。
在編碼器框架中,BERTSUM 通過插入多個 [CLS] 標(biāo)記來學(xué)習(xí)句子表示來擴展 BERT。對于抽取式摘要,BERTSUM 堆疊了幾個句間 Transformer 層。對于抽象摘要,BERTSUM 提出了一種使用新微調(diào)計劃的兩階段微調(diào)方法。鐘等人提出了一種新穎的摘要級框架 MATCHSUM 并將概念化的提取摘要作為語義文本匹配問題。他們提出了一種 Siamese-BERT 架構(gòu)來計算源文檔和候選摘要之間的相似度,并僅使用基本版本的 BERT 在 CNN / DailyMail 上取得了最先進的結(jié)果。
對抗攻擊預(yù)防御
深度神經(jīng)模型容易受到對抗性示例的影響,這些示例可能會誤導(dǎo)模型產(chǎn)生特定的錯誤預(yù)測,而原始輸入的擾動卻難以察覺。在 CV 中,對抗性攻擊和防御已被廣泛研究。然而,由于語言的離散性,它對文本仍然具有挑戰(zhàn)性。為文本生成對抗樣本需要具備以下品質(zhì):(1) 人類法官難以察覺但會誤導(dǎo)神經(jīng)模型; (2) 語法流利,語義與原始輸入一致。金等人使用對抗性示例成功地攻擊了經(jīng)過微調(diào)的 BERT 在文本分類和文本蘊涵方面。華萊士等定義了通用對抗性觸發(fā)器,當(dāng)連接到任何輸入時,它可以誘導(dǎo)模型產(chǎn)生特定目的的預(yù)測。某些觸發(fā)器甚至?xí)?dǎo)致 GPT-2 模型生成種族主義文本。孫等人表明 BERT 在拼寫錯誤方面并不穩(wěn)健。
PTM 還具有生成對抗樣本的巨大潛力。李等人提出了 BERT-Attack,這是一種基于 BERT 的高質(zhì)量有效攻擊者。他們在下游任務(wù)上將 BERT 與另一個經(jīng)過微調(diào)的 BERT 進行了對比,并成功誤導(dǎo)目標(biāo)模型進行錯誤預(yù)測,在成功率和擾動百分比方面均優(yōu)于最先進的攻擊策略,同時生成的對抗樣本流暢且語義保留。
此外,PTMs 的對抗性防御也很有前景,它提高了 PTMs 的魯棒性并使它們對對抗性攻擊免疫。
對抗訓(xùn)練旨在通過最小化嵌入空間中標(biāo)簽保留擾動的最大風(fēng)險來提高泛化能力。最近的工作表明對抗性預(yù)訓(xùn)練或微調(diào)可以提高 NLP 的 PTM 的泛化和魯棒性。
未來研究方向
盡管 PTM 已經(jīng)證明了它們在各種 NLP 任務(wù)中的能力,但由于語言的復(fù)雜性,挑戰(zhàn)仍然存在。在本節(jié)中,我們提出了 PTM 的五個未來方向。
預(yù)訓(xùn)練模型的上限
目前,PTM 尚未達到其上限。大多數(shù)當(dāng)前的 PTM 可以通過更多的訓(xùn)練步驟和更大的語料庫進一步改進。
NLP 的最新技術(shù)可以通過增加模型的深度來進一步推進,例如 Megatron-LM(83 億個參數(shù),72 個 Transformer 層,隱藏大小為 3072 和 32 個注意力頭)和 Turing-NLG(170 億個參數(shù),78 個 Transformer 層,隱藏大小為 4256 和 28 個注意力頭)。
通用 PTM 一直是我們學(xué)習(xí)語言內(nèi)在普遍知識(甚至世界知識)的追求。然而,此類 PTM 通常需要更深的架構(gòu)、更大的語料庫和具有挑戰(zhàn)性的預(yù)訓(xùn)練任務(wù),這進一步導(dǎo)致更高的訓(xùn)練成本。然而,訓(xùn)練龐大的模型也是一個具有挑戰(zhàn)性的問題,需要更復(fù)雜、更高效的訓(xùn)練技術(shù),如分布式訓(xùn)練、混合精度、梯度累積等。 因此,更實際的方向是設(shè)計更高效的模型架構(gòu),自監(jiān)督預(yù)訓(xùn)練任務(wù)、優(yōu)化器和訓(xùn)練技能,以及使用現(xiàn)有硬件和軟件訓(xùn)練的技巧。 ELECTRA是朝著這個方向的一個很好的解決方案。
PTM 的架構(gòu)
Transformer已被證明是一種有效的預(yù)訓(xùn)練架構(gòu)。然而,Transformer 的主要限制是它的計算復(fù)雜度,它是輸入長度的二次方。受 GPU 內(nèi)存的限制,當(dāng)前大多數(shù) PTM 無法處理超過 512 個標(biāo)記的序列。打破這個限制需要改進Transformer的架構(gòu)。盡管許多工作試圖提高 Transformer 的效率,但仍有很大的改進空間。此外,為 PTM 尋找更有效的替代非 Transformer 架構(gòu)對于捕獲更遠(yuǎn)距離的上下文信息很重要。深度架構(gòu)的設(shè)計具有挑戰(zhàn)性,我們可能會尋求一些自動方法的幫助,例如神經(jīng)架構(gòu)搜索(NAS)。
面向任務(wù)的預(yù)訓(xùn)練和模型壓縮
在實踐中,不同的下游任務(wù)需要不同的 PTM 能力。 PTMs 和下游任務(wù)之間的差異通常在于兩個方面:模型架構(gòu)和數(shù)據(jù)分布。較大的差異可能導(dǎo)致 PTM 的好處可能微不足道。例如,文本生成通常需要一個明確的任務(wù)來預(yù)訓(xùn)練編碼器和解碼器,然而文本匹配需要設(shè)計句子對的預(yù)訓(xùn)練任務(wù)。
此外,雖然更大的 PTM 通常可以帶來更好的性能,但一個實際的問題是如何在特殊場景中利用這些巨大的 PTM,例如低容量設(shè)備和低延遲應(yīng)用程序。因此,我們可以為下游任務(wù)精心設(shè)計特定的模型架構(gòu)和預(yù)訓(xùn)練任務(wù),或者從現(xiàn)有的 PTM 中提取部分特定于任務(wù)的知識。
與其從頭開始訓(xùn)練面向任務(wù)的 PTM,我們可以通過使用模型壓縮等技術(shù)使用現(xiàn)有的通用 PTM 來教授它們。盡管 CV中廣泛研究了 CNN 的模型壓縮,但 NLP 的PTM壓縮才剛剛開始。Transformer 的全連接結(jié)構(gòu)也讓模型壓縮更具挑戰(zhàn)性。
微調(diào)之外的知識轉(zhuǎn)移
目前,微調(diào)是將 PTM 的知識轉(zhuǎn)移到下游任務(wù)的主要方法,但一個不足是其參數(shù)效率低下:每個下游任務(wù)都有自己的微調(diào)參數(shù)。一個改進的解決方案是修復(fù) PTM 的原始參數(shù),并為特定任務(wù)添加小的微調(diào)自適應(yīng)模塊。因此,我們可以使用共享 PTM 來服務(wù)多個下游任務(wù)。實際上,從 PTM 挖掘知識可以更靈活,例如特征提取、知識蒸餾、數(shù)據(jù)增強,使用 PTM 作為外部知識。期待更有效的方法。
PTM 的可解釋性和可靠性
盡管 PTM 達到了令人印象深刻的性能,但其深度非線性架構(gòu)使得決策過程高度不透明。
最近,可解釋的人工智能 (XAI) 已成為一般 AI 社區(qū)的熱點。與用于圖像的 CNN 不同,由于類似 Transformer 的架構(gòu)和語言的復(fù)雜性,解釋 PTM 更加困難。已經(jīng)做出了廣泛的努力來分析 PTM 中包含的語言和世界知識,這有助于我們以一定程度的透明度理解這些 PMT。然而,模型分析的很多工作依賴于注意力機制,注意力對可解釋性的有效性仍然存在爭議。
另外PTM面對對抗攻擊也十分脆弱。隨著PTM的應(yīng)用在生產(chǎn)環(huán)境中越來越廣泛,他們的可靠性也倍受關(guān)心,那些關(guān)于對抗性攻擊的研究通過充分暴露缺點來幫助我們理解他們的能力,對抗防御也十分有前景,可以提高PTM的魯棒性,增強對對抗攻擊的免疫力。
總體而言,作為許多 NLP 應(yīng)用中的關(guān)鍵組件,PTM 的可解釋性和可靠性在許多方面仍有待進一步探索,這有助于我們了解 PTM 的工作原理,并為更好地使用和進一步改進提供指導(dǎo)。
總結(jié)
在本次調(diào)查中,我們對 NLP 的 PTM 進行了全面概述,包括背景知識、模型架構(gòu)、預(yù)訓(xùn)練任務(wù)、各種擴展、適應(yīng)方法、相關(guān)資源和應(yīng)用。基于當(dāng)前的 PTM,我們從四個不同的角度提出了一種新的 PTM 分類法。我們還為 PTM 提出了幾個可能的未來研究方向。
一個人沒有夢想,和咸魚有什么區(qū)別!
總結(jié)
以上是生活随笔為你收集整理的NLP领域预训练模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python入门学习的第三天
- 下一篇: .Net Core应用框架Util介绍(