結局マルチモーダルAIって何?[未来編(世界モデルへ)]
はじめに
この記事は以下の記事の続編です。今回もかなり重い内容になりそうですが、一気に書いてしまいます。
SIMA2
つい先日Googleから新たなエージェントSIMA2が発表されました。 これまでのAIエージェントと大きく異なるのが、これまでのAIエージェントは外部Toolを使用することで検索をしたりメールを作成したりしていましたが、SIMA2はゲームという仮想的な世界の中で、プロンプトを通して人から受けた指示を実行できるようになりました。
つまり検索やメールの作成などを通してインターネット上で行動していたAIが、現実世界を模した仮想世界の中で行動が出来るようになったといえます。
Genie3
SIMA2を作成にあたって大きく貢献したと考えられるのがGenie3です。Genie3は動画を生成するモデルなのですが、従来の動画生成モデルと大きく異なる点として人間取ったアクションに応じて風景が変わるところです。 このモデルの設計の中心にあるとされるのが今回お話しする世界モデルです。
世界モデルとは
「常識」がわからないAI
昨今、YoutubeなどでAIによる生成画像を見かけますが、一時期話題になったこの動画を知っていますか? 俳優のウィル・スミスさんがスパゲッティを食べる様子を生成した動画ですが、このようにこれまでのAIは世界の常識(人は口からご飯を食べるなど)・物理法則などについて理解できていませんでした。
未来を予測しつつ「常識」を養う
世界モデルを説明する際によく使われるのが野球の例えです。

野球選手は時速160kmで飛んでくるボールを打ち返すときにボールの場所をピンポイントで見て打ち返しているでしょうか?おそらく、ある程度ボールの軌道を読んでバットを出していると思います(ソフトバンクホークスの柳田選手はボールが来てから打ってると言っていますが、、)。
これをAIにも転用し、以下のような設計思想が出来上がります。
AIの頭の中にその世界を模した小さなシミュレーターを作り次の状態を予測することでAIが世界の現象を理解し、現実世界で学習させないことで計算コストも大きく下がるであろう
まとめるとこのようになります。
LLMを含むこれまでのAI : 言語体系という「世界」だけを学習していた
世界モデルを含むAI : 我々が生きている「世界」そのものを学習する
世界モデルの構造
世界モデルは2018年に出版された論文「World Model」の中で提唱されました。
構造は以下の通りです。ここで言うWorld ModelはVAEのV(Vision)モデルとMDN-RNNのM(Memory)モデルの二つを組み合わせた内部構造です。ここで重要なのはVモデルとMモデルは別々に学習されている点とCモデルは外界からの情報を直接見ていない点です。

世界モデルの学習フェーズ
任意の時刻tでの潜在変数を
この時、以下のステップでモデルが学習されます。
- ランダムな方策(policy)で任意の試行(rollout)のデータを収集します。
- 任意の試行tにおける画像を入力として同じ画像を復元するようにVAE(Vモデル)を学習させる(ここで欲しいのは復元された画像よりも潜在変数
)Z_t - 任意の時刻tにおける
、a_t 、h_t を入力として一時刻先の潜在変数(Z_t )を予測するようにRNNを学習させるZ_{t+1} - 学習させたVモデルとMモデルが任意の時刻に出力する
、Z_t を基に最適なアクションh_t をするようにエージェント(Controller)を学習させるa_t
このように、VモデルとMモデルを含む内部モデル(次の状態を予測するモデル)を学習させたものを使って、小さなControllerモデル(エージェント)を学習させます。
野球選手で例えるなら、バッティングセンターで10000回ボールの起動を見るのが1~3に該当し、実際に打てるように試行錯誤するのが4にあたります。これによって試合本番ではほとんど何も考えることなくボールを打ち返すことが出来ます。
具体的な損失関数や、モデルのパラメータは原論文や、以下を参考にしてください。
潜在変数とは
さて、先ほどの説明で出てきた潜在変数ですが、それって何?ってなる方のために少し説明します。
VAE(変分オートエンコーダー)の設計思想
VAEの詳しい説明は本記事の趣旨から逸脱するので控えますが、基本的な設計思想は
入力データの背後にある確率分布を学習し、そこから新しいデータを生成できるようにする
ということです。

よく使われる例えが、顔画像生成器の例えです。
仮に、ボタンを押すだけで顔画像を生成できる機械があったとして、我々はそれを認知することが出来ない。どのようにしてそれ知るかというと、色々な顔写真を入力としてその機械の構造(確率分布)を推定します。推定した機械の構造(確率分布)から正しいボタンを押す(サンプリングしてDecode)すると入力の画像が復元されるように学習させれば、その機械の構造(確率分布)が分かったことになります。
この時に、サンプリングされた変数を潜在変数といいます。
より詳しくはこの記事が参考になります。
2018年当時より発展した世界モデル
2018年に発表された当時より、VisionモデルもMemoryモデルも大きく進歩しました。
VisionモデルはGAN、拡散モデルなどのより高性能なモデルが登場しましたし、MemoryモデルはTransformerが登場しました。Genie3の具体的なモデルは公開されていませんが、拡散モデルやTransformerが使用されていると予想されています。
拡散モデルで画像生成
拡散モデルはライブラリが用意されていて、簡単に画像生成を実装することが出来ます。
Pythonで画像を生成してみます。
from diffusers import DiffusionPipeline
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipeline = DiffusionPipeline.from_pretrained(model_id, use_safetensors=True)
prompt = "portrait photo of a old warrior chief"
pipeline = pipeline.to("cuda")
image = pipeline(prompt).images[0]
image
これを実行すると以下の画像が生成されました。

こんなにも簡単に画像の生成が出来ます。(GeminiやGPTが普及しているので今更驚かないかもしれませんが、、)
さいごに
前回に引き続き、非常に重い内容でした。
世界モデルは仮想環境の中では人間と対話しながら行動を取ることが可能になってきました。
もしかすると、現実の世界で人間と対話しながら行動を取るのが可能になるのも目前に迫っているのかもしれません。
これからの世界モデルの発展に注目していこうと思います。
Discussion