摘要
Prompt微調已成為模型微調的新范式,并在自然語言預訓練甚至視覺預訓練中取得了成功。參數高效的Prompt微調方法通過優化soft embedding并保持預訓練模型凍結,在計算成本低和幾乎無性能損失方面展現出優勢。在本研究中,我們探索了Prompt微調在多模態預訓練模型中的遷移。具體來說,我們通過在每一層添加一串可學習的embedding,并在下游任務中僅優化這些可學習embedding,從而在一個統一的序列到序列預訓練模型上實現Prompt微調。針對一系列多模態理解與生成任務的實驗結果表明,我們的方法OFA-PT能夠在多模態生成與理解任務上取得與全參數微調相當的性能。此外,在與其他參數高效微調方法(例如Adapter、BitFit等)的對比中,也顯著優于統一多模態預訓練模型。同時,與全參數微調模型相比,Prompt微調模型在面對對抗攻擊時展現出更強的魯棒性。我們進一步發現,包括Prompt長度、Prompt深度和重參數化等實驗因素對模型性能有顯著影響,因此我們基于實證提出了Prompt微調設置的建議。代碼和模型檢查點可在:https://github.com/OFA-Sys/OFA
獲取。
1 引言
近年來,在自然語言處理(NLP)(Radford et al., 2018;Devlin et al., 2019;Yang et al., 2019;Liu et al., 2019;Raffel et al., 2020;Brown et al., 2020)和計算機視覺(Chen et al., 2020b,a,c;Chen and He, 2021;Bao et al., 2021;He et al., 2021b)領域,基于大模型和大數據的大規模預訓練取得了巨大成功。受BERT類模型(Devlin et al., 2019)成功的啟發,研究者發現預訓練可以顯著提升跨模態表示學習算法在下游任務中的性能(Chen et al., 2020d;Lu et al., 2019;Su et al., 2020;Tan and Bansal, 2019;Wang et al., 2021)。
沿著這一研究路線,統一的多模態預訓練模型逐漸受到廣泛關注。最近,一系列基于序列到序列學習框架的模型已統一了跨模態理解和生成任務,并取得了當前最優性能(Li et al., 2022;Wang et al., 2022a;Yu et al., 2022;Alayrac et al., 2022;Wang et al., 2022b;Chen et al., 2022)。此外,需要注意的是,統一多模態預訓練模型的規模正在迅速擴大,呈現出與大型語言模型(Raffel et al., 2020;Brown et al., 2020;Chowdhery et al., 2022)類似的發展趨勢。
盡管大規模預訓練模型在多個領域取得了巨大成功,但訓練此類模型需要大量計算成本。傳統的全參數微調雖然在提升性能方面有效,但在訓練效率方面存在不足,尤其當預訓練模型規模較大時尤為明顯。因此,在大規模基礎模型的應用中,迫切需要參數高效的遷移學習方法。在這一領域中最受歡迎的方法是Prompt微調(Liu et al., 2021a),其在自然語言處理(Li and Liang, 2021;Liu et al., 2021c;Lester et al., 2021;Liu et al., 2021b;He et al., 2021a;Gu et al., 2022)和計算機視覺(Jia et al., 2022;Du et al., 2022;Zhou et al., 2021, 2022)中均取得了成功。與全參數微調相比,Prompt微調僅需微調極少量參數(例如1%)。Prompt微調將大部分預訓練模型參數保持凍結,僅調整若干Prompt embedding和必要的輸出層。近期研究表明,Prompt微調可以幫助預訓練模型在不同下游任務中取得與全參數微調相當的性能,包括自然語言理解與生成、圖像分類等。然而,針對多模態預訓練模型,尤其是統一多模態預訓練模型的參數高效遷移方法研究仍較為稀缺。隨著統一多模態預訓練模型的規模不斷擴大,如何以更低成本對其進行微調,成為多模態預訓練領域的重要研究課題。
本研究填補了這一空白,率先探索統一多模態預訓練模型的Prompt微調。我們提出OFA-PT,這是一種基于最近開源的統一多模態預訓練模型OFA(Wang et al., 2022a)的Prompt微調實現。更具體地說,在下游遷移階段,我們在encoder和decoder的每一層插入一串可學習的embedding,并僅調整這些embedding的參數,保持預訓練模型的其他參數凍結不變。在其他設置方面,我們采用與全參數微調相同的流程,即將數據轉換為序列到序列學習的格式,并通過最大似然估計對模型進行優化。與全參數微調相比,Prompt微調所需調整的參數量(約占總量的1%)顯著減少,從而降低了計算成本(例如內存消耗)。
通過大量實驗證明,參數高效的Prompt微調能夠使預訓練模型在4個多模態下游任務(涵蓋理解與生成)上取得與全參數微調相當的性能。為了分析全參數微調與Prompt微調的差異,我們基于以下假設:Prompt微調在凍結大多數預訓練模型參數的前提下應具備更強的模型魯棒性。我們在對抗攻擊場景下對多種微調方法進行了實驗,觀察到的現象驗證了該假設。進一步地,我們深入探討了Prompt微調的實現細節,并研究了實驗因素(例如Prompt長度、Prompt深度和重參數化)是否顯著影響下游性能。我們發現,一般來說,較長的Prompt長度(超過20個token)是更優的選擇,而實驗表明長度為64在大多數情況下效果最佳,因為更長的Prompt序列不僅會增加計算成本,還可能導致性能下降。此外,我們還表明,引入額外可訓練參數的重參數化方式并不能顯著提升下游任務的性能。
2 方法
本節介紹我們所提出方法的細節,提供了在統一的多模態預訓練模型上進行prompt tuning的具體實現方法。整體框架如圖1所示。
2.1 基礎知識
我們選擇統一的sequence-to-sequence框架,因為它統一了理解任務和生成任務,并且我們特別在最近開源的state-of-the-art模型OFA*(Wang et al., 2022a)上實現了prompt tuning。簡而言之,該模型是基于Transformer(Vaswani et al., 2017)構建的encoder-decoder框架。
encoder和decoder均由多個Transformer層組成。具體而言,encoder層包括一個multi-head self attention和一個逐點Feed-Forward Network(FFN)。為了建立encoder與decoder之間的連接,Transformer的decoder層相比encoder層額外包含一個cross-attention模塊。cross-attention本質上是multi-head attention,其中key K K K 和 value V V V 是由encoder輸出狀態變換得到的,而不是輸入本身。這樣的結構可以處理提供sequence-to-sequence格式輸入的任務。
在本研究中,我們關注于用于多模態預訓練模型遷移階段的prompt tuning。我們將預訓練階段的prompt learning留作未來研究。
2.2 多模態預訓練模型的提示調優
接下來,我們介紹在sequence-to-sequence多模態預訓練模型上實現prompt tuning的具體細節。需要注意的是,我們的方法可以擴展到其他生成式多模態預訓練模型,例如BERT-like模型。
Basic Implementation
我們重點實現的是prefix tuning(Li and Liang, 2021;Liu et al., 2021b),因為其在自然語言理解和生成任務中均表現出色。與其他prompt tuning方法(如P-Tuning(Liu et al., 2021c)、Prompt Tuning(Lester et al., 2021)、PPT(Gu et al., 2022))相比,將soft prompt embedding添加到每一層,在相對較小的模型上也展現出更強的訓練穩定性和更優的下游任務性能。
具體來說,對于encoder和decoder,我們在每一層中添加可調的prompt embedding。形式上,我們將預訓練模型表示為函數 M ( ? ) M(\cdot) M(?),prompt embedding的生成函數表示為 ${ \mathcal { G } } ( \cdot ) $。其公式如下所示:
y = M ( G ( L , l ) , x ) ( 1 ) \begin{array} { r } { y = \mathcal { M } ( \mathcal { G } ( L , l ) , x ) } \end{array}\quad(1) y=M(G(L,l),x)?(1)
其中 x x x 表示多模態輸入, L L L 表示層數, l l l 表示prompt長度,該長度應由超參數預定義。在每一層中,我們將soft prompt embedding p ( i ) p^{(i)} p(i) 前綴到輸入的hidden states h ( i ) h^{(i)} h(i) 上。需要注意的是,我們僅在Transformer層前綴prompt embedding。在最簡單的實現中,prompt生成器 G G G 是一個稀疏的embedding矩陣,其形狀為 R L × l × h R^{L \times l \times h} RL×l×h,我們在第 i i i 層和第 j j j 個索引位置選擇相應的embedding作為prompt embedding。以下我們還將提供一些更復雜實現的示意圖,并在本研究中對這些方法進行對比。
在下游微調過程中,我們僅對每一層新添加的prompt embedding進行調優,而保持大型預訓練模型的參數不變。因此,雖然只需更新極少量的參數(例如1%),但計算成本遠低于全量微調的開銷。
重參數化(Reparameterization)
除了在每一層添加稀疏embedding矩陣的最簡單實現外,更復雜的實現方式是添加一個編碼器(例如一個MLP層)對prompt embedding進行重參數化。在本研究中我們也考察了重參數化在該背景下的影響。
Prompt長度
與以往研究(Li and Liang, 2021;Liu et al., 2021b)類似,我們發現prompt embedding的長度對不同下游任務的性能表現有顯著影響。在本研究中,我們進一步探討了該因素對不同下游任務模型性能的影響。
Prompt深度
為了探究prompt embedding插入位置的影響,我們研究了prompt深度問題。具體而言,我們將其簡化為三種設置:僅向encoder添加prompt embedding、僅向decoder添加prompt embedding,以及同時向兩者添加。
3 實驗
為了驗證prompt tuning在多模態預訓練模型上的有效性,我們在5個跨模態任務上進行了實驗。具體而言,我們在跨模態生成任務上進行了實驗,包括指代表達理解(referring expression comprehension)和圖像描述生成(image captioning),以及跨模態理解任務,包括視覺蘊含(visual entailment)、圖像描述和視覺問答(VQA)。我們在實驗中采用了常用的base規模和large規模模型,參數規模分別約為180M和470M。更多實驗設置的細節可參見附錄A.1。
3.1 數據集與評估指標
指代表達理解(Referring Expression Comprehension)
我們在指代表達理解的三個子任務上進行了實驗,分別是 RefCOCO、RefCOCO+ 和 RefCOCOg(Yu et al., 2016;Mao et al., 2016)。該任務要求模型在給定圖像上,根據文本查詢生成一個正確的邊界框。我們使用 Acc@0.5 作為評估指標。
圖像描述(Image Captioning)
我們在 Microsoft COCO 圖像描述數據集(Chen et al., 2015)上評估方法的圖像描述能力。在該任務中,模型應生成能夠反映圖像信息的描述性文本。我們采用 BLEU@4(Papineni et al., 2002)、METEOR(Lavie and Agarwal, 2007)、CIDEr(Vedantam et al., 2015)和 SPICE(Anderson et al., 2016)作為評估指標。
視覺蘊含(Visual Entailment)
為評估蘊含關系的表現,我們在 SNLI-VE(Xie et al., 2019)數據集上進行了實驗。給定一張圖像和一段文本,模型應判斷它們之間的關系是蘊含(entailment)、矛盾(contradiction)還是中性(neutrality)。我們遵循 Wang et al.(2022a)中的設置,將給定前提(premise)加入輸入中。評估指標為準確率(accuracy)。
視覺問答(VQA)
我們在 VQA 2.0(Antol et al., 2015;Goyal et al., 2017)數據集上進行了實驗。該任務要求模型根據圖像及其相關問題生成正確的答案。我們遵循 Wang et al.(2022a)的設置,采用全候選評估方法,即模型需要為3,129個最常見的答案中的每一個生成概率。評估指標為準確率(accuracy)。
3.2 實驗結果
下文提供了詳細的實驗結果,包括 prompt tuning 與 finetuning 的對比,以及與其他參數高效調優方法的對比。
與 Finetuning 的對比
我們在表1和表2中展示了4個任務的實驗結果。總體而言,對于base規模模型,OFA-PT 的表現顯著低于原始finetuned的OFA;但對于large規模模型,OFA-PT 能夠實現相當的性能。具體而言,在指代表達理解任務中,對于base模型,prompt tuning 在 RefCOCO、RefCOCO+ 和 RefCOCOg 三個子任務上平均落后finetuning達5.64,差距顯著;但在large模型上,prompt tuning 僅略微低于finetuning,差距為0.59。在圖像描述任務中,對于base模型,OFA-PT 落后于finetuned OFA 約4.0,但在large模型中,兩者性能差距僅為0.8。
在視覺蘊含任務中,兩種方法之間的差距較小,僅為0.17。在VQA任務中,base模型下,prompt tuning 與finetuning之間的性能差距為3.63;而在large模型的 test-std 集上,該差距為2.17。與其他任務不同,即使在large模型上,該任務中的性能差距仍較為顯著。我們推測,這是由于 prompt tuning 對超參數較為敏感,因此該任務仍需要更好的超參數設置搜索策略。
溫馨提示:
閱讀全文請訪問"AI深語解構" OFA-PT:統一多模態預訓練模型的Prompt微調