©原創作者 | 康德
連結:
https://arxiv.org/abs/2110.06274
Github:
https://github.com/microsoft/LiST
本文提出一種在少樣本學習情況下對大型預訓練語言模型(PLMs)進行有效微調的方法-LiST。LiST比最近採用提示微調的方法有了顯著的改進,主要使用了兩個關鍵技術。
第一個是使用自訓練來利用大量未標記的資料進行提示微調,以顯著提高在少樣本學習情況下的模型效能。本文將自訓練與元學習結合起來,重新加權有噪聲的偽提示標籤。然而,傳統的自訓練方法需要對所有模型引數進行重複更新,開銷較大。
因此,本文使用第二種技術進行輕量級微調,其中引入少量特定任務的介面卡引數,這些引數在自訓練期間進行微調,同時保持PLM編碼器的凍結狀態。這樣就可以使多個下游任務共用同一套PLM編碼器引數,從而大大減少模型的佔用空間。
結合上述技術,LiST不僅提高了目標任務中少樣本學習的模型效能,還減少了模型記憶體佔用。本文對六個NLU任務進行了全面的研究,驗證LiST的有效性。
結果表明,LiST效能比經典微調方法提高了35%;在每個任務不超過30個標記示例的情況下進行微調,比提示調整方法提高了6%,可訓練引數的數量減少了96%。
01 Introduction
大型預訓練語言模型(PLMs)已經在一些自然語言理解任務中取得了較好的效能。儘管這些大型語言模型取得了顯著的成功,但它們面臨著兩個重大挑戰。
第一個是PLMs需要大量的帶標籤資料進行訓練,以獲得最優結果。雖然GPT-3 等模型獲得了令人印象深刻的少樣本學習效能,但與完全監督的SOTA模型相比,它們有顯著的效能差距。
例如,在SuperGLUE任務中,GPT-3的效能比完全調參的DeBERTa 差20個百分點。這對許多現實世界的任務提出了重大挑戰,因為在這些任務中,很難獲得大的標籤資料。
第二個是大量的可調引數。就可訓練引數而言,PLMs的規模一直在穩步增長,範圍從數百萬到數十億個引數。這大大增加了微調大型PLMs所有引數的計算成本,以及整體模型佔用空間的儲存成本,其中每個任務都需要定製大型模型引數的副本。
為了解決上述挑戰,考慮在現實世界中,對PLMs進行微調需要滿足以下兩個標準。
Few-shot: 假設每個任務域中的任務標籤數量非常有限。
Light-weight: 對於每個新任務,微調應該有少量的可調引數,以降低總體儲存成本和模型佔用空間。
本文提出了兩個關鍵技術用來提高少樣本學習的能力以及高效的微調策略:
(a) 通過提示和未標記的資料進行自我訓練。
第一種方法是利用來自目標域的大量未標記資料進行自訓練,以提高在少樣本學習下的模型適應性。研究給定提示以及少量的標註樣本,迭代的優化一對教師-學生模型,可以提高自訓練的效能。
由於教師模型在少樣本學習的過程中會產生較多的噪聲標籤,因此需要通過元學習來為噪聲樣本重新賦權。
(b) 輕量級adapter-tuning。
傳統的自訓練非常昂貴,因為需要迭代地更新所有的模型引數。因此,在PLM中引入了少量的任務特定的介面卡引數,這些引數用少量標籤資料更新,同時保持大型PLM編碼器的固定。
通過實驗證明,帶有自訓練的輕量級調優效能可以匹配所有模型引數都被調優的設定。這可以有效地利用自訓練,提高微調過程的引數效率,並降低微調模型的儲存成本,因為在推理過程中,多個微調模型可以共享相同的PLM作為骨幹。
本文在六個自然語言理解任務中進行了大量的實驗,結果表明,LiST比傳統的和最近的提示調優方法分別提高了35%和6%,每個下游任務只給出30個標記示例的情況下,可訓練引數的數量減少了96%,證明了LiST的有效性。
圖1顯示各個方法的比較結果。
圖1 LiST利用對未標記資料的提示微調來提高標籤效率,以及利用介面卡減少可調引數。上圖顯示RoBERTa-large
作為主幹網路,以MNLI任務作為比較,紅色虛線表示RoBERTa-large在完全監督下的表現(400k個訓練標籤)。下圖顯示每個方法的可調引數。
02 Background
03 Methodology
採用一個PLM作為學生和教師的共享編碼器來進行自訓練。共享的PLM編碼器引數在訓練的時候是凍結的。在教師和學生中引入可調介面卡引數,這些引數在自訓練過程中會進行迭代調優。
整個流程如圖2所示,第一步通過少量的標註樣本提示調優教師介面卡;
第二步通過教師模型為
資料集
標註偽標籤;
教師在少樣本學習中會產生噪音偽標籤,因此第三步採用meta-learning來重新分配偽標籤樣本的權重;
第四步用重新引數化的資料來訓練學生介面卡;
由於用偽標籤訓練的介面卡非常不穩定,因此引入知識蒸餾預熱,第五步將訓練好的學生介面卡作為新的教師介面卡。
重複上面步驟6次。
在整個訓練過程中,保持共享的學生和教師編碼器引數不變,只更新相應的介面卡引數。
3.1 輕量級提示介面卡調優
為了微調少量引數,使得PLMs適應下游任務。介面卡最近被提出,作為輕量級調優的一種方法。實驗證明微調介面卡的方法能夠達到全監督的微調方法效能。
本文是第一個研究介面卡在少樣本提示微調中作用的文章。該論文研究了在少樣本學習下介面卡的不同設計和放置選擇,並研究了在完全監督和完全可調引數空間下的效能差距。
介面卡微調策略在原始的PLMs中引入新的引數,
提示微調更新PLMs所有引數
,提示介面卡微調僅僅更新介面卡的引數以及PLM語言模型的頭部,而保持原始網路其他引數不變。
LiST中的介面卡由兩個全連線層組成,其中一個前饋神經網路層將輸入對映到低維空間d,另一個前饋神經網路層將低維特徵對映到原來的維度。
然而,這些新插入的引數可能會導致發散,從而使得在少樣本學習下效能下降20%,為了解決這個問題,採用了一種跳躍連線設計,其中介面卡用帶有零均值小高斯噪聲初始化。
介面卡放在不同的位置也會對效能有影響,本文主要研究了將介面卡放在嵌入層、中間層、輸出層、以及注意力模組,如圖3所示。
圖3 幾種不同的介面卡位置選擇
3.2 重新加權噪聲提示標籤
在自訓練中,學生模型在遷移集上訓練來模仿教師的預測。重新加權機制利用梯度作為代理來估計有噪聲的偽標籤的權重。
但是,由於隨機初始化和偽標籤中的噪聲,在訓練的早期,介面卡引數的梯度並不穩定。介面卡調優通常需要更大的學習速度,這進一步加劇了不穩定性問題。
元重新加權機制利用梯度作為代理來估計偽標籤的權重。但是,由於隨機初始化和偽標籤中的噪聲,在訓練的早期,介面卡引數的梯度並不穩定。介面卡調優通常需要更大的學習速度,這進一步加劇了不穩定性問題。
因此,為了穩定介面卡的調優,提出了一個通過知識蒸餾的warmup訓練階段。
首先通過知識蒸餾損失
調優介面卡引數,
然後通過重新加權更新繼續自訓練。
因為重新加權過程需要保留驗證集,在知識蒸餾過程中,我們不使用標註資料,而只在非標籤資料上使用教師模型和學生模型之間的一致性損失,如下所示:
3.3 LITE自訓練:總結
1、通過利用來自目標域的未標記資料,自訓練有助於少樣本學習模型有效適應目標任務。
2、帶有提示的自訓練通過彌合預訓練和微調目標之間的差距來提高模型效能。
3、介面卡通過微調少量的模型引數,同時保持PLM編碼器的固定,從而降低總體儲存成本和模型佔用空間。
4、將上述策略與一種新穎的微調方法相結合,LiST在少樣本學習中能有效利用標籤資料,以及有效的微調引數。
04 Experiments
資料集:在六個資料集上進行實驗,如下表所示。
表1 資料集摘要和任務描述。
表2 以RoBERTa作為編碼器,不同模型調優策略在不同任務上的效能比較。UST, MetaST, PromptST
和 iPET 使用非標籤資料進行半監督學習,而Classic FN和Prompt FN使用標籤資料。黑體顯示最好的效能。
圖4 使用不同大小的語言模型編碼器,在MNLI和RTE上使用LiST進行經典調優(記作“C”)和提示調優(記作“P”)的效能比較。
圖4比較不同的調優方法在不同數量的訓練資料和不同大小的編碼器的上的效能比較。
可以看到,與較小的模型相比,大型模型的資料效率更高。然而,在實踐中使用大型的完全可調模型是昂貴的。
本文剩下內容還討論了adapter的最佳插入位置、與其他輕量級引數高效模型調優策略的比較、介面卡訓練的穩定性等內容,有興趣的小夥伴可以看看。
05 Conclusions
本文開發了一種新的方法LiST,用於在少樣本學習下對大型語言模型進行輕量級調優。LiST使用自訓練從目標域的大量未標記資料中學習。
為了降低儲存和訓練成本,LiST只對少量介面卡引數進行調整,使用較少標註樣本,同時保持大型編碼器不變。
雖然介面卡可以降低儲存成本,但LiST並不能降低PLM主幹的推理延遲。未來的工作是考慮結合模型壓縮技術結合介面卡來減少FLOPS和延遲。
本文是一篇多種技術疊加類的文章,使用了教師-學生模型、提示調優、介面卡等技術,工作量比較大,收錄於主流頂會應該沒什麼問題。
私信我領取目標檢測與R-CNN/資料分析的應用/電商資料分析/資料分析在醫療領域的應用/NLP學員專案展示/中文NLP的介紹與實際應用/NLP系列直播課/NLP前沿模型訓練營等乾貨學習資源。