博客專欄

EEPW首頁 > 博客 > 訓(xùn)練開銷驟減,10%成本定制專屬類GPT-4多模態(tài)大模型(1)

訓(xùn)練開銷驟減,10%成本定制專屬類GPT-4多模態(tài)大模型(1)

發(fā)布人:機器之心 時間:2023-05-20 來源:工程師 發(fā)布文章

最近的多模態(tài)(對話)大模型將基于文本的 ChatGPT 的強大能力擴展到了多模態(tài)輸入,實現(xiàn)強大的多模態(tài)語義理解,比如 GPT-4、BLIP-2、Flamingo 等。但對于很多研究者來說,訓(xùn)練一個多模態(tài) GPT 代價非常昂貴。本文來自新加坡國立大學和清華大學的研究者提出了一個名為 VPGTrans 框架,以極低成本訓(xùn)練高性能多模態(tài)大模型。


圖片


  • 多模態(tài)對話模型 Demo:https://vpgtrans.github.io/

  • 論文:https://arxiv.org/pdf/2305.01278.pdf

  • 代碼:https://github.com/VPGTrans/VPGTrans


本工作亮點摘要:
1. 極低訓(xùn)練成本:通過我們提出的 VPGTrans 方法,可以快速 (少于 10% 訓(xùn)練時間) 將已有的多模態(tài)對話模型的視覺模塊遷移到新的語言模型,且達到類似或更優(yōu)效果。比如,相比于從頭訓(xùn)練視覺模塊,我們可以將 BLIP-2 FlanT5-XXL 的訓(xùn)練開銷從 19000 + 人民幣縮減到不到 1000 元:

圖片

圖 1:基于我們的 VPGTrans 方法的 BLIP-2 訓(xùn)練開銷縮減對比
2. 多模態(tài)大模型定制:通過我們的 VPGTrans 框架可以根據(jù)需求為各種新的大語言模型靈活添加視覺模塊。比如我們在 LLaMA-7B 和 Vicuna-7B 基礎(chǔ)上制作了 VL-LLaMA 和 VL-Vicuna。
3. 開源多模態(tài)對話模型:我們開源了 VL-Vicuna,可實現(xiàn)高質(zhì)量的多模態(tài)對話:

圖片

圖 2:VL-Vicuna 的交互實例
一、動機介紹
1.1 背景
2023 年是 AI 元年,以 ChatGPT 為代表的大語言模型 (LLM) 大火。LLM 除了在自然語言領(lǐng)域顯示出巨大的潛力之外,也開始逐漸輻射到其他相關(guān)領(lǐng)域。比如,LLM 在多模態(tài)理解領(lǐng)域掀起了一股從傳統(tǒng)預(yù)訓(xùn)練視覺語言模型 (VLM) 到基于大語言模型的視覺語言模型 (VL-LLM) 的變革。通過為 LLM 接入視覺模塊,VL-LLM 可以繼承已有 LLM 的知識,零樣本泛化能力,推理能力和規(guī)劃能力等。相關(guān)模型有 BLIP-2 [1],F(xiàn)lamingo [2],PALM-E 等。

圖片

圖 3:常用的 VL-LLM 架構(gòu)
現(xiàn)有的常用的 VL-LLM 基本采取圖 3 所示的架構(gòu):在一個基座 LLM 基礎(chǔ)上訓(xùn)練一個視覺 soft prompt 生成模塊 (Visual Prompt Generator, VPG),以及一個進行維度變換的線性層 (Projector)。在參數(shù)規(guī)模上,LLM 一般占主要部分 (比如 11B),VPG 占次要部分 (比如 1.2B),projector 最小 (4M)。在訓(xùn)練過程中,LLM 參數(shù)一般不會被更新,或者僅僅更新非常少量的參數(shù)??捎?xùn)練參數(shù)主要來自于 VPG 和 projector。
1.2 動機
實際上,即便基座 LLM 的參數(shù)凍結(jié)不訓(xùn),但由于 LLM 的大參數(shù)量,訓(xùn)練一個 VL-LLM 的關(guān)鍵開銷依然在于加載基座 LLM。因此訓(xùn)練一個 VL-LLM 依然無法避免極大的計算代價。比如,要得到 BLIP-2(基座 LLM 為 FlanT5-XXL)需要付出超過 600 個小時的 A100 訓(xùn)練時長。如果租用亞馬遜的 A100-40G 機器,大概需要將近 2 萬元人民幣的費用。既然從零訓(xùn)練一個 VPG 代價如此昂貴,那么我們開始思考能否把一個已有的 VPG 遷移到新的 LLM 上來節(jié)省開銷。

