大模型微調(diào)哪家好?小孩子才做選擇,成年人當(dāng)然是全都要
一、概述
title:UNIPELT: A Unified Framework for Parameter-Efficient Language Model Tuning
論文地址:https://arxiv.org/abs/2110.07577
代碼:https://github.com/morningmoni/UniPELT
1.1 Motivation
- 大模型不同的微調(diào)方法(PELT)例如LoRA,prefix-tuning,Adapter方法效果不同,在不同的任務(wù)上效果也有差異,到底選哪個方法好呢?
- parameter-efficient language model tuning (PELT) 方法能在參數(shù)量比fine-tuning小很多的情況下,perform追上fine-tuning的水平,但是不同的PELT方法在同一個任務(wù)上表現(xiàn)差異可能都非常大,這讓針對特定任務(wù)選擇合適的方法非常繁瑣。
1.2 Methods
- 提出了PELT方法,將不同的PELT方法作為子模塊,并學(xué)習(xí)通過門控機械激活最適合當(dāng)前數(shù)據(jù)或任務(wù)的方法。

說明:
- 例如通過Gp參數(shù)控制Prefix-tuning方法的開關(guān),GL控制LoRA方法的開關(guān),GA控制Adapter方法的開關(guān)。
- 圖中藍顏色的參數(shù)為可學(xué)習(xí)的參數(shù)。
1.3 Conclusion
- 本文方法始終優(yōu)于傳統(tǒng)的fine-tuning方法以及它在不同子模塊下的表現(xiàn),并且通常超過了在每個任務(wù)上單獨使用的每個子模塊的最佳性能的上限 。
- 融合多種PELT方法可能會有利于預(yù)訓(xùn)練語言模型PLM的有效性和魯棒性
二、詳細內(nèi)容
1 GLUE實驗結(jié)果

- UniPELT(AP)和UniPELT(APL)區(qū)別
A: Adapter
P: P-tuning
L: LoRA
- 結(jié)論
在樣本K=100,500,1000的實驗上,UniPELT集成了多個微調(diào)方法的效果更好
2 Adapter方法分析:bottleneck大小對該方法效果的影響

- bootleneck size越大,可訓(xùn)練的參數(shù)越多,效果也就更好,size=48的時候,可能學(xué)的還不太充分
3 LoRA方法對參數(shù)的敏感性

針對兩個任務(wù)SST和MRPC,和不同的參數(shù)a來做實驗,結(jié)果如下:
- 沒有一個有效的a在任何task上都是效果比較好的,說明了本文方法讓他自己來學(xué)習(xí)這些參數(shù)的重要性
4 其他方法分析:
- Prefix-tuning
增加訓(xùn)練參數(shù)效果不一定好
- BitFit和LoRA
LoRA訓(xùn)練參數(shù)比較小的情況下,效果好像也還可以
5 UniPELT和原始微調(diào)方法的上限對比

- 6個實驗有5個都超過了單獨方法的上限
6 全量數(shù)據(jù)的訓(xùn)練效果

- 使用全量的數(shù)據(jù)PELT還是取得了最好的結(jié)果
- 不使用門,簡單的融合,效果也沒有本文PELT效果好,說明了本文方法的有用性
7 訓(xùn)練時間和推理時間分析

- 訓(xùn)練速度UniPELT比之前微調(diào)的方法多一些,但是也還好,推理時間BitFit增加的最少,本文方法時間增加27%
- 訓(xùn)練參數(shù)量LoRA,BitFit,Prefix-tuning都比較小,UniPELT多了一些
三、Adaptor、Prefix-tuning、LoRA背景知識
參考原文:從統(tǒng)一視角看各類高效finetune方法:??https://mp.weixin.qq.com/s/j17G5RTWQJjYUhNOQBzzJA??
1 Adaptor方法介紹
Adaptor核心是在原Bert中增加參數(shù)量更小的子網(wǎng)絡(luò),finetune時固定其他參數(shù)不變,只更新這個子網(wǎng)絡(luò)的參數(shù)。Adaptor是最早的一類高效finetune方法的代表,在Parameter-Efficient Transfer Learning for NLP(ICML 2019)這篇文章中被提出。在原來的Bert模型的每層中間加入兩個adapter。Adapter通過全連接對原輸入進行降維進一步縮小參數(shù)量,經(jīng)過內(nèi)部的NN后再將維度還原,形成一種bottleneck的結(jié)構(gòu)。在finetune過程中,原預(yù)訓(xùn)練Bert模型的參數(shù)freeze住不更新,只更新adapter的參數(shù),大大減少了finetune階段需要更新和保存的參數(shù)量。

2 Prefix-tuning方法介紹
Prefix-tuning的核心是為每個下游任務(wù)增加一個prefix embedding,只finetune這些embedding,其他參數(shù)freeze。Prefix-tuning對應(yīng)的論文是Prefix-Tuning: Optimizing Continuous Prompts for Generation(2021),這類方法的思想來源于prefix prompt,prefix embedding相當(dāng)于一個上下文信息,對模型最終產(chǎn)出的結(jié)果造成影響,進而只finetune這個embedding實現(xiàn)下游任務(wù)的遷移。

3 LoRA方法介紹
LoRA的核心是通過引入?yún)?shù)量遠小于原模型的可分解的兩小矩陣建立一個旁路,通過finetune這個旁路來影響預(yù)訓(xùn)練模型。LoRA于LoRA: Low-rank adaptation of large language models(2021)論文中被提出,利用低秩矩陣替代原來全量參數(shù)的訓(xùn)練,提升finetune效率。

本文轉(zhuǎn)載自 ??NLP PaperWeekly??,作者: 胡翔

















