深入探討視覺語言模型
視覺語言模型(VLM)結合視覺與語言模態,能同時處理影像與自然語言文字,從而實現零樣本影像分類、影像說明生成與視覺問答等複雜任務。透過使用獨立或融合的視覺與語言編碼器,這些模型能將視覺資訊與文字描述相連結,進行跨模態的推理與檢索。
視覺語言預訓練的核心學習策略
現代視覺語言模型通常使用影像編碼器、文字編碼器以及融合策略。早期模型依賴手工設計的特徵描述子,而目前的研究主要採用 Transformer 架構。以下五種策略定義了對這些模型進行預訓練的主要方法:
1. 對比學習
對比學習透過最小化匹配影像-文字對之間的距離、同時最大化不匹配對之間的距離,將影像與文字對齊至共同的特徵空間。
- Key Models: CLIP, CLOOB, ALIGN, and DeCLIP.
- Mechanism: 這些模型使用大量的 {image, caption} 配對資料集。例如,CLIP 使用餘弦距離來衡量嵌入相似度。
- Variations: 變體:LiT(Language-Image Pre-training)在保持影像編碼器凍結的情況下微調文字編碼器,以提升樣本效率。
2. PrefixLM
PrefixLM 將影像視為語言模型的前綴,使模型能根據視覺輸入預測序列中的下一個 token。
- Mechanism: 機制:視覺 Transformer(ViT)將影像切割成 patch,並依序輸入。於 SimVLM 與 VirTex 等模型中,編碼器接收串接的影像 patch 與前綴文字,解碼器則預測文字的後續內容。
- Frozen PrefixLM: 凍結 PrefixLM:為提升效率,模型如 Frozen 與 ClipCap 會將語言模型凍結,僅更新影像編碼器,使影像嵌入與凍結的 LM 空間對齊。
- Advanced Architectures: 先進架構:Flamingo 採用 Perceiver Resampler 模組與新型跨注意力層,將凍結的 LM 條件化於視覺資料,達成最先進的少樣本學習。
3. 使用跨注意力的多模態融合
此策略透過跨注意力機制,將視覺資訊直接融合至語言模型解碼器的層中,而非將影像作為前綴。
- Key Models: 關鍵模型:VisualGPT, VC-GPT, and Flamingo.
- Goal: 目標:此方法在文字生成能力與視覺資訊之間取得平衡,當缺乏大型多模態資料集時尤為關鍵。FIBER 透過在視覺與語言骨幹網路中插入具門控機制的跨注意力層來提升此平衡。
4. 掩碼語言模型 (MLM) 與影像-文字匹配 (ITM)
MLM 與 ITM 將特定影像區域與相對應的文字片段對齊。
- MLM: MLM:模型根據相關影像預測說明中的被遮蔽詞彙。此通常需要使用邊界框或目標檢測模型(例如 Faster-RCNN)來產生區域提案。
- ITM: ITM:模型判斷給定的影像與說明配對是否真實匹配。
- Key Models: 關鍵模型:VisualBERT, FLAVA, ViLBERT, LXMERT, and BridgeTower。FLAVA 特別結合了 MLM、ITM、Masked-Image Modeling(MIM)與對比學習。
5. 無需訓練(基於最佳化)
某些策略透過使用預訓練的單模態模型來橋接模態,且不需額外訓練。
- MaGiC: MaGiC:使用自回歸 LM 生成說明,並透過基於 CLIP 的「Magic score」進行最佳化。
- ASIF: ASIF:在由少量真實多模態配對資料集構建的相對表示空間中執行相似度搜尋。
多模態資料集
預訓練資料集
VLM 於大規模網路爬取的影像-文字配對資料集上進行預訓練。例子包括:
- PMD: PMD:Flickr30K、COCO 與 Conceptual Captions 的組合。
- LAION-5B: LAION-5B:大型資料集,使用 CLIP 來過濾噪聲並確保高品質配對。
- COCO: COCO:包含帶有物件標籤與自然語句描述的影像實例。
- Conceptual Captions & Flickr30K: Conceptual Captions 與 Flickr30K:由網路爬取的影像與自由形式說明組成。
下游資料集
微調在特定任務資料集上進行:
- Visual Question Answering (VQA): 視覺問答(VQA):VQA、VQA v2、NLVR2、OKVQA、TextVQA、TextCaps 與 VizWiz。
- Classification & Reasoning: 分類與推理:Hateful Memes(多模態分類)、SNLI-VE(視覺蕴含)與 Winoground(組合推理)。
在 🤗 Transformers 中的實作
Hugging Face Transformers 支援多種 VLM,提供零樣本分類、分割與 VQA 等工具。
支援的模型
- General Purpose: 通用用途:CLIP、FLAVA、BridgeTower、BLIP、LiT。
- Specialized Tasks: 專門任務:OWL-ViT(零樣本目標檢測)、CLIPSeg 與 GroupViT(影像分割),以及 X-CLIP(零樣本影片分類)。
- Architecture Templates: 架構範本:
VisionEncoderDecoderModel允許使用者將任意基於 Transformer 的視覺編碼器(例如 ViT、Swin)與任意語言解碼器(例如 GPT2、BERT)結合。
實作範例
- ViLT for VQA: ViLT 用於 VQA:使用者可利用
ViltForQuestionAnswering與ViltProcessor輸入影像與問題(例如「有幾隻貓?」),以取得預測答案。 - CLIPSeg for Segmentation: CLIPSeg 用於分割:
CLIPSegForImageSegmentation透過提供文字描述(例如「一隻貓」)實現零樣本分割,產生影像中特定物件的二元分割圖。
新興研究領域
視覺語言表示正擴展至專業領域與複雜的物理互動:
- Medicine: 醫學:Clinical-BERT 用於醫療診斷與報告生成,MedFuseNet 處理醫療 VQA。
- Image & 3D Manipulation: 影像與 3D 操作:StyleCLIP 與 DiffusionCLIP 實現影像操控;AvatarCLIP 與 Text2Mesh 促進 3D 形狀與紋理的操作。
- Robotics: 機器人學:CLIPort 使用聯合表示進行模仿學習。大型語言模型(LLM)正被整合至機器人以進行任務規劃與推理,如 ProgPrompt 與 SayCan 所示。開放詞彙檢測模型如 OWL-ViT 與 GLIP 的出現,預期將進一步將多模態模型融入機器人導航與操作。