在現代自然語言處理(NLP)的應用中,使用預訓練的錶征進行遷移學習是很重要的一個方法。在深度學習開始被應用之後,遷移學習最早出現在使用預訓練的特征向量,以及對預訓練語言模型(pre-trained language model,PLM)進行微調(fine-tuning)。基於預訓練模型,adapter 給出了一個新的思路,即能否在模型中插入一些少量的參數,在下遊某個任務微調時只對這些參數進行訓練,而保持預訓練模型原有的參數不變。如果使用 adapter 可以讓我們達到和微調整個模型一樣的效果(或者更好),那就可以帶來很多好處:
參數效率更高:一個任務只需要少量參數,訓練更快,占用的內存更少,對數據集較小的任務更難過擬合,也更有利於模型的存儲和分發。
連續學習的遺忘問題:adapter 凍結了原有模型的參數,保證了原來的知識不被遺忘。
多任務學習:使用 adapter 也可以用比較少量的參數學習多個任務,和傳統的多任務學習相比,好處是不同任務之間影響較少,壞處是不同任務帶來的相互的監督可能會變少。
Adapter 最早應用在了計算機視覺的模型中,後來引入 NLP,近些年相關的工作越來越多。最近對 adapter 在 NLP 上的應用很感興趣,在此文中整理一些學習 adapter 時相關論文的筆記,其中的很多算法都在開源庫 AdapterHub 中有實現: