《OneLLM: One Framework to Align All Modalities with Language》論文學習

一、Abstract

隨着LLM的興起,由於其強大的語言理解和推理能力,在學術和工業界中越來越受歡迎。LLM的進展也啓發了研究人員將LLM作爲多模態任務的接口,如視覺語言學習、音頻和語音識別、視頻理解等,因此多模態大語言模型(Multimodal Large Language Model, MLLM)也引起了研究人員的關注。

然而,目前的研究依賴特定於單模態的編碼器,通常在架構上有所不同,並且僅限於常見的模態。

本文提出了OneLLM,這是一種MLLM,它使用一個統一的框架將八種模式與語言對齊。通過統一的多模態編碼器和漸進式多模態對齊pipelines來實現這一點。不同多模態LLM的比較如下圖所示,可以明顯的看出OneLLM框架的工作方式與之前研究的區別。

OneLLM由以下幾個核心組件組成:

  • 輕量級模態標記器
  • 通用編碼器
  • 通用投影模塊(UPM)
  • LLM

與之前的工作相比,OneLLM 中的編碼器和投影模塊在所有模態之間共享。

特定於模態的輕量級模態標記器,每個標記器僅由一個卷積層組成,將輸入信號轉換爲一系列標記。此外,我們添加了可學習的模態標記,以實現模態切換並將不同長度的輸入標記轉換爲固定長度的標記。

參考鏈接:

https://mp.weixin.qq.com/s/2-C_O0M_w9PD6E2h3BTLbw
https://arxiv.org/pdf/2312.03700.pdf

  

二、Introduction

大型語言模型(LLMs)由於其強大的語言理解和推理能力,在研究社區和工業界越來越受歡迎。值得注意的是,像GPT4這樣的LLM已經達到了與人類在各種學術考試中幾乎相當的表現。

LLMs的進步還激勵了研究人員使用LLMs作爲多模態任務的接口,例如

  • 視覺-語言學習
  • 音頻和語音識別
  • 視頻理解等

在這些任務中,視覺-語言學習是最活躍的領域,在最近半年內就提出了50多個視覺LLMs。

通常,視覺LLM包括

  • 一個視覺編碼器
  • 一個LLM
  • 連接這兩個組件的投影模塊

視覺LLM首先在大量成對的圖像-文本數據上進行訓練,以實現視覺-語言對齊,然後在視覺指令數據集上進行微調,使其能夠完成與視覺輸入相關的各種指令。

除了視覺之外,還有大量努力投入到開發其他模態特定的LLMs,如音頻、視頻和點雲。這些模型通常複製視覺LLMs的架構框架和訓練方法,並依賴於預訓練的模態特定編碼器和精心策劃的指令微調數據集的穩固基礎來發揮其效力。

也有幾次嘗試將多種模態整合到一個MLLM中。作爲視覺LLM的擴展,大多數先前的工作使用模態特定的編碼器和投影模塊將每個模態與LLM對齊。例如,X-LLM和ChatBridge使用獨立的Q-Former或Perceiver模型將預訓練的圖像、視頻和音頻編碼器與LLMs連接起來。

然而,這些模態特定的編碼器通常在架構上有所不同,需要付出相當的努力才能將它們統一到一個單一框架中。此外,能夠提供可靠性能的預訓練編碼器通常僅限於廣泛使用的模態,如圖像、音頻和視頻。這種限制對MLLMs擴展到更多模態的能力構成了制約。因此,MLLMs面臨的一個關鍵挑戰是如何構建一個統一且可擴展的編碼器,能夠處理廣泛的模態範圍。

我們從最近關於將pretrained transformers遷移到下游模態的研究中獲得了靈感。

  • Lu等人證明了一個凍結的語言預訓練transformers可以在下游模態如圖像分類上達到強大的性能。
  • MetaTransformer展示了一個凍結的視覺編碼器可以在12種不同數據模態上取得有競爭力的結果。

上述工作的洞察表明,每個模態的預訓練編碼器可能不是必需的。相反,一個訓練良好的transformers可能作爲一個通用的跨模態編碼器。

在本文中,我們提出了OneLLM,一個使用統一框架將八種模態與語言對齊的MLLM。如下圖所示,

OneLLM由以下幾個核心組件組成:

  • 輕量級模態標記器
  • 通用編碼器
  • 通用投影模塊(UPM)
  • LLM

與先前的工作不同,OneLLM中的編碼器和投影模塊在所有模態中都是共享的。模態特定的標記器(tokenizers),每個只包含一個卷積層,將輸入信號轉換成一系列標記(tokens)。此外,我們添加了可學習的模態標記(modality tokens),以實現模態切換,並將不同長度的輸入標記轉換成固定長度的標記。

