上一篇:《搭建人工智慧多模態大語言模型的通用方法》
在今天的文章中,我將回顧2024年有關多模態大語言模型(LLM)的文獻資料,主要關注過去幾個月釋出的工作,以確保範圍合理。
因此,這並不是一個關於多模態LLM的歷史性概述或全面回顧,而是對最新進展的簡要探討。同時,我會盡量保持總結簡潔,不加太多無關內容,因為要介紹10項研究。
文章最後的結論部分會提供一個總結,比較這些論文中使用的方法。
4.1 Llama 3 模型系列
Meta AI 的 Llama 3 模型系列 論文(發表於2024年7月31日)在今年夏天釋出,但在LLM領域,感覺像是很久以前的事情了。然而,考慮到他們只是描述了多模態模型,但直到更晚才真正釋出模型,我認為將 Llama 3 包括在這份列表中是合理的。(Llama 3.2 模型正式宣佈並開放獲取的時間是2024年9月25日。)
Llama 3.2 是一種多模態模型,提供了 110億和900億引數的版本。這些模型基於之前描述的跨注意力(cross-attention)方法,與下圖所示一致。
Llama 3.2 的多模態LLM方法示意圖
(摘自 Llama 3 論文的註釋圖:https://arxiv.org/abs/2407.21783。這張圖為了突出影像部分,影片和語音部分被視覺遮蔽。)
注意,雖然圖中顯示了影片和語音作為可能的模態,但截至撰寫本文時,釋出的模型僅支援影像和文字。
Llama 3.2 使用了跨注意力方法,但與我之前提到的有些不同。通常在多模態LLM開發中,我們會凍結影像編碼器的引數,只更新語言模型的引數。然而,這裡的研究人員幾乎採取了相反的做法:他們更新了影像編碼器的引數,而語言模型的引數則保持不變。研究人員指出,這樣做是有意的,目的是保留其純文字能力,使得 110億和900億引數的多模態模型可以無縫替代 Llama 3.1 的80億和700億引數純文字模型,用於文字任務。
訓練流程
訓練分多個迭代,從 Llama 3.1 的文字模型開始。在新增影像編碼器和投影(即“介面卡”)層之後,模型在圖文資料上進行預訓練。接著,與 Llama 3 純文字模型訓練流程類似(我在之前的文章中寫過),模型進行指令和偏好微調。
不同於採用 CLIP 等預訓練模型作為影像編碼器,研究人員從零開始預訓練了一個視覺變換器(ViT)。具體而言,他們採用了經典視覺變換器架構(Dosovitskiy等,2020)中的 ViT-H/14 變體(6.3億引數)。他們在包含25億對圖文資料的資料集上進行了5個epoch的預訓練,這發生在將影像編碼器連線到LLM之前。(影像編碼器接收 224×224 解析度的影像,將其分割為14×14的網格,每個網格塊大小為16×16畫素。)
由於跨注意力層會顯著增加引數量,因此每四個變換器塊才新增一次跨注意力層。(對於80億引數的模型,這會增加30億引數;對於700億引數的模型,這會增加200億引數。)
4.2 Molmo 和 PixMo:開源權重與資料的多模態模型前沿探索
《Molmo 和 PixMo:開源權重與資料的多模態模型前沿探索》 論文(2024年9月25日)非常值得注意,因為它不僅承諾開源模型權重,還會開源資料集和原始碼,類似於純語言模型 OLMo LLM。(這對LLM研究非常有利,因為研究人員可以檢視完整的訓練過程和程式碼,還能在同一個資料集上進行消融實驗並復現結果。)
如果你好奇為什麼論文標題裡有兩個名字——Molmo 指代模型(Multimodal Open Language Model,多模態開源語言模型),而 PixMo(Pixels for Molmo)則是對應的資料集。
Molmo 解碼器(Decoder-Only)方法示意圖(方法A)
註釋圖改編自《Molmo 和 PixMo:開源權重與資料的多模態模型前沿探索》論文:
https://www.arxiv.org/abs/2409.17146
如上圖所示,影像編碼器使用的是現成的視覺變換器(Vision Transformer),具體來說是 CLIP 模型。“Connector”(聯結器)在這裡指代“投影器”,它的作用是將影像特徵與語言模型對齊。
Molmo 簡化了訓練流程,避免了多次預訓練階段,選擇了一種更簡單的統一訓練管道。這個方法更新了所有引數,包括基礎LLM、聯結器以及影像編碼器的引數。
Molmo 團隊為基礎LLM提供了多種選項:
• OLMo-7B-1024
(完全開源的模型框架)
• OLMoE-1B-7B
(一種專家混合架構,是最有效率的模型)
• Qwen2 7B
(一種開源權重模型,效能優於 OLMo-7B-1024)
• Qwen2 72B
(開源權重模型,也是效能最佳的模型)
4.3 NVLM:開放的前沿級多模態LLM
NVIDIA 的 NVLM:開放的前沿級多模態LLM 論文(2024年9月17日)非常有意思,因為它不僅專注於一種方法,而是同時探索了兩種方法:
• 方法A:統一嵌入解碼架構(“僅解碼器架構”,NVLM-D);
• 方法B:跨模態注意力架構(“基於跨注意力的架構”,NVLM-X)。
此外,他們還開發了一種混合方法(NVLM-H),並對這三種方法進行了公平對比。
三種多模態方法的概述
(註釋圖摘自《NVLM:開放的前沿級多模態LLM》論文:https://arxiv.org/abs/2409.11402)
正如下圖總結的那樣,NVLM-D 對應方法A,而 NVLM-X 對應方法B,具體在前文中已有討論。混合模型(NVLM-H)的概念是結合兩種方法的優點:首先輸入一張縮圖,然後透過跨注意力傳遞一組動態數量的影像塊,從而捕捉更高解析度的細節資訊。
研究團隊的發現可以總結如下:
-
NVLM-X 在處理高解析度影像時展現了卓越的計算效率。
-
NVLM-D 在OCR(光學字元識別)相關任務中達到了更高的準確率。
-
NVLM-H 結合了兩種方法的優勢。
訓練流程和方法
和 Molmo 及其他方法類似,NVLM 研究團隊不是從零開始預訓練一個多模態模型,而是從一個純文字LLM開始(通常這種方法表現更好)。此外,他們選擇使用指令微調後的LLM,而不是基礎LLM。具體來說,他們的基礎LLM是 Qwen2-72B-Instruct(據我所知,Molmo 使用的是 Qwen2-72B 基礎模型)。
在 NVLM-D 方法中,他們訓練了所有的LLM引數,而對於 NVLM-X,他們發現凍結原始LLM引數,僅在預訓練和指令微調階段訓練跨注意力層效果很好。
影像編碼器和投影器
在影像編碼器方面,他們沒有使用常見的 CLIP 模型,而是選擇了 InternViT-6B,並在所有階段保持引數凍結。
投影器使用的是一個多層感知器(MLP),而不是單一線性層。
4.4 Qwen2-VL:在任何解析度下增強視覺-語言模型對世界的感知
前面提到的兩個論文和模型——Molmo 和 NVLM——都基於 Qwen2-72B LLM。而在這篇論文中,Qwen 研究團隊自己釋出了一種多模態LLM,Qwen2-VL:在任何解析度下增強視覺-語言模型對世界的感知(發表於2024年10月3日)。
這項研究的核心是他們所謂的“Naive Dynamic Resolution”(簡單動態解析度)機制(“Naive”這個詞是有意使用的,並不是“Native”(原生)的拼寫錯誤,儘管“Native”這個詞也適合)。這個機制允許模型處理不同解析度的影像,而不是簡單地進行降取樣,從而能夠輸入原始解析度的影像。
多模態 Qwen 模型的概述
(註釋圖摘自 Qwen2-VL 論文:https://arxiv.org/abs/2409.12191)
該模型透過一個經過修改的視覺變換器(ViT)實現原生解析度輸入,這一修改去掉了原有的絕對位置嵌入(absolute position embeddings),並引入了二維旋轉位置編碼(2D-RoPE)。
他們使用了一個經典的視覺編碼器,引數量為 675M,以及不同大小的LLM主幹模型,具體引數如下面的表格所示。
不同 Qwen2-VL 模型的組成部分
(註釋圖摘自 Qwen2-VL 論文:https://arxiv.org/abs/2409.12191)
訓練過程分為三個階段:
-
僅預訓練影像編碼器;
-
解凍所有引數(包括LLM);
-
凍結影像編碼器,僅對LLM進行指令微調(instruction-finetuning)。
這三階段的流程結合了高效的視覺處理與強大的語言理解能力,從而使 Qwen2-VL 能夠更好地感知和處理來自現實世界的視覺輸入。
4.5 Pixtral 12B
Pixtral 12B(2024年9月17日)是 Mistral AI 的第一個多模態模型,它採用了方法A:統一嵌入解碼架構。遺憾的是,目前沒有公開的技術論文或報告,但 Mistral 團隊在他們的部落格中分享了一些有趣的細節。
有趣的是,他們選擇不使用預訓練的影像編碼器,而是從頭開始訓練了一個擁有 4億引數 的影像編碼器。至於 LLM 的主幹模型,他們使用了 12億引數的 Mistral NeMo 模型。
類似於 Qwen2-VL,Pixtral 也原生支援可變影像大小,具體如下面的示意圖所示。
Pixtral 如何處理不同大小影像的示意圖
(註釋圖來源於 Pixtral 部落格文章:https://mistral.ai/news/pixtral-12b/)
4.6 MM1.5:多模態LLM微調的方法、分析與洞察
《MM1.5:多模態LLM微調的方法、分析與洞察》 論文(2024年9月30日)提供了許多實用建議,並引入了一種混合專家多模態模型以及類似 Molmo 的稠密模型。這些模型的規模範圍從 1億引數 到 300億引數 不等。
該論文中描述的模型主要集中在方法A:統一嵌入變換器架構,這種架構能夠有效地組織輸入資料以進行多模態學習。
此外,論文還進行了多項有趣的消融研究,探討了資料組合以及使用座標標記(coordinate tokens)的效果。
MM1.5 方法的示意圖,包括用於表示邊界框的附加座標標記
(註釋圖來源於 MM1.5 論文:https://arxiv.org/abs/2409.20566)
4.7 Aria:一種開放的多模態原生混合專家模型
《Aria:一種開放的多模態原生混合專家模型》 論文(2024年10月8日)引入了另一種混合專家模型的方法,與 Molmo 和 MM1.5 系列中的某些變體類似。
Aria 模型擁有 24.9億引數,其中每個文字標記分配了 3.5億引數。影像編碼器(SigLIP)則擁有 4.38億引數。
該模型基於跨注意力方法,整體訓練流程如下:
-
從零開始訓練LLM主幹模型。
-
同時預訓練LLM主幹和視覺編碼器。
4.8 Baichuan-Omni
《Baichuan-Omni技術報告》(2024年10月11日)介紹了 Baichuan-Omni,這是一種基於方法A:統一嵌入解碼架構的 70億引數多模態LLM,如下圖所示:
Baichuan-Omni 模型概述,可以處理多種輸入模態
(註釋圖來源於 Baichuan-Omni 論文:https://arxiv.org/abs/2410.08565)
Baichuan-Omni 的訓練過程分為三階段:
-
投影器訓練:最初僅訓練投影器,視覺編碼器和語言模型(LLM)保持凍結狀態。
-
視覺編碼器訓練:接下來解凍視覺編碼器並進行訓練,LLM 仍然凍結。
-
完整模型訓練:最終解凍 LLM,允許整個模型進行端到端的訓練。
該模型採用 SigLIP 視覺編碼器,並引入 AnyRes 模組,透過降取樣技術處理高解析度影像。
儘管報告沒有明確說明LLM的主幹模型,但根據模型引數規模和命名規則,很可能是基於 Baichuan 7B LLM。
4.9 Emu3:下一標記預測是你唯一需要的
《Emu3:下一標記預測是你唯一需要的》 論文(2024年9月27日)提出了一種引人注目的替代擴散模型的影像生成方法,這種方法完全基於變換器解碼器架構。雖然它不是傳統意義上的多模態LLM(即專注於影像理解而非生成的模型),但 Emu3 非常有趣,因為它表明可以使用變換器解碼器進行影像生成,而這通常是擴散方法的領域。(不過需要注意的是,以前也有類似的方法,比如《Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation》。)
Emu3 是一種基於 LLM 的影像生成模型,可作為擴散模型的替代方案
(註釋圖摘自 Emu3 論文:https://arxiv.org/abs/2409.18869)
研究人員從零開始訓練了 Emu3,並使用直接偏好最佳化(DPO)方法將模型調整為符合人類偏好的結果。
該架構包含一個受 SBER-MoVQGAN 啟發的視覺標記器(Vision Tokenizer)。核心 LLM 架構基於 Llama 2,但整個模型完全從零開始訓練。
4.10 Janus:解耦視覺編碼以實現統一的多模態理解與生
我們之前關注的是用於影像理解的多模態LLM,並在上文中透過 Emu3 介紹了一個影像生成的例子。現在,《Janus:解耦視覺編碼以實現統一的多模態理解與生成》 論文(2024年10月17日)引入了一個框架,將理解和生成任務統一在一個LLM主幹中。
Janus 的一個關鍵特性是解耦視覺編碼路徑,以應對理解和生成任務的不同需求。研究人員指出,影像理解任務需要高維語義表示,而生成任務則需要影像的區域性細節和全域性一致性。透過分離這些路徑,Janus 能夠有效處理這些不同的需求。
Janus 使用的統一僅解碼器框架概述
(註釋圖摘自 Janus 論文:https://arxiv.org/abs/2410.13848)
該模型使用了與 Baichuan-Omni 相似的 SigLIP 視覺編碼器 處理視覺輸入。在影像生成方面,它使用向量量化(VQ)標記器處理生成過程。Janus 的基礎LLM為 DeepSeek-LLM,擁有 13億引數。
Janus 模型的三階段訓練流程
(註釋圖摘自 Janus 論文:https://arxiv.org/abs/2410.13848)
訓練過程分為以下三個階段:
-
階段I:僅訓練投影層和影像輸出層,LLM、理解和生成編碼器保持凍結狀態。
-
階段II:解凍LLM主幹和文字輸出層,使模型在理解和生成任務上進行統一的預訓練。
-
階段III:解凍整個模型,包括 SigLIP 影像編碼器,進行監督微調,使模型全面整合和最佳化其多模態能力。
結論
正如你可能注意到的,我幾乎完全跳過了模型和計算效能的對比。首先,在公共基準上比較 LLM 和多模態 LLM 的效能非常具有挑戰性,因為普遍存在的資料汙染問題,這意味著測試資料可能已包含在訓練資料中。
此外,架構元件的差異如此之大,以至於很難進行真正的公平對比。所以,向 NVIDIA 團隊致敬,他們開發了多種版本的 NVLM,至少使得僅解碼器和跨注意力方法之間的比較成為可能。
無論如何,這篇文章的主要結論是:多模態 LLM 可以透過多種不同的方法成功構建。下圖總結了本文中涉及的不同模型的元件和訓練方法。
本文涉及的不同模型及其子元件和訓練方法概述
希望你覺得這幾篇文章具有教育意義,並且對多模態 LLM 的工作原理有了更深入的理解!