【#區(qū)塊鏈# #成就了Sora和Stable diffusion 3的DiTs:究竟是啥#】
作者|苗正
Sora才剛發(fā)布沒過多久,Stable AI就發(fā)布了Stable Diffusion 3。對于使用人工智能創(chuàng)意設(shè)計的人來說,無疑是過大年了。那么本篇文章就專門為這些用戶準(zhǔn)備,用更直白的話講述Stable Diffusion 3的兩大特色“擴(kuò)散transformers模型”以及“流匹配”,幫助你在模型發(fā)布后更好的使用它來創(chuàng)作。
擴(kuò)散transformer模型(diffusion transformers),我們下文就簡稱它為DiTs。那看名字你也清楚了,這是一個基于transformer架構(gòu)的圖像潛變量擴(kuò)散模型。如果你讀過硅星人Pro的文章《揭秘Sora:用大語言模型的方法理解視頻,實(shí)現(xiàn)了對物理世界的“涌現(xiàn)”》,那么你對于接下來的內(nèi)容來說已經(jīng)算是“課代表”級別的了。DiTs跟Sora一樣,它也使用了“塊”(patches)這個概念,不過由于DiTs是用來生成圖片的,它不需要像Sora那樣保持不同幀圖片之間的邏輯關(guān)聯(lián),所以它不必生成時間和空間的時空塊。
對于DiTs來說,它和4、5年前在計算機(jī)視覺領(lǐng)域掀起一場腥風(fēng)血雨的Vision Transformer (ViT) 是相似的,圖像會被DiTs被分割成多個patches,并嵌入到連續(xù)向量空間中,形成序列輸入供transformer處理。不過這里要注意,因為DiTs是有業(yè)務(wù)在身的,所以對于條件圖像生成任務(wù),DiTs就需要接收并融合外部條件信息,例如類別標(biāo)簽或文本描述。通常通過提供額外的輸入標(biāo)記或者跨注意力機(jī)制來實(shí)現(xiàn),使得模型能夠根據(jù)給定的條件信息指導(dǎo)生成過程。
那么當(dāng)這個塊抵達(dá)DiTs內(nèi)部的時候呢,他就可以被DiTs內(nèi)部的DiT block來加工成需要的內(nèi)容了。DiT block是DiTs最核心的一環(huán),它是一種設(shè)計用于擴(kuò)散模型的特殊transformer結(jié)構(gòu),能夠處理圖像和條件信息。一般來說,block本身翻譯過來就是塊,但是為了和patches做區(qū)分,所以這里我直接用block。
DiT block又分為三個小block:交叉注意力、adaLN、adaLN-Zero。交叉注意力指的是在多頭自注意力層之后添加了一個額外的多頭交叉注意力層,它的作用是利用條件信息來指導(dǎo)圖像生成,使生成的圖片更符合提示詞,不過代價是增加了大約15%的計算量。
adaLN中的LN,指的是通過規(guī)范化每一層神經(jīng)網(wǎng)絡(luò)內(nèi)部單元的輸出,以減少內(nèi)部協(xié)變量偏移(covariate shift)的問題,進(jìn)而改善模型訓(xùn)練過程中的收斂速度和性能。那adaLN就是對標(biāo)準(zhǔn)層歸一化的擴(kuò)展,它允許層歸一化的參數(shù)根據(jù)輸入數(shù)據(jù)或附加條件信息動態(tài)調(diào)整。它就和汽車那個懸掛一樣,是用來增加模型穩(wěn)定性和適應(yīng)性的。
接下來,Stable AI在adaLN DiT block的基礎(chǔ)上進(jìn)行了一項改進(jìn),除了回歸γ和β之外,還回歸維度級的縮放參數(shù)α,并在DiT block內(nèi)的任何殘差連接之前立即應(yīng)用這些參數(shù)。而這一個block就是adaLN-Zero,這樣做的目的是為了模仿殘差網(wǎng)絡(luò)中的有益初始化策略,以促進(jìn)模型的有效訓(xùn)練和優(yōu)化。
經(jīng)過DiT block后,token序列就會解碼為輸出噪聲預(yù)測和輸出對角協(xié)方差預(yù)測。通過標(biāo)準(zhǔn)線性解碼器,這兩個預(yù)測結(jié)果的大小和輸入圖像的空間維度相同。最后是將這些解碼后的令牌按照它們原有的空間布局重新排列,從而得到預(yù)測出的噪聲值和協(xié)方差值。
第二章,流匹配(Flow Matching,下文簡稱FM)。根據(jù)Stable AI的說法,是一種高效的、無需模擬的CNF模型訓(xùn)練方法,允許利用通用概率路徑監(jiān)督CNF訓(xùn)練過程。尤為重要的是,F(xiàn)M打破了擴(kuò)散模型之外的CNF可擴(kuò)展訓(xùn)練障礙,無需深入理解擴(kuò)散過程即可直接操作概率路徑,從而繞過了傳統(tǒng)訓(xùn)練中的難題。
所謂CNF,就是Continuous Normalizing Flows,連續(xù)歸一化流。這是一種深度學(xué)習(xí)中的概率模型和生成模型技術(shù)。在CNF中,通過一系列可逆且連續(xù)的變換將簡單的概率分布轉(zhuǎn)換為復(fù)雜的、高維數(shù)據(jù)的概率分布。這些變換通常由一個神經(jīng)網(wǎng)絡(luò)來參數(shù)化,使得原始隨機(jī)變量經(jīng)過連續(xù)變換后能夠模擬目標(biāo)數(shù)據(jù)分布。翻譯成大白話,CNF像是搖骰子那樣生成數(shù)據(jù)的。
但是CNF在實(shí)際操作中需要大量的計算資源和時間,于是Stable AI就尋思了,那能不能又一個結(jié)果只要差不多和CNF一樣就行,但是流程要穩(wěn)定,計算量要低的方法?于是FM就誕生了,F(xiàn)M的本質(zhì)是一個用于訓(xùn)練CNF模型以適應(yīng)并模擬給定數(shù)據(jù)分布演化過程的技術(shù),即使我們并不事先知道這個分布的具體數(shù)學(xué)表達(dá)式或?qū)?yīng)的生成向量場。通過優(yōu)化FM目標(biāo)函數(shù),也可以逐步讓模型學(xué)習(xí)到能夠生成與真實(shí)數(shù)據(jù)分布近似的概率分布的向量場。
相較于CNF而言,F(xiàn)M應(yīng)該算是一種優(yōu)化方法,它的目標(biāo)是訓(xùn)練CNF模型生成的向量場與理想的目標(biāo)概率路徑上的向量場盡可能接近。
看完了Stable Diffusion 3的兩大核心技術(shù)特性你就會發(fā)現(xiàn),其實(shí)它和Sora非常接近。倆模型都是transformer模型(stable diffusion此前采用的是U-Net)、都使用塊、都有著劃時代的穩(wěn)定性和優(yōu)化,而且出生日期還這么近,說他們有血緣關(guān)系,我認(rèn)為并不過分。
不過“兄弟倆”有一個根源性的不同,那就是Sora閉源,Stable Diffusion 3開源。事實(shí)上,Midjourney也好,DALL·E也好,他們都是閉源的,唯有Stable Diffusion是開源的。如果你關(guān)注開源人工智能,那么你一定發(fā)現(xiàn)了,開源社區(qū)陷入困境已經(jīng)有很長一段時間了,沒有明顯的突破,很多人都對此失去信心。Stable Diffusion 2和Stable Diffusion XL僅改進(jìn)了生成圖片的美觀性,而Stable Diffusion 1.5已經(jīng)可以做到這一點(diǎn)??吹絊table Diffusion 3的革命性改進(jìn),能讓很多人開源社區(qū)的開發(fā)者重燃信心。
再說個刺激的,Stable AI的CEO默罕默德艾馬德莫斯塔克(??????? ???? ??????)在推特中說到,盡管Stable AI在人工智能這個領(lǐng)域的資源比其他一些公司少了足足100倍,但是Stable Diffusion 3架構(gòu)已經(jīng)可以接受除了視頻和圖像以外的內(nèi)容了,不過目前還不能公布太多。
你說圖片和視頻我還能理解,可啥叫“以外”的內(nèi)容?其實(shí)我能想到的那就是音頻了,通過一段聲音來生成圖片。讓人摸不著頭腦,不過一旦Stable AI放出最新的研究成果,我們一定第一時間拿來解讀。
小編推薦下載
相關(guān)推薦
資訊排行
同類軟件下載
熱門標(biāo)簽