Sora何時推出?大約在年底。它非常受歡迎,一旦投入使用,不僅會對影視行業造成沖擊,而且會在視頻網站、社交媒體、電商平臺,以及教育等領域得到廣泛應用。它的物理世界模擬器的作用,以及“世界模型”的潛力也非常巨大。
問題來了,它需要多大算力?
風險投資機構Factorial Funds的Matthias Plappert,最近對Sora模型進行了剖析。他們推算的主要依據,是論文Scalable Diffusion Models with Transformers 中的數據。Sora模型在一定程度上是基于論文中所提出的、基于Transformer的架構的DiT (Diffusion Transformers)。論文的第一作者William Peebles目前在OpenAI負責Sora研究團隊。
作者假設Sora推出后,將在Tiktok和Youtube上得到廣泛的應用,推算出需要的算力相當于72萬張英偉達H100 GPU。對比一下,目前Meta擁有的總算力,相當于65萬張H100。
下面我們介紹下其中關于訓練與推理的部分:
從DiT到Sora訓練計算量的外推
關于Sora的細節信息非常少,但我們可以再次查看顯然是Sora基礎的DiT論文,并從中推斷出相關的計算數字。最大的DiT模型DiT-XL有6.75億個參數,總計算預算約為10^21次浮點運算。為了更容易理解這個數字,這相當于大約0.4個Nvidia H100 GPU運行一個月(或一個H100運行12天)。
但是目前DiT僅對圖像建模,而Sora是一個視頻模型。Sora可以生成長達1分鐘的視頻。如果我們假設視頻以24幀/秒編碼,一個視頻最多包含1440幀。Sora的像素到潛在映射似乎在空間和時間上都有壓縮。如果我們假設與DiT論文中相同的壓縮率(8倍),我們最終在潛在空間中得到180幀。因此,在直觀地將DiT外推到視頻時,我們得到了180倍的計算量倍增因子。
我們進一步認為,Sora的參數量明顯大于6.75億個。我們估計200億參數的模型是可行的,這使我們在計算量上比DiT再多出30倍。
最后,我們認為Sora使用的訓練數據集比DiT大得多。DiT在批量大小為256時經過300萬步訓練,即總計使用了7.68億張圖像(但要注意同一數據被重復使用了多次,因為ImageNet僅包含1400萬張圖像)。Sora似乎是在圖像和視頻的混合數據集上進行訓練的,但除此之外我們幾乎一無所知。因此,我們簡單假設Sora的數據集中有50%是靜止圖像,50%是視頻,并且數據集比DiT使用的大10到100倍。然而,DiT在相同的數據點上反復訓練,如果有更大的數據集可用,這種做法可能是次優的。因此,我們認為4到10倍的計算量倍增因子是一個更合理的假設。
將上述因素綜合考慮,并分別計算額外數據集的低估計和高估計,我們得到以下計算結果:
* 數據集低估計: 10^21次浮點運算 x 30 x 4 x (180/2) ≈ 1.1x10^25次浮點運算
* 數據集高估計: 10^21次浮點運算 x 30 x 10 x (180/2) ≈ 2.7x10^25次浮點運算
這相當于4,211至10,528個Nvidia H100 GPU運行1個月的計算量。
推理計算與訓練計算的比較
另一個值得考慮的重要因素,是訓練計算與推理計算之間的對比。訓練計算量非常大,但這是一次性的成本。相比之下,推理計算量雖然小得多,但每一次生成都意味著一次推理計算。因此,推理計算量會隨著用戶數量的增加而擴大,并變得越來越重要,特別是當一個模型被廣泛使用時。
因此,觀察“收支平衡點”是很有用的,即消耗在推理計算上的計算量,超過了訓練期間消耗的計算量的時間點。
(左圖對比DiT的訓練與推理計算,右圖對比Sora的訓練與推理計算。對于Sora部分,我們的數據基于上文估計,因此不是完全可靠。我們還展示了兩種訓練計算的估計:一種低估計(假設數據集大小的倍增因子為4倍)和一種高估計(假設為10倍)。)
在上述數字中,我們再次利用DiT來推算Sora。對于DiT,最大的模型(DiT-XL)每步使用524×10^9次浮點運算,DiT使用250步擴散生成單張圖像,因此總計為131×10^12次浮點運算。我們可以看到,收支平衡點在生成760萬張圖像后達到,此后推理計算將占主導。作為參考,用戶每天大約上傳9500萬張圖像到Instagram。
對于Sora,我們將浮點運算次數外推為524×10^9次 × 30 × 180 ≈ 2.8×10^15次。如果我們仍然假設每段視頻需250步擴散,那就是每段視頻總計708×10^15次浮點運算。作為參考,這大約相當于每小時每個Nvidia H100生成5分鐘視頻。
收支平衡點在生成1530萬(低估計)到3810萬(高估計)分鐘視頻后達到,之后推理計算將超過訓練計算。作為參考,每天約有4300萬分鐘視頻上傳到YouTube。
需要注意的是:對于推理來說,浮點運算次數并不是唯一重要的因素。內存帶寬也是另一個重要因素。此外,現有研究正致力于減少所需的擴散步數,這可能導致推理計算量大幅降低,因此推理速度會更快。訓練和推理階段的浮點運算利用率也可能有所不同,在這種情況下,它們就變得很重要了。
不同模型之間的推理計算量比較
我們還觀察了不同模態下不同模型的每單位輸出推理計算量。這里的想法是,看看不同類型模型的推理計算量級別有多大差異,這對于規劃和預測計算需求有直接影響。重要的是,我們要理解,由于不同模型工作于不同的模態,每個模型的輸出單位也不盡相同:對于Sora,單個輸出是一段1分鐘長的視頻;對于DiT,是一張512x512像素的圖像;而對于Llama 2和GPT-4,我們將單個輸出定義為一份長度為1000個token的文本文檔。
(比較不同模型每單位輸出的推理計算量,對于Sora是1分鐘視頻,對于GPT-4和LLama 2是1000個token的文本,對于DiT是單張512x512像素的圖像。我們可以看到,我們對Sora推理的估計比其他模型昂貴,要高出數個數量級。)
我們比較了Sora、DiT-XL、LLama 2 70B和GPT-4,并以對數刻度繪制了它們的浮點運算次數。對于Sora和DiT,我們使用上文的推理估計值。對于Llama 2和GPT-4,我們使用經驗公式浮點運算次數=2×參數數量×生成的token數來估計。對于GPT-4,我們假設它是一個混合專家 (MoE)模型,每個專家有220B參數,每次前向傳遞激活2個專家。需要注意的是,GPT-4的這些數字未得到OpenAI的確認,因此也需要謹慎對待。
我們可以看到,基于擴散模型如DiT和Sora的推理算力需求要大得多:DiT-XL(6.75億參數)的推理計算量,大約與LLama 2(700億參數)相當。我們還可以看到,Sora的推理算力需求比GPT-4高出數個數量級。
需要注意的是,上述許多數字都是估計值,并且依賴于簡化的假設。例如,它們并未考慮GPU的實際浮點運算利用率、內存容量和帶寬限制以及諸如推測解碼等高級技術。
如果類似Sora的模型占有重要市場份額時的推理計算量
在這一部分,我們根據Sora的計算需求,推測如果AI生成視頻在流行視頻平臺如TikTok和YouTube上占有重要市場份額,將需要多少英偉達H100 GPU來運行類似Sora的模型。
我們假設每小時每個H100生成5分鐘視頻(詳見上文),相當于每天每個H100生成120分鐘視頻。
TikTok:每天1700萬分鐘視頻(3400萬個視頻x平均30秒長度),假設AI滲透率50%。
YouTube:每天4300萬分鐘視頻,假設AI滲透率15%(主要是2分鐘以下的短視頻)。
AI每天總計生成視頻:850萬+650萬=1070萬分鐘。
為支持TikTok和YouTube的創作者社區,需要89000張英偉達H100 GPU。
由于以下因素,這一數字可能偏低:
我們假設100%的浮點運算利用率,并未考慮內存和通信瓶頸。實際上50%的利用率更為現實,需要乘以2倍。
需求不會均勻分布在時間上,而是具有突發性。峰值需求尤其成問題,因為需要相應更多GPU來滿足所有流量。我們認為,應考慮峰值需求再增加2倍,作為所需最大GPU數量。
創作者可能會生成多個候選視頻,從中挑選最佳。我們保守地假設,平均每個上傳視頻要生成2個候選視頻,再增加2倍。
總計在峰值時需要大約72萬臺英偉達H100 GPU。
這說明了我們的觀點:隨著生成式AI模型變得越來越受歡迎和受到依賴,推理計算將占主導地位。對于基于擴散的模型如Sora,這種趨勢會更加明顯。
另外需要注意,如果擴大模型規模,推理計算需求也會大幅增加。另一方面,更優化的推理技術和整個技術棧上的其他優化措施,可能會在一定程度上抵消這種影響。