Meta Movie Gen:新的 SOTA 視頻生成模型-技術(shù)報(bào)告解讀
一、背景
前段時(shí)間 Meta 發(fā)布了對(duì)標(biāo) OpenAI SORA 和快手可靈的視頻生成模型 Movie Gen,這里我們進(jìn)行相關(guān)的技術(shù)解讀。本文主要聚焦在其圖像和視頻生成模型部分,進(jìn)行詳細(xì)介紹;然后對(duì)視頻個(gè)性化、編輯和音頻生成進(jìn)行簡(jiǎn)單概述。
對(duì)應(yīng)的論文:Movie Gen: A Cast of Media Foundation Models
對(duì)應(yīng)的 Blog:How Meta Movie Gen could usher in a new AI-enabled era for content creators
更多的 Video:Meta Movie Gen
我們?cè)谥暗奈恼轮幸苍敿?xì)介紹過各種文生圖相關(guān)的技術(shù)方案、OpenAI SORA 技術(shù)原理以及 Meta 的 LLaMA 3 技術(shù)報(bào)告和大規(guī)模 GPU 集群建設(shè),可以參考:
- ??OpenAI 文生圖模型演進(jìn):DDPM、IDDPM、ADM、GLIDE、DALL-E 2、DALL-E 3??
- ??文生圖模型演進(jìn):AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型??
- ??DALL-E、Stable Diffusion 等 20+ 圖像生成模型綜述??
- ??追本溯源:OpenAI Sora 技術(shù)報(bào)告解讀??
- ??LLaMA 3 技術(shù)報(bào)告解讀:全面梳理 LLM 相關(guān)技術(shù)棧??
- ??LLaMA 3 背后的大規(guī)模 GPU 集群 RoCE 網(wǎng)絡(luò)建設(shè)??
二、摘要
Movie Gen 是一組基礎(chǔ)模型,可生成具有不同寬高比、同步音頻的高質(zhì)量 1080P 高清視頻。此外,作者還展示了其他的能力,比如基于指令的精確視頻編輯、根據(jù)用戶圖像生成個(gè)性化視頻等。
作者的模型在多個(gè)任務(wù)上都達(dá)到了新的 SOTA 水平,包括:文本->視頻生成、視頻個(gè)性化、視頻編輯、視頻->音頻生成、文本->音頻生成等。
最大的視頻生成模型是一個(gè) 30B 參數(shù)的 Transformer 模型,經(jīng)過訓(xùn)練,最大上下文長(zhǎng)度可達(dá) 73K 視頻 Token,對(duì)應(yīng)以每秒 16 幀的速度生成 16 秒的視頻。此外,作者還展示了相應(yīng)的多項(xiàng)技術(shù)創(chuàng)新和簡(jiǎn)化,比如模型結(jié)構(gòu)、隱空間、訓(xùn)練目標(biāo)和方案、數(shù)據(jù)管理、評(píng)估以及并行化方案和推理優(yōu)化方案,使得能夠從擴(kuò)展預(yù)訓(xùn)練數(shù)據(jù)、模型大小以及訓(xùn)練預(yù)算中獲益,以最終訓(xùn)練大規(guī)模視頻生成模型。
三、概覽
總體來說,Movie Gen 包含 4 個(gè)模型以及 3 個(gè)基準(zhǔn)。
3.1 四個(gè)模型
與 LLM 模型不同,LLM 聚焦與生成文本,而本文的 Movie Gen 模型聚焦于生成圖像、視頻和音頻。包含 2 個(gè)基礎(chǔ)模型、1 個(gè)個(gè)性化模型以及一個(gè)編輯模型。
兩個(gè)基礎(chǔ)模型為:
- Movie Gen Video:包含一個(gè)30B 參數(shù)量的基座模型,可用于文本->圖像、文本->視頻生成。支持可變寬高比、分辨率以及時(shí)長(zhǎng)。在 O(100)M 視頻和 O(1)B 圖像上訓(xùn)練,作者發(fā)現(xiàn),預(yù)訓(xùn)練的模型可以推理物體動(dòng)作、交互、幾何、相機(jī)移動(dòng)和物理學(xué)。為了進(jìn)一步提升視頻生成能力,額外在小規(guī)模高質(zhì)量的視頻和文本數(shù)據(jù)集上進(jìn)行 SFT。
- Movie Gen Audio:包含一個(gè)13B 參數(shù)量的基座模型,可用于文本->音頻、視頻->音頻生成。支持遵循文本提示,生成 48kHz 的高質(zhì)量電影音效以及與視頻輸入同步的音樂等。在O(1)M 小時(shí)的音頻上預(yù)訓(xùn)練,并且在一個(gè)小規(guī)模的高質(zhì)量(文本、音頻)、(視頻、文本、音頻)數(shù)據(jù)集上 SFT,以生成高質(zhì)量音頻。
如下圖所示為上述兩個(gè)模型的使用示例:
個(gè)性化模型和視頻編輯模型為:
- Personalized Movie Gen Video:提供視頻個(gè)性化能力,可以輸入一個(gè)個(gè)人圖片,然后生成針對(duì)這個(gè)人的個(gè)性化視頻。在Movie Gen Video 基礎(chǔ)上使用包含人類的視頻子集(自動(dòng)構(gòu)建了圖像-文本對(duì)輸入和視頻輸出數(shù)據(jù)) Post Training而來。
- Movie Gen Edit:允許用戶使用文本說明輕松地對(duì)真實(shí)和生成的視頻進(jìn)行精確和富有想象力的編輯。同樣在Movie Gen Video 基礎(chǔ)上 Post Training 而來。
如下圖所示為上述兩個(gè)模型的使用示例:
3.2 三個(gè)基準(zhǔn)
為了更好的進(jìn)行基準(zhǔn)評(píng)估,作者也進(jìn)一步發(fā)布了 3 個(gè)評(píng)估基準(zhǔn):
- Movie Gen Video Bench:用于評(píng)估視頻生成能力,總共包含 1000 個(gè) Prompt,涉及各種不同的元素。
- Movie Gen Edit Bench:用于評(píng)估視頻編輯能力,總共包含 1152 個(gè)樣本,涉及 6 個(gè)不同的編輯任務(wù)。
- Move Gen Audio Bench:用于評(píng)估音頻生成能力,總共包含 538 個(gè)樣本。
四、圖像和視頻生成
4.1 概覽
針對(duì)文本->圖像和文本->視頻生成,作者訓(xùn)練了一個(gè)統(tǒng)一的基座模型。作者將圖像看做一個(gè)單幀的視頻,給定一個(gè)文本提示作為輸入,模型可以生成包含一個(gè)或多個(gè) RGB 圖像作為輸出的視頻幀。
如下圖 Figure 2 所示為 Movie Gen Video 模型的訓(xùn)練過程,其包含 3 個(gè)階段:
- 256 px Image Training:使用 256 分辨率的圖像-文本對(duì)訓(xùn)練文本->圖像生成模型,使用 O(1) B 圖像數(shù)據(jù)集,訓(xùn)練總共迭代 1.94B 個(gè) Sample。
- 256->768 px Video Training:
- 使用 256 分辨率混合訓(xùn)練文本->圖像和文本->視頻能力,包含 O(100)M 切片數(shù)據(jù)集,訓(xùn)練總共迭代 394.8M 個(gè) Sample。
- 使用 768 分辨率混合訓(xùn)練文本->圖像和文本->視頻能力,包含 O(100)M 切片數(shù)據(jù)集,訓(xùn)練總共迭代 73.8M 個(gè) Sample。
- 個(gè)性化、編輯模型訓(xùn)練:基于上述的基座模型 Post Training。?
為了提升訓(xùn)練和推理效率,生成是在壓縮的時(shí)空隱空間(spatio-temporally latent space)進(jìn)行。因此作者訓(xùn)練了一個(gè)時(shí)序自編碼模型(Temporal Autoencoder Model,TAE),以便將圖像、視頻編碼到壓縮的時(shí)空隱空間。對(duì)于用戶輸入的文本提升,使用預(yù)訓(xùn)練的 Text Encoder 模型進(jìn)行編碼,以獲得文本 Embedding,這也將作為生成模型的 Condition 輸入。此外,作者使用 Flow Matching 訓(xùn)練目標(biāo)來訓(xùn)練生成模型。將采樣噪聲和所有 Condition 作為輸入,使 Generative 模型生成輸出隱向量。然后使用 TAE 的 Decoder 將其映射回像素空間,以便生成圖像和視頻。整個(gè)過程如下圖 Figure 3 所示(包含了上述的 TAE、Text Encoder 以及 Generative 模型):
在對(duì)基座模型的所有組件進(jìn)行設(shè)計(jì)選型時(shí),作者都盡量注重簡(jiǎn)單化,包括訓(xùn)練目標(biāo)、主干架構(gòu)以及 TAE 的時(shí)空壓縮。具體來說,這些選擇包括:
- 使用 LLaMA 3 作為統(tǒng)一的圖像、視頻生成模型主干架構(gòu),以便更簡(jiǎn)單的擴(kuò)展和高效訓(xùn)練;
- 最大的 30B 模型可以直接生成不同寬高比(比如 1:1,9:16,16:9)、多種長(zhǎng)度(4-16s)的視頻(768x768);
- 此外,使用空間上采樣(Spatial Upsampling)模型可以進(jìn)一步生成全高清 1080P 的視頻。
4.2 圖像、視頻基座模型
4.2.1 TAE 模型
上述提到的 TAE 模型是一個(gè)標(biāo)準(zhǔn)的 VAE(Variational AutoEncoder)模型。假設(shè)輸入的空間維度為 T’ x 3 x H’ x W’,經(jīng)過 TAE 的 Encoder 后將編碼為 T x C x H x W 的隱空間向量,在空間、時(shí)間維度均是 8 倍下采樣,也就是 T’/T=H’/H=W’/W=8;而 Decode 是 8 倍上采樣。通過這種方式,可以大幅降低輸入生成模型(Transformer Backone)的維度,以便生成長(zhǎng)時(shí)間、高分辨率的視頻幀。如下圖 Figure 4 所示為相應(yīng)的流程:
TAE 模型結(jié)構(gòu)來自 [2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models (也就是 Stable Diffusion)中的 Image AutoEncoder 模型,并進(jìn)行相應(yīng)的修改以增加時(shí)序信息。具體來說:
- 每一個(gè) 2D 空間卷積后增加一個(gè) 1D 時(shí)序卷積,稱為2.5D Convolution;每一個(gè) 2D 空間 Attention 之后增加一個(gè) 1D 時(shí)序 Attention,稱為2.5D Attention。
- 所有時(shí)序卷積兩邊對(duì)稱 Padding。
- 時(shí)序卷積通過 stride 為 2 來實(shí)現(xiàn)下采樣,上采樣時(shí)采用最近鄰插值。
- Channel 維度 C = 16,作者同樣發(fā)現(xiàn)增加 Channel 維度可以提升重建和生成質(zhì)量。
- TAE 訓(xùn)練時(shí)采用了預(yù)訓(xùn)練的 Image AutoEncoder 模型來初始化,并增加時(shí)序參數(shù)。
- 聯(lián)合圖像和視頻進(jìn)行序列,圖像 Batch 和視頻 Batch 的比例為 1:3。
TAE 模型的訓(xùn)練目標(biāo):如下圖 Figure 5 所示,之前 StableDiffusion 中的訓(xùn)練目標(biāo)容易導(dǎo)致 Spot Artifact 問題,為了緩解這個(gè)問題,作者在損失函數(shù)上增加了一個(gè)異常損失懲罰(Outlier Penalty Loss,OPL),如下圖公式 (1) 所示:
通過時(shí)序 tiling 實(shí)現(xiàn)高效推理:直接編碼、解碼高分辨率長(zhǎng)視頻的代價(jià)很高,比如 1024x1024 分辨率、256 幀需要非常大的存儲(chǔ)空間。為了解決這個(gè)問題,作者在時(shí)序維度將長(zhǎng)視頻切分為不同的 tile,然后每個(gè) tile 分別進(jìn)行編碼和解碼,最后再將結(jié)果融合到一起。在切片的時(shí)候允許一定的 Overlap,如果執(zhí)行 Overlap,則結(jié)果要對(duì)應(yīng)線性加權(quán)。使用 Overlap 可以避免邊界處的 Artifact,但是也會(huì)引入額外的計(jì)算開銷。在作者的實(shí)踐中,Encoder212!!@2121 并沒有使用 Overlap,對(duì)應(yīng)的 tile size 為 32(32個(gè)視頻幀,降采樣后對(duì)于隱空間 4 幀);而在 Decoder 中使用了 16 幀的 Overlap(對(duì)應(yīng)隱空間 2 幀)。如下圖 Figure 6 所示為推理階段對(duì)應(yīng)的切片方案:
4.2.2 視頻和圖像生成訓(xùn)練目標(biāo)
生成模型訓(xùn)練采用了 [2210.02747] Flow Matching for Generative Modeling 提出的 Flow Matching 框架。
4.2.3 視頻和圖像生成 Backbone 架構(gòu)
采用了類 LLaMA 3 模型架構(gòu),并且使用了 RMSNorm 和 SwiGLU。主要做了 3 點(diǎn)改造:
- 為了集成基于文本提示提取的文本 Embedding 作為 Condition,在每一個(gè) Transformer Block 的Self-Attention 和 FFN 之間插入一個(gè) Cross-Attention。當(dāng)然,作者使用了多個(gè)文本模型來提取 Embedding。
- 增加了一個(gè)Adaptive Layer Norm Block以便集成時(shí)間步長(zhǎng) t,類似[2212.09748] Scalable Diffusion Models with Transformers。
- 使用雙向 Full Attention,而不是 Causal Attention。
對(duì)應(yīng)的模型超參如下圖 Table 1 所示,共包含 30B 參數(shù)量,因?yàn)橹苯踊?LLaMA 3 改造而來,也就可以直接應(yīng)用 LLaMA 3 的相關(guān)經(jīng)驗(yàn),比如模型結(jié)構(gòu)超參配置,學(xué)習(xí)率和 Batch Size 設(shè)置等。
4.2.4 豐富的文本 Embedding 和視覺-文本生成
如下圖所示,作者使用了 3 個(gè)預(yù)訓(xùn)練的文本 Embedding 模型:UL2、ByT5 和 Long-prompt MetaCLIP,以便提前語義級(jí)(Semantic-Level)和字符級(jí)(Character-Level)文本 Embedding。
- Long-prompt MetaCLIP 是基于 MetaCLIP 的文本 Encoder 在長(zhǎng)文本描述數(shù)據(jù)上微調(diào)而來,以將輸入文本 Token 長(zhǎng)度從 77 擴(kuò)展到 256。
- 針對(duì) 3 個(gè)模型,會(huì)分別提取文本 Embedding,然后Concat 到一起并通過一個(gè)線性投影和 LayerNorm 層將其投影到 6144 維的歸一化向量。
- UL2 和 Long-prompt MetaCLIP 用于提取語義級(jí) Embedding。
- ByT5 用于提取字符級(jí) Embedding,僅用于編碼視覺文本,比如明確要求輸出結(jié)果中包含特定的字符串(“No,Movie Gen is the best”)。?
控制 FPS:使用 FPS Condition 來控制生成視頻的長(zhǎng)度,方法是將每個(gè)訓(xùn)練視頻的采樣 FPS 值預(yù)先添加到輸入文本提示(例如,“FPS-16”)。在預(yù)訓(xùn)練期間,以原始 FPS 采樣視頻切片,最小維 16 FPS;在微調(diào)中,以 16 和 24 兩個(gè)固定 FPS 值采樣視頻切片。
4.2.5 空間上采樣
需要說明的是,上述的模型生成最終只能生成 768 px 的視頻,作者用過一個(gè)空間上采樣模型(Spatial Upsample)將 768 px 的視頻轉(zhuǎn)換為 full HD(1080P) 分辨率的視頻??梢源蠓档鸵曨l生成模型的計(jì)算開銷,主要是低分辨率會(huì)大幅降低文本->視頻模型處理的 Token 數(shù)。
如下圖 Figure 7 所示,作者將空間上采樣看做一個(gè)視頻->視頻的生成任務(wù),低分辨率視頻作為輸入,高分辨率視頻作為輸出。
- 低分率輸入視頻在輸入模型之前首先經(jīng)過雙線性插值擴(kuò)展到期望的輸出大小,然后經(jīng)過 VAE 模型生成高分辨率視頻。
- VAE 模型同樣是使用 Encoder 將每個(gè)視頻幀編碼到隱空間的隱向量,然后隱空間模型會(huì)生成用于高分辨率的隱向量,最后使用 Decoder 來生成高分辨率視頻幀。?
實(shí)現(xiàn)細(xì)節(jié):空間上采樣模型是一個(gè)文本->視頻 Transformer 模型的變種,包含 7B 參數(shù)量,并使用 1024 px 訓(xùn)練的文本->視頻模型來初始化,以便更好的利用高分辨率圖像數(shù)據(jù)。空間上采樣模型訓(xùn)練用于預(yù)測(cè)視頻的隱向量,然后使用 VAE Decoder 逐幀生成視頻幀。
如下圖 Fig 3 所示,在 [2311.10709] Emu Video: Factorizing Text-to-Video Generation by Explicit Image Conditioning(也是 Meta 的工作) 中,首先會(huì)使用文本提示生成視頻首幀 I,然后將生成的首幀 I 作為條件輸入,同時(shí)使用 Mask m 標(biāo)識(shí)首幀 I,然后使用生成模型 F 生成視頻 V。
與上述 Emu Video 類似,空間上采樣模型中編碼視頻在通道維度也會(huì)與生成視頻拼接,一起輸入空間上采樣 Transformer 模型。由于拼接,輸入初的附加參數(shù)也將初始化為 0。
作者在 400K 高清視頻上以 24 FPS、14 幀切片的方式訓(xùn)練空間上采樣模型。 并且采用了二階退化([2107.10833] Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data)來模擬輸入中的復(fù)雜退化,以訓(xùn)練模型生成高清輸出視頻。訓(xùn)練時(shí)采用的是已有的高清視頻,而推理時(shí)使用的是經(jīng) TAE Decoder 解碼的視頻,為了最小化訓(xùn)練-測(cè)試偏差,也會(huì)使用 TAE 生成的視頻隨機(jī)替換二階退化的視頻。此外,作者觀察到,只經(jīng)過 20 個(gè)推理 Step 就可以生成一個(gè)很好的結(jié)果視頻。
這種簡(jiǎn)單的架構(gòu)可以用于各種倍數(shù)的超分辨;然而,本文中作者只訓(xùn)練了 2x 的空間超分模型。與上述 TAE tail 類似,同樣會(huì)使用滑動(dòng)窗口方式對(duì)視頻進(jìn)行上采樣,窗口大小為 14,重疊 4 個(gè) Latent 幀。
這種簡(jiǎn)單的架構(gòu)可用于各種倍數(shù)的超分辨率;然而,我們?yōu)槲覀兊陌咐?xùn)練了一個(gè) 2? 的空間超分辨率模型。與 TAE 平鋪(第 3.1.1 節(jié))類似,我們使用滑動(dòng)窗口方法對(duì)視頻進(jìn)行上采樣,窗口大小為 14,重疊 4 個(gè)潛在幀。
內(nèi)存限制導(dǎo)致無法使用更長(zhǎng)的視頻訓(xùn)練 Spatial Upsample。所以才使用上述滑動(dòng)窗口的方案,然而,這也導(dǎo)致在邊界處出現(xiàn)明顯不一致的現(xiàn)象。為了避免這種情況,作者采用了 MultiDiffusion([2302.08113] MultiDiffusion: Fusing Diffusion Paths for Controlled Image Generation)方案,其無需訓(xùn)練,可以通過約束條件來保證不同生成階段的一致性。具體來說,在每個(gè) Denoising Step 中,使用重疊幀隱向量的加權(quán)平均值來促使窗口間的信息交換,以增強(qiáng)輸出的時(shí)序一致性。
4.2.6 模型擴(kuò)展和訓(xùn)練效率
這個(gè)部分作者具體介紹了高效訓(xùn)練 Movie Gen Video 30B 模型的方案,包括 Meta 的 AI Infra 建設(shè),與 SOTA 模型訓(xùn)練的對(duì)比以及采用的分布式并行策略等。
Infrastructure:我們?cè)谇懊娴奈恼轮薪榻B過,Meta 有 2 個(gè) 24K H100 GPU 的 Data Center,一個(gè)是 NVIDIA Quantum2 Infiniband(IB) 網(wǎng)絡(luò)互聯(lián),一個(gè)是 RoCE 互聯(lián),其中 RoCE 集群采用 3 層 Clos 網(wǎng)絡(luò)。
- 每個(gè) Rack包含 2 個(gè) Server,每個(gè) Server 有 8 個(gè) H100 80GB GPU,8 個(gè) 400 Gbps NIC。每個(gè) Rack 中都有一個(gè) TOR(top-of-the-fack) Switch。
- 每個(gè) Cluster包含 192 個(gè) Rack,共 192x2x8=3072 個(gè) H100 GPU,Cluster 內(nèi)部的后向網(wǎng)絡(luò)是無收斂的,而跨 Cluster 是 1:7 的收斂比。?
Scheduler:訓(xùn)練任務(wù)調(diào)度采用的是 Meta 在 MAST: Global Scheduling of ML Training across Geo-Distributed Datacenters at Hyperscale 中提到的 MAST。MAST 的設(shè)計(jì)原則是:時(shí)間解耦(Temporal decoupling)、范圍解耦(Scope decoupling)和全面搜索(Exhaustive search),使得 MAST 能夠在全局范圍內(nèi)有效地調(diào)度復(fù)雜的 ML 訓(xùn)練工作負(fù)載。如下圖 Figure 1 所示,MAST 架構(gòu)包含全局 ML 調(diào)度器(GMS)、區(qū)域 ML 調(diào)度器(RMS)和集群管理器(CM),它們分別在全局、區(qū)域和 Cluster 范圍內(nèi)處理不同的調(diào)度職責(zé)。此外,MAST 還利用了 Tetris 系統(tǒng),可以優(yōu)化跨區(qū)域數(shù)據(jù)放置,確保數(shù)據(jù)和 GPU 在同一個(gè)位置。
與 LLM 對(duì)比:LLM 通常采用 Causal Mask Attention,而 Movie Gen Video 中采用雙向 Full Attention,這樣就導(dǎo)致 Movie Gen Video 中 Attention 計(jì)算代價(jià)更高,幾乎是 LLM 的 2x。
此外,在 LLaMA 3 中會(huì)使用 GQA 來代替 MHA,以便降低 KV Cache 大小和計(jì)算量,推理時(shí)也可以進(jìn)一步加速。由于 Movie Gen Video 不是自回歸模型,也就不需要 KV Cache,因此作者并沒有采用 GQA。
和 LLaMA 3 類似,模型同樣支持可變的上下文長(zhǎng)度,上下文長(zhǎng)度與空間分辨率密切相關(guān)。對(duì)于 768x 的訓(xùn)練,其上下文長(zhǎng)度將達(dá)到 73K(768x768, 256 幀,8x8x8 的下采樣 -> 768x768x256/8/8/8=294912,得到 294912 個(gè)隱向量,然后使用 3D 卷積(2x2x1)得到 73728 個(gè) Token)。LLM 通常先在短上下文(比如 4K、8K)上預(yù)訓(xùn)練,然后擴(kuò)展到長(zhǎng)上下文,主要訓(xùn)練預(yù)算花費(fèi)在短上下文預(yù)訓(xùn)練上;而 Movie Gen Video 的訓(xùn)練主要花費(fèi)在 768x 的預(yù)訓(xùn)練上。
模型并行:由于模型比較大,上下文序列很長(zhǎng),同時(shí)又是主要的訓(xùn)練開銷,因此就需要盡可能高效的訓(xùn)練。為此,作者采用了 3D 并行策略,允許靈活的擴(kuò)展 GPU 規(guī)模;具體來說,作者結(jié)合了 FSDP、TP、SP(Megatron-LM SP) 和 CP(Megatron-LM CP) 方案。
序列并行的方案有很多,上述提到 SP 和 CP 與 Megatron-LM 對(duì)應(yīng)。如下圖 Figure 5 所示為 Megatron-LM SP,其主要是為了解決 TP 中無法分?jǐn)偟娘@存。作者分析后發(fā)現(xiàn) LayerNorm 和 Dropout 的輸入輸出沒有被分?jǐn)偟讲煌?GPU。實(shí)際上它們?cè)诓煌?Token 上并沒有依賴關(guān)系,因此可以按照 Sequence 維度進(jìn)行切分,不同 GPU 只保留序列的一部分,也只計(jì)算這一部分:
在 Megatron-LM 中還有Megatron-LM CP(上下文并行,Context Parallelism),實(shí)際上就是按照輸入序列進(jìn)行切分。如下圖所示為 Megatron-LM 中 TP 和 CP 的組合,其中 AG/RS 表示 Forward 為 All Gather,Backward 為 Reduce Scatter;RS/AG 表示 Forward 為 Reduce Scatter,Backward 為 All Gather。具體可參考 Context parallelism overview - NVIDIA Docs:
如下圖 Figure 8 所示,作者展示了本文中如何在 Transformer 模型的不同部分應(yīng)用這些并行方案:
- Tensor Parallelism(TP):在FFN 層各個(gè) Token 之間沒有交叉,直接采用 TP,對(duì)模型參數(shù)進(jìn)行切分;當(dāng)然,也就在 Forward 和 Backward 過程額外引入了 AllReduce 通信操作。
- Sequence Parallelism(SP):對(duì)應(yīng)NVIDIA Megatron-LM SP,在 TP 的基礎(chǔ)上可以進(jìn)一步使用 SP。具體來說,Scale 和 Norm 等操作按照序列維度切分,每個(gè)設(shè)備只處理一部分序列。如果不這么做,將導(dǎo)致部分層(比如 LayerNorm)出現(xiàn)重復(fù)計(jì)算,在不同的 TP Group 產(chǎn)生相同的激活。
- Context Parallelism(CP):對(duì)應(yīng)NVIDIA Megatron-LM CP,在輸入序列維度切分,具體來說,將輸入序列切分為不同的 Chunk,每個(gè)設(shè)備處理一部分的 Token,然后通過通信來實(shí)現(xiàn) Attention 到其他 Chunk 的 Token。CP 主要應(yīng)用在 Attention 計(jì)算中,不過在 Self-Attention 和 Cross-Attention 中實(shí)現(xiàn)方式會(huì)不太一樣:
- Cross-Attention 的 Contexts(對(duì)應(yīng) K 和 V) 是一些 Condition,往往不會(huì)特別長(zhǎng),因此不用 CP 切分;對(duì)應(yīng)FSDP + TP + SP。
- Self-Attention 中 Forward 過程通過 K 和 V 的 AllGather 來實(shí)現(xiàn) Attention 計(jì)算(不用傳輸 Q),Backward 過程通過 ReduceScatter 來傳遞相關(guān)梯度。對(duì)應(yīng)FSDP + TP + SP + CP。
- 由于 LLaMA 3 使用 GQA,而 Movie Gen Video 采用 MHA,K 和 V 的大小存在明顯差異,也就導(dǎo)致 K 和 V 的通信量存在明顯差異(比如 LLaMA 3 70B 會(huì)小 8x)。
- Fully Sharded Data Parallel(FSDP):其實(shí)就是數(shù)據(jù)并行(Data Parallelism,DP),不過會(huì)將模型權(quán)重、優(yōu)化器狀態(tài)和梯度切分到所有 DP Group,然后在訓(xùn)練中通過 Gather 和 Scatter 權(quán)重、梯度來實(shí)現(xiàn)同步。?
其他部分的切分:
- Text Encoder:ByT5 和 Long-Prompt MetaCLIP 模型都很小,因此在所有 GPU 上都有一個(gè)完整的副本。UL2 稍微大點(diǎn),但相比整個(gè) Pipeline 還比較小,因此僅在 DP Group 的每個(gè) TP rank 上使用 FSDP 切分。
- TAE:僅包含較少的凍結(jié)參數(shù),但隨著輸入的增加,中間激活會(huì)非常大。此外,對(duì) TAE 進(jìn)行各種切分也并不容易,這導(dǎo)致數(shù)據(jù)預(yù)處理(TAE Encode)生成隱向量可能出現(xiàn)瓶頸,因此作者采用提前計(jì)算和緩存的方式來隔離這部分的影響,這也是常見的方案。
通信和計(jì)算重疊:雖然并行方案可以通過跨 GPU 切分 FLOP 和內(nèi)存需求來訓(xùn)練長(zhǎng)序列 Transformer 模型,但是直接的實(shí)現(xiàn)可能帶來額外的開銷并導(dǎo)致效率低下。因此,作者構(gòu)建了一個(gè)分析框架來對(duì)計(jì)算和通信時(shí)間進(jìn)行建模,能夠識(shí)別出需要 GPU 間通信的重復(fù) Activation,從而設(shè)計(jì)出高度優(yōu)化的模型并行方案。作者自定義了相關(guān)并行化實(shí)現(xiàn),用 PyTorch 編寫并編譯成 CUDAGraph,以最大限度的降低暴露的通信時(shí)間、提升可用的 Activation 內(nèi)存。
4.3 預(yù)訓(xùn)練
4.3.1 預(yù)訓(xùn)練數(shù)據(jù)
預(yù)訓(xùn)練數(shù)據(jù)集包含 O(100)M 視頻-文本對(duì)數(shù)據(jù)和 O(1)B 圖像-文本對(duì)數(shù)據(jù)。對(duì)于圖像-文本數(shù)據(jù)采用類似 [2311.10709] Emu Video: Factorizing Text-to-Video Generation by Explicit Image Conditioning 的方案,本文中作者主要聚焦在視頻數(shù)據(jù)。
數(shù)據(jù)池中包含 4s-120s 的視頻數(shù)據(jù),包含各種場(chǎng)景,比如人類、自然、動(dòng)物和物體等,最終會(huì)生成 4s-16s 的視頻切片-文本對(duì)訓(xùn)練數(shù)據(jù)集。如下圖 Figure 9 所示為其數(shù)據(jù)處理過程,總共包含 3 個(gè)過濾階段和 1 個(gè)描述生成階段:
- Visual 過濾:6 種過濾手段來移除低質(zhì)量視頻。包括:
- 刪除長(zhǎng)或?qū)捫∮?720 px 的視頻。
- 控制數(shù)據(jù)集中的寬高比,最終 60% 橫屏視頻,40% 豎屏視頻。更傾向于橫屏視頻是因?yàn)樗鼈兊某掷m(xù)時(shí)間更長(zhǎng)、美觀性更好且動(dòng)作穩(wěn)定。
- 使用視頻 OCR 模型去除包含太多文本的視頻。
- 使用 FFmpeg 的場(chǎng)景邊界檢測(cè)來提取 4s-16s 的視頻幀。
- 訓(xùn)練了一個(gè)視覺模型來預(yù)測(cè)幀級(jí)的美觀度,視覺質(zhì)量、大的邊界以及視覺效果,用于過濾。
- 參考 Panda-70M,刪除視頻中起始的幾秒 ,因?yàn)槠浣?jīng)常包含一些不穩(wěn)定的相機(jī)移動(dòng)或者過渡效果。
- Motion 過濾:同樣參考 Emu Video,刪除很少動(dòng)作的視頻。
- 首先,使用內(nèi)部的一個(gè)靜態(tài)視頻檢測(cè)模型刪除沒有任何動(dòng)作的視頻。
- 然后,根據(jù) VMAF Motion 分?jǐn)?shù)和 Motion 矢量確定具有“合理”動(dòng)作的視頻(FFmpeg)。為了刪除相機(jī)頻繁抖動(dòng)的視頻,作者使用 PySceneDetect 庫(kù)中的鏡頭邊界檢測(cè)。
- 最后,刪除了具有特殊動(dòng)作效果的視頻,比如幻燈片視頻。
- Content 過濾:確保預(yù)訓(xùn)練數(shù)據(jù)集的多樣性。
- 利用視頻幀的 Embedding 相似性去除重復(fù)的切片。
- 采用重采樣技術(shù)來平衡不同類別的占比。具體來說,基于視頻-文本聯(lián)合 Embedding 進(jìn)行聚類,然后根據(jù)每個(gè)聚類簇大小的平方根倒數(shù)進(jìn)行采樣。
- Captioning:使用 LLaMA3-Video 模型為視頻切片創(chuàng)建準(zhǔn)確而詳細(xì)的文本描述。
- 作者微調(diào)了 8B 和 70B 的模型變體,并使用它們來生成描述,整個(gè)訓(xùn)練集中 70% 是 8B 模型生成,30% 是 70B 模型生成。
- 為了實(shí)現(xiàn)影片級(jí)攝像機(jī)移動(dòng)控制,作者還訓(xùn)練了一個(gè)相機(jī)移動(dòng)分類模型,可以預(yù)測(cè) 16 類相機(jī)移動(dòng),比如縮小、向左平移等。然后將高置信度的攝像機(jī)移動(dòng)預(yù)測(cè)作為之前生成的文本描述的前綴。推理時(shí),允許用戶顯示制定攝像機(jī)移動(dòng)控制提示。?
如下圖 Table 38 所示為各階段的過濾閾值,最終只保留了不到 1% 的數(shù)據(jù):
多階段數(shù)據(jù)子集:作者整理了 3 個(gè)預(yù)訓(xùn)練數(shù)據(jù)子集,具有逐漸嚴(yán)格的 Visual、Motion 和 Content 閾值,以滿足預(yù)訓(xùn)練不同階段的需求。
- 首先,使用最小寬度或高度為 720 px 的視頻切片進(jìn)行低分辨率訓(xùn)練。
- 然后,篩選數(shù)據(jù)集,使用最小寬度或高度為 768 px 的視頻用于高分辨率訓(xùn)練。
- 最后,還會(huì)使用新的視頻來增強(qiáng)高分辨率訓(xùn)練集,其包含 80% 橫屏視頻和 20% 豎屏視頻。此外,至少 60% 包含人類,在這個(gè)過程中,作者構(gòu)建了一個(gè)600 個(gè)人類動(dòng)作和表情的詞庫(kù),然后使用 zero-shot 文本->視頻檢索的方式來篩選包含人類的視頻。在 Content 重采樣期間,保留了這些人類視頻的比例。
時(shí)長(zhǎng)和大小分桶:為了支持不同的視頻長(zhǎng)度和寬高比,作者根據(jù)寬高比和時(shí)長(zhǎng)對(duì)數(shù)據(jù)進(jìn)行分桶。每個(gè)桶中的視頻最終都會(huì)生成完全相同的隱空間大小,從而可以比較輕松地對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行批處理。作者對(duì)圖像和視頻數(shù)據(jù)集使用 5 個(gè)寬高比,比如 1024x576,576x1024;此外,也包含 5 個(gè)時(shí)長(zhǎng)桶(4s-16s)。通過在文本描述中添加 FPS Token 來引入 FPS 控制,從而允許以不同的幀率對(duì)視頻進(jìn)行采樣(16-32 FPS)。
4.3.2 訓(xùn)練
與 Emu Video 類似,作者的 30B 模型訓(xùn)練同樣包含多個(gè)階段,如下圖 Table 3 所示:
- 文本->圖像 Warmup 訓(xùn)練:在 O(1) B 圖像數(shù)據(jù)集上訓(xùn)練 T2I,并且使用 256 px。
- 從頭開始訓(xùn)練 T2I/V 模型非常慢,不如從 T2I 模型初始化訓(xùn)練;
- 相比使用 768 px 訓(xùn)練,256 px 允許使用更大的 Batch Size,同時(shí)在相同的訓(xùn)練預(yù)算下訓(xùn)練更多的數(shù)據(jù)。
- 訓(xùn)練了210K Step,迭代 1.94B 個(gè)樣本(并不能確定數(shù)據(jù)集就是 1.94B,有采樣策略)。
- 使用1536 個(gè) GPU訓(xùn)練,Token 比較少,也就不用 TP 和 CP。
- 文本->圖像/視頻聯(lián)合訓(xùn)練:接著聯(lián)合訓(xùn)練文本->圖像和文本->視頻生成。為了聯(lián)合訓(xùn)練,需要將來自 T2I 的空間位置嵌入(PE)加倍以適配可變比例,同時(shí)需要新增時(shí)序 PE 來最多支持 32 個(gè) Latent Frame(32x8=256 個(gè)視頻幀)。256 px T2I 的圖像數(shù)據(jù)同樣會(huì)用于這個(gè)階段,和視頻數(shù)據(jù)的比例為 1:10。整個(gè)訓(xùn)練分為兩個(gè)階段訓(xùn)練:
- 256 px T2I/V:Global Batch Size 1536,首先訓(xùn)練 123K 個(gè) Step;然后將 GPU 數(shù)量從 3072 擴(kuò)展到 6144,相應(yīng) Global Batch Size 也加倍變?yōu)?3072,繼續(xù)訓(xùn)練 72K Step,驗(yàn)證損失可以快速下降。共訓(xùn)練 185K 個(gè) Step(123K + 72K=195K?),迭代 395M(4+ Epoch)個(gè)視頻樣本。(PS:這里前期訓(xùn)練 3072 GPU,調(diào)度比較好的話可以完全放在一個(gè) Cluster,是無收斂的,可以實(shí)現(xiàn)最優(yōu)性能;6144 GPU 也只需 2 個(gè) Cluster。)
- 768 px T2I/V:繼續(xù)在 768 px 分辨率訓(xùn)練 74.5K 個(gè) Step,迭代 73.8M 個(gè)樣本。?
如上圖 Table 3 所示,在上述 768 px T2I/V 聯(lián)合訓(xùn)練過程中其實(shí)經(jīng)歷了多個(gè)子階段,主要不同就是學(xué)習(xí)率和相應(yīng) Batch Size 的改變。這是因?yàn)樽髡甙l(fā)現(xiàn)在訓(xùn)練到 10K 個(gè) Step 時(shí)驗(yàn)證損失快速抖動(dòng)并且不怎么下降。因此,在 19.6K 個(gè) Step 時(shí)將學(xué)習(xí)率減半。同時(shí)后續(xù)當(dāng)驗(yàn)證損失不怎么下降時(shí)就降低學(xué)習(xí)率,如下圖所示:
4.4 微調(diào)
與之前的工作類似,作者同樣在一個(gè)小的高質(zhì)量視頻數(shù)據(jù)集上微調(diào)預(yù)訓(xùn)練模型來提升生成視頻的動(dòng)作和美學(xué)質(zhì)量。微調(diào)視頻和描述是人工構(gòu)建的,因此作者將這個(gè)階段成為監(jiān)督微調(diào)。在這個(gè)階段作者訓(xùn)練了多個(gè)模型,然后通過模型平均方案將它們組合起來成為最終的模型。雖然模型本身可以生成高質(zhì)量的圖像,但是作者發(fā)現(xiàn)專門針對(duì)圖像的后訓(xùn)練可以進(jìn)一步提升質(zhì)量,將在后續(xù)部分介紹。
微調(diào)數(shù)據(jù)集:目標(biāo)是收集一組用于微調(diào)的高質(zhì)量視頻,這些視頻具有良好的動(dòng)作、真實(shí)度、美觀度,同時(shí)具有廣泛的概念和高質(zhì)量的描述。為此,作者從大量視頻開始,經(jīng)過自動(dòng)和人工過濾方案來獲取視頻,具體來說包含 4 個(gè)關(guān)鍵階段:
- 建立一組候選視頻,然后使用自動(dòng)化的過濾方案從美學(xué)、動(dòng)作、場(chǎng)景變化等方面進(jìn)行嚴(yán)格過濾。此外,還使用物體檢測(cè)模型刪除帶有小主體的視頻。此階段會(huì)產(chǎn)生幾百萬個(gè)視頻,但概念分布很不均衡。
- 平衡視頻中的概念,同樣使用之前提到的 600 個(gè)人類動(dòng)作和表情詞庫(kù)來實(shí)行文本 K-NN 方法,從視頻候選池中檢索每個(gè)概念的視頻。為每個(gè)概念手動(dòng)挑選一些視覺上吸引人的種子視頻,并執(zhí)行視覺 K-NN 以獲得概念均衡的視頻子集。
- 人工識(shí)別影級(jí)視頻,自動(dòng)化的手段往往無法高精度、高召回的捕獲高質(zhì)量微調(diào)視頻數(shù)據(jù)。為此作者改為人工篩選。以此來確保包含各種角度光照、生動(dòng)(但不飽和)的色彩、無雜亂、非異常動(dòng)作、無相機(jī)抖動(dòng)、無編輯效果和無疊加文本的視頻。在此階段,標(biāo)注員還會(huì)將視頻剪輯到所需的時(shí)長(zhǎng),并選擇視頻中最佳、最引入注目的片段。
- 人工視頻描述,具體來說,標(biāo)注員通過修正 LLaMA3-Video 生成描述中不正確的細(xì)節(jié)來確保包含某些關(guān)鍵視頻細(xì)節(jié)。包括攝像頭控制、人類表情、主體和背景信息、詳細(xì)動(dòng)作描述和光照信息。在此階段,標(biāo)注了另外 6 種相機(jī)移動(dòng)和位置類型。微調(diào)視頻數(shù)據(jù)時(shí)長(zhǎng)在 10.6s-16s 之間,實(shí)際上 50% 視頻時(shí)長(zhǎng) 16s,剩余 50% 在 10.6s-16s 之間。
監(jiān)督微調(diào)方案:SFT 中,使用預(yù)訓(xùn)練的 Checkpoint 初始化進(jìn)行微調(diào)。使用了相對(duì)比較小的 Batch Size 和 64 個(gè)節(jié)點(diǎn)(512 H100 GPU)來訓(xùn)練模型,并使用 Cosine 學(xué)習(xí)率調(diào)度。與預(yù)訓(xùn)練類似,16s 視頻使用 16FPS 訓(xùn)練,10.6s-16s 視頻使用 24FPS 訓(xùn)練。經(jīng)過訓(xùn)練,可以更好地支持 10s 和 16s 視頻生成。
模型平均:作者實(shí)驗(yàn)表明,選擇不同的微調(diào)數(shù)據(jù)集、超參數(shù)以及 Checkpoint 會(huì)顯著影響模型效果,包括動(dòng)作、一致性和相機(jī)控制。為了利用這些模型的不同優(yōu)勢(shì),作者采用了模型平均方案。和 LLaMA 3 類似,對(duì)使用各個(gè)版本的微調(diào)數(shù)據(jù)、超參數(shù)和 Checkpoint 實(shí)驗(yàn)獲得的模型進(jìn)行平均。
4.5 推理
4.5.1 推理提示改寫
推理時(shí)的文本提示可能和訓(xùn)練時(shí)有比較大的差異,比如寫作風(fēng)格,長(zhǎng)度等,比如很多用戶提示都少于 10 個(gè)單詞,遠(yuǎn)小于訓(xùn)練時(shí)提示的平均長(zhǎng)度。為了減小差異,作者利用 LLaMA3(推理改寫模型,Rewrite Model) 將簡(jiǎn)短提示轉(zhuǎn)換為詳細(xì)描述。具體來說:
- 采用標(biāo)準(zhǔn)化的信息結(jié)構(gòu)重新表述提示,確保視覺結(jié)構(gòu)的一致性。
- 通過更易于理解和直接的術(shù)語替換復(fù)雜的詞匯,從而提升提示的清晰度和可理解性。
- 作者觀察到,對(duì)動(dòng)作細(xì)節(jié)的過度詳細(xì)描述會(huì)導(dǎo)致生成視頻中引入偽影,因此要在描述豐富性和視覺保真度之間取得平衡。
為了提高 Rewrite Model 的計(jì)算效率,作者額外提出了一種蒸餾方案。具體來說,使用基座模型訓(xùn)練集中的詳細(xì)提示說明和上下文學(xué)習(xí)示例,基于 LLaMA3-70B 模型構(gòu)建提示改寫教師模型,然后收集人機(jī)協(xié)同(Human-in-the-loop,HITL)微調(diào)數(shù)據(jù)。具體來說,是使用 LLaMA3 70B 提示改寫模型對(duì)大規(guī)模 Prompt Pool 中的樣本進(jìn)行推理,并按照質(zhì)量指南通過人工評(píng)估選擇高質(zhì)量的改寫。最后在篩選出的 HITL 數(shù)據(jù)集上微調(diào)了一個(gè) 8B LLaMA3 模型,得到最終的改寫模型。
4.5.2 提升推理效率
作者發(fā)現(xiàn),與圖像生成相比,視頻生成額外引入了時(shí)間維度,減少視頻生成中的推理步數(shù)比圖像生成更有挑戰(zhàn),視頻生成的動(dòng)作質(zhì)量等對(duì)推理步數(shù)更為敏感。比如,使用 250、500 和 1000 個(gè)線性步驟生成的視頻在場(chǎng)景構(gòu)圖和動(dòng)作質(zhì)量方面有明顯的差異。雖然可以采用蒸餾等方案加速,但是需要引入額外的訓(xùn)練,為此作者采用了一種比較簡(jiǎn)單的純推理方案,只需幾行代碼就可以提速 20x。
作者發(fā)現(xiàn),通過實(shí)施線性二次 t-schedule,可以僅用 50 個(gè) Step 就獲得接近 N Step 生成的質(zhì)量。這種方法保留 N Step 線性 schedule 的前 25 個(gè) Step,然后在后 25 個(gè) Step 采用二次放置近似。這樣做是因?yàn)樽髡哂^察到一些獨(dú)特的現(xiàn)象,如下圖 Figure 10 所示,作者統(tǒng)計(jì)了每個(gè)推理 Step 中每個(gè) Transformer Block 輸入和輸出的平均變化。可以看出,在前期變化很快,然后很快就趨近于比較穩(wěn)定,變化很小。實(shí)踐中,作者使用 50 Step 的線性二次 schedule 模擬 N=250 的線性 Step 可以獲得最佳結(jié)果。
4.6 評(píng)估
4.6.1 評(píng)估維度
作者從 3 個(gè)維度進(jìn)行評(píng)估:文本對(duì)齊(Text-alignment)、視覺質(zhì)量(Visual quality)以及真實(shí)度和美觀度(realness、aesthetics)。如下圖 Table 4 所示:
- Text-alignment:評(píng)估生成的視頻與提供的提示的對(duì)齊程度。輸入提示可以包括主體外觀、動(dòng)作、背景、相機(jī)移動(dòng)、光照、樣式和視覺文本等。人工評(píng)估員要密切關(guān)注這些方面。
- Visual Quality:與文本->圖像生成不同,生成視頻中的大部分感知質(zhì)量源自于動(dòng)作質(zhì)量——一個(gè)特定于視頻的維度。為此,文本->視頻的質(zhì)量評(píng)估中主要關(guān)注生成視頻的一致性、自然度和足夠數(shù)量的動(dòng)作。為此從下面 4 個(gè)角度衡量:
- Frame consistency:幀一致性,評(píng)估生成內(nèi)容的時(shí)間一致性。
- Motion completeness:動(dòng)作完整性,衡量輸出視頻是否包含足夠的動(dòng)作。
- Motion naturalness:動(dòng)作自然度,評(píng)估生成自然、逼真動(dòng)作的能力,展示對(duì)現(xiàn)實(shí)實(shí)際物理學(xué)的理解。
- Overall quality:整體質(zhì)量,根據(jù)上述 3 個(gè)維度整體評(píng)估,是一個(gè)整體的評(píng)價(jià)。?
4.6.2 評(píng)估基準(zhǔn)
作者構(gòu)建了 Movie Gen Video Bench 評(píng)估基準(zhǔn),包含 1000 個(gè)提示,覆蓋上述提到的各種因素。該基準(zhǔn)比之前的基準(zhǔn)大 3x。如下 Table 5 所示,該基準(zhǔn)中主要包含 5 類概念:人類活動(dòng)、動(dòng)物、自然風(fēng)景、物理、不常見物體或活動(dòng)。
如下圖 Figure 11 是相應(yīng)的評(píng)估集分布:
4.7 結(jié)果
4.7.1 與之前工作對(duì)比
如下圖 Table 6 所示,作者與之前的 SOTA 方案進(jìn)行對(duì)比,包括 Runway Gen3,LumaLabs,OpenAI Sora 以及快手 Kling1.5。凈勝率的計(jì)算是基于 Movie Gen Video 與其他模型在視頻生成任務(wù)中的直接對(duì)比,范圍 [-100%,100%],其中正數(shù)表示 Movie Gen Video 的勝率高于對(duì)比模型,負(fù)數(shù)則表示其表現(xiàn)不如對(duì)比模型。σ 表示每個(gè)維度下的標(biāo)準(zhǔn)差??梢钥闯觯?/p>
- Movie Gen Video 明顯優(yōu)于 Runway Gen3 和 LumaLabs,略優(yōu)于 OpenAI Sora 和 Kling1.5。
- 在 Motion Completeness 和 Text-alignment 上 Movie Gen Video 不如 Kling1.5,但 Realness 和 Aesthetics 上具有明顯優(yōu)勢(shì)。?
如下圖 Figure 15 所示,作者對(duì)比了不同迭代階段 Checkpoint 的評(píng)估結(jié)果以及對(duì)應(yīng)的驗(yàn)證損失,可以看出,驗(yàn)證損失在持續(xù)下降,同時(shí)整體評(píng)估質(zhì)量在越靠后的 Checkpoint 上表現(xiàn)越好,證明 Flow Matching 驗(yàn)證損失可以作為模型開發(fā)過程中人工評(píng)估的有效代理:
4.7.2 消融實(shí)驗(yàn)
作者使用 5B 參數(shù)量的 Movie Gen Video 模型來進(jìn)行消融實(shí)驗(yàn),其生成 4-8s 352x192 px 的視頻。
- 模型包含 32 個(gè) Transformer Block,Embedding 維度 3072,包含 24 個(gè) Head。
- 兩階段訓(xùn)練,文本->圖像和聯(lián)合訓(xùn)練。使用 21M 個(gè)視頻的小數(shù)據(jù)集,并使用 LLaMA3-8B 模型生成描述。 在 512 個(gè) GPU 上訓(xùn)練。
如下圖 Table 8 所示,作者進(jìn)行了一系列對(duì)比實(shí)驗(yàn),其中 Q 表示整體質(zhì)量,A 表示文本對(duì)齊。實(shí)驗(yàn)包括包括:
- Flow Matching 訓(xùn)練目標(biāo)和 Diffusion 訓(xùn)練目標(biāo)
- 視頻描述和圖像描述
- 類 LLaMA 3 結(jié)構(gòu)和 DiT 結(jié)構(gòu)?
如下圖所示為上述類 LLaMA 3 結(jié)構(gòu)和 DiT 結(jié)構(gòu)的差異,其他都保持相同:
4.7.3 TAE 結(jié)果
如下圖 Table 10 所示,作者進(jìn)一步對(duì)比了本文 TAE 與 Frame-wise 的 AutoEncoder 的性能差異
- 視頻維度:TAE 略差,但是能力也不錯(cuò)。
- 圖像維度:TAE 表現(xiàn)更好,并且FID 具有明顯優(yōu)勢(shì)。?
4.7.4 TAE 消融實(shí)驗(yàn)
如下圖 Table 11 所示,作者也對(duì)比了 TAE 中 2.5D Attention/Convolution(先 2D 空間執(zhí)行,然后 1D 時(shí)序維執(zhí)行)與 3D Attention/Convolution 的性能差異。3D 方案有更好的重建質(zhì)量,但是提升不大,而 2.5D 方案在 FID 上有明顯優(yōu)勢(shì),因此采用 2.5D:
如下圖 Table 12 所示,作者也對(duì)比了是否添加異常懲罰損失(OPL)的影響,可以看出,添加 OPL 后有比較明顯的提升:
4.7.5 空間上采樣結(jié)果
如下圖 Figure 17 所示,經(jīng)過空間上采樣后清晰度和視覺質(zhì)量有了明顯提升:
4.8 文本 -> 圖像生成
4.8.1 方法
對(duì)于文本->圖像模型,目標(biāo)是生成逼真的圖像。作者使用 Movie Gen 模型作為初始化,將 TAE 替換為 Image AutoEncoder。然后,在文本->圖像生成任務(wù)上訓(xùn)練模型,使其能根據(jù)文本描述生成圖像,最終分辨率為 1024 px。在 Post Training 中,作者按照 [2309.15807] Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystack 中的方式構(gòu)建了 O(1000) 張高質(zhì)量圖像,并訓(xùn)練了 6K Step,學(xué)習(xí)率 0.00001,Batch Size 64,并且 Warmup 2000 Step。
4.8.2 結(jié)果
如下圖所示,作者利用 ELO 評(píng)級(jí)系統(tǒng)對(duì) SOTA 模型進(jìn)行對(duì)比,本文的模型取得了最優(yōu)性能:
五、個(gè)性化視頻
5.1 模型
如下圖 Figure 20 所示,其主要的不同是將人臉圖像經(jīng) Long-prompt MetaCLIP 的 Vision Encoder 提取 Vision Embedding,然后經(jīng)過投影與文本 Embedding 拼接在一起作為 Condition 輸入模型:
5.2 預(yù)訓(xùn)練
5.2.1 預(yù)訓(xùn)練數(shù)據(jù)
從原始的 T2V 視頻數(shù)據(jù)中選擇人類相關(guān)的子集,然后每 1s 提取一張人臉,并計(jì)算人臉相似性(ArcFace cosine similarity score 超過 0.5 認(rèn)為是一個(gè)人)。然后挑選僅包含一個(gè)人的視頻,得到 O(1) M 文本-視頻數(shù)據(jù)對(duì)。
然后作者將其分為 “paired” 和 “cross-paired” 數(shù)據(jù),區(qū)別是對(duì)應(yīng)的 Reference 人臉是否來自對(duì)應(yīng)的視頻切片。作者發(fā)現(xiàn),如果只使用 “paired” 數(shù)據(jù),也就是視頻切片中包含對(duì)應(yīng)的 Reference 人臉,則會(huì)導(dǎo)致過擬合,也就是出現(xiàn)直接拷貝人臉的效果。
- Paird 數(shù)據(jù):每個(gè) Video 切片提取 5 幀作為 Reference,最終得到 O(10)M 訓(xùn)練樣本。
- Cross-Paired 數(shù)據(jù):從屬于同一個(gè)人但是不同視頻切片中選擇 Reference,得到 O(10)K 真實(shí)樣本,同時(shí)也用個(gè)性化人臉生成模型來生成數(shù)據(jù),最終得到 O(1)M 合成訓(xùn)練樣本。
5.2.2 預(yù)訓(xùn)練方案
作者發(fā)現(xiàn)直接訓(xùn)練生成長(zhǎng)視頻比較困難,因此也分為多個(gè)階段訓(xùn)練,如下圖 Figure 21 所示:
- Stage I:短視頻訓(xùn)練,對(duì)應(yīng) 64 幀,凍結(jié) Vision Encoder,只訓(xùn)練 Transformer Backbone。
- Stage II:長(zhǎng)視頻訓(xùn)練,和第一階段類似,不過幀數(shù)擴(kuò)展到 128/192/256。
- Stage III:提升自然度,主要是調(diào)整學(xué)習(xí)率,并且也會(huì)訓(xùn)練 Vision Encoder。?
5.3 監(jiān)督微調(diào)
與 Movie Gen Video 的 Post Training 類似,作者也額外收集了一批高質(zhì)量的微調(diào)數(shù)據(jù),目的是生成具有良好動(dòng)作質(zhì)量的高度美觀的視頻。作者從 T2V 微調(diào)數(shù)據(jù)集開始,篩選包含只包含一個(gè)人的視頻。然后人工選擇具有不同人類動(dòng)作的視頻,確保數(shù)據(jù)集包含各種動(dòng)作和行為。最終數(shù)據(jù)集包含 O(1000) 個(gè)高質(zhì)量視頻,其中 “paired” 和 “cross-paired” 的比例為 1:1。
5.4 評(píng)估&結(jié)果
如下圖 Figure 22 所示為本文方案與 ID-Animator 生成效果的對(duì)比:
如下圖 Table 12 所示,提出的 PT2V 模型明顯優(yōu)于之前的 ID-Animator 方案:
如下圖 Table 14 和 Table 16 所示,訓(xùn)練 Vision Encoder 在所有指標(biāo)上都有所提升,而 Cross-Paired 訓(xùn)練會(huì)導(dǎo)致 Identity 指標(biāo)下降,但對(duì)改善生成視頻的面部表情和自然動(dòng)作至關(guān)重要:
如下圖 Table 15 所示,PT2V 微調(diào)后所有指標(biāo)上均優(yōu)于 ID-Animator;PT2V 相比沒有視覺 Condition 的 T2V 相比,整體質(zhì)量更高,一致性也更好,但是動(dòng)作完整性和文本對(duì)齊方面稍弱:
六、指令引導(dǎo)精確編輯
6.1 模型
鑒于監(jiān)督視頻編輯數(shù)據(jù)的稀缺性,訓(xùn)練模型來執(zhí)行視頻編輯容易出現(xiàn)訓(xùn)練和測(cè)試階段的偏差,從而導(dǎo)致生成質(zhì)量欠佳。為了應(yīng)對(duì)這一挑戰(zhàn),作者引入了一種多階段方案,以逐步減少這些差異。如下圖 Figure 24 所示:
- 模型結(jié)構(gòu)和初始化:
- 為了支持視頻編輯,需要對(duì)現(xiàn)有文本->視頻模型架構(gòu)進(jìn)行修改,包括增加額外的輸入通道以實(shí)現(xiàn)輸入視頻的編輯,并添加任務(wù)嵌入向量以支持特定編輯任務(wù)的適配。
- 模型初始化時(shí),保留預(yù)訓(xùn)練的文本->視頻模型權(quán)重,并添加新的可學(xué)習(xí)參數(shù)以實(shí)現(xiàn)對(duì)參考圖像的條件調(diào)節(jié)。
- 第一階段:?jiǎn)螏曨l編輯
- 通過在圖像編輯數(shù)據(jù)集上訓(xùn)練,將圖像編輯視為單幀視頻編輯,以此作為視頻編輯任務(wù)的起點(diǎn)。
- 采用多任務(wù)學(xué)習(xí)目標(biāo),交替進(jìn)行圖像編輯和文本->視頻的生成任務(wù),以此來訓(xùn)練模型使用編輯指令和視頻輸入。編輯任務(wù)和文本->視頻任務(wù)的比例為 5:1。
- 由于圖像編輯和視頻生成在序列長(zhǎng)度上的差異,通過交替處理這兩種任務(wù)的批次來加速訓(xùn)練。
- 有趣的是,在初步實(shí)驗(yàn)中,作者發(fā)現(xiàn)在圖像編輯訓(xùn)練期間直接使用第一幀的位置嵌入會(huì)導(dǎo)致在視頻編輯上測(cè)試模型時(shí)輸出完全失真。通過使用隨機(jī)采樣的臨時(shí)位置嵌入作為圖像的位置嵌入可以解決此問題,使用此目標(biāo)訓(xùn)練模型 30 K Step。
- 第二階段:多幀視頻編輯
- 為了解決在第一階段訓(xùn)練中產(chǎn)生的視頻模糊問題,引入了兩個(gè)新的合成任務(wù),這些任務(wù)更貼近多幀視頻編輯的實(shí)際需求。
- 第一個(gè)任務(wù)是 Animated Frame Editing:通過隨機(jī)仿射增強(qiáng)將圖像編輯樣本動(dòng)畫化,創(chuàng)建合成視頻編輯樣本。
- 第二個(gè)任務(wù)是 Generative Instruction-Guided Video Segmentation:將視頻分割視為視頻編輯任務(wù),要求模型根據(jù)給定的顏色標(biāo)記視頻中的特定對(duì)象。
- 模型在這些新數(shù)據(jù)集上進(jìn)行微調(diào),以減少訓(xùn)練和測(cè)試之間的差異。文本->視頻、Segmentation、Animated 的比例為 1:1:3。
- 第三階段:通過 BackTranslation 進(jìn)行視頻編輯
- 為了解決在第二階段訓(xùn)練中仍然存在的問題,如新生成元素缺乏自然運(yùn)動(dòng)和過飽和現(xiàn)象,采用了 BackTranslation 技術(shù)來訓(xùn)練模型。
- 通過生成編輯后的示例,然后使用語言模型生成反向編輯指令,以此來訓(xùn)練模型在保持清晰視頻的同時(shí),根據(jù)編輯指令進(jìn)行精確的視頻編輯。
- 這一階段的訓(xùn)練使用了真實(shí)的輸出視頻,并且通過 BackTranslation 技術(shù)構(gòu)建了弱監(jiān)督視頻編輯數(shù)據(jù)集,進(jìn)一步提高了視頻編輯的質(zhì)量。?
6.2 評(píng)估
6.2.1 視頻編輯基準(zhǔn)測(cè)試
TGVE+ 基準(zhǔn)測(cè)試:這是最近提出的基準(zhǔn)測(cè)試,包括 76 個(gè)視頻,每個(gè)視頻附帶 7 個(gè)編輯指令,覆蓋多種編輯任務(wù),如物體修改、背景修改等。但這些視頻分辨率比較低,都是 480x480 px,時(shí)長(zhǎng)比較短,10FPS 的 3.2s 視頻或 16FPS 的 8s 視頻。
Movie Gen Edit Bench 基準(zhǔn)測(cè)試:為了評(píng)估新一代的視頻編輯模型,作者提出了新的基準(zhǔn),包括不同分辨率、幀率、長(zhǎng)度和寬高比的視頻。初始數(shù)據(jù)來自 Segment-Anything V2 數(shù)據(jù)集的 51000 個(gè)視頻,經(jīng)過美觀度和動(dòng)作得分過濾,構(gòu)建了驗(yàn)證集和測(cè)試集,驗(yàn)證集包含 64 個(gè)視頻,測(cè)試集包含 128 個(gè)視頻。此外,通過眾包為每個(gè)視頻和編輯操作編寫編輯指令,以支持使用基于 CLIP 的圖像編輯評(píng)估指標(biāo)。作者額外為每個(gè)視頻針對(duì)每個(gè)編輯任務(wù)構(gòu)建了 1 個(gè)輸入和輸出描述,最終的基準(zhǔn)包含 1152 個(gè)樣本。(128+64)x6=1152。
6.2.2 視頻編輯評(píng)估指標(biāo)
主要評(píng)估模型編輯輸入視頻的能力,同時(shí)準(zhǔn)確遵循提供的提示指令,并保留那些應(yīng)保持不變的結(jié)構(gòu)和元素。使用人工評(píng)估和自動(dòng)化評(píng)估指標(biāo)來評(píng)估。
- 自動(dòng)化評(píng)估使用 ViCLIP 方向相似性(ViCLIPdir)和 ViCLIP 輸出相似性(ViCLIPout)。
- 人工評(píng)估遵循 TGVE+ 的標(biāo)準(zhǔn)評(píng)估協(xié)議,評(píng)估者需要對(duì)輸入視頻、編輯指令和一對(duì)生成的視頻進(jìn)行評(píng)估,以確定哪個(gè)編輯視頻能更好地反應(yīng)給定的描述,保持原始輸入的結(jié)構(gòu)完整性以及在視覺上更有吸引力和美觀度優(yōu)越性。
6.3 結(jié)果
6.3.1 與之前工作對(duì)比
如下圖 Table 17 所示,作者評(píng)估了 Movie Gen Edit 模型與多個(gè)視頻編輯模型的性能,包括無需訓(xùn)練的方案(如 SDEdit)和需要訓(xùn)練的方案(如 InsV2V 和 EVE 等),可以看出:
- 在TGVE+ 基準(zhǔn)上,Movie Gen Edit 在整體人類評(píng)估標(biāo)準(zhǔn)上比當(dāng)前最先進(jìn)的 EVE 模型更受偏好,其偏好率達(dá)到 74%。
- 在Movie Gen Edit Bench 基準(zhǔn)上,Movie Gen Edit 同樣優(yōu)于其他基線模型,包括 Runway Gen3 V2V。?
6.3.2 消融實(shí)驗(yàn)
第一階段:如下圖 Table 18 所示,作者對(duì)比了兩種變體的影響,人工評(píng)估表明本文的模型在圖像編輯任務(wù)上具有更好性能。
- 凍結(jié)文本 ->視頻模型,訓(xùn)練 ControlNet
- 本文的多任務(wù)學(xué)習(xí)?
第二階段:如下圖 Table 19 所示,評(píng)估了使用 Animated Frame Editing 相比 Animated Image Editing 的效果,人類評(píng)估員更喜歡 Animated Frame Editing 的結(jié)果:
第三階段:如下圖 Table 20 所示,對(duì)比使用 BackTranslation 方案與標(biāo)準(zhǔn)微調(diào)方案,人類評(píng)估員更喜歡 BackTranslation 方案的結(jié)果:
不同階段對(duì)比:通過比較每個(gè)訓(xùn)練階段的模型,作者發(fā)現(xiàn)每個(gè)后續(xù)階段的模型都在人類評(píng)估中更受偏好,表明多階段訓(xùn)練方法的有效性。
七、聲音和音樂生成
7.1 模型
Movie Gen Audio 模型的目標(biāo)是為視頻切片和短片生成音軌(soundtrack),時(shí)間可能從幾秒到幾分鐘不等。涉及的音軌包括環(huán)境聲音、音效(Foley)和器樂(instrumental music),但是不包括語音或帶人聲的音樂。特別是,環(huán)境聲音應(yīng)與視覺幻覺相匹配,音效應(yīng)在時(shí)間上與動(dòng)作保持一致,并且對(duì)于視覺對(duì)象應(yīng)該合理。
為了支持可變時(shí)長(zhǎng)視頻的音軌,作者構(gòu)建了一個(gè)音頻生成方案,即可以給定視頻生成音頻,也可以給定部分音頻來擴(kuò)展。如下圖 Figure 27 所示為生成過程,其核心是有 Overlap 的分塊生成:
如下圖 Figure 28 所示為對(duì)應(yīng)的 Movie Gen Audio 模型架構(gòu),其采用了 Flow Matching + DiT 的方案,其中黃色表示輸入,藍(lán)色表示預(yù)訓(xùn)練后凍結(jié)的部分,灰色表示沒有可學(xué)習(xí)參數(shù),綠色為可學(xué)習(xí)的模塊:
7.2 數(shù)據(jù)
如下圖所示為不同的數(shù)據(jù)類別:
如下圖 Table 24 所示為對(duì)應(yīng)的預(yù)訓(xùn)練數(shù)據(jù)集類別及數(shù)量:
如下圖 Table 25 所示為微調(diào)數(shù)據(jù)集的分布:
7.3 評(píng)估&結(jié)果
如下圖 Table 29 和 Table 30 所示,作者對(duì)比了本文 Movie Gen Audio 模型與以前 SOTA 模型,凈勝率范圍為 [-100%, 100%],正值表示 Movie Gen Audio 的質(zhì)量更優(yōu)??梢钥闯觯琈ovie Gen Audio 幾乎在所有任務(wù)上都獲得更好的效果:
八、參考鏈接
- ??https://ai.meta.com/static-resource/movie-gen-research-paper??
- ??https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/??
- ??https://ai.meta.com/research/movie-gen/??
- ??https://arxiv.org/abs/2112.10752??
- ??https://arxiv.org/abs/2210.02747??
- ??https://arxiv.org/abs/2212.09748??
- ??https://arxiv.org/abs/2311.10709??
- ??https://arxiv.org/abs/2107.10833??
- ??https://arxiv.org/abs/2302.08113??
- ??https://www.usenix.org/system/files/osdi24-choudhury.pdf??
- ??https://docs.nvidia.com/megatron-core/developer-guide/latest/api-guide/context_parallel.html??
- ??https://arxiv.org/abs/2311.10709??
- ??https://arxiv.org/abs/2309.15807??
本文轉(zhuǎn)載自 ??AI閑談??,作者: AI閑談
