?原創作者|?康德
鏈接:
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前沿模型訓練營等干貨學習資源。