開(kāi)源全能圖像模型媲美GPT-4o!理解生成編輯同時(shí)搞定,解決擴(kuò)散模型誤差累計(jì)問(wèn)題
OpenAI GPT-4o發(fā)布強(qiáng)大圖片生成能力后,業(yè)界對(duì)大模型生圖能力的探索向全模態(tài)方向傾斜,訓(xùn)練全模態(tài)模型成研發(fā)重點(diǎn)。
開(kāi)源的MLLMs和擴(kuò)散模型已經(jīng)過(guò)大規(guī)模預(yù)訓(xùn)練,其從零開(kāi)始訓(xùn)練統(tǒng)一任務(wù),不如取長(zhǎng)補(bǔ)短,將MLLMs的語(yǔ)言建模能力,與擴(kuò)散模型的像素級(jí)圖像建模能力,進(jìn)行有機(jī)的結(jié)合。
基于這個(gè)思路,ModelScope團(tuán)隊(duì)提出可同時(shí)完成圖像理解、生成和編輯的統(tǒng)一模型Nexus-Gen,在圖像質(zhì)量和編輯能力上達(dá)GPT-4o同等水平,并將成果全方位開(kāi)源,望引發(fā)開(kāi)發(fā)者討論,促進(jìn)All-to-All模型領(lǐng)域發(fā)展。
模型先進(jìn)行圖像生成,然后進(jìn)行圖像理解的可視化案例:
Nexus-Gen技術(shù)細(xì)節(jié)
總體框架
Nexus-Gen采用了與GPT-4o類(lèi)似的 token → [transformer] → [diffusion] → pixels 技術(shù)路線,融合了SOTA MLLMs的強(qiáng)大文本預(yù)測(cè)能力和Diffusion模型的強(qiáng)大圖像渲染能力,其總體架構(gòu)如圖所示。
作為一個(gè)All-to-All模型,Nexus-Gen的輸入和輸出都支持圖像和文本模態(tài),自回歸Transformer輸出的文本Token進(jìn)行分類(lèi)后解碼成對(duì)應(yīng)的輸出文本。而輸出的視覺(jué)Token的embeddings則會(huì)作為條件輸入給Vision Decoder中解碼為輸出圖像。
之前的All-to-All模型大多直接使用自回歸Transformer直接對(duì)圖像的像素空間進(jìn)行建模,然后用VAE等模型解碼為圖像,導(dǎo)致圖像質(zhì)量較差。
為了保證圖像質(zhì)量,Nexus-Gen選擇在高維特征空間對(duì)圖像進(jìn)行建模,并選擇SOTA的擴(kuò)散模型作為視覺(jué)解碼器。
相比于處理單一任務(wù)的模型,All-to-All模型的潛力在于圖像理解、生成、編輯等任務(wù)可以相互促進(jìn)、互相組合。
為了完成這一目標(biāo),將模型的輸入和輸出特征空間限定在同一個(gè)連續(xù)高維特征空間,統(tǒng)一使用Vision Encoder編碼圖像得到高維特征。對(duì)于理解任務(wù),這些特征直接輸入模型中作為先驗(yàn)。對(duì)于生成任務(wù),這些特征則作為真值指導(dǎo)模型的訓(xùn)練。
預(yù)填充自回歸策略
在訓(xùn)練階段,自回歸模型直接使用真值作為輸入序列,然后將輸入序列左移一位后計(jì)算損失函數(shù)。在推理階段,則采用Token-by-Token的自回歸:即每預(yù)測(cè)一個(gè)Token,就將其送回輸入,預(yù)測(cè)后續(xù)的Token。
團(tuán)隊(duì)發(fā)現(xiàn),將這種自回歸范式,直接運(yùn)用在連續(xù)特征空間的圖像Embedding預(yù)測(cè)上,會(huì)帶來(lái)比較嚴(yán)重的誤差累計(jì)問(wèn)題。
如下圖所示,從第一個(gè)黃色的圖像Token開(kāi)始,預(yù)測(cè)的Embedding就存在誤差。將帶誤差的Embedding送回輸入中,會(huì)導(dǎo)致后續(xù)的Embedding預(yù)測(cè)誤差不斷增大,最終導(dǎo)致整個(gè)圖像Token序列預(yù)測(cè)失敗。
誤差累計(jì)本質(zhì)上是由訓(xùn)練和推理行為不一致導(dǎo)致的。為了解決這個(gè)問(wèn)題,魔搭團(tuán)隊(duì)提出了預(yù)填充自回歸的策略,如下圖所示。在訓(xùn)練時(shí)使用可學(xué)習(xí)特殊Token填充對(duì)應(yīng)的圖像Embedding位置,這樣就可以讓模型學(xué)習(xí)直接預(yù)測(cè)任意位置的圖像Token的能力。
在推理階段,只要預(yù)測(cè)到圖像的起始Token BOI,就直接預(yù)填充N(xiāo)個(gè)特殊Token到輸入序列中。通過(guò)這種方式,能夠保證訓(xùn)練和推理階段行為的一致性,從而消除誤差累計(jì)。
任務(wù)構(gòu)建與訓(xùn)練細(xì)節(jié)
在Nexus-Gen工作之前,沒(méi)有看到過(guò)在統(tǒng)一的理解、生成和編輯任務(wù)上做訓(xùn)練的先例。所以魔搭團(tuán)隊(duì)首先從工程上,探索使用類(lèi)messages格式來(lái)定義所有任務(wù)的數(shù)據(jù)格式。如下圖所示。
之后,團(tuán)隊(duì)從開(kāi)源社區(qū)收集了約25M訓(xùn)練數(shù)據(jù)并轉(zhuǎn)化為以上統(tǒng)一的格式,其中,圖像理解數(shù)據(jù)6M,圖像生成數(shù)據(jù)12M,圖像編輯數(shù)據(jù)7M。
部分?jǐn)?shù)據(jù)使用Qwen-VL-max API進(jìn)行了重新標(biāo)注。其中,圖像編輯數(shù)據(jù)包含了團(tuán)隊(duì)在ModelScope社區(qū)最新開(kāi)源的,圖像編輯數(shù)據(jù)集系列ImagePulse。
這一系列數(shù)據(jù)集中,針對(duì)GPT-4o不同的圖像編輯能力,包含了添加、去除、改變、風(fēng)格遷移等原子能力而生成的,大約1M高質(zhì)量樣本。
此外后續(xù)團(tuán)隊(duì)也會(huì)將其他在訓(xùn)練過(guò)程中使用到的全部數(shù)據(jù),都進(jìn)行開(kāi)源。
由于Nexus-Gen將圖像特征統(tǒng)一在Vision Encoder的高維空間中,因此自回歸模型部分和擴(kuò)散模型部分可以分開(kāi)訓(xùn)練。
自回歸模型使用魔搭開(kāi)源的SWIFT框架訓(xùn)練,擴(kuò)散模型則使用了魔搭的DiffSynth-Studio框架訓(xùn)練。下表詳細(xì)描述了訓(xùn)練過(guò)程的細(xì)節(jié)。
自回歸模型采用了三階段訓(xùn)練策略,前兩個(gè)階段逐步將圖像生成和圖像編輯能力嵌入語(yǔ)言模型中,最后一個(gè)階段則采用少量高質(zhì)量數(shù)據(jù)來(lái)提升模型生圖質(zhì)量。
擴(kuò)散模型的訓(xùn)練目標(biāo)是將輸入條件由原本文本輸入調(diào)整為圖像Embedding輸入,采用單階段訓(xùn)練策略。
Nexus-Gen 功能展示
Nexus同時(shí)具備圖像理解、生成和編輯能力,以下是每個(gè)能力的可視化案例。
圖像理解
圖像生成
圖像編輯
未來(lái)展望
在模型融合訓(xùn)練、圖像Token數(shù)量提升、ScaleUp數(shù)據(jù)集和模型大小等等方面,Nexus-Gen依然存在著大量的優(yōu)化潛力,目前ModelScope團(tuán)隊(duì)在這些不同方向,還在進(jìn)行更深入的探索。
Nexus-Gen的誕生,驗(yàn)證了從SOTA的MLLMs和擴(kuò)散模型出發(fā),來(lái)對(duì)齊以GPT-4o為代表的閉源SOTA的可能性。其效果與GPT-4o具備許多共同點(diǎn),比如圖像編輯會(huì)導(dǎo)致原圖部分變化、可以文本潤(rùn)色進(jìn)行多樣化圖像生成等;團(tuán)隊(duì)也發(fā)現(xiàn)了許多OpenAI團(tuán)隊(duì)沒(méi)有揭露的現(xiàn)象,比如圖像編輯能力極大受益于圖像生成,統(tǒng)一模型使多prompt編輯、故事性編輯成為可能等等。
ModelScope社區(qū)會(huì)持續(xù)將探索過(guò)程的模型權(quán)重、訓(xùn)練數(shù)據(jù)以及工程框架全部開(kāi)源,歡迎社區(qū)對(duì)Nexus-Gen和All-to-All統(tǒng)一模型的技術(shù)未來(lái)進(jìn)行廣泛交流。
論文鏈接:https://arxiv.org/pdf/2504.21356
代碼鏈接:https://github.com/modelscope/Nexus-Gen
模型鏈接:https://www.modelscope.cn/models/DiffSynth-Studio/Nexus-Gen
數(shù)據(jù)集(ImagePulse)鏈接:https://www.modelscope.cn/collections/ImagePulse----tulvmaidong-7c3b8283a43e40