JaLMS
最新の AI 研究を日本語で解読

Open-Sora Plan: Open-Source Large Video Generation Model

Open-Sora Plan Team
https://github.com/PKU-YuanGroup/Open-Sora-Plan        
See Contributions section for full author list.
Abstract

我々はOpen-Sora Planを紹介する。これは、様々なユーザー入力に基づいて、所望の高解像度で長時間の動画を生成する大規模生成モデルに貢献することを目指すオープンソースプロジェクトである。 本プロジェクトは、動画生成プロセス全体のための複数のコンポーネントで構成されており、ウェーブレットフロー変分オートエンコーダー、結合画像-動画スパース・デノイザー、および様々な条件制御器が含まれる。 さらに、効率的な学習と推論のための多くの補助戦略が設計され、所望の高品質データを取得するための多次元データキュレーションパイプラインが提案されている。 効率的な考え方の恩恵を受け、我々のOpen-Sora Planは定性的および定量的評価の両方において印象的な動画生成結果を達成している。 我々は、この慎重な設計と実践的な経験が動画生成研究コミュニティに刺激を与えることを期待している。 我々のすべてのコードとモデルの重みはhttps://github.com/PKU-YuanGroup/Open-Sora-Planで公開されている。

1 Introduction

拡散モデル [ho2020denoising, song2020denoising] とトランスフォーマー [vaswani2017attention, peebles2023scalable] アーキテクチャの最近の進歩に牽引され、視覚コンテンツ生成は与えられたプロンプトに基づいて印象的な創造能力を示しており、幅広い関心と新たな試みを引き起こしている。 画像生成手法 [stable_diffusion, li2024hunyuan] が優れた性能を達成し広く応用されているため、動画生成モデルは、エンターテインメント、広告、映画など、様々なクリエイティブ産業に力を与えるために大きな進歩を遂げることが期待されている。 多くの初期の試み [guo2023animatediff, dynamicrafter] は低解像度と短いフレームの動画生成に成功しているが、想像を絶する計算とデータコストのため、高品質で長時間の動画生成に挑戦する取り組みはほとんどない。

しかし、OpenAIが作成した動画生成モデルSoraの印象的なショーケースを含む技術報告書 [videoworldsimulators2024] が突然公開され、動画生成コミュニティ全体に衝撃を与えると同時に、素晴らしい動画を作成する有望な方法を示した。 Sora様の強力な動画生成モデルを再実装することを目指す最初のオープンソースプロジェクトの1つとして、我々のOpen-Sora Planは広く注目を集め、動画生成コミュニティに多くの先駆的な試みを提供しており、これが多くの後続の研究を触発している。

本稿では、我々は最近数ヶ月間の実践的な経験をまとめ、Open-Sora Planの技術的詳細を提示する。このプランは、テキストプロンプト、複数の画像、構造制御信号(エッジ、深度、スケッチなど)を含む様々なカテゴリーの条件によって照会される高品質で長時間の動画を生成する。 図1に示すように、我々は動画生成モデルを3つの主要コンポーネントに分割し、各部分に改善を提案する:

Refer to caption
図1: Open-Soraプランのモデルアーキテクチャは、VAE、拡散トランスフォーマー、および条件付きエンコーダーで構成されている。条件付き注入エンコーダーにより、指定された構造的信号(画像、キャニーエッジ、深度マップ、スケッチなど)を使用して、個々のフレーム(最初のフレーム、フレームの一部、またはすべてのフレーム)を精密に操作することが可能となる。
  • ウェーブレットフロー変分オートエンコーダー。 メモリ使用量を削減し、学習速度を向上させるために、我々はWF-VAEを提案する。このモデルは、多段階ウェーブレット変換を通じて周波数領域で多スケール特徴を取得する。 これらの特徴は、ピラミッド構造を用いて畳み込みバックボーンに注入される。 また、タイリング推論によって引き起こされる潜在空間の乱れの問題に対処するために、因果キャッシュ法を導入した。

  • 画像-動画結合スキパース・デノイザー。 我々はまず、Soraに似た2+1D動画生成デノイザーを3D完全アテンション構造に変更し、物体の動き、カメラの動き、物理法則、人間の行動を含む世界の理解能力を大幅に向上させた。 我々のデノイザーは、特定の設計で高品質の画像と動画の両方を作成することができる。 さらに、計算量をさらに削減するために、スキパース・アテンションと呼ばれる安価だが効果的な操作を導入した。

  • 条件コントローラー。 我々は、画像から動画への変換、動画の遷移、動画の継続を含む様々なタスクを1つのフレームワークでサポートするために、基本モデルに画像条件を導入するフレームレベルの画像条件コントローラーを設計した。 さらに、制御可能な生成のために構造条件を基本モデルに導入する新しいネットワークアーキテクチャを開発した。

さらに、我々は、より効率的に学習し、推論時により評価の高い結果を得るために、すべての段階で一連の補助戦略を慎重に設計した:

  • 最小-最大トークン戦略。 Open-Sora Planは、訓練に最小-最大トークンを使用している。これは、異なる解像度と時間の長さのデータを同じバケット内で集約するものである。この戦略により、NPU/GPUの効率的な計算が可能になり、データの効果的な使用が最大化される。

  • 適応的勾配クリッピング戦略。 我々は、各ステップでの勾配ノルムに基づいて外れ値データを検出する適応的勾配クリッピング戦略を提案する。これにより、外れ値がモデルの勾配方向を歪めることを防ぐ。

  • プロンプト洗練戦略。 我々は、モデルが意味に従いながら入力プロンプトを合理的に拡張できるようにするプロンプト洗練器を開発した。プロンプト洗練器は、訓練と生成時のプロンプトの長さと記述の粒度の不一致の問題を緩和し、ビデオの動きの安定性を大幅に向上させ、詳細を豊かにする。

さらに、我々は未整理のデータセットから視覚データを自動的にフィルタリングし、アノテーションを付ける効率的なデータキュレーションパイプラインを提案する:

  • 多次元データプロセッサ。 我々のデータキュレーションパイプラインには、ジャンプカットの検出、ビデオのクリッピング、高速または低速モーションのフィルタリング、エッジ字幕のクロッピング、美的スコアのフィルタリング、ビデオの技術的品質の評価、キャプションのアノテーションが含まれる。

  • LPIPSベースのジャンプカット検出。 我々は、Learned Perceptual Image Patch Similarity (LPIPS) [Zhang_Isola_Efros_Shechtman_Wang_2018] に基づくビデオカット検出方法を実装し、高速モーションショットの誤ったセグメンテーションを防ぐ。

我々は、Open-Sora Planが進行中のオープンソースプロジェクトであることに注目しており、高品質のビデオ生成に向けて継続的な努力を行う。 最新のニュース、コード、モデルの重みはすべて https://github.com/PKU-YuanGroup/Open-Sora-Plan で公開され、更新される。

2 Core Models of Open-Sora Plan

Refer to caption
図2: WF-VAEの概要。WF-VAE[li2024wfvaeenhancingvideovae]はバックボーンと主要エネルギー経路から構成されており、この経路は連結を通じて動画の主要エネルギーの流れをバックボーンに注入する。

2.1 Wavelet-Flow VAE

予備知識。 多層Haarウェーブレット変換は、時間および空間次元に沿ってスケーリングフィルター𝐡=12[1,1]𝐡1211\mathbf{h}=\frac{1}{\sqrt{2}}[1,1]bold_h = divide start_ARG 1 end_ARG start_ARG square-root start_ARG 2 end_ARG end_ARG [ 1 , 1 ]とウェーブレットフィルター𝐠=12[1,1]𝐠1211\mathbf{g}=\frac{1}{\sqrt{2}}[1,-1]bold_g = divide start_ARG 1 end_ARG start_ARG square-root start_ARG 2 end_ARG end_ARG [ 1 , - 1 ]を適用することにより、ビデオ信号を分解する。ビデオ信号𝐕C×T×H×W𝐕superscript𝐶𝑇𝐻𝑊\mathbf{V}\in\mathbb{R}^{C\times T\times H\times W}bold_V ∈ blackboard_R start_POSTSUPERSCRIPT italic_C × italic_T × italic_H × italic_W end_POSTSUPERSCRIPTに対して、C𝐶Citalic_CT𝑇Titalic_TH𝐻Hitalic_H、およびW𝑊Witalic_Wはそれぞれチャンネル数、時間フレーム数、高さ、幅に対応し、層l𝑙litalic_lにおける3D Haarウェーブレット変換は以下のように定義される:

𝐒ijk(l)=𝐒(l1)(fifjfk),subscriptsuperscript𝐒𝑙𝑖𝑗𝑘superscript𝐒𝑙1tensor-productsubscript𝑓𝑖subscript𝑓𝑗subscript𝑓𝑘\mathbf{S}^{(l)}_{ijk}=\mathbf{S}^{(l-1)}*(f_{i}\otimes f_{j}\otimes f_{k}),bold_S start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j italic_k end_POSTSUBSCRIPT = bold_S start_POSTSUPERSCRIPT ( italic_l - 1 ) end_POSTSUPERSCRIPT ∗ ( italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ⊗ italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ⊗ italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) , (1)

ここで、fi,fj,fk𝐡,𝐠formulae-sequencesubscript𝑓𝑖subscript𝑓𝑗subscript𝑓𝑘𝐡𝐠f_{i},f_{j},f_{k}\in{\mathbf{h},\mathbf{g}}italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ bold_h , bold_gは各次元に適用されるフィルターを表し、*は畳み込み演算を表す。変換は𝐒(0)=𝐕superscript𝐒0𝐕\mathbf{S}^{(0)}=\mathbf{V}bold_S start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT = bold_Vから始まり、後続の層では𝐒(l)=𝐒hhh(l1)superscript𝐒𝑙superscriptsubscript𝐒𝑙1\mathbf{S}^{(l)}=\mathbf{S}_{hhh}^{(l-1)}bold_S start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT = bold_S start_POSTSUBSCRIPT italic_h italic_h italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l - 1 ) end_POSTSUPERSCRIPTとなり、各層が前の層の低周波成分に対して操作することを示している。各分解層l𝑙litalic_lにおいて、変換は8つのサブバンド成分を生成する:𝒲(l)={𝐒hhh(l),𝐒hhg(l),𝐒hgh(l),𝐒ghh(l),𝐒hgg(l),𝐒ggh(l),𝐒ghg(l),𝐒ggg(l)}superscript𝒲𝑙superscriptsubscript𝐒𝑙superscriptsubscript𝐒𝑔𝑙superscriptsubscript𝐒𝑔𝑙superscriptsubscript𝐒𝑔𝑙superscriptsubscript𝐒𝑔𝑔𝑙superscriptsubscript𝐒𝑔𝑔𝑙superscriptsubscript𝐒𝑔𝑔𝑙superscriptsubscript𝐒𝑔𝑔𝑔𝑙\mathcal{W}^{(l)}=\{\mathbf{S}_{hhh}^{(l)},\mathbf{S}_{hhg}^{(l)},\mathbf{S}_{% hgh}^{(l)},\mathbf{S}_{ghh}^{(l)},\mathbf{S}_{hgg}^{(l)},\mathbf{S}_{ggh}^{(l)% },\mathbf{S}_{ghg}^{(l)},\mathbf{S}_{ggg}^{(l)}\}caligraphic_W start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT = { bold_S start_POSTSUBSCRIPT italic_h italic_h italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_h italic_h italic_g end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_h italic_g italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_g italic_h italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_h italic_g italic_g end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_g italic_g italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_g italic_h italic_g end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT , bold_S start_POSTSUBSCRIPT italic_g italic_g italic_g end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT }。ここで、𝐒hhh(l)superscriptsubscript𝐒𝑙\mathbf{S}_{hhh}^{(l)}bold_S start_POSTSUBSCRIPT italic_h italic_h italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPTはすべての次元にわたる低周波成分を表し、𝐒ggg(l)superscriptsubscript𝐒𝑔𝑔𝑔𝑙\mathbf{S}_{ggg}^{(l)}bold_S start_POSTSUBSCRIPT italic_g italic_g italic_g end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPTは高周波の詳細を捉える。時間および空間次元で異なるダウンサンプリング率を実装するために、2Dおよび3Dウェーブレット変換の組み合わせを実装することができる。具体的には、4×\times×8×\times×8(時間×\times×高さ×\times×幅)の圧縮率を得るために、2層の3Dウェーブレット変換に続いて1層の2Dウェーブレット変換を組み合わせて使用することができる。

