眾所周知,當(dāng)前LLM是人工智能界的香餑餑,眾多廠商和研究者都希望能夠在LLM上進(jìn)行應(yīng)用推廣和研究,這就難免需要對LLM進(jìn)行下游任務(wù)的適配,最理想的情況當(dāng)然是可以用私有數(shù)據(jù),進(jìn)行全網(wǎng)絡(luò)端到端的微調(diào)。但是LLM現(xiàn)在參數(shù)量巨大,大部分都大于6B,有些甚至達(dá)到了100B以上,即便是端到端微調(diào)都需要大量的硬件資源。PEFT(Parameter-Efficient FineTune)旨在最高效地引入?yún)?shù),探索合適的訓(xùn)練方式,使得LLM適配下游任務(wù)的代價(jià)最小化,而本文提到的Prompt Tuning [1] 就是這樣一個(gè)工作。
在介紹這個(gè)工作之前,我們得知道什么是prompt,關(guān)于prompt的內(nèi)容之前在博文[2]中曾經(jīng)介紹過,簡單來說,就是用某種固定的模板或者范式,嘗試去讓LLM去適配下游任務(wù),從在prompt中是否提供例子的角度上看,又可以分為one-shot prompt, few-shot prompt, zero-shot prompt等。但是,在文章[3]中提到過,不同的prompt模板對性能的影響巨大,如Fig 1.所示,我們也把這種prompt稱之為硬提示詞(hard-prompt)。既然有『硬』的,那么就肯定有『軟』的prompt,soft-prompt指的是模型可以通過學(xué)習(xí)的方式去學(xué)習(xí)出prompt模板,經(jīng)典工作包括P-Tuning [3], prefix prompt [4], soft prompt [5],以及本文將會(huì)介紹到的prompt tuning [1]。
Fig 1. 不同的prompt模板對性能影響巨大
如Fig 2.所示,在prompt tuning中,在原有hard prompt模板之前拼接了若干個(gè)可學(xué)習(xí)的token,我們用表示soft prompt部分,其中
為拼接的token數(shù)量,用
表示hard prompt部分。那么,完整的prompt可表示為
,模型的目標(biāo)既變?yōu)榱?span>
。此時(shí),LLM的參數(shù)和embedding層的參數(shù)都是設(shè)置為不可學(xué)習(xí)的 (?),整個(gè)網(wǎng)絡(luò)只有soft prompt層是可學(xué)習(xí)的(????),這意味著微調(diào)模型需要的內(nèi)存和計(jì)算代價(jià)都大大減小了 。
這是由于將LLM的參數(shù)設(shè)置成為了不可學(xué)習(xí),因此在反向過程中很多參數(shù)并不需要在顯存中維護(hù)。假設(shè)模型的參數(shù)量為X,那么常用的Adam優(yōu)化器的兩個(gè)動(dòng)量就不需要維護(hù)了(減少2X),激活值通過重計(jì)算技術(shù),已經(jīng)縮減了絕大部分,并且梯度只需要傳遞到soft prompt部分,而不需要進(jìn)行參數(shù)更新,因此梯度也可以不維護(hù)(減少X),因此所需顯存減少了3X,并且減少了對參數(shù)更新的計(jì)算量。
Fig 2. prompt tuning在原有hard-prompt模板之前,拼接了若干個(gè)可學(xué)習(xí)的token,并將其視為soft-prompt。
只需要設(shè)置不同的soft prompt就可以適配不同的下游任務(wù)了,如Fig 3. 所示,在模型參數(shù)量足夠大()的時(shí)候,采用prompt tuning的效果足以比肩全參數(shù)微調(diào),而且所需參數(shù)量只有后者的萬分之一,是名副其實(shí)的參數(shù)高效(Parameter-Efficient)方法。而不管在什么尺度的模型下,prompt tuning的結(jié)果都要遠(yuǎn)遠(yuǎn)優(yōu)于hard prompt design的結(jié)果,人工設(shè)計(jì)的prompt模板確實(shí)很難與模型自己學(xué)習(xí)出來的競爭。
Fig 3. (a)在10B以上的模型中,采用prompt tuning的結(jié)果可以和全模型端到端微調(diào)的結(jié)果持平,(b)而prompt tuning增加的參數(shù)量只有全模型端到端微調(diào)的萬分之一。
此外,作者在論文中還進(jìn)行了更多實(shí)驗(yàn)去驗(yàn)證prompt tuning的有效性和其他特性。第一個(gè)就是soft prompt所需要的長度,如Fig 4. (a)所示,在10B模型下,20-100個(gè)soft token是一個(gè)比較合適的數(shù)量,20個(gè)token能提供最大的性價(jià)比。如何初始化這些新增的soft token embedding也是一個(gè)指的思考的問題,作者嘗試了隨機(jī)均勻初始化,從詞表的embedding中采樣,以及對于分類任務(wù)而言,用label的類別embedding進(jìn)行初始化,如Fig 4. (b) 所示,隨機(jī)初始化在模型參數(shù)量不夠的時(shí)候(< 10B)表現(xiàn),不如從詞表采樣和label初始化的方法,但當(dāng)模型參數(shù)量足夠大時(shí),隨機(jī)初始化的效果能夠達(dá)到最好,優(yōu)于從詞表中采樣的方法。考慮到本文采用的LLM是T5,而T5是一個(gè)encoder-decoder的結(jié)構(gòu),在設(shè)計(jì)預(yù)訓(xùn)練任務(wù)的時(shí)候采用的是span corruption + 哨兵token
的形式,如:
Origin: Thank you for inviting me to your party last week
Corrupted: Thank you for [X] me to your party [Y] week
Target: [X] inviting [Y] last [Z]
這樣設(shè)計(jì)預(yù)訓(xùn)練任務(wù)能實(shí)現(xiàn)encoder-decoder架構(gòu)的T5高效預(yù)訓(xùn)練,但是這意味著模型沒有見過自然語言的輸入(因?yàn)檩斎肟偸怯猩诒鴗oken,比如[X]/[Y]等),為了實(shí)現(xiàn)T5到LM的適配,在本文中作者嘗試對T5進(jìn)行了LM Adaptation
的后訓(xùn)練:繼續(xù)T5的少量預(yù)訓(xùn)練,給定自然文本作為輸入,嘗試預(yù)測自然語言的輸出,而不是帶有哨兵token的文本。此外,作者還嘗試了所謂的Span Corruption + 哨兵
的方法,指的是在原T5模型基礎(chǔ)上,在應(yīng)用到下游任務(wù)預(yù)測時(shí)候,都給拼接上哨兵token,以減少下游任務(wù)和預(yù)訓(xùn)練任務(wù)的gap。如Fig 4. (C)所示,無論采用多大尺度的模型,采用了LM Adaptation能帶來持續(xù)的增益,而Span Corruption或者Span Corruption+Sentinel的方法,則只在10B模型的尺度上能有比較好的效果(然而仍然無法超越前者)。那么LM Adaptation需要進(jìn)行多少step的訓(xùn)練合適呢?在Fig 4. (d)中,作者進(jìn)行了若干嘗試,結(jié)果表明越多step將會(huì)帶來越多的收益,最終作者選定在100k step。
Fig 4. 對prompt tuning不同設(shè)置的探索實(shí)驗(yàn)。
采用prompt tuning還有一個(gè)好處就是可以讓多個(gè)下游任務(wù)復(fù)用同一個(gè)LLM模型。在模型微調(diào)中,對于每個(gè)下游任務(wù)都需要維護(hù)一套獨(dú)立的模型,如Fig 5. 左圖所示,而在prompt tuning中,則只需要維護(hù)一套靜態(tài)的LLM模型,不同任務(wù)通過不同的soft prompt進(jìn)行區(qū)分即可激發(fā)LLM的不同下游任務(wù)能力,如Fig 5. 右圖所示,因?yàn)榭梢怨?jié)省很多資源,這對于部署來說很友好。
Fig 5. 采用prompt tuning的方式,可以很方便的用同一個(gè)模型覆蓋多個(gè)下游任務(wù),實(shí)現(xiàn)資源節(jié)省。
Reference
[1]. Lester, Brian, Rami Al-Rfou, and Noah Constant. "The power of scale for parameter-efficient prompt tuning." arXiv preprint arXiv:2104.08691 (2021). aka Prompt Tuning.
[2]. https://blog.csdn.net/LoseInVain/article/details/130500648, 《增強(qiáng)型語言模型——走向通用智能的道路?!?》
[3]. Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, and Jie Tang. 2021. Gpt understands, too. arXiv:2103.10385. aka p-tuning
[4]. Li, Xiang Lisa, and Percy Liang. "Prefix-tuning: Optimizing continuous prompts for generation." arXiv preprint arXiv:2101.00190 (2021). aka prefix tuning
[5]. Qin, Guanghui, and Jason Eisner. "Learning how to ask: Querying LMs with mixtures of soft prompts." arXiv preprint arXiv:2104.06599 (2021). aka soft prompt