2.2.2 Skiparse Attention
従来の動画生成手法で広く活用されている2+1Dアテンションは、時間次元に沿ってのみフレーム間の相互作用を計算するため、理論的にも実践的にも動画生成性能を制限している。
2+1Dアテンションと比較して、Full 3Dアテンションは任意の空間的・時間的位置のコンテンツが相互作用できるようにするグローバルな計算を表現しており、この手法は現実世界の物理法則とよく一致する。
しかし、Full 3Dアテンションは時間がかかり非効率的である。視覚情報には冗長性が多く含まれることが多いため、すべての時空間トークン間でアテンションを確立する必要はない。
理想的な時空間モデリングアプローチは、冗長な視覚情報からのオーバーヘッドを最小限に抑えつつ、動的な物理世界の複雑さを捉えるアテンションを採用すべきである。冗長性を減らすにはすべてのトークン間の接続を避ける必要があるが、複雑な物理的相互作用をモデル化するにはグローバルなアテンションが依然として不可欠である。
図4 : Skiparse注意の計算プロセス(例としてスパース比k = 2 𝑘 2 k=2 italic_k = 2 の場合)。我々のSkirparse注意操作では、Single SkipとGroup Skip操作を交互に実行し、各操作で元のサイズと比較してシーケンス長を1 / k 1 𝑘 1/k 1 / italic_k に削減する。
図5 : 異なる注意メカニズムの相互作用シーケンススコープ。様々な注意は、主に注意計算中に選択されるトークンの数と位置が異なる。
計算効率と時空間モデリング能力のバランスを取るため、我々はSkiparse (Skip-Sparse)注意メカニズムを提案する。
Skiparse注意を用いた除噪器は、トランスフォーマーブロック内の元の注意層をSingle Skip とGroup Skip と呼ばれる2つの交互のスパース注意操作に変更するだけである。
スパース比k 𝑘 k italic_k を与えると、注意操作におけるシーケンス長は元の長さと比較して1 k 1 𝑘 \frac{1}{k} divide start_ARG 1 end_ARG start_ARG italic_k end_ARG に減少し、バッチサイズはk 𝑘 k italic_k 倍に増加する。これにより、セルフアテンションの理論的複雑性は1 k 1 𝑘 \frac{1}{k} divide start_ARG 1 end_ARG start_ARG italic_k end_ARG に低下するが、クロスアテンションの複雑性は変わらない。
2つのスキップ操作の計算プロセスを図4 に示す。
Single Skip 操作では、位置[ 0 , k , 2 k , 3 k , … ] 0 𝑘 2 𝑘 3 𝑘 …
[0,k,2k,3k,...] [ 0 , italic_k , 2 italic_k , 3 italic_k , … ] 、[ 1 , k + 1 , 2 k + 1 , 3 k + 1 , … ] 1 𝑘 1 2 𝑘 1 3 𝑘 1 …
[1,k+1,2k+1,3k+1,...] [ 1 , italic_k + 1 , 2 italic_k + 1 , 3 italic_k + 1 , … ] 、…、[ k − 1 , 2 k − 1 , 3 k − 1 , … ] 𝑘 1 2 𝑘 1 3 𝑘 1 …
[k-1,2k-1,3k-1,...] [ italic_k - 1 , 2 italic_k - 1 , 3 italic_k - 1 , … ] にある要素がシーケンスにまとめられる。つまり 、各トークンはk − 1 𝑘 1 k-1 italic_k - 1 間隔で離れたトークンとアテンションを実行する。
Group Skip 操作では、位置[ ( 0 , 1 , … , k − 1 ) , ( k 2 , k 2 + 1 , … , k 2 + k − 1 ) , ( 2 k 2 , 2 k 2 + 1 , … , 2 k 2 + k − 1 ) , … ] 0 1 … 𝑘 1 superscript 𝑘 2 superscript 𝑘 2 1 … superscript 𝑘 2 𝑘 1 2 superscript 𝑘 2 2 superscript 𝑘 2 1 … 2 superscript 𝑘 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 , … , 2 k − 1 ) , ( k 2 + k , k 2 + k + 1 , … , k 2 + 2 k − 1 ) , ( 2 k 2 + k , 2 k 2 + k + 1 , … , 2 k 2 + 2 k − 1 ) , … ] 𝑘 𝑘 1 … 2 𝑘 1 superscript 𝑘 2 𝑘 superscript 𝑘 2 𝑘 1 … superscript 𝑘 2 2 𝑘 1 2 superscript 𝑘 2 𝑘 2 superscript 𝑘 2 𝑘 1 … 2 superscript 𝑘 2 2 𝑘 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 ) , … ] 、…、[ ( k 2 − k , k 2 − k − 1 , … , k 2 − 1 ) , ( 2 k 2 − k , 2 k 2 − k − 1 , … , 2 k 2 − 1 ) , ( 3 k 2 − k , 3 k 2 − k − 1 , … , 3 k 2 − 1 ) , … ] superscript 𝑘 2 𝑘 superscript 𝑘 2 𝑘 1 … superscript 𝑘 2 1 2 superscript 𝑘 2 𝑘 2 superscript 𝑘 2 𝑘 1 … 2 superscript 𝑘 2 1 3 superscript 𝑘 2 𝑘 3 superscript 𝑘 2 𝑘 1 … 3 superscript 𝑘 2 1 …
[(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 𝑘 k italic_k のセグメントにし、次にこれらのグループを k − 1 𝑘 1 k-1 italic_k - 1 グループ間隔で離れた他のグループとシーケンスにまとめる。
例えば、[ ( 0 , 1 , … , k − 1 ) , ( k 2 , k 2 + 1 , … , k 2 + k − 1 ) , ( 2 k 2 , 2 k 2 + 1 , … , 2 k 2 + k − 1 ) , … ] 0 1 … 𝑘 1 superscript 𝑘 2 superscript 𝑘 2 1 … superscript 𝑘 2 𝑘 1 2 superscript 𝑘 2 2 superscript 𝑘 2 1 … 2 superscript 𝑘 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 − 1 𝑘 1 k-1 italic_k - 1 グループオフセットで別のグループと接続され、1つのシーケンスを形成する。
我々は、Group Skip操作と従来のSkip + Window注意の主な違いは、我々の操作がグループ化だけでなくスキップも含んでいることであり、これは以前の試みでは無視されていたことに気付いた。
具体的には、Window注意は隣接するトークンをグループ化するだけで、スキップされたグループを1つのシーケンスに接続することはない。
これらの注意方法の違いを図5 に示す。ここで、濃い色のトークンは1回の注意計算に関与するトークンを表している。
さらに、我々は2+1D DiTの注意がk = H W 𝑘 𝐻 𝑊 k=HW italic_k = italic_H italic_W に対応することに気付いた(T ≪ H W much-less-than 𝑇 𝐻 𝑊 T\ll HW italic_T ≪ italic_H italic_W の場合、Group SkipのSkip操作は効果がない)。一方、Full 3D DiTはk = 1 𝑘 1 k=1 italic_k = 1 に対応する。
Skiparse注意では、k 𝑘 k italic_k は通常1に近い値が選ばれるが、H W 𝐻 𝑊 HW italic_H italic_W よりもはるかに小さい値となり、Skiparse注意はFull 3D注意の効果に近づきつつ計算コストを削減する。
さらに、我々は与えられた注意がFull 3D注意にどれだけ近いかを定量化するために、平均注意距離 (AD avg subscript AD avg \mathrm{AD_{avg}} roman_AD start_POSTSUBSCRIPT roman_avg end_POSTSUBSCRIPT )の概念を提案する。この概念は以下のように定義される:
任意の2つのトークンA&B間の接続を確立するために少なくともm 𝑚 m italic_m 回の注意計算が必要な場合、注意距離A→ → \rightarrow → Bはm 𝑚 m italic_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
画像条件付き生成のための異なるタイプのマスク。黒いマスクは対応するフレームが保持されることを示し、白いマスクはフレームがマスクされることを示す。
学習の詳細。 学習設定については、v-予測、ゼロ終端SNR、min-snr重み付け戦略を含め、テキスト動画変換モデルと同じ設定を採用し、パラメータもテキスト動画変換モデルと一致させている。また、1e-5の一定学習率を持つAdamWオプティマイザーを使用し、256個のNPUでバッチサイズを512に固定して利用している。
我々のインペインティングフレームワークにおける異なるマスクタイプの柔軟性のおかげで、図2.3.1 に示すように、学習タスクの難易度を徐々に上げていく段階的学習戦略を設計している。この戦略により、より滑らかな学習曲線が得られ、モーションの一貫性が向上する。
学習中に使用されるマスクは以下のように設定される:
(1 ) クリア: すべてのフレームを保持。
(2 ) T2V: すべてのフレームを破棄。
(3 ) I2V: 最初のフレームのみを保持し、残りを破棄。
(4 ) 遷移: 最初と最後のフレームのみを保持し、残りを破棄。
(5 ) 継続: 最初のn 𝑛 n italic_n フレームを保持し、残りを破棄。
(6 ) ランダム: ランダムに選択されたn 𝑛 n italic_n フレームを保持し、残りを破棄。
具体的には、我々の段階的学習戦略は2つのステージを含む。ステージ1では、低解像度で複数の単純なタスクを学習する。ステージ2では、より高い解像度で画像動画変換とビデオ遷移タスクを学習する。
ステージ1: 93 × 102400 93 102400 93\times 102400 93 × 102400 (320 × 320 320 320 320\times 320 320 × 320 )内の任意の解像度と持続時間で、フィルタリングされていないモーションと美的に低品質なデータを使用。異なるステップでのタスク比率は以下の通り:
1.
T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも50%のフレームが保持されるようにし、400万サンプルで学習。
2.
T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも25%のフレームが保持されるようにし、400万サンプルで学習。
3.
T2V 10%、継続 40%、ランダム 40%、クリア 10%。継続とランダムマスク中に少なくとも12.5%のフレームが保持されるようにし、400万サンプルで学習。
4.
T2V 10%、継続 25%、ランダム 60%、クリア 5%。継続とランダムマスク中に少なくとも12.5%のフレームが保持されるようにし、400万サンプルで学習。
5.
T2V 10%、継続 25%、ランダム 60%、クリア 5%、800万サンプルで学習。
6.
T2V 10%、継続 10%、ランダム 20%、I2V 40%、遷移 20%、1600万サンプルで学習。
7.
T2V 5%、継続 5%、ランダム 10%、I2V 40%、遷移 40%、1000万サンプルで学習。
ステージ2: 93 × 236544 93 236544 93\times 236544 93 × 236544 内の任意の解像度と持続時間(例:480 × 480 480 480 480\times 480 480 × 480 、640 × 352 640 352 640\times 352 640 × 352 、352 × 640 352 640 352\times 640 352 × 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 𝑀 M italic_M 個のトランスフォーマーブロックを含むと仮定する。
ベースモデルのj 𝑗 j italic_j 番目の1 ≤ j ≤ M 1 𝑗 𝑀 1\leq j\leq M 1 ≤ italic_j ≤ italic_M トランスフォーマーブロック𝒯 j subscript 𝒯 𝑗 \mathcal{T}_{j} caligraphic_T start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT について、その出力は一連のトークン𝑿 j subscript 𝑿 𝑗 \boldsymbol{X}_{j} bold_italic_X start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT であり、以下のように表現できる:
𝑿 j = 𝒯 j ( 𝑿 j − 1 ) . 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)
構造信号𝑪 S subscript 𝑪 𝑆 \boldsymbol{C}_{S} bold_italic_C start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT が与えられた場合、エンコーダーℰ ℰ \mathcal{E} caligraphic_E は𝑪 S subscript 𝑪 𝑆 \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 𝑀 M italic_M 個の変換を含むプロジェクター𝒫 𝒫 \mathcal{P} caligraphic_P が、𝑹 𝑹 \boldsymbol{R} bold_italic_R をM 𝑀 M italic_M 個の要素を含む注入特徴𝑭 𝑭 \boldsymbol{F} bold_italic_F に変換する。これは以下のように表現できる:
𝒫 = [ 𝒫 1 , 𝒫 2 , … 𝒫 M ] , 𝒫 subscript 𝒫 1 subscript 𝒫 2 … subscript 𝒫 𝑀
\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 𝑭 1 subscript 𝑭 2 … subscript 𝑭 𝑀
\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)
ここで𝒫 j subscript 𝒫 𝑗 \mathcal{P}_{j} caligraphic_P start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT は𝒫 𝒫 \mathcal{P} caligraphic_P のj 𝑗 j italic_j 変換を表し、𝑹 𝑹 \boldsymbol{R} bold_italic_R を𝑭 j subscript 𝑭 𝑗 \boldsymbol{F}_{j} bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT (𝑭 𝑭 \boldsymbol{F} bold_italic_F のj 𝑗 j italic_j 番目の要素)に変換する。
ベースモデルに構造的制御を課すために、𝑭 j subscript 𝑭 𝑗 \boldsymbol{F}_{j} bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT を𝑿 j subscript 𝑿 𝑗 \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)
上記の式を満たすために、𝑭 j subscript 𝑭 𝑗 \boldsymbol{F}_{j} bold_italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT の形状が𝑿 j subscript 𝑿 𝑗 \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 𝑚 m italic_m 、解像度のストライドs 𝑠 s italic_s 、および可能な解像度比の集合ℛ = { ( r 1 h , r 1 w ) , ( r 2 h , r 2 w ) , … , ( r n h , r n w ) } ℛ superscript subscript 𝑟 1 ℎ superscript subscript 𝑟 1 𝑤 superscript subscript 𝑟 2 ℎ superscript subscript 𝑟 2 𝑤 … superscript subscript 𝑟 𝑛 ℎ superscript subscript 𝑟 𝑛 𝑤 \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 𝑠 8 2 s=8\times 2 italic_s = 8 × 2 がVAEの空間的ダウンサンプリング率とデノイザーの畳み込みストライドの倍数であり、実用的なニーズにおいて5つの一般的な解像度:1 1 1 1 \frac{1}{1} divide start_ARG 1 end_ARG start_ARG 1 end_ARG 、3 4 3 4 \frac{3}{4} divide start_ARG 3 end_ARG start_ARG 4 end_ARG 、4 3 4 3 \frac{4}{3} divide start_ARG 4 end_ARG start_ARG 3 end_ARG 、9 16 9 16 \frac{9}{16} divide start_ARG 9 end_ARG start_ARG 16 end_ARG 、16 9 16 9 \frac{16}{9} divide start_ARG 16 end_ARG start_ARG 9 end_ARG があることに注目する。
ℛ ℛ \mathcal{R} caligraphic_R の各比率( r i h , r i w ) superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 \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 ) について、
r i h superscript subscript 𝑟 𝑖 ℎ r_{i}^{h} italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT とr i w superscript subscript 𝑟 𝑖 𝑤 r_{i}^{w} italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT は互いに素の正の整数 である必要がある。高さh ℎ h italic_h と幅w 𝑤 w italic_w はh = r i h ⋅ k ⋅ s ℎ ⋅ superscript subscript 𝑟 𝑖 ℎ 𝑘 𝑠 h=r_{i}^{h}\cdot k\cdot s italic_h = italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_s およびw = r i w ⋅ k ⋅ s 𝑤 ⋅ superscript subscript 𝑟 𝑖 𝑤 𝑘 𝑠 w=r_{i}^{w}\cdot k\cdot s italic_w = italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ⋅ italic_k ⋅ italic_s と定義され、ここでk 𝑘 k italic_k は決定されるべきスケーリング係数である。総トークン数n 𝑛 n italic_n は制約n = h ⋅ w ≤ m 𝑛 ⋅ ℎ 𝑤 𝑚 n=h\cdot w\leq m italic_n = italic_h ⋅ italic_w ≤ italic_m を満たす。h ℎ h italic_h とw 𝑤 w italic_w の式を代入すると、以下を得る:
n i = ( r i h ⋅ k ⋅ s ) ⋅ ( r i w ⋅ k ⋅ s ) = r i h ⋅ r i w ⋅ k 2 ⋅ s 2 , subscript 𝑛 𝑖 ⋅ ⋅ superscript subscript 𝑟 𝑖 ℎ 𝑘 𝑠 ⋅ superscript subscript 𝑟 𝑖 𝑤 𝑘 𝑠 ⋅ superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 superscript 𝑘 2 superscript 𝑠 2 n_{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)
したがって、制約は以下のようになる:
r i h ⋅ r i w ⋅ k 2 ⋅ s 2 ≤ m . ⋅ superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 superscript 𝑘 2 superscript 𝑠 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 𝑘 k italic_k が整数であることを保証するために、k 𝑘 k italic_k の上限結果を得る:
k i = ⌊ m r i h ⋅ r i w ⋅ s 2 ⌋ . subscript 𝑘 𝑖 𝑚 ⋅ superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 superscript 𝑠 2 k_{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 𝑛 n italic_n の集合は以下のように表される:
n = min ( { r i h ⋅ r i w ⋅ k i 2 ⋅ s 2 ∣ ( r i h , r i w ) ∈ ℛ } ) . 𝑛 conditional-set ⋅ superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 superscript subscript 𝑘 𝑖 2 superscript 𝑠 2 superscript subscript 𝑟 𝑖 ℎ superscript subscript 𝑟 𝑖 𝑤 ℛ 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 𝑚 m italic_m は通常、65536(256 × 256 256 256 256\times 256 256 × 256 )のような平方根可能な数に設定される。これは1:1のアスペクト比を確実にサポートするためである。これを踏まえて、我々はs = 16 𝑠 16 s=16 italic_s = 16 、およびアスペクト比3:4と9:16を設定する。結果として得られる最小トークンn 𝑛 n italic_n は36864(144 × 256 144 256 144\times 256 144 × 256 )となる。
上記で議論したように、我々はBucket Samplerと組み合わせた最小-最大トークントレーニングを実装し、カスタムデータサンプラーを使用してグローバルバッチごとに一貫したトークン数を維持する。ただし、グローバルバッチ間でトークン数は変動する。このアプローチにより、NPU/GPUはほぼ同一の計算時間を維持でき、同期オーバーヘッドを削減できる。この方法は、データサンプリングコードをモデルコードから完全に切り離し、マルチ解像度、マルチフレームデータのためのプラグアンドプレイ型サンプリング戦略を提供する。
3.2 Adaptive Gradient Clipping Strategy
{wrapfigure}
r0.48
訓練損失のスパイクのプロット。 我々は、固定シードでは再現できない訓練中の損失スパイクを観察した。
分散モデル訓練において、我々は図3.2 に示すような損失スパイクをしばしば観察する。これらは、NaNエラーを引き起こすことなく出力品質を著しく低下させる。
典型的なNaNエラーが訓練を中断させるのとは異なり、これらのスパイクは一時的に損失値を増加させ、その後正常なレベルに戻るが、散発的に発生し、モデルのパフォーマンスに悪影響を与える。
これらのスパイクは、VAEエンコーダーからの異常な出力、マルチノード通信の非同期、または大きな勾配ノルムにつながる訓練データの外れ値など、様々な問題から生じる。
図8 : 訓練中の異常なイテレーションのログ。 我々はステップ75kで訓練を再開し、ステップ75kから76kまでのログを表示し、ステップ75.6k付近の異常を注記している。 (a) 訓練中の拡散モデルの損失。 (b) ステップごとに破棄された異常なローカルバッチ。 (c) 3シグマ基準に基づいてプロットされた勾配ノルムの上限。 (d) すべてのローカルバッチの中の最大勾配ノルム。 (e) 最大勾配ノルムの分散。ほとんどのステップで0に近い値であることに注意。 (f) 処理されたすべての勾配ノルムの最大値。 (g) 最大勾配ノルムのEMA。 (h) 最大勾配ノルムの分散のEMA。
我々は、勾配クリッピングの適用、オプティマイザーのβ 2 subscript 𝛽 2 \beta_{2} italic_β start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT の調整、学習率の低減など、多くの方法を試みたが、これらのアプローチはいずれも問題を解決せず、ランダムに発生し、固定シードでも再現できない。Playground v3 [liu2024playground ] も同様の問題に直面し、勾配ノルムが固定閾値を超えた場合にイテレーションを破棄する方法を採用している。しかし、固定閾値は訓練が進むにつれて減少する勾配ノルムに適応できない可能性がある。そのため、我々は効果的な異常検出のために指数移動平均(EMA)を活用する適応的閾値メカニズムを導入する。我々のアプローチは、訓練の安定性と出力品質を維持しながら、スパイクの影響を軽減する。
gn i subscript gn 𝑖 \mathrm{gn}_{i} roman_gn start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT をNPU/GPUi 上の勾配ノルムとし、i = 1 , 2 , … , N 𝑖 1 2 … 𝑁
i=1,2,\ldots,N italic_i = 1 , 2 , … , italic_N は、N 𝑁 N italic_N がNPU/GPUの総数である。すべてのNPU/GPUにわたる最大勾配ノルムを以下のように定義する:
gn max = max i = 1 N gn i . subscript gn superscript subscript 𝑖 1 𝑁 subscript gn 𝑖 \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)
閾値が訓練のダイナミクスに適応することを確保するために、我々は最大勾配ノルムema gn subscript ema gn \mathrm{ema}_{\mathrm{gn}} roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT のEMAとその分散ベースのEMAema var subscript ema var \mathrm{ema}_{\mathrm{var}} roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT を使用する。これらは以下のように更新される:
ema gn subscript ema gn \displaystyle\mathrm{ema}_{\mathrm{gn}} roman_ema start_POSTSUBSCRIPT roman_gn end_POSTSUBSCRIPT
= α ⋅ ema gn + ( 1 − α ) ⋅ gn max , absent ⋅ 𝛼 subscript ema gn ⋅ 1 𝛼 subscript gn \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)
ema var subscript ema var \displaystyle\mathrm{ema}_{\mathrm{var}} roman_ema start_POSTSUBSCRIPT roman_var end_POSTSUBSCRIPT
= α ⋅ ema var + ( 1 − α ) ⋅ ( gn max − ema gn ) 2 , absent ⋅ 𝛼 subscript ema var ⋅ 1 𝛼 superscript subscript gn subscript ema gn 2 \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)
ここでα 𝛼 \alpha italic_α はEMAの更新率であり、我々はこれを0.99に設定する。3シグマルールに基づいて、各勾配ノルムが異常かどうかを記録できる。これをδ i subscript 𝛿 𝑖 \delta_{i} italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT で表す:
δ i = { 0 , if gn i − ema gn > 3 ⋅ ema var 1 , otherwise . subscript 𝛿 𝑖 cases 0 if subscript gn 𝑖 subscript ema gn ⋅ 3 subscript ema var 1 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 𝑀 M italic_M は、すべてのNPU/GPUの指示関数の合計によって得られる:
M = ∑ i = 1 N δ i . 𝑀 superscript subscript 𝑖 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の勾配はゼロに設定され、そうでない場合はN M 𝑁 𝑀 \frac{N}{M} divide start_ARG italic_N end_ARG start_ARG italic_M end_ARG を乗じる:
g i final = { 0 , if gn i − ema gn > 3 ⋅ ema var N M ⋅ g i , otherwise . superscript subscript 𝑔 𝑖 final cases 0 if subscript gn 𝑖 subscript ema gn ⋅ 3 subscript ema var ⋅ 𝑁 𝑀 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 : プロンプトリファイナーのファインチューニングに使用されたデータセットの概要。
訓練の詳細。
我々はLLaMA 3.1 8Bを使用してLoRAファインチューニングを実行し、単一のNPU/GPUで1時間以内に完了する。ファインチューニングは、バッチサイズ32、LoRAランク64で、わずか1エポック実行される。AdamWオプティマイザーを使用し、β 1 = 0.9 subscript 𝛽 1 0.9 \beta_{1}=0.9 italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 0.9 、β 2 = 0.999 subscript 𝛽 2 0.999 \beta_{2}=0.999 italic_β 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で生成されたキャプションを公開していないが、オリジナルチームが生成したキャプションを公開していることを示す。
表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: 異なるフィルタリングステップの実装詳細と破棄されたデータ数。
1.
ビデオスライシング。
過度に長いビデオは入力処理に適さないため、我々はffmpegのコピーストリーム法を利用してビデオを16秒のクリップに分割する。
2.
ジャンプカットとモーション計算。
我々は連続するフレーム間の学習された知覚画像パッチ類似性(LPIPS)[Zhang_Isola_Efros_Shechtman_Wang_2018 ] を計算する。外れ値はカットポイントとして識別され、平均値はモーションを表す。具体的には、我々はdecordライブラリを使用して、スキップを伴ってビデオフレームを効率的に読み取る。ビデオを読み取った後、LPIPS値を計算してフレーム間の意味的類似性のセットl ∈ ℒ 𝑙 ℒ l\in\mathcal{L} italic_l ∈ caligraphic_L を取得し、その平均μ 𝜇 \mu italic_μ と分散σ 𝜎 \sigma italic_σ を計算する。次に、ℒ ℒ \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 | z i > z t h r e s h o l d , z i ∈ 𝒵 } 𝒫 conditional-set 𝑖 formulae-sequence subscript 𝑧 𝑖 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 } を得る。さらに、𝒫 f i n a l = { i | ℒ [ i ] > l t h r e s h o l d o r ( z i > z t h r e s h o l d 2 a n d ℒ [ i ] > l t h r e s h o l d 2 ) , i ∈ 𝒫 } subscript 𝒫 𝑓 𝑖 𝑛 𝑎 𝑙 conditional-set 𝑖 formulae-sequence ℒ delimited-[] 𝑖 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 } によって異常をフィルタリングし、最終的な異常インデックスのセットを得る。我々の実験に基づき、パラメータをz t h r e s h o l d = 2.0 , l t h r e s h o l d = 0.35 , z t h r e s h o l d 2 = 3.2 , l t h r e s h o l d 2 = 0.2 formulae-sequence subscript 𝑧 𝑡 ℎ 𝑟 𝑒 𝑠 ℎ 𝑜 𝑙 𝑑 2.0 formulae-sequence subscript 𝑙 𝑡 ℎ 𝑟 𝑒 𝑠 ℎ 𝑜 𝑙 𝑑 0.35 formulae-sequence subscript 𝑧 𝑡 ℎ 𝑟 𝑒 𝑠 ℎ 𝑜 𝑙 𝑑 2 3.2 subscript 𝑙 𝑡 ℎ 𝑟 𝑒 𝑠 ℎ 𝑜 𝑙 𝑑 2 0.2 z_{threshold}=2.0,l_{threshold}=0.35,z_{threshold2}=3.2,l_{threshold2}=0.2 italic_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.
OCRクロッピング。 我々はEasyOCRを使用して、1秒ごとに1フレームをサンプリングしてビデオ内の字幕を検出する。
一般的なビデオプラットフォームに対する我々の推定に基づくと、字幕は通常エッジ領域に表示され、手動検証では平均してこれらの領域の18%に出現することが示されている。
したがって、我々はビデオの空間サイズ( H , W ) 𝐻 𝑊 (H,W) ( italic_H , italic_W ) の両側の最大クロッピング範囲を20%に設定する。すなわち 、クロッピングされたビデオは極端な場合、元のビデオと比較して( 0.6 H , 0.6 W ) 0.6 𝐻 0.6 𝑊 (0.6H,0.6W) ( 0.6 italic_H , 0.6 italic_W ) のサイズと36%の面積を持つ。
その後、設定範囲内に表示される字幕をクロッピングし、中央領域のテキストは未処理のままにする。
我々は、広告、スピーチ、図書館の設定など、特定の文脈で表示されるテキストは妥当であると考える。
要約すると、我々はビデオ内のすべてのテキストをフィルタリングすべきだとは想定していない。なぜなら、特定の文脈では一部の単語が重要性を持つからであり、さらなる判断は美的考慮に委ねる。
OCRステップはテキスト領域のみをクロッピングし、ビデオを破棄しないことに注意する。
4.
美的フィルタリング。 我々はLaion美的予測器を使用してビデオの美的スコアを評価する。美的予測器は、ぼやけた、低解像度の、露出過度の、過度に暗い、または顕著な透かしやロゴを含むビデオを効果的にフィルタリングする。我々は4.75のしきい値を設定してビデオをフィルタリングする。この値は広範なテキストを効果的に除去し、高い美的品質を維持する。各ビデオから均一に5フレームをサンプリングし、それらのスコアを平均して最終的な美的スコアを得る。このフィルタリングプロセスにより、人間の美的基準を満たさない約40%のビデオが除外される。
5.
低レベル品質フィルタリング。 しかし、一部のデータは高解像度であっても、視覚効果が非常にぼやけていたり、モザイク状に見えることがある。これは2つの要因に起因する:(i) ビデオの低ビットレートまたはDPI。(ii) 24 FPSビデオでのモーションブラー技術の使用。これはフレーム間で画像をぼかすことで動的効果をシミュレートし、より滑らかな視覚的動きをもたらす。これらの絶対的に低品質なビデオに対して、美的フィルタリングは苦戦する。なぜなら、フレームは224の解像度にリサイズされるからである。我々は、視覚的コンテンツに依存しない指標を利用し、圧縮アーティファクト、低ビットレート、時間的ジッターなどの問題に焦点を当てて絶対的なビデオ品質を評価することを目指す。
最終的に、我々はDOVER [wu2023exploring ] からの技術的予測スコアを見出し、技術スコアが> \textgreater > 0のビデオを選択する。これにより、5%のビデオがフィルタリングされる。
6.
モーションの二重チェック。 我々の事後チェックでは、字幕の変化がモーション値の不正確さにつながる可能性があることを発見した。これは、OCRクロッピングステップがモーション値の検出後に行われるためである。したがって、我々はモーション値を再チェックし、平均フレーム類似性がℒ ¯ < 0.001 ¯ ℒ 0.001 \bar{\mathcal{L}}<0.001 over¯ start_ARG caligraphic_L end_ARG < 0.001 またはℒ ¯ > 0.3 ¯ ℒ 0.3 \bar{\mathcal{L}}>0.3 over¯ 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キャプションモデルはしばしば「この画像」や「この動画」などのプレフィックスを生成する。我々はそのような無関係な文字列をすべて検索し、削除している。
図9 : (a) 画像データセットの分布統計。1行目はデータの美的スコアの分布、2行目はデータの解像度分布を示している。 (b) 動画データセットの分布統計。1行目はデータの継続時間分布、2行目はデータの美的スコア分布、3行目はデータの解像度分布を示している。
4.4 Data Statistics
画像データ。 フィルタリングされた画像データは主にAnytext、Human-images、およびSAMを含む。我々は最も頻繁に出現する上位10の解像度をプロットし、美的スコアの分布を示すヒストグラムとともに図9 (a)に示した。
プロットによると、Anytextデータセットは統一された解像度512 × 512 512 512 512\times 512 512 × 512 を持っている。対照的に、Human-imagesとSAMデータセットはより多様なスコアと解像度を示している。Human-imagesデータセットはスコアの範囲と複数の解像度を示しており、多様なコンテンツを示唆している一方、SAMは高解像度2250 × 1500 2250 1500 2250\times 1500 2250 × 1500 を大きく好む傾向がある。全体として、Anytextは一貫性があり、Human-imagesとSAMは美的スコアと画像解像度の両方でより大きな多様性を提供している。
動画データ。 フィルタリングされた動画データは主にPanda70M、VIDAL-10M、および複数のストック動画ウェブサイト(例えば 、Pixabay、Pexels、Mixkit)を含む。我々は最も頻繁に出現する上位10の解像度をプロットし、3つのデータセット全体の動画の長さ、美的スコア、および解像度の分布を示すヒストグラムとともに図9 (b)に示した。分布プロットから、Panda70MとVIDAL-10Mの両方が比較的短い平均動画長と比較的低い美的スコアを含んでいることが明らかである。対照的に、ストック動画ウェブサイトからの動画は、より長い長さとより高い美的品質を持つ傾向がある。解像度に関しては、3つのデータセット全体で大多数の動画が1280 × 720 1280 720 1280\times 720 1280 × 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フレームで実施されている。赤 で強調された値は直接推論と比較して劣化を示し、緑 で強調された値は品質の保持を示している。
表8 : Open-Sora Planと他の最先端手法との定量的比較。"*"は我々のプロンプトリファイナーを使用して結果を得たことを示す。
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が初期フレームのコントロール情報とテキストの間で優れたバランスを取っていることを強調している。我々の手法は、高い視覚的品質を確保しながら意味的一貫性を維持し、他のモデルと比較して優れた表現力を示している。
図10 : 我々の構造コントローラーは、任意のフレームに対応する指定された構造信号によって条件付けられた高品質の動画を生成することができる。
構造から動画への変換。
図10 に示すように、我々の構造条件コントローラーにより、Open-Sora Planのテキストから画像へのモデルは、任意のフレーム(最初のフレーム、数フレーム、全フレーム、など )が与えられた構造信号(キャニー、深度、スケッチ、など )によって正確に制御できる高品質の動画を生成することが可能である。
5.4 Prompt Refiner
{wrapfigure}
r0.5
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.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) 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では、各トークンは最大で同じ 2 k − 1 k 2 2 𝑘 1 superscript 𝑘 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 Lin, Yunyang Ge, Xinhua Cheng, 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
Acknowledgements
我々は、Open-Soraプランプロジェクトに対する貴重な支援を提供してくださったZesen Cheng、Chengshu Zhao、Zongying Lin、Yihang Liu、Ziang Wu、Peng Jin、Hao Liに心から感謝の意を表する。