Idefics2 8B 視覺語言模型發布 – 架構、資料與效能
TL;DR
Idefics2 是由 Hugging Face 發布的 80 億參數開源視覺語言模型,在視覺問答(VQA)與 OCR 任務上提供業界領先的表現,且完全相容 🤗 Transformers,便於微調。
Idefics2 概述
Idefics2 是一個通用的多模態模型,接受任意序列的文字與圖像,並產生文字回應。它能回答關於圖像的問題、描述視覺內容、創作多圖故事、從文件中提取資訊,甚至執行基本算術。模型以 Apache 2.0 授權釋出,使用與再散布皆自由。
技術亮點
模型規模與架構
- 參數量: 8 B,較 Idefics1(80 B)縮減十倍,同時提供更佳的效能。
- 骨幹模型: 基於 Mistral‑7B‑v0.1(語言)與 SigLIP‑SO400M‑Patch14‑384(視覺),皆採用 Apache‑2.0 授權。
- 視覺整合: 圖片以原始解析度(最高 980 × 980)使用 NaViT 策略處理,避免固定尺寸的縮放。可選的子圖切割(四分割)採用 SPHINX/LLaVA‑NeXT 方法,適用於超高解析度的輸入。
- 特徵融合: 視覺特徵經編碼後,透過學習式 Perceiver 進行池化,再以 MLP 投影,最後與文字嵌入串接形成交錯序列。此方式取代 Idefics1 使用的門控交叉注意力,簡化多模態互動。
訓練資料
Idefics2 以多個公開可取得的資料集混合預訓練:
- 網路文件: Wikipedia 與 OBELICS 資料集(來自網路文件的圖文配對)。
- 圖像說明配對: Public Multimodal Dataset 與 LAION‑COCO。
- OCR 資料: PDF‑A(英文)、IDL 與 Rendered‑Text 資料集。
- 圖像轉程式碼資料: WebSight。
為了指令微調,團隊彙編了 The Cauldron,這是一個開放的 50 個手動挑選的多模態指令資料集,格式化為多輪對話。Idefics2 在 The Cauldron 以及標準的純文字指令資料上進行了微調。
效能基準測試
Idefics2 在 8 B 規模模型中取得頂尖表現,且可與遠大於其規模的專有系統競爭。以下是熱門多模態基準測試的關鍵分數(分數越高越好):
| 基準測試 | Idefics2(未切割) | Idefics2(切割) |
|---|---|---|
| MMMU (val/test) | 43.5 / 37.9 | 43.0 / 37.7 |
| MathVista (test‑mini) | 51.6 | 51.4 |
| TextVQA (val) | 70.4 | 73.0 |
| MMBench (test) | 76.8 | 76.7 |
| VQAv2 (test‑dev) | 80.8 | 81.2 |
| DocVQA (test) | 67.3 | 74.0 |
這些結果使 Idefics2 超越其他開源 7 B/13 B 模型(如 DeepSeek‑VL、LLaVA‑NeXT‑Mistral‑7B、LLaVA‑NeXT‑13B),且與 Gemini 1.5 Pro、Claude 3 Haiku 等閉源巨頭的差距已相當接近。
相較於 Idefics1 的新功能
- 原生解析度視覺: NaViT 風格處理最高 980 × 980 的圖像,保留細節與長寬比。
- 強化 OCR: 整合以 OCR 為焦點的訓練資料,提升圖像、圖表與文件中文字的轉錄精度。
- 簡化融合: 用 Perceiver 池化與 MLP 投影取代門控交叉注意力,讓架構更簡潔且推論更快。
- 子圖切割: 可選的四分割方式允許處理極大圖像,同時不犧牲效能。
綜合來說,儘管模型比前代小 10 倍,這些升級仍帶來 顯著的效能躍升。
快速上手
Idefics2 於 Hugging Face Hub 上託管,且在最新的 transformers 版本中即能直接使用。以下 Python 程式碼示範基本用法:
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForVision2Seq, load_image
DEVICE = "cuda:0"
# Load example images
image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg")
image2 = load_image("https://cdn.britannica.com/59/94459-050-DBA42467/Skyline-Chicago.jpg")
processor = AutoProcessor.from_pretrained("HuggingFaceM4/idefics2-8b")
model = AutoModelForVision2Seq.from_pretrained("HuggingFaceM4/idefics2-8b").to(DEVICE)
messages = [
{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "What do we see in this image?"}]},
{"role": "assistant", "content": [{"type": "text", "text": "In this image, we can see the Statue of Liberty in New York."}]},
{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "And how about this image?"}]},
]
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, images=[image1, image2], return_tensors="pt")
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
generated_ids = model.generate(**inputs, max_new_tokens=200)
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])
作者亦提供了在自訂資料上微調 Idefics2 的 Colab 筆記本。
資源
- 模型卡:
idefics2-8b,idefics2-8b-base,idefics2-8b-chatty - 資料集: The Cauldron、OBELICS、WebSight
- 示範空間: Hugging Face Spaces 上的互動式 Playground
- 論文: arXiv pre‑print 2405.02246
授權條款
Idefics2 的權重以 Apache 2.0 授權釋出,與底層的 Mistral‑7B 與 SigLIP 骨幹模型保持一致。
對社群的影響
高效能、完全開源的 8 B 視覺語言模型的發布,降低了多模態 AI 研究與產品開發的門檻。透過同時提供模型本體與精心策劃的指令資料集,Hugging Face 讓使用者能快速原型、微調與基準測試,無需面對大型專有系統的授權限制。架構的簡化與原生解析度處理也為未來開源模型的多模態融合樹立了新基準。