学習目的。 [rombach2022high]で概説された学習戦略に基づき、提案された損失関数はいくつかの要素を統合している:再構成損失(L1損失と知覚損失[Zhang_Isola_Efros_Shechtman_Wang_2018]の両方を含む)、敵対的損失、およびKLダイバージェンス正則化。図2に示すように、我々のモデルアーキテクチャは低周波エネルギーフローを強調し、エンコーダーとデコーダー間の対称性を強制する。このアーキテクチャ原則を保持するために、我々はWLsubscript𝑊𝐿\mathcal{L}_{W\!L}caligraphic_L start_POSTSUBSCRIPT italic_W italic_L end_POSTSUBSCRIPT(WL損失)と呼ばれる新しい正則化項を導入する。これは、期待されるエネルギーフローからの逸脱にペナルティを与えることで構造的一貫性を確保する:

WL=|𝒲^(2)𝒲(2)|+|𝒲^(3)𝒲(3)|.subscript𝑊𝐿superscript^𝒲2superscript𝒲2superscript^𝒲3superscript𝒲3\mathcal{L}_{W\!L}=|\hat{\mathcal{W}}^{(2)}-\mathcal{W}^{(2)}|+|\hat{\mathcal{% W}}^{(3)}-\mathcal{W}^{(3)}|.caligraphic_L start_POSTSUBSCRIPT italic_W italic_L end_POSTSUBSCRIPT = | over^ start_ARG caligraphic_W end_ARG start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT - caligraphic_W start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT | + | over^ start_ARG caligraphic_W end_ARG start_POSTSUPERSCRIPT ( 3 ) end_POSTSUPERSCRIPT - caligraphic_W start_POSTSUPERSCRIPT ( 3 ) end_POSTSUPERSCRIPT | . (2)

全体の損失関数は以下のように定義される:

=recon+λadvadv+λKLKL+λWLWL.subscript𝑟𝑒𝑐𝑜𝑛subscript𝜆𝑎𝑑𝑣subscript𝑎𝑑𝑣subscript𝜆𝐾𝐿subscript𝐾𝐿subscript𝜆𝑊𝐿subscript𝑊𝐿\begin{split}\mathcal{L}&=\mathcal{L}_{recon}+\lambda_{adv}\mathcal{L}_{adv}+% \lambda_{K\!L}\mathcal{L}_{K\!L}+\lambda_{W\!L}\mathcal{L}_{W\!L}.\end{split}start_ROW start_CELL caligraphic_L end_CELL start_CELL = caligraphic_L start_POSTSUBSCRIPT italic_r italic_e italic_c italic_o italic_n end_POSTSUBSCRIPT + italic_λ start_POSTSUBSCRIPT italic_a italic_d italic_v end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_a italic_d italic_v end_POSTSUBSCRIPT + italic_λ start_POSTSUBSCRIPT italic_K italic_L end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_K italic_L end_POSTSUBSCRIPT + italic_λ start_POSTSUBSCRIPT italic_W italic_L end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_W italic_L end_POSTSUBSCRIPT . end_CELL end_ROW (3)

ここで、λadvsubscript𝜆𝑎𝑑𝑣\lambda_{adv}italic_λ start_POSTSUBSCRIPT italic_a italic_d italic_v end_POSTSUBSCRIPTλKLsubscript𝜆𝐾𝐿\lambda_{KL}italic_λ start_POSTSUBSCRIPT italic_K italic_L end_POSTSUBSCRIPT、およびλWLsubscript𝜆𝑊𝐿\lambda_{W\!L}italic_λ start_POSTSUBSCRIPT italic_W italic_L end_POSTSUBSCRIPTは対応する損失成分の重み係数である。[Esser_2021_CVPR]に従い、我々は敵対的損失と再構成損失の相対的な勾配の大きさのバランスを取るために動的敵対的損失重み付けを採用する:

λadv=12(GL[recon]GL[adv]+δ),subscript𝜆adv12normsubscriptsubscript𝐺𝐿subscriptreconnormsubscriptsubscript𝐺𝐿subscriptadv𝛿\lambda_{\mathrm{adv}}=\frac{1}{2}\bigg{(}\frac{\|\nabla_{G_{L}}[\mathcal{L}_{% \mathrm{recon}}]\|}{\|\nabla_{G_{L}}[\mathcal{L}_{\mathrm{adv}}]\|+\delta}% \bigg{)},italic_λ start_POSTSUBSCRIPT roman_adv end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ( divide start_ARG ∥ ∇ start_POSTSUBSCRIPT italic_G start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ caligraphic_L start_POSTSUBSCRIPT roman_recon end_POSTSUBSCRIPT ] ∥ end_ARG start_ARG ∥ ∇ start_POSTSUBSCRIPT italic_G start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ caligraphic_L start_POSTSUBSCRIPT roman_adv end_POSTSUBSCRIPT ] ∥ + italic_δ end_ARG ) , (4)

ここで、GL[]subscript𝐺𝐿delimited-[]\nabla{G_{L}}[\cdot]∇ italic_G start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT [ ⋅ ]はデコーダーの最終層に関する勾配を表し、δ=106𝛿superscript106\delta=10^{-6}italic_δ = 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPTは数値的安定性のために導入される。

{wrapfigure}

r0.5 [Uncaptioned image] 因果キャッシュの図解。

因果キャッシュ。 我々はWF-VAEにおいて通常の3D畳み込みを、開始時にkt1subscript𝑘𝑡1k_{t}-1italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - 1の時間パディングを持つ因果的3D畳み込み[yu2024languagemodelbeatsdiffusion]に置き換え、画像とビデオの統一的な処理を可能にする。T-フレームのビデオの効率的な推論のために、我々は最初のフレームを抽出し、残りのフレームをサイズTchunksubscript𝑇𝑐𝑢𝑛𝑘T_{chunk}italic_T start_POSTSUBSCRIPT italic_c italic_h italic_u italic_n italic_k end_POSTSUBSCRIPTのチャンクで処理する。チャンク間でTcache(m)subscript𝑇𝑐𝑎𝑐𝑒𝑚T_{cache}(m)italic_T start_POSTSUBSCRIPT italic_c italic_a italic_c italic_h italic_e end_POSTSUBSCRIPT ( italic_m )の末尾フレームをキャッシュする。ここで:

Tcache(m)=kt+mTchunkstmTchunkst+1.subscript𝑇𝑐𝑎𝑐𝑒𝑚subscript𝑘𝑡𝑚subscript𝑇𝑐𝑢𝑛𝑘subscript𝑠𝑡𝑚subscript𝑇𝑐𝑢𝑛𝑘subscript𝑠𝑡1T_{cache}(m)=k_{t}+mT_{chunk}-s_{t}\lfloor\frac{mT_{chunk}}{s_{t}}+1\rfloor.italic_T start_POSTSUBSCRIPT italic_c italic_a italic_c italic_h italic_e end_POSTSUBSCRIPT ( italic_m ) = italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_m italic_T start_POSTSUBSCRIPT italic_c italic_h italic_u italic_n italic_k end_POSTSUBSCRIPT - italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ⌊ divide start_ARG italic_m italic_T start_POSTSUBSCRIPT italic_c italic_h italic_u italic_n italic_k end_POSTSUBSCRIPT end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_ARG + 1 ⌋ . (5)

この方法では、(Tkt)𝑇subscript𝑘𝑡(T-k_{t})( italic_T - italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT )stsubscript𝑠𝑡s_{t}italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT(T1)modst=0modulo𝑇1subscript𝑠𝑡0(T-1)\bmod s_{t}=0( italic_T - 1 ) roman_mod italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 0で割り切れる必要がある。理解のために図2.1に例示を示す。kt=3,st=1,Tchunk=4formulae-sequencesubscript𝑘𝑡3formulae-sequencesubscript𝑠𝑡1subscript𝑇𝑐𝑢𝑛𝑘4k_{t}=3,s_{t}=1,T_{chunk}=4italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 3 , italic_s start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 1 , italic_T start_POSTSUBSCRIPT italic_c italic_h italic_u italic_n italic_k end_POSTSUBSCRIPT = 4の場合、Tcache(m)=2subscript𝑇𝑐𝑎𝑐𝑒𝑚2T_{cache}(m)=2italic_T start_POSTSUBSCRIPT italic_c italic_a italic_c italic_h italic_e end_POSTSUBSCRIPT ( italic_m ) = 2フレームがキャッシュされる。

学習の詳細。 我々はAdamWオプティマイザー[Kingma_Ba_2014, loshchilov2019decoupledweightdecayregularization]をパラメータβ1=0.9subscript𝛽10.9\beta_{1}=0.9italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 0.9およびβ2=0.999subscript𝛽20.999\beta_{2}=0.999italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.999で使用し、1×1051superscript1051\times 10^{-5}1 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPTの固定学習率を維持する。我々の学習プロセスは3段階で構成される:(i) 第一段階では、[chen2024od]の方法論に従い、ビデオを解像度256×256256256256\times 256256 × 256の25フレームに前処理し、総バッチサイズを8とする。(ii) 判別器を更新し、フレーム数を49に増やし、フレームレート(FPS)を半分にして動きのダイナミクスを向上させる。(iii) 大きなλlpipssubscript𝜆𝑙𝑝𝑖𝑝𝑠\lambda_{lpips}italic_λ start_POSTSUBSCRIPT italic_l italic_p italic_i italic_p italic_s end_POSTSUBSCRIPTがビデオの安定性に悪影響を与えることを発見したため、再度判別器を更新し、λlpipssubscript𝜆𝑙𝑝𝑖𝑝𝑠\lambda_{lpips}italic_λ start_POSTSUBSCRIPT italic_l italic_p italic_i italic_p italic_s end_POSTSUBSCRIPT0.10.10.10.1に設定する。 初期段階は800,000ステップ学習され、その後の段階はそれぞれ200,000ステップ学習される。学習プロセスは8台のNPU[liao2021ascend]/GPUで実施される。我々は3D判別器を採用し、GAN学習を最初から開始する。

2.2 Joint Image-Video Skiparse Denoiser

Refer to caption
図3: 画像-動画統合Skiparse除噪器の概要。モデルは、入力動画をWavelet-Flow VAEを通じて圧縮した低次元潜在空間で除噪プロセスを学習する。テキストプロンプトとタイムステップは、3D RoPEを備えた各Cross-DiTブロック層に注入される。我々のSkirparse注意は、最初と最後の2層を除くすべての層に適用される。

2.2.1 Model Overview

3に示すように、我々は拡散モデルによる除噪訓練のために、入力画像または動画をピクセル空間から潜在空間に圧縮する。入力潜在変数xB×C×T×H×W𝑥superscript𝐵𝐶𝑇𝐻𝑊x\in\mathbb{R}^{B\times C\times T\times H\times W}italic_x ∈ blackboard_R start_POSTSUPERSCRIPT italic_B × italic_C × italic_T × italic_H × italic_W end_POSTSUPERSCRIPTが与えられると、まず3D畳み込み層によって潜在変数を小さなトークンに分割し、1次元シーケンスに平坦化する。その際、潜在次元C𝐶Citalic_Cを次元D𝐷Ditalic_Dに変換する。我々はカーネルサイズkt=1,kh=2formulae-sequencesubscript𝑘𝑡1subscript𝑘2k_{t}=1,k_{h}=2italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 1 , italic_k start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT = 2およびkw=2subscript𝑘𝑤2k_{w}=2italic_k start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = 2を使用し、ストライドはカーネルサイズに一致させ、合計L=THWktkhkw𝐿𝑇𝐻𝑊subscript𝑘𝑡subscript𝑘subscript𝑘𝑤L=\frac{THW}{k_{t}k_{h}k_{w}}italic_L = divide start_ARG italic_T italic_H italic_W end_ARG start_ARG italic_k start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT italic_k start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT italic_k start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_ARG個のトークンを生成する。さらに、mT5-XXL [xue2020mt5]をテキストエンコーダーとして使用し、テキストプロンプトを高次元特徴空間にマッピングし、単一のMLP層を通じてテキスト特徴を次元D𝐷Ditalic_Dに変換する。

