大模型微調(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ù)上效果也有差異,到底選哪個(gè)方法好呢?
- parameter-efficient language model tuning (PELT) 方法能在參數(shù)量比f(wàn)ine-tuning小很多的情況下,perform追上fine-tuning的水平,但是不同的PELT方法在同一個(gè)任務(wù)上表現(xiàn)差異可能都非常大,這讓針對(duì)特定任務(wù)選擇合適的方法非常繁瑣。
1.2 Methods
- 提出了PELT方法,將不同的PELT方法作為子模塊,并學(xué)習(xí)通過(guò)門控機(jī)械激活最適合當(dāng)前數(shù)據(jù)或任務(wù)的方法。
說(shuō)明:
- 例如通過(guò)Gp參數(shù)控制Prefix-tuning方法的開(kāi)關(guān),GL控制LoRA方法的開(kāi)關(guān),GA控制Adapter方法的開(kāi)關(guān)。
- 圖中藍(lán)顏色的參數(shù)為可學(xué)習(xí)的參數(shù)。
1.3 Conclusion
- 本文方法始終優(yōu)于傳統(tǒng)的fine-tuning方法以及它在不同子模塊下的表現(xiàn),并且通常超過(guò)了在每個(gè)任務(wù)上單獨(dú)使用的每個(gè)子模塊的最佳性能的上限 。
- 融合多種PELT方法可能會(huì)有利于預(yù)訓(xùn)練語(yǔ)言模型PLM的有效性和魯棒性
二、詳細(xì)內(nèi)容
1 GLUE實(shí)驗(yàn)結(jié)果
- UniPELT(AP)和UniPELT(APL)區(qū)別
A: Adapter
P: P-tuning
L: LoRA
- 結(jié)論
在樣本K=100,500,1000的實(shí)驗(yàn)上,UniPELT集成了多個(gè)微調(diào)方法的效果更好
2 Adapter方法分析:bottleneck大小對(duì)該方法效果的影響
- bootleneck size越大,可訓(xùn)練的參數(shù)越多,效果也就更好,size=48的時(shí)候,可能學(xué)的還不太充分
3 LoRA方法對(duì)參數(shù)的敏感性
針對(duì)兩個(gè)任務(wù)SST和MRPC,和不同的參數(shù)a來(lái)做實(shí)驗(yàn),結(jié)果如下:
- 沒(méi)有一個(gè)有效的a在任何task上都是效果比較好的,說(shuō)明了本文方法讓他自己來(lái)學(xué)習(xí)這些參數(shù)的重要性
4 其他方法分析:
- Prefix-tuning
增加訓(xùn)練參數(shù)效果不一定好
- BitFit和LoRA
LoRA訓(xùn)練參數(shù)比較小的情況下,效果好像也還可以
5 UniPELT和原始微調(diào)方法的上限對(duì)比
- 6個(gè)實(shí)驗(yàn)有5個(gè)都超過(guò)了單獨(dú)方法的上限
6 全量數(shù)據(jù)的訓(xùn)練效果
- 使用全量的數(shù)據(jù)PELT還是取得了最好的結(jié)果
- 不使用門,簡(jiǎn)單的融合,效果也沒(méi)有本文PELT效果好,說(shuō)明了本文方法的有用性
7 訓(xùn)練時(shí)間和推理時(shí)間分析
- 訓(xùn)練速度UniPELT比之前微調(diào)的方法多一些,但是也還好,推理時(shí)間BitFit增加的最少,本文方法時(shí)間增加27%
- 訓(xùn)練參數(shù)量LoRA,BitFit,Prefix-tuning都比較小,UniPELT多了一些
三、Adaptor、Prefix-tuning、LoRA背景知識(shí)
參考原文:從統(tǒng)一視角看各類高效finetune方法:??https://mp.weixin.qq.com/s/j17G5RTWQJjYUhNOQBzzJA??
1 Adaptor方法介紹
Adaptor核心是在原Bert中增加參數(shù)量更小的子網(wǎng)絡(luò),finetune時(shí)固定其他參數(shù)不變,只更新這個(gè)子網(wǎng)絡(luò)的參數(shù)。Adaptor是最早的一類高效finetune方法的代表,在Parameter-Efficient Transfer Learning for NLP(ICML 2019)這篇文章中被提出。在原來(lái)的Bert模型的每層中間加入兩個(gè)adapter。Adapter通過(guò)全連接對(duì)原輸入進(jìn)行降維進(jìn)一步縮小參數(shù)量,經(jīng)過(guò)內(nèi)部的NN后再將維度還原,形成一種bottleneck的結(jié)構(gòu)。在finetune過(guò)程中,原預(yù)訓(xùn)練Bert模型的參數(shù)freeze住不更新,只更新adapter的參數(shù),大大減少了finetune階段需要更新和保存的參數(shù)量。
2 Prefix-tuning方法介紹
Prefix-tuning的核心是為每個(gè)下游任務(wù)增加一個(gè)prefix embedding,只finetune這些embedding,其他參數(shù)freeze。Prefix-tuning對(duì)應(yīng)的論文是Prefix-Tuning: Optimizing Continuous Prompts for Generation(2021),這類方法的思想來(lái)源于prefix prompt,prefix embedding相當(dāng)于一個(gè)上下文信息,對(duì)模型最終產(chǎn)出的結(jié)果造成影響,進(jìn)而只finetune這個(gè)embedding實(shí)現(xiàn)下游任務(wù)的遷移。
3 LoRA方法介紹
LoRA的核心是通過(guò)引入?yún)?shù)量遠(yuǎn)小于原模型的可分解的兩小矩陣建立一個(gè)旁路,通過(guò)finetune這個(gè)旁路來(lái)影響預(yù)訓(xùn)練模型。LoRA于LoRA: Low-rank adaptation of large language models(2021)論文中被提出,利用低秩矩陣替代原來(lái)全量參數(shù)的訓(xùn)練,提升finetune效率。
本文轉(zhuǎn)載自 ??NLP PaperWeekly??,作者: 胡翔
