Open-Sora - Soraに類似したアーキテクチャに基づいた、オープンソースのビデオ生成モデルおよび再生ソリューション。
Open-Soraは、Colossal-AIチームが開発したオープンソースのビデオ生成モデルで、OpenAIのSoraビデオ生成製品を再現するように設計されています。Open-SoraもDiTアーキテクチャに基づいており、大規模画像事前学習、大規模画像...の3段階でトレーニングが行われます。
Open-Soraとは何ですか?
Open-Soraは、Colossal-AIチームが開発したオープンソースの動画生成モデルで、OpenAIのSora動画生成製品を再現するように設計されています。Open-SoraはDiTアーキテクチャに基づいており、大規模な画像事前学習、大規模な動画事前学習、そして高品質の動画データを用いた微調整という3段階の学習プロセスを採用し、テキスト記述に合致する動画コンテンツを生成します。このオープンソースソリューションは、データ処理、すべての学習の詳細、モデルのチェックポイントなど、動画生成モデルの学習プロセス全体を網羅しており、テキストベースの動画生成モデルに関心のある方なら誰でも無料で学習・利用できます。
Open-Sora公式サイト入口
- 公式プロジェクトホームページ:https://hpcaitech.github.io/Open-Sora/
- GitHubリポジトリ:https://github.com/hpcaitech/Open-Sora
Open-Soraモデルアーキテクチャ
Open-Soraモデルは、現在広く普及しているDiffusion Transformer(DiT)アーキテクチャを採用し、ファーウェイのオープンソースであるPixArt-αの高品質テキスト画像生成モデルを使用し、時間的注意層を追加することで動画生成へと拡張しています。具体的な設計は以下のとおりです。
コアコンポーネント
- 事前学習済みVAE(変分オートエンコーダー)ビデオエンコーダー(VAE)は、入力ビデオデータを潜在空間の低次元表現にマッピングするデータ圧縮用コンポーネントです。Open-Soraでは、VAEのエンコーダー部分は、トレーニングフェーズでビデオデータを圧縮するために使用され、推論フェーズでは、潜在空間からガウスノイズをサンプリングしてビデオを生成します。
- テキストエンコーダーこのコンポーネントは、テキストプロンプト(ビデオコンテンツを説明する文章など)をテキスト埋め込みに変換する役割を担い、生成されたビデオがテキストの説明と一致するように、ビデオデータと組み合わせられます。
- STDiT (Spatial Temporal Diffusion Transformer)これは、空間時間的注意機構を利用するDiTモデルであるOpen-Soraの中核となる構成要素です。STDiTは、1次元の時間的注意モジュールを2次元の空間的注意モジュールに順次重ね合わせることで、ビデオデータにおける時間的関係をモデル化します。さらに、クロスアテンションモジュールを用いて、テキスト内の意味情報を整合させます。
建築設計
- 時空間的注意メカニズムSTDiTモデルの各層は、空間アテンションモジュールと時間アテンションモジュールで構成されています。空間アテンションモジュールはビデオフレームの2次元空間特徴を処理し、時間アテンションモジュールはフレーム間の時間的関係を処理します。この設計により、モデルはビデオデータの空間的および時間的側面を効果的に処理できます。
- クロスアテンション時間的注意モジュールに続いて、クロスアテンションモジュールが使用され、テキスト埋め込みとビデオの特徴を融合することで、生成されたビデオコンテンツがテキストの説明と一致するようにします。
- 訓練と推論プロセストレーニング段階では、VAEのエンコーダーがビデオデータを圧縮し、テキスト埋め込みとともにSTDiTモデルのトレーニングに使用します。推論段階では、VAEの潜在空間からノイズをサンプリングし、テキストプロンプトとともにSTDiTモデルに入力して、ノイズ除去された特徴量を生成します。最後に、VAEのデコーダーがデータをデコードして最終的なビデオを取得します。
Open-Soraの再現ソリューション
Open-Soraの学習および再生スキームは、安定ビデオ拡散(SVD)の研究を参考にしており、大規模画像事前学習、大規模ビデオ事前学習、高品質ビデオデータを用いた微調整という3つの段階で構成されています。これらの3つの段階を経て、Open-Soraモデルは、基本的な画像理解から複雑なビデオコンテンツ生成へと段階的にビデオ生成能力を向上させ、最終的に高品質なビデオ生成結果を実現します。
フェーズ1:大規模画像事前学習
最初の段階では、大規模な画像データセットを用いてモデルを事前学習させ、画像コンテンツの基本的な理解を確立します。この段階の目的は、既存の高品質な画像生成モデル(安定拡散など)を基盤として、動画生成モデルの重みを初期化することです。これにより、モデルは画像データから豊富な視覚的特徴を学習し、その後の動画事前学習のための強固な基盤を築くことができます。
フェーズ2:大規模ビデオ事前トレーニング
第2段階では、大規模なビデオデータを用いた事前学習に重点を置き、モデルのビデオ時系列データの理解度を高めます。この段階では、大量のビデオデータを用いてモデルを学習させ、ビデオ内の時間的関係や動的な変化を把握します。モデルの汎化能力を向上させるためには、ビデオの被写体の多様性を確保することが重要です。さらに、この段階では、時系列データをより適切に処理するために、モデルに時間的注意モジュールを追加します。この段階での学習は、第1段階の学習結果を基に、前の段階の重みを起点として行われます。
フェーズ3:高品質ビデオデータの微調整
最終段階では、高品質のビデオデータを使用してモデルを微調整し、生成されるビデオの品質とリアリティをさらに向上させます。この段階では、第2段階よりも使用するビデオデータは少なくなるかもしれませんが、ビデオの長さ、解像度、品質はすべて向上します。この微調整プロセスにより、モデルはより詳細でリアルなビデオコンテンツを捉えることができ、ユーザーの期待をより満たすビデオが生成されます。