1. 模型背景
????????前兩天我們在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介紹了將ViT與推理模型結合構造多模態推理模型的案例,其中提到了VLM的應用。追溯起來就是兩篇前期工作:Vision LLM以及CogVLM。
? ? ? ? 今天準備回顧一下CogVLM。視覺語言模型具有很強的通用性。許多視覺和跨模態任務可以被表述為下一個token預測。
????????先來看張圖,CogVLM直接拉滿。CogVLM通過在注意力和FFN層中引入可訓練的視覺專家模塊,在預訓練的語言模型和圖像編碼器之間建立了橋梁。這種方法使得視覺語言特征能夠深度融合,并且不會犧牲任何自然語言處理任務的性能。CogVLM-17B在17個經典跨模態基準測試中取得了最先進的表現,包括NoCaps、Flicker30k等圖像標注數據集,OKVQA、TextVQA、OCRVQA、ScienceQA等VQA數據集,MM-Vet、MMBench、SEED-Bench、LLaVABench、POPE、MMMU、MathVista等LVLM基準測試,以及RefCOCO、RefCOCO+、RefCOCOg、Visual7W等視覺定位數據集。
2. 模型結構
????????CogVLM的模型,用于實現圖像文本的聯合理解與生成。該模型包括四個基本組件:視覺Transformer編碼器、多層感知機適配器、預訓練的大語言模型以及視覺專家模塊。其中,視覺專家模塊能夠將不同注意力頭的語義信息映射到不同的特征空間中,從而實現深度視覺語言特征對齊。該模型采用了統一指令監督微調(SFT)的方式對數據進行訓練。
????????ViT 編碼器。在 CogVLM-17B 中使用了預訓練的 EVA2-CLIP-E。由于其專門用于對比學習聚合 [CLS] 特征,因此移除了 ViT 編碼器的最后一層。
????????MLP適配器。為了將ViT的輸出映射到與單詞嵌入的文本特征相同的空間中,使用了MLP適配器,一個兩層MLP(SwiGLU)。在語言模型中所有圖像特征共享相同的詞元位置ID。
????????預訓練的大語言模型。CogVLM 的模型設計與GPT風格預訓練大模型兼容。具體來說,CogVLM-17B 采用 Vicuna1.5-7B 進行進一步訓練。對所有注意力操作(包括圖像特征之間的注意力)應用因果遮蓋。
????????視覺專家模塊。在每一層中添加一個視覺專家模塊,以實現深度視覺語言特征對齊。具體來說,每個層中的視覺專家模塊由一個 QKV 矩陣和每個層中的 MLP 組成。QKV 矩陣和 MLP 的形狀與預訓練的語言模型相同,并從其中進行初始化。語言模型中的每個注意力頭都會捕獲語義信息的不同方面,而可訓練的視覺專家可以將圖像特征轉換為與不同頭部對齊,從而實現深度融合。
????????位置嵌入。在 RoPE 中,允許所有視覺token共享一個單個的位置 ID,因為當它們被輸入到 ViT 時,它們已經包含了位置信息。這種方法緩解了 LLM 中token之間的遠程注意力衰減的影響。由于一張圖片可以占據數百到數千個token,并且典型的輸入序列結構為 "?query",使用傳統的位置編碼會導致過長的編碼序列。此外,它還會導致查詢更多地關注更接近它的圖像序列,即圖像的下部分。
3. 論文實驗
3.1 預訓練
3.1.1 數據
????????用于預訓練的圖像文本對都是公開可用的,包括LAION-2B和COYO-700M。在刪除了損壞的URL、NSFW 圖像、帶有嘈雜標題的圖像、具有政治偏見的圖像以及具有 >6 或 <1/6 的寬高比的圖像后,大約有 15 億張圖像可用于預訓練。
? ? ? ? 此外,還制作了一個包含 4000 萬張圖像的visual grounding數據集。圖像標題中的每個名詞都與邊界框相關聯,以指示圖像中的位置。構建過程,通過spaCy提取名詞,并使用GLIPv2預測邊界框。圖像文本對是從LAION-115M中采樣而來的,是濾過的LAION-400M的一個子集。篩選并保留了4000萬張圖像的一部分,以確保超過75%的圖像至少包含兩個邊界框。
3.1.2 訓練
????????預訓練的第一階段是圖像標題損失,即文本部分的下一個token預測。在上面介紹的 15 億對圖像-文本對上用批量大小為 8,192 的方式訓練了 120,000 次 CogVLM-17B 模型。預訓練的第二階段是圖像標題生成和指代表達式理解(REF)的混合。REF 是一項任務,根據對象的文本描述來預測圖像中的邊界框,以視覺問答的形式進行訓練,例如問題:物體在哪里?回答:[[x0, y0, x1, y1]]。x 和 y 坐標范圍從 000 到 999,表示圖像中的歸一化位置。僅考慮“答案”部分中下一個token預測的損失。在上述介紹的文本-圖像對和視覺定位數據集上使用 1,024 的批量大小預訓練了第二階段模型 60,000 次迭代。在最后的 30,000 次迭代中,將輸入分辨率從 224x224 改為 490x490。總可訓練參數數量為 6.5B。這里之所以升維,是可以喂入更高精度更多細節的內容,提升模型的理解能力。
3.1.3 對齊
????????在指導對齊階段,訓練了兩個通用模型:CogVLM-Chat 和 CogVLM-Grounding。CogVLM-Chat 接受自然語言輸入和輸出,而 CogVLM-Grounding 則接受帶框的輸入和輸出。
????????CogVLM-Chat。在研究中整合了來自各種開源視覺問答數據集的數據,包括 VQAv2 ,OKVQA,TextVQA,OCRvQA,ScienceQA,以及以多輪對話格式編排的數據集,如LLaVA-Instruct,LRV-Instruction,LLaVAR。然后在這些多樣化的數據集上進行了統一指令監督微調(SFT)。SFT 數據的質量和完整性至關重要;最初通過僅使用語言GPT-4管道生成的LLaVA-Instruct數據集中存在某些不準確之處。需要通過手動檢查和注釋仔細糾正這些錯誤,以確保數據質量。視覺問答數據集通常以簡潔的形式呈現,通常是單個單詞的答案。為了適應這種多樣性,在搜索階段,需要使用格式為:(1)用于簡潔的回答(問題:簡短答案:);(2)用于擴展討論的提示(問題:答案:)。在訓練過程中,模型經過?6000 次迭代,學習率為 1e-5,批量大小為 1024。為了增強并確保訓練的穩定性,激活了視覺編碼器的參數,并將其學習率調整為剩余訓練參數的十分之一。
? ? ? ? CogVLM-Grounding。為了賦予模型一致、交互式的視覺語義定位能力,收集了一個高質量的數據集,該數據集包含四種類型的定位數據:(1) 基于圖像的標注(GC)——在圖像中每個名詞短語后跟相應的指代邊界框;(2) 表達式生成(REG) ——針對每張圖片,其上的每個邊界框都被標記上準確描述文本表達式;(3) 基于視頻的注釋(VG)——每個視頻幀都有與其對應的準確描述文本表達式;(4) 視覺問答(QA)——每個問題都帶有正確答案所在視頻幀的準確描述文本表達式。
3.2??多模態基準測試
? ? ? ? 圖像字幕生成。這些任務的主要目的是為給定圖像生成文本摘要,總結主要的內容。使用數據集包括 NoCaps,COCO ,Flickr30k ,以及TextCaps進行評估。
????????視覺問答。視覺問答任務要求模型根據給定的圖像回答可能側重于不同視覺內容的問題。評估涵蓋多種數據集,包括 VQAv2、OKVQA、TextVQA、OCRvQA和 ScienceQ。LVLM基準主要用于評估大型多模態模型的高級功能,如對象識別和定位、OCR、視覺描述和視覺知識推理。
????????視覺定位。通用模型在所有任務上都取得了不錯的性能。
3.3?裁剪研究
????????在 6,000 個迭代周期和批量大小為 8,192 的情況下進行消融研究。為了評估 CogVLM 模型的有效性,在多個結構變體和調優策略上進行,包括:
1)只調整 MLP Adapter 層;
2)調整所有 LLM 參數以及不添加視覺專家的 Adapter;
3)每四個 LLM 層僅添加一個視覺專家;
4)在所有層中僅向 FFN 添加視覺專家。????????
4. 參考材料
【1】CogVLM: Visual Expert for Pretrained Language Models