NeurlPS 2022 | 全新大模型參數(shù)高效微調(diào)方法SSF:僅需訓(xùn)練0.3M的參數(shù),效果卓越
- 論文地址:https://arxiv.org/abs/2210.08823
- 代碼地址:https://github.com/dongzelian/SSF
大模型訓(xùn)練調(diào)參:開銷和性能不可兼得?
隨著數(shù)據(jù)驅(qū)動的方法在深度學(xué)習(xí)界的普及,數(shù)據(jù)集規(guī)模和模型規(guī)模都有了巨大的爆發(fā)。業(yè)界傾向于探索大模型,然后在下游任務(wù)中采用這些預(yù)訓(xùn)練的模型,以獲得更好的性能和更快的收斂。
然而,目前的程序嚴(yán)重依賴于全面微調(diào),即更新模型的所有參數(shù)。這不可避免地導(dǎo)致模型對小的目標(biāo)數(shù)據(jù)集過度擬合,繼而在微調(diào)后不能用于其他任務(wù)。因此,設(shè)備需要為每個任務(wù)保存一套專門的模型參數(shù),造成了巨大的存儲空間,特別是對于如今的大模型(例如, ViT-G/14, 1.8G, CoAtNet, 2.4G)來說,訓(xùn)練開銷很大。
此前,業(yè)界對上述問題的解決方案是:僅僅微調(diào)頭部層,即只對最后一個頭部層進(jìn)行微調(diào)。然而,與完全微調(diào)相比,這種做法通常會產(chǎn)生較差的性能。
以視覺任務(wù)上實現(xiàn)的方法 VPT(視覺提示微調(diào))[1]為例,VPT 提出插入可學(xué)習(xí)的提示作為輸入,并將其附加到原始圖像 token 中。這些提示將通過執(zhí)行自我注意力(self attention)與圖像 token 交互,并在微調(diào)過程中進(jìn)行更新。通過這種方式,與只微調(diào)頭部層相比,在下游任務(wù)中可以實現(xiàn)顯著的性能提升。然而,與完全微調(diào)和微調(diào)頭部層相比,VPT 方法額外引入了兩個問題:
i) VPT 為不同的任務(wù)調(diào)整提示的數(shù)量,這引入了一個與任務(wù)相關(guān)的可學(xué)習(xí)參數(shù)空間。微調(diào)的性能對每個任務(wù)的提示數(shù)量很敏感,需要仔細(xì)設(shè)計。太少或太多的提示可能會降低微調(diào)的準(zhǔn)確性或增加計算的冗余度(例如,在 Clevr/count 上有 200 個提示,但是 Flowers102 上有 1 個提示);
ii) VPT 以及其他基于適配器(adapter)的方法 [2],與原始預(yù)訓(xùn)練模型相比,在推理階段引入了額外的參數(shù)和計算成本。例如,VPT 引入了額外的輸入,基于適配器的方法在預(yù)訓(xùn)練的模型中插入額外的模塊。這些方法改變了預(yù)訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)或網(wǎng)絡(luò)的輸入,可能導(dǎo)致頻繁的結(jié)構(gòu)修改和沉重的工作量,特別是對于那些已經(jīng)部署在邊緣設(shè)備(如移動電話)中的模型。
符合奧卡姆剃刀原則的新方法
受一些特征調(diào)制方法的啟發(fā),針對上述難題,新加坡國立大學(xué)和字節(jié)跳動的研究者提出了一種全新的參數(shù)高效的微調(diào)方法,名為 SSF。采用 SSF 方法,只需要對預(yù)訓(xùn)練的模型提取的深層特征進(jìn)行縮放和移位,就可以進(jìn)行微調(diào)。
由于上游數(shù)據(jù)集和下游數(shù)據(jù)集的數(shù)據(jù)分布不同,很難將在上游數(shù)據(jù)集訓(xùn)練的模型權(quán)重應(yīng)用于下游數(shù)據(jù)集。例如,保持骨干權(quán)重的微調(diào)頭部層策略會導(dǎo)致性能下降。為了緩解上述問題,SSF 引入了縮放參數(shù)和移位參數(shù),這些參數(shù)可以被認(rèn)為是方差和均值,用于調(diào)節(jié)用上游數(shù)據(jù)集上的預(yù)訓(xùn)練模型提取的下游數(shù)據(jù)集的特征,從而使被調(diào)節(jié)的特征落在一個鑒別性的空間。這些縮放參數(shù)和移位參數(shù)不依賴于任何輸入,對于不同的任務(wù)有一個統(tǒng)一的可學(xué)習(xí)參數(shù)空間。
SSF 的另一個優(yōu)點是,它只引入了線性變換,這是因為研究者僅僅對提取的特征進(jìn)行了縮放和移位。這些線性變換可以在推理階段通過模型重新參數(shù)化(model re-parameterization) [3] 進(jìn)一步合并到原始的預(yù)訓(xùn)練權(quán)重中,從而避免了下游任務(wù)的額外參數(shù)和 FLOPs。對于部署在邊緣設(shè)備中的模型,只需要上傳微調(diào)后的更新權(quán)重,而不需要改變網(wǎng)絡(luò)結(jié)構(gòu)。
表一顯示了 SSF 和其他微調(diào)方法之間的具體特征比較。SSF 簡單、有效、高效,也符合奧卡姆剃刀原則。研究者探索了這個新的基線,發(fā)現(xiàn)它出人意料地超過了所有其他參數(shù)高效的微調(diào)方法。
圖一:SSF 方法的特點以及它在 FGVC 和 VTAB 任務(wù)上的性能。
通過在 26 個分類數(shù)據(jù)集和 3 個魯棒性數(shù)據(jù)集上評估 SSF 方法,結(jié)果顯示:與其他參數(shù)高效的微調(diào)方法相比,SSF 獲得了最先進(jìn)的性能。
與完全微調(diào)相比,SSF 方法在 FGVC 和 VTAB-1k 上獲得了 2.46%(90.72% {vs. 88.54%)和 11.48%(73.10% vs. 65.57%)的 Top-1 精度性能改進(jìn),但只需要大約 0.3M 的可訓(xùn)參數(shù)。此外,SSF 在推理階段不需要額外的參數(shù),可以即插即用,很容易擴展到各種模型系列(CNN、Transformer 以及 MLP 網(wǎng)絡(luò))。
具體的實現(xiàn)思路
與此前方法不同的是,研究者引入了縮放和移位因子來調(diào)節(jié)由預(yù)先訓(xùn)練好的模型提取的深層特征,并進(jìn)行線性轉(zhuǎn)換以匹配目標(biāo)數(shù)據(jù)集的分布。
這一方法涵蓋了五個主要屬性:
i) SSF 實現(xiàn)了與完全微調(diào)策略相同的性能;ii) 所有的下游任務(wù)都可以獨立地輸入到模型中,而不依賴任何其他任務(wù);iii) 模型只需要微調(diào)很少的參數(shù);iv)與 VPT 不同,VPT 為每個任務(wù)調(diào)整提示的數(shù)量,而 SSF 中微調(diào)的參數(shù)集不會隨著任務(wù)的變化而變化,這使得之后可以通過增加更多的任務(wù)進(jìn)行多任務(wù)學(xué)習(xí)或連續(xù)學(xué)習(xí)來進(jìn)一步微調(diào)參數(shù)是可行的(它提供了更多的靈活性,與 ii)并不矛盾);v)由于線性變換,SSF 避免了在推理階段引入額外的參數(shù)和計算成本,使這一方法實現(xiàn)零開銷。
圖二:SSF 的總體框架。
SSF 的設(shè)計:SSF 執(zhí)行線性轉(zhuǎn)換來調(diào)節(jié)特征來進(jìn)行參數(shù)高效的微調(diào),如圖二所示。在圖二(a)中,給定一個在上游任務(wù)中預(yù)訓(xùn)練的模型,研究者在網(wǎng)絡(luò)的每個操作(OP)之后插入 SSF-ADA (把提出的方法稱為 SSF,把具體的模塊稱為 SSF-ADA)來調(diào)節(jié)特征??偣灿?K 個操作,這些操作可能包含多頭自注意力(MSA)、MLP 和層歸一化化(LN)等等。在微調(diào)過程中,這些操作中的預(yù)訓(xùn)練權(quán)重保持凍結(jié),SSF-ADA 參數(shù)保持更新。具體的 SSF-ADA 結(jié)構(gòu)如圖二 (c) 所示,前一個操作輸出的特征用一個縮放因子進(jìn)行點乘,然后用一個移位因子求和,這與輸入無關(guān),如下所示
重參數(shù)化:由于 SSF-ADA 是一個完全的線性變換,可以通過吸收縮放和移位項來重新參數(shù)化它,如下所示
其中 w 和 b 分別為權(quán)重和偏置項。* 代表卷積層中的 "卷積" 操作或 MLP 層中的 "乘法" 操作。t 是前一個線性層的輸入。由于 w 和 b 被凍結(jié),而和在微調(diào)中被更新,在推理階段,和可以通過上述公式合并到原始參數(shù)空間(w 和 b)。從這個角度看,SSF-ADA 使得在不增加任何額外參數(shù)和計算成本的情況下執(zhí)行下游任務(wù)成為可能,如圖二(b)所示。
實驗結(jié)果
1. SSF 在圖像分類數(shù)據(jù)集上的性能
研究者分別在 FGVC、VTAB、CIFAR-100 和 ImageNet-1K 進(jìn)行了實驗,如表一、二、三。SSF 一致性地超過了其他高效微調(diào)方法(Adapter、Bias 和 VPT)。在表三中,SSF 在 Swin Transformer、ConvNext 和 AS-MLP 等各種模型上的結(jié)果也始終優(yōu)于其他參數(shù)高效微調(diào)方法,這也驗證了 SSF 在多種模型上的有效性。更多的分析見論文。
表一:在 FGVC 數(shù)據(jù)集上使用 ViT-B/16 預(yù)訓(xùn)練模型的實驗結(jié)果
表二:在 VTAB 數(shù)據(jù)集上使用 ViT-B/16 預(yù)訓(xùn)練模型的實驗結(jié)果
表三:在 CIFAR-100 和 ImageNet-1K 數(shù)據(jù)集上使用 ViT-B/16, Swin-B, ConvNext-B 和 AS-MLP-B 等預(yù)訓(xùn)練模型的實驗結(jié)果
2. 不同的設(shè)計對結(jié)果的影響
研究者還進(jìn)行實驗來分析不同設(shè)計對微調(diào)的影響。所有的實驗都是在 CIFAR-100 上用預(yù)訓(xùn)練的 ViT-B/16 模型實現(xiàn)的,結(jié)果見表四。
表四:不同設(shè)計的影響。(a) 層數(shù)的影響 (b) 不同插入位置的影響 (c) 初始化的影響 (d) 不同組件的影響
3. 可視化分析
為了進(jìn)一步研究為什么 SSF 能取得更優(yōu)異的性能,研究者還將完全微調(diào)和微調(diào)頭部層、完全微調(diào)和 VPT-Deep、完全微調(diào)和 SSF 之間的特征相似性可視化,如圖三所示。在最后一層,SSF 與完全微調(diào)的特征最相似,準(zhǔn)確度也最接近。這表明 SSF 能很好地提取下游任務(wù)中的圖像特征。
圖三:完全微調(diào)和微調(diào)頭部層、完全微調(diào)和 VPT-Deep、完全微調(diào)和 SSF 在 ViT-B/16 的不同層中的特征相似性的可視化。
結(jié)論
在本文中,研究者專注于參數(shù)高效的微調(diào),并提出了一種 SSF 方法來縮放和移位預(yù)先訓(xùn)練好的模型所提取的特征。SSF 在微調(diào)過程中引入的縮放和移位參數(shù)可以通過推理階段的重參數(shù)化合并到原來的預(yù)訓(xùn)練模型權(quán)重中,避免了額外的參數(shù)和 FLOPs。在總共 26 個圖像分類數(shù)據(jù)集和 3 個魯棒性和分布外數(shù)據(jù)集以不同的模型(CNN、Transformers 和 MLPs)進(jìn)行實驗,SSF 出人意料地優(yōu)于其他參數(shù)高效的微調(diào)方法,它建立了一個新的基線。
引用:[1] Jia et al., ?Visual Prompt Tuning, ECCV2022.[2] Houlsby et al., Parameter-efficient transfer learning for nlp, ICML2019.[3] Ding et al., Repvgg: Making vgg-style convnets great again, CVPR2021.
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。