Stanford CS336 第17講:多模態語言建模
多模態建模概覽
多模態模型旨在超越純文字到文字的能力,朝著「全能模型」發展,該模型能夠擺入並輸出任意組合的模態,包括文字、圖像、音訊和影片。由於變換器(Transformer)在這些模態的大規模應用中是最有效的架構,因此主要的技術挑戰是將非文字資料轉換為標記——無論是離散的還是連續的——以便變換器能夠處理。
基礎:CLIP 與 SigLIP
現代視覺語言模型(VLM)高度依賴能夠將圖像映射到與文字相容的語義空間的編碼器。
CLIP(對比語言圖像預訓練)
CLIP 的設計目的是利用網路上大量雜訊的圖像-文字對。它使用對比目標:給定一批圖像-文字對,模型會最大化正確圖像-文字對之間的點積,同時最小化批次中所有其他對的點積。
- 架構: CLIP 通常使用 Vision Transformer (ViT) 作為圖像編碼器,將圖像分割成塊(例如 14x14)並將其處理為標記。文字編碼器是一種 GPT-2 風格的變換器。
- 關鍵結果: CLIP 展示了零樣本圖像分類可以透過利用網路上的有機數據,優於在如 ImageNet 這樣經過策劃的資料集上訓練的模型。
- 限制: CLIP 需要非常大的批次大小(例如 32,000),因為 softmax 操作是在整個批次上進行的,這使得它難以進行平行化和分解。
SigLIP(Sigmoid 損失用於語言圖像預訓練)
SigLIP 透過將多類別 softmax 損失替換為更簡單的 sigmoid 損失來改進 CLIP。SigLIP 不再將一張圖像與一批文字進行排名,而是將每個圖像-文字對視為二元分類問題(對齊或不對齊)。
- 效率: 此變更使損失與批次大小解耦,從而允許更高效的訓練,並在較小的批次大小下獲得更好的性能。
- 平行化: SigLIP 透過在 pod 中輪換文字嵌入來計算負樣本,從而在不需要單一設備上擁有完整批次的情況下,實現跨設備的更好分佈。
視覺語言模型(VLM)架構
大多數開源的 VLM 遵循一個模板:一個預訓練的視覺編碼器,一個作為解碼器的語言模型(LLM),以及一個「投影器」或適配器,用於將視覺嵌入映射到 LLM 的標記空間。
LLaVA(大型語言與視覺助手)
LLaVA 展示了如何將 CLIP 編碼器與一個基於 Llama 的 Vicuna LLM 縫合在一起。
- 資料合成: LLaVA 使用 GPT-4 生成合成對話、詳細描述和複雜推理,基於 MS COCO 上的人工標註圖說。
- 訓練階段:
- 對齊階段: 視覺編碼器和 LLM 凍結;僅訓練投影器(一個線性矩陣 $W$),以將圖像向量映射到文字嵌入空間。
- 微調階段: 視覺編碼器保持凍結,但投影器和 LLM 在合成的多模態數據上一起訓練。
LLaVA OneVision 與 AnyRes
為了處理高解析度圖像和 OCR,LLaVA OneVision 提出了 AnyRes。與其將圖像下採樣到固定的正方形(例如 336x336),AnyRes 將圖像分割成多個編碼器原始解析度的裁切區,並將得到的向量串聯。這使得模型在保持對不同圖像長寬比的適應性同時,能夠保留細粒度的細節。
Qwen-VL 系列
Qwen-VL 及其後繼版本(Qwen-2、Qwen-3)進一步優化了 VLM 流程:
- 動態解析度: Qwen-2 實施了一種系統,根據圖像的大小將其映射到可變數量的標記,通過壓縮塊來管理上下文長度。
- 多模態 RoPE (M-RoPE): 為了處理 3D 空間-時間數據(高度、寬度和時間),Qwen 使用多維旋轉位置編碼。Qwen-3 透過交錯維度來改進此方法,以確保所有軸同時暴露於低頻和高頻。
- 顯式時間戳: Qwen-3 引入了顯式時間標記(例如「0 秒」),以幫助模型指稱影片中的特定時刻。
- 深度融合: 後續版本並未使用簡單的投影器,而是採用更複雜的適配器(DeepStack),將視覺嵌入直接整合到 LLM 的殘差流中。
原生多模態:Chameleon 方法
雖然多數 VLM 是僅輸出文字的「縫合」模型,但 Meta 的 Chameleon 嘗試透過將一切離散化為標記來實現原生多模態。
- VQ-VAE(向量量化變分自編碼器): 圖像被映射到一個離散的碼本(例如 8,000 個原型向量)。一張圖像成為一個離散標記序列,就像文字一樣。
- 統一訓練: 由於圖像現在是標記,單一變換器可以被訓練來預測下一個標記,無論該標記是文字還是圖像。這使得交錯的圖像-文字生成成為可能。
- 挑戰: 此方法由於圖像標記相較於文字標記具有較高的熵,導致訓練不穩定。此外,由於離散化,還會遺失細粒度資訊(例如 OCR 中的小文字)。
技術權衡摘要
| Feature | Stitched VLMs (LLaVA/Qwen) | Native Multimodal (Chameleon) |
|---|---|---|
| 輸入 | 連續嵌入 $ | |
| ightarrow$ 投影器 $ | ||
| ightarrow$ LLM | 離散標記 $ | |
| ightarrow$ LLM | ||
| 輸出 | 僅文字 | 交錯的文字與圖像 |
| 輸出方法 | LLM 標記預測 | LLM 標記預測 |
| 資訊損失 | 低(連續編碼器) | 高(離散化) |
| 訓練穩定性 | 高 | 低(熵不匹配) |