3D RoPE。我々は3D回転位置エンコーディングを採用しており、これによりモデルは絶対位置に依存せずに位置間の相対的な差を直接比較できる。我々はnD𝑛𝐷nDitalic_n italic_D RoPEの計算プロセスを定義する。「パッチ化」操作の後、潜在変数𝐗B×L×D𝐗superscript𝐵𝐿𝐷\mathbf{X}\in\mathbb{R}^{B\times L\times D}bold_X ∈ blackboard_R start_POSTSUPERSCRIPT italic_B × italic_L × italic_D end_POSTSUPERSCRIPTn𝑛nitalic_n次元に沿ってD𝐷Ditalic_D部分に分割される。例えば𝐗=[𝐗𝟏,,𝐗𝐧]𝐗subscript𝐗1subscript𝐗𝐧\mathbf{X}=\left[\mathbf{X}_{\mathbf{1}},\ldots,\mathbf{X}_{\mathbf{n}}\right]bold_X = [ bold_X start_POSTSUBSCRIPT bold_1 end_POSTSUBSCRIPT , … , bold_X start_POSTSUBSCRIPT bold_n end_POSTSUBSCRIPT ]となり、ここで𝐗𝐢B×L×Dnsubscript𝐗𝐢superscript𝐵𝐿𝐷𝑛\mathbf{X}_{\mathbf{i}}\in\mathbb{R}^{B\times L\times\frac{D}{n}}bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_B × italic_L × divide start_ARG italic_D end_ARG start_ARG italic_n end_ARG end_POSTSUPERSCRIPTi[1,,n]𝑖1𝑛i\in[1,\ldots,n]italic_i ∈ [ 1 , … , italic_n ]である。我々は分割されたテンソル𝐗𝐢subscript𝐗𝐢\mathbf{X}_{\mathbf{i}}bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPTにRoPEを適用する。RoPE操作[su2024roformer]RoPE(𝐗𝐢)RoPEsubscript𝐗𝐢\operatorname{RoPE}\left(\mathbf{X}_{\mathbf{i}}\right)roman_RoPE ( bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPT )と表すと、i番目の次元の相対位置エンコーディングをテンソル𝐗𝐢subscript𝐗𝐢\mathbf{X}_{\mathbf{i}}bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPTに注入し、処理されたテンソルをD𝐷Ditalic_D次元に沿って連結して最終結果を得る:

𝐗𝐢ropesuperscriptsubscript𝐗𝐢rope\displaystyle\mathbf{X}_{\mathbf{i}}^{\text{rope }}bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT rope end_POSTSUPERSCRIPT =RoPE(𝐗𝐢),absentRoPEsubscript𝐗𝐢\displaystyle=\operatorname{RoPE}\left(\mathbf{X}_{\mathbf{i}}\right),= roman_RoPE ( bold_X start_POSTSUBSCRIPT bold_i end_POSTSUBSCRIPT ) , (6)
𝐗finalsubscript𝐗final\displaystyle\mathbf{X}_{\text{final }}bold_X start_POSTSUBSCRIPT final end_POSTSUBSCRIPT =Concat([𝐗𝟏rope ,,𝐗𝐧rope ]),absentConcatsuperscriptsubscript𝐗1rope superscriptsubscript𝐗𝐧rope \displaystyle=\operatorname{Concat}\left(\left[\mathbf{X}_{\mathbf{1}}^{\text{% rope }},\ldots,\mathbf{X}_{\mathbf{n}}^{\text{rope }}\right]\right),= roman_Concat ( [ bold_X start_POSTSUBSCRIPT bold_1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT rope end_POSTSUPERSCRIPT , … , bold_X start_POSTSUBSCRIPT bold_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT rope end_POSTSUPERSCRIPT ] ) , (7)

ここで、Concat()Concat\operatorname{Concat}(\cdot)roman_Concat ( ⋅ )は連結操作を表し、𝐗final B×L×Dsubscript𝐗final superscript𝐵𝐿𝐷\mathbf{X}_{\text{final }}\in\mathbb{R}^{B\times L\times D}bold_X start_POSTSUBSCRIPT final end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_B × italic_L × italic_D end_POSTSUPERSCRIPTである。n=1𝑛1n=1italic_n = 1の場合、大規模言語モデルにおける1次元シーケンスへのRoPEの適用と同等である。n=2𝑛2n=2italic_n = 2の場合、画像の高さと幅方向に適用される2D RoPEとみなすことができる。n=3𝑛3n=3italic_n = 3の場合、時間的および空間的次元の両方に相対位置エンコーディングを組み込むことで、シーケンスの表現を強化し、動画データにRoPEを成功裏に適用できる。

ブロック設計。大規模言語モデルのアーキテクチャ[dubey2024llama, yang2024qwen2, jiang2023mistral, young2024yi]にインスパイアされ、我々は主にセルフアテンション、クロスアテンション、フィードフォワードネットワークで構成される事前正規化トランスフォーマーブロック構造を採用する。 [peebles2023scalable, chen2023pixartalpha]に従い、タイムステップを2セットのスケール、シフト、ゲートパラメータにadaLN-Zero [peebles2023scalable]を通じてマッピングする。 その後、これら2セットの値をセルフアテンションとFFNにそれぞれ注入し、セルフアテンション層に3D RoPEを採用する。 バージョン1.2では、動画のモーションの滑らかさと視覚的品質を大幅に向上させるため、2+1DアテンションではなくFull 3Dアテンションの導入を開始した。 しかし、Full 3Dアテンションの二次計算量は膨大な計算リソースを必要とするため、我々は新しいスパースアテンションメカニズムを提案する。 直接的な3D相互作用を確保するため、最初と最後の2層ではFull 3Dアテンションを維持する。

2.2.2 Skiparse Attention

従来の動画生成手法で広く活用されている2+1Dアテンションは、時間次元に沿ってのみフレーム間の相互作用を計算するため、理論的にも実践的にも動画生成性能を制限している。 2+1Dアテンションと比較して、Full 3Dアテンションは任意の空間的・時間的位置のコンテンツが相互作用できるようにするグローバルな計算を表現しており、この手法は現実世界の物理法則とよく一致する。 しかし、Full 3Dアテンションは時間がかかり非効率的である。視覚情報には冗長性が多く含まれることが多いため、すべての時空間トークン間でアテンションを確立する必要はない。 理想的な時空間モデリングアプローチは、冗長な視覚情報からのオーバーヘッドを最小限に抑えつつ、動的な物理世界の複雑さを捉えるアテンションを採用すべきである。冗長性を減らすにはすべてのトークン間の接続を避ける必要があるが、複雑な物理的相互作用をモデル化するにはグローバルなアテンションが依然として不可欠である。

Refer to caption
図4: Skiparse注意の計算プロセス(例としてスパース比k=2𝑘2k=2italic_k = 2の場合)。我々のSkirparse注意操作では、Single SkipとGroup Skip操作を交互に実行し、各操作で元のサイズと比較してシーケンス長を1/k1𝑘1/k1 / italic_kに削減する。
Refer to caption
図5: 異なる注意メカニズムの相互作用シーケンススコープ。様々な注意は、主に注意計算中に選択されるトークンの数と位置が異なる。

計算効率と時空間モデリング能力のバランスを取るため、我々はSkiparse(Skip-Sparse)注意メカニズムを提案する。 Skiparse注意を用いた除噪器は、トランスフォーマーブロック内の元の注意層をSingle SkipGroup Skipと呼ばれる2つの交互のスパース注意操作に変更するだけである。 スパース比k𝑘kitalic_kを与えると、注意操作におけるシーケンス長は元の長さと比較して1k1𝑘\frac{1}{k}divide start_ARG 1 end_ARG start_ARG italic_k end_ARGに減少し、バッチサイズはk𝑘kitalic_k倍に増加する。これにより、セルフアテンションの理論的複雑性は1k1𝑘\frac{1}{k}divide start_ARG 1 end_ARG start_ARG italic_k end_ARGに低下するが、クロスアテンションの複雑性は変わらない。

2つのスキップ操作の計算プロセスを図4に示す。 Single Skip操作では、位置[0,k,2k,3k,]0𝑘2𝑘3𝑘[0,k,2k,3k,...][ 0 , italic_k , 2 italic_k , 3 italic_k , … ][1,k+1,2k+1,3k+1,]1𝑘12𝑘13𝑘1[1,k+1,2k+1,3k+1,...][ 1 , italic_k + 1 , 2 italic_k + 1 , 3 italic_k + 1 , … ]、…、[k1,2k1,3k1,]𝑘12𝑘13𝑘1[k-1,2k-1,3k-1,...][ italic_k - 1 , 2 italic_k - 1 , 3 italic_k - 1 , … ]にある要素がシーケンスにまとめられる。つまり、各トークンはk1𝑘1k-1italic_k - 1間隔で離れたトークンとアテンションを実行する。

Group Skip操作では、位置[(0,1,,k1),(k2,k2+1,,k2+k1),(2k2,2k2+1,,2k2+k1),]01𝑘1superscript𝑘2superscript𝑘21superscript𝑘2𝑘12superscript𝑘22superscript𝑘212superscript𝑘2𝑘1[(0,1,...,k-1),(k^{2},k^{2}+1,...,k^{2}+k-1),(2k^{2},2k^{2}+1,...,2k^{2}+k-1),% ...][ ( 0 , 1 , … , italic_k - 1 ) , ( italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 1 , … , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k - 1 ) , ( 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 1 , … , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k - 1 ) , … ][(k,k+1,,2k1),(k2+k,k2+k+1,,k2+2k1),(2k2+k,2k2+k+1,,2k2+2k1),]𝑘𝑘12𝑘1superscript𝑘2𝑘superscript𝑘2𝑘1superscript𝑘22𝑘12superscript𝑘2𝑘2superscript𝑘2𝑘12superscript𝑘22𝑘1[(k,k+1,...,2k-1),(k^{2}+k,k^{2}+k+1,...,k^{2}+2k-1),(2k^{2}+k,2k^{2}+k+1,...,% 2k^{2}+2k-1),...][ ( italic_k , italic_k + 1 , … , 2 italic_k - 1 ) , ( italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k + 1 , … , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_k - 1 ) , ( 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k + 1 , … , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_k - 1 ) , … ]、…、[(k2k,k2k1,,k21),(2k2k,2k2k1,,2k21),(3k2k,3k2k1,,3k21),]superscript𝑘2𝑘superscript𝑘2𝑘1superscript𝑘212superscript𝑘2𝑘2superscript𝑘2𝑘12superscript𝑘213superscript𝑘2𝑘3superscript𝑘2𝑘13superscript𝑘21[(k^{2}-k,k^{2}-k-1,...,k^{2}-1),(2k^{2}-k,2k^{2}-k-1,...,2k^{2}-1),(3k^{2}-k,% 3k^{2}-k-1,...,3k^{2}-1),...][ ( italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k - 1 , … , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 1 ) , ( 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k - 1 , … , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 1 ) , ( 3 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k , 3 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_k - 1 , … , 3 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 1 ) , … ]にある要素がシーケンスにまとめられる。 具体的には、まず隣接するトークンをグループ化し、長さk𝑘kitalic_kのセグメントにし、次にこれらのグループをk1𝑘1k-1italic_k - 1グループ間隔で離れた他のグループとシーケンスにまとめる。 例えば、[(0,1,,k1),(k2,k2+1,,k2+k1),(2k2,2k2+1,,2k2+k1),]01𝑘1superscript𝑘2superscript𝑘21superscript𝑘2𝑘12superscript𝑘22superscript𝑘212superscript𝑘2𝑘1[(0,1,...,k-1),(k^{2},k^{2}+1,...,k^{2}+k-1),(2k^{2},2k^{2}+1,...,2k^{2}+k-1),% ...][ ( 0 , 1 , … , italic_k - 1 ) , ( italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 1 , … , italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k - 1 ) , ( 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 1 , … , 2 italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_k - 1 ) , … ]では、括弧内の各インデックスセットがグループを表し、各グループはk1𝑘1k-1italic_k - 1グループオフセットで別のグループと接続され、1つのシーケンスを形成する。 我々は、Group Skip操作と従来のSkip + Window注意の主な違いは、我々の操作がグループ化だけでなくスキップも含んでいることであり、これは以前の試みでは無視されていたことに気付いた。 具体的には、Window注意は隣接するトークンをグループ化するだけで、スキップされたグループを1つのシーケンスに接続することはない。 これらの注意方法の違いを図5に示す。ここで、濃い色のトークンは1回の注意計算に関与するトークンを表している。

さらに、我々は2+1D DiTの注意がk=HW𝑘𝐻𝑊k=HWitalic_k = italic_H italic_Wに対応することに気付いた(THWmuch-less-than𝑇𝐻𝑊T\ll HWitalic_T ≪ italic_H italic_Wの場合、Group SkipのSkip操作は効果がない)。一方、Full 3D DiTはk=1𝑘1k=1italic_k = 1に対応する。 Skiparse注意では、k𝑘kitalic_kは通常1に近い値が選ばれるが、HW𝐻𝑊HWitalic_H italic_Wよりもはるかに小さい値となり、Skiparse注意はFull 3D注意の効果に近づきつつ計算コストを削減する。

さらに、我々は与えられた注意がFull 3D注意にどれだけ近いかを定量化するために、平均注意距離ADavgsubscriptADavg\mathrm{AD_{avg}}roman_AD start_POSTSUBSCRIPT roman_avg end_POSTSUBSCRIPT)の概念を提案する。この概念は以下のように定義される: 任意の2つのトークンA&B間の接続を確立するために少なくともm𝑚mitalic_m回の注意計算が必要な場合、注意距離A\rightarrowBはm𝑚mitalic_mである(トークン自身との注意距離はゼロであることに注意)。 したがって、ある注意メカニズムの

2.3 Conditional Controllers

2.3.1 Image Condition Controller

Stable Diffusion Inpainting [stable_diffusion]にインスパイアされ、我々は画像条件タスクを、より柔軟な学習パラダイムのために時間次元におけるインペインティングタスクとして捉えている。

