618ZXW

トレーニング不要の DiT アクセラレーション! Meta は、ビデオを 2.6 倍高速に生成する新しい適応型キャッシュ方式を提案します。

今では、ビデオ生成モデルはトレーニングなしでも高速化できるのでしょうか?

Meta は、追加のトレーニングを必要とせずに DiT モデルを高速化できるAdaCache という新しい方法を提案しました (プラグ アンド プレイ)。

早速、加速を体験してみましょう(右端)。

ご覧のとおり、他の方法と比較すると、AdaCache はほぼ同じ品質のビデオを生成しますが、生成速度は2.61 倍高速です。

AdaCache は、 「すべてのビデオが同じように重要なわけではない」という考えから生まれたと考えられています。

それは何を意味するのでしょうか?研究チームは次のことを発見しました。

一部のビデオでは、適切な品質を達成するために必要なノイズ低減手順が他のビデオよりも少なくなります。

そこで、チームはDiTを高速化する際に「オンデマンド割り当てと動的調整」に着目し、キャッシュと計算割り当てを制御するコンテンツベースのキャッシュスケジューリングとモーション正規化(MoReg)を提案しています。

この技術は現在GitHubでオープンソース化されており、単一のA100(80G)GPUで実行できるため、ネットユーザーからは次のような驚きの声が上がっている。

速度が2~4倍になったようです。MetaのおかげでオープンソースAIが再び素晴らしいものになりました!

すべてのビデオが同じように重要なわけではありません。

以下、この研究について詳しく紹介します。

一言でまとめると、Open-Sora を AdaCache あり、なしのどちらにしても、AdaCache を使用するとビデオ生成速度が 4.7 倍になります。

質量はほぼ同じで、前進速度と後進速度は 419.60 秒から 89.53 秒に減少しました。

これは具体的にどのように実現されるのでしょうか?

よく知られているように、DiT (Diffusion Transformers) は拡散モデルと Transformer アーキテクチャの利点を組み合わせ、ノイズからデータへの拡散プロセスをシミュレートすることで高品質の画像やビデオを生成できます。

しかし、DiTには欠点がないわけではありません。OpenAIがSora(Soraを支える技術基盤の一つとして大きな注目を集めています)をリリースして以来、DiTの改善に向けた継続的な取り組みが行われています。

たとえば、Meta によるこの調査は、DiT のよく知られた問題点を対象としています。

大規模なモデルと計算集約型の注意メカニズムに依存すると、推論速度が低下します

詳しく説明すると

まず、研究チームは調査の中で、一部のビデオでは、妥当な品質を達成するために必要なノイズ除去の手順が他のビデオよりも少ないことを発見しました。

彼らは、異なるノイズ除去手順における Open-Sora に基づくさまざまなビデオ シーケンスの安定性と品質の変化を実証しました。

ノイズ除去のステップ数を徐々に減らしていくと、ビデオシーケンスごとに「ブレークポイント」(つまり、品質が著しく低下し始めるステップ数)が異なることがわかりました。また、右側のヒストグラムには、異なるステップでの特徴の変化の大きさも示されています。

このことから、チームは「すべてのビデオが同じように重要というわけではない」と考えるようになりました。

つまり、各ビデオに異なるキャッシュと計算の割り当てを適用して、リソースを節約できます。

そのため、Meta は AdaCache (アダプティブ キャッシュ) と呼ばれる新しいキャッシュ方法を導入しました。その中核となるのは次の点です。

ビデオが生成されるたびに、AdaCache はビデオの特定のコンテンツに応じてキャッシュ リソースを割り当て、さまざまなビデオのキャッシュ要件を最適なレベルに動的に調整します。

そのアーキテクチャは以下の図に示されており、詳細は後述します。

左側では、AdaCache は DiT の元の拡散プロセスを複数のステップに分割し、各ステップで残差計算を実行して新しい表現を生成します。

これらの新しい表現は、毎回再計算する必要がなく後続のステップで再利用できるため、計算リソースを大幅に節約できます。

このプロセス中、研究では距離メトリック (ct) を使用して、現在の表現と以前にキャッシュされた表現間の変化の大きさを判定しました。

変更が小さい場合は、キャッシュを直接使用して計算を節約できます。変更が大きい場合は、再計算が必要になります。

右側にはDiT の内部計算プロセスが表示されており、空間時間的注意 (STA)、交差注意 (CA)、多層パーセプトロン (MLP) の 3 つのモジュールを確認できます。

各ステップで生成される新しい表現 (ft+k や ft など) は、キャッシュ内の残差を使用して更新されるため、繰り返し計算の回数が削減されます。

つまり、この戦略により、ビデオ コンテンツの複雑さと変化率に基づいてコンピューティング リソースを動的に割り当てることができるようになります。

さらに、AdaCache をさらに改善するために、チームは計算の割り当てを制御するMotion Regularization (MoReg)を導入しました。

ビデオ固有のモーション情報を考慮してキャッシュ戦略を最適化します。

チームは、ビデオ内の動きの量が、最適なノイズ除去ステップ数を決定する上で非常に重要であることを発見しました。通常、動きの多いコンテンツでは、生成されるコンテンツの品質を確保するために、より多くのノイズ除去ステップが必要になります。

これに基づいて、MoRegの中心的なアイデアは次のとおりです。

動きの多いビデオの場合、より多くのステップで再計算できるようにキャッシュを減らす必要があります

ビデオ生成中に動きをリアルタイムで推定する必要があるため、MoReg は従来の計算集約型のピクセル空間動き推定アルゴリズムに依存することはできません。

さらに、これはビデオエンコードで使用される技術であり、隣接するフレーム間のピクセルの違いを比較することで動きベクトルを推定し、ビデオを圧縮します。

したがって、MoReg は、次の式に示すように、残差フレーム差をノイズのある潜在的な動きのスコアの尺度として使用します。

さらに、動き推定の精度をさらに向上させるために、MoReg では動き勾配の概念が導入されました。

これは、より優れた傾向推定として機能し、ビデオ生成の初期段階で動きを予測するのに役立ち、キャッシュ戦略を調整するための基礎として機能します。

では、AdaCache+MoReg を使用した場合の最終結果は何でしょうか?

実験結果: 他のトレーニング不要の加速方法よりも優れている

最後に、チームはVBench ベンチマークを使用して、さまざまなビデオ生成タスクにおける AdaCache のパフォーマンスを評価しました。

VBench は、ピーク信号対雑音比 (PSNR)、構造類似性 (SSIM)、知覚画像品質メトリック (LPIPS) など、さまざまな品質メトリックを提供します。

さらに、推論の遅延と計算の複雑さ (FLOP) も測定されました。

テスト対象には、低速バージョン、高速バージョン、MoReg を使用したバージョンなど、 AdaCache の複数のバリアントが含まれていました。

結果は、高速バリアントではより高いスピードアップが得られ、低速バリアントではより高い生成品質が得られることを示しています。

一方、AdaCache は、他のトレーニング不要の加速方法(∆-DiT、T-GATE、PAB など) と比較して大幅な高速化を実現しながら、同等以上の生成品質を実現します。

さらに、 GPU の数が増えると、AdaCache の速度もそれに応じて向上し、並列コンピューティング リソースを効果的に活用してGPU 間の通信オーバーヘッドを削減できることがわかります。

より詳しい実験内容については原論文を参照してください。