近年來,隨著各大廠商的激烈角逐,預訓練模型(The Pretrained Foundation Models ,PFMs)的發展可謂百花爭鳴,誰都想在這場沒有硝煙的戰爭中力壓群雄,作為下游任務的基礎,像BERT、GPT-3、MAE、DALLE-E和ChatGPT基于大規模數據訓練,可為各種下游應用提供合理的參數初始化。這種遷移學習范式,讓預訓練模型以一種高傲的姿態在各種任務和應用中大放異彩。特別是最近大火ChatGPT,帶著其獨有的"思維”在各大領域亂殺,也將人工智能推向了新一輪高潮。本文也是從預訓練模型成長的幾個關鍵因素做了系統闡述,旨在帶領大家一起見證預訓練模型的蛻變歷程。
1.簡介

圖 1:PFMs的歷史和演變
目前PFMS已經在NLP、CV、GL這三個主要的AI領域得到了廣泛的研究,如圖一所示,通過在大型語料中學習通用的特征表示,再針對不同的下游任務進行微調,已經在文本分類、圖像分類、對象檢測、圖形分類等任務中表現出色。特別是針對NLP領域,預訓練模型有著獨特的優勢,它的訓練數據可以來自任何沒有標記的文本,得到的語言模型(Language Models,LM)可以捕獲到文本中的長期依賴、層次結構等關聯信息。早期的預訓練是一種靜態技術,例如NNLM[1]和Word2vec[2],但靜態方法難以適應不同的語義環境。因此,像BERT[3]、XLNET[4]這類的動態預訓練技術應運而生。
PFMs能在nlp中盛行起來,得益于能它同時對單詞的句法和語義表示進行建模,并根據不同的輸入動態改變多義詞的表示上下文。PFM能學習豐富的語法和語義推理知識,效果更好。表1是對近幾年來NLP領域PFMs相關信息的匯總。其中,Transforms作為PFMs主流的模型架構,它使用了Attention機制,將序列中的任意兩個位置之間的距離縮小為一個常量,在分析預測更長的文本時,捕捉間隔較長的語義關聯效果更好;其次它不是類似RNN的順序結構,因此具有更好的并行性,符合現有的GPU框架,能夠利用分布式GPU進行并行訓練,提升模型訓練效率。

