今天,一則重磅消息席卷了 AI 圈:OpenAI 發(fā)布了視頻模型 Sora,能根據(jù)文本生成長(zhǎng)達(dá)一分鐘的高質(zhì)量 1920x1080 視頻,生成能力遠(yuǎn)超此前只能生成 25 幀 576x1024 圖像的頂尖視頻生成模型 Stable Video Diffusion。
同時(shí),OpenAI 也公布了一篇非常簡(jiǎn)短的技術(shù)報(bào)告。報(bào)告僅大致介紹了 Sora 的架構(gòu)及應(yīng)用場(chǎng)景,并未對(duì)模型的原理詳加介紹。讓我們來(lái)快速瀏覽一下這份報(bào)告,看看科研人員從這份報(bào)告中能學(xué)到什么。
LDM 與 DiT 的結(jié)合
簡(jiǎn)單來(lái)說(shuō),Sora 就是 Latent Diffusion Model (LDM) [1] 加上 Diffusion Transformer (DiT) [2]。我們先簡(jiǎn)要回顧一下這兩種模型架構(gòu)。
LDM 就是 Stable Diffusion 使用的模型架構(gòu)。擴(kuò)散模型的一大問(wèn)題是計(jì)算需求大,難以擬合高分辨率圖像。為了解決這一問(wèn)題,實(shí)現(xiàn) LDM時(shí),會(huì)先訓(xùn)練一個(gè)幾乎能無(wú)損壓縮圖像的自編碼器,能把 512x512 的真實(shí)圖像壓縮成 64x64 的壓縮圖像并還原。接著,再訓(xùn)練一個(gè)擴(kuò)散模型去擬合分辨率更低的壓縮圖像。這樣,僅需少量計(jì)算資源就能訓(xùn)練出高分辨率的圖像生成模型。
LDM 的擴(kuò)散模型使用的模型是 U-Net。而根據(jù)其他深度學(xué)習(xí)任務(wù)中的經(jīng)驗(yàn),相比 U-Net,Transformer 架構(gòu)的參數(shù)可拓展性強(qiáng),即隨著參數(shù)量的增加,Transformer 架構(gòu)的性能提升會(huì)更加明顯。這也是為什么大模型普遍都采用了 Transformer 架構(gòu)。從這一動(dòng)機(jī)出發(fā),DiT 應(yīng)運(yùn)而生。DiT 在 LDM 的基礎(chǔ)上,把 U-Net 換成了 Transformer。
順帶一提,Transformer 本來(lái)是用于文本任務(wù)的,它只能處理一維的序列數(shù)據(jù)。為了讓 Transformer 處理二維圖像,通常會(huì)把輸入圖像先切成邊長(zhǎng)為 的圖塊,再把每個(gè)圖塊處理成一項(xiàng)數(shù)據(jù)。也就是說(shuō),原來(lái)邊長(zhǎng)為 的正方形圖片,經(jīng)圖塊化后,變成了長(zhǎng)度為 的一維序列數(shù)據(jù)。
Transformer 是一種和順序無(wú)關(guān)的計(jì)算。比如對(duì)于輸入"abc"和"bca",Transformer 會(huì)輸出一模一樣的值。為了描述數(shù)據(jù)的先后順序,使用 Transformer 時(shí),一般會(huì)給數(shù)據(jù)加一個(gè)位置編碼。
Sora 是一個(gè)視頻版的 DiT 模型。讓我們看一下 Sora 在 DiT 上做了哪些改進(jìn)。
時(shí)空自編碼器
在此之前,許多工作都嘗試把預(yù)訓(xùn)練 Stable Diffusion 拓展成視頻生成模型。在拓展時(shí),視頻的每一幀都會(huì)單獨(dú)輸入進(jìn) Stable Diffusion 的自編碼器,再重新構(gòu)成一個(gè)壓縮過(guò)的圖像序列。而 VideoLDM[3] 工作發(fā)現(xiàn),直接對(duì)視頻使用之前的圖像自編碼器,會(huì)令輸出視頻出現(xiàn)閃爍的現(xiàn)象。為此,該工作對(duì)自編碼器的解碼器進(jìn)行了微調(diào),加入了一些能夠處理時(shí)間維度的模塊,使之能一次性處理整段壓縮視頻,并輸出連貫的真實(shí)視頻。
Sora 則是從頭訓(xùn)練了一套能直接壓縮視頻的自編碼器。相比之前的工作,Sora 的自編碼器不僅能在空間上壓縮圖像,還能在時(shí)間上壓縮視頻長(zhǎng)度。這估計(jì)是為什么 Sora 能生成長(zhǎng)達(dá)一分鐘的視頻。
報(bào)告中提到,Sora 也能處理圖像,即長(zhǎng)度為1的視頻。那么,自編碼器怎么在時(shí)間上壓縮長(zhǎng)度為1的視頻呢?報(bào)告中并沒(méi)有給出細(xì)節(jié)。我猜測(cè)該自編碼器在時(shí)間維度做了填充(比如時(shí)間被壓縮成原來(lái)的 1/2,那么就對(duì)輸入視頻填充空數(shù)據(jù)直至視頻長(zhǎng)度為偶數(shù)),也可能是輸入了視頻長(zhǎng)度這一額外約束信息。
時(shí)空壓縮圖塊
輸入視頻經(jīng)過(guò)自編碼器后,會(huì)被轉(zhuǎn)換成一段空間和時(shí)間維度上都變小的壓縮視頻。這段壓縮視頻就是 Sora 的 DiT 的擬合對(duì)象。在處理視頻數(shù)據(jù)時(shí),DiT 較 U-Net 又有一些優(yōu)勢(shì)。
之前基于 U-Net 的去噪模型在處理視頻數(shù)據(jù)時(shí)(如 [3]),都需要額外加入一些和時(shí)間維度有關(guān)的操作,比如時(shí)間維度上的卷積、自注意力。而 Sora 的 DiT 是一種完全基于圖塊的 Transformer 架構(gòu)。要用 DiT 處理視頻數(shù)據(jù),不需要這種設(shè)計(jì),只要把視頻看成一個(gè) 3D 物體,再把 3D 物體分割成「圖塊」,并重組成一維數(shù)據(jù)輸入進(jìn) DiT 即可。和原本圖像 DiT 一樣,假設(shè)視頻邊長(zhǎng)為 ,時(shí)長(zhǎng)也為 ,要切成邊長(zhǎng)為 的圖塊,最后會(huì)得到 個(gè)數(shù)據(jù)。
處理任意分辨率、時(shí)長(zhǎng)的視頻
報(bào)告中反復(fù)提及,Sora 在訓(xùn)練和生成時(shí)使用的視頻可以是任何分辨率(在 1920x1080 以內(nèi))、任何長(zhǎng)寬比、任何時(shí)長(zhǎng)的。這意味著視頻訓(xùn)練數(shù)據(jù)不需要做縮放、裁剪等預(yù)處理。這些特性是絕大多數(shù)其他視頻生成模型做不到的,讓我們來(lái)著重分析一下這一特性的原理。
Sora 的這種性質(zhì)還是得益于 Transformer 架構(gòu)。前文提到,Transformer 的計(jì)算與輸入順序無(wú)關(guān),必須用位置編碼來(lái)指明每個(gè)數(shù)據(jù)的位置。盡管報(bào)告沒(méi)有提及,我覺(jué)得 Sora 的 DiT 使用了類似于 的位置編碼來(lái)表示一個(gè)圖塊的時(shí)空位置。這樣,不管輸入的視頻的大小如何,長(zhǎng)度如何,只要給每個(gè)圖塊都分配一個(gè)位置編碼,DiT 就能分清圖塊間的相對(duì)關(guān)系了。
相比以前的工作,Sora 的這種設(shè)計(jì)是十分新穎的。之前基于 U-Net 的 Stable Diffusion 為了保證所有訓(xùn)練數(shù)據(jù)可以統(tǒng)一被處理,輸入圖像都會(huì)被縮放與裁剪至同一大小。由于訓(xùn)練數(shù)據(jù)中有被裁剪的圖像,模型偶爾也會(huì)生成被裁剪的圖像。生成訓(xùn)練分辨率以外的圖像時(shí),模型的表現(xiàn)有時(shí)也會(huì)不太好。SDXL [4] 的解決方式是把裁剪的長(zhǎng)寬做為額外信息輸入進(jìn) U-Net。為了生成沒(méi)有裁剪的圖像,只要令輸入的裁剪長(zhǎng)寬為 0 即可。類似地,SDXL 也把圖像分辨率做為額外輸入,使得 U-Net 學(xué)習(xí)不同分辨率、長(zhǎng)寬比的圖像。相比 SDXL,Sora 的做法就簡(jiǎn)潔多了。
之前基于 DiT 的模型 (比如華為的 PixArt [5])似乎都沒(méi)有利用到 Transformer 可以隨意設(shè)置位置編碼這一性質(zhì)。DiT 在處理輸入圖塊時(shí),會(huì)先把圖塊變形成一維數(shù)據(jù),再?gòu)淖蟮接揖幪?hào),即從從左到右,從上到下地給二維圖塊組編號(hào)。這種位置編碼并沒(méi)有保留圖像的二維空間信息,因此,在這種編碼下,模型的輸入分辨率必須固定。比如對(duì)于下面這個(gè)的圖塊組,如果是從左到右、從上到下編碼,模型等于是強(qiáng)行學(xué)習(xí)到了「1號(hào)在0號(hào)右邊、4號(hào)在0號(hào)下面」這樣的位置信息。如果輸入的圖塊形狀為 ,那么圖塊間的相對(duì)關(guān)系就完全對(duì)不上了。而如果像 Sora 這樣以視頻圖塊的 來(lái)生成位置編碼的話,就沒(méi)有這種問(wèn)題了,輸入視頻可以是任何分辨率、任何長(zhǎng)度。
Transformer 在視頻生成的可拓展性
前文提過(guò),Transformer 的特點(diǎn)就是可拓展性強(qiáng),即模型越大,訓(xùn)練越久,效果越好。報(bào)告中展示了1倍、4倍、16倍某單位訓(xùn)練時(shí)間下的生成結(jié)果,可以看出模型確實(shí)一直有進(jìn)步。
語(yǔ)言理解能力
之前大部分文生圖擴(kuò)散模型都是在人工標(biāo)注的圖片-文字?jǐn)?shù)據(jù)集上訓(xùn)練的。后來(lái)大家發(fā)現(xiàn),人工標(biāo)注的圖片描述質(zhì)量較低,紛紛提出了各種提升標(biāo)注質(zhì)量的方法。Sora 復(fù)用了自家 DALL·E 3 的重標(biāo)注技術(shù),用一個(gè)訓(xùn)練的能生成詳細(xì)描述的標(biāo)注器來(lái)重新為訓(xùn)練視頻生成標(biāo)注。這種做法不僅解決了視頻缺乏標(biāo)注的問(wèn)題,且相比人工標(biāo)注質(zhì)量更高。Sora 的部分結(jié)果展示了其強(qiáng)大了抽象理解能力(如理解人和貓之間的交互),這多半是因?yàn)橐曨l標(biāo)注模型足夠強(qiáng)大,視頻生成模型學(xué)到了視頻標(biāo)注模型的知識(shí)。但同樣,視頻標(biāo)注模型的相關(guān)細(xì)節(jié)完全沒(méi)有公開(kāi)。
其他生成功能
基于已有圖像和視頻進(jìn)行生成:除了約束文本外,Sora 還支持在一個(gè)視頻前后補(bǔ)充內(nèi)容(如果是在一張圖片后面補(bǔ)充內(nèi)容,就是圖生視頻)。報(bào)告沒(méi)有給出實(shí)現(xiàn)細(xì)節(jié),我猜測(cè)是直接做了反演(inversion)再把反演得到的隱變量替換到隨機(jī)初始隱變量中。
視頻編輯:報(bào)告明確寫(xiě)出,只用簡(jiǎn)單的 SDEdit (即目前 Stable Diffusion 中的圖生圖)即可實(shí)現(xiàn)視頻編輯。
視頻內(nèi)容融合:可能是對(duì)兩個(gè)視頻的初始隱變量做了插值。
圖像生成:當(dāng)然,Sora 也可以生成圖像。報(bào)告表明,Sora 可以生成最大 2048x2048 的圖像。
涌現(xiàn)出的能力
通過(guò)學(xué)習(xí)大量數(shù)據(jù),Sora 還涌現(xiàn)出一些意想不到的能力。
3D 一致性:視頻中包含自然的相機(jī)視角變換。之前的 Stable Video Diffusion 也有類似發(fā)現(xiàn)。
長(zhǎng)距離連貫性:AI 生成出來(lái)的視頻往往有物體在中途突然消失的情況。而 Sora 有時(shí)候能克服這一問(wèn)題。
與世界的交互:比如在描述畫(huà)畫(huà)的視頻中,畫(huà)紙上的內(nèi)容隨畫(huà)筆生成。
模擬數(shù)字世界:報(bào)告展示了在輸入文本有"Minecraft"時(shí),模型能生成非常真實(shí)的 Minecraft 游戲視頻。這大概只能說(shuō)明模型的擬合能力太強(qiáng)了,以至于學(xué)會(huì)了生成 Minecraft 這一種特定風(fēng)格的視頻。
局限性
報(bào)告結(jié)尾還是給出了一些失敗的生成示例,比如玻璃杯在桌子上沒(méi)有摔碎。這表明模型還不能完全學(xué)會(huì)某些物理性質(zhì)。然而,我覺(jué)得現(xiàn)階段 Sora 已經(jīng)展示了足夠強(qiáng)大的學(xué)習(xí)能力。想模擬現(xiàn)有視頻中已經(jīng)包含的物理現(xiàn)象,只需要增加數(shù)據(jù)就行了。
總結(jié)
Sora 是一個(gè)驚艷的視頻生成模型,它以卓越的生成能力(高分辨率、長(zhǎng)時(shí)間)與生成質(zhì)量令一眾同期的視頻生成模型黯然失色。Sora 的技術(shù)報(bào)告非常簡(jiǎn)短,不過(guò)我們從中還是可以學(xué)到一些東西。從技術(shù)貢獻(xiàn)上來(lái)看,Sora 的創(chuàng)新主要有兩點(diǎn):
讓 LDM 的自編碼器也在視頻時(shí)間維度上壓縮。
使用了一種不限制輸入形狀的 DiT
其中,第二點(diǎn)貢獻(xiàn)是非常有啟發(fā)性的。DiT 能支持不同形狀的輸入,大概率是因?yàn)樗砸曨l的3D位置生成位置編碼,打破了一維編碼的分辨率限制。后續(xù)大家或許會(huì)逐漸從 U-Net 轉(zhuǎn)向 DiT 來(lái)建模擴(kuò)散模型的去噪模型。
我認(rèn)為 Sora 的成功有三個(gè)原因。前兩個(gè)原因?qū)?yīng)兩項(xiàng)創(chuàng)新。第一,由于在時(shí)間維度上也進(jìn)行了壓縮,Sora 最終能生成長(zhǎng)達(dá)一分鐘的視頻;第二,使用 DiT 不僅去除了視頻空間、時(shí)間長(zhǎng)度上的限制,還充分利用了 Transformer 本身的可拓展性,使訓(xùn)練一個(gè)視頻生成大模型變得可能。第三個(gè)原因來(lái)自于視頻標(biāo)注模型。之前 Stable Diffusion 能夠成功,很大程度上是因?yàn)橛幸粋€(gè)能夠關(guān)聯(lián)圖像與文本的 CLIP 模型,且有足夠多的帶標(biāo)注圖片。相比圖像,視頻訓(xùn)練本來(lái)就少,帶標(biāo)注的視頻就更難獲得了。一個(gè)能夠理解視頻內(nèi)容,生成詳細(xì)視頻標(biāo)注的標(biāo)注器,一定是讓視頻生成模型理解復(fù)雜文本描述的關(guān)鍵。除了這幾點(diǎn)原因外,剩下的就是砸錢(qián)、擴(kuò)大模型、加數(shù)據(jù)了。
Sora 顯然會(huì)對(duì) AIGC 社區(qū)產(chǎn)生一定影響。對(duì)于 AIGC 愛(ài)好者而言,他們或許會(huì)多了一些生成創(chuàng)意視頻的方法,比如給部分幀讓 Sora 來(lái)根據(jù)文本補(bǔ)全剩余幀。當(dāng)然,目前 Sora 依然不能取代視頻創(chuàng)作者,長(zhǎng)視頻的質(zhì)量依然有待觀察。對(duì)于正在開(kāi)發(fā)相似應(yīng)用的公司,我覺(jué)得他們應(yīng)該要連夜撤銷(xiāo)之前的方案,轉(zhuǎn)換為這套沒(méi)有分辨率限制的 DiT 的方案。他們的壓力應(yīng)該會(huì)很大。對(duì)于相關(guān)科研人員而言,除了學(xué)習(xí)這種較為新穎的 DiT 用法外,也沒(méi)有太多收獲了。這份技術(shù)報(bào)告透露出一股「我絕對(duì)不會(huì)開(kāi)源」的意思。沒(méi)有開(kāi)源模型,普通的研究者也就什么都做不了。新技術(shù)的誕生絕對(duì)不可能靠一家公司,一個(gè)模型就搞定。像之前的 Stable Diffusion,也是先開(kāi)源了一個(gè)基礎(chǔ)模型,科研者和愛(ài)好者再補(bǔ)充了各種豐富的應(yīng)用。我呼吁各大公司盡快訓(xùn)練并開(kāi)源一個(gè)這種不限分辨率的 DiT,這樣科研界或許會(huì)拋開(kāi) U-Net,基于 DiT 開(kāi)發(fā)出新的擴(kuò)散模型應(yīng)用。
審核編輯:黃飛
?
評(píng)論
查看更多