從頭開始訓練如此複雜的模型提出了重大挑戰。我們從視覺LLM開始,以逐漸的方式將其他模態與LLM對齊。具體來說過程如下,

  • (i)我們使用預訓練的CLIP-ViT作爲圖像編碼器,配合幾層transformer層作爲圖像投影模塊,並以LLaMA2作爲LLM。在大規模成對的圖像-文本數據上預訓練後,投影模塊學習將視覺表徵映射到LLM的嵌入空間。
  • (ii)爲了與更多模態對齊,我們需要一個通用編碼器和投影模塊。如前所述,預訓練的CLIP-ViT有可能作爲通用編碼器。對於UPM,我們提出將多個圖像投影專家混合作爲一個通用的X到語言的接口。爲了增強模型的能力,我們還設計了一個動態路由器,控制給定輸入下每個專家的權重,這使得UPM變成了軟混合專家。
  • (iii)最後,我們根據它們的數據量逐步將更多模態與LLM對齊。

我們還策劃了一個大規模多模態指令數據集,包括八種模態的字幕、問答及推理任務:

  • 圖像
  • 音頻
  • 視頻
  • 點雲
  • 深度/法線圖
  • 慣性測量單元(IMU)
  • 功能性磁共振成像(fMRI)

通過在這個數據集上進行微調,OneLLM具有強大的多模態理解、推理和指令跟隨能力。

我們在多模態字幕、問答和推理基準測試中評估了OneLLM的性能,它比先前的專業模型和MLLMs都有更優越的表現。

三、Related Work 

LLM的迅猛發展引起了研究人員的重視,因此有研究人員提出了視覺領域的大型視覺語言模型,並取得了較好的性能。除了視覺領域大語言模型之外,研究人員將其拓展到了多模態領域,如音頻、視頻和點雲數據中,這些工作使得將多種模式統一爲一個LLM成爲可能即多模態大語言模型。X-LLM,ChatBridge,Anymal,PandaGPT,ImageBind-LLM等MLLM不斷湧現。然而,當前的 MLLM 僅限於支持常見的模式,例如圖像、音頻和視頻。目前尚不清楚如何使用統一的框架將 MLLM 擴展到更多模式。

在這項工作中,提出了一個統一的多模態編碼器來對齊所有模態和語言。將多種模式對齊到一個聯合嵌入空間中對於跨模態任務很重要,這可以分爲:

  • 判別對齊
  • 生成對齊

判別對齊最具代表性的工作是CLIP,它利用對比學習來對齊圖像和文本。後續工作將 CLIP 擴展到音頻文本、視頻文本等。

本文的工作屬於生成對齊。與之前的工作相比,直接將多模態輸入與LLM對齊,從而擺脫訓練模態編碼器的階段。

 

四、Method

0x1:Model Architecture

上圖展示了 OneLLM 的四個主要組件:特定於模態的輕量標記器通用編碼器通用投影模塊和 LLM

  • 輕量模態標記器(Lightweight Modality Tokenizers):模態標記器是將輸入信號轉換爲標記序列,因此基於transformers的編碼器可以處理這些標記。爲每個模態設計了一個單獨的標記器。對於圖像和視頻等二維信息的視覺輸入,直接使用單個二維卷積層作爲標記器。對於其他模態,將輸入轉換爲 2D 或 1D 序列,然後使用 2D/1D 卷積層對其進行標記。
  • 通用編碼器(Universal Encoder):利用預訓練的視覺語言模型作爲所有模態的通用編碼器。視覺語言模型在對大量圖文數據進行訓練時,通常學習視覺和語言之間的穩健對齊,因此它們可以很容易地轉移到其他模式。在OneLLM中,使用CLIPViT作爲通用計算引擎。保持CLIPViT的參數在訓練過程中被凍結。
  • 通用投影模塊(Universal Projection Module):與現有的基於模態投影的工作不同,提出了一個通用投影模塊,將任何模態投影到 LLM 的嵌入空間中。由 K 個投影專家組成,其中每個專家都是在圖像文本數據上預訓練的一堆transformer層。儘管一位專家還可以實現任何模態到 LLM 的投影,但實證結果表明,多個專家更有效和可擴展。當擴展到更多模態時,只需要添加幾個並行專家。

  • LLM:採用開源LLaMA2作爲框架中的LLM。LLM的輸入包括投影的模態標記和單詞嵌入後的文本提示。爲了簡單起見,本文對應的模態標記總是放在輸入序列的開頭。然後LLM被要求以模態標記和文本提示爲條件生成適當的響應。

0x2:Progressive Multimodal Alignment

多模態對齊的簡單方法是在多模態文本數據上聯合訓練模型。然而,由於數據規模的不平衡,直接在多模態數據上訓練模型會導致模態之間的偏差表示。

本文訓練了一個圖像到文本模型作爲初始化,並將其他模式逐步接地到LLM中(包括圖文對齊、多模態-文本對齊)。

  • 圖像-文本對包括LAION-400M和LAION-COCO。
  • 視頻、音頻和視頻的訓練數據分別爲WebVid-2.5M、WavCaps和Cap3D。由於沒有大規模的deep/normal map數據,使用預訓練的 DPT 模型來生成deep/normal map。
  • 對於IMU-text對,使用Ego4D的IMU傳感器數據。
  • 對於fMRI-text對,使用來自NSD數據集的 fMRI 信號,並將與視覺刺激相關的字幕作爲文本註釋。

