先週OpenAIが動画生成モデルSoraを公開しました。非常に話題になりました。
これまでの動画生成モデル、例えばStable DiffusionやPikaなどは、基本的に画像から最大数秒程度の動画しか生成できませんでしたが、Soraは約1分程度の動画を生成できる能力を持っています。しかも、超高品質で動画を生成されます。
OpenAIもSoraの中身を説明する論文「Video generation models as world simulators」を先日公開しました。
この論文を読み終わって、中身をある程度理解しました。
OpenAIが明かしていない部分も一部ありますが、Soraの特徴は主に以下の2点だと思います。
1.patchに分割
一つはpatchという単位で画像データを分割しました。
この方法は、論文によればGPT-4を参考にして開発されました。皆さんご存知の通り、LLMは埋め込みモデルによって、テキスト情報を個々のトークンに分割し、これらのトークン間の関係を学習することでトレーニングされています。
Soraも同様に、画像データを統一な単位へと分割処理がありました。OpenAIは、この分割された単位を”patch”と呼ばれます。
処理のイメージとしては、以下のスクリーンショット通りです。
まずは一枚の画像を埋め込みモデルを用いて多数の小さなpatchに分割し、各patchが画像の一部のピクセルデータを保存します。これらのパッチを並ぶことで、一枚の画像の内容を保存できます。フレームレート(fps)によって変わりますが、1秒間の動画は大体30枚や60枚の画像で構成されています。これらの画像ごとのpatchを一枚づつ時間順で並べば、1秒間の動画の情報も示すことができます。
SoraもTransformerベースであるため、テキストと同じように、1tokenずつ(1patch)順序立てて出力を生成するモデルです。しかし、動画においては、画像の順序とpatchの順序(一つの画像内の複数のパッチの配置順序)両方が存在しますので、Soraがこれら二つの順序をどのように調整するかについては、論文では説明されていません。恐らくコアとなる技術だと思われます。
2.Dall-Eによって生成された学習データを利用
もう一つの特徴は、SoraはChatGPTのDALL·Eによって作成された学習データを使用してトレーニングされました。(これが高い精度を実現する理由の一つにもなります)
具体的には、DALL·Eに画像を説明する処理を行ってもらいました。一般的なアノテーションとは異なります。DALL·Eのマルチモーダル能力が強いために、画像を非常に具体的に説明できます。なので、モデルも動画生成時に注意すべき細部をより多く学習することが可能になります。
先月読んだ記事では、最近のマルチモーダルモデルのトレーニングデータは、徐々に人間のアノテーションに依存しない傾向があります。その理由は、強力なLMM(例えばDALL·E)によるアノテーションが処理速度も速く、コストも低く抑えられ、あと何よりも一貫性を確保できるからです。(人々の間で画像データの理解にはある程度の偏りがどうしてもあり、表現の仕方も異なるため、モデルの学習過程で誤差が生じ、出力の質を安定させることが難しいからです)
しかし、OpenAIがSoraに使用しているトレーニングデータがどの程度具体的に記述されているかについては、論文には説明されていません、これは何度の試しで得た経験なので、共有したいくないかもしれません。
Soraがもうすぐ公開されると思いますので、使ってみるのが楽しみです。
興味ある方:
論文: