DeepSeek多模態大模型Janus、Janus-Pro模型架構及優化方法淺談 原創
deepseek開源的多模態大模型-Janus再次升級,也來簡單看下Janus的架構設計。核心創新點:傳統的多模態模型通常使用單一視覺編碼器來處理多模態理解和生成任務,這會導致任務之間的沖突,因為這兩種任務對視覺信息的需求粒度不同。Janus 通過將視覺編碼解耦為獨立的路徑,分別處理多模態理解和生成任務,使兩個任務得到統一,并取得了比較好的性能。
- 多模態理解:使用 SigLIP 編碼器提取圖像的高級語義信息,適合理解任務。
- 視覺生成:使用 VQ Tokenizer 或 LlamaGen Tokenizer 提取圖像的細節信息,適合生成任務。
方法架構
文本理解路徑直接通過 LLM 的分詞器處理。 多模態理解路徑通過 SigLIP 編碼器和理解適配器處理。 視覺生成路徑通過 VQ Tokenizer 和生成適配器處理。 所有路徑的特征序列最終被拼接并輸入到統一的 Transformer 中進行處理
Janus 的架構設計:
- 文本理解:使用語言模型(LLM)自帶的分詞器將文本轉換為離散 ID,并獲取對應的特征表示。
- 多模態理解:使用 SigLIP 編碼器從圖像中提取高維語義特征,然后通過理解適配器(Und. Adaptor)將這些特征映射到 LLM 的輸入空間。
- 視覺生成:使用 VQ Tokenizer 將圖像轉換為離散 ID,然后通過生成適配器(Gen. Adaptor)將這些 ID 映射到 LLM 的輸入空間。
將上述特征序列拼接后輸入到統一的自回歸 Transformer 中進行處理。
訓練過程
訓練過程
- 第一階段:訓練適配器和圖像頭
在嵌入空間內創建視覺和語言元素之間的概念聯系,使 LLM(語言模型)能夠理解圖像中顯示的實體(讓LLM學會將SigLIP特征與實體名詞關聯),并具備初步的視覺生成能力。方法:凍結視覺編碼器和 LLM,只更新理解適配器、生成適配器和圖像頭中的可訓練參數。這一階段主要關注于讓模型學會如何將視覺信息和語言信息進行初步的融合和理解。 - 第二階段:統一預訓練
通過多模態語料庫的訓練,讓 Janus 能夠同時學習多模態理解和生成任務。方法:解凍 LLM,訓練除了encoder的所有部分,并利用多種類型的訓練數據,包括純文本數據、多模態理解數據和視覺生成數據。受 Pixart 的啟發,首先使用 ImageNet-1k 數據集進行簡單的視覺生成訓練,幫助模型掌握基本的像素依賴性。 隨后,使用通用的文本到圖像數據增強模型的開放域視覺生成能力。 這一階段的訓練數據包括純文本數據、多模態理解數據(如 WikiHow 和 WIT 數據集)和視覺生成數據(如 ImageNet-1k 和其他圖像-標題對數據)。 - 第三階段:監督微調
通過指令調整數據對預訓練模型進行微調,增強其指令跟隨和對話能力。方法: 微調除生成編碼器(繼續凍結生成編碼器)之外的所有參數。 專注于監督答案,同時屏蔽系統和用戶提示。 使用混合數據進行微調,包括純文本對話數據、多模態理解數據和視覺生成數據,確保模型在各種場景下的多功能性。
Janus-Pro
Janus-Pro的網絡結構和Janus基本一致,主要的改進點是在訓練策略、數據、模型大小上。
訓練改進
三個階段訓練過程改進:
- 第一階段:增加了在ImageNet數據集上的訓練步數,即使在固定LLM參數的情況下,模型也能有效建模像素依賴關系,并基于類別名稱生成合理圖像。
- 第二階段:去掉了ImageNet數據,直接使用正常的文本到圖像數據進行訓練,使模型能夠根據密集描述生成圖像。這種重新設計的方法提高了訓練效率和整體性能。
- 第三階段:在監督微調過程中,調整了不同類型數據的比例,將多模態數據、純文本數據和文本到圖像數據的比例從7:3:10調整為5:1:4。這種調整在保持視覺生成能力的同時,提高了多模態理解性能。
數據擴展
Janus-Pro在多模態理解和視覺生成方面擴展了訓練數據:
1、多模態理解
- 在第二階段預訓練數據中,參考DeepSeekVL2,增加了約9000萬樣本,包括圖像字幕數據集(如YFCC)以及表格、圖表和文檔理解數據(如Docmatix)。
- 在第三階段監督微調數據中,加入了DeepSeek-VL2中的額外數據集,如MEME理解、中文對話數據和增強對話體驗的數據集。
2、視覺生成
觀察到Janus中使用的現實世界數據質量較低且噪聲較大,導致文本到圖像生成不穩定。Janus-Pro加入了約7200萬合成美學數據樣本,使現實數據與合成數據的比例達到1:1。這些合成數據的提示是公開可用的,實驗表明,模型在合成數據上訓練時收斂更快,生成的文本到圖像輸出不僅更穩定,而且美學質量顯著提高。
模型擴展
Janus-Pro將模型規模從1.5B擴展到7B,驗證了解耦視覺編碼方法的可擴展性。使用更大的LLM時,多模態理解和視覺生成的損失收斂速度顯著提高。進一步證明了解耦視覺編碼方法的可擴展性。
實驗
參考文獻
- janus:Janus:DecouplingVisualEncoding for Unified Multimodal Understanding and Generation,https://arxiv.org/pdf/2410.13848
- janus_pro:https://github.com/deepseek-ai/Janus/blob/main/janus_pro_tech_report.pdf
本文轉載自公眾號大模型自然語言處理 作者:余俊暉
