就在不久前,OpenAI Sora憑藉其驚人的視訊生成效果迅速走紅,凸顯出與其他文生視訊模型的差異,並成為全球矚目的焦點。
繼2週前推出成本直降46%的Sora訓練推理復現流程後,Colossal-AI團隊全面開源全球首個類別Sora架構視訊生成模型“ Open-Sora 1.0”——涵蓋了整個訓練流程,包括資料處理、所有訓練細節和模型權重,攜手全球AI熱愛者共同推進視頻創作的新紀元。
Open-Sora開源位址:https://github.com/hpcaitech/Open-Sora
#先睹為快,我們先看一段由Colossal-AI團隊發布的「Open-Sora 1.0」模型生成的都市繁華掠影影片。
Open-Sora 1.0生成的都市繁華掠影
##這只是Sora復現技術冰山的一角,關於以上文生影片的模型架構、訓練好的模型權重、復現的所有訓練細節、資料預處理過程、demo展示和詳細的上手教學,Colossal-AI團隊已經全面免費開源在GitHub。
新智元第一時間聯繫了該團隊,獲悉他們將持續更新Open-Sora相關解決方案和最新動態。有興趣的朋友可保持關注Open-Sora的開源社群。
全面解讀Sora復現方案接下來,我們將深入解讀Sora復現方案的多個關鍵維度,包括模型架構設計、訓練復現方案、資料預處理、模型生成效果展示、高效訓練最佳化策略。
#模型採用了目前火熱的Diffusion Transformer(DiT)[1]架構。
作者團隊以同樣使用DiT架構的高品質開源文生圖模型PixArt-α [2]為基座,在此基礎上引入時間注意力層,將其擴展到了視訊數據上。
具體來說,整個架構包括一個預先訓練好的VAE,一個文字編碼器,和一個利用空間-時間注意力機制的STDiT(Spatial Temporal Diffusion Transformer)模型。
其中,STDiT 每層的結構如下圖所示。它採用串列的方式在二維的空間注意力模組上疊加一維的時間注意力模組,用於建模時序關係。
在時間注意力模組之後,交叉注意力模組用來對齊文字的語意。與全注意力機制相比,這樣的結構大大降低了訓練和推理開銷。
與同樣使用空間-時間注意力機制的Latte [3]模型相比,STDiT可以更好的利用已經預先訓練好的圖像DiT的權重,從而在視頻數據上繼續訓練。
STDiT結構示意圖
整個模型的訓練和推理流程如下。據了解,在訓練階段首先採用預先訓練的Variational Autoencoder(VAE)的編碼器將視訊資料進行壓縮,然後在壓縮之後的潛在空間中與文字嵌入(text embedding)一起訓練STDiT擴散模型。
在推理階段,從VAE的潛在空間中隨機取樣出一個高斯噪聲,與提示詞嵌入(prompt embedding)一起輸入到STDiT中,得到去噪之後的特徵,最後輸入到VAE的解碼器,解碼得到影片。
模型的訓練流程
#我們向團隊了解到,Open-Sora的複現方案參考了Stable Video Diffusion(SVD)[3]工作,共包括三個階段,分別是:
1. 大規模影像預訓練;
2. 大規模影片預訓練;
##3. 高品質視訊資料微調。
每個階段都會基於前一個階段的權重繼續訓練。相較於從零開始單階段訓練,多階段訓練透過逐步擴展數據,更有效率地達成高品質視訊生成的目標。
訓練方案三階段
第一階段:大規模影像預訓練
第一階段透過大規模影像預訓練,借助成熟的文生圖模型,有效降低視訊預訓練成本。 ######
作者团队向我们透露,通过互联网上丰富的大规模图像数据和先进的文生图技术,我们可以训练一个高质量的文生图模型,该模型将作为下一阶段视频预训练的初始化权重。
同时,由于目前没有高质量的时空VAE,他们采用了Stable Diffusion [5]模型预训练好的图像VAE。该策略不仅保障了初始模型的优越性能,还显著降低了视频预训练的整体成本。
第二阶段:大规模视频预训练
第二阶段执行大规模视频预训练,增加模型泛化能力,有效掌握视频的时间序列关联。
我们了解到,这个阶段需要使用大量视频数据训练,保证视频题材的多样性,从而增加模型的泛化能力。第二阶段的模型在第一阶段文生图模型的基础上加入了时序注意力模块,用于学习视频中的时序关系。
其余模块与第一阶段保持一致,并加载第一阶段权重作为初始化,同时初始化时序注意力模块输出为零,以达到更高效更快速的收敛。
Colossal-AI团队使用了PixArt-alpha[2]的开源权重作为第二阶段STDiT模型的初始化,以及采用了T5 [6]模型作为文本编码器。同时他们采用了256x256的小分辨率进行预训练,进一步增加了收敛速度,降低训练成本。
第三阶段:高质量视频数据微调
第三阶段对高质量视频数据进行微调,显著提升视频生成的质量。
作者团队提及第三阶段用到的视频数据规模比第二阶段要少一个量级,但是视频的时长、分辨率和质量都更高。通过这种方式进行微调,他们实现了视频生成从短到长、从低分辨率到高分辨率、从低保真度到高保真度的高效扩展。
作者团队表示,在Open-Sora的复现流程中,他们使用了64块H800进行训练。
第二阶段的训练量一共是2808 GPU hours,约合7000美元。第三阶段的训练量是1920 GPU hours,大约4500美元。经过初步估算,整个训练方案成功把Open-Sora复现流程控制在了1万美元左右。
为了进一步降低Sora复现的门槛和复杂度,Colossal-AI团队在代码仓库中还提供了便捷的视频数据预处理脚本,让大家可以轻松启动Sora复现预训练,包括公开视频数据集下载,长视频根据镜头连续性分割为短视频片段,使用开源大语言模型LLaVA [7]生成精细的提示词。
作者团队提到他们提供的批量视频标题生成代码可以用两卡3秒标注一个视频,并且质量接近于GPT-4V。最终得到的视频/文本对可直接用于训练。
借助他们在GitHub上提供的开源代码,我们可以轻松地在自己的数据集上快速生成训练所需的视频/文本对,显著降低了启动Sora复现项目的技术门槛和前期准备。
基于数据预处理脚本自动生成的视频/文本对
下面我们来看一下Open-Sora实际视频生成效果。比如让Open-Sora生成一段在悬崖海岸边,海水拍打着岩石的航拍画面。
再让Open-Sora去捕捉山川瀑布从悬崖上澎湃而下,最终汇入湖泊的宏伟鸟瞰画面。
除了上天还能入海,简单输入prompt,让Open-Sora生成了一段水中世界的镜头,镜头中一只海龟在珊瑚礁间悠然游弋。
Open-Sora还能通过延时摄影的手法,向我们展现了繁星闪烁的银河。
如果你还有更多视频生成的有趣想法,可以访问Open-Sora开源社区获取模型权重进行免费的体验。
链接:https://github.com/hpcaitech/Open-Sora
值得注意的是,作者团队在Github上提到目前版本仅使用了400K的训练数据,模型的生成质量和遵循文本的能力都有待提升。例如在上面的乌龟视频中,生成的乌龟多了一只脚。Open-Sora 1.0也并不擅长生成人像和复杂画面。
作者团队在Github上列举了一系列待做规划,旨在不断解决现有缺陷,提升生成质量。
除了大幅降低Sora復現的技術門檻,提升影片生成在時長、解析度、內容等多個維度的質量,作者團隊也提供了Colossal-AI加速系統進行Sora復現的高效訓練加持。
透過算符優化和混合平行等高效訓練策略,在處理64幀、512x512解析度視訊的訓練中,實現了1.55倍的加速效果。
同時,得益於Colossal-AI的異質記憶體管理系統,在單一伺服器上(8 x H800)可以無阻礙地進行1分鐘的1080p高清視訊訓練任務。
此外,在作者團隊的報告中,我們也發現STDiT模型架構在訓練時也展現出卓越的高效性。
和採用全注意力機制的DiT相比,隨著幀數的增加,STDiT實現了高達5倍的加速效果,這在處理長視頻序列等現實任務中尤為關鍵。
歡迎持續關注Open-Sora開源專案:https://github.com/hpcaitech/Open-Sora
作者團隊提及,他們將繼續維護和優化Open-Sora項目,預計將使用更多的視頻訓練數據,以產生更高質量、更長時長的視頻內容,並支持多分辨率特性,切實推進AI技術在電影、遊戲、廣告等領域的落地。
以上是別等OpenAI了,全球首個類Sora搶先開源!所有訓練細節/模型權重全公開,成本僅1萬美元的詳細內容。更多資訊請關注PHP中文網其他相關文章!