大型語言模型LLM(Large Language Model)具有很強的通用知識理解以及較強的邏輯推理能力,但其只能處理文本數(shù)據(jù)。雖然已經(jīng)發(fā)布的GPT4具備圖片理解能力,但目前還未開放多模態(tài)輸入接口并且不會透露任何模型上技術(shù)細節(jié)。因此,現(xiàn)階段,如何利用LLM做一些多模態(tài)任務(wù)還是有一定的研究價值的。
本文整理了近兩年來基于LLM做vision-lanuage任務(wù)的一些工作,并將其劃分為4個類別:
- 凍住LLM,訓(xùn)練視覺編碼器等額外結(jié)構(gòu)以適配LLM,例如mPLUG-Owl,LLaVA,Mini-GPT4,F(xiàn)rozen,BLIP2,F(xiàn)lamingo,PaLM-E^[1]^
- 將視覺轉(zhuǎn)化為文本,作為LLM的輸入,例如PICA(2022),PromptCap(2022) ^[2]^ ,ScienceQA(2022)^[3]^
- 利用視覺模態(tài)影響LLM的解碼,例如ZeroCap ^[4]^ ,MAGIC
- 利用LLM作為理解中樞調(diào)用多模態(tài)模型,例如VisualChatGPT(2023), MM-REACT(2023)
接下來每個類別會挑選代表性的工作進行簡單介紹:
訓(xùn)練視覺編碼器等額外結(jié)構(gòu)以適配LLM
這部分工作是目前關(guān)注度最高的工作,因為它具有潛力來 以遠低于多模態(tài)通用模型訓(xùn)練的代價將LLM拓展為多模態(tài)模型 。
隨著GPT4的火熱,近期涌現(xiàn)了大量的工作,如LLaVA, Mini-GPT4和mPLUG-Owl。這三個工作的主要區(qū)別如下圖所示,總體而言,模型結(jié)構(gòu)和訓(xùn)練策略方面大同小異,主要體現(xiàn)在 LLaVA和MiniGPT4都凍住基礎(chǔ)視覺編碼器,mPLUG-Owl將其放開 ,得到了更好的視覺文本跨模態(tài)理解效果;在實驗方面 mPLUG-Owl首次構(gòu)建并開源視覺相關(guān)的指令理解測試集OwlEval ,通過人工評測對比了已有的模型,包括BLIP2、LLaVA、MiniGPT4以及系統(tǒng)類工作MM-REACT。
mPLUG-Owl vs MiniGPT4 vs LLaVA
mPLUG-Owl
mPLUG-Owl: Modularization Empowers Large Language Models with Multimodality
mPLUG-Owl是阿里巴巴達摩院 mPLUG系列的最新工作,繼續(xù)延續(xù)mPLUG系列的模塊化訓(xùn)練思想 ,將LLM遷移為一個多模態(tài)大模型。此外,Owl 第一次針對視覺相關(guān)的指令評測提出一個全面的測試集OwlEval ,通過人工評測對比了已有工作,包括LLaVA和MIniGPT4。該評測集以及人工打分的結(jié)果都進行了開源,助力后續(xù)多模態(tài)開放式回答的公平對比。
模型結(jié)構(gòu) :采用CLIP ViT-L/14作為"視覺基礎(chǔ)模塊",采用LLaMA初始化的結(jié)構(gòu)作為文本解碼器,采用類似Flamingo的Perceiver Resampler結(jié)構(gòu)對視覺特征進行重組(名為"視覺摘要模塊"),如圖。
mPLUG-Owl模型結(jié)構(gòu)
模型訓(xùn)練
- 第一階段: 主要目的也是先學(xué)習(xí)視覺和語言模態(tài)間的對齊。不同于前兩個工作,Owl 提出凍住視覺基礎(chǔ)模塊會限制模型關(guān)聯(lián)視覺知識和文本知識的能力 。因此Owl在第一階段只凍住LLM的參數(shù),采用LAION-400M,COYO-700M,CC以及MSCOCO 訓(xùn)練視覺基礎(chǔ)模塊和視覺摘要模塊 。
- 第二階段: 延續(xù)mPLUG和mPLUG-2中不同模態(tài)混合訓(xùn)練對彼此有收益的發(fā)現(xiàn),Owl在第二階段的指令微調(diào)訓(xùn)練中也同時采用了純文本的指令數(shù)據(jù)(102k from Alpaca+90k from Vicuna+50k from Baize)和多模態(tài)的指令數(shù)據(jù)(150k from LLaVA)。作者通過詳細的消融實驗驗證了引入純文本指令微調(diào)在指令理解等方面帶來的收益。第二階段中 視覺基礎(chǔ)模塊、視覺摘要模塊和原始LLM的參數(shù)都被凍住 ,參考LoRA,只 在LLM引入少量參數(shù)的adapter結(jié)構(gòu)用于指令微調(diào) 。
實驗分析
除了訓(xùn)練策略,mPLUG-Owl另一個重要的貢獻在于通過構(gòu)建 OwlEval評測集 ,對比了目前將LLM用于多模態(tài)指令回答的SOTA模型的效果。和NLP領(lǐng)域一樣,在指令理解場景中,模型的回答由于開放性很難進行評估。
- SOTA對比 :本文初次嘗試構(gòu)建了一個基于50張圖片(21張來自MiniGPT-4, 13張來自MM-REACT, 9張來自BLIP-2, 3來自GPT-4以及4張自收集)的82個視覺相關(guān)的指令回答評測集OwlEval。由于目前并沒有合適的自動化指標(biāo),本文參考Self-Intruct對模型的回復(fù)進行人工評測,打分規(guī)則為:A="正確且令人滿意";B="有一些不完美,但可以接受";C="理解了指令但是回復(fù)存在明顯錯誤";D="完全不相關(guān)或不正確的回復(fù)"。實驗證明Owl在視覺相關(guān)的指令回復(fù)任務(wù)上優(yōu)于已有的OpenFlamingo、BLIP2、LLaVA、MiniGPT4以及集成了Microsoft 多個API的MM-REACT。作者對這些人工評測的打分同樣進行了開源以方便其他研究人員檢驗人工評測的客觀性。
- 多維度能力對比 :多模態(tài)指令回復(fù)任務(wù)中牽扯到多種能力,例如指令理解、視覺理解、圖片上文字理解以及推理等。為了細粒度地探究模型在不同能力上的水平,本文進一步定義了多模態(tài)場景中的6種主要的能力,并對OwlEval每個測試指令人工標(biāo)注了相關(guān)的能力要求以及模型的回復(fù)中體現(xiàn)了哪些能力。在該部分實驗,作者既進行了Owl的消融實驗,驗證了訓(xùn)練策略和多模態(tài)指令微調(diào)數(shù)據(jù)的有效性,也和上一個實驗中表現(xiàn)最佳的baseline——MiniGPT4進行了對比,結(jié)果顯示Owl在各個能力方面都優(yōu)于MiniGPT4。
LLaVA
Visual instruction tuning
自然語言處理領(lǐng)域的instruction tuning可以幫助LLM理解多樣化的指令并生成比較詳細的回答。LLaVA首次嘗試構(gòu)建圖文相關(guān)的instruction tuning數(shù)據(jù)集來將LLM拓展到多模態(tài)領(lǐng)域。具體來說,基于MSCOCO數(shù)據(jù)集,每張圖有5個較簡短的ground truth描述和object bbox(包括類別和位置)序列,將這些作為text-only GPT4的輸入,通過prompt的形式讓GPT4生成3種類型的文本:1)關(guān)于圖像中對象的對話;2)針對圖片的詳細描述;3)和圖片相關(guān)的復(fù)雜的推理過程。注意,這三種類型都是GPT4在不看到圖片的情況下根據(jù)輸入的文本生成的,為了讓GPT4理解這些意圖,作者額外人工標(biāo)注了一些樣例用于in-context learning。
模型結(jié)構(gòu) :采用CLIP的ViT-L/14作為視覺編碼器,采用LLaMA作為文本解碼器,通過一個簡單的線性映射層將視覺編碼器的輸出映射到文本解碼器的詞嵌入空間,如圖。
LLaVA模型結(jié)構(gòu)
模型訓(xùn)練1/ 第一階段:跨模態(tài)對齊預(yù)訓(xùn)練,從CC3M中通過限制caption中名詞詞組的最小頻率過濾出595k圖文數(shù)據(jù),凍住視覺編碼器和文本解碼器, 只訓(xùn)練線性映射層 ;2. 第二階段:指令微調(diào),一版針對多模態(tài)聊天機器人場景,采用自己構(gòu)建的158k多模態(tài)指令數(shù)據(jù)集進行微調(diào);另一版針對Science QA數(shù)據(jù)集進行微調(diào)。 微調(diào)階段,線性層和文本解碼器(LLaMA)都會進行優(yōu)化 。
實驗分析
- 消融實驗 : 在30個MSCOCO val的圖片上,每張圖片設(shè)計3個問題(對話、詳細描述、推理),參考 Vicuna[8],用GPT4對LLaVA和text-only GPT4的回復(fù)進行對比打分,報告相對text-only GPT4的相對值。
- SOTA對比 : 在Science QA上微調(diào)的版本實現(xiàn)了該評測集上的SOTA效果。
Mini-GPT4
Minigpt-4: Enhancing vision-language under- standing with advanced large language models
Mini-GPT4和LLaVA類似,也發(fā)現(xiàn)了多模態(tài)指令數(shù)據(jù)對于模型在多模態(tài)開放式場景中表現(xiàn)的重要性。
模型結(jié)構(gòu):采用BLIP2的ViT和Q-Former作為視覺編碼器,采用LLaMA經(jīng)過自然語言指令微調(diào)后的版本Vicuna作為文本解碼器,也通過一個線性映射層將視覺特征映射到文本表示空間,如圖:
MiniGPT4模型結(jié)構(gòu)
模型訓(xùn)練
- 第一階段:目標(biāo)通過大量圖文對數(shù)據(jù)學(xué)習(xí)視覺和語言的關(guān)系以及知識,采用CC+SBU+LAION數(shù)據(jù)集,凍住視覺編碼器和文本解碼器,只訓(xùn)練線性映射層;
- 第二階段:作者發(fā)現(xiàn) 只有第一階段的預(yù)訓(xùn)練并不能讓模型生成流暢且豐富的符合用戶需求的文本 ,為了緩解這個問題, 本文也額外利用ChatGPT構(gòu)建一個多模態(tài)微調(diào)數(shù)據(jù)集 。具體來說,1)其首先用階段1的模型對5k個CC的圖片進行描述,如果長度小于80,通過prompt讓模型繼續(xù)描述,將多步生成的結(jié)果合并為一個描述;2)通過ChatGPT對于構(gòu)建的長描述進行改寫,移除重復(fù)等問題;3)人工驗證以及優(yōu)化描述質(zhì)量。最后得到3.5k圖文對,用于第二階段的微調(diào)。 第二階段同樣只訓(xùn)練線性映射層 。
DeepMind于2021年發(fā)表的Frozen,2022年的Flamingo以及Saleforce 2023年的BLIP2也都是這條路線,如圖所示。
Frozen
Multimodal Few-Shot Learning with Frozen Language Models.
Frozen訓(xùn)練時將圖片編碼成2個vision token,作為LLM的前綴,目標(biāo)為生成后續(xù)文本,采用Conceptual Caption作為訓(xùn)練語料。Frozen通過few-shot learning/in-context learning做下游VQA以及image classification的效果還沒有很強,但是已經(jīng)能觀察到一些多模態(tài)in-context learning的能力。
Flamingo
Flamingo: a Visual Language Model for Few-Shot Learning
Flamingo為了解決視覺feature map大小可能不一致(尤其對于多幀的視頻)的問題,用Perceiver Resampler (類似DETR的解碼器)生成固定長度的特征序列(64個token),并且在LLM的每一層之前額外增加了一層對視覺特征進行注意力計算的cross-attention layer,以實現(xiàn)更強的視覺相關(guān)性生成。Flamingo的訓(xùn)練參數(shù)遠高于Frozen,因此采用了大量的數(shù)據(jù):1)MultiModal MassiveWeb(M3W) dataset:從43million的網(wǎng)頁上收集的圖文混合數(shù)據(jù),轉(zhuǎn)化為圖文交叉排列的序列(根據(jù)網(wǎng)頁上圖片相對位置,決定在轉(zhuǎn)化為序列后,token 在文本token系列中的位置);2)ALIGN (alt-text & image Pairs): 1.8 million圖文對;3)LTIP (LongText & Image Pairs):312 million圖文對;4)VTP (Video & Text Pairs) :27 million視頻文本對(平均一個視頻22s,幀采樣率為1FPS)。類似LLM,F(xiàn)lamingo的訓(xùn)練目標(biāo)也為文本生成,但其對于不同的數(shù)據(jù)集賦予不同的權(quán)重,上面四部分權(quán)重分別為1.0、0.2、0.2、0.03,可見圖文交叉排列的M3W數(shù)據(jù)集的訓(xùn)練重要性是最高的,作者也強調(diào)這類數(shù)據(jù)是具備多模態(tài)in-context learning能力的重要因素。Flamingo在多個任務(wù)上實現(xiàn)了很不錯的zero-shot以及few-shot的表現(xiàn)。
BLIP2
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP2采用了類似于Flamingo的視覺編碼結(jié)構(gòu),但是采用了更復(fù)雜的訓(xùn)練策略。其包含兩階段訓(xùn)練,第一階段主要想讓視覺編碼器學(xué)會提取最關(guān)鍵的視覺信息,訓(xùn)練任務(wù)包括image-Text Contrastive Learning, Image-grounded Text Generation以及Image-Text Matching;第二階段則主要是將視覺編碼結(jié)構(gòu)的輸出適配LLM,訓(xùn)練任務(wù)也是language modeling。BLIP2的訓(xùn)練數(shù)據(jù)包括MSCOCO,Visual Genome,CC15M,SBU,115M來自于LAION400M的圖片以及BLIP在web images上生成的描述。BLIP2實現(xiàn)了很強的zero-shot capitoning以及VQA的能力,但是作者提到未觀察到其in-context learning的能力,即輸入樣例并不能提升它的性能。作者分析是因為訓(xùn)練數(shù)據(jù)里不存在Flamingo使用的圖文交錯排布的數(shù)據(jù)。不過Frozen也是沒有用這類數(shù)據(jù),但是也觀察到了一定的in-context learning能力。因此多模態(tài)的in-context learning能力可能和訓(xùn)練數(shù)據(jù)、訓(xùn)練任務(wù)以及位置編碼方法等都存在相關(guān)性。
將視覺轉(zhuǎn)化為文本,作為LLM的輸入
PICA
An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
以PICA為例,它的目標(biāo)是充分利用LLM中的海量知識來做Knowledge-based QA。給定一張圖和問題,以往的工作主要從外部來源,例如維基百科等來檢索出相關(guān)的背景知識以輔助答案的生成。但PICA嘗試將圖片用文本的形式描述出來后,直接和問題拼在一起作為LLM的輸入,讓LLM通過in-context learning的方式直接生成回答,如圖所示。
PICA
In-context learning的效果比較依賴example/demonstration的質(zhì)量,為此PICA的作者利用CLIP挑選了和當(dāng)前測試樣例在問題和圖片上最接近的16個訓(xùn)練樣例作為examples。
利用視覺模態(tài)影響LLM的解碼
MAGIC
Language Models Can See: Plugging Visual Controls in Text Generation
以MAGIC為例,它的目標(biāo)是讓LLM做image captioning的任務(wù),它的核心思路是生成每一個詞時,提高視覺相關(guān)的詞的生成概率,公式如圖所示。
MAGIC解碼公式
該公式主要由三部分組成:
- LLM預(yù)測詞的概率
- 退化懲罰(橙色)
- 視覺相關(guān)性(紅色)
退化懲罰主要是希望生成的詞能帶來新的信息量。視覺相關(guān)性部分為基于CLIP計算了所有候選詞和圖片的相關(guān)性,取softmax之后的概率作為預(yù)測概率。
利用LLM作為理解中樞調(diào)用多模態(tài)模型
Visual ChatGPT
Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
以微軟Visual ChatGPT為例,它的目標(biāo)是使得一個系統(tǒng)既能和人進行視覺內(nèi)容相關(guān)的對話,又能進行畫圖以及圖片修改的工作。為此,Visual ChatGPT采用ChatGPT作為和用戶交流的理解中樞,整合了多個視覺基礎(chǔ)模型(Visual Foundation Models),通過prompt engineering (即Prompt Manager)告訴ChatGPT各個基礎(chǔ)模型的用法以及輸入輸出格式,讓ChatGPT決定為了滿足用戶的需求,應(yīng)該如何調(diào)用這些模型,如圖所示。
微軟另一個小組稍晚一段時間提出的MM-REACT ^[5]^ 也是同樣的思路,區(qū)別主要在于prompt engineering的設(shè)計以及MM-REACT更側(cè)重于視覺的通用理解和解釋,包含了很多Microsoft Azure API,例如名人識別、票據(jù)識別以及Bing搜索等。
總結(jié)
對比幾種融入方式:
- “訓(xùn)練視覺編碼器等額外結(jié)構(gòu)以適配LLM”具有更高的研究價值,因為其具備將任意模態(tài)融入LLM,實現(xiàn)真正意義多模態(tài)模型的潛力,其難點在于如何實現(xiàn)較強的in-context learning的能力。
- “將視覺轉(zhuǎn)化為文本,作為LLM的輸入”和“利用視覺模態(tài)影響LLM的解碼”可以直接利用LLM做一些多模態(tài)任務(wù),但是可能上限較低,其表現(xiàn)依賴于外部多模態(tài)模型的能力。
- “利用LLM作為理解中樞調(diào)用多模態(tài)模型”可以方便快捷地基于LLM部署一個多模態(tài)理解和生成系統(tǒng),難點主要在于prompt engineering的設(shè)計來調(diào)度不同的多模態(tài)模型。
-
接口
+關(guān)注
關(guān)注
33文章
8598瀏覽量
151156 -
模態(tài)
+關(guān)注
關(guān)注
0文章
8瀏覽量
6260 -
語言模型
+關(guān)注
關(guān)注
0文章
524瀏覽量
10277 -
GPT
+關(guān)注
關(guān)注
0文章
354瀏覽量
15373 -
LLM
+關(guān)注
關(guān)注
0文章
288瀏覽量
335
發(fā)布評論請先 登錄
相關(guān)推薦
評論