dskjal
広告
広告

Stable Video Infinity のエラーリサイクリングファインチューニングとは何か

カテゴリ:deeplearning

vita-epfl/Stable-Video-Infinity

この論文の考え方はとても重要だ。既存の生成 AI は推論時にエラーが発生するにも関わらず、学習時には推論エラーがないものとして学習していた。なので推論が長くなるとエラーが蓄積し出力が劣化する。これは動画だけでなく LLM でも同様の現象が起こる。

エラーリサイクリングファインチューニングは意図的にモデルの推論エラーを学習データに注入することで、モデルに自己修正能力を持たせるファインチューニング手法だ。

既存技術

従来の動画生成 AI のエラー修正技術は以下の3つに分けられる。

  1. ノイズ補正:ノイズを増やすかノイズスケジューラーを調整する
  2. フレームアンカー:参照画像を入力する
  3. サンプリングの改善:マスクーノイズガイダンス(Song et al., 2025) や アンチドリフトサンプリング(Zhang & Agrawala, 2025)

これらの技術は以下の制限がある:

  1. 動画が短くなる
  2. モーションに繰り返しが多くなる

動画生成 AI のエラーは主にボケとカラーシフトで、これは従来の拡散モデルでうまく修正できる。にもかかわらず動画生成 AI はなぜこれらのエラーを修正できないのか?

従来の動画生成 AI の学習の問題点

動画生成 AI の学習動画にはエラーがない。しかし動画生成時にはエラーが含まれる。

逆に動画修正 AI は学習動画にエラーを注入して学習が行われる(その代わりに生成はできない)。

そこで、動画生成 AI の学習時に発生した推論エラーをフィードバックして、動画生成 AI 自身に自己回帰エラーを修正させるというアイデアが出てくる。

Stable Video Infinity の概要

Stable Video Infinity は既存の動画生成 AI をファインチューニングしてエラー耐性を付けさせる技術だ。

Stable Video Infinity で採用されている「エラーリサイクリングファインチューニング」は学習時にノイズに加えて、蓄積された推論エラーも注入することでエラー耐性を付けさせる。この手法の利点は3つある。

  1. ファインチューンに要求されるデータ数が少ない
  2. 通常の学習に必要なリソースしか必要とされない
  3. オーディオやスケルトンのような制御シグナルもサポート可能

長尺動画学習時のエラーゼロ仮説

表記

学習時のエラーなしフローマッチング

\[ \large{ \begin{split} \mathcal{L} &= \mathbb{E}_{ X_{\mathrm{noi}, X_{\mathrm{vid}}, X_{\mathrm{img}}, C, t }} | u(X_t, X_{\mathrm{img}}, C, t;\theta) - V_t |^2 \\ X_t &=t\cdot X_{\mathrm{vid}} + (1-t)\cdot X_{\mathrm{noi}} \; \mathrm{は中間ステート}\\ \hat{V_t} &= u(X_t, X_{\mathrm{img}}, C, t;\theta) \; \mathrm{はモデル} \theta \mathrm{を使った予測速度} \\ V_t &= \dfrac{dX_t}{dt} = X_{\mathrm{vid}} - X_{\mathrm{noi}} \; は ground-truth \end{split} }\]

生成時

ノイズ $X_0$ から$N_{\mathrm{test}}$ 回サンプルサンプルして、t = 1, $X_1 = X_{\mathrm{vid}}$ のとき潜在空間動画が得られる。実際はサンプリング間隔を離散化して ODE ソルバーに step-wise integration を適用する:

\[ \large{ X_{t_{k+1}} = X_{t_{k}} + (t_{k+1} - t_k) \cdot u(X_{t_{k}}, X_{\mathrm{img}}, t_k;\theta) }\]

$k < N_{\mathrm{test}} - 1$ で、 $X_{t_{k+1}}$ は次のステップの生成。

エラーで劣化した推論――長尺動画生成の場合

学習時のエラーゼロ仮説が原因で以下の2つのタイプのエラーが発生する。

1. ひとつのクリップ内の予測エラー

推論時には当然エラーが混入する。平均二乗誤差(MSE)の回帰的性質により、この誤差は永続する。

このシングルクリップサンプリングエラーを $E = \hat{X}_{\mathrm{vid}} - X_{\mathrm{vid}}$ で表記する。

シングルクリップサンプリングエラーは短尺の動画では無視できる。

2. クリップ間の分布外(Conditional)エラー

学習時には常に ground-truth の動画が使われるが、推論時にはそうではない。推論時にモデルは学習分布外のエラー混入データからサンプリングをする必要がある。これはモデルを困惑させる。

