1. 程式人生 > 其它 >NLP論文解讀:無需模板且高效的語言微調模型(上)

NLP論文解讀:無需模板且高效的語言微調模型(上)

©原創作者 | 蘇菲

論文題目:

Prompt-free and Efficient Language Model Fine-Tuning

論文作者:

Rabeeh Karimi Mahabadi

論文地址:

https://openreview.net/pdf?id=6o5ZEtqP2g

提示學習(Prompt-learning)被譽為自然語言處理的“第 4 種正規化”,它可以在少樣本甚至零樣本的條件下,通過將下游任務修改為語言生成任務來獲得相對較好的模型。

但是,傳統的提示學習需要針對下游任務手工設計模板,而且採用自迴歸的訓練預測方法非常耗時。本文提出的PERFECT方法,無需手工設計特定模板,大大降低記憶體和儲存消耗(分別降低了5個百分點和100個百分點)。

在12個NLP任務中,這種微調方法(PERFECT)在簡單高效的同時,取得了與SOTA方法(如PET提示學習模型)相近甚至更高的結果。

論文的創新之處在於:

(1)使用特定任務介面卡替代手工製作任務提示,提高了微調的取樣效率且降低記憶體及儲存消耗;

(2)使用不依賴於模型詞彙集的多標記標籤向量學習,替代手工編制的語言生成器,可以避免複雜的自迴歸解碼過程。

01 背景介紹

論文作者首先介紹了少樣本語言模型微調以及提示學習的問題定義、介面卡、基於提示的微調、訓練策略、預測策略等,然後再提出論文對這一問題和模型的改進方法。

圖1所示的是一個情感分類器(提示學習模型),輸入的提示模板為“x It was [MASK]”, 可以替換x為輸入文字,通過語言生成器(Verbalizers)把詞彙對應到極性標籤(‘positive’或者‘negative’),從而獲得整個文字的情感類別。

 

圖1

現存的提示學習模型需要手工精心設計提示模板和語言生成器,以便將任務轉化為掩碼語言模型(MLM)和完形填空格式。這篇論文提出的PERFECT方法不需要任何手工構建工作,且可以去掉提示模板和語言生成器。

1.1問題的定義

 

論文作者進一步設定驗證集與訓練集的樣本數相同(因為更大的驗證集可能更有優勢),因此論文作者使用的訓練集有16個樣本,即N=16,同時使用的驗證集也有16個樣本,總共是32個樣本的少樣本學習資料集。

1.2 適配層(Adapters)

在具有超大規模引數的預訓練語言模型(PLMs)中,微調語言模型時可以通過加入一個小的特定任務層(稱為適配層Adapters),那麼在訓練語言模型時只需要訓練新加入的適配層和歸一化層,而語言模型中的其它引數保持不變。

例如在Transformer模型中,其中的每一層主要由一個注意力block和一個前饋block構成,而這兩個block後面都會接一個跳躍連線層;通常把適配層插在這些block之後且在跳躍連線層之前(如圖2所示),那麼在訓練時僅僅需要優化圖中綠色模組的引數。

 

圖2

1.3 基於提示的微調

標準的微調:標準的預訓練語言模型微調方法是,首先將一個特殊符號[CLS]加入到輸入x中,然後模型將其對映到隱藏層中的序列表示

 

 

這種標準微調的主要缺點在於預訓練和微調之間可能存在不一致,因為預訓練時已經使用一個掩碼語言模型進行了訓練(用於預測被掩蔽的tokens),而微調時也進行了同樣的訓練。

基於提示的微調:為了解決這種不一致,基於提示的微調把任務轉換為完型填空的形式。例如,圖1所示的情感分類任務中,輸入被轉換為下面的提示形式:

 

 

訓練的策略:設是下游任務的標籤,使用語言生成器(Verbalizers)可以將一個標籤對映到預訓練語言模型詞庫中的一個詞語。那麼,利用提示模板中的MASK,分類任務被轉換到預測一個掩碼的目標詞語,預測標籤y的概率為:

 

 

預測的策略:在預測階段,這種基於提示的微調模型需要在給定上下文環境中選擇使用哪一個Verbalizer,一般採取自迴歸的方式進行選擇。首先把掩碼token的數目從M修剪到每一個候選Verbalizer的token長度,並計算每一個掩碼token概率。

然後,用概率最大的Verbalizer中的token替代相應的掩碼token,再重新計算剩下的掩碼token概率。重複這種自迴歸解碼方式,直到所有要預測的掩碼token都被計算完畢。

這種預測策略速度很慢,因為模型中前向路徑傳遞的數目會隨著類別數目、Verbalizer的token數目的增加而增長。

總的看來,基於提示的微調方法的成功嚴重依賴於手工工程的patterns和verbalizers,而尋找合適的verbalizers和patters也是困難的。

此外,手工定製的verbalizers會帶來以下的效率方面的問題:

a)由於需要更新預訓練語言模型的embedding層,所以會引起大量記憶體超負荷;

b)由於需要很小的學習率(通常是10-5),這會大大減慢verbalizers的微調速度;

c)把verbalizers作為預訓練語言模型的一個token會影響輸入在微調時的表示學習;

d)verbalizers的token長度是變化的,這使得其向量化會變得複雜,也是提高微調效率的一個挑戰。為了解決上述困難和挑戰,論文作者提出了下面的無需verbalizer和patterns的少樣本學習微調方法(PERFECT)。

論文解讀上篇先到這裡,下篇將為大家繼續分享作者獨到的創新之處。