语言模型微调领域有哪些最新进展?一文详解最新趋势
作者|小舟
?來源|機器之心
詳解 2020 最具影響力的十大 ML、NLP 研究的 DeepMind 研究科學家又來了,這次來講講語言模型微調領域的最新進展。
對預訓練語言模型(LM)進行微調已成為在自然語言處理中進行遷移學習的實際標準。在過去三年中(Ruder,2018),微調(Howard&Ruder,2018)已經取代了使用預訓練嵌入(Peters 等,2018)的特征提取,而預訓練語言模型由于它們提高了采樣效率和性能(Zhang 和 Bowman,2018),受到了基于翻譯訓練的模型(McCann 等,2018)、自然語言推理(Conneau 等,2017)和其他一些任務的青睞。
這些成功經驗促成了開發更大的模型(Devlin 等,2019; Raffel 等,2020)。實際上,近來一些模型因為很大,所以它們可以在不進行任何參數更新的情況下實現合理的性能(Brown 等,2020)。但是出于這種零樣本設置的局限性,為了獲得最佳性能或保持合理的效率,在實踐中使用大型預訓練 LM 時,微調仍可能是操作方式。
在標準的遷移學習設置中,首先使用語言建模損失(如掩碼語言建模(MLM; Devlin 等,2019))讓模型在大量未標記數據上進行預訓練,然后使用標準的交叉熵損失在下游任務的標記數據上進行微調。
標準的預訓練微調設置
預訓練需要大量計算,而微調卻可以相對便宜地完成。微調對于此類模型的實際使用更為重要,因為要下載和微調了數百萬次單獨的預訓練模型。在本篇文章中,作者重點介紹了微調,特別是可能重塑或改變語言微調模型方式的最新進展,如下所示。
微調方法概覽。
自適應微調
即使就分布外泛化而言,經過預訓練的語言模型比以前的模型更加魯棒(Hendrycks 等,2020),但它們仍然不能很好地處理與預訓練數據完全不同的數據。自適應微調是一種通過在更接近目標數據分布的數據上微調模型來彌合這種分布偏移的方法。具體而言,自適應微調包括在任務特定的微調之前,在附加數據上對模型進行微調,如下所示。重要的是,該模型已根據預訓練目標進行了微調,因此自適應微調僅需要未標記的數據。
自適應微調是標準遷移學習設置的一部分。預訓練模型是在更接近目標分布的數據上使用預訓練損失(通常是掩碼語言建模)進行訓練的。
形式上,給定由特征空間 x 和特征空間上的邊緣概率分布 P(X) 組成的目標域 D_T,其中 X = {x_1,...,x_n}∈x(Pan and Yang,2009; Ruder,2019),自適應微調允許學習特征空間 X 和目標數據的分布 P(X)。
自適應微調的變體(域,任務和語言自適應微調)已分別用于使模型適應目標域,目標任務和目標語言的數據。Dai 和 Le(2015)首次表明了域自適應微調的好處。Howard and Ruder(2018)隨后通過在域內數據上進行微調展示了更高的采樣效率。他們還提出了任務自適應微調,這種微調可以根據任務訓練數據上的預訓練目標對模型進行微調。與 one-hot 任務標簽上的交叉熵相比,預訓練損失為建模目標數據提供了更豐富的信息,因此任務自適應微調比常規微調更有用。或者,可以通過多任務學習(Chronopoulou 等,2019)聯合進行自適應微調和常規微調。
域和任務自適應微調最近已應用于最新一代的預訓練模型(Logeswaran 等,2019;Han 和 Eisenstein,2019;Mehri 等,2019)。Gururangan 等(2020)的研究表明,適應目標域和目標任務的數據是互補的。最近,Pfeiffer 等(2020)提出了語言自適應微調,以使模型適應新語言。
自適應微調模型專用于特定的數據分布,它能夠很好地建模。但是,這需要為成為通用語言模型的能力付出代價。因此,當在單個域的任務(可能有多個)的高性能很重要時,自適應微調最有用,如果預訓練模型應該適應大量域,那么自適應微調在計算上效率低下。
行為型微調
盡管自適應微調使我們能夠將模型專門化為 D_T,但它并不能直接告訴我們有關目標任務的任何信息。形式上,目標任務τ_T 由標簽空間 y,先驗分布 P(Y),其中 Y = {y_1,...,y_n}∈y 和條件概率分布 P(Y | X)組成。或者,我們可以通過在相關任務上進行微調來教模型某些能力,使得該模型可以很好地完成目標任務,如下所示。我們將這種設置稱為行為型微調,因為它著重于學習有用的行為并將其與自適應微調區分開。
預訓練模型的行為型微調。對與目標任務相關的任務,使用特定于任務的監督目標或自監督目標,對預訓練模型進行了訓練。
教模型掌握相關能力的一種方法是在特定于任務的微調之前,根據相關任務的相關標記數據對其進行微調(Phang 等,2018)。這種所謂的中間任務訓練最適合需要高層級推斷和推理能力的任務(Pruksachatkun 等,2020 ;Phang 等,2020)。帶有標記數據的行為型微調已被用于教有關命名實體的模型信息(Broscheit,2019),復述(Arase 和 Tsujii,2019),語法(Glava?和 Vuli?,2020),答案句子選擇(Garg 等, 2020)和問題解答(Khashabi 等,2020)。Aghajanyan 等(2021)在大規模多任務設置中微調約 50 個帶標簽的數據集,并觀察到大量多樣的任務集合對于良好的遷移性能至關重要。
由于通常很難獲得此類高層級推理任務的監督數據,因此,我們可以在目標上進行訓練,這些目標可以教模型掌握與下游任務相關的能力,但仍可以以自監督的方式進行學習。例如,Dou 和 Neubig(2021)微調了一種詞對齊模型,其目標是教其從其他句子中識別平行句(parallel sentences)等。Sellam 等(2020)對 BERT 進行了微調,以使用一系列句子相似度信號進行質量評估。在這兩種情況下,學習信號的多樣性都是重要的。
另一種有效的方法是將目標任務設計成掩碼語言建模的一種形式。為此,Ben-David 等(2020)使用 pivot-based 目標微調了一種用于情感域適應的模型。還有一些研究者提出了預訓練目標,可以在微調中類似地使用它們:Ram 等(2021)預訓練了具有 span 選擇任務的 QA 模型,而 Bansal 等(2020)通過自動生成 cloze-style 的多類分類任務來預訓練用于少樣本學習的模型。
自適應型和行為型微調的區別鼓勵我們考慮要注入模型的歸納偏差,以及它們是否與域 D 或任務τ的屬性有關。區分域和任務的作用很重要,因為通常可以使用有限的未標記數據來學習關于域的信息(Ramponi 和 Plank,2020),而采用當前方法獲得的高級自然語言理解技能通常需要數十億的預訓練數據樣本(Zhang 等,2020)。
但是,當我們根據預訓練目標來組織任務時,任務和域之間的區別變得模糊。MLM 等足夠通用的預訓練任務可以為學習 P(Y | X)提供有用的信息,但可能不包含對該任務重要的所有信號。例如,經過 MLM 預訓練的模型難以建模反向情況、數字或命名實體(Rogers 等,2020)。
類似地,數據增強的使用使 D 和τ的角色糾纏在一起,因為它允許我們直接在數據中編碼所需的功能。例如,通過微調用性別相反的單詞替換性別單詞的文本模型,會使模型對性別偏見更加魯棒(Zhao 等,2018; Zhao 等,2019; Manela 等,2021。
參數高效的微調
當需要在許多設置中(例如,針對大量用戶)對模型進行微調時,為每種情況存儲微調模型的副本在計算上會非常昂貴。因此,近來一些研究致力于保持大多數模型參數固定不變,并對每個任務微調少量參數。實際上,這使得存儲大型模型的單個副本以及許多具有任務特定修改的小文件變得容易。
這類研究中的第一種方法是基于「適配器」(Rebuffi 等,2017),在預訓練模型各層之間插入了小的瓶頸層(Houlsby 等,2019;Stickland 和 Murray,2019),其參數是固定的。適配器提供通用設置,例如在訓練過程中存儲多個檢查點以及更高級的技術(例如檢查點平均(Izmailov 等,2018)、快照集成(Huang 等,2017)、temporal 集成(Laine 和 Aila,2017))時,空間效率更高。使用適配器,通用模型可以有效地適應許多設置,例如不同的語言(Bapna 和 Firat,2019)。Pfeiffer 等(2020)最近證明了適配器是模塊化的,可以通過堆棧進行組合,從而可以獨立學習專用表征。這在使用上述方法時特別有用:可以通過在其頂部堆疊經過訓練的任務適配器來評估自適應型或行為型微調的適配器,而無需進行任何特定于任務的微調,如下圖所示。
在 MAD-X 框架的 Transformer 塊中插入的任務和語言適配器(Pfeiffer 等,2020)。適配器學習封裝的表征,并且可以相互替換,從而實現零樣本遷移。
適配器在不更改基礎參數的情況下修改模型的激活函數,另一類研究則是直接修改預訓練參數。為了說明這類方法,我們可以將微調視為學習擾動(perturb)預訓練模型參數的方法。形式上,為了獲得微調模型的參數(其中 D 是模型的維數),需要學習特定于任務的參數向量來捕獲更改預訓練模型參數的方法。微調后的參數是將任務特定的排列應用于預訓練參數的結果:
該方法沒有為每個任務存儲θ_fine-tuned 的副本,取而代之的是可以為每個任務存儲θ_pre-trained 的單個副本和θ_task 的副本。如果我們可以更有效地參數化θ_task,那么這種設置會更加劃算。為此,Guo 等(2020)學習θ_task 作為稀疏向量。Aghajanyan 等(2020)設置其中,θ_low 是一種低維向量,M 是隨機線性投影。
或者,我們還可以僅對預訓練參數的子集進行修改。計算機視覺中有一種經典方法(Donahue 等,2014)僅微調了模型的最后一層。假設θ_pre-trained 是模型所有 L 層上預訓練參數的集合,即,其中是與第 l 層相關聯的參數向量,表示形式和θ_fine-tuned、θ_task 類似。因此,僅對最后一層進行微調等效于:
雖然這在 NLP 中效果不佳(Howard&Ruder,2018),但是還有其他一些參數子集可以更有效地進行微調。例如,Ben-Zaken 等(2020)僅通過微調模型的偏差參數就可以實現很好的性能。
還有一類研究是在微調期間剪枝預訓練模型的參數。此類方法使用不同的標準來剪枝權重,例如基于權重重要性的零級或一階信息(Sanh 等,2020)。由于當前硬件對稀疏架構的支持有限,因此目前最好采用結構上稀疏的方法,即將更新集中在有限的一組層,矩陣或向量中。例如,預訓練模型的最后幾層已顯示在微調過程中用途很有限,并且可以隨機重新初始化(Tamkin 等,2020; Zhang 等,2021),甚至被完全移除(Chung 等,2021)。
剪枝方法著重于減少任務特定模型的參數總數,而其他大多數方法著重于減少可訓練參數的數量,同時保留θ_pre-trained 的副本。后者中的最新方法通常與完全微調的性能相匹配,同時每個任務訓練大約 0.5%的模型參數(Pfeiffer 等,2020; Guo 等,2020; Ben-Zaken 等,2020)。
越來越多的證據表明,大型的預訓練語言模型可以很好地壓縮 NLP 任務(Li 等,2018;Gordon 等,2020;Aghajanyan 等,2020)。這些實用的證據以及它們的便利性,可用性(Pfeiffer 等,2020 )以及最近的一些成功研究使這些方法在實驗和實際環境中都頗為有效。
文本到文本的微調
遷移學習的另一個發展方向是從 BERT(Devlin 等,2019)和 RoBERTa(Liu 等,2019)等掩碼語言模型到 T5(Raffel 等,2019) 和 GPT-3(Brown 等,2020)等自回歸語言模型的轉變。
雖然這兩種方法都可以用于為文本分配可能性得分(Salazar 等,2020),但自回歸 LM 更容易采樣。相反,掩碼 LM 通常僅限于空白填充設置(如 Petroni 等,2019)。
使用掩碼 LM 進行微調的標準方法是使用隨機初始化任務特定 head 替換用于 MLM 的輸出層,其中 head 被用于目標任務上的學習(Devlin 等,2019)。或者,通過以 cloze-style 格式將任務重塑為 MLM(Talmor 等,2020;Schick 和 Schütze,2021),預訓練模型的輸出層能夠被復用。類似地,自回歸 LM 通常以文本到文本的格式拋出目標任務(McCann 等,2018;Raffel 等,2020;Paolini 等,2021)。在這兩種設置中,模型都能夠從所有預訓練知識中受益,并且無需從頭開始學習新參數,從而提高了樣本效率。
在極端情況下,如果不對參數進行微調,根據預訓練目標構建目標任務允許使用特定于任務的 prompt 和少量任務樣例實現零樣本或少樣本學習(Brown 等,2020)。但使用這種模型進行少樣本學習并不是最有效的方式(Schick 和 Schütze,2020)。不含更新的學習需要一個巨大的模型,因為該模型需要完全依賴現有知識。該模型可用的信息量也受到其上下文窗口的限制,并且呈現給模型的 prompt 也需要仔細設計。
檢索增強可以減輕外部知識的存儲負擔,并且可以使用符號化方法教類似于(Awasthi 等,2020)的模型特定于任務的規則。預訓練模型也將變得更大更強,并且可能會在行為上進行微調,以使其在零樣本設置下性能良好。但是,如果不進行微調,模型最終適應新任務的能力將受到限制。
因此,對于大多數實際環境,最佳方法可能是使用上述介紹的方法對模型參數的全部或其子集進行微調。此外,預訓練模型將越來越重視生成能力。雖然當前的方法通常集中在修改模型的自然語言輸入上,例如通過自動 prompt 設計(Schick 和 Schütze,2020; Gao 等,2020; Shin 等,2020),但調節此類模型輸出最有效的方法可能會直接作用于它們的隱藏表征(Dathathri 等,2020)。
減輕微調的不穩定性
微調預訓練模型的一個實際問題是,不同運行實驗之間的性能可能會發生巨大變化,尤其是在小型數據集上(Phang 等,2018)。Dodge 等(2020)發現,輸出層的權重初始化和訓練數據的順序都會導致性能發生變化。由于不穩定通常在訓練的早期就很明顯,因此建議在訓練 20-30%后盡早停止最無希望的嘗試。Mosbach 等(2021)還建議使用較小的學習率,并在微調 BERT 時增加 epoch 數。
許多最新方法試圖依靠對抗或基于信任域的方法來減輕微調期間的不穩定性(Zhu 等,2019;Jiang 等,2020;Aghajanyan 等,2021)。此類方法通常使用限制更新步驟之間差異的正則化項來增加微調損失。
根據前文的內容,我們可以提出一些建議,以最大程度地減少微調過程中的不穩定性:避免通過將目標任務構建為 LM 形式在小型數據集上對目標任務使用隨機初始化的輸出層,或者在特定于任務的微調之前使用行為型微調對輸出層進行微調。雖然文本到文本模型因此在小型數據集上微調更具魯棒性,但它們在少樣本設置中就很不穩定,且對于零樣本樣例和 prompt 較為敏感(Zhao 等,2021)。
總體而言,隨著模型越來越多地用于訓練樣例較少的挑戰性任務,開發對可能的變化具有魯棒性并且可以進行可靠微調的方法至關重要。
原文鏈接:https://ruder.io/recent-advances-lm-fine-tuning/
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的语言模型微调领域有哪些最新进展?一文详解最新趋势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奶油哪里可以买到 探寻奶油的销售渠道和购
- 下一篇: 想在三环外租个300-500的房子,怎么