視覺語言模型說明

視覺語言模型(VLM)是多模態生成模型,能夠處理圖像與文字輸入並產生文字輸出,支援視覺問答、圖像說明與文件理解等任務。這些模型可在各種圖像類型(包括網頁與文件)上進行零樣本泛化,且部分模型能透過邊界框或分割遮罩提供空間定位。

視覺語言模型的架構

大多數主流 VLM 採用三段式架構,將圖像與文字表示統一後送入文字解碼器。此結構通常包括:

  1. Image Encoder:從輸入圖像中提取特徵。
  2. Embedding Projector:密集神經網路,用於對齊圖像表示與文字表示。
  3. Text Decoder:根據結合後的嵌入產生最終文字輸出。

根據模型的不同,會採用不同的訓練策略。例如,LLaVA 使用 CLIP 圖像編碼器與 Vicuna 文字解碼器;它首先僅訓練多模態投影層,以圖像‑說明對齊特徵,之後解凍文字解碼器進行進一步訓練。相較之下,KOSMOS-2 以端到端方式訓練,計算成本較高。某些模型,如 Fuyu-8B,完全省略圖像編碼器,直接將圖像補丁送入投影層,再接自回歸解碼器。

開源 VLM 生態概況

在 Hugging Face Hub 上有眾多開源 VLM 可供使用。主要模型包括:

  • LLaVA 1.6 (Hermes 34B):34B 參數,672×672 解析度。
  • DeepSeek-VL (Base and Chat):7B 參數,384×384 解析度,提供聊天優化版本。
  • CogVLM (Base and Chat):17B 參數,490×490 解析度;聊天版本支援空間定位。
  • moondream2:約 2B 參數,378×378 解析度。
  • Qwen-VL (Base and Chat):4B 參數,448×448 解析度;支援零樣本目標檢測。
  • KOSMOS-2:約 2B 參數,224×224 解析度;支援空間定位與零樣本目標檢測。
  • Yi-VL-34B:34B 參數,448×448 解析度;具備英語與中文雙語能力。
  • Fuyu-8B:8B 參數,300×300 解析度;專長於圖像內文字偵測。

評估 VLM 效能

選擇合適的 VLM 需要使用專門的排行榜與基準測試,以衡量推理與理解能力。

排行榜

  • Vision Arena:基於匿名人類偏好投票的持續排行榜。
  • Open VLM Leaderboard:依多項指標對模型進行排名,並可依大小與授權過濾。

基準測試

  • MMMU:一套包含 11.5K 多模態挑戰的綜合基準,需具備工程、藝術等領域的大學程度知識。
  • MMBench:包含 3,000 題單選題,覆蓋 20 種技能(如 OCR、目標定位)。採用「CircularEval」策略,隨機排列答案選項以確保模型一致性。
  • Domain-Specific Benchmarks:包括 MathVista(數學推理)、AI2D(圖表理解)、ScienceQA(科學問題)以及 OCRBench(文件理解)。

實作與微調

使用 Transformers 進行推論

可使用 transformers 套件將 VLM 部署於推論。舉例來說,透過 LlavaNextForConditionalGenerationLlavaNextProcessor,使用者可以傳入圖像與提示模板,產生圖像的文字描述或答案。

使用 TRL 進行微調

TRL 的 SFTTrainer 現已加入對視覺語言模型的實驗性支援。這讓使用者能對如 Llava 1.5 等模型進行監督式微調(SFT),使用諸如 llava-instruct-mix-vsft 的資料集(內含 260k 圖像‑對話對)。微調流程包括:

  1. 為 VLM 設定特定的聊天模板。
  2. 使用自訂的 DataCollator 結合文字與圖像對。
  3. 以模型、資料集與 PEFT 設定初始化 SFTTrainer,進行訓練並將產生的檢查點推送至 Hugging Face Hub。

Sources