大型語言模型LLM(Large Language Model)具有很強的通用知識理解以及較強的邏輯推理能力,但其只能處理文本數據。雖然已經發布的GPT4具備圖片理解能力,但目前還未開放多模態輸入接口并且不會透露任何模型上技術細節。因此,現階段,如何利用LLM做一些多模態任務還是有一定的研究價值的。
本文整理了近兩年來基于LLM做vision-lanuage任務的一些工作,并將其劃分為4個類別:
利用LLM作為理解中樞調用多模態模型,例如VisualChatGPT(2023)[1], MM-REACT(2023)[2];
將視覺轉化為文本,作為LLM的輸入,例如PICA(2022)[3],PromptCap(2022)[4],ScienceQA(2022)[5];
利用視覺模態影響LLM的解碼,例如ZeroCap[6],MAGIC[7];
凍住LLM,訓練視覺編碼器等額外結構以適配LLM,例如Frozen[8],BLIP2[9],Flamingo[10],PaLM-E[11];
接下來每個類別會挑選代表性的工作進行簡單介紹:
一. 利用LLM作為理解中樞調用多模態模型
以微軟Visual ChatGPT[1]為例,它的目標是使得一個系統既能和人進行視覺內容相關的對話,又能進行畫圖以及圖片修改的工作。為此,Visual ChatGPT采用ChatGPT作為和用戶交流的理解中樞,整合了多個視覺基礎模型(Visual Foundation Models),通過prompt engineering (即Prompt Manager)告訴ChatGPT各個基礎模型的用法以及輸入輸出格式,讓ChatGPT決定為了滿足用戶的需求,應該如何調用這些模型,如圖1所示。

圖1:Visual ChatGPT系統示意圖
微軟另一個小組稍晚一段時間提出的MM-REACT[2]也是同樣的思路,區別主要在于prompt engineering的設計以及MM-REACT更側重于視覺的通用理解和解釋,包含了很多Microsoft Azure API,例如名人識別、票據識別以及Bing搜索等。
二. 將視覺轉化為文本,作為LLM的輸入
以PICA[3]為例,它的目標是充分利用LLM中的海量知識來做Knowledge-based QA。給定一張圖和問題,以往的工作主要從外部來源,例如維基百科等來檢索出相關的背景知識以輔助答案的生成。但PICA嘗試將圖片用文本的形式描述出來后,直接和問題拼在一起作為LLM的輸入,讓LLM通過in-context learning的方式直接生成回答,如圖2所示。

圖2:PICA方法示意圖
in-context learning的效果比較依賴example/demonstration的質量,為此PICA的作者利用CLIP挑選了和當前測試樣例在問題和圖片上最接近的16個訓練樣例作為examples。
三. 利用視覺模態影響LLM的解碼
以MAGIC[3]為例,它的目標是讓LLM做image captioning的任務,它的核心思路是生成每一個詞時,提高視覺相關的詞的生成概率,公式如圖3所示。

圖3:MAGIC解碼公式示意圖
該公式主要由三部分組成:1)LLM預測詞的概率;2)退化懲罰(橙色);3)視覺相關性(紅色)。退化懲罰主要是希望生成的詞能帶來新的信息量。視覺相關性部分為基于CLIP計算了所有候選詞和圖片的相關性,取softmax之后的概率作為預測概率。
四.訓練視覺編碼器等額外結構以適配LLM
這部分工作是目前關注度最高的工作,因為它具有潛力來“以遠低于多模態通用模型訓練的代價將LLM拓展為多模態模型”。DeepMind于2021年發表的Frozen,2022年的Flamingo以及Saleforce 2023年的BLIP2都是這條路線,如圖4所示。

圖4:Frozen,Flamingo,BLIP2示意圖。
Frozen訓練時將圖片編碼成2個vision token,作為LLM的前綴,目標為生成后續文本,采用Conceptual Caption作為訓練語料。Frozen通過few-shot learning/in-context learning做下游VQA以及image classification的效果還沒有很強,但是已經能觀察到一些多模態in-context learning的能力。
Flamingo為了解決視覺feature map大小可能不一致(尤其對于多幀的視頻)的問題,用Perceiver Resampler (類似DETR的解碼器)生成固定長度的特征序列(64個token),并且在LLM的每一層之前額外增加了一層對視覺特征進行注意力計算的cross-attention layer,以實現更強的視覺相關性生成。Flamingo的訓練參數遠高于Frozen,因此采用了大量的數據:1)MultiModal MassiveWeb(M3W) dataset:從43million的網頁上收集的圖文混合數據,轉化為圖文交叉排列的序列(根據網頁上圖片相對位置,決定在轉化為序列后,
BLIP2采用了類似于Flamingo的視覺編碼結構,但是采用了更復雜的訓練策略。其包含兩階段訓練,第一階段主要想讓視覺編碼器學會提取最關鍵的視覺信息,訓練任務包括image-Text Contrastive Learning, Image-grounded Text Generation以及Image-Text Matching;第二階段則主要是將視覺編碼結構的輸出適配LLM,訓練任務也是language modeling。BLIP2的訓練數據包括MSCOCO,Visual Genome,CC15M,SBU,115M來自于LAION400M的圖片以及BLIP在web images上生成的描述。BLIP2實現了很強的zero-shot capitoning以及VQA的能力,但是作者提到未觀察到其in-context learning的能力,即輸入樣例并不能提升它的性能。作者分析是因為訓練數據里不存在Flamingo使用的圖文交錯排布的數據。不過Frozen也是沒有用這類數據,但是也觀察到了一定的in-context learning能力。因此多模態的in-context learning能力可能和訓練數據、訓練任務以及位置編碼方法等都存在相關性。
總結
“利用LLM作為理解中樞調用多模態模型”可以方便快捷地基于LLM部署一個多模態理解和生成系統,難點主要在于prompt engineering的設計來調度不同的多模態模型;
“將視覺轉化為文本,作為LLM的輸入”和“利用視覺模態影響LLM的解碼”可以直接利用LLM做一些多模態任務,但是可能上限較低,其表現依賴于外部多模態模型的能力;
“訓練視覺編碼器等額外結構以適配LLM”具有更高的研究價值,因為其具備將任意模態融入LLM,實現真正意義多模態模型的潛力,其難點在于如何實現較強的in-context learning的能力。
審核編輯:劉清
-
解碼器
+關注
關注
9文章
1219瀏覽量
43400 -
編碼器
+關注
關注
45文章
3953瀏覽量
142633 -
視覺編程
+關注
關注
0文章
2瀏覽量
1864 -
ChatGPT
+關注
關注
31文章
1598瀏覽量
10265
原文標題:利用大語言模型做多模態任務
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
一文理解多模態大語言模型——上
如何使用多模態信息做prompt
基于圖文多模態領域典型任務
如何利用LLM做多模態任務?
自動駕駛和多模態大語言模型的發展歷程
機器人基于開源的多模態語言視覺大模型
利用大語言模型做多模態任務
評論