エラーの蓄積

これら両方のエラーは蓄積し強化しあう。予測エラーが分布外エラーを引き起こし、分布外エラーが予測エラーを悪化させる。

エラーリサイクリングファインチューニング

モデルの入力に推論エラーを追加して学習させることでエラー耐性をつけさせる。損失は:

\[ \large{ \begin{split} \mathcal{L}_{\mathrm{SVI}} &= \mathbb{E}_{ \tilde{X}_{\mathrm{vid}}, \tilde{X}_{\mathrm{noi}}, \tilde{X}_{\mathrm{img}}, C, t } | u(\tilde{X}_t, \tilde{X}_{\mathrm{img}}, C, t;\theta) - V_t^{\mathrm{rcy}} |^2 \\ V_t^{\mathrm{rcy}} &= X_{\mathrm{vid}} - \tilde{X}_{\mathrm{noi}} \\ \tilde{X}_t &= t\tilde{X}_{\mathrm{vid}} + (1-t)\tilde{X}_{\mathrm{noi}} \end{split} }\]

$V_t^{\mathrm{rcy}}$ はエラーリサイクル込みの予測速度、$\tilde{X}_t$ はエラー注入された潜在ノイズ。

この学習は閉ループファインチューニングでできる:

  1. DiT で作成したエラーを注入
  2. エラーの計算と保存
  3. 動的にこのエラーを保存し新しい入力のために使う
  4. 予測速度を最適化

エラーリサイクリングファインチューニングの詳細

記号

エラーの注入

エラーなしの入力をそれぞれ $X_{\mathrm{vid}}, X_{\mathrm{noi}}, X_{\mathrm{img}}$ とし、エラー注入後のデータを以下のように表記する:

\[ \large{ \begin{split} \tilde{X}_{\mathrm{vid}} &= X_{\mathrm{vid}} + \mathbb{I}_{\mathrm{vid}} \cdot E_{\mathrm{vid}} \\ \tilde{X}_{\mathrm{noi}} &= X_{\mathrm{noi}} + \mathbb{I}_{\mathrm{noi}} \cdot E_{\mathrm{noi}} \\ \tilde{X}_{\mathrm{img}} &= X_{\mathrm{img}} + \mathbb{I}_{\mathrm{img}} \cdot E_{\mathrm{img}} \end{split} }\]

確率 $p_*$ で $\mathbb{I}_*$、それ以外は 0。ランダムにエラーを注入する。エラーは注入するかしないかであり、ブレンドはしない。p = 0.5 を使用。

双方向のエラーの収集

$\hat {V}_t$ が与えられたとき、効率的にエラーを計算するために双方向のシングルステップ積分(integration)によってエラーを含んだ予測の近似を行う。フルの ODE を解くのがコスト的に現実的ではないのでこの近似を行う。

要はモデルの出力は速度ベクトルなので、このベクトルを残りのステップ数倍して現在のノイズ動画と足せば、最終的な動画の近似が得られる。それと教師動画とを引き算したものがエラー E。

$\hat {V}_t$ を現在のステップ数倍して現在のノイズ動画から引けば、近似初期エラーが計算できる。

近似動画・近似初期ノイズの計算

エラーが注入されたノイジーな潜在動画 $\tilde{X}_t$ とモデルの出力した予測ベクトル $\hat {V}_t$ がある。近似された潜在動画と初期ノイズとは以下の式で計算できる:

\[ \large{ \begin{split} \hat{X}_{\mathrm{vid}} &= \tilde{X}_t + \int_t^1 \hat{V}_s ds \\ \hat{X}_{\mathrm{noi}}^{\mathrm{img}} &= \tilde{X}_t - \int_0^t \hat{V}_s ds \\ X_{\mathrm{noi}}^{\mathrm{rcy}} &= \tilde{X}_t - \int_0^t V^{\mathrm{rcy}}_s ds \\ \end{split} }\]

エラーベクトルの計算

注入されたノイズがない場合

これはシングルクリップの予測エラーをシミュレートしている。

スタート地点でエラーが注入された場合

これはクリップ間の分布外(Conditional)エラーをシミュレートしている。

終了地点にエラーが注入された場合

これは両方のエラーが同時に起こった状況をシミュレートしている。

エラーリプレイメモリ

$E_{\mathrm{vid}}$ と $E_{\mathrm{noi}}$ をそれぞれタイムステップに対応させて、$\mathcal{B}_{\mathrm{vid}}$ と $\mathcal{B}_{\mathrm{noi}}$ とに保存する。VRAM を節約するためこのバンクのサイズは 500 程度に制限した。


広告
広告

カテゴリ