表1:NLP領域的預訓練模型
目前在NLP領域PFMs的學習方法主要分為監督學習、半監督學習、弱監督學習、自監督學習和強化學習這五種,同時根據預訓練任務根據上述的的學習方法可分為五類:掩碼語言建模(MLM)、去噪自動編碼器 (DAE)、替換令牌檢測 (RTD)、下一句預測 (NSP)、句子順序預測 (SOP)。其中,MLM在輸入序列中隨機擦除一些單詞,然后在預訓練期間預測這些擦除的單詞,典型的例子包括BERT 和SpanBERT[5];DAE 用于向原始語料庫添加噪聲,并使用包含噪聲的語料庫重建原始輸入,BART[6] 就是一個典型的例子;RTD 是一個判別任務,用于確定 LM 是否已替換當前令牌,這項任務在ELECTRA[7] 中引入;為了使模型理解兩個句子之間的相關性并捕獲句子級表示,引入了NSP任務。PFM 輸入來自不同文檔的兩個句子,并檢查句子的順序是否正確,一個典型的例子是BERT;與NSP不同,SOP使用文檔中的兩個連續片段作為正樣本,并使用兩個片段的交換順序作為負樣本。PFM可以更好地模擬句子之間的相關性,例如ALBERT[8] 。
2.字表征
當前大規模的預訓練模型在問答、機器閱讀理解和自然語言推理中取得了比人類更好的性能,表明目前PFM的構建方法是實用的。現有的預訓練語言模型根據字表征方法主要分為三個分支:(1)自回歸語言模型,(2)上下文語言模型,(3)排列語言模型。其中單詞預測方向和上下文信息是其中最重要的因素。
2.1 自回歸語言模型
自回歸語言模型基于前一個單詞預測下一個可能的單詞,或基于后續單詞預測最后一個可能的單詞。它被選為特征提取器,并從前一個單詞中提取文本表示。因此,它在自然語言生成(Natural language generation,NLG)任務中具有更好的性能,例如文本摘要和機器翻譯。對于一個序列,根據前一個詞計算的給定單詞的概率為前向LM,公式如下:
其中 ,是輸入序列的長度。此外,雙向LM(Bi-LM)也是基于自回歸語言模型,以及從向前和向后方向提取的文本表示連接在一起模型架構設計方法。GPT[9]采用自監督預訓練、監督微調和stacked Transformer [10] 作為其解碼器。后續,OpenAI提出了GPT-2[11],并將stacked Transformer層數增加到48層。參數總數達到15億。GPT-2還引入了多任務學習。GPT-2 具有相當大的模型容量,可以針對不同的任務模型進行調整,而不是微調它們。但是,GPT-2 也使用自回歸語言模型。因此,它提高了模型的性能而不會大幅增加成本。由于是單向transformer缺乏上下文建模能力,GPT-2的主要性能提升來自于多任務的綜合效應預訓練、超大型數據集和超大型模型。對于特定的下游任務,仍然需要基于任務的數據集進行微調。但是,擴大LM的訓練規模可以顯著提高與任務無關的性能。因此,提出了 GPT-3[12] ,它將模型大小增加到 175億個參數,并使用 45TB 的數據進行訓練。因此,它可以實現良好的性能無需針對特定的下游任務進行微調。
2.2 上下文語言模型
自回歸語言模型僅使用上文或下文的信息,不能同時使用上下文的信息。ELMO[13] 僅使用雙向長短期記憶 (LSTM),它是兩個向后和向前單向 LSTM 的串聯。上下文LM預測基于上下文詞。它使用變壓器編碼器,模型的上層和下層由于自注意力機制而直接相互連接。對于單詞序列 T,給定單詞的概率計算如下:
BERT模型輸入由三部分組成:詞嵌入,段嵌入和位置嵌入。它使用雙向transformer作為特征提取器,這抵消了ELMO和GPT的缺陷。但是,BERT的缺點也不容忽視。雙向transformer結構并沒有消除自編碼模型的約束。其大量的模型參數對計算資源低的設備非常不友好,并且難以部署和應用。大多數PFM需要更多的訓練任務和更大的語料庫。針對訓練不足的問題,后續提出了RoBERTa[14]。它使用更大的批次大小和未標記的數據。此外,它可以訓練更長的模型,刪除 NSP 任務,并添加長序列訓練。在處理文本輸入時,采用字節對編碼(BPE)[15]進行分詞。BPE 對每個輸入序列使用不同的掩碼模式,即使輸入順序相同。
2.3 排列語言模型
使用上下文語言模型的建模方法可以視為自動編碼模型。但是,由于訓練階段和微調階段的不一致,性能的自動編碼模型在自然語言生成 (NLG) 任務中很差。排列語言模型旨在結合了自回歸語言模型和自動編碼器語言模型的優點。它改善了兩種模型在很大程度上可以作為未來預訓練目標構建的基本思路任務。對于給定的輸入序列,排列語言模型的目標函數的形式表示如下:

其中 是所有排列中的共享參數,表示所有可能排列的集合輸入序列 和和表示第t個元素和a的元素排列.
以BERT為代表的的MLM可以很好地實現雙向編碼。然而,MLM在預訓練期間使用掩碼標記,但在微調期間不使用,這導致在預訓練和微調期間數據不一致。為了實現雙向編碼,避免了MLM的問題,提出了排列語言模型。排列語言模型基于自回歸語言模型,避免了不一致數據的影響。然而,與傳統的自回歸模型不同,排列語言模型不再按順序對序列進行建模。它以最大化序列給出了序列的所有可能的排列。通過這種方式,任何位置都可以利用來自所有位置的上下文信息,使排列語言模型實現雙向編碼。最常見的排列語言模型模型是XLNET和MPNet[16]。XLNET是第一個基于LM的排列PFM。此外,XLNet還集成了Transformer-XL的兩個最關鍵技術:相對位置編碼和段遞歸機制。MPNet將MLM模型與排列語言模型相結合,通過排列語言模型預測tokens之間的依賴關系。它使用輔助位置信息作為輸入,使模型能夠看到完整的句子,從而減少位置差異。
3.模型架構