画像条件モデルは我々のテキスト動画変換の重みで初期化される。図6に示すように、与えられたマスクマスクされた動画という2つの追加入力を加え、これらを潜在ノイズと連結してDenoiserに入力する。 与えられたマスクについては、VAEによるエンコーディングの代わりに、VAEにおける時間的ダウンサンプリングがマスクの制御精度を損なうため、潜在次元を合わせるために「リシェイプ」操作を採用する。 マスクされた動画については、元の動画に与えられたマスクを乗算し、その結果をVAEに入力してエンコーディングを行う。

2+1D Attentionに基づく先行研究では、フレーム間の安定性を高めるために画像の意味特徴(通常CLIPを通じて抽出される[clip])をUNetやDiTに注入していた[blattmann2023stable, dynamicrafter, easyanimate]が、我々は制御のための意味特徴を組み込むことなく、単にDiTの入力チャンネルを変更するだけである。 我々の観察では、様々な意味注入手法を活用しても生成結果を顕著に改善することはできず、むしろモーションの範囲を制限してしまうため、我々の実験では画像の意味注入モジュールを破棄している。

{wrapfigure}

l0.4 [Uncaptioned image] 画像条件付き生成のための異なるタイプのマスク。黒いマスクは対応するフレームが保持されることを示し、白いマスクはフレームがマスクされることを示す。

学習の詳細。 学習設定については、v-予測、ゼロ終端SNR、min-snr重み付け戦略を含め、テキスト動画変換モデルと同じ設定を採用し、パラメータもテキスト動画変換モデルと一致させている。また、1e-5の一定学習率を持つAdamWオプティマイザーを使用し、256個のNPUでバッチサイズを512に固定して利用している。

我々のインペインティングフレームワークにおける異なるマスクタイプの柔軟性のおかげで、図2.3.1に示すように、学習タスクの難易度を徐々に上げていく段階的学習戦略を設計している。この戦略により、より滑らかな学習曲線が得られ、モーションの一貫性が向上する。 学習中に使用されるマスクは以下のように設定される: (1) クリア: すべてのフレームを保持。 (2) T2V: すべてのフレームを破棄。 (3) I2V: 最初のフレームのみを保持し、残りを破棄。 (4) 遷移: 最初と最後のフレームのみを保持し、残りを破棄。 (5) 継続: 最初のn𝑛nitalic_nフレームを保持し、残りを破棄。 (6) ランダム: ランダムに選択されたn𝑛nitalic_nフレームを保持し、残りを破棄。 具体的には、我々の段階的学習戦略は2つのステージを含む。ステージ1では、低解像度で複数の単純なタスクを学習する。ステージ2では、より高い解像度で画像動画変換とビデオ遷移タスクを学習する。

ステージ1: 93×1024009310240093\times 10240093 × 102400320×320320320320\times 320320 × 320)内の任意の解像度と持続時間で、フィルタリングされていないモーションと美的に低品質なデータを使用。異なるステップでのタスク比率は以下の通り:

  1. 1.

    T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも50%のフレームが保持されるようにし、400万サンプルで学習。

  2. 2.

    T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも25%のフレームが保持されるようにし、400万サンプルで学習。

  3. 3.

    T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも12.5%のフレームが保持されるようにし、400万サンプルで学習。

  4. 4.

    T2V 10%、継続 25%、ランダム 60%、クリア 5%。継続とランダムマスク中に少なくとも12.5%のフレームが保持されるようにし、400万サンプルで学習。

  5. 5.

    T2V 10%、継続 25%、ランダム 60%、クリア 5%、800万サンプルで学習。

  6. 6.

    T2V 10%、継続 10%、ランダム 20%、I2V 40%、遷移 20%、1600万サンプルで学習。

  7. 7.

    T2V 5%、継続 5%、ランダム 10%、I2V 40%、遷移 40%、1000万サンプルで学習。

ステージ2: 93×2365449323654493\times 23654493 × 236544内の任意の解像度と持続時間(例:480×480480480480\times 480480 × 480640×352640352640\times 352640 × 352352×640352640352\times 640352 × 640)で、フィルタリングされたモーションと美的に高品質なデータを使用し、異なるタスクの比率は T2V 5%、継続 5%、ランダム 10%、I2V 40%、遷移 40%で、1500万サンプルで学習。

2段階の学習を完了した後、[yang2024cogvideox]で言及されているアプローチを参考に、ファインチューニング中に条件画像にわずかなガウスノイズを加えて汎化性を高め、500万のフィルタリングされたモーションと美的に高品質なデータを利用する。

2.3.2 Structure Condition Controller

我々の保持されたテキスト画像変換モデルに構造的制御を課す際、直感的なアイデアは、U-netベースのベースモデル用に指定された以前の制御手法[controlnet, t2iadapter, controlnet_plus_plus, sparsectrl]を使用することである。 しかし、これらの手法の大部分はControlNet [controlnet]に基づいており、制御信号を処理するためにベースモデルの半分をコピーし、ハードウェア消費量を約50%増加させる。 元のOpen-Sora Planベースモデルの費用が既に非常に高いため、この追加消費は膨大である。 一部の研究[t2iadapter, controlnext]では、制御可能性を犠牲にしてベースモデルの重いコピーをより軽いネットワークに置き換えようとしているが、これらを我々のベースモデルに使用すると、入力構造信号と生成された動画との間の整合性が低下する可能性が高い。

我々のベースモデルにより効率的に構造的制御を追加するために、図7に示すような新しい構造条件コントローラーを提案する。 具体的には、我々のベースモデルのデノイザーがM𝑀Mitalic_M個のトランスフォーマーブロックを含むと仮定する。 ベースモデルのj𝑗jitalic_j番目の1jM1𝑗𝑀1\leq j\leq M1 ≤ italic_j ≤ italic_Mトランスフォーマーブロック𝒯jsubscript𝒯𝑗\mathcal{T}_{j}caligraphic_T start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTについて、その出力は一連のトークン𝑿jsubscript𝑿𝑗\boldsymbol{X}_{j}bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTであり、以下のように表現できる:

𝑿j=𝒯j(𝑿j1).subscript𝑿𝑗subscript𝒯𝑗subscript𝑿𝑗1\boldsymbol{X}_{j}=\mathcal{T}_{j}(\boldsymbol{X}_{j-1}).bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = caligraphic_T start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( bold_italic_X start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT ) . (11)

構造信号𝑪Ssubscript𝑪𝑆\boldsymbol{C}_{S}bold_italic_C start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPTが与えられた場合、エンコーダー\mathcal{E}caligraphic_E𝑪Ssubscript𝑪𝑆\boldsymbol{C}_{S}bold_italic_C start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPTから高レベル表現𝑹𝑹\boldsymbol{R}bold_italic_Rを抽出する:

𝑹=(𝑪S).𝑹subscript𝑪𝑆\boldsymbol{R}=\mathcal{E}(\boldsymbol{C}_{S}).bold_italic_R = caligraphic_E ( bold_italic_C start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) . (12)

次に、同じプロセスを持つM𝑀Mitalic_M個の変換を含むプロジェクター𝒫𝒫\mathcal{P}caligraphic_Pが、𝑹𝑹\boldsymbol{R}bold_italic_RM𝑀Mitalic_M個の要素を含む注入特徴𝑭𝑭\boldsymbol{F}bold_italic_Fに変換する。これは以下のように表現できる:

𝒫=[𝒫1,𝒫2,𝒫M],𝒫subscript𝒫1subscript𝒫2subscript𝒫𝑀\mathcal{P}=[\mathcal{P}_{1},\mathcal{P}_{2},...\mathcal{P}_{M}],caligraphic_P = [ caligraphic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , caligraphic_P start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … caligraphic_P start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ] , (13)
𝑭=[𝑭1,𝑭2,,𝑭M],𝑭subscript𝑭1subscript𝑭2subscript𝑭𝑀\boldsymbol{F}=[\boldsymbol{F}_{1},\boldsymbol{F}_{2},...,\boldsymbol{F}_{M}],bold_italic_F = [ bold_italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , bold_italic_F start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ] , (14)
𝑭j=𝒫j(𝑹).subscript𝑭𝑗subscript𝒫𝑗𝑹\boldsymbol{F}_{j}=\mathcal{P}_{j}(\boldsymbol{R}).bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = caligraphic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( bold_italic_R ) . (15)

ここで𝒫jsubscript𝒫𝑗\mathcal{P}_{j}caligraphic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT𝒫𝒫\mathcal{P}caligraphic_Pj𝑗jitalic_j変換を表し、𝑹𝑹\boldsymbol{R}bold_italic_R𝑭jsubscript𝑭𝑗\boldsymbol{F}_{j}bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT𝑭𝑭\boldsymbol{F}bold_italic_Fj𝑗jitalic_j番目の要素)に変換する。 ベースモデルに構造的制御を課すために、𝑭jsubscript𝑭𝑗\boldsymbol{F}_{j}bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT𝑿jsubscript𝑿𝑗\boldsymbol{X}_{j}bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTに直接加えることができる:

𝑿j=𝑿j+𝑭j.subscript𝑿𝑗subscript𝑿𝑗subscript𝑭𝑗\boldsymbol{X}_{j}=\boldsymbol{X}_{j}+\boldsymbol{F}_{j}.bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT + bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT . (16)

上記の式を満たすために、𝑭jsubscript𝑭𝑗\boldsymbol{F}_{j}bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTの形状が𝑿jsubscript𝑿𝑗\boldsymbol{X}_{j}bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPTと等しくなるようにする必要がある。 これを達成するために、我々のエンコーダー\mathcal{E}caligraphic_Eとプロジェ

3 Assistant Strategies

3.1 Min-Max Token Strategy

ハードウェア上で効率的な処理を実現するため、深層ニューラルネットワークは通常、バッチ処理された入力でトレーニングされ、トレーニングデータの形状が固定されている。従来の方法では、画像のリサイズまたは画像の固定サイズへのパディングという2つのアプローチを採用している。しかし、両アプローチには欠点がある。例えば、前者は有用な情報を失い、後者は計算効率が低い。 一般に、可変トークン数でのトレーニングには3つの方法がある:Patch n' Pack [dehghani2024patch, yang2024cogvideox]、Bucket Sampler [chen2023pixartalpha, chen2024pixart, opensora]、およびPad-Mask [Lu2024FiT, wang2024fitv2]である。

Patch n' Pack。 この方法は、複数のサンプルをパッキングすることで、固定シーケンス長の制限に対処する。Patch n' Packは新しい最大長を定義し、複数のデータインスタンスからのトークンをこの新しいデータにパッキングする。その結果、元のデータを保持しつつ、任意の解像度でのトレーニングが可能になる。しかし、この方法はモデルコードに大きな侵襲を与えるため、モデルアーキテクチャがまだ安定していない分野では適応が困難である。

Bucket Sampler。 この方法は、異なる解像度のデータをバケットにパッキングし、バケットからバッチをサンプリングして、バッチ内のすべてのデータが同じ解像度を持つようにする。モデルコードへの侵襲は最小限で、主にデータサンプリング戦略の修正が必要である。

Pad-Mask。 この方法は最大解像度を設定し、すべてのデータをこの解像度にパディングし、マスクされた領域からの損失を除外するための対応するマスクを生成する。概念的には単純だが、計算効率が低い。

