視覺語言模型說明
視覺語言模型(VLM)是多模態生成模型,能夠處理圖像與文字輸入並產生文字輸出,支援視覺問答、圖像說明與文件理解等任務。這些模型可在各種圖像類型(包括網頁與文件)上進行零樣本泛化,且部分模型能透過邊界框或分割遮罩提供空間定位。
視覺語言模型的架構
大多數主流 VLM 採用三段式架構,將圖像與文字表示統一後送入文字解碼器。此結構通常包括:
- Image Encoder:從輸入圖像中提取特徵。
- Embedding Projector:密集神經網路,用於對齊圖像表示與文字表示。
- 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 部署於推論。舉例來說,透過 LlavaNextForConditionalGeneration 與 LlavaNextProcessor,使用者可以傳入圖像與提示模板,產生圖像的文字描述或答案。
使用 TRL 進行微調
TRL 的 SFTTrainer 現已加入對視覺語言模型的實驗性支援。這讓使用者能對如 Llava 1.5 等模型進行監督式微調(SFT),使用諸如 llava-instruct-mix-vsft 的資料集(內含 260k 圖像‑對話對)。微調流程包括:
- 為 VLM 設定特定的聊天模板。
- 使用自訂的
DataCollator結合文字與圖像對。 - 以模型、資料集與 PEFT 設定初始化
SFTTrainer,進行訓練並將產生的檢查點推送至 Hugging Face Hub。
Sources
- OriginalVision Language Models Explained