Stable Diffusion 3技術(shù)報(bào)告出爐:揭露Sora同款架構(gòu)細(xì)節(jié)
很快啊,“文生圖新王”Stable Diffusion 3的技術(shù)報(bào)告,這就來(lái)了。
全文一共28頁(yè),誠(chéng)意滿(mǎn)滿(mǎn)。
“老規(guī)矩”,宣傳海報(bào)(??)直接用模型生成,再秀一把文字渲染能力:
所以,SD3這比DALL·E 3和Midjourney v6都要強(qiáng)的文字以及指令跟隨技能,究竟怎么點(diǎn)亮的?
技術(shù)報(bào)告揭露:
全靠多模態(tài)擴(kuò)散Transformer架構(gòu)MMDiT。
成功關(guān)鍵是對(duì)圖像和文本表示使用單獨(dú)兩組權(quán)重的方式,由此實(shí)現(xiàn)了比SD3之前的版本都要強(qiáng)的性能飛升。
具體幾何,我們翻開(kāi)報(bào)告來(lái)看。
微調(diào)DiT,提升文本渲染能力
在發(fā)布SD3之初,官方就已經(jīng)透露它的架構(gòu)和Sora同源,屬于擴(kuò)散型Transformer——DiT。
現(xiàn)在答案揭曉:
由于文生圖模型需要考慮文本和圖像兩種模式,Stability AI比DiT更近一步,提出了新架構(gòu)MMDiT。
這里的“MM”就是指“multimodal”。
和Stable Diffusion此前的版本一樣,官方用兩個(gè)預(yù)訓(xùn)練模型來(lái)獲得合適和文本和圖像表示。
其中文本表示的編碼用三種不同的文本嵌入器(embedders)來(lái)搞定,包括兩個(gè)CLIP模型和一個(gè)T5模型。
圖像token的編碼則用一個(gè)改進(jìn)的自動(dòng)編碼器模型來(lái)完成。
由于文本和圖像的embedding在概念上完全不是一個(gè)東西,因此,SD3對(duì)這兩種模式使用了兩組獨(dú)立的權(quán)重。
(有網(wǎng)友吐槽:這個(gè)架構(gòu)圖好像要啟動(dòng)“人類(lèi)補(bǔ)完計(jì)劃”啊,嗯是的,有人就是“看到了《新世紀(jì)福音戰(zhàn)士》的資料才點(diǎn)進(jìn)來(lái)這篇報(bào)告的”)
言歸正傳,如上圖所示,這相當(dāng)于每種模態(tài)都有兩個(gè)獨(dú)立的transformer,但是會(huì)將它們的序列連接起來(lái)進(jìn)行注意力操作。
這樣,兩種表示都可以在自己的空間中工作,同時(shí)還能考慮到另一種。
最終,通過(guò)這種方法,信息就可以在圖像和文本token之間“流動(dòng)”,在輸出時(shí)提高模型的整體理解能力和文字渲染能力。
并且正如之前的效果展示,這種架構(gòu)還可以輕松擴(kuò)展到視頻等多種模式。
具體測(cè)試則顯示,MMDiT出于DiT卻勝于DiT:
它在訓(xùn)練過(guò)程中的視覺(jué)保真度和文本對(duì)齊度都優(yōu)于現(xiàn)有的文本到圖像backbone,比如UViT、DiT。
重新加權(quán)流技術(shù),不斷提升性能
在發(fā)布之初,除了擴(kuò)散型Transformer架構(gòu),官方還透露SD3結(jié)合了flow matching。
什么“流”?
如今天發(fā)布的論文標(biāo)題所揭露,SD3采用的正是“Rectified Flow”(RF)。
這是一個(gè)“極度簡(jiǎn)化、一步生成”的擴(kuò)散模型生成新方法,入選了ICLR2023。
它可以使模型的數(shù)據(jù)和噪聲在訓(xùn)練期間以線(xiàn)性軌跡進(jìn)行連接,產(chǎn)生更“直”的推理路徑,從而可以使用更少的步驟進(jìn)行采樣。
基于RF,SD3在訓(xùn)練過(guò)程中引入了一張全新的軌跡采樣。
它主打給軌跡的中間部分更多權(quán)重,因?yàn)樽髡呒僭O(shè)這些部分會(huì)完成更具挑戰(zhàn)性的預(yù)測(cè)任務(wù)。
通過(guò)多個(gè)數(shù)據(jù)集、指標(biāo)和采樣器配置,與其他60個(gè)擴(kuò)散軌跡方法(比如LDM、EDM和ADM)測(cè)試這一生成方法發(fā)現(xiàn):
雖然以前的RF方法在少步采樣方案中表現(xiàn)出不錯(cuò)的性能,但它們的相對(duì)性能隨著步數(shù)的增加而下降。
相比之下,SD3重新加權(quán)的RF變體可以不斷提高性能。
模型能力還可進(jìn)一步提高
官方使用重新加權(quán)的RF方法和MMDiT架構(gòu)對(duì)文本到圖像的生成進(jìn)行了規(guī)模化研究(scaling study)。
訓(xùn)練的模型范圍從15個(gè)具有4.5億參數(shù)的模塊到38個(gè)具有80億參數(shù)的模塊。
從中他們觀察到:隨著模型大小和訓(xùn)練步驟的增加,驗(yàn)證損失呈現(xiàn)出平滑的下降趨勢(shì),即模型通過(guò)不斷學(xué)習(xí)適應(yīng)了更為復(fù)雜的數(shù)據(jù)。
為了測(cè)試這是否在模型輸出上轉(zhuǎn)化為更有意義的改進(jìn),官方還評(píng)估了自動(dòng)圖像對(duì)齊指標(biāo)(GenEval)以及人類(lèi)偏好評(píng)分(ELO)。
結(jié)果是:
兩者有很強(qiáng)的相關(guān)性。即驗(yàn)證損失可以作為一個(gè)很有力的指標(biāo),預(yù)測(cè)整體模型表現(xiàn)。
此外,由于這里的擴(kuò)展趨勢(shì)沒(méi)有出現(xiàn)飽和跡象(即即隨著模型規(guī)模的增加,性能仍在提升,沒(méi)有達(dá)到極限),官方很樂(lè)觀地表示:
未來(lái)的SD3性能還能繼續(xù)提高。
最后,技術(shù)報(bào)告還提到了文本編碼器的問(wèn)題:
通過(guò)移除用于推理的47億參數(shù)、內(nèi)存密集型T5文本編碼器,SD3的內(nèi)存需求可以顯著降低,但同時(shí),性能損失很?。╳in rate從50%降到46%)。
不過(guò),為了文字渲染能力,官方還是建議不要去掉T5,因?yàn)闆](méi)有它,文本表示的win rate將跌至38%。
那么總結(jié)一下就是說(shuō):SD3的3個(gè)文本編碼器中,T5在生成帶文本圖像(以及高度詳細(xì)的場(chǎng)景描述圖)時(shí)貢獻(xiàn)是最大的。
網(wǎng)友:開(kāi)源承諾如期兌現(xiàn),感恩
SD3報(bào)告一出,不少網(wǎng)友就表示:
Stability AI對(duì)開(kāi)源的承諾如期而至很是欣慰,希望他們能夠繼續(xù)保持并長(zhǎng)久運(yùn)營(yíng)下去。
還有人就差報(bào)OpenAI大名了:
更加值得欣慰的是,有人在評(píng)論區(qū)提到:
SD3模型的權(quán)重全部都可以下載,目前規(guī)劃的是8億參數(shù)、20億參數(shù)和80億參數(shù)。
速度怎么樣?
咳咳,技術(shù)報(bào)告有提:
80億的SD3在24GB的RTX 4090上需要34s才能生成1024*1024的圖像(采樣步驟50個(gè))——不過(guò)這只是早期未經(jīng)優(yōu)化的初步推理測(cè)試結(jié)果。
報(bào)告全文:https://stabilityai-public-packages.s3.us-west-2.amazonaws.com/Stable+Diffusion+3+Paper.pdf 。
參考鏈接:
[1]https://stability.ai/news/stable-diffusion-3-research-paper。
[2]https://news.ycombinator.com/item?id=39599958。