豐色 發自 凹非寺
量子位 | 公眾號 QbitAI
Prompt tuning ,作為NLP領域中的一個“新寵”,甚至曾被學者譽為NLP預訓練新範式。
那麼,它能否藉鑒到 CV領域 並産生同樣的成績呢?
現在,來自康奈爾大學和Meta AI等機構,通過Prompt來調整基於Transformer的視覺模型,結果發現:
完全可以!
比起全麵微調,Prompt性能提升顯著。無論模型的規模和訓練數據怎麼變,24種情況中有20種都完全勝齣。
與此同時,它還能大幅降低每項任務所需的存儲成本。
隻使用不到1%的模型參數
大傢一貫使用的 全麵微調 (full fine-tuning) ,需要為每個下遊任務存儲和部署單獨的主乾參數副本,成本太高,尤其是現在基於Transformer的模型越來越大,已經超過CNN架構。
所謂Prompt,最初指的是在輸入文本中預編語言指令,以便預培訓的語言模型後續可以直接理解各種下遊任務。
它曾讓GPT-3即使在少樣本或零樣本的情況下錶現齣很強的泛化能力。
最近一些成果則錶明,Prompt與完全微調的性能相當,參數存儲量還減少瞭1000倍。
NLP中的高超性能讓不少人開始在CV領域中探索Prompt的魔力,不過都隻局限於跨模態任務中文本編碼器的輸入。
在本文中,作者將他們所提齣的Visual Prompt Tuning方法, 簡稱為VPT 。這是 首次 有人將Prompt應用到視覺模型主乾 (backbone) ,並做齣成果。
具體來說,比起全麵微調,VPT受最新大型NLP模型調整方法的啓發,隻在輸入空間中 引入少量可特定某任務訓練的參數 (不到模型參數的1%) ,同時在訓練下遊任務期間 凍結 (freeze) 預訓練模型的主乾 。
在實操中,這些附加參數隻用預先加入到每個Transformer層的輸入序列中,並在微調期間與綫性head一起學習。
他們一共探索齣兩種變體:
VPT-Deep 變體為Transformer編碼器每層的輸入預先設置一組可學習的參數;
VPT-Shallow 變體則僅將提示參數插入第一層的輸入。
兩者在下遊任務的訓練過程中,隻有特定於任務的提示和綫性頭的參數會更新,而整個Transformer編碼器被凍結。
接下來,是騾子是馬?拉齣來溜溜~
20/24的優勝率
實驗涉及兩種在ImageNet-21k上預訓練好的主乾, 一個來自Vision Transformer,一個來自Swin Transformer 。
進行對比的 微調方法有三大種,7小種 ,包括:
(1)完全微調:更新所有主乾和分類頭 (classification head) 參數
(2)以分類頭為重點的微調,包括Linear、Partial-k和Mlp-k三種;
(3)以及在微調過程中更新一個主乾子集參數或嚮主乾添加新的可訓練參數的方法,分為Sidetune、Bias和Adapter三種。
(1)由5個基準細粒度視覺分類任務組成的FGVC;
(2)由19個不同視覺分類集閤組成的VTAB-1k,細分為使用標準相機拍攝的自然圖像任務 (Natural) 、用專用設備 (如衛星圖像) 捕獲的圖像任務 (Specialized) 以及需要幾何理解的任務 (Structured) ,比如物體計數。
測得每項任務上的 平均準確度 後,得齣的主要結果如下:
VPT-Deep在24個任務中有20個的錶現都優於全麵微調,同時使用的總模型參數顯著減少 (1.18× vs. 24.02×) ;
要知道,在NLP領域中Prompt再厲害,性能也不會超過全麵微調。這說明 Prompt很適用於視覺Transformer模型 。
和其他微調方法相比 (b、c組) ,VPT-Deep的性能則全部勝齣。
此外,選擇 不同主乾參數規模和模型規模 的ViT (ViT-B、ViT-L和ViT-H) 進行測試還發現,VPT方法不會受影響,依然基本保持性能領先。
而在Swin Transformer中,全麵微調法的平均準確度雖然更高,但也付齣瞭巨大的參數代價。
其他微調方法則全部不敵VPT。
作者介紹
共同一作為唐路明 ,也是康奈爾大學的一位計算機博士在讀學生,本科畢業於清華大學數學與物理專業。
他的主要研究方嚮為機器學習和計算機視覺的交叉領域。
論文地址:
https://arxiv.org/abs/2203.12119
— 完 —
「人工智能」、「智能汽車」 微信社群邀你加入!
歡迎關注人工智能、智能汽車的小夥伴們加入我們,與AI從業者交流、切磋,不錯過最新行業發展&技術進展。
ps.加好友請務必備注您的姓名-公司-職位哦~
點這裏 ???? 關注我,記得標星哦~
一鍵三連「分享」、「點贊」和「在看」
科技前沿進展日日相見~
責任編輯: