Sora之後,OpenAI Lilian Weng撰文教你從頭設計視頻生成擴散模型
選自Lil’Log
作者:Lilian Weng
機器之心編譯
編輯:Panda
過去幾年來,擴散模型強大的圖像合成能力已經得到充分證明。研究社區現在正在攻克一個更困難的任務:視頻生成。近日,OpenAI 安全系統(Safety Systems)負責人 Lilian Weng 寫了一篇關於視頻生成的擴散模型的博客。
Lilian Weng
機器之心對這篇博客進行了不改變原意的編譯、整理,以下是博客原文:
視頻生成任務本身是圖像合成的超集,因爲圖像就是單幀視頻。視頻合成的難度要大得多,原因是:
1. 視頻合成還需要不同幀之間保持時間一致性,很自然,這需要將更多世界知識編碼到模型之中。
2. 相比於文本或圖像,收集大量高質量、高維度的視頻數據要更爲困難,更罔論配對的文本 - 視頻數據了。
如果你想了解擴散模型在圖像生成方面的應用,可參讀本文作者 Lilian Weng 之前發佈的博文《What are Diffusion Models?》鏈接:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
從頭建模視頻生成
首先,我們先來看看如何從頭設計和訓練擴散視頻模型,也就是說不使用已經預訓練好的圖像生成器。
參數化和採樣
圖 1:以角座標形式展示擴散更新步驟的工作方式,其中 DDIM 通過讓 z_{_} 沿 的方向移動而使其不斷演進。
模型架構:3D U-Net 和 DiT
類似於文生圖擴散模型,U-Net 和 Transformer 依然是常用的架構選擇。谷歌基於 U-net 架構開發了一系列擴散視頻建模論文,OpenAI 近期的 Sora 模型則是利用了 Transformer 架構。
VDM 採用了標準的擴散模型設置,但對架構進行了一些修改,使之更適合視頻建模任務。它對 2D U-net 進行了擴展,使其能處理 3D 數據,其中每個特徵圖(feature map)都表示一個 4D 張量:幀數 x 高度 x 寬度 x 通道數。這個 3D U-net 是在空間和時間上進行分解,也就是說每一層都僅會操作空間或時間一個維度,而不會同時操作兩者。
圖 2:3D U-net 架構。該網絡的輸入是有噪聲視頻 z_、條件信息 c 和對數信噪比(log-SNR)λ_。通道乘數 M_1,...,M_ 表示各層的通道數量。
Ho, et al. 在 2022 年提出的 Imagen Video 基於一組級聯的擴散模型,其能提升視頻生成的質量,並將輸出升級成 24 幀率的 1280x768 分辨率視頻。Imagen Video 架構由以下組件構成,總計 7 個擴散模型。
圖 3:Imagen Video 的級聯式採樣流程。在實踐中,文本嵌入會被注入到所有組件中,而不只是基礎模型中。
基礎去噪模型使用共享的參數同時在所有幀上執行空間操作,然後時間層將各幀的激活混合起來,以更好地實現時間一致性;事實證明這種方法的效果優於幀自迴歸方法。
圖 4:Imagen Video 擴散模型中一個空間 - 時間可分離模塊的架構。
SSR 和 TSR 模型都基於在通道方面連接了有噪聲數據 _ 的上採樣的輸入。SSR 是通過雙線性大小調整來上採樣,而 TSR 則是通過重複幀或填充空白幀來上採樣。
Imagen Video 還應用了漸進式蒸餾來加速採樣,每次蒸餾迭代都可以將所需的採樣步驟減少一半。在實驗中,他們能夠將所有 7 個視頻擴散模型蒸餾爲每個模型僅 8 個採樣步驟,同時不會對感知質量造成任何明顯損失。
爲了更好地擴大模型規模,Sora 採用了 DiT(擴散 Transformer)架構,其操作的是視頻和圖像隱代碼的時空塊(spacetime patch)。其會將視覺輸入表示成一個時空塊序列,並將這些時空塊用作 Transformer 輸入 token。
圖 5:Sora 是一個擴散 Transformer 模型。
調整圖像模型來生成視頻
在擴散視頻建模方面,另一種重要方法是通過插入時間層來「擴增」預訓練的文生圖擴散模型,然後就可以選擇僅在視頻上對新的層進行微調或完全避免進行額外的訓練。這個新模型會繼承文本 - 圖像對的先驗知識,由此可以幫助緩解對文本 - 視頻對數據的需求。
在視頻數據上進行微調
Singer et al. 在 2022 年提出的 Make-A-Video 是在一個預訓練擴散圖像模型的基礎上擴展一個時間維度,其包含三個關鍵組件:
1. 一個在文本 - 圖像對數據上訓練的基礎文生圖模型。
2. 時空卷積和注意力層,使網絡覆蓋時間維度。
3. 一個幀插值網絡,用於高幀率生成。
圖 6:Make-A-Video 工作流程示意圖。
最終的視頻推理方案的數學形式可以寫成這樣:
時空超分辨率層包含僞 3D 卷積層和僞 3D 注意力層:
圖 7:僞 3D 卷積(左)和注意力(右)層的工作方式。
它們可以表示成:
圖 8:Tune-A-Video 架構概況。在採樣階段之前,它首先在單個視頻上運行一個輕量加權的微調階段。請注意整個時間自注意力(T-Attn)層都會得到微調,因爲它們是新加入的,但在微調階段,ST-Attn 和 Cross-Attn 中只有查詢投射會被更新,以保留先驗的文生圖知識。ST-Attn 能提升時空一致性,Cross-Attn 能優化文本 - 視頻的對齊。
圖 9:Gen-1 模型的訓練流程概況。
圖 10:一個用於圖像合成的預訓練 LDM 被擴展成一個視頻生成器。B、、、、 分別是批量大小、序列長度、通道數、高度和寬度。_S 是一個可選的條件 / 上下文幀。
但是,LDM 的預訓練自動編碼器依然還有問題:它只能看見圖像,永遠看不見視頻。直接使用它來生成視頻會產生閃動的僞影,這樣的時間一致性就很差。因此 Video LDM 向解碼器添加了額外的時間層,並使用一個用 3D 卷積構建的逐塊時間判別器在視頻數據進行微調,同時編碼器保持不變,這樣就依然還能複用預訓練的 LDM。在時間解碼器微調期間,凍結的編碼器會獨立地處理視頻中每一幀,並使用一個視頻感知型判別器強制在幀之間實現在時間上一致的重建。
圖 11:視頻隱擴散模型中自動編碼器的訓練工作流程。其中編碼器的微調目標是通過新的跨幀判別器獲得時間一致性,而編碼器保持不變。
類似於 Video LDM,Blattmann et al. 在 2023 年提出的 Stable Video Diffusion(SVD)的架構設計也是基於 LDM,其中每一個空間卷積和注意力層之後都插入時間層,但 SVD 是在整個模型層面上執行微調。訓練視頻 LDM 分爲三個階段:
1. 文生圖預訓練很重要,有助於提升質量以及遵從 prompt 的能力。
2. 將視頻預訓練分開是有利的,理想情況下應當在更大規模的經過整編的數據集上進行。
3. 使用一段更小的、高視覺保真度的預先標註了字幕的視頻進行高質量視頻微調。
SVD 專門強調了數據集整編對模型性能的關鍵作用。他們使用了一個剪輯檢測流程來從每段視頻獲得更多剪輯,然後對其使用三個不同的字幕標註器模型:(1) 用於中間幀的 CoCa,(2) 用於視頻字幕的 V-BLIP,(3) 基於前兩個標註使用 LLM 來進行標註。然後他們還能繼續提升視頻數據集,其做法包括移除運動更少的視頻片段(通過以 2 fps 速度計算低光流分數進行過濾)、清除過多的文本(使用光學字符識別來識別具有大量文本的視頻)、清除看起來不夠美的視頻(使用 CLIP 嵌入標註每段視頻的第一幀、中間幀和最後幀並計算美學分數和文本 - 圖像相似度)。實驗表明,使用經過過濾的更高質量的數據集能得到更好的模型質量,即便這個數據集要小得多。
對於首先生成遠距離關鍵幀然後再使用時間超分辨率進行插值的方法,其中的關鍵挑戰是如何維持高質量的時間一致性。Bar-Tal et al. 在 2024 年提出的 Lumiere 則是採用了一種時空 U-Net(STUNet)架構,其可在單次通過中一次性生成整段時間上持續的視頻,這樣就無需依賴 TSR(時間超分辨率)組件了。STUNet 會在時間和空間維度上對視頻進行下采樣,因此會在一個緊湊的時間 - 空間隱空間內具備很高的計算成本。
圖 12:Lumiere 無需 TSR(時間超分辨率)模型。由於內存限制,經過擴展的 SSR 網絡可以僅使用視頻的短片段,因此 SSR 模型可以使用較短但重疊的視頻片段集。
STUNet 在預訓練文生圖 U-Net 上擴展之後能夠同時在時間和空間維度上對視頻進行下采樣和上採樣。基於卷積的模塊由預訓練的文生圖層構成,之後是分解的時空卷積。而在最粗粒度 U-Net 層面上的基於注意力的模塊包含這個預訓練文生圖模塊,之後是時間注意力。只有新添加的層需要進一步訓練。
圖 13:架構示意圖:(a) 時空 U-Net(STUNet)、(b) 基於卷積的模塊、(c) 基於注意力的模塊。
無訓練適應
也有可能不使用任何訓練就讓預訓練的文生圖模型輸出視頻,這多少有點讓人驚訝。
如果我們直接簡單地隨機採樣一個隱含代碼的序列,然後用解碼出來的對應圖像構建一段視頻,那麼無法保證物體和語義在時間上的一致性。Khachatryan et al. 在 2023 年提出的 Text2Video-Zero 可實現零樣本無訓練的視頻生成,其做法是讓預訓練的圖像擴散模型具備用於時間一致性的兩個關鍵機制。
1. 採樣具有運動動態的隱含代碼序列,以保證全局場景和背景的時間一致性。
2. 使用一個新的跨幀注意力(每一幀在第一幀上的注意力)重新編程幀層面的自注意力,以保證前景事物的上下文、外觀和身份信息的一致性。
圖 14:Text2Video-Zero 工作流程示意圖。
圖 15:ControlVideo 概覽。
原文鏈接:https://lilianweng.github.io/posts/2024-04-12-diffusion-video/