我々は、現在の動画生成モデルがまだ探索段階にあると考えている。Patch n' Packはモデルコードに大きな侵襲を与え、不必要な開発コストを招く。Pad-maskは計算効率が低く、動画のような密な計算においてリソースを無駄にする。バケット戦略は、モデルコードの変更を必要としないが、トークン数の変動が大きくなる(解像度の種類が増える)につれて損失の振動が大きくなり、トレーニングの不安定性が高くなることを示している。 最大トークンm𝑚mitalic_m、解像度のストライドs𝑠sitalic_s、および可能な解像度比の集合={(r1h,r1w),(r2h,r2w),,(rnh,rnw)}superscriptsubscript𝑟1superscriptsubscript𝑟1𝑤superscriptsubscript𝑟2superscriptsubscript𝑟2𝑤superscriptsubscript𝑟𝑛superscriptsubscript𝑟𝑛𝑤\mathcal{R}=\left\{\left(r_{1}^{h},r_{1}^{w}\right),\left(r_{2}^{h},r_{2}^{w}% \right),\ldots,\left(r_{n}^{h},r_{n}^{w}\right)\right\}caligraphic_R = { ( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ) , ( italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ) , … , ( italic_r start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ) }が与えられた場合、我々は上記の問題に対処するための最小-最大トークン戦略を提案する。 我々は、s=8×2𝑠82s=8\times 2italic_s = 8 × 2がVAEの空間的ダウンサンプリング率とデノイザーの畳み込みストライドの倍数であり、実用的なニーズにおいて5つの一般的な解像度:1111\frac{1}{1}divide start_ARG 1 end_ARG start_ARG 1 end_ARG3434\frac{3}{4}divide start_ARG 3 end_ARG start_ARG 4 end_ARG4343\frac{4}{3}divide start_ARG 4 end_ARG start_ARG 3 end_ARG916916\frac{9}{16}divide start_ARG 9 end_ARG start_ARG 16 end_ARG169169\frac{16}{9}divide start_ARG 16 end_ARG start_ARG 9 end_ARGがあることに注目する。 \mathcal{R}caligraphic_Rの各比率(rih,riw)superscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤\left(r_{i}^{h},r_{i}^{w}\right)( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT )について、 rihsuperscriptsubscript𝑟𝑖r_{i}^{h}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPTriwsuperscriptsubscript𝑟𝑖𝑤r_{i}^{w}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT互いに素の正の整数である必要がある。高さhhitalic_hと幅w𝑤witalic_wh=rihkssuperscriptsubscript𝑟𝑖𝑘𝑠h=r_{i}^{h}\cdot k\cdot sitalic_h = italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_sおよびw=riwks𝑤superscriptsubscript𝑟𝑖𝑤𝑘𝑠w=r_{i}^{w}\cdot k\cdot sitalic_w = italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_sと定義され、ここでk𝑘kitalic_kは決定されるべきスケーリング係数である。総トークン数n𝑛nitalic_nは制約n=hwm𝑛𝑤𝑚n=h\cdot w\leq mitalic_n = italic_h ⋅ italic_w ≤ italic_mを満たす。hhitalic_hw𝑤witalic_wの式を代入すると、以下を得る:

ni=(rihks)(riwks)=rihriwk2s2,subscript𝑛𝑖superscriptsubscript𝑟𝑖𝑘𝑠superscriptsubscript𝑟𝑖𝑤𝑘𝑠superscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤superscript𝑘2superscript𝑠2n_{i}=\left(r_{i}^{h}\cdot k\cdot s\right)\cdot\left(r_{i}^{w}\cdot k\cdot s% \right)=r_{i}^{h}\cdot r_{i}^{w}\cdot k^{2}\cdot s^{2},italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_s ) ⋅ ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_s ) = italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ⋅ italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , (17)

したがって、制約は以下のようになる:

rihriwk2s2m.superscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤superscript𝑘2superscript𝑠2𝑚r_{i}^{h}\cdot r_{i}^{w}\cdot k^{2}\cdot s^{2}\leq m.italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ⋅ italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ≤ italic_m . (18)

両辺の平方根を取り、 k𝑘kitalic_kが整数であることを保証するために、k𝑘kitalic_kの上限結果を得る:

ki=mrihriws2.subscript𝑘𝑖𝑚superscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤superscript𝑠2k_{i}=\left\lfloor\sqrt{\frac{m}{r_{i}^{h}\cdot r_{i}^{w}\cdot s^{2}}}\right\rfloor.italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ⌊ square-root start_ARG divide start_ARG italic_m end_ARG start_ARG italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG ⌋ . (19)

最小トークンn𝑛nitalic_nの集合は以下のように表される:

n=min({rihriwki2s2(rih,riw)}).𝑛conditional-setsuperscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤superscriptsubscript𝑘𝑖2superscript𝑠2superscriptsubscript𝑟𝑖superscriptsubscript𝑟𝑖𝑤n=\min\left(\left\{r_{i}^{h}\cdot r_{i}^{w}\cdot k_{i}^{2}\cdot s^{2}\mid\left% (r_{i}^{h},r_{i}^{w}\right)\in\mathcal{R}\right\}\right).italic_n = roman_min ( { italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ⋅ italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ∣ ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ) ∈ caligraphic_R } ) . (20)

例えば、最大トークンm𝑚mitalic_mは通常、65536(256×256256256256\times 256256 × 256)のような平方根可能な数に設定される。これは1:1のアスペクト比を確実にサポートするためである。これを踏まえて、我々はs=16𝑠16s=16italic_s = 16、およびアスペクト比3:4と9:16を設定する。結果として得られる最小トークンn𝑛nitalic_nは36864(144×256144256144\times 256144 × 256)となる。

上記で議論したように、我々はBucket Samplerと組み合わせた最小-最大トークントレーニングを実装し、カスタムデータサンプラーを使用してグローバルバッチごとに一貫したトークン数を維持する。ただし、グローバルバッチ間でトークン数は変動する。このアプローチにより、NPU/GPUはほぼ同一の計算時間を維持でき、同期オーバーヘッドを削減できる。この方法は、データサンプリングコードをモデルコードから完全に切り離し、マルチ解像度、マルチフレームデータのためのプラグアンドプレイ型サンプリング戦略を提供する。

3.2 Adaptive Gradient Clipping Strategy

{wrapfigure}

r0.48 [Uncaptioned image] 訓練損失のスパイクのプロット。 我々は、固定シードでは再現できない訓練中の損失スパイクを観察した。

分散モデル訓練において、我々は図3.2に示すような損失スパイクをしばしば観察する。これらは、NaNエラーを引き起こすことなく出力品質を著しく低下させる。 典型的なNaNエラーが訓練を中断させるのとは異なり、これらのスパイクは一時的に損失値を増加させ、その後正常なレベルに戻るが、散発的に発生し、モデルのパフォーマンスに悪影響を与える。 これらのスパイクは、VAEエンコーダーからの異常な出力、マルチノード通信の非同期、または大きな勾配ノルムにつながる訓練データの外れ値など、様々な問題から生じる。

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Refer to caption
(e)
Refer to caption
(f)
Refer to caption
(g)
Refer to caption
(h)
図8: 訓練中の異常なイテレーションのログ。 我々はステップ75kで訓練を再開し、ステップ75kから76kまでのログを表示し、ステップ75.6k付近の異常を注記している。 (a) 訓練中の拡散モデルの損失。 (b) ステップごとに破棄された異常なローカルバッチ。 (c) 3シグマ基準に基づいてプロットされた勾配ノルムの上限。 (d) すべてのローカルバッチの中の最大勾配ノルム。 (e) 最大勾配ノルムの分散。ほとんどのステップで0に近い値であることに注意。 (f) 処理されたすべての勾配ノルムの最大値。 (g) 最大勾配ノルムのEMA。 (h) 最大勾配ノルムの分散のEMA。

我々は、勾配クリッピングの適用、オプティマイザーのβ2subscript𝛽2\beta_{2}italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTの調整、学習率の低減など、多くの方法を試みたが、これらのアプローチはいずれも問題を解決せず、ランダムに発生し、固定シードでも再現できない。Playground v3 [liu2024playground]も同様の問題に直面し、勾配ノルムが固定閾値を超えた場合にイテレーションを破棄する方法を採用している。しかし、固定閾値は訓練が進むにつれて減少する勾配ノルムに適応できない可能性がある。そのため、我々は効果的な異常検出のために指数移動平均(EMA)を活用する適応的閾値メカニズムを導入する。我々のアプローチは、訓練の安定性と出力品質を維持しながら、スパイクの影響を軽減する。

gnisubscriptgn𝑖\mathrm{gn}_{i}roman_gn start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTをNPU/GPUi上の勾配ノルムとし、i=1,2,,N𝑖12𝑁i=1,2,\ldots,Nitalic_i = 1 , 2 , … , italic_Nは、N𝑁Nitalic_NがNPU/GPUの総数である。すべてのNPU/GPUにわたる最大勾配ノルムを以下のように定義する:

gnmax=maxi=1Ngni.subscriptgnsuperscriptsubscript𝑖1𝑁subscriptgn𝑖\mathrm{gn}_{\max}=\max_{i=1}^{N}\mathrm{gn}_{i}.roman_gn start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT = roman_max start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT roman_gn start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT . (21)

閾値が訓練のダイナミクスに適応することを確保するために、我々は最大勾配ノルムemagnsubscriptemagn\mathrm{ema}_{\mathrm{gn}}roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPTのEMAとその分散ベースのEMAemavarsubscriptemavar\mathrm{ema}_{\mathrm{var}}roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPTを使用する。これらは以下のように更新される:

