利用 LLM 做多模態任務

大型語言模型 LLM(Large Language Model)具有很強的通用知識理解以及較強的邏輯推理能力,但其只能處理文本數據。雖然已經發布的 GPT4 具備圖片理解能力,但目前還未開放多模態輸入接口並且不會透露任何模型上技術細節。因此,現階段,如何利用 LLM 做一些多模態任務還是有一定的研究價值的。

本文整理了近兩年來基於 LLM 做 vision-lanuage 任務的一些工作,並將其劃分爲 4 個類別:

  1. 利用 LLM 作爲理解中樞調用多模態模型,例如 VisualChatGPT(2023)[1], MM-REACT(2023)[2];
  2. 視覺轉化爲文本,作爲 LLM 的輸入,例如 PICA(2022)[3],PromptCap(2022)[4],ScienceQA(2022)[5];
  3. 利用視覺模態**影響 LLM 的解碼,**例如 ZeroCap[6],MAGIC[7];
  4. 凍住 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 所示。

微軟另一個小組稍晚一段時間提出的 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 所示。

in-context learning 的效果比較依賴 example/demonstration 的質量,爲此 PICA 的作者利用 CLIP 挑選了和當前測試樣例在問題和圖片上最接近的 16 個訓練樣例作爲 examples。

三. 利用視覺模態影響 LLM 的解碼

以 MAGIC[3] 爲例,它的目標是讓 LLM 做 image captioning 的任務,它的核心思路是生成每一個詞時,提高視覺相關的詞的生成概率,公式如圖 3 所示。

該公式主要由三部分組成:1)LLM 預測詞的概率;2)退化懲罰(橙色);3)視覺相關性(紅色)。退化懲罰主要是希望生成的詞能帶來新的信息量。視覺相關性部分爲基於 CLIP 計算了所有候選詞和圖片的相關性,取 softmax 之後的概率作爲預測概率。

四. 訓練視覺編碼器等額外結構以適配 LLM

這部分工作是目前關注度最高的工作,因爲它具有潛力來 “以遠低於多模態通用模型訓練的代價將 LLM 拓展爲多模態模型”。DeepMind 於 2021 年發表的 Frozen,2022 年的 Flamingo 以及 Saleforce 2023 年的 BLIP2 都是這條路線,如圖 4 所示。

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 的網頁上收集的圖文混合數據,轉化爲圖文交叉排列的序列(根據網頁上圖片相對位置,決定在轉化爲序列後,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,Flamingo 的訓練目標也爲文本生成,但其對於不同的數據集賦予不同的權重,上面四部分權重分別爲 1.0、0.2、0.2、0.03,可見圖文交叉排列的 M3W 數據集的訓練重要性是最高的,作者也強調這類數據是具備多模態 in-context learning 能力的重要因素。Flamingo 在多個任務上實現了很不錯的 zero-shot 以及 few-shot 的表現。

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 的能力。

相關工作

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://zhuanlan.zhihu.com/p/616351346