溫馨提示:
本篇文章已同步至"AI專題精講" Qwen2-VL:提升視覺語言模型對任意分辨率世界的感知能力
摘要
我們提出了 Qwen2-VL 系列,這是對先前 Qwen-VL 模型的重大升級,重新定義了視覺處理中傳統的預設分辨率方法。Qwen2-VL 引入了樸素動態分辨率機制(Naive Dynamic Resolution),使模型能夠動態地處理不同分辨率的圖像并生成不同數量的視覺 token。這一方法使模型能夠生成更高效且更準確的視覺表示,更加貼近人類的感知過程。該模型還整合了多模態旋轉位置編碼(Multimodal Rotary Position Embedding, M-RoPE),促進文本、圖像和視頻之間位置信息的有效融合。我們采用統一的圖像與視頻處理范式,增強了模型的視覺感知能力。為探索大型多模態模型的潛力,Qwen2-VL 系列研究了大規模視覺語言模型(LVLM)的擴展規律。通過擴大模型規模(提供 2B、8B 和 72B 參數版本)及訓練數據量,Qwen2-VL 系列實現了極具競爭力的性能。值得注意的是,Qwen2-VL-72B 模型在多個多模態基準測試中取得了與 GPT-4o 和 Claude3.5-Sonnet 相當的成績,超越了其他通用模型。代碼地址:https://github.com/QwenLM/Qwen2-VL
1 引言
在人工智能領域,大型視覺語言模型(Large Vision-Language Models, LVLM)代表著一次重大飛躍,它們基于傳統大語言模型在文本處理方面的強大能力,拓展至圖像、音頻和視頻等更廣泛的數據模態。這一能力的擴展使得 LVLM 成為解決各類現實問題的不可或缺工具。LVLM 因其能夠將廣泛而復雜的知識壓縮為可用表征的獨特能力,正推動更加全面的認知系統的發展。通過整合多樣的數據形式,LVLM 力求更貼近人類感知和交互的復雜方式,從而更準確地再現人類理解世界的方式。
近期 LVLM 的發展突飛猛進(Li et al., 2023c; Liu et al., 2023b; Dai et al., 2023; Zhu et al., 2023; Huang et al., 2023a; Bai et al., 2023b; Liu et al., 2023a; Wang et al., 2023b; OpenAI., 2023; Team et al., 2023),這些模型普遍采用視覺編碼器 → 跨模態連接器 → LLM 的通用架構。這一設置結合以 next-token 預測為主要訓練目標,再加上高質量數據集的可用性(Liu et al., 2023a; Zhang et al., 2023; Chen et al., 2023b; Li et al., 2023b),推動了該領域的快速進步。其他推動因素還包括更大規模的模型架構(Alayrac et al., 2022)、更高分辨率的圖像(Li et al., 2023a,d)、以及先進技術如專家混合模型(Mixture-of-Experts, MoE)(Wang et al., 2023b; Ye et al., 2023b)、模型集成(Lin et al., 2023)和更復雜的視覺-文本連接器(Ye et al., 2023a),它們都顯著增強了 LVLM 對復雜視覺和文本信息的處理能力。
然而,當前的大型視覺語言模型(LVLM)通常受限于固定的圖像輸入尺寸。標準的 LVLM 通常將輸入圖像編碼為固定分辨率(例如 224×224),通常通過下采樣或上采樣圖像的方式實現(Zhu 等,2023;Huang 等,2023a),或采用“縮放-填充”(scale-then-padding)的方法(Liu 等,2023b,a)。盡管這種“一刀切”的策略便于在統一分辨率下處理圖像,但也限制了模型在不同尺度上捕捉信息的能力,特別是在處理高分辨率圖像時會導致細節信息的顯著丟失。因此,這類模型在感知尺度和細節方面無法達到人類視覺系統的敏感度。
此外,大多數 LVLM 傾向于依賴靜態凍結的 CLIP 風格視覺編碼器(Radford 等,2021),這引發了一個問題,即這種預訓練模型所生成的視覺表示是否足夠豐富,尤其是在需要復雜推理和處理圖像中精細細節的任務中。近期的研究(Bai 等,2023b;Ye 等,2023a)試圖通過在 LVLM 訓練過程中微調視覺 transformer(ViT)來緩解這些限制,實踐表明這一方法確實能帶來性能提升。為了進一步增強模型對多種分辨率的適應能力,我們在 LVLM 訓練過程中引入了動態分辨率訓練策略。具體而言,我們在 ViT 中采用了二維旋轉位置編碼(2D RoPE),從而使模型能夠更好地捕捉跨空間尺度的信息。
當處理視頻內容時,視頻本質上是一系列幀的序列,許多現有模型仍將其視為一個獨立的模態。然而,理解現實世界的動態本質——如視頻中所體現的變化——對于模型理解現實復雜性至關重要。與天然一維的文本不同,現實世界是三維存在的。而當前模型中采用的一維位置編碼顯著限制了其對三維空間和時間動態的建模能力。為彌補這一差距,我們提出了多模態旋轉位置編碼(Multimodal Rotary Position Embedding, MRoPE),它采用獨立的組件分別表示時間信息和空間信息。這使得模型能夠自然地理解動態內容(例如視頻或流媒體數據),從而提升其理解和交互現實世界的能力。
此外,與大型語言模型(LLM)的擴展進展相比,當前的大型視覺語言模型(LVLM)在訓練數據量和模型參數規模的擴展方面仍處于探索初期。對于 LVLM 的擴展規律(scaling laws)——即模型規模和數據量的增長如何影響性能——的研究仍是一個開放且極具潛力的領域。
在本研究中,我們推出了 Qwen 家族中最新的大型視覺語言模型系列:Qwen2-VL 系列,包括三個開放權重的模型,參數規模分別為 20 億、80 億和 720 億。如下圖 1 所示,Qwen2-VL 的關鍵進展包括:
- 在多種分辨率與長寬比下具備最先進的理解能力:Qwen2-VL 在多個視覺基準測試上取得領先成績,包括 DocVQA、InfoVQA、RealWorldQA、MTVQA、MathVista 等。
- 對長時長視頻(超過 20 分鐘)的理解能力:Qwen2-VL 能夠理解長度超過 20 分鐘的視頻,顯著提升其在基于視頻的問答、對話、內容創作等任務中的表現。
- 具備強大的設備操作代理能力:憑借先進的推理與決策能力,Qwen2-VL 可集成至手機、機器人等設備中,實現基于視覺輸入和文本指令的自主操作。
- 多語言支持:為服務全球用戶,除了支持英文和中文外,Qwen2-VL 還支持圖像內的多語言上下文理解,包括大多數歐洲語言、日語、韓語、阿拉伯語、越南語等。
2 方法
Qwen2-VL 系列包含三種規模的模型,分別為 Qwen2-VL-2B、Qwen2-VL-7B 和 Qwen2-VL-72B。表 1 展示了其超參數與關鍵信息。值得注意的是,Qwen2-VL 在所有不同規模的 LLM 中均使用一個擁有 6.75 億參數的 Vision Transformer(ViT),從而確保 ViT 的計算負擔不會隨著語言模型規模的變化而變化。
2.1 模型結構
圖 2 展示了 Qwen2-VL 的整體結構。我們保留了 Qwen-VL(Bai et al., 2023b)框架,該框架集成了視覺編碼器和語言模型。為了適配不同規模的模型,我們采用了約 6.75 億參數的 Vision Transformer(ViT)(Dosovitskiy et al., 2021),可處理圖像與視頻輸入。在語言處理部分,我們選用了性能更強的 Qwen2 系列語言模型(Yang et al., 2024)。
為了進一步提升模型對視頻中視覺信息的感知與理解能力,我們引入了若干關鍵升級:
Naive Dynamic Resolution
Qwen2-VL 的一個關鍵架構改進是引入了 Naive Dynamic Resolution 支持(Dehghani et al., 2024)。與 Qwen-VL 不同,Qwen2-VL 現在可以處理任意分辨率的圖像,并動態地將其轉換為可變數量的視覺 token1。為支持這一特性,我們對 ViT 進行了如下修改:
- 移除原始的絕對位置嵌入(absolute position embedding)
- 引入了 2D-RoPE(Su et al., 2024; Su, 2021),用于捕捉圖像中的二維位置信息
在推理階段,不同分辨率的圖像會被打包成一個統一的序列,并通過控制打包后的序列長度來限制 GPU 的顯存占用。
為了進一步減少每張圖像生成的視覺 token 數量,我們在 ViT 之后添加了一個簡單的 MLP 層,用于將相鄰的 2×2
token 壓縮為一個 token。壓縮后的視覺 token 以特殊 token <|vision_start|>
和 <|vision_end|>
開始和結束。
例如,假設圖像分辨率為 224 × 224
,ViT 的 patch_size = 14
,則編碼后原本會生成 256 個 token,經壓縮后將減少為約 66
個 token 輸入到 LLM 中。
多模態旋轉位置嵌入(M-RoPE)
另一個關鍵的架構創新是提出了 Multimodal Rotary Position Embedding(M-RoPE)。與 LLM 中傳統的一維 RoPE(1D-RoPE)只能編碼一維位置信息不同,M-RoPE 能夠有效建模多模態輸入的多維位置信息。
其核心思想是:將原始的旋轉位置嵌入拆分為三個維度:
- 時間維(temporal)
- 高度維(height)
- 寬度維(width)
具體而言:
- 對于文本輸入:三者使用相同的位置 ID,因此 M-RoPE 等價于普通的一維 RoPE。
- 對于圖像輸入:每個視覺 token 的 時間維 ID 保持不變,而 高度與寬度維 ID 則依據其在圖像中的位置進行分配。
- 對于視頻輸入:模型將視頻視作幀序列每一幀的時間 ID 遞增,其高度與寬度維 ID 分配方式與圖像一致。
- 多模態輸入情形下:每種模態的位置編號通過將前一個模態的最大位置 ID 加一來初始化,防止沖突。
如圖 3 所示,M-RoPE 不僅強化了位置建模能力,還降低了圖像和視頻的 position ID 數值范圍,這使得模型在推理時能夠更好地外推至更長的序列。
Unified Image and Video Understanding
Qwen2-VL 采用了一種混合訓練策略,結合了圖像和視頻數據,確保其在圖像理解與視頻理解方面均具備能力。為了盡可能完整地保留視頻信息,我們以每秒兩幀的速率對每個視頻進行采樣。此外,我們使用了深度為 2 的 3D 卷積(Carreira and Zisserman, 2017)來處理視頻輸入,使模型能夠處理 3D tubes 而非 2D patches,從而在不增加序列長度的情況下處理更多的視頻幀(Arnab et al., 2021)。為保持一致性,每張圖像被視為兩幀完全相同的幀。為平衡處理長視頻的計算開銷與整體訓練效率,我們動態調整每幀視頻的分辨率,限制每段視頻的總 token 數量為 16384。該訓練方法在模型對長視頻的理解能力與訓練效率之間取得了平衡。
2.2 訓練
參考 Qwen-VL(Bai et al., 2023b),我們采用三階段訓練方法。在第一階段,我們專注于訓練 Vision Transformer(ViT)組件,使用大量圖文對語料提升 Large Language Model(LLM)中的語義理解能力。在第二階段,我們解凍全部參數,使用更廣泛的數據進行訓練,以實現更全面的學習。在最后階段,我們凍結 ViT 參數,僅使用指令數據集對 LLM 進行精調。模型預訓練所使用的數據集非常多樣,包含圖文對、光學字符識別(OCR)數據、交錯圖文文章、視覺問答數據集、視頻對話以及圖像知識數據集。我們主要的數據來源包括清洗后的網頁、開源數據集和合成數據。本次預訓練的數據知識截止日期為 2023 年 6 月。這種多樣化的數據組成對構建強大的多模態理解能力起到了關鍵作用。
在初始預訓練階段,Qwen2-VL 接觸了約 6000 億個 token 的語料。Qwen2-VL 的 LLM 組件以 Qwen2(Yang et al., 2024)中的參數進行初始化,而視覺編碼器則初始化為來源于 DFN 的 ViT。然而,原始 DFN 中 ViT 的固定位置嵌入(Fang et al., 2023)被 RoPE-2D 替代。該預訓練階段主要聚焦于學習圖文關系、通過 OCR 識別圖像中的文本內容以及圖像分類任務。這樣的基礎訓練有助于模型建立起對核心視覺-文本關聯關系的穩健理解與對齊能力。
第二階段的預訓練是一次顯著的進階,新增了 8000 億個 token 的圖像相關數據。在這一階段,引入了更多混合圖文內容,使模型能夠更細致地理解視覺信息與文本信息之間的交互關系。視覺問答數據集的加入進一步提高了模型回答圖像相關問題的能力。此外,多任務數據集的引入對于訓練模型具備同時處理多種任務的能力至關重要,這種能力在面對復雜的現實數據時尤為重要。與此同時,純文本數據依然在模型語言能力的維持和提升中扮演關鍵角色。
在整個預訓練過程中,Qwen2-VL 共處理了累計 1.4 萬億個 token。這些 token 包括文本 token 以及圖像 token。然而,在訓練過程中,我們僅對文本 token 提供監督。這種對大量多樣語言與視覺場景的接觸確保模型能夠深入理解視覺與文本信息之間復雜的關系,從而為各種多模態任務奠定了堅實基礎。
在指令微調階段,我們采用 ChatML(OpenAI, 2024)格式構造指令跟隨數據。該數據集不僅包含純文本對話數據,也包括多模態對話數據。多模態部分涵蓋圖像問答、文檔解析、多圖比較、視頻理解、視頻流對話以及基于 agent 的交互。我們這種全面的數據構建方法旨在提升模型對各種模態下指令的理解與執行能力。通過引入多樣化的數據類型,我們希望打造一個更具通用性和穩健性的語言模型,使其不僅能夠勝任傳統的文本交互任務,還能處理復雜的多模態任務。
2.2.1 數據格式
與 Qwen-VL 保持一致,Qwen2-VL 同樣使用特殊 token 來區分視覺輸入與文本輸入。在圖像特征序列的起始與結束處插入 <|vision_start|>
和 <|vision_end|>
token,以標記圖像內容的邊界。
Dialogue Data. 在對話格式方面,我們使用 ChatML 格式構建指令微調數據集,其中每輪交互的內容使用兩個特殊 token(<|im_start|>
和 <|im_end|>
)進行標記,以便實現對話的終止。藍色標記的部分表示有監督的數據區域。
Visual Grounding. 為了賦予模型視覺定位(visual grounding)能力,邊界框的坐標被歸一化到 [0,1000)[0, 1000) 范圍內,并表示為 “(Xtop left, Ytop left), (Xbottom right, Ybottom right)” 的形式。使用 <|box_start|>
和 <|box_end|>
token 來標記邊界框文本的起始與結束。為了準確地將邊界框與其對應的文本描述關聯起來,我們引入 <|object_ref_start|>
和 <|object_ref_end|>
token,用于指示邊界框所引用的內容,從而使模型能夠有效地理解并生成特定區域的精確描述。
Visual Agent. 為了將 Qwen2-VL 發展為通用的 VL-Agent,我們將各種代理任務,如 UI 操作、機器人控制、游戲和導航,視為順序決策問題,使得 Qwen2-VL 能夠通過多步驟的動作執行來完成任務。對于每個任務,我們首先定義一組允許的動作和函數調用的關鍵字模式(下劃線)(Qwen Team, 2024)。然后,Qwen2-VL 分析觀察結果,進行推理和規劃,執行選擇的動作,并與環境互動以獲取新的觀察數據。這個過程會反復循環,直到任務成功完成。通過整合各種工具并利用大型視覺語言模型(LVLMs)的視覺感知能力,Qwen2-VL 能夠迭代地執行涉及現實世界視覺交互的日益復雜的任務。
2.3 多模態模型基礎設施
Qwen2-VL 模型是在阿里巴巴云的 PAI-Lingjun 智能計算服務(AlibabaCloud, 2024c)上進行訓練的,利用其可擴展的計算能力、自動恢復和延遲檢測功能。
存儲。
我們使用阿里巴巴云的超高速 CPFS(Cloud Parallel File Storage)(Alibaba-Cloud, 2024a)來構建 Qwen2-VL 的預訓練和后訓練存儲系統。我們將文本數據和視覺數據存儲解耦。文本數據簡單地存儲在 CPFS 上,并使用 mmap 進行高效訪問。對于視覺數據,我們使用阿里巴巴云的 OSS(Object Storage Service)(Alibaba-Cloud, 2024b)進行持久化存儲。在訓練過程中,我們通過 OSS 的 Python 客戶端并發訪問視覺數據,并調整并發和重試參數,以避免達到 QPS(每秒查詢數)限制。我們還發現視頻數據解碼是一個主要瓶頸,尤其是對于長視頻。在多次嘗試使用開源軟件(FFmpeg-Developers, 2024)和內部軟件失敗后,我們選擇了緩存解碼技術。檢查點保存每個 GPU 的優化器和模型狀態到 CPFS。
并行性
我們使用結合了數據并行性(DP)(Li et al., 2020)、張量并行性(TP)(Krizhevsky et al., 2012;Shoeybi et al., 2019)和流水線并行性(PP)(Huang et al., 2019;Narayanan et al., 2021;Lamy-Poirier, 2023)的 3D 并行性來擴展 Qwen2-VL 模型訓練。我們還利用 deepspeed 的 zero-1 冗余優化器(Rajbhandari et al., 2020)對狀態進行分片,以節省內存。我們使用了帶有選擇性檢查點激活(Chen et al., 2016)的序列并行性(SP)(Korthikanti et al., 2023)來減少內存使用。當啟用 TP 訓練時,我們始終將視覺編碼器和大型語言模型一起分片,而不是視覺合并器,因為它的參數較少。我們發現 TP 訓練會因卷積運算符的非確定性行為導致不同的模型共享權重。我們通過對共享權重進行離線歸約來解決這個問題,從而避免了額外的全歸約通信步驟。這種方法對性能的影響最小。我們為 Qwen2-VL 72B 訓練利用了 1F1B PP(Narayanan et al., 2021)。我們將視覺編碼器、視覺適配器和多個 LLM 的解碼器層合并為一個階段,并均勻分配其余的解碼器層。請注意,視覺和文本序列長度對于每個數據點是動態的。在啟動 1F1B 過程之前,我們廣播動態序列長度,并使用批次索引訪問形狀信息。我們還實現了交錯 1F1B PP(Narayanan et al., 2021),但發現它比標準的 1F1B 設置更慢。
軟件
我們使用 PyTorch(Paszke et al., 2019;Ansel et al., 2024)版本 2.1.2 和 CUDA 11.8(Nvidia, 2024b)進行訓練。此外,我們利用 flash-attention(Dao et al., 2022;Dao, 2024;Shah et al., 2024)來高效訓練視覺編碼器和 LLM。我們還使用了融合運算符(Nvidia, 2024a),如 LayerNorm(Ba et al., 2016)、RMSNorm(Zhang 和 Sennrich, 2019)和 Adam(Loshchilov 和 Hutter, 2019)。除此之外,我們在訓練過程中利用了矩陣乘法的通信與計算重疊。
3 實驗
在本節中,我們首先通過在多種視覺基準上的比較分析評估模型的性能,展示我們方法的優勢。接著,我們詳細檢驗了特定能力,包括通用視覺感知、文檔理解、多語言圖像識別、視頻理解和代理能力。最后,我們呈現了一個消融研究,探討我們方法中的幾個關鍵組成部分。
溫馨提示:
閱讀全文請訪問"AI深語解構" Qwen2-VL:提升視覺語言模型對任意分辨率世界的感知能力