聲明:本文來自于微信公眾號 機器之心(ID:almosthuman2014),作者:機器之心,授權轉(zhuǎn)載發(fā)布。
在被大規(guī)模采用后,Sora 的推理成本將很快超過訓練成本。
OpenAI 推出的 Sora 模型能夠在各種場景下生成極其逼真的視頻,吸引了全世界的目光。
機器之心機動組,贊56
近日,投資機構 factorial funds 發(fā)表了一篇博文,深入探討了 Sora 背后的一些技術細節(jié),并對這些視頻模型可能產(chǎn)生影響進行了探討。
最后,文中還討論了對用于訓練 Sora 等模型的算力的看法,并對訓練計算與推理計算的算力比較進行了預測,這對估計未來 GPU 需求具有重要意義。機器之心對此文進行了整理。
本報告的主要調(diào)查結果總結如下:
Sora 是一個建立在擴散 Transformers(DiT)、潛在擴散模型之上的擴散模型,模型和訓練數(shù)據(jù)集似乎都更大更多。
Sora 證明,擴大視頻模型是有效的,與大語言模型(LLM)類似,將模型做得更大將是快速改進模型的主要驅(qū)動力。
Runway、Genmo 和 Pika 等公司正在圍繞類 Sora 視頻生成模型構建直觀的界面和工作流程。這將決定它們的用途和可用性。
Sora 需要大量的計算能力來訓練,至少需要在4200~10500塊英偉達 H100GPU 上訓練1個月。
推理階段,估計每個 H100GPU 每小時最多可以生成約5分鐘的視頻。與 LLM 相比,像 Sora 這樣基于擴散的模型推理成本要高幾個數(shù)量級。
隨著類 Sora 模型的廣泛部署,推理計算消耗將多于訓練計算消耗。「平衡點」估計為1530萬至3810萬分鐘的視頻生成,之后在推理上花費的計算會比原始訓練更多。作為參考,TikTok 每天上傳1700萬分鐘的視頻,YouTube 每天上傳4300萬分鐘的視頻。
假設 TikTok(所有視頻時長的50%)和 YouTube(全部視頻時長的15%)等流行平臺上大量采用人工智能做視頻生成,考慮到硬件利用率和使用模式,本文估計推理階段的計算峰值需求約為72萬塊 Nvidia H100GPU。
總之,Sora 在視頻生成的質(zhì)量和能力方面取得了重大進展,但也有可能大大增加對 GPU 推理計算的需求。
Sora 的誕生背景
Sora 是一種擴散模型。擴散模型是圖像生成領域的熱門模型,著名的模型有 OpenAI 的 DALL?E 和 Stability AI 的 Stable Diffusion。最近,Runway、Genmo 和 Pika 等公司也在探索視頻生成,很可能也利用了擴散模型。
從廣義上講,擴散模型是一種生成式機器學習模型,它通過向數(shù)據(jù)中添加隨機噪聲來逐步反向?qū)W習,最終學會創(chuàng)建與其所訓練的數(shù)據(jù)(如圖像或視頻)相似的數(shù)據(jù)。這些模型從純粹的噪聲模式開始,逐步去除噪聲,再完善模型,直至將其轉(zhuǎn)化為連貫而詳細的輸出。
擴散過程示意圖:噪聲被逐步去除,直至輸出清晰可見詳細的視頻。圖片摘自 Sora 技術報告。
這與大語言模型(LLM)在概念上的工作方式明顯不同:LLM 會一個接一個地反復生成 token(這被稱為自回歸采樣)。Token 一旦產(chǎn)生,就不會再改變。人們在使用 Perplexity 或 ChatGPT 等工具時,可能已經(jīng)見識過這種效果:答案會一個字一個字地逐漸出現(xiàn),就像有人在打字一樣。
Sora 的技術細節(jié)
OpenAI 在發(fā)布 Sora 的同時,還發(fā)布了一份技術報告。遺憾的是,這份報告的細節(jié)不多。不過,其設計似乎深受《Scalable Diffusion Models with Transformers》這篇研究論文的影響,該論文提出了一種基于 Transformer 的架構,稱為 DiT(Diffusion Transformers 的縮寫),用于圖像生成。Sora 似乎將這項工作擴展到了視頻生成。因此,結合 Sora 技術報告和 DiT 論文,就可以相當準確地了解 Sora 模型的工作原理。
Sora 有三個重要部分:1)它不是在像素空間,而是在隱空間中執(zhí)行擴散(又稱潛在擴散);2)它使用 Transformers 架構;3)它似乎使用了一個非常大的數(shù)據(jù)集。
潛在擴散
要理解第一點,即潛在擴散,可以考慮生成一幅圖像,并使用擴散生成每個像素。然而,這樣做的效率非常低(例如,一幅512x512的圖像有262,144個像素)。取而代之的方法是,首先將像素映射成具有一定壓縮系數(shù)的隱空間表征,在這個更緊湊的隱空間中執(zhí)行擴散,最后再將隱空間表征解碼回像素空間。這種映射大大降低了計算復雜度:以64位的隱空間為例,只需生成64x64=4,096個表征,而不必在512x512=262,144個像素上運行擴散過程。這一想法是《High-Resolution Image Synthesis with Latent Diffusion Models》論文中的關鍵突破,也是穩(wěn)定擴散技術的基礎。
從像素(左側(cè))到潛在表示(右側(cè)的方框網(wǎng)格)的映射。圖片摘自 Sora 技術報告。
DiT 和 Sora 都采用了這種方法。對于 Sora 來說,另一個考慮因素是視頻具有時間維度:視頻是圖像的時間序列,也稱為幀。從 Sora 的技術報告中可以看出,從像素映射到隱空間的編碼步驟既發(fā)生在空間上(指壓縮每個幀的寬度和高度),也發(fā)生在時間上(指跨時間壓縮)。
Transformers
關于第二點,DiT 和 Sora 都用普通的 Transformer 架構取代了常用的 U-Net 架構。這很重要,因為 DiT 論文的作者觀察到,使用 Transformer 能穩(wěn)定地擴大模型規(guī)模:隨著訓練計算量的增加(訓練模型的時間延長或模型增大,或兩者兼而有之),性能也會隨之提高。Sora 的技術報告也指出了同樣的情況也適用于視頻,并提供了一個說明。
關于模型質(zhì)量如何隨訓練計算量的增加而提高的說明:基本計算量、4倍計算量和32倍計算量(從左到右)。視頻摘自 Sora 技術報告。
這種縮放自由度可以用所謂的縮放定律(scaling law)來量化,是一種重要的特性,以前在大語言模型(LLM)和其他模態(tài)的自回歸模型中都對其進行過研究。應用縮放以獲得更好模型的能力是 LLM 快速發(fā)展的主要推動力之一。既然圖像和視頻生成也有同樣的特性,我們應該期待同樣的縮放方法在這里也能發(fā)揮作用。
數(shù)據(jù)
訓練像 Sora 這樣的模型所需的最后一個關鍵要素是標注數(shù)據(jù),本文認為這就是 Sora 的秘訣所在。要訓練像 Sora 這樣的文本生成視頻模型,需要成對的視頻和文本描述。OpenAI 并沒有詳細介紹他們的數(shù)據(jù)集,但他們暗示數(shù)據(jù)集非常龐大:「我們從大語言模型中汲取靈感,這些模型通過在互聯(lián)網(wǎng)級規(guī)模的數(shù)據(jù)上進行訓練,獲得了通用能力」。OpenAI 還發(fā)布了一種用詳細文本標簽注釋圖像的方法,該方法曾被用于收集 DALLE?3數(shù)據(jù)集。其總體思路是在數(shù)據(jù)集的一個標注子集上訓練一個標注模型,然后使用該標注模型自動標注其余的數(shù)據(jù)集。Sora 的數(shù)據(jù)集似乎也采用了同樣的技術。
Sora 的影響分析
本文認為 Sora 有幾個重要的影響,如下所示。
視頻模型開始真正有用
Sora 生成的視頻質(zhì)量有一個明顯的提升,在細節(jié)和時間一致性方面都是如此(例如,該模型能夠正確處理物體在暫時被遮擋時的持續(xù)性,并能準確生成水中的倒影)。本文認為,現(xiàn)在的視頻質(zhì)量已經(jīng)足以應對某些類型的場景,可以在現(xiàn)實世界中應用。Sora 可能很快就會取代部分視頻素材的使用。
視頻生成領域公司的市場分布圖。
但 Sora 還會面臨一些挑戰(zhàn):目前還不清楚 Sora 模型的可操控性。編輯生成的視頻既困難又耗時,因為模型輸出的是像素。此外,圍繞這些模型建立直觀的用戶界面和工作流程也是使其發(fā)揮作用的必要條件。Runway、Genmo 和 Pika 等公司以及更多公司(見上面的市場圖)已經(jīng)在著手解決這些問題。
模型縮放對視頻模型有效,可以期待進一步的進展
DiT 論文的一個重要觀點是,如上所述,模型質(zhì)量會隨著計算量的增加而直接提高。這與已觀察到的 LLM 的規(guī)律相似。因此,隨著視頻生成模型使用越來越多的計算能力進行訓練,我們應該期待這類模型的質(zhì)量能快速提高。Sora 清楚地證明了這一方法確實有效,我們期待 OpenAI 和其他公司在這方面加倍努力。
數(shù)據(jù)生成與數(shù)據(jù)增強
在機器人和自動駕駛汽車等領域,數(shù)據(jù)本來就稀缺:網(wǎng)上沒有機器人執(zhí)行任務或汽車行駛的實時數(shù)據(jù)。因此,解決這些問題的方法通常是進行模擬訓練或在現(xiàn)實世界中大規(guī)模收集數(shù)據(jù)(或兩者結合)。然而,由于模擬數(shù)據(jù)往往不夠真實,這兩種方法都難以奏效。大規(guī)模收集真實世界的數(shù)據(jù)成本高昂,而且要為罕見事件收集足夠多的數(shù)據(jù)也具有挑戰(zhàn)性。
通過修改視頻的某些屬性對其進行增強的示例,在本例中,將原始視頻(左)渲染為郁郁蔥蔥的叢林環(huán)境(右)。圖片摘自 Sora 技術報告。
本文認為,類似 Sora 的模型在這方面會非常有用。類似 Sora 的模型有可能直接用于生成合成數(shù)據(jù)。Sora 還可用于數(shù)據(jù)增強,將現(xiàn)有視頻轉(zhuǎn)換成不同的外觀。上圖展示了數(shù)據(jù)增強的效果,Sora 可以將行駛在森林道路上的紅色汽車視頻轉(zhuǎn)換成郁郁蔥蔥的叢林景色。使用同樣的技術可以重新渲染白天與夜晚的場景,或者改變天氣條件。
仿真和世界模型
一個前瞻的研究方向是學習所謂的世界模型。如果這些世界模型足夠精確,就可以直接在其中訓練機器人,或者用于規(guī)劃和搜索。
像 Sora 這樣的模型似乎是直接從視頻數(shù)據(jù)中隱式地學習真實世界運作的基本模擬。這種「涌現(xiàn)模擬機制」目前還存在缺陷,但卻令人興奮:它表明,我們或許可以通過視頻大規(guī)模地訓練這些世界模型。此外,Sora 似乎還能模擬非常復雜的場景,如液體、光的反射、織物和頭發(fā)的運動。OpenAI 甚至將他們的技術報告命名為「作為世界模擬器的視頻生成模型」,這表明他們認為這是他們模型最重要的價值。
最近,DeepMind 公司的 Genie 模型也展示了類似的效果:通過只在游戲視頻上進行訓練,該模型學會了模擬這些游戲(并制作了新的游戲)。在這種情況下,模型甚至可以在不直接觀察動作的情況下學會對動作進行判斷。同樣,在這些模擬中直接進行學習也是可以期待的。
谷歌 DeepMind 的「Genie:生成式交互環(huán)境」介紹視頻。
綜合來看,本文認為 Sora 和 Genie 這樣的模型可能會非常有用,有助于最終在真實世界的任務中大規(guī)模地訓練具身智能體(例如機器人)。不過,這些模型也有局限性:由于模型是在像素空間中訓練的,因此它們會對每一個細節(jié)進行建模,比如風如何吹動草葉,即使這與手頭的任務完全無關。雖然隱空間被壓縮了,但由于需要能夠映射回像素,因此隱空間仍需保留大量此類信息,因此目前還不清楚能否在隱空間中有效地進行規(guī)劃。
Sora 的計算量估算
Factorial Funds 公司內(nèi)部喜歡評估模型在訓練和推理階段分別使用了多少計算量。這很有用,因為這樣可以為預測未來需要多少計算量提供依據(jù)。不過,要估算出這些數(shù)據(jù)也很困難,因為有關用于訓練 Sora 的模型大小和數(shù)據(jù)集的詳細信息非常少。因此,需要注意的是,本節(jié)中的估算結果具有很大的不確定性,因此應謹慎對待。
根據(jù) DiT 估算Sora 的訓練計算量
關于 Sora 的詳細資料非常少,通過再次查看 DiT 論文(這篇論文顯然是 Sora 的基礎),也可以根據(jù)其中提供的計算數(shù)字進行推斷。最大的 DiT 模型 DiT-XL 有675M 個參數(shù),訓練時的總計算預算約為10^21FLOPS。這相當于約0.4臺 Nvidia H100使用1個月(或一臺 H100使用12天)。
現(xiàn)在,DiT 只是圖像模型,而 Sora 是視頻模型。Sora 可以生成長達1分鐘的視頻。如果我們假設視頻是以24fps 的速度編碼的,那么一段視頻最多由1,440幀組成。Sora 的像素到潛在空間映射似乎在空間和時間上都進行了壓縮。如果假定采用 DiT 論文中相同的壓縮率(8倍),那么在潛空間中將有180幀。因此,當簡單地將 DiT 推廣到視頻時,得到的計算倍率是 DiT 的180倍。
本文還認為,Sora 的參數(shù)要比675M 大得多。本文作者估計至少得有20B 的參數(shù),所需計算量是 DiT 的30倍。
最后,本文認為 Sora 的訓練數(shù)據(jù)集比 DiT 大得多。DiT 在 batch 大小為256的情況下進行了三百萬次訓練,即在總計7.68億張圖片上進行了訓練(請注意,由于 ImageNet 僅包含1,400萬張圖片,因此相同的數(shù)據(jù)被重復了很多次)。Sora 似乎是在混合圖像和視頻的基礎上進行訓練的,除此之外,我們對該數(shù)據(jù)集幾乎一無所知。因此,本文做了一個簡單的假設,即 Sora 的數(shù)據(jù)集50% 是靜態(tài)圖像,50% 是視頻,而且數(shù)據(jù)集是 DiT 使用的數(shù)據(jù)集的10倍到100倍。然而,DiT 在相同的數(shù)據(jù)點上反復訓練,如果有更大的數(shù)據(jù)集,可能性能還會更好。因此,本文認為4-10倍的計算倍率的假設是更合理的。
綜上所述,考慮到額外數(shù)據(jù)集計算的低倍估算值和高倍估算值,本文得出以下計算結果:
低倍數(shù)據(jù)集估計值:10^21FLOPS ×30×4× (180/2) ≈1.1x10^25FLOPS
高倍數(shù)據(jù)集估計值:10^21FLOPS ×30×10× (180/2) ≈2.7x10^25FLOPS
這相當于使用1個月的4,211-10,528臺 Nvidia H100進行訓練。
推理與訓練計算的比較
我們往往會考慮的另一個重要因素是訓練計算與推理計算的比較。從概念上講,訓練計算量非常大,但也是一次性成本,只產(chǎn)生一次。相比之下,推理計算量要小得多,但每次使用都會產(chǎn)生。因此,推理計算會隨著用戶數(shù)量的增加而增加,并且隨著模型的廣泛使用而變得越來越重要。
因此,研究「平衡點」是非常有用的,即推理所耗費的計算量大于訓練所耗費的計算量。
DiT (左)和 Sora (右)的訓練與推理計算結果對比。對于 Sora,本文的數(shù)據(jù)基于上一節(jié)的估計,因此并不完全可靠。這里還顯示了訓練計算的兩種估計值:一種是低估計值(假設數(shù)據(jù)集大小為4倍乘數(shù)),另一種是高估計值(假設數(shù)據(jù)集大小為10倍乘數(shù))。
本文再次使用了 DiT 來推斷 Sora。對于 DiT,最大的模型(DiT-XL)每步使用524×10^9FLOPS,DiT 使用250個擴散步驟生成單幅圖像,總計131×10^12FLOPS。我們可以看到,在生成760萬張圖像后達到了平衡點,之后推理計算占據(jù)了主導地位。作為參考,用戶每天在 Instagram 上傳大約9500萬張圖片(數(shù)據(jù)來源)。
對于 Sora,本文推斷 FLOPS 約為:524×10^9FLOPS ×30×180≈2.8×10^15FLOPS.。如果仍然假設每段視頻經(jīng)歷250次擴散步驟,那么每段視頻的 FLOPS 總量就是708×10^15。在生成1530萬至3810萬分鐘的視頻后,就會達到平衡點,此時所花費的推理計算量將超過訓練計算量。作為參考,每天約有4,300萬分鐘的視頻上傳到 YouTube。
需要注意的是,對于推理而言,F(xiàn)LOPS 并不是唯一重要的因素。例如,內(nèi)存帶寬是另一個重要因素。此外,關于如何減少擴散步驟的數(shù)量的研究,可能會大大降低計算密集度,從而加快推理速度。FLOPS 利用率在訓練和推理之間也會有所不同,在這種情況下,也需要考慮。
不同模型的推理計算比較
本文還對不同模型在不同模式下每單位輸出的推理計算量是如何表現(xiàn)的進行了研究。這樣做的目的是為了了解不同類別模型的推理計算密集程度,這對計算規(guī)劃和需求有直接影響。需要強調(diào)的是,每個模型的輸出單位都會發(fā)生變化,因為它們是在不同的模式下運行的:對于 Sora,單次輸出是一段1分鐘長的視頻;對于 DiT,單次輸出是一張512x512px 的圖片;而對于 Llama2和 GPT-4,單個輸出被定義為包含1,000個 token 的文本的單個文檔。
各模型每單位輸出的推理計算量比較(Sora 為1分鐘視頻,GPT-4和 LLama 為21000個文本 token,DiT 為一張512x512px 的圖片)。可以看到,本文估計 Sora 的推理計算成本要高出幾個數(shù)量級。
本文比較了 Sora、DiT-XL、LLama270B 和 GPT-4,并繪制了它們之間的對比圖(使用 FLOPS 的對數(shù)標度)。對于 Sora 和 DiT,本文使用了上文的推理估計值。對于 Llama2和 GPT-4,本文使用「FLOPS =2× 參數(shù)數(shù)量 × 生成的 token 數(shù)」這一經(jīng)驗公式估算 FLOPS 數(shù)。對于 GPT-4,本文假設該模型是一個專家混合(MoE)模型,每個專家有220B 個參數(shù),每個前向傳遞中有2個專家處于活動狀態(tài)。不過對于 GPT-4,這些數(shù)字并未得到 OpenAI 的確認,因此仍需謹慎對待。
可以看到,像 DiT 和 Sora 這樣基于擴散的模型的推理成本要高得多:DiT-XL(一個擁有675M 參數(shù)的模型)與 LLama2(一個擁有70B 參數(shù)的模型)消耗的推理計算量大致相同。我們還可以看到,在推理工作負載方面,Sora 甚至比 GPT-4更昂貴。
需要再次指出的是,上述許多數(shù)據(jù)都是估算值,依賴于簡化的假設,沒有考慮到 GPU 的實際 FLOPS 利用率、內(nèi)存容量和內(nèi)存帶寬的限制以及推測解碼等高級技術。
類 sora 模型獲得顯著的市場份額之后所需的推理計算量
本節(jié)根據(jù) Sora 的計算需求推斷出了需要多少臺 Nvidia H100才能大規(guī)模運行類似 Sora 的模型,這意味著人工智能生成的視頻已經(jīng)在 TikTok 和 YouTube 等流行視頻平臺上實現(xiàn)顯著的市場滲透。
假設每臺 Nvidia H100每小時制作5分鐘視頻(詳見上文),換言之每臺 H100每天制作120分鐘視頻。
TikTok :假設人工智能的滲透率為50%,則每天的視頻時長為1700萬分鐘(視頻總數(shù)為3400萬 × 平均時長為30s)
YouTube :每天4300萬分鐘視頻,假設人工智能的滲透率為15%(大部分為2分鐘以下的視頻)
人工智能每天制作的視頻總量:850萬 +650萬 =1070萬分鐘
支持 TikTok 和 YouTube 上的創(chuàng)作者社區(qū)所需的 Nvidia H100總量:1,070萬 /120≈89000
再基于以下各種因素考慮,這一數(shù)字可能有些保守:
假設 FLOPS 的利用率為100%,并且沒有考慮內(nèi)存和通信瓶頸。實際上,50% 的利用率更符合實際情況,即增加1倍。
需求在時間上不是平均分布的,而是突發(fā)的。高峰需求尤其成問題,因為你需要更多的 GPU 才能滿足所有流量的需求。本文認為,高峰需求會使所需 GPU 的最大數(shù)量再增加1倍。
創(chuàng)作者可能會生成多個候選視頻,然后從這些候選視頻中選出最佳視頻。我們做了一個保守的假設,即平均每個上傳的視頻會生成2個候選視頻,這又增加了1倍。
在峰值時,總共需要大約720000塊 Nvidia H100GPU
這表明,隨著生成式人工智能模型變得越來越流行且實用,推理計算將占主導地位。對于像 Sora 這樣的基于擴散的模型,更是如此。
還需要注意的是,擴展模型將進一步大大增加推理計算的需求。另一方面,其中一些問題可以通過更優(yōu)化的推理技術和跨堆棧的其他優(yōu)化方法來解決。
視頻內(nèi)容的創(chuàng)意驅(qū)動了對 OpenAI 的 Sora 等模型最直接的需求。
原文鏈接:https://www.factorialfunds.com/blog/under-the-hood-how-openai-s-sora-model-works?continueFlag=8d0858264bc384419d2c0c1cfdc7d065