圖 2:BART架構
早期ELMO采用多層RNN結構。每一層都是雙向LSTM結構,有向前和向后 LM。以這兩個方向的最大可能性為目標功能。與詞向量法相比,ELMO引入了上下文信息并改進了多義問題,但ELMO提取語言特征的整體能力較弱。PFMs的應用研究主要有兩個方向。一種是具有微調功能的PFM(例如BERT),另一個是具有zero/few-shot prompts(例如 GPT)的 PFM。BERT使用雙向編碼器以預測哪些單詞被屏蔽并確定兩個句子是否與上下文相關。但是,文檔是雙向編碼的,并且被屏蔽的單詞是獨立預測的,這降低了生成能力。GPT 使用自回歸解碼器作為特征提取器,根據前幾個單詞預測下一個單詞,并使用微調解決下游任務,因此更適合文本生成任務。但是,GPT 僅使用前一個詞進行預測,無法學習雙向交互信息。與這些模型不同,BART是由 seq2seq 模型構建的降噪自動編碼器,采用編碼器-解碼器結構,如圖2所示。預訓練主要包括使用噪聲銷毀文本并使用 seq2seq 模型重建原始文本。預訓練主要包括使用噪聲銷毀文本和使用 seq2seq 模型重建原始文本。編碼層采用雙向Transformer。它采用五種添加噪聲模式:(1)單字掩碼;(2)字刪除;(3)跨度掩碼;(4)句子改編;(5)文件重新排列。在編碼器部分,序列具有在將其輸入編碼器之前被屏蔽。然后,解碼器根據編碼器輸出的編碼表示形式和未屏蔽的序列恢復原始序列。這添加一系列噪聲模式使 BART 在序列生成方面的性能在自然語言推理任務顯著改善。
4.掩碼設計
注意力機制首先將基本單詞聚合為句子向量和重要句子向量轉換為文本向量,這允許模型對不同的輸入給予不同的關注。對于BERT來說,作為一個雙向編碼LM,輸入句子中的任意兩個單詞都可以相互看到。但是,它阻礙了BERT模型學習NLG任務的能力。

圖 3:spanBERT架構
后續基于RoBERTa的提出SpanBERT,它采用了動態掩蔽的思想和單段預訓練,如圖3所示,提出了跨度掩碼和跨度邊界目標 (SBO) 來屏蔽一定長度的單詞??缍冗吔绲哪繕巳蝿帐峭ㄟ^兩端觀察到的令牌恢復所有屏蔽的跨度(tokens)。訓練階段使用RoBERTa中提出的動態掩碼策略,而不是數據預處理過程中的掩碼。與BERT不同,SpanBERT隨機覆蓋連續的文本并添加SBO訓練目標。它使用最接近跨度邊界的tokens預測跨度,并消除 NSP 預訓練任務。
Song 等提出了掩蔽的 seq2seq 預訓練模型 MASS[17]。在訓練階段,編碼器的輸入序列被隨機屏蔽為長度為K的連續段。掩蓋的片段將通過 MASS 解碼器恢復。UniLM[18]通過為輸入數據中的兩個句子設計不同的掩碼來建模來完成NLG的學習。對于第一個句子,UniLM使用與轉換編碼器相同的結構,使每個單詞注意到其前后單詞。對于第二句,每個單詞只能注意到第一句和前面的所有單詞當前句子中的單詞。因此,模型輸入的第一句和第二句構成了經典seq2seq 模式。
5.提升方式
5.1 提升模型性能
大多數流行的預訓練模型都需要大量的預訓練數據,這對硬件提出了巨大的要求,使得重新訓練具有挑戰性,只能做一些模型的微調。為了解決這些問題,出現了一些模型。例如,百度發布的ERNIE Tiny就是小型化的ERNIE[19],它減少了層數,預測速度提高了4.3倍,精度略有下降。ALBERT通過減少內存消耗和訓練速度。但是,不可否認的是,無論哪種壓縮對于這些大型模型,模型在這些任務中的性能將急劇下降。它要求在以后的工作中注意高級語義和語法信息的高效表示和無損壓縮。通過使用字嵌入參數分解和層之間的隱藏參數共享,ALBERT顯著減少了模型的參數數量,而不會降低性能。它提出了SOP的訓練任務,預測兩個句子的順序以提高性能。
5.2 多任務學習
ERNIE主要由Transformer編碼器和任務嵌入兩部分組成。在Transformer編碼器中,自注意機制用于捕獲每個tokens的上下文信息并生成上下文表示嵌入。任務嵌入是一個將不同特征應用于任務的技術。ERNIE 2.0 [20] 引入了多任務學習,以實現詞匯、語法和語義的預訓練。ERNIE 2.0 使用七種不同的預訓練任務,涵蓋三個方面:詞級、句級和語義級。它使用持續學習,使先前訓練任務中的知識得以保留,并使模型能夠獲得遠距離記憶。它使用轉換器編碼器并引入任務嵌入,使模型能夠在持續學習過程中區分不同的任務。UniLM使用三個預訓練任務:單向 LM、雙向 LM 和編碼器-解碼器LM。通過自注意力層掩碼機制,它可以在預訓練階段同時完成三種目標任務。在訓練階段,UniLM采用SpanBERT提出的小段掩模策略,損失函數由上述三個預訓練任務的損失函數組成。為了保持所有損失函數的貢獻一致性,同時訓練了三個預訓練任務。多個任務的建模和參數共享使LM在自然語言理解(NLU)和NLG任務中實現良好的泛化能力。
5.3 針對下游任務
預訓練模型往往很大,那么如何匹配不同的下游任務同樣重要。已經出現了一些在專用語料庫上訓練的預訓練模型。Cui等人提出了BERT-whole word masking模型(BERT-WWM)。他們直接使用中文中的BERT根據原始的MLM訓練進行隨機屏蔽,導致語義信息的丟失。ZEN[21]是基于BERT的文本編碼器,它采用N-gram 增強性能,有效集成相當細粒度的文本信息,收斂速度快,性能好。Tsai[22]等人提出了一種用于序列標記任務的定向多語言序列標記模型。針對低質量語言,采用知識蒸餾法,在詞性標注和多重形態屬性預測兩個任務中能取得更好的表現,推理時間縮短了27倍。
6.指令對齊
指令對齊方法旨在讓LM遵循人類意圖并生成有意義的輸出。一般方法是以監督方式使用高質量語料庫微調預訓練的LM。為了進一步提高學習LMs的有用性和無害性,將強化學習引入微調程序,以便學習障礙可以根據人類或人工智能的反饋修改其響應。受監督和強化學習方法可以利用思維鏈風格的推理來提高人類判斷的性能和人工智能決策的透明度。
6.1 監督式微調 (SFT)
SFT是一種成熟的技術,可以解鎖知識并應用它到特定的現實世界,甚至是看不見的任務。SFT 的模板由輸入輸出對和指令。例如,給定指令“將此句子翻譯成英文:”和一個輸入“今天天氣不錯”,我們希望LM生成目標"The weather is nice today",該模板通常是人造的,包括非自然指令和自然指令,或基于種子語料庫的引導。LM傷害的倫理和社會風險是SFT的重要關注點。
6.2 人類反饋強化學習(RLHF)
RL已被應用于增強NLP任務中的各種模型,例如機器翻譯,摘要,圖像標題,問題生成,文本游戲等。RL通過將語言生成任務中的不可微分目標視為順序決策問題來優化它們。但是,存在過度擬合使用神經網絡的指標的風險,從而導致在指標上得分很高的荒謬樣本。同時,其還用于使LM與人類偏好保持一致。

