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