最終更新日:
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モデル構造が画像生成に最もよく使われている。
U-Netとは、入力画像をまず圧縮・縮小し、徐々に復号・拡大するネットワーク構造で、Uの字型をしている(※訳注1)。初期の動画生成モデルは、動画をサポートするためにU-Netの構造を拡張していた。
U-Netにおける”U字”のアーキテクチャ
画像から動画への移行は実際には非常に単純で、2Dの縦×横座標に時間次元を追加することで3Dに拡張しているだけだ。
初期の動画生成ネットワーク構造は、時間次元を組み込むことによって、2次元のUNetを3次元のUNetに拡張しただけである。
この時間次元の中にTransformerを組み込むことで、モデルは与えられた時点、例えばnフレーム目で画像がどのように見えるべきかを学習する。
もともとのUNetは、プロンプトが与えられると1枚の画像を生成する。3D UNetは、プロンプトが与えられると、16枚の画像を生成する。
3D UNet構造の問題は、TrasformerがUNetの中でしか機能せず、(動画の)全体像を見ることができないということにある。このため、動画の連続するフレーム間の整合性が悪くなることが多く、モデルも大きな動きや動作に対して十分な学習能力を欠いていたのだ。
2D-UNetと3D-UNetのネットワーク構造についてまだ混乱しているなら、それほど複雑ではない。ネットワーク設計の裏には、それほど多くのロジックがあるわけではなく、ディープラーニングで最も重要なことのひとつを思い出してほしい。それは「レイヤーを増やすだけだ」!
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を持っているかどうかだけである。
3D UNetと比較した場合、Vision Transformerはモーションイメージのパターンを学習することにモデルを集中させられる。
より振幅の大きい動きとより長い動画長の実現は、動画生成モデルにとって常に課題だった。Vision Transformerは、これらの課題について能力を大幅に向上させたのだ。
03:オープンソースのSora代替モデル、Latteの訓練
Latteは、前述の動画細断シーケンスとVision Transformerの技法を採用している(※訳注4)。この技法はSoraについて一般的に理解されていることと一致している。
「宇宙に浮かぶ宇宙飛行士のスーツとサングラスをかけた犬」というプロンプトに関するVideoFusionとLatteの動画フレーム画像比較
「宇宙を飛ぶ宇宙飛行士, 4k, 高解像度」というプロンプトに関するVideoLDMとLatteの動画フレーム画像比較
Latteはテキストから動画モデルへの訓練コードをオープンソース化していない。我々は、この論文の訓練コードを以下のGitHubで複製した。
https://github.com/lyogavin/train_your_own_sora
以上をご自由にお使いいただきたい。
訓練には、以下のような3つのステップしか必要ない。
- モデルを訓練するために環境をダウンロードしてインストールする。
- 訓練動画を準備する。
- 訓練を実行する。
(実行コマンドは以下)
./run_img_t2v_train.sh
詳細については、github repoを参照のこと。
また、訓練プロセスにもいくつか改良を加えた。
- 勾配累積のサポートを追加し、必要なメモリを削減した。
- 訓練中の検証サンプルを追加し、訓練プロセスの検証に役立てた。
- wandbのサポートを追加した。
- 分類器を使わないガイダンス訓練のサポートを追加した。
04:モデルのパフォーマンス
我々が作ったLatteのレプリカに関する公式動画は以下である。
公式動画は、特に大きな動きの点で良好なパフォーマンスを示しているように見える。
また、独自の訓練データでさまざまなモデルを比較してみた。Latteは確かに良いパフォーマンスをしているが、最も良いパフォーマンスをしているモデルではない。より優れた性能を持つオープンソースのモデルは他にもある。
Latteは効果的なネットワーク構造を採用しているが、その規模が大きいため、有名なスケーリング則によれば、学習データの量と質の点でより多くを必要とする(※訳注5)。
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取得)
編集
おざけん