圖 4:ChatGPT框架
InstructGPT 建議使用 PPO[23] 根據經過訓練的獎勵模型微調大模型,以對齊 LM與人類偏好,這與ChatGPT應用的方法相同,名為RLHF。具體見圖4,獎勵模型使用人工標記員手動對輸出進行排名的比較數據進行訓練。對于它們中的每一個,獎勵模型計算一個獎勵,用于使用 PPO 更新 LM。由DeepMind開發的Sparrow[24]也利用RLHF來降低不安全和不適當答案的風險。盡管RLHF 取得了一些有希望的結果,這一領域的進展因缺乏公開的基準和實現資源,導致人們認為 RL 對于 NLP 來說是一種困難的方法。因此,最近引入了一個名為RL4LMs[25]的開源庫,該庫由用于在基于LM的生成上微調和評估RL算法的構建塊組成。
與傳統的 RL 方法相比,RLHF 的關鍵優勢在于能更好地與人類的意圖保持一致,以及以未來的反饋為條件進行規劃,從各種類型的反饋中進行流暢的學習,并根據需要對反饋進行整理,所有這些都是創建真正的智能代理所不可缺少的。它還允許機器通過抽象人類的價值來學習,而不是簡單地模仿人類的行為,從而使代理具有更強的適應性,更強的可解釋性,以及更可靠的決策。
6.3 思維鏈 (CoT)
在NLP領域,這幾年模型的規模是越來越大,幾億參數量現在都只能算小模型,預訓練模型也已經向大模型的方向去演進,那大模型的好處顯而易見:推理能力強,采樣效率高,因為模型參數大,能儲存很多的知識。最近幾年有學者通過構建這種推理的中間過程,來簡化推理取得了比較好的效果,而我們所知大模型通過prompt進行上下文小樣本學習能力也是極強的。但問題就是創建很多的中間步驟用來做監督finetune是非常耗時的,而且傳統的prompt方式在數學計算、常識推理等做的又不好,怎么結合上下文小樣本學習能力和中間步驟來改善推理能力是一個問題。CoT在此基礎上應用而生,其基礎原理就是將多步求解的問題分解出中間步驟, 模型分配額外的計算能力給推理步驟,它可以增加模型的可解釋性, 知道它是如何得出特定答案,并且模型還有機會通過調試推理路徑中存在錯誤的地方,原則上適用于所有任務,只需提供少量思維鏈的范例,現有的大規模語言模型即可使用思維鏈進行推理。
7.總結
本文主要闡述了PFMs成長歷程,文章大部分內容來源于論文[26],原文從NLP、CV、GL這幾個領域的PFMs做了綜合調研,作者主要針對PFMs在NLP領域的底層基礎到上層技術進行了梳理。目前來看,PFMs在僅僅在參數量規模上已經很難讓人產生很大共鳴了,而人們現在更加在意的是PFMs的實際的推理性能和處理復雜推理任務的能力,這里面還要額外考慮到對軟硬件資源成本和實際應用場景中的合規性,更加注重PFMs的落地性和實用性,正如chatgpt一出場就能夠驚艷全場,其參數量已經不是輿論的焦點了,這款AI殺手級的應用出現,其驚艷的表現可能會給世界帶來新的產業革命。當然,還是受限于其模型大小和使用成本,ChatGPT并沒有完全普及開來,但隨著算法技術和算力技術的不斷進步,下一代的PFMs也必然會更加完善,在越來越多的領域進行應用,為人類帶來更好的體驗感和便利性。
編輯:黃飛
?
電子發燒友App







































評論