一文帶你了解OpenAI Sora
最近AI圈最火的無疑是OpenAI在2月15日發(fā)布的Sora。Sora可以根據(jù)文本生成一分鐘的高清視頻,生成的視頻畫質、連續(xù)性、光影等都令人嘆為觀止,Sora無疑將視覺生成推到新的高度。本文將重點回答三個問題:
- Sora的原理是什么?
- Sora到底是不是世界模型?
- Sora會影響哪些行業(yè)?
一、背景
在國內(nèi)外大多數(shù)AI廠商還在卷大語言模型之際,OpenAI悄無聲息地發(fā)布了文生視頻(text-to-video,簡稱t2v)模型Sora [1],僅僅幾個視頻demo,就讓整個AI圈子從驚訝到恐懼,驚訝于Sora生成的視頻已經(jīng)到達工業(yè)應用級別,恐懼于現(xiàn)有的t2v模型與Sora的差距竟然如此之大。先看個Sora官方博客展示的demo,當你向Sora輸入:“A stylish woman walks down a Tokyo street filled with warm glowing neon and animated city signage. She wears a black leather jacket, a long red dress, and black boots, and carries a black purse. She wears sunglasses and red lipstick. She walks confidently and casually. The street is damp and reflective, creating a mirror effect of the colorful lights. Many pedestrians walk about.”,Sora則根據(jù)該文本生成了長達1分鐘的高清視頻。
這個demo展現(xiàn)了Sora至少有以下突破:
- 畫質突破:視頻非常高清,細節(jié)極其豐富;
- 幀率和連續(xù)性突破:視頻幀率高、連續(xù)性好(無閃爍或明顯的時序不一致);
- 時長突破:相比之前t2v模型僅能生成幾秒的時長,Sora可以生成長達1分鐘的視頻,這是之前t2v模型不敢想象的;
- 物理規(guī)則理解突破:視頻中物體的運動、光影等似乎都非常符合自然世界的物理規(guī)則,整個視頻看上去都非常自然和逼真。
那么OpenAI到底用了什么魔法能讓Sora如此驚艷?接下來我們通過OpenAI給出的??Sora技術報告??來解答。PS:該技術報告非常簡陋,技術細節(jié)幾乎沒有,只給了大致的建模方法。
二、Sora原理解讀
1. Sora要解決的任務
Sora要解決的任務其實非常好理解,就是給定一段文本,模型需要根據(jù)該文本生成相應的視頻,簡單說就是text-to-video(t2v)。t2v本身并不是一個新問題,很多廠商都在研究t2v模型,只是當前的t2v模型生成的視頻普遍質量較差,很難到達工業(yè)應用級別。在Sora出現(xiàn)前大家的普遍認知是:t2v是一個很難的任務,工業(yè)級別t2v模型(或者說能真正實用的t2v模型)短時間內(nèi)應該很難實現(xiàn)。然而,OpenAI又又又一次打了所有人的臉,Sora的發(fā)布意味著,這一天已經(jīng)來了。
2. Sora原理
如果用一句話來描述Sora訓練建模過程,可以是:將原始視頻通過一個視覺編碼器(visual encoder)編碼到隱空間(latent space)形成隱時空塊(spacetime latent patches),這些隱時空塊(結合text信息)通過transformer做diffusion [2, 3, 4]的訓練和生成,將生成的隱時空塊再通過視覺解碼器(visual decoder)解碼到像素空間(pixel space)。所以整個過程就是:visual encoding -> latent diffusion with diffusion transformer (DiT) [4] -> visual decoding。
(1) Visual Encoding
這一步其實很好理解,就是通過一個變分自編碼器(VAE)[5]的encoder將高維的原始視頻映射(壓縮)到較為低維的隱空間(注意:不僅僅是空間上壓縮了,時間上也進行了壓縮),即得到該視頻的低維隱空間特征(可以看成一個大的3D tensor),為了后續(xù)transformer計算方便,將這個特征切成不重疊的3D patches,再將這些patches拉平成一個token序列,這個token序列其實就是原始視頻的表征了(即visual token序列)。
(2) Latent Diffusion with DiT
在得到視覺表征(上述visual token序列)后,Sora借鑒了DiT [4],使用transformer來做diffusion model的訓練,使用transformer的好處在于可以輸入任意長度的token序列,這樣就不再限制輸入視頻的尺寸和時長,并且模型很容易scale up(OpenAI表示這個我熟)。同時,因為Sora想解決t2v的問題,所以Sora會將text的表征以某種形式condition到visual tokens上(Sora技術報告中未披露,但后文我會分析最可能的實現(xiàn)方法)來約束生成。
在diffusion transformer的訓練中,給定噪聲輸入(e.g., 噪聲patches)并conditioned on text特征,模型被訓練去預測原始視頻的patches(預測過程又叫denoising過程,具體可以參考DDPM [2]中的訓練算法),示意圖如下:
(3) Visual Decoding
第(2)步中,diffusion transformer可以生成的其實不是像素空間的視頻,而是隱空間的視頻表征(denoised patches),這些patches reshape成視頻3D特征再經(jīng)過第(1)步中的VAE的decoder,就可以映射回像素空間,得到最后生成的視頻。
3. Sora的重要性質
(1) Sora可以靈活地采用不同時長、分辨率和長寬比的視頻
OpenAI發(fā)現(xiàn)之前的方法大多采用固定尺寸的視頻(比如4s的256x256視頻)去訓練模型,和現(xiàn)實中任意長度、長寬比有較大gap,而采用原始尺寸的視頻訓練模型效果更好。得益于Sora采用的transformer結構,Sora可以輸入任意多個visual patches(初始為noise patches),即可生成任意尺寸的視頻。
(2) Sora有很強的語言理解能力
訓練t2v模型需要大量帶有文本標注的視頻,OpenAI采用DALL·E 3 [6] 中的re-captioning技術來解決。首先訓練一個高質量的視頻標注模型(captioner model),然后它為訓練集中的所有視頻生成文本字幕。另外,進一步利用GPT將視頻標注模型生成的簡短文本擴展成更長的文本有利于還利用Sora準確遵循用戶文本提示生成高質量視頻。
4.重要細節(jié)推測
Sora的技術報告沒有任何細節(jié),僅僅告知大家大致的建模方法,但有一些細節(jié)的實現(xiàn)是可以推測or猜測的。
(1) visual encoder可能的結構:因為Sora在visual encoding時也壓縮了時間維度,所以Sora可能采用從零開始訓練的3D conv版的VAE。Sora這里沒有像之前工作那樣,簡單地采用Stable Diffusion(SD) [3]預訓練好的2D conv版的VAE?,F(xiàn)成的SD的VAE encoder用來壓縮視頻最大的問題在于時間維度沒有下采樣,SD的VAE承擔了將原本sparse的數(shù)據(jù)壓縮到compact的latent domain再進行diffusion過程,從而大幅度提高training和inference的效率。然而,直接運用2D VAE缺乏了在時間維度的壓縮,使得其對應的latent domain不夠緊湊。實際上,這是一個歷史遺留問題,大部分研究工作受算力等因素影響選擇直接利用SD的預訓練權重(Unet部分)、保留了2D VAE。
(2) visual encoding中視頻的patches如何flatten成token序列?大概率借鑒DiT,先flatten這些patches,然后過一個linear層,將patches embed成tokens。
(3) diffusion中如何將text信息引入?大概率還是借鑒DiT和SD,在每個transformer block中,將visual tokens視為query,將text tokens作為key和value,進行cross attention,不斷地conditioned on text tokens。
5. 尚未披露關鍵信息
(1)模型:模型的具體結構、模型的參數(shù)量、關鍵參數(shù)(patch size、token數(shù)目等)如何?
(2)數(shù)據(jù):用了哪些數(shù)據(jù)?規(guī)模如何?
(3)資源:用了多少算力?訓練了多久?
(4)如何處理高幀率、時間長、高分辨率的視頻?目前主流的視頻生成模型都是cascade結構,也就是先生成低分辨率、低幀率的視頻,再不斷地在時間和空間維度上upsample。不知道Sora是否是直接一次性輸出其展示的結果,如果是那樣,那又會有多少token呢?(5)如何解決motion的問題?目前的視頻生成模型普遍生成的motion都不太好,最簡單的例子就是“人走路”,大部分模型無法生成連貫的、長時間的、合理的人行走的過程。而Sora生成的結果在連貫性、合理性上相比之前的模型都有著斷代的領先。那到底是什么促使了這樣的結果呢?是模型尺寸的scale up嗎?需要scale up到什么size?還是數(shù)據(jù)的收集和清洗呢?以及要做到什么程度呢?
6. Sora的應用
- 視頻創(chuàng)作:用戶可以根據(jù)文本生成高質量視頻;
- 擴展視頻:可以在給定的視頻或圖片基礎上,繼續(xù)向前或向后延申視頻;
- Video-to-video editing:例如將SDEdit [7]應用于Sora,可以很容易改變原視頻的風格;
- 視頻連結/過渡/轉場:可以將兩個視頻巧妙地融合到一起,使用Sora在兩個輸入視頻之間逐漸進行插值,從而在具有完全不同主題和場景構成的視頻之間創(chuàng)建無縫過渡;
- 文生圖:圖像可以視為單幀的視頻,故Sora也能實現(xiàn)文生圖。
7. Sora的局限性
原本中提到:“Sora 目前作為模擬器(simulator)表現(xiàn)出許多局限性。例如,它不能準確地模擬許多基本相互作用的物理過程,例如玻璃破碎。其他交互過程(例如吃食物)也不總是能正確預測。我們在登陸頁面中列舉了模型的其他常見故障模式,例如長時間樣本中出現(xiàn)的不連貫性或對象的憑空出現(xiàn)?!?/p>
總結一下主要是:
- 對世界的物理規(guī)則的理解還不完美;
- 長視頻生成時容易出現(xiàn)不連貫或者物體憑空出現(xiàn)的現(xiàn)象。
三、Sora到底算不算世界模型?
最近,圍繞“Sora是不是世界模型”以及“Sora懂不懂物理世界”等相關話題引起了圈內(nèi)熱議。
英偉達高級研究科學家Jim Fan在X平臺上稱:“Sora is a learnable simulator, or "world model".”。而圖靈獎得主Yann LeCun則表示:“The generation of mostly realistic-looking videos from prompts "does not" indicate that a system understands the physical world.”。
這里談談我的看法,僅供參考。
1.什么是世界模型(world model)[8]?
“The image of the world around us, which we carry in our head, is just a model. Nobody in his head imagines all the world, government or country. He has only selected concepts, and relationships between them, and uses those to represent the real system.” --Jay Wright Forrester, the father of system dynamics
上述引自系統(tǒng)動力學之父Jay Wright Forrester。我的理解是人類其實無法記下整個世界的所有內(nèi)容,我們的大腦僅僅是在有選擇記憶一些概念和相互關系,利用這些,我們可以表征和理解這個世界。這里,我們的大腦其實在充當world model,即一個理解世界(物理)規(guī)律的模型。比如,當你看到玻璃杯從桌上掉下水泥地上,你知道接下來發(fā)生的事自然就是杯子碎了。
那么世界模型到底是啥?
(以下是我個人對世界模型的理解,可能不夠嚴謹,僅供參考)
我將世界模型分為廣義的和狹義的進行討論。
【廣義世界模型】廣義的世界模型,其實就是任何能理解世界潛在物理規(guī)律的模型,比如可以預見未來結果的模型,繼續(xù)以前面那個例子為例,如果一個模型能預測玻璃杯掉下后的狀態(tài),說明該模型具備這樣的能力;再比如知道世界中實體或抽象概念之間相互聯(lián)系的模型,比如一個模型知道玻璃杯的硬度低于水泥地會導致玻璃破碎。這些其實在我看來都是廣義上的世界模型。
【狹義世界模型】狹義的世界模型更強調理解物理世界的動力(dynamics)或者運動等物理規(guī)律的模型,了解過RL的朋友們一定特別熟悉這些。在RL中,一大分支便是model-based RL,這里的model,其實就是典型的狹義世界模型。在此模型中,給定某一時刻的狀態(tài)s_t和該時刻做的動作a_t,模型可以預測出下一個時刻的狀態(tài)s_t+1。所以說,狹義的世界模型其實是因果的?;氐缴厦娴睦?,s_t可以是剛下落的杯子和干凈的水泥地,a_t則是自由落體這個動作,s_t+1則是水泥地上碎掉的杯子這樣一個狀態(tài)。
2.Sora算不算世界模型?
先給結論,我覺得Sora算廣義世界模型,同時也是隱式的狹義世界模型。
Sora的diffusion過程其實是在從噪聲狀態(tài)在text prompts的約束下,預測可能的結果(視頻)。這個過程看似跟狹義世界模型沒有關系,但其實可以這么理解:
標準的狹義世界模型的狀態(tài)轉移過程為:s_0 -> a_0 -> s_1 -> a_1 -> s_2 -> ... -> a_T-1 -> s_T。對于一個視頻來說,每一幀都可以看做一個狀態(tài)s,但是某一時刻動作其實很難描述,我們很難用自然語言或者其他形式來描述相鄰兩幀之間發(fā)生了什么。但是我們可以用自然語言描述視頻在做什么,也就是s_0到s_T發(fā)生了什么,也就是將動作序列A={a_0, a_1, ..., a_T-1}一起打包表示成一句話或者一段話。在Sora中,text prompts可以看做成這樣的動作序列A。而Sora理解世界的過程也和一般的狹義世界模型不太一樣,s_0不再是第一幀,而是“混沌”狀態(tài)(噪聲),于是乎diffusion的過程可以理解為:s_0(噪聲) -> A -> s_1 -> ... -> A -> s_T(清晰視頻)。這其中,雖然Sora并沒有顯式建模世界的dynamics,但其實在理解自然語言和視頻內(nèi)容之間的關系,算是一種廣義上的世界模型。
同時,回看Sora的應用可以發(fā)現(xiàn),Sora其實可以拓展視頻的!也就是說,換一個角度,給定一張起始圖像(第一幀)和一個文本描述(描述包含生成視頻內(nèi)容),Sora就能生成出整個視頻,那這個過程其實可以看做是在隱式的狹義世界模型建模:s_0(第一幀)-> A -> s_{1:T} (整個視頻)。相當于是,給定了初始狀態(tài)和接下來的所有動作A,Sora能預測出接下來的所有狀態(tài)s_{1:T},所以Sora在我看來也是一個非典型的、隱式的狹義世界模型。
值得一提的是,OpenAI官方信息從未表示Sora是world model,而是強調它是world simulator,我也覺得world simulator描述比較貼切。
四、Sora對行業(yè)的影響
- 短視頻內(nèi)容創(chuàng)作可能進入新的時代:Sora可以提供豐富的視頻素材;
- 視頻剪輯和編輯:Sora具備相關應用能力;
- 更逼真的數(shù)字人:用戶可以得到自己的“理想型”;
- 娛樂化:從圖像一鍵生成視頻;
- 游戲行業(yè):游戲引擎受到Sora挑戰(zhàn);
- 圖形學:未來可能不復存在。
五、Sora成功的關鍵(粗淺理解,歡迎指正和補充)
- 大規(guī)模訓練:這點毋庸置疑。大模型、大數(shù)據(jù)量、使用大規(guī)模算力,OpenAI基本操作。
- 敢于突破常規(guī)、不屑于刷點:之前工作基本都采用SD預訓練的visual encoder,也知道該encoder多少有點不合理(比如只能處理固定size的輸入),但沒有人真的去重新訓練一個更合理的encoder(當然,更可能是算力不支持)。而OpenAI發(fā)現(xiàn)問題,就用算力來解決問題(大概率重新訓練visual encoder)。
- 實事求是+絕對領先的sense:自回歸的建模方式在LLM中大獲成功,GPT系列也出自OpenAI,但這不代表“Autoregressive is everything”,Sora告訴大家,生成視頻無需采用自回歸,直接3D建模+transformer encoder結構就ok。
- AGI理念從上至下傳播:Sam Altman絕對是一個有大格局的人物,其最終目標是實現(xiàn)AGI,我想整個OpenAI應該都會貫徹這樣的理念,不管是ChatGPT還是Sora,都能看到AGI的影子。
本篇僅僅為個人的思考和總結,如有不妥之處,歡迎指正與交流。
【參考文獻】
[1] OpenAI. "??Video generation models as world simulators.??" OpenAI Blog. 2024.
[2] Ho, Jonathan, Ajay Jain, and Pieter Abbeel. "Denoising diffusion probabilistic models." Advances in neural informaion processing systems 33 (2020): 6840-6851.
[3] Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022.
[4] Peebles, William, and Saining Xie. "Scalable diffusion models with transformers." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.
[5] Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013).
[6] Betker, James, et al. "Improving image generation with better captions." Computer Science. https://cdn.openai.com/papers/dall-e-3. pdf 2.3 (2023): 8.
[7] Meng, Chenlin, et al. "Sdedit: Guided image synthesis and editing with stochastic differential equations." arXiv preprint arXiv:2108.01073 (2021).
[8] Ha, David, and Jürgen Schmidhuber. "World models." arXiv preprint arXiv:1803.10122 (2018).
本文轉載自騰訊技術工程,作者:torresyu
