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