HOME/ AINOW編集部 /オープンソースのSoraがやってきた!独自のSoraモデルを訓練しよう!
2024.04.22

オープンソースのSoraがやってきた!独自のSoraモデルを訓練しよう!

最終更新日:

アメリカ在住のAIスタートアップ創業者であるガヴィン・リー(Gavin Li)氏(詳しいプロフィールは同氏のLinkedInページ参照)がMediumに投稿した記事『オープンソースのSoraがやってきた!独自のSoraモデルを訓練しよう!』では、Soraと類似したアーキテクチャをもつ動画生成モデルLatteが解説されています。

Latteの解説に先立って。Li氏は動画生成モデルの歴史を振り返ります。初期の動画生成モデルは、画像生成モデルに多用されたUNetに時間の次元を追加しただけのシンプルなものでした。こうしたモデルには、生成するオブジェクトの一貫性を保つのが困難という弱点がありました。
3次元的UNetの弱点を克服するために考案されたのが、Vision Transformerの活用でした。これは動画のために生成した画像を小片に分解したうえで、この小片をTransformerにおけるトークンのように処理するというものです。言わば画像をテキストと同じように処理することで、Vision Transformerはオブジェクトを一貫的に生成できるのです。
OpenAI Soraの技術レポートにはVision Transformerを参照したことが明記されていますが、コードや学習データは公開されていません。そこでLi氏は、Vision Transformerを活用していて詳細も公開されているLatteを参考にして、言わばオープンソース版Soraを開発・公開しました。
Latteおよびオープンソース版Soraは、モデルサイズが小さく学習データも少ないため、OpenAI Soraの品質には到底及びません。逆に言えば、後者は巨大なサイズのモデルを膨大な学習データによって訓練していると推測されます。こうしたスケーリング則を愚直に実現する姿勢こそがOpenAI Soraの成功を導き、この姿勢をLi氏は「OpenAIのスタイル」と呼んで賞賛しています。

なお、以下の記事本文はガヴィン・リー氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。また、翻訳記事の内容は同氏の見解であり、特定の国や地域ならびに組織や団体を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
以下の翻訳記事を作成するにあたっては、日本語の文章として読み易くするために、意訳やコンテクストを明確にするための補足を行っています。

00:はじめに

現在までのところ、Soraに最も近いオープンソースモデルはLatteで、Soraと同じVision Transformerアーキテクチャを採用している。それではVision Transformerの何が優れているのか、これまでの手法とどう違うのか?

Latteはテキストから動画への訓練に関するコードをオープンソース化していない。我々は、論文を読んでテキストから動画への訓練コードを複製し、Soraの代替モデルを訓練するために誰でも使えるようにした。我々の訓練はどの程度効果的だったのだろうか。詳細は後述する。

01:3次元U-NetからVision Transformerへ

画像生成は非常に成熟しているのだが、UNetモデル構造が画像生成に最もよく使われている。

2D UNetのアーキテクチャ

U-Netとは、入力画像をまず圧縮・縮小し、徐々に復号・拡大するネットワーク構造で、Uの字型をしている(※訳注1)。初期の動画生成モデルは、動画をサポートするためにU-Netの構造を拡張していた。

(※訳注1)U-Netは2015年5月、ドイツ・フライブルグ大学の研究チームによって発表された。同モデルの論文には、そのアーキテクチャを解説するのに以下のようなU字の模式図を掲載している。

U-Netにおける”U字”のアーキテクチャ

画像から動画への移行は実際には非常に単純で、2Dの縦×横座標に時間次元を追加することで3Dに拡張しているだけだ。

画像から動画、2Dから3D

初期の動画生成ネットワーク構造は、時間次元を組み込むことによって、2次元のUNetを3次元のUNetに拡張しただけである。

この時間次元の中にTransformerを組み込むことで、モデルは与えられた時点、例えばnフレーム目で画像がどのように見えるべきかを学習する。

もともとのUNetは、プロンプトが与えられると1枚の画像を生成する。3D UNetは、プロンプトが与えられると、16枚の画像を生成する。

3D UNet構造の問題は、TrasformerがUNetの中でしか機能せず、(動画の)全体像を見ることができないということにある。このため、動画の連続するフレーム間の整合性が悪くなることが多く、モデルも大きな動きや動作に対して十分な学習能力を欠いていたのだ。

2D-UNetと3D-UNetのネットワーク構造についてまだ混乱しているなら、それほど複雑ではない。ネットワーク設計の裏には、それほど多くのロジックがあるわけではなく、ディープラーニングで最も重要なことのひとつを思い出してほしい。それは「レイヤーを増やすだけだ」!

レイヤーを追加するだけ

(※訳注2)以上の画像は、予測モデル改善における統計的学習とニューラルネットワークの違いを皮肉った風刺画である。画像上部は統計的学習の講義において「諸君、我々のカーネルのVC次元が高すぎるため、学習者が汎化しすぎている。損失関数を作り直し、次のカーネルを安定させ、不偏にし、ソフトマージンの使用を検討する。」と難解なことを述べている。対して画像下のニューラルネットワークの講義では「もっとレイヤーを積み上げろ」とだけ述べている。

02:Vision Transformer

3D UNetのTransformerはUNetの内部でしか働かず、全体像を見られない。一方、Vision Transformerは、Transformerが動画生成を全体的に支配できるようにする。

Vision Transformerのモデリング方法は言語モデルのそれに似ている。(Vision Transformerを使えば)動画を直接シーケンスとして考えられるようになる。つまり、言語モデルにおけるシーケンス内の各データブロックが、画像の小片となりうる。

