多模態視覺語言模型FILA-細粒度分辨率融合策略 原創

上圖是四種在圖片切圖上的操作:如動態分辨率僅涉及裁剪圖像并將其輸入CLIP-ViT、mini-gemini在最后層將低分辨率的CLIP-ViT特征與高分辨率輔助分支進行交互,主要使用交叉注意力機制,c則采用通道級串聯。本文介紹的方法使用一個模塊將低分辨率和高分辨率進行融合實現交互,下面來看看如何實現。
方法

方法
1. 輸入圖像預處理(動態切圖)
這個目標是把高分辨率圖像切成若干 336×336 的小塊,同時保留一張 336×336 的“全局縮略圖”。
- 步驟:
- 從 5 個預定義畫布尺寸(336×672、672×336、672×672、1008×336、336×1008)中挑一個能最緊湊包住原圖的。
- 等比例縮放 → padding → 切成 個 336×336 patch。
- 額外生成一張 336×336 的“全局視圖”,保留整體語境。
2. 雙路編碼器(混合編碼器)

雙路編碼器集成了ConvNeXt、CLIP-ViT和CVFM模塊。ConvNeXt和ViT網絡都被劃分為四個階段。每個階段的最后一層作為一個交互層,通過CVFM模塊將其輸出與相應的ConvNeXt階段的輸出結合起來。
- 低分辨率支路:所有 patch + 全局視圖 → CLIP-ViT(凍結參數,224/336 訓練分辨率)。
- 高分辨率支路:整張原圖以更高分辨率(32/14 × Hh,32/14 × Wh,約 768×768)→ ConvNeXt,提取多尺度特征。
結構:Hybrid Encoder = CLIP-ViT + ConvNeXt + CVFM(跨層融合模塊)
- ConvNeXt 分支:4 個 stage(stem → 96 → 192 → 384 → 768 通道),每個 stage 3×3 卷積降采樣 2×。
- CLIP-ViT 分支:同樣 4 個 stage(對應 ViT 的 layer 2/6/12/20)。
- CVFM 在 每個 stage 結束處做一次跨模型融合,而不是只在最后一層。
特征對齊:ConvNeXt 輸出特征尺寸與 ViT 隱藏層尺寸需空間對齊: ViT 固定 24×24 spatial tokens(576 tokens)。ConvNeXt stage-i 輸出尺寸通過 2×2 卷積或插值對齊到 24×24。最終沿 channel 維度拼接(channel concatenation),再通過 1×1 Conv/MLP 降維回 ViT 原始通道數。
3. 連接 LLM
CLIP-ViT 輸出的 patch token 與 ConvNeXt 輸出的高分辨率特征經過 CVFM 融合 → MLP 投影 → 與文本 token 拼接 → 送入 LLaMA3-8B。
4. 兩階段訓練

- 階段一:低分辨率預訓練(Frozen ViT & LLM) 目的:先把 CVFM 融合模塊 與 MLP 投影層 訓練好,讓視覺特征能與 LLM 詞向量空間對齊。圖像統一 resize 到 336×336 → 送入 CLIP-ViT,同一張圖再 resize 到 768×768 → 送入 ConvNeXt。不做動態切圖,避免一開始就讓 CVFM 面對“碎片化”難題。
凍結策略:ViT 與 LLM 完全凍結(參數不參與梯度更新) 只訓練:CVFM(跨層融合權重)和MLP Projector(把視覺 token 映射到詞向量維度) - 階段二:高分辨率指令微調(全部解凍):讓模型具備高分辨率細粒度理解(OCR、文檔、圖表)多輪對話與指令跟隨能力。啟用動態切圖:原圖切成 336×336 patch,同時保留全局 336×336 縮略圖。ConvNeXt 輸入:整張圖 upsample 到 32/14×Hh ≈ 1536×1536 → 得到多尺度特征。
凍結策略:解凍全部參數
實驗結果



參考文獻: FILA: FINE-GRAINED VISION LANGUAGE MODELS,https://arxiv.org/pdf/2412.08378v3
本文轉載自??大模型自然語言處理?? 作者:Raschka

