圖片

圖 4:VPG 遷移:跨 LLM 大小遷移和跨 LLM 類型遷移
如圖 4 所示,我們主要探索了兩種類型的 VPG 的遷移:
(1) 跨 LLM 大小遷移 (TaS): 比如從 OPT-2.7B 到 OPT-6.7B。(2) 跨 LLM 類型遷移 (TaT): 比如從 OPT 到 FlanT5。
其中 TaS 的意義在于:在 LLM 相關(guān)科研中,我們通常需要在小 LLM 上調(diào)參,再擴展到大 LLM。有了 TaS,我們可以在調(diào)參之后,把小 LLM 上已經(jīng)訓(xùn)好的 VPG 直接遷移到大 LLM 上。TaT 的意義在于:不同功能種類的 LLM 層出不窮,比如今天有了 LLaMA,明天又有了 Alpaca 和 Vicuna。TaT 可以讓我們利用已有的 VPG 快速為新語言模型添加視覺感知能力。
1.3 貢獻
(1) 提出高效的方法:我們首先通過一系列的探究實驗,探究了影響 VPG 遷移效率的關(guān)鍵因素。根據(jù)探索實驗發(fā)現(xiàn),我們提出了一個兩階段的高效遷移框架 VPGTrans。該框架可以大幅度縮減訓(xùn)練 VL-LLM 所需的計算開銷和需要的訓(xùn)練數(shù)據(jù)。比如,相比于從頭訓(xùn)練,我們通過 BLIP-2 OPT-2.7B 到 6.7B 的 VPG 遷移,可以僅用大約 10% 的數(shù)據(jù)和計算時間就達成各個數(shù)據(jù)集相似或更好的效果 (圖 1)。訓(xùn)練花銷從 17901 人民幣到 1673 元。
(2) 得到有趣的發(fā)現(xiàn):我們同時提供了 TaS 和 TaT 場景下一些有趣的發(fā)現(xiàn),并嘗試給出解釋: a) TaS 場景下,使用 VPGTrans 從小到大遷移不會影響最終模型效果。b) TaS 場景下,越小的語言模型上訓(xùn)練的 VPG,遷移到大模型時效率越高,最終效果越好。c) TaT 場景下,越小的模型之間遷移的 gap 越大。在我們驗證實驗中,OPT-350M 和 FlanT5-base 使用 VPGTrans 互相遷移幾乎和從頭訓(xùn)練一樣慢。
(3) 開源:我們使用 VPGTrans 得到了兩個新的 VL-LLMs: VL-LLaMA 和 VL-Vicuna,并開源在了社區(qū)上。其中 VL-Vicuna 實現(xiàn)了高質(zhì)量的多模態(tài)對話。歡迎小伙伴嘗試:https://vpgtrans.github.io/.
二、高效率的 VPG 遷移方案: VPGTrans
首先我們進行一系列的探索驗證實驗,分析如何最大化對于 VPG 的遷移效率。接著我們基于這些重要觀察提出一個解決方案。
2.1 探究實驗
我們選取 BLIP-2 架構(gòu)作為我們的基礎(chǔ)模型,預(yù)訓(xùn)練語料采用 COCO 和 SBU,總共 1.4M 圖文對。下游任務(wù)采用 COCO Caption,NoCaps,VQAv2,GQA 和 OK-VQA 的 zero-shot 設(shè)定進行評測 (對 caption 任務(wù)并非嚴格 zero-shot)。下面是我們的關(guān)鍵發(fā)現(xiàn):
(1) 直接繼承一個訓(xùn)練好的 VPG 可以加速收斂,但效果有限:我們發(fā)現(xiàn),直接遷移一個 LLM 上訓(xùn)練好的 VPG 到大 LLM 可以加速模型收斂,但加速效果有限,且收斂后模型效果相比于從頭訓(xùn)練 VPG 會掉點 (圖 5 的 VQAv2、GQA 藍線最高點均低于橘線)。我們猜測,這個掉點是由于隨機初始化的 projector 會在訓(xùn)練起始階段損傷 VPG 中已有的視覺感知能力。

