僅1.3B!Janus 統一多模態理解和生成 原創
DeepSeek開源了一個僅1.3B大小的多模態大模型:Janus(兩面神),統一了多模態理解和生成。通過將視覺編碼解耦成獨立的pathway,同時僅使用一個統一的transformer架構進行處理。Janus在多模態理解和生成基準測試中超越了以往的統一模型,作為一個多模態“小”模型具有顯著的優勢。
Paper:??? https://arxiv.org/abs/2410.13848????
Github: ???https://github.com/deepseek-ai/Janus???
Model: https://huggingface.co/deepseek-ai/Janus-1.3B
Janus
Janus 是一個統一的多模態理解和生成的大型語言模型(MLLM),它將多模態理解和生成的視覺編碼解耦。Janus 基于 DeepSeek-LLM-1.3b-base 構建,該模型訓練時使用了大約5000億個文本token的語料庫。在多模態理解方面,它使用 SigLIP-L 作為視覺編碼器,支持384 x 384像素的圖像輸入。在圖像生成方面,Janus 使用了LlamaGen的tokenizer,并且具有16倍的下采樣率。
Janus的訓練過程是分階段進行的,以確保模型在多模態理解和生成任務上都能達到高性能:
第一階段:訓練Adpater和圖像Head
- 目標:在這一階段,主要目標是在視覺和語言元素之間建立概念聯系,使大型語言模型(LLM)能夠理解圖像中顯示的實體,并具備初步的視覺生成能力。
- 訓練策略:在這一階段,視覺編碼器和LLM被保持凍結狀態,只有理解適配器、生成適配器和圖像頭部中的可訓練參數會被更新。
第二階段:統一預訓練
- 目標:在這一階段,通過多模態語料庫進行統一預訓練,使Janus能夠學習多模態理解和生成。
- 數據:使用所有類型的訓練數據,包括純文本數據、多模態理解數據和視覺生成數據。
- 訓練策略:受到Pixart的啟發,首先使用ImageNet-1k進行簡單的視覺生成訓練,幫助模型掌握基本的像素依賴關系。然后,使用通用的文本到圖像數據增強模型的開放領域視覺生成能力。
第三階段:監督微調(SFT)
- 目標:在這一階段,使用指令調整數據對預訓練模型進行微調,以增強其遵循指令和對話的能力。
- 訓練策略:除了生成編碼器之外,所有參數都會進行微調。
- 數據:為了確保Janus在多模態理解和生成方面的熟練程度,微調時不會對特定任務進行單獨模型微調。相反,使用混合的純文本對話數據、多模態理解數據和視覺生成數據,以確保在多種場景下的多功能性。
訓練細節:
- 損失函數:Janus作為一個自回歸模型,在訓練期間簡單地采用交叉熵損失函數。
- 推理方法:在推理過程中,模型完全采用next token prediction進行推理。對于純文本理解和多模態理解,按照預測分布順序采樣token。對于圖像生成,使用CFG(classifier-free guidance, 在訓練過程中,以10%的概率將文本到圖像數據中的文本條件替換為pad token,使模型具有無條件的視覺生成能力)
作為一個next token prediction的圖像生成模型,生成效果相當不錯:
同時作為一個多模態理解模型,僅1.3B且只有384的輸入分辨率,效果也超出預期。比如帶有文字的meme圖的理解,甚至也還行:
可以看出,多模態大模型生成和理解,越卷越統一;模型尺寸也有著越卷越小的趨勢。
本文轉載自公眾號思源數據科學 作者:思源Source