emagnsubscriptemagn\displaystyle\mathrm{ema}_{\mathrm{gn}}roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT =αemagn+(1α)gnmax,absent𝛼subscriptemagn1𝛼subscriptgn\displaystyle=\alpha\cdot\mathrm{ema}_{\mathrm{gn}}+(1-\alpha)\cdot\mathrm{gn}% _{\max},= italic_α ⋅ roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT + ( 1 - italic_α ) ⋅ roman_gn start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT , (22)
emavarsubscriptemavar\displaystyle\mathrm{ema}_{\mathrm{var}}roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT =αemavar+(1α)(gnmaxemagn)2,absent𝛼subscriptemavar1𝛼superscriptsubscriptgnsubscriptemagn2\displaystyle=\alpha\cdot\mathrm{ema}_{\mathrm{var}}+(1-\alpha)\cdot\left(% \mathrm{gn}_{\max}-\mathrm{ema}_{\mathrm{gn}}\right)^{2},= italic_α ⋅ roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT + ( 1 - italic_α ) ⋅ ( roman_gn start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT - roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , (23)

ここでα𝛼\alphaitalic_αはEMAの更新率であり、我々はこれを0.99に設定する。3シグマルールに基づいて、各勾配ノルムが異常かどうかを記録できる。これをδisubscript𝛿𝑖\delta_{i}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTで表す:

δi={0, if gniemagn>3emavar1, otherwise .subscript𝛿𝑖cases0 if subscriptgn𝑖subscriptemagn3subscriptemavar1 otherwise \delta_{i}=\begin{cases}0,&\text{ if }\mathrm{gn}_{i}-\mathrm{ema}_{\mathrm{gn% }}>3\cdot\sqrt{\mathrm{ema}_{\mathrm{var}}}\\ 1,&\text{ otherwise }\end{cases}.italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { start_ROW start_CELL 0 , end_CELL start_CELL if roman_gn start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT > 3 ⋅ square-root start_ARG roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL 1 , end_CELL start_CELL otherwise end_CELL end_ROW . (24)

次に、正常な勾配ノルムの数M𝑀Mitalic_Mは、すべてのNPU/GPUの指示関数の合計によって得られる:

M=i=1Nδi.𝑀superscriptsubscript𝑖1𝑁subscript𝛿𝑖M=\sum_{i=1}^{N}\delta_{i}.italic_M = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT . (25)

各NPU/GPUについて、検出結果に基づいて最終的な勾配更新ルールを定義する。NPU/GPUiで異常が検出された場合、そのNPU/GPUの勾配はゼロに設定され、そうでない場合はNM𝑁𝑀\frac{N}{M}divide start_ARG italic_N end_ARG start_ARG italic_M end_ARGを乗じる:

gifinal ={0, if gniemagn>3emavarNMgi, otherwise .superscriptsubscript𝑔𝑖final cases0 if subscriptgn𝑖subscriptemagn3subscriptemavar𝑁𝑀subscript𝑔𝑖 otherwise g_{i}^{\text{final }}=\begin{cases}0,&\text{ if }\mathrm{gn}_{i}-\mathrm{ema}_% {\mathrm{gn}}>3\cdot\sqrt{\mathrm{ema}_{\mathrm{var}}}\\ \frac{N}{M}\cdot g_{i},&\text{ otherwise }\end{cases}.italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT final end_POSTSUPERSCRIPT = { start_ROW start_CELL 0 , end_CELL start_CELL if roman_gn start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT > 3 ⋅ square-root start_ARG roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_N end_ARG start_ARG italic_M end_ARG ⋅ italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , end_CELL start_CELL otherwise end_CELL end_ROW . (26)

勾配を調整した後、NPU/GPU間でall-reduce操作を適用し、残りの非ゼロ勾配を同期する。図8では、移動平均勾配ノルムが異常データにどのように対処するかを示している。図8 (d)と図8 (e)は、ステップ75.6k付近の特定のNPU/GPUでの勾配ノルムの急激な増加を示しており、最大勾配ノルムの移動平均(図8 (c)に示される)を超えている。結果として、このローカルバッチの勾配はゼロに設定される(図8 (b)にログ記録)。我々は、正常に処理されたことを確認するために、破棄後の最大勾配も記録する。最後に、処理された最大勾配ノルム(図8 (f)にログ記録)が、図8 (g)と図8 (h)の最大勾配ノルムの移動平均とその分散を更新する。図8 (a)に示されるように、訓練損失はスパイクなく安定しており、このアプローチが全イテレーションを破棄することなく、異常なバッチが訓練プロセスに影響を与えるのを効果的に防いでいることを示している。

3.3 Prompt Refiner

動画生成モデルの訓練データセットは、ビジョン言語モデル[chen2024far, wang2024qwen2]によって注釈付けされており、シーンやテーマの非常に詳細な説明が提供されている。ほとんどの注釈は、典型的なユーザー入力とは大きく異なる長文のテキストで構成されている。ユーザー入力は一般的に詳細さに欠け、簡潔であり、単語数が少ない(例えば、VBench [vbench]では、ほとんどのテストテキストは30語未満であり、時には5語に満たない)。この不一致により、モデル訓練で使用されるテキスト条件と比較して大きなギャップが生じ、動画の品質、意味的忠実度、動きの振幅が低下する。このギャップに対処し、より短いテキストに直面した際のモデルのパフォーマンスを向上させるために、我々はLLMを導入し、そのテキスト拡張および作成能力を活用して、短い説明文をより詳細な記述に変換する。

データ準備。 我々はGPT-4oを使用して、ペアになった訓練テキストを生成する。具体的なプロンプトを用いてLLMに指示し、詳細な行動、シーンの説明、映画的な言語、照明のニュアンス、環境の雰囲気を補完させる。これらのオリジナルとLLMで拡張されたテキストのペアを使用して、リファイナーモデルを訓練する。具体的には、指示プロンプトは以下の通りである: プロンプト:"プロンプト"を書き直し、主体の説明、行動、シーンの説明を含めてください。(オプション:カメラ言語、光と影、雰囲気)そして、プロンプトをより動的にするために追加の行動を考案し、流暢な文章になるようにしてください。 LLMのファインチューニングのためのデータ構成を表3に示す。具体的には、COCO [lin2014microsoft]は手動で注釈付けされたデータで構成され、JourneyDB [sun2024journeydb]はビジュアル言語モデル(VLM)によって生成されたラベルを含んでいる。

表3: プロンプトリファイナーのファインチューニングに使用されたデータセットの概要。
Source Year Length Manual # Num
COCO [lin2014microsoft] 2014 Short Yes 12k
DiffusionDB [wang2022diffusiondb] 2022 Tags Yes 6k
JourneyDB [sun2024journeydb] 2023 Medium No 3k
Dense Captions (From Internet) 2024 Dense Yes 0.5k

訓練の詳細。 我々はLLaMA 3.1 8B111https://huggingface.co/meta-llama/Llama-3.1-8Bを使用してLoRAファインチューニングを実行し、単一のNPU/GPUで1時間以内に完了する。ファインチューニングは、バッチサイズ32、LoRAランク64で、わずか1エポック実行される。AdamWオプティマイザーを使用し、β1=0.9subscript𝛽10.9\beta_{1}=0.9italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 0.9β2=0.999subscript𝛽20.999\beta_{2}=0.999italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.999、学習率1.5e-4を設定する。

4 Data Curation Pipeline

データセットの品質はモデルの性能と密接に関連している。しかしながら、WebVid [bain2021frozen]、Panda70M [chen2024panda]、VIDAL [zhu2023languagebind]、HD-VILA [xue2022hdvila]などの現在のオープンソースデータセットの一部は、データ品質の面で不十分である。トレーニングにおける過度の低品質データは、モデル学習の勾配方向を乱す。本節では、生データから高品質の動画クリップをフィルタリングするための効率的で構造化されたデータ処理パイプラインを提案する。我々はまた、さらなるデータ拡張のための信頼できる方向性を提供するためにデータセットの統計を提示する。

4.1 Training Data

表4: Open-Sora Plan v1.3のデータカード。 "*"は、オリジナルチームが複数のモデル(OFA [wang2022ofa]、mPLUG-Owl [ye2023mplug]、ChatGPT [openai2023gpt4]を含む)を使用してキャプションを精緻化していることを示す。"{\dagger}"は、我々がQWen2-VLとShareGPT4Videoで生成されたキャプションを公開していないが、オリジナルチームが生成したキャプションを公開していることを示す。
Domain Dataset Source Captioner Data Caption # Num
Available Available
Image SAM SAM LLaVA Yes Yes 11.1M
Anytext Anytext InternVL2 Yes Yes 1.8M
Human LAION InternVL2 Yes Yes 0.1M
Internal - QWen2-VL No No 5.0M
Video VIDAL YouTube Shorts Multi-model Yes Yes 2.8M
Panda70M YouTube QWen2-VL Yes Yes 21.2M
ShareGPT4Video
StockVideo Mixkit QWen2-VL Yes Yes
Pexels ShareGPT4Video 0.8M
Pixabay

4に示すように、我々はPixart-Alpha [chen2023pixartalpha]から1100万の画像-テキストペアを取得し、キャプションはLLaVA [liu2024visual]によって生成された。さらに、我々はOCRデータセットAnytext-3M [tuo2023anytext]を使用し、各画像に対応するOCR文字とペアにした。Anytext-3Mから英語データをフィルタリングし、これは全データセットの約半分を構成している。SAM [kirillov2023segment]データ(Pixart-Alphaで使用)には顔がぼやけた画像が含まれているため、我々はLaion-5B [schuhmann2022laion]から16万枚の高品質画像を選択し、生成における人物関連コンテンツの品質を向上させた。選択基準には、高解像度、高い美的スコア、ウォーターマークの不在、および画像内の人物の存在が含まれる。

動画については、我々のフィルタリングパイプラインを使用してPanda70M [chen2024panda]から約2100万の横向き動画をダウンロードした。縦向きデータについては、VIDAL [zhu2023languagebind]からYouTube Shortsを源とする約300万の縦向き動画を取得した。さらに、Mixkit、Pexels、PixabayなどのCC0ライセンスのウェブサイトから高品質の動画をスクレイピングした。これらのオープンソース動画サイトにはコンテンツ関連のウォーターマークが含まれていない。

4.2 Data Filtering Strategy

表5: 異なるフィルタリングステップの実装詳細と破棄されたデータ数。
Curation Step Tools Thresholds Remaining
Video Slicing - Each video is clipped to 16s 100%
Jump Cut LPIPS [Zhang_Isola_Efros_Shechtman_Wang_2018] 32 \leq frames number \leq 512 97%
Motion Calculation LPIPS [Zhang_Isola_Efros_Shechtman_Wang_2018] 0.001 \leq motion score \leq 0.3 89%
OCR Cropping EasyOCR 0.20 \leq edge 89%
Aesthetic Filtration Laion Aesthetic Predictor v2 4.75 \leq aesthetic score 49%
Low-level Quality Filtration DOVER [wu2023exploring] 0 \leq technical score 44%
Motion Double-Checking LPIPS [Zhang_Isola_Efros_Shechtman_Wang_2018] 0.001 \leq motion score \leq 0.3 42%
  1. 1.

    ビデオスライシング。 過度に長いビデオは入力処理に適さないため、我々はffmpegのコピーストリーム法222https://ffmpeg.org/を利用してビデオを16秒のクリップに分割する。

  2. 2.

    ジャンプカットとモーション計算。 我々は連続するフレーム間の学習された知覚画像パッチ類似性(LPIPS)[Zhang_Isola_Efros_Shechtman_Wang_2018]を計算する。外れ値はカットポイントとして識別され、平均値はモーションを表す。具体的には、我々はdecordライブラリ333https://github.com/dmlc/decordを使用して、スキップを伴ってビデオフレームを効率的に読み取る。ビデオを読み取った後、LPIPS値を計算してフレーム間の意味的類似性のセットl𝑙l\in\mathcal{L}italic_l ∈ caligraphic_Lを取得し、その平均μ𝜇\muitalic_μと分散σ𝜎\sigmaitalic_σを計算する。次に、\mathcal{L}caligraphic_Lのゼロスコアを計算する:𝒵={z=lμσ|l}𝒵conditional-set𝑧𝑙𝜇𝜎𝑙\mathcal{Z}=\{z=\frac{l-\mu}{\sigma}|l\in\mathcal{L}\}caligraphic_Z = { italic_z = divide start_ARG italic_l - italic_μ end_ARG start_ARG italic_σ end_ARG | italic_l ∈ caligraphic_L }。これにより、潜在的な異常インデックスのセット𝒫={i|zi>zthreshold,zi𝒵}𝒫conditional-set𝑖formulae-sequencesubscript𝑧𝑖subscript𝑧𝑡𝑟𝑒𝑠𝑜𝑙𝑑subscript𝑧𝑖𝒵\mathcal{P}=\{i|z_{i}>z_{threshold},z_{i}\in\mathcal{Z}\}caligraphic_P = { italic_i | italic_z start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT > italic_z start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ caligraphic_Z }を得る。さらに、𝒫final={i|[i]>lthresholdor(zi>zthreshold2and[i]>lthreshold2),i𝒫}subscript𝒫𝑓𝑖𝑛𝑎𝑙conditional-set𝑖formulae-sequencedelimited-[]𝑖subscript𝑙𝑡𝑟𝑒𝑠𝑜𝑙𝑑𝑜𝑟subscript𝑧𝑖subscript𝑧𝑡𝑟𝑒𝑠𝑜𝑙𝑑2𝑎𝑛𝑑delimited-[]𝑖subscript𝑙𝑡𝑟𝑒𝑠𝑜𝑙𝑑2𝑖𝒫\mathcal{P}_{final}=\{i|\mathcal{L}[i]>l_{threshold}\ or\ (z_{i}>z_{threshold2% }\ and\ \mathcal{L}[i]>l_{threshold2}),i\in\mathcal{P}\}caligraphic_P start_POSTSUBSCRIPT italic_f italic_i italic_n italic_a italic_l end_POSTSUBSCRIPT = { italic_i | caligraphic_L [ italic_i ] > italic_l start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d end_POSTSUBSCRIPT italic_o italic_r ( italic_z start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT > italic_z start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d 2 end_POSTSUBSCRIPT italic_a italic_n italic_d caligraphic_L [ italic_i ] > italic_l start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d 2 end_POSTSUBSCRIPT ) , italic_i ∈ caligraphic_P }によって異常をフィルタリングし、最終的な異常インデックスのセットを得る。我々の実験に基づき、パラメータをzthreshold=2.0,lthreshold=0.35,zthreshold2=3.2,lthreshold2=0.2formulae-sequencesubscript𝑧𝑡𝑟𝑒𝑠𝑜𝑙𝑑2.0formulae-sequencesubscript𝑙𝑡𝑟𝑒𝑠𝑜𝑙𝑑0.35formulae-sequencesubscript𝑧𝑡𝑟𝑒𝑠𝑜𝑙𝑑23.2subscript𝑙𝑡𝑟𝑒𝑠𝑜𝑙𝑑20.2z_{threshold}=2.0,l_{threshold}=0.35,z_{threshold2}=3.2,l_{threshold2}=0.2italic_z start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d end_POSTSUBSCRIPT = 2.0 , italic_l start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d end_POSTSUBSCRIPT = 0.35 , italic_z start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d 2 end_POSTSUBSCRIPT = 3.2 , italic_l start_POSTSUBSCRIPT italic_t italic_h italic_r italic_e italic_s italic_h italic_o italic_l italic_d 2 end_POSTSUBSCRIPT = 0.2に設定する。我々の方法の有効性を検証するため、2,000本のビデオに対して手動評価を行う。結果は、精度が我々の事前に定めた基準を満たしていることを示している。

  3. 3.

    OCRクロッピング。 我々はEasyOCRを使用して、1秒ごとに1フレームをサンプリングしてビデオ内の字幕を検出する。 一般的なビデオプラットフォームに対する我々の推定に基づくと、字幕は通常エッジ領域に表示され、手動検証では平均してこれらの領域の18%に出現することが示されている。 したがって、我々はビデオの空間サイズ(H,W)𝐻𝑊(H,W)( italic_H , italic_W )の両側の最大クロッピング範囲を20%に設定する。すなわち、クロッピングされたビデオは極端な場合、元のビデオと比較して(0.6H,0.6W)0.6𝐻0.6𝑊(0.6H,0.6W)( 0.6 italic_H , 0.6 italic_W )のサイズと36%の面積を持つ。 その後、設定範囲内に表示される字幕をクロッピングし、中央領域のテキストは未処理のままにする。 我々は、広告、スピーチ、図書館の設定など、特定の文脈で表示されるテキストは妥当であると考える。 要約すると、我々はビデオ内のすべてのテキストをフィルタリングすべきだとは想定していない。なぜなら、特定の文脈では一部の単語が重要性を持つからであり、さらなる判断は美的考慮に委ねる。 OCRステップはテキスト領域のみをクロッピングし、ビデオを破棄しないことに注意する。

  4. 4.

    美的フィルタリング。 我々はLaion美的予測器を使用してビデオの美的スコアを評価する。美的予測器は、ぼやけた、低解像度の、露出過度の、過度に暗い、または顕著な透かしやロゴを含むビデオを効果的にフィルタリングする。我々は4.75のしきい値を設定してビデオをフィルタリングする。この値は広範なテキストを効果的に除去し、高い美的品質を維持する。各ビデオから均一に5フレームをサンプリングし、それらのスコアを平均して最終的な美的スコアを得る。このフィルタリングプロセスにより、人間の美的基準を満たさない約40%のビデオが除外される。

  5. 5.

    低レベル品質フィルタリング。 しかし、一部のデータは高解像度であっても、視覚効果が非常にぼやけていたり、モザイク状に見えることがある。これは2つの要因に起因する:(i) ビデオの低ビットレートまたはDPI。(ii) 24 FPSビデオでのモーションブラー技術の使用。これはフレーム間で画像をぼかすことで動的効果をシミュレートし、より滑らかな視覚的動きをもたらす。これらの絶対的に低品質なビデオに対して、美的フィルタリングは苦戦する。なぜなら、フレームは224の解像度にリサイズされるからである。我々は、視覚的コンテンツに依存しない指標を利用し、圧縮アーティファクト、低ビットレート、時間的ジッターなどの問題に焦点を当てて絶対的なビデオ品質を評価することを目指す。 最終的に、我々はDOVER [wu2023exploring]からの技術的予測スコアを見出し、技術スコアが>\textgreater> 0のビデオを選択する。これにより、5%のビデオがフィルタリングされる。

  6. 6.

    モーションの二重チェック。 我々の事後チェックでは、字幕の変化がモーション値の不正確さにつながる可能性があることを発見した。これは、OCRクロッピングステップがモーション値の検出後に行われるためである。したがって、我々はモーション値を再チェックし、平均フレーム類似性が¯<0.001¯0.001\bar{\mathcal{L}}<0.001over¯ start_ARG caligraphic_L end_ARG < 0.001または¯>0.3¯0.3\bar{\mathcal{L}}>0.3over¯ start_ARG caligraphic_L end_ARG > 0.3のビデオをフィルタリングする。これは2%を占める。

4.3 Data Annotation

密なキャプショニングは各サンプルに追加の意味情報を提供し、モデルがテキストと視覚的特徴の間の特定の対応関係を学習することを可能にする。 拡散学習中に密なキャプションによって監督されることで、モデルは徐々に様々な物体や場面の概念的理解を構築していく。 しかし、密なキャプションの手動アノテーションのコストは法外であるため、大規模な画像-言語モデル[wang2023cogvlm, yao2024minicpm, chen2024far, chen2023sharegpt4v, lin2024moe, liu2024improved, wang2024qwen2]および大規模な動画-言語モデル[lin2023video, chen2024sharegpt4video, wang2024qwen2, xu2024pllava, liu2024ppllava, wang2024tarsier, jin2024chat]が一般的にアノテーションに使用される。 この能力により、モデルは画像および動画生成中により正確に複雑な概念を密なキャプションで表現することができる。

画像については、SAMデータセットにはLLaVAによって生成されたキャプションが利用可能である。Anytextには一部OCRで認識された文字が含まれているが、これらは画像全体を説明するには不十分である。そのため、我々はInternVL2 [chen2024far]とQWen2-VL-7B [wang2024qwen2]を使用して画像のキャプションを生成する。説明はできるだけ詳細で多様なものとする。アノテーションのプロンプトは以下の通りである:この大まかなキャプションを組み合わせて:「{}」、画像を包括的かつ詳細に分析してください。画像内で「{}」が認識できます。

動画については、Open-Sora Plan v1.1などの初期バージョンでは、ShareGPT4Video-7B [chen2024sharegpt4video]を使用して動画の一部にアノテーションを付けている。別の一部はQWen2-VL-7B [wang2024qwen2]でアノテーションを付け、入力プロンプトは以下の通りである:この動画の内容をできるだけ詳細に説明してください。動画内の物体、風景、動物、キャラクター、カメラの動きを含めてください。説明は直接動画の内容から始めてください。動画の内容と発生する変化を時系列順に説明してください。

しかし、7Bキャプションモデルはしばしば「この画像」や「この動画」などのプレフィックスを生成する。我々はそのような無関係な文字列をすべて検索し、削除している。

Refer to caption
(a)
Refer to caption
(b)
図9: (a) 画像データセットの分布統計。1行目はデータの美的スコアの分布、2行目はデータの解像度分布を示している。(b) 動画データセットの分布統計。1行目はデータの継続時間分布、2行目はデータの美的スコア分布、3行目はデータの解像度分布を示している。

4.4 Data Statistics

画像データ。フィルタリングされた画像データは主にAnytext、Human-images、およびSAMを含む。我々は最も頻繁に出現する上位10の解像度をプロットし、美的スコアの分布を示すヒストグラムとともに図9 (a)に示した。 プロットによると、Anytextデータセットは統一された解像度512×512512512512\times 512512 × 512を持っている。対照的に、Human-imagesとSAMデータセットはより多様なスコアと解像度を示している。Human-imagesデータセットはスコアの範囲と複数の解像度を示しており、多様なコンテンツを示唆している一方、SAMは高解像度2250×1500225015002250\times 15002250 × 1500を大きく好む傾向がある。全体として、Anytextは一貫性があり、Human-imagesとSAMは美的スコアと画像解像度の両方でより大きな多様性を提供している。

動画データ。フィルタリングされた動画データは主にPanda70M、VIDAL-10M、および複数のストック動画ウェブサイト(例えば、Pixabay、Pexels、Mixkit)を含む。我々は最も頻繁に出現する上位10の解像度をプロットし、3つのデータセット全体の動画の長さ、美的スコア、および解像度の分布を示すヒストグラムとともに図9 (b)に示した。分布プロットから、Panda70MとVIDAL-10Mの両方が比較的短い平均動画長と比較的低い美的スコアを含んでいることが明らかである。対照的に、ストック動画ウェブサイトからの動画は、より長い長さとより高い美的品質を持つ傾向がある。解像度に関しては、3つのデータセット全体で大多数の動画が1280×72012807201280\times 7201280 × 720であり、VIDAL-10Mは縦型動画データセット(高さ>>>幅)である一方、他の2つのデータセットは主に横型(幅>>>高さ)である。

5 Results

5.1 Wavelet-Flow VAE

6 および図 LABEL:fig:reconstruction は、Allegro [zhou2024allegro]、OD-VAE [chen2024od]、CogVideoX [yang2024cogvideox] を含む複数のオープンソースVAEとの定量的および定性的比較を示している。実験にはPanda70M [Chen_2024_CVPR] およびWebVid-10M [Bain_Nagrani_Varol_Zisserman_2021] データセットを使用している。再構成性能を包括的に評価するため、我々はピーク信号対雑音比(PSNR) [Hore_Ziou_2010]、学習済み知覚画像パッチ類似度(LPIPS) [Zhang_Isola_Efros_Shechtman_Wang_2018]、構造的類似性指標(SSIM) [wang2004image] を主要な評価指標として採用している。さらに、視覚的品質と時間的一貫性を評価するために、再構成フレシェビデオ距離(rFVD) [Unterthiner_Steenkiste_Kurach_Marinier_Michalski_Gelly_2019] を使用している。

6 に示されているように、WF-VAE-Sは512×\times×512解像度の33フレームビデオをエンコードする際に、1秒あたり11.11ビデオのスループットを達成している。このスループットはCV-VAEとOD-VAEをそれぞれ約6×\times×および4×\times×上回っている。メモリコストはこれらのベースラインと比較して約5×\times×および7×\times×削減されており、より優れた再構成品質を達成している。より大規模なWF-VAE-Lモデルでは、エンコーディングスループットがAllegroを7.8×\times×上回り、メモリ使用量が約8×\times×低減されながら、より良い評価指標を維持している。これらの結果は、WF-VAEが最先端の再構成性能を維持しつつ、計算コストを大幅に削減していることを示している。

我々は、表 7 にまとめられているように、最新のオープンソースVAE実装 [yang2024cogvideox, chen2024od] を用いて、損失のあるブロック単位推論が再構成指標に与える影響を評価している。具体的には、Panda70Mデータセットにおいて、ブロック単位推論と直接推論の両条件下でPSNRとLPIPSの観点から再構成性能を測定している。OD-VAEのオーバーラップ融合ベースのタイリング推論は、性能の大幅な低下をもたらす。対照的に、CogVideoXは時間的ブロック単位推論とキャッシングにより、わずかな劣化しか示さない。特筆すべきは、我々が提案する因果キャッシュメカニズムが、直接推論と数値的に同一の再構成結果を提供し、その損失のない再構成能力を確認していることである。

表6: WebVid-10Mデータセットにおける最先端VAEとの定量的比較。再構成指標は256×\times×256解像度の33フレームビデオで評価されている。"T"と"Mem."はそれぞれエンコーディングスループットとメモリコスト(GB)を表し、512×\times×512解像度の33フレームビデオで評価されている。最高結果は太字で、2番目に高い結果は下線で示されている。
Channel Model T\uparrow Mem. \downarrow PSNR\uparrow LPIPS\downarrow rFVD\downarrow
4 CV-VAE 1.85 25.00 30.76 0.0803 369.23
OD-VAE 2.63 31.19 30.69 0.0553 255.92
Allegro 0.71 54.35 32.18 0.0524 209.68
WF-VAE-S(Ours) 11.11 4.70 31.39 0.0517 188.04
WF-VAE-L(Ours) 5.55 7.00 32.32 0.0513 186.00
16 CogVideoX 1.02 35.01 35.76 0.0277 59.83
WF-VAE-L(Ours) 5.55 7.00 35.79 0.0230 54.36
表7: Panda70Mにおけるブロック単位推論による視覚品質劣化の定量的分析。BWIはブロック単位推論を表し、実験は256×\times×256解像度の33フレームで実施されている。で強調された値は直接推論と比較して劣化を示し、で強調された値は品質の保持を示している。
Channel Method BWI PSNR\uparrow LPIPS\downarrow
4 OD-VAE \ding55 30.31 0.0439
\ding51 28.51 (-1.80) 0.0552(+0.011)
WF-VAE-L (Ours) \ding55 32.10 0.0411
\ding51 32.10 (-0.00) 0.0411 (-0.000)
16 CogVideoX \ding55 35.79 0.0198
\ding51 35.41(-0.38) 0.0218(+0.002)
WF-VAE-L (Ours) \ding55 35.87 0.0175
\ding51 35.87 (-0.00) 0.0175 (-0.000)
表8: Open-Sora Planと他の最先端手法との定量的比較。"*"は我々のプロンプトリファイナーを使用して結果を得たことを示す。
Model Size Aesthetic Action Object Spatial Scene Multiple CH GPT4o
Quality Class Objects Score MTScore
OpenSora v1.2 1.2B 56.18 85.8 83.37 67.51 42.47 58.41 51.87 2.50
CogVideoX-2B 1.7B 58.78 89.0 78.00 53.91 38.59 48.48 38.60 3.09
CogVideoX-5B 5.6B 56.46 77.2 76.85 45.89 41.44 46.43 48.45 3.36
Mochi-1 10.0B 56.94 94.6 86.51 69.24 36.99 50.47 28.07 3.76
OpenSoraPlan v1.3 2.7B 59.00 81.8 70.97 44.46 28.56 35.87 71.00 2.64
OpenSoraPlan v1.3 2.7B 60.70 86.4 84.72 49.63 52.92 44.57 68.39 2.95

5.2 Text-to-Video

我々は、VBench [vbench]とChronoMagic-Bench-150 [chronomagic_bench]を用いて、動画生成モデルの品質を評価する。VBenchは動画生成において一般的に使用される指標であり、「動画生成品質」を複数の明確に定義された次元に分解し、詳細かつ客観的な評価を可能にする。しかしながら、多くの指標が過度に詳細であり、モデル間で一様に高いスコアを示すため、参考価値が限られている。そのため、我々は生成されたオブジェクトと人間の動作の意味的忠実性を評価するために、オブジェクトクラス複数オブジェクト、および人間の動作の次元を選択した。美的品質は空間的生成効果を評価するために使用され、空間的関係はモデルの空間関係の理解を反映している。動きの振幅については、VBenchの動き評価指標が不十分と考えられるため、ChronoMagic-Benchを採用した。

8 はOpen-Sora Planと他の最先端モデルの性能を比較している。結果は、Open-Sora Planが動画生成品質において非常に優れた性能を示し、美的品質、滑らかさ、シーン復元の忠実性の点で他のモデルに対して大きな優位性を持っていることを示している。さらに、我々のモデルはテキストプロンプトを自動的に最適化し、生成品質をさらに向上させることができる。

5.3 Condition Controllers

画像から動画への変換。 画像から動画への変換能力は、ベースモデルの性能と初期フレームの品質に大きく依存しており、完全に客観的な評価指標を確立することが課題となっている。 Open-Sora Planの生成能力を示すために、我々は図LABEL:fig:_showcase_i2vに示すようないくつかのショーケースを選択した。これらは、我々のモデルが優れた画像から動画への生成能力とリアルな動きのダイナミクスを示していることを実証している。 さらに、我々は図LABEL:fig:_compre_i2vにおいて、いくつかの最先端手法の画像から動画への結果を比較している。これは、Open-Sora Planが初期フレームのコントロール情報とテキストの間で優れたバランスを取っていることを強調している。我々の手法は、高い視覚的品質を確保しながら意味的一貫性を維持し、他のモデルと比較して優れた表現力を示している。

Refer to caption
図10: 我々の構造コントローラーは、任意のフレームに対応する指定された構造信号によって条件付けられた高品質の動画を生成することができる。

構造から動画への変換。10に示すように、我々の構造条件コントローラーにより、Open-Sora Planのテキストから画像へのモデルは、任意のフレーム(最初のフレーム、数フレーム、全フレーム、など)が与えられた構造信号(キャニー、深度、スケッチ、など)によって正確に制御できる高品質の動画を生成することが可能である。

5.4 Prompt Refiner

{wrapfigure}

r0.5 [Uncaptioned image] VBenchにおけるプロンプトリファイナーの活用に関するアブレーション結果。評価されたビデオは480pで生成されている。 Open-Soraプランは、トレーニング中に相当量の合成ラベルを活用しており、短いプロンプトと比較して密な説明タスクにおいて優れたパフォーマンスを示している。 しかし、評価プロンプトやユーザー入力は往々にして簡潔であり、モデルの真の性能を正確に評価する能力を制限している。 DALL-E 3 [Dalle3]に倣い、我々のプロンプトリファイナーを使用して入力プロンプトを書き換えた評価結果を報告する。

評価中、プロンプトリファイナーを使用した場合、VBench [vbench]のほとんどの指標で顕著な改善が観察された。特に行動の正確さと物体の描写において改善が見られた。図5.4は、プロンプトリファイナーの有効性を視覚的に強調するレーダーチャートを提供している。具体的には、人間の行動生成と空間関係の描写のパフォーマンスが5%以上向上した。単一物体および複数物体の生成における意味的一貫性は、それぞれ15%および10%増加した。さらに、風景生成のスコアは25%向上した。 加えて、我々のプロンプトリファイナーは多言語を英語に翻訳することができ、拡散モデルが英語のトレーニングデータとテキストエンコーダーを活用しつつ、推論時に様々な言語をサポートすることを可能にしている。

6 Limitation and Future Work

6.1 Wavelet-Flow VAE

我々のデコーダーアーキテクチャは[rombach2022high]によって提案された設計に基づいているため、エンコーダーと比較してデコーダーのパラメータ数が多くなっている。計算コストは管理可能な範囲内であるものの、これらの追加パラメータは冗長であると考えられる。したがって、今後の研究では、我々のアーキテクチャの利点を最大限に活用するためにモデルの合理化を計画している。

6.2 Transformer Denoiser

現在のバージョン1.3.0の2Bモデルは、トレーニングの後期段階で性能の飽和を示している。しかし、我々のモデルは物理法則の理解(例えば、牛乳で溢れるカップ、前進する車、歩く人など)において貧弱な性能を示している。そのため、我々は以下の3つの仮説を立てている:

  • 画像と動画の共同トレーニング。 Open-Sora v1.2 [opensora]、EasyAnimate v4 [xu2024easyanimate]、Vchitect-2.0444https://github.com/Vchitect/Vchitect-2.0などのモデルは、画像の重みを直接継承している(Pixart-Sigma [chen2024pixart]、HunyuanDiT [li2024hunyuan]、SD3 [esser2024scaling])ことにより、高品質な動画を容易に生成できる可能性がある。これらのモデルは、2D画像に基づいて時間軸に沿って流れる方法を学習するために、少量の動画データでモデルをトレーニングしている。しかし、我々は1000万レベルのデータのみで画像を一から学習しており、これは十分ではない。Allegro [zhou2024allegro]の最近の研究では、Open-Sora Plan v1.2のT2Iの重みに基づいてより優れたテキストから画像へのモデルを微調整し、テキストから動画への結果を改善している。トレーニング戦略に関して、我々は2つの仮説を持っている:(i) 画像が動画を大幅に上回る割合で、一からの共同トレーニングを開始する;(ii) まず高品質な画像モデルをトレーニングし、その後共同トレーニングを行い、その段階で動画の割合を高くする。学習経路とトレーニングコストを考慮すると、2番目のアプローチはより多くの分離を提供する可能性があるが、1番目のアプローチはスケーリング法則により適合している。

  • モデルのさらなるスケーリングの必要性。 CogVideoX-2B [yang2024cogvideox]とその5Bバリアントの違いを観察することで、5Bモデルが2Bモデルよりも多くの物理法則を理解していることがわかる。 我々は、小規模モデルの設計に過度の労力を費やすよりも、スケーリング法則を活用してこれらの問題を解決する方が効果的である可能性があると推測している。次のバージョンでは、動画生成の限界を探るためにモデルをスケールアップする予定である。 現在、我々は2つの計画を持っている:(i) Deepspeed [rasley2020deepspeed]/FSDP [zhao2023pytorch]アプローチを継続して使用し、EMAとテキストエンコーダーをZero3 [rasley2020deepspeed]でランク間でシャーディングする。これは10-15Bモデルのトレーニングに十分である。(ii) MindSpeed555https://gitee.com/ascend/MindSpeed/Megatron-LM [shoeybi2019megatron]を採用し、様々な並列化戦略を用いて、モデルを30Bまでスケールアップする。

  • トレーニングにおける教師あり損失。 Flow Matching [lipman2022flow]は、Denoising Diffusion Probabilistic Models [ho2020denoising] (DDPM)のタイムステップが0に近づく際の安定性の問題を回避し、ゼロ終端信号対雑音比問題 [lin2024common]に対処している。最近の研究 [opensora, polyak2024movie, esser2024scaling]でも、Flow Matchingの検証損失がモデルが正しい方向に収束しているかどうかを示すことが示されており、これはモデルのトレーニング進捗を評価する上で重要である。フローベースのモデルがv-予測モデルよりも適しているかどうかは、さらなるアブレーション研究が必要である。

モデルとデータのスケールを拡大することに加えて、我々は他の効率的なアルゴリズム実装と改善された評価指標も探求する:

  • より効率的なアーキテクチャの探求。 Skiparse Attentionは計算中のFLOPsを大幅に削減するが、これらの利点はより長いシーケンス長(例えば、480P以上の解像度)でのみ顕著である。ほとんどの事前トレーニングは低い解像度(例えば、約320ピクセル)で行われるため、この段階ではSkiparse Attention操作は望ましい加速率を達成していない。将来的には、この問題に対処するためにより効率的なトレーニング戦略を探求する予定である。

  • より多くの並列化戦略の導入。 Movie Gen [polyak2024movie]では、動画生成モデルのトレーニングを加速するための様々な並列化戦略の役割が強調されている。しかし、Open-Sora Plan v1.3.0は現在、データ並列性(DP)のみを採用している。将来的には、トレーニング効率を向上させるために追加の並列化戦略を探求する予定である。さらに、Skiparse Attentionでは、各トークンは最大で同じ 2k1k22𝑘1superscript𝑘2\frac{2}{k}-\frac{1}{k^{2}}divide start_ARG 2 end_ARG start_ARG italic_k end_ARG - divide start_ARG 1 end_ARG start_ARG italic_k start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG トークンにのみ注意を払えばよく、他のトークンへのアクセスを必要としない。この操作は自然にシーケンス並列化戦略に適している。しかし、このシーケンス並列化のコードにおける効率的な実装は、さらなる探求が必要なトピックである。

  • 信頼性の高い評価指標の確立。 Vbench [vbench]やChronomagic Bench [chronomagic_bench]のような研究が動画モデル出力の評価を自動化するための指標を提案しているが、これらの指標はまだ人間のレビューを完全に置き換えることはできない [polyak2024movie]。人間による評価は労働集約的で大きなコストがかかり、大規模には実現可能性が低い。したがって、より正確で信頼性の高い自動化された指標の開発は今後の研究の重要な分野であり続け、我々はこれを優先的に取り組む予定である。

6.3 Data

我々の訓練データの継続的な改善にもかかわらず、現在のデータセットはデータの多様性、時間的モデリング、動画品質、およびクロスモーダル情報に関して、いくつかの重要な制限に直面している。これらの制限について議論し、将来の研究の方向性を概説する:

  • データの多様性と複雑性の不足。 現在のデータセットは、主に単純な動作、人間の顔、限られた種類の場面などの特定のドメインをカバーしている。Panda70Mから無作為に2,000本の動画をサンプリングし、手動で検証を行ったところ、動いている車を特徴とする動画は1%未満であり、歩いている人々の動画は10本にも満たなかった。動画の約80%は、カメラの前で複数の人物が半身で会話をしているものであった。したがって、我々は、Panda70Mの狭いデータドメインがモデルの多くのシナリオを生成する能力を制限していると推測する。結果として、現実的な人間の動き、物体の変形、複雑な自然環境を含む複雑で動的な場面を生成する能力が欠如している。この制限により、モデルが多様で複雑な動画コンテンツを生成する能力が妨げられている。将来の研究では、より複雑な人間の相互作用や動的な物理効果を含む、より広範な動的かつ現実的な環境を包含するようにデータセットを拡張することに焦点を当てる。この拡張は、モデルの汎化能力を向上させ、高品質で多様な動的動画の生成を促進することを目的としている。

  • カメラの動き、動画スタイル、動きの速度に関するアノテーションの不足。 現在のデータセットには、カメラの動き、動画スタイル、動きの速度など、動画コンテンツの重要な動的側面に関するアノテーションが欠けている。これらのアノテーションは、動画内の多様な視覚的特徴と動きのダイナミクスを捉えるために不可欠である。これらがないと、データセットはこれらの要素の詳細な理解を必要とするタスクを十分にサポートできない可能性があり、モデルが多様な動画コンテンツを扱う能力が制限される。将来の研究では、これらのアノテーションを含めることで、データセットの汎用性を高め、モデルがより文脈的に豊かな動画コンテンツを生成する能力を向上させる。

  • 動画の解像度と品質の制限。 データセットには一般的な解像度(e.g.、720P)の動画が含まれているが、これらの解像度は、詳細な仮想キャラクターや複雑で高忠実度の場面の生成など、高品質の動画生成タスクには不十分である。現在のデータセットの解像度と品質は、細かい詳細や現実的な動的環境を生成する際の制限要因となっている。この制限に対処するため、将来の研究では高解像度の動画(e.g.、1080P、2K)を取り入れることを目指すべきである。これにより、視覚的な詳細さとリアリズムが向上した、より高品質の動画の生成が可能になる。

  • クロスモーダル情報の不足。 データセットは主に動画映像に焦点を当てており、音声やその他の形式のマルチモーダルデータなどの補完的なモダリティが欠けている。このクロスモーダル情報の欠如は、特に音声、感情、または文脈理解を含むタスクにおいて、生成モデルの柔軟性と適用可能性を制限している。将来の研究では、データセットにマルチモーダルデータを統合することに焦点を当てるべきである。これにより、モデルがより豊かで文脈的にニュアンスのあるコンテンツを生成する能力が向上し、生成システム全体のパフォーマンスと汎用性が改善される。

7 Conclusion

本稿では、我々のオープンソースの高品質かつ長時間のビデオ生成プロジェクトであるOpen-Sora Planを提示する。 フレームワークの観点から、我々は全体のビデオ生成モデルをWavelet-Flow変分オートエンコーダー、Joint Image-Video Skiparse Denoiser、および様々な条件コントローラーに分解している。 戦略の観点からは、効率的な訓練のためのmin-maxトークン戦略、勾配の発散を防ぐための適応的勾配クリッピング戦略、そしてより魅力的な結果を得るためのプロンプトリファイナーを慎重に設計している。 さらに、自動的に高品質なデータを活用するための多次元データキュレーションパイプラインを提案している。 我々のOpen-Sora Planは顕著なマイルストーンを達成しているが、高品質ビデオ生成研究分野とオープンソースコミュニティの進展を促進するためにさらなる努力を重ねていく所存である。

Contributors and Acknowledgements

Contributors

Bin Lin111同等の貢献をした主要貢献者, Yunyang Ge111同等の貢献をした主要貢献者, Xinhua Cheng111同等の貢献をした主要貢献者, Zongjian Li, Bin Zhu, Shaodong Wang, Xianyi He, Yang Ye, Shenghai Yuan, Liuhan Chen, Tanghui Jia, Junwu Zhang, Zhenyu Tang, Yatian Pang, Bin She, Cen Yan, Zhiheng Hu, Xiaoyi Dong, Lin Chen, Zhang Pan, Xing Zhou, Shaoling Dong, Yonghong Tian, Li Yuan

Project Lead

Li Yuan

Acknowledgements

我々は、Open-Soraプランプロジェクトに対する貴重な支援を提供してくださったZesen Cheng、Chengshu Zhao、Zongying Lin、Yihang Liu、Ziang Wu、Peng Jin、Hao Liに心から感謝の意を表する。