開篇導語:
此文為CCF術語工委聯合自然語言處理專委會推出的計算機行業術語介紹文章。本期所選熱詞為預訓練語言模型,是目前的熱門研究方向之一。以BERT、GPT為代表的預訓練模型已經成為自然語言處理(NLP)領域的主要模型。不管在富資源任務還是低資源任務上,預訓練都對模型性能有顯著的提升。本文將對目前眾多預訓練模型進行梳理匯總,並對預訓練模型的未來研究方向進行展望。
預訓練語言模型(Pre-Trained Language Models)
作者:邱錫鵬(復旦大學)
InfoBox:
中文名:預訓練語言模型
外文名:Pre-Trained Language Models
詞條定義:預訓練語言模型(Pre-Trained Language Models, PLMs)是指利用無監督學習或自監督學習在海量文本數據進行預訓練得到神經網絡模型。這些預訓練模型通常具有很好的自然語言表示,有益於其他下遊任務。許多研究已表明,在大規模無標註語料中訓練的預訓練語言模型可以使許多自然語言處理任務獲得顯著的性能提升。
預訓練語言模型的發展:
預訓練模型一直被視為一種訓練深度神經網絡模型的高效策略。早在2006年,深度學習的突破便來自於逐層無監督預訓練+微調方式。在計算機視覺領域,已出現在大型ImageNet數據集上訓練的預訓練模型並進一步在不同任務的小數據集上微調的範式。該方法比隨機初始化參數模型更為有效,因為模型能學到可被用於不同視覺任務上的通用圖像特徵。在NLP領域,無論是淺層詞嵌入還是深層網絡模型,大規模語料下的預訓練語言模型均被證實對下遊NLP任務有益。隨著算力的快速發展、以Transformer為[1]代表的深度模型的不斷湧現以及訓練技巧的逐步提升,預訓練模型(Pre-Trained Models,PTMs)[2]也由淺至深。自然語言處理中預訓練模型的發展可以分為兩個階段。第一代預訓練模型著力於學習詞嵌入(也稱為詞向量),而用於學習詞向量的模型本身在下遊任務中已不需要使用。因此基於計算效率考量,這類模型通常比較簡單,如CBOW、Skip-Gram和GloVe等。儘管這些預訓練詞嵌入可捕獲詞語語義,但是它們是靜態的,無法表示上下文相關的信息,比如一詞多義、句法結構、語義角色和共指等。第二代預訓練模型聚焦於學習上下文相關的詞嵌入,如ELMo(Embedding from Language Model)[3],OpenAI GPT(Generative Pre-training)[4]和BERT(Bidirectional Encoder Representation from Transformer)[5]等。該類預訓練模型會直接在下遊任務中使用來表示文本的上下文特徵。
預訓練的重要性:
隨著深度學習的發展,模型參數顯著增長,從而需要越來越大的數據集用於充分訓練模型參數並預防過擬合。然而,因大部分NLP任務的標註成本極為高昂,尤其是句法和語義相關任務,構建大規模標註數據集尤為困難。
相比較而言,大規模無標註數據集相對易於構建。為更好地利用海量無標籤文本數據,我們可以首先從這些數據中學到較好的文本表示,然後再將其用於其他任務。許多研究已表明,在大規模無標註語料中訓練的預訓練語言模型得到的表示可以使許多NLP任務獲得顯著的性能提升。預訓練的優勢可總結為以下幾點:
1.在海量文本中通過預訓練可以學習到一種通用語言表示,並有助於完成下遊任務。
2.預訓練可提供更好的模型初始化,從而具有更好的泛化性並在下遊任務上更快收斂。
3.預訓練可被看作是在小數據集上避免過擬合的一種正則化方法。
預訓練任務:
預訓練任務對於學習語言的通用表示至關重要。本節將預訓練任務分為三類:監督學習、無監督學習及自監督學習。自監督學習的關鍵思想是通過輸入的一部分信息來預測其他部分信息。例如,掩碼語言模型(Masked Language Model,MLM)[5]是一種自我監督的任務,就是將句子中的某些詞刪掉,並通過剩下的其他詞來預測這些被刪掉的詞。
語言模型:
NLP中最常見的無監督任務為概率語言模型(Language Model,LM),是一個經典的概率密度估計問題。在實踐中語言模型通常特指自回歸語言模型或單向語言模型。單向語言模型的缺點在於每個詞的表示僅對包括自身的上文編碼,而更好的文本上下文表示應從兩個方向對上下文信息進行編碼。一種改進策略為雙向語言模型[3],即由一個前向語言模型和一個反向語言模型組成。
掩碼語言模型:
掩碼語言模型(Masked Language Model,MLM)首先將輸入句子的一些詞替換為[MASK],然後訓練模型通過剩餘詞來預測被替換的詞。然而,在實際使用時句子中並不會出現[MASK],導致這種預訓練方法在預訓練階段和微調階段之間存在不一致。為緩解該現象,Devlin等人[5]在每個序列中替換15%的詞塊,其中每個詞以80%的概率使用[MASK]替換,10%的概率替換為隨機詞,10%的概率保持不變。通常情況下,MLM可以作為分類任務處理,也可以使用編碼器-解碼器架構處理,即在編碼器中輸入掩碼序列,接著解碼器以自回歸形式預測出被掩碼的詞。
降噪自編碼器:
降噪自編碼器(Denoised Auto-Encoder,DAE)是將部分損壞的序列作為輸入並恢復原始的序列。就語言來說,常使用如標準Transformer等序列至序列模型重構原始輸入文本。常見的損壞文本方式有詞屏蔽、詞刪除、文本填充、句序打亂和文檔內容置換等。
對比學習:
對比學習(Contrastive Learning,CTL)假設一些觀察到的成對文本在語義上比隨機抽樣的文本更相似。CTL背後的理念是「通過比較來學習」。與語言模型相比,CTL通常具有較少的計算複雜度,因此是預訓練模型理想的訓練方式。下一句預測任務(Next Sentence Prediction,NSP)[5]訓練模型區分輸入的兩個句子是否是訓練預料中的兩個連續片段。
預訓練語言模型的分類體系:
下圖展示了預訓練語言模型的分類體系以及對應的部分代表性預訓練模型。
圖 1 預訓練模型分類與典型例子
展望和總結:
雖然預訓練語言模型已在多種NLP任務中展現出強大的性能,但由於語言的複雜性,挑戰仍然存在。本節將對預訓練模型的未來研究趨勢進行展望與總結。
1. 預訓練模型的上界:當前的預訓練模型還未達到其上界,大多數預訓練模型仍然可通過更多的訓練步長和更多語料得到進一步提升。NLP中最先進的模型仍然能通過更深的堆砌獲得性能的增長。研究人員仍然嘗試著使用預訓練模型學習語言內在的通識知識甚至世界知識。然而該類預訓練模型通常需要更深的架構、更大的語料和更具挑戰的預訓練任務,從而進一步提高了訓練代價。同時,從工程實現角度來說,訓練超大型預訓練模型也需要更複雜和更高效的訓練技巧,如分布式訓練、混合精度和梯度累積等。因此,更實際的方向或許是設計更為高效的模型架構、自監督預訓練任務、優化器以及根據現有軟硬體條件下的訓練技巧。
2. 預訓練模型的架構:Transformer的一個主要弊端是其計算複雜度,而當前預訓練模型因GPU顯存限制,通常難以處理長度大於512的序列,而突破這類限制則須從改進Transformer的架構入手。因此,使用神經架構搜索等技術自動構建深層架構,以使模型具備捕獲更長距離上下文依賴的能力,或許是一種解決方案。
3. 任務導向的預訓練模型和模型壓縮:在實際使用中,不同難度的下遊任務往往需要具有不同能力的預訓練模型。同時,儘管大型預訓練模型的性能通常更佳,但如何在低資源和低延遲場景下部署該類大型預訓練模型仍然是一個實際面臨的問題。因此,我們可以為下遊任務精心設計特定的架構和預訓練任務,或從現有預訓練模型中提取出與任務相關的知識。相比於從零開始訓練任務導向型的預訓練模型,還可考慮使用知識蒸餾等技術,將現成的大型通用預訓練模型知識蒸餾至小模型中。
4. 超越微調的知識遷移:微調是當前將預訓練模型的知識遷移至下遊任務中的主要方法,但該方法卻存在參數低效問題,即每個下遊任務有其相應的微調參數。一種改進方案是保持預訓練模型的原始參數,並為特定任務添加小的微調模塊,從而節省參數。實際上,預訓練模型也可以作為外部知識,從而更靈活地將預訓練模型中的知識遷移到下遊任務。
5. 預訓練模型的可解釋性和可靠性:儘管預訓練模型性能驚豔,但是其深度非線性架構使決策過程處於高度非透明狀態。當前較多的預訓練模型解釋性工作依賴於注意力機制,而注意力機制在可解釋性上的合理性仍備受爭議。此外,由於預訓練模型在對抗攻擊下表現出的脆弱性,其可靠性也隨著預訓練模型的廣泛部署而備受學者關注。對抗攻擊研究有助於探究預訓練模型的弱點,而對抗防禦研究則有助於提升預訓練模型的魯棒性。
關於預訓練模型方面的詳細綜述可以進一步閱讀文獻[2]。
參考文獻:
[1]Lin, T., Wang, Y., Liu, X., & Qiu, X. A Survey of Transformers. arXiv preprint arXiv:2106.04554, 2021[2]X. Qiu, T. Sun, Y. Xu, Y. Shao, N. Dai, and X. Huang, Pre-trained Models for Natural Language Processing: A Survey[J]// SCIENCE CHINA Technological Sciences, 63(10), 2020.[3]Peters ME, Neumann M, Iyyer M, Gardner M, Clark C, Lee K, Zettlemoyer L. Deep contextualized word representations[C]// NAACL-HLT 2018.[4]Radford A, Narasimhan K, Salimans T, Sutskever I. Improving language understanding by generative pre-training [OL]. 2018.[5]Devlin J, Chang MW, Lee K, Toutanova K. Bert: Pre-training of deep bidirectional transformers for language understanding[C]// NAACL-HLT 2019.計算機術語審定委員會(Committee on Terminology)主要職能為收集、翻譯、釋義、審定和推薦計算機新詞,並在CCF平臺上宣傳推廣。這對釐清學科體系,開展科學研究,並將科學和知識在全社會廣泛傳播,都具有十分重要的意義。
術語眾包平臺CCFpedia的建設和持續優化,可以有效推進中國計算機術語的收集、審定、規範和傳播工作,同時又能起到各領域規範化標準定製的推廣作用。
新版的CCFpedia計算機術語平臺(http://term.ccf.org.cn)將術語的編輯運營與瀏覽使用進行了整合,摒棄老版中跨平臺操作的繁瑣步驟,在界面可觀性上進行了升級,讓用戶能夠簡單方便地查閱術語信息。同時,新版平臺中引入知識圖譜的方式對所有術語數據進行組織,通過圖譜多層關聯的形式升級了術語瀏覽的應用形態。
主任:
劉挺(哈爾濱工業大學)
副主任:
王昊奮(同濟大學)
李國良(清華大學)
主任助理:
李一斌(上海海乂知信息科技有限公司)
執行委員:
丁軍(上海海乂知信息科技有限公司)
林俊宇(中國科學院信息工程研究所)
蘭豔豔(清華大學)
張偉男(哈爾濱工業大學)