言語モデルのトークナイザーが(テキストシーケンス内で)機能するのと同様に、動画をシーケンス内のトークンにエンコードできる。

いったんシーケンスが確立されれば、Transformerを直接適用できる。

動画のパッチ化

数学的には、Vision Transformerは非常に簡単である。それには言語モデルと同様のメカニズムが適用される。動画を(画像の小片から構成された)トークン・シーケンスに変換してから、そのシーケンスに何層ものTransformerを積極的に適用する。

このシンプルな設計は、シンプルで総当たり的なOpenAIのスタイルによく合致している。

OpenAIは実際、数学的に複雑で派手なアプローチを好まない。同社が創業して間もない頃、同社開発のGPT-2は、T5やDeBertaのようなさまざまな派手なモデルと比べると、シンプルで粗雑すぎるという理由で、やや見下されていた。

しかし、比較的シンプルで操作性の高いモデル構造は、実際のところ、より大量の学習データに対して安定的にモデルをスケールさせることを容易にする。OpenAIは、モデル構造で勝負するのではなく、データ(の量)で勝負することを選んだのだ。

そんなわけで、OpenAIはペタバイトのデータと何万ものGPUを積み上げることを実行したのだ。

私とOpenAIの違いは、数万個のGPUを持っているかどうかだけである。

1000層のTransformerに10万個のGPUを投入する

(※訳注3)以上の画像のセリフ部分は「AIは簡単だ。1000層のTransformerに10万個のGPUに投入するだけだ。わかった?」と翻訳できる。

3D UNetと比較した場合、Vision Transformerはモーションイメージのパターンを学習することにモデルを集中させられる。

より振幅の大きい動きとより長い動画長の実現は、動画生成モデルにとって常に課題だった。Vision Transformerは、これらの課題について能力を大幅に向上させたのだ。

03:オープンソースのSora代替モデル、Latteの訓練

Latteは、前述の動画細断シーケンスとVision Transformerの技法を採用している(※訳注4)。この技法はSoraについて一般的に理解されていることと一致している。

(※訳注4)Latteは2024年1月5日、中国・上海人工知能研究所らの研究チームによって発表された。同モデルの論文ではテキスト動画生成に関して、中国のCRIPAC らが2023年5月に発表したVideoFusionと、NVIDIAらの研究チームが2023年4月に発表したVideoLDMと比較した。そうした比較結果は、以下の画像の通り。

「宇宙に浮かぶ宇宙飛行士のスーツとサングラスをかけた犬」というプロンプトに関するVideoFusionとLatteの動画フレーム画像比較


「宇宙を飛ぶ宇宙飛行士, 4k, 高解像度」というプロンプトに関するVideoLDMとLatteの動画フレーム画像比較

Latteはテキストから動画モデルへの訓練コードをオープンソース化していない。我々は、この論文の訓練コードを以下のGitHubで複製した。
https://github.com/lyogavin/train_your_own_sora
以上をご自由にお使いいただきたい。

訓練には、以下のような3つのステップしか必要ない。

  1. モデルを訓練するために環境をダウンロードしてインストールする。
  2. 訓練動画を準備する。
  3. 訓練を実行する。

(実行コマンドは以下)

./run_img_t2v_train.sh

詳細については、github repoを参照のこと。

また、訓練プロセスにもいくつか改良を加えた。

  1. 勾配累積のサポートを追加し、必要なメモリを削減した。
  2. 訓練中の検証サンプルを追加し、訓練プロセスの検証に役立てた。
  3. wandbのサポートを追加した。
  4. 分類器を使わないガイダンス訓練のサポートを追加した。

04:モデルのパフォーマンス

我々が作ったLatteのレプリカに関する公式動画は以下である。

公式動画は、特に大きな動きの点で良好なパフォーマンスを示しているように見える。

また、独自の訓練データでさまざまなモデルを比較してみた。Latteは確かに良いパフォーマンスをしているが、最も良いパフォーマンスをしているモデルではない。より優れた性能を持つオープンソースのモデルは他にもある。

Latteは効果的なネットワーク構造を採用しているが、その規模が大きいため、有名なスケーリング則によれば、学習データの量と質の点でより多くを必要とする(※訳注5)。

(※訳注5)Latteの論文では、異なるサイズを開発したうえでの比較実験が行われた。開発したサイズはS、B、L、XLの4種類あり、それぞれの仕様は以下の表の通り。この4つのモデルについて、学習回数を増やした場合のFVD(Fréchet Video Distance:フレシェット動画距離、動画品質の指標)の推移を測定した。その結果、学習回数が増えるごとに、またモデルサイズが大きいほどFDVが低下することがわかった(FDVが小さいほど動画品質がよい)。こうした実験により動画生成モデルにおいても、スケーリング則が成立することがわかる。

4種類のLatteモデルの仕様


学習回数を増やした場合の4種類のLatteにおけるFVDの推移

動画モデルの能力は、事前学習された画像モデルの性能に大きく依存する。それゆえ、Latteが使用している事前学習済みのベース画像モデルも強化する必要があるようだ。

今後もより性能の良いモデルを紹介していくので、ぜひ私のブログをフォローしてほしい。

05:ハードウェア要件

Latteの訓練にはそのサイズが大きいので、80GBメモリのA100またはH100が必要である。

我々は今後も、最新で最もクールなAIモデルのアルゴリズムとオープンソース技術を共有していく。

このブログにコメントを残してフォローしてください!


原文
『Open-Source SORA Has Arrived! Training Your Own SORA Model!』

著者
ガヴィン・リー(Gavin Li)

翻訳
吉本 幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1、生成AIパスポート、JDLA Generative AI Test 2023 #2取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA