HUOXIU

Soraの技術原理を深く理解する | Dewu Technology


出典:デウーテクノロジー


目次

I. テキストから画像を生成するプロセス

1. 潜在的拡散モデル

2. トランスフォーマーアーキテクチャ

II. ソラのビデオ生成プロセス

1. ビデオ圧縮ネットワーク

2. 時空パッチ

3. 拡散変圧器

III. トレーニングからビデオ生成までの全プロセス

1. ビデオ注釈とトレーニング

2. ビデオの生成と処理


OpenAIのSora(https://openai.com/sora)動画生成モデルは、テキストに基づいて最大1分間の高品質動画を生成できます。理論上は1920x1080や1080x1920など、あらゆる解像度に対応しています。その生成能力は、576x1024の画像を25フレームしか生成できなかった従来のトップ動画生成モデル「Stable Video Diffusion」をはるかに上回っています。

また、非常に簡潔な技術レポートも公開されました。このレポートでは、Soraのアーキテクチャと応用シナリオの概要が示されており、モデルの基本原理については深く掘り下げられていません。技術レポートへのリンク:https://openai.com/research/video-generation-models-as-world-simulators

数多くのリソースを参照し、Sora の技術的原理をより深く理解しようと努めた後、Sora のビデオ生成プロセスに含まれる一般的な手順を次のようにまとめました。

  • さまざまな解像度と長さのビデオを大量に収集し、ビデオの次元削減を実行して潜在空間データを取得することにより、潜在空間でテキスト注釈とトレーニングが実行されます。

  • DALLE3 の再注釈技術を使用して、手動で注釈が付けられたテキストでコードをトレーニングし、ビデオのより詳細な説明を提供する注釈情報を生成します。

  • ビデオ生成中に、ランダムなノイズのあるビデオが取得され、トレーニングされたビデオ圧縮ネットワークを使用して低次元の潜在空間データに圧縮され、ビデオデータをより適切に処理します。

  • 圧縮された潜在空間データは、ビデオ内の空間的および時間的関係を含む空間-時間パッチに分解され、これらのパッチは 1 次元のトークン データに変換されます。

  • トークンデータは、拡散モデルによって学習されたTransformer(DiT)に送信されます。Transformerのアテンションメカニズムは、テキストプロンプト内の重要な情報を常に監視するために用いられます。拡散モデルはトークンデータのノイズ除去に使用され、ノイズ除去されたデータは繰り返しサンプリングされ、プロンプトの要件を満たしているかどうかを観察します。

  • ノイズ除去されたデータはビデオデコーダーを用いてデコードされ、低次元潜在空間データが元のビデオデータに復元されます。これにより、様々な解像度でのビデオデコードが可能になります。

冗長な詳細を読みたくない場合は、ここで読み進めてください。もっと詳しく知りたい場合は、読み進めてください。完全に理解できていない部分もあるかもしれませんが、ご自由に追加したり、議論したりしてください。


1つ

テキストから画像を生成するプロセス


テキストからビデオへの生成の原理を理解する前に、別の記事「 AIGC テキストから画像への生成: 原理と実践」で説明したテキストから画像への生成の原理を確認しましょう。

この記事では、敵対的ネットワークを用いた従来の画像生成手法については議論しません。代わりに、拡散モデルに基づく画像生成に焦点を当てます。オープンソースのStable Diffusionは、LDM(潜在拡散モデル)に基づいています。さらに、Stable Diffusionは、手がかりとなる単語をサポートするTransformerアーキテクチャを導入し、画像ノイズ除去時の精密な制御を可能にします。


潜在的拡散モデル


Stable Diffusionの基盤技術は、潜在拡散モデルと呼ばれています。さらに、Stable Diffusionモデルは、元のUNetモデルにTransformer構造を追加しています。Transformer構造はノイズ除去効果を向上させるだけでなく、画像コンテンツの迅速な制御を実現するための重要な技術でもあるため、これは双方にとってメリットのある状況です。

深層学習の分野において、潜在空間とは、モデルがデータの表現を学習する抽象空間を指します。この潜在空間は通常、低次元のベクトル空間であり、各点(ベクトル)はモデルによる入力データの表現または特徴を表します。潜在空間の概念は、様々な生成モデルや表現学習手法で広く用いられています。

潜在空間がモデルに与える影響は次のとおりです。

  • データの抽象表現:

潜在空間は、入力データの抽象的な表現と見なすことができます。潜在空間を学習することで、入力データの特徴と構造をより適切に捉えることができ、モデルの学習とデータ生成をより効率的に行うことができます。

  • 次元削減とノイズ削減

潜在空間は通常、元のデータ空間に比べて次元が低い低次元空間です。データを潜在空間にマッピングすることで、次元削減とノイズ削減を実現し、データの主要な特徴とパターンをよりコンパクトな空間で表現することができます。

  • 生成と再構築

生成モデルにおいて、潜在空間は重要な役割を果たし、新しいデータサンプルの生成を可能にします。モデルは潜在空間からサンプルをサンプリングし、デコードすることで、現実的な特徴を持つデータサンプルを生成することができます。この生成プロセスは通常、デコーダーを用いて実装されます。

  • 補間と演算:

潜在空間において、ベクトルは異なるデータの特徴または属性を表します。データ空間内の変化や関係性は、ベクトル間の補間や演算によって探索できます。例えば、潜在空間内でベクトルを異なる方向に動かすことで、データ生成中の対応する変化を観察できます。

拡散モデルの一般的なプロセスは、次のように説明できます。元の画像にノイズを継続的に追加するとノイズの多い画像が生成され、その後、他の情報を追加しながらノイズの多い画像からノイズを継続的に除去すると、新しい画像が得られます。

Stable Diffusion を使用して画像を生成する一般的なプロセスは次のとおりです。

  • Stable Diffusionは、新しいテキストエンコーダ(OpenCLIP)を用いてテキスト入力をベクトル表現に変換します。このベクトル表現はテキストの意味情報を捉え、画像空間と整合しています。

  • 安定拡散法は、拡散モデルを用いて、ノイズの多い画像を徐々に目標画像へと変換します。拡散モデルは、トレーニングデータから確率分布を学習し、そこから新しいデータをサンプリングする生成モデルです。

  • 拡散プロセスにおいて、安定拡散はテキストベクトルとノイズ画像を条件付き入力として用い、各変換ステップの確率分布を提供します。これにより、安定拡散は、画像の鮮明さと一貫性を維持しながら、テキストに基づいてノイズ画像を目標画像に収束させることができます。

  • 最後に、Stable Diffusionは、アップスケーラ拡散モデルを用いて、生成された低解像度画像を高解像度にアップスケールします。アップスケーラ拡散モデルもまた、低解像度画像から詳細情報を復元し、画質を向上させることができる拡散モデルです。

潜在拡散モデルの技術的アーキテクチャは次のとおりです。

潜在拡散モデルの全体的なフレームワークを図に示します。まず、オートエンコーダモデル(エンコーダεとデコーダδを含む)を学習する必要があります。これにより、エンコーダを用いて画像を圧縮し、潜在表現空間に対して拡散演算を実行し、最後にデコーダを用いて元のピクセル空間を復元することができます。この論文ではこの手法を「知覚圧縮」と呼んでいます。個人的には、高次元の特徴を低次元に圧縮し、その低次元空間上で演算を行うこの手法は普遍的であり、テキスト、音声、動画などの分野にも容易に拡張できると考えています。

潜在表現空間に対する拡散演算を実行する主なプロセスは、標準的な拡散モデルと大きく異なりません。また、使用される拡散モデルの具体的な実装は、Time-Conditional UNetです。しかし、重要な点は、本論文では拡散演算に条件付きメカニズムを導入し、クロスアテンションによるマルチモーダル学習を実現し、条件付き画像生成タスクも実装できるようになっていることです。

https://github.com/CompVis/latent-diffusion


トランスフォーマーアーキテクチャ


2017年6月にGoogleが提案したTransformerアーキテクチャは、自己注意に基づくモデルであり、RNNのような手法の2つの大きな問題点である並列計算と長期的な依存性を効果的に解決します。当初は翻訳タスクに焦点を当てていましたが、その後、いくつかの影響力のあるモデルにつながりました。以下は、Transformerモデルの簡潔な歴史における重要なマイルストーンです。

Transformer のアーキテクチャ設計を次の図に示します。



左側の図は Transformers アーキテクチャの簡略化された表現であり、右側の図は、アテンション レイヤーと呼ばれる重要な Multi-Head Attention コンポーネントを含む完全な表現です。

Transformerモデルの重要な特徴は、注目層です。実際、GoogleがTransformerアーキテクチャに関する論文を発表した際のタイトルは「Attention is All You Need(注目こそすべて)」でした。注目層は、モデルに対し、処理対象の文中の特定の単語に特別な注意を払い、各単語の表現を解析するか、あるいは他の単語をある程度無視するかを指示します。注目層を通して、モデルは入力テキストの意図に沿って処理結果を継続的に改良することができます。

要約すると、TransformerはAttentionレイヤーを用いて入力テキストのコンテキストを理解し、観察します。Decoderプロセスでは、マルチヘッドAttentionレイヤーを用いて結果の出力を制御し、コンテキストに適合させます。

Transformer の実装原則をより詳しく理解するには、次の記事を参照してください。

https://jalammar.github.io/illustrated-transformer/

安定拡散の原理を確認した後、ビデオを生成する方法を想像してみましょう。

事前学習済みの安定拡散モデルを動画生成モデルに拡張することは可能でしょうか?例えば、拡張中に動画の各フレームを個別に安定拡散オートエンコーダに入力し、圧縮された画像シーケンスに再構成することができます。これはVideoLDMが解決しようとした問題です。しかし、VideoLDMの研究では、以前の画像オートエンコーダを動画に直接適用すると、出力動画にちらつきが生じることが判明しました。この問題に対処するため、本研究ではオートエンコーダのデコーダを微調整し、時間軸を処理できるモジュールを追加することで、圧縮された動画全体を一度に処理し、一貫性のあるリアルな動画を出力できるようにしました。


ソラのビデオ生成プロセス


では、Soraはどのように動作するのでしょうか?Soraのワークフローを理解するために、図を見てみましょう。これは3つの部分に簡略化できます。

簡単に言うと、Soraは潜在的拡散モデル(LDM)と拡散トランスフォーマー(DiT)という2つのモデルに依存しています。これら2つのモデルアーキテクチャを簡単に見ていきましょう。

LDMは、Stable Diffusionで使用されているモデルアーキテクチャです。拡散モデルの大きな問題は、計算量が多く、高解像度画像へのフィッティングが難しいことです。この問題に対処するため、LDMはまず、ほぼロスレスの画像圧縮が可能なオートエンコーダを学習します。このオートエンコーダは、512×512の実画像を64×64の圧縮画像に圧縮し、それを復元することができます。次に、拡散モデルを低解像度の圧縮画像にフィッティングするように学習します。このようにして、少ない計算リソースで高解像度画像生成モデルを学習できます。

LDMの拡散モデルはU-Netモデルを採用しています。しかし、他の深層学習タスクでの経験に基づくと、TransformerアーキテクチャはU-Netよりもパラメータのスケーラビリティに優れています。つまり、パラメータ数が増えるほど、Transformerアーキテクチャの性能向上がより顕著になります。そのため、大規模モデルではTransformerアーキテクチャが一般的に採用されています。この動機から、DiTが開発されました。DiTは、LDMの基盤においてU-NetをTransformerに置き換えます。

まとめると、SoraはDiTモデルのビデオ版です。SoraがDiTにどのような改良を加えたかを見てみましょう。


ビデオ圧縮ネットワーク


まず、Soraは「ビデオ圧縮ネットワーク」と呼ばれる技術を用いて、入力画像またはビデオを低次元データ、すなわち潜在空間データに圧縮します。ビデオ圧縮を実現するために、Soraはビデオを直接圧縮できるオートエンコーダをゼロから学習しました。従来の研究と比較して、Soraのオートエンコーダは画像を空間的に圧縮するだけでなく、ビデオの長さを時間的にも圧縮できます。

入力ビデオはSoraのオートエンコーダを通過した後、空間的および時間的な次元が削減された圧縮ビデオに変換されます。この圧縮ビデオが、SoraのDiTアルゴリズムが適合するオブジェクトとなります。

このプロセスは、処理や保存を容易にするために、さまざまなサイズや解像度の写真を「標準化」することに似ていますが、圧縮は元のデータの独自性を無視するものではなく、Sora が理解して操作しやすい形式に変換することを意味します。

レポートでは、Soraは学習および生成において、任意の解像度(1920x1080以内)、任意のアスペクト比、任意の継続時間のビデオを使用できることが繰り返し言及されています。これは、Soraがこれらのビデオを圧縮してモデルの学習に適したデータを取得するため、ビデオ学習データをスケーリングやトリミングなどの前処理する必要がないことを意味します。


時空パッチ


次に、Soraは圧縮されたデータを「時空間パッチ」へとさらに分解します。これは、視覚コンテンツの基本構成要素と見なすことができます。例えば、写真は、それぞれの風景、色、質感を含む小さな断片へと分解できます。これにより、元の動画の長さ、解像度、スタイルに関わらず、Soraは一貫したフォーマットへと処理することができます。

時空間パッチを取得した後、Transformer は 1 次元のシーケンス データしか処理できないため、これらのパッチを Transformer モデルで処理できるように 1 次元のデータ シーケンスに変換する必要があります。

Soraの特性は、Transformerアーキテクチャによるものです。Transformerの計算は入力順序に依存しませんが、各データポイントの位置を示すために位置エンコーディングを使用する必要があります。レポートでは言及されていませんが、SoraのDiTはタイルの時空間的な位置を表すために(x,y,t)に似た位置エンコーディングを使用していると考えられます。これにより、入力ビデオのサイズや長さに関係なく、各タイルに位置エンコーディングが割り当てられている限り、DiTはタイル間の相対的な関係を区別できます。


拡散変圧器


最後に、SoraはTransformerモデルをビデオ生成に適用できるように拡張しました。ビデオとは、時間情報が追加された一連の静止画像です。したがって、時間情報を含む画像を生成するには、Transformerモデルのみが必要です。

Transformerは元々テキスト処理用に設計されており、1次元のシーケンシャルデータしか処理できないことに注意が必要です。Transformerで2次元画像を処理できるようにするには、通常、入力画像をまず辺の長さpのタイルに分割し、その後、各タイルを1次元データに再構成します。つまり、辺の長さIの元の正方形画像は、タイル化後、長さ(I/p)²の1次元シーケンシャルデータになります。

DiTが入力タイル(すなわち時空間パッチ)を処理する際、各ビデオタイルは(x, y, t)のような位置コードでエンコードされているため、入力ビデオは任意の解像度と長さを持つことができます。各時空間パッチは入力トークンとしてTransformerに入力されます。Transformerは各時空間パッチに対してノイズ除去処理を行います。最後に、すべての時空間パッチのノイズ除去処理が完了した後、デコーダーはTransformerによって処理されたテンソルデータからビデオデータを復元します。

下の図はDiTのアーキテクチャを示しています。左:学習および調整済みの潜在DiTモデル。入力潜在変数は複数のパッチに分解され、複数のDiTブロックによって処理されます。右:DiTブロックの詳細。適応層正規化、クロスアテンション、および追加の入力トークンによって調整された標準Transformerのバリエーションを実験しました。適応層正規化が最良の結果をもたらしました。

入力が256x256x3の画像であると仮定し、画像をパッチ処理して投影した後、各パッチごとにトークンを取得し、32x32x4の潜在空間を生成します(推論中の入力は直接32x32x4のノイズです)。現在のステップtを結合し、ラベルyを入力としてN個のDiTブロックで処理します。処理中、出力はMLPによって制御され、出力ノイズとそれに対応する共分散行列が生成されます。Tステップのサンプリング後、32x32x4のノイズ除去済み潜在空間が得られます。

処理された潜在変数を取得した後、Visual Decoder を使用して潜在変数をデコードし、最終的に生成されたビデオを取得します。


三つ

トレーニングからビデオ生成までの全プロセス

ビデオ注釈とトレーニング


  • 動画とそのテキスト注釈を収集する

最初のステップは、大量の動画データを収集し、それらの動画に対応するテキストアノテーションを取得または作成することです。これらのテキストは動画の内容を簡潔に説明するものであり、動画の主題を理解するためのモデル学習の鍵となります。

  • 前処理されたビデオデータ

データ形式が一貫していてモデル処理に適していることを確認するために、解像度の調整、形式の変換、長さの切り取りなどのビデオ前処理が行われます。

  • 非常に説明的なテキスト注釈を生成する

DALLE3技術を用いて、まずモデルをトレーニングし、動画コンテンツに高度に説明的なテキストアノテーションを生成することに特化したモデルを構築します。このステップでは、テキストアノテーションの品質を向上させ、より詳細かつ具体的なものにすることを目指します。その後、このモデルをトレーニングセット内のすべての動画に適用し、より詳細な新しいテキストアノテーションを生成します。

これまで、テキストから画像への拡散モデルのほとんどは、手動で注釈が付けられた画像テキストデータセットでトレーニングされていました。その後、手動で注釈が付けられた画像の説明の質が低いことが判明し、注釈の質を向上させるためのさまざまな手法が生まれました。Soraは独自のDALL·E 3再注釈技術を再利用し、詳細な説明を生成できる訓練された注釈者を使用して、トレーニングビデオの注釈を再生成します。このアプローチは、不十分なビデオ注釈の問題を解決するだけでなく、手動による注釈よりも高い品質を実現します。Soraの結果の一部は、その強力な抽象理解能力(人間と猫の相互作用の理解など)を示していますが、これは主にビデオ注釈モデルが十分に強力であるため、ビデオ生成モデルがビデオ注釈モデルから学習するからです。ただし、ビデオ注釈モデルの詳細は完全に非公開のままです。

  • 拡散モデルのトレーニング

拡散モデルであるSoraは、ノイズの多いパッチから元の鮮明なパッチへの変換プロセスを予測することで学習されます。このプロセスは多数の反復処理を伴い、生成される動画の品質を徐々に向上させます。


ビデオ生成と処理


  • ビデオ圧縮と空間時間パッチ生成

高次元のビデオデータを低次元の潜在空間に圧縮するビデオ圧縮ネットワークを開発・学習する。データ表現を簡略化することで、モデルによる処理が容易になる。圧縮されたビデオ表現は、空間情報と時間情報の両方を含む空間・時間パッチに分解される。

  • Transformerアーキテクチャを使用して時空間関係を処理する

これらの時空間パッチは、Transformerアーキテクチャに基づいて処理されます。Transformerアーキテクチャは、テキストなどのシーケンシャルデータを処理する強力な能力を備えているため、ここではビデオパッチ間の複雑な時空間関係を捉えるために使用されています。

  • GPTモデルを用いたプロンプト語の理解と最適化

DALLE3と同様に、SoraはGPTモデルを活用して、ユーザーが提供するテキストプロンプトを拡張または最適化できます。GPTモデルは、簡潔なユーザープロンプトをより詳細で説明的なテキストに変換できるため、Soraはユーザーの意図をより正確に理解し、それに合った動画を生成できます。

  • 拡散モデルを用いたビデオ生成

ユーザーがテキストプロンプトを入力すると、Sora はこのプロンプトに基づいて潜在空間における動画生成プロセスを初期化します。Sora は事前学習済みの拡散モデルを用いて、初期化された時空間パッチから徐々に鮮明な動画コンテンツを生成します。

  • ビデオのデコードと処理

潜在空間のビデオは、ビデオ圧縮に対応するデコーダーを使用して元のピクセル ビデオに変換されます。

生成されたビデオは、公開や表示のニーズに合わせて、解像度の調整やトリミングなどの後処理が可能です。

参考資料:

https://openai.com/research/ビデオ生成モデルを世界シミュレータとして利用する

https://zhuanlan.zhihu.com/p/583124756

https://mp.weixin.qq.com/s/Prn1G_EpXvnM4me9a_SPBw


https://mp.weixin.qq.com/s/KUnXlDlg-Rs_6D5RFpQbnQ