0x3:Unified Multimodal Instruction Tuning

在多模態-文本對齊之後,OneLLM 成爲一個多模態字幕模型,可以爲任何輸入生成簡短的描述。

爲了充分釋放OneLLM的多模態理解和推理能力,本文策劃了一個大規模的多模態指令微調數據集來進一步微調OneLLM。

在指令調優階段,完全微調LLM並保持其餘參數凍結。儘管最近的工作通常採用參數高效的方法,但憑經驗表明,完整的微調方法更有效地利用 OneLLM 的多模態能力,特別是利用較小的 LLM(例如LLaMA2-7B)。

 

五、Experiment

0x1:Implementation Details

1、架構

  • 通用編碼器是在LAION上預訓練的CLIP VIT Large
  • LLM 是 LLAMA2-7B
  • UPM有K=3個投影專家,每個專家有8個transformer塊和88M個參數

2、訓練細節

使用AdamW優化器,β1=0.9,β2==0.95,權重衰減爲0.1。

  • 在前2K次迭代中應用了線性學習速率預熱。
  • 對於階段I,在16個A100 GPU上訓練OneLLM 200K次迭代。有效批量大小爲5120。最大學習率爲5e-5。
  • 對於第II階段,在8個GPU上訓練 OneLLM 200K,有效批量大小爲1080,最大學習率爲1e-5。
  • 在指令調優階段,在8個gpu上訓練OneLLM 1 epoch,有效批大小爲512,最大學習率爲2e-5。

0x2:Quantitative Evaluation

Image-Text Evaluation:下表結果表明,OneLLM還可以在視覺專門的LLM中達到領先水平,MLLM和視覺LLM之間的差距進一步縮小。

Video-Text Evaluation:下表可以看出,本文模型在相似的 VQA 數據集上進行訓練明顯增強了其跨模態能力,有助於提高視頻QA任務的性能

Audio-Text Evaluation:對於Audio-Text任務,結果顯示,在Clotho AQA上的zero-shot結果與完全微調的Pengi相當。字幕任務需要更多特定於數據集的訓練,而QA任務可能是模型固有的零樣本理解能力更準確的度量。

Audio-Video-Text Evaluation:下表結果表明,OneLLM-7B在所有三個數據集上都超過了 ChatBridge-13B。由於 OneLLM 中的所有模態都與語言很好地對齊,因此在推理過程中可以直接將視頻和音頻信號輸入到 OneLLM。

Point Cloud-Text Evaluation:從下表中可以看出,由於精心設計的指令提示在任務之間切換,OneLLM可以實現出色的字幕結果,而InstructBLIP和PointLLM 難以生成簡短而準確的字幕。在分類任務中,OneLLM也可以獲得與 PointLLM 相當的結果。

Depth/Normal Map-Text Evaluation:如下表中所示,與CLIP相比,OneLLM實現了優越的zero-shot分類精度。這些結果證實,在合成deep/normal map-text數據上訓練的OneLLM可以適應現實世界的場景。

0x3:Qualitative Analysis

下圖中給出了 OneLLM 在八種模態上的一些定性結果。展示了 OneLLM 可以

  • (a)理解圖像中的視覺和文本內容
  • (b)利用視頻中的時間信息
  • (c)基於音頻內容進行創造性寫作
  • (d)理解3D形狀的細節
  • (e)分析fMRI數據中記錄的視覺場景
  • (f)基於運動數據猜測人的動作
  • (g)-(h)使用deep/normal map進行場景理解

以下是OneLLM框架更多的定性分析結果。

0x4:Local Demo

1、Install packages

pip install -r requirements.txt

# install pointnet
cd model/lib/pointnet2
python setup.py install

1、Model Download

git clone https://github.com/csuhan/OneLLM.git
mkdir model_weight
cd model_weight
git clone https://huggingface.co/csuhan/OneLLM-7B

2、Start Local Demo

python3 demos/multi_turn_mm.py --gpu_ids 0 --tokenizer_path config/llama2/tokenizer.model --llama_config config/llama2/7B.json --pretrained_path /data_vdb1/OneLLM/model_weight/OneLLM-7B/consolidated.00-of-01.pth

參考鏈接:

https://huggingface.co/spaces/csuhan/OneLLM
https://huggingface.co/csuhan/OneLLM-7B/tree/main

 

六、Conclusion

在這項工作中,本文介紹了 OneLLM,這是一種 MLLM,它使用一個統一的框架將八種模式與語言對齊。

最初,訓練一個基本的視覺LLM。在此基礎上,設計了一個具有通用編碼器、UPM 和 LLM 的多模態框架。通過漸進式對齊pipelines,OneLLM 可以使用單個模型處理多模態輸入。

此外,本文工作策劃了一個大規模的多模態指令數據集,以充分釋放OneLLM的指令跟蹤能力。

最後,在 25 個不同的基準上評估 OneLLM,顯示出其出色的性能。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章