圖片

圖 5:VPG inherit (藍線): 直接繼承訓(xùn)練好的 VPG。train from scratch (橘線):從頭訓(xùn)練 VPG。only linear (綠線):只訓(xùn)練 linear projector 不訓(xùn)練 VPG。
(2) 先 warm-up 訓(xùn)練 projector 可以防止掉點,且進一步加速收斂:于是,我們固定住 VPG 和 LLM,先 warm-up 訓(xùn)練 projector 3 個 epoch,再解凍 VPG 進行下一步訓(xùn)練。我們發(fā)現(xiàn),這樣不僅可以避免掉點情況,還能夠進一步加速 VPG 收斂 (圖 6)。但值得強調(diào)的是,由于訓(xùn)練的主要開銷在 LLM (參數(shù)巨多),僅僅訓(xùn)練 projector 的開銷不會比同時訓(xùn)練 VPG 和 projector 的開銷小太多。所以,我們開始探究加速 projector warm-up 的關(guān)鍵技術(shù)。

圖片

圖 6: 先 warm-up 訓(xùn)練 projector 可以防止掉點 + 加速收斂
(3) 詞向量轉(zhuǎn)化器初始化可以加速 projector warm-up:首先,VPG 是通過把圖像轉(zhuǎn)化為 LLM 可以理解的 soft prompt 來產(chǎn)生效果的。而 soft prompt 的使用方式和詞向量其實是非常相似的,都是直接輸入語言模型來提示模型產(chǎn)生對應(yīng)內(nèi)容。所以,我們使用詞向量來作為 soft prompt 的一個代理,訓(xùn)練了一個圖片到 圖片的詞向量轉(zhuǎn)化器 (一個線性層)。然后,我們將詞向量轉(zhuǎn)化器和 圖片上的 projector 融合作為圖片的 projector 的初始化。通過這個初始化,我們可以將 projector 的 warm-up 訓(xùn)練由 3 個 epoch 減為 2 個 epoch。
(4) projector 可以在超大學習率下快速收斂:我們進一步實驗發(fā)現(xiàn),projector 由于其參數(shù)量較少,可以使用 5 倍的正常學習率進行訓(xùn)練而不崩潰。通過 5 倍學習率的訓(xùn)練,projector warm-up 可以進一步被縮短到1個 epoch。
(5) 一個附加發(fā)現(xiàn):雖然 projector warm-up 很重要,但僅訓(xùn)練 projector 是不夠的。尤其在 caption 任務(wù)上面,僅僅訓(xùn)練 projector 的效果要比同時訓(xùn)練 VPG 的效果差一截 (圖 5 綠線在 COCO Caption 和 NoCaps 均遠低于藍線)。這也就意味著,僅僅訓(xùn)練 projector 會導(dǎo)致欠擬合,無法充分對齊到訓(xùn)練數(shù)據(jù)。
2.2 我們所提出的方法

圖片

圖 7:VPGTrans 框架: (1) 一階段:projector 的 warm-up (2) 二階段:整體微調(diào)
如圖 7 所示,我們的方法共分為兩個階段:
(1) 第一階段:我們首先使用詞向量轉(zhuǎn)化器和原有 projector 進行融合作為新 projector 的初始化。然后用 5 倍學習率訓(xùn)練新 projector 一個 epoch。(2) 第二階段:直接正常訓(xùn)練 VPG 和 projector。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