← ブログ

Genie 3ワールドモデル:インタラクティブな環境を生成する仕組み

Genie 3のワールドモデル技術を深掘り:プロンプトから一貫性のある制御可能な3D空間を生成する方法。

1 min read
Genie 3ワールドモデル:インタラクティブな環境を生成する仕組み

小さなつまずきから始まった。ワークショップのためにシンプルなインタラクティブシーンを試作しようとしていた。凝ったものではなく、キャラクターが動いて世界が信頼できる形で応答する、小さな空間があれば十分だった。ゲームエンジンを起動して物理演算を組み込み、衝突判定を追いかけながら午後を過ごしたくはなかった。​Genie​と「ワールドモデル」という言葉を何度も目にするうちに、**Genie 3のワールドモデル**がその重荷を担ってくれるのではないかと思い始めた。

私はDoraだ。最新のものを追いかけているわけではない。私が追いかけているのは、静かな種類のスピード——精神的な負担を軽減してくれるもの——だ。最近(今年の1月)、より新鮮なメモを手に改めて振り返った。目立ったのは機能の一覧ではなく、実際に小さな現実的なタスクにワールドモデルを使ったときの感触、そしてGenieスタイルのアプローチが役立つ場面と邪魔になる場面だった。

ワールドモデルとは何か

ワールドモデルは学習されたシミュレーターだ。ルールを手でコーディングする(重力はこう動く、壁はこう機能する)のではなく、シーンで次に何が起こるかを予測するモデルを訓練する。うまくいけば、フレームの見た目だけでなく、時間をかけてフレームを意味のあるものにする根本的なルールまで学習する。

HaとSchmidhuberのWorld Modelsにおける元々のフレーミングが好きだ:世界をコンパクトな表現に圧縮し、その表現がどのように変化するかを学習し、それを計画や行動に活用する。後続の研究はそのアイデアをビデオに拡張した。モデルは大量の映像を観察し、一種の内部的な物理法則を学習する——少なくとも見える範囲では。そしてモデルに(アクションで)働きかけると、次の状態を予測する。

これはテキストからビデオを生成するものとは異なる。通常のジェネレーターは尤もらしいフレームを描く。ワールドモデルは原因と結果を保持しようとする。左を押せばプレイヤーは左に動く。ボールが床に当たれば、学習した内容と一致する形で跳ね返る。見返りはインタラクティビティだ。モデルは世界を見せるだけでなく、学習したルールの中で生きることを可能にする。

実際に、その「内側にいる」感覚はいくつかの要素にかかっている:

  • コンパクトな状態空間(モデルがそれで考えられるように)、
  • ダイナミクスモデル(状態がどのように変化するかを知るために)、
  • そして入力をモデルのアクション概念に結びつける方法。

Genieスタイルのシステムはその三つすべてを目指している。私を引き寄せたのはその約束だ:Genie 3のワールドモデルは、小さなプロトタイプのための配線をスキップしながら、信頼できる動作を実現できるだろうか?

Genie 3が世界を構築する方法

ここでは「Genie 3」を、新しい世代のGenie研究の現在の略称として使っている。文書化された基盤は2024年の論文、​Genie: Generative Interactive Environments​で、コアとなるアプローチが説明されている。オンライン上ではバージョンや名称が変動するが、仕組みはほぼ同じだ。

ドキュメントと私が再現できた内容をもとに、要点を平易な言葉で説明する:

  • まず、システムは視覚的な語彙を学習する。 生のフレームは乱雑で高次元なので、Genieはビデオを離散トークンに圧縮するトークナイザーを訓練する。これにより、世界はモデルが操作できるコンパクトなコードで「話す」ようになる。
  • 次に、世界がどのように動くかを学習する。 ダイナミクスモデルは、現在のトークンとアクションの概念を与えられたとき、次のトークンを予測する。ここから物理的に感じ始める。モデルは質量や力を計算するのではなく、物理のように見える一貫した運動パターンを予測する——なぜならそれを繰り返し見てきたからだ。
  • 第三に、ビデオからアクションを学習する。 ゲームの内部コントロールを読み取る代わりに、Genieはビデオ(ゲームプレイ映像が役立つ)の中で人々がインタラクトする様子を観察することでアクション空間を推定する。そして実行時に、キーボードやコントローラーの信号がその学習されたアクション空間にマッピングされる。まるでモデルが理解できる方言を話すようなものだ。
  • 最後に、トークンをデコードして見えるフレームに戻し、一歩ずつインタラクトできるようにする。

これが私にとって有用だったのは、新規性のためではなく、必要な労力のレベルのためだ。2Dプラットフォーマーでキャラクターが動く短いクリップ(約20秒)から始めた。トークン化、事前訓練済みバックボーンの上に小さなダイナミクスヘッドをフィッティング、入力マッピングのキャリブレーションという数回の試行を経て、キャラクターを動かして世界が応答するのを見ることができた。最初の実行は脆かった。エッジがちらついた:キャラクターは幽霊のように時折壁をすり抜けた。しかしループは短かった:調整し、実行し、観察する。一晩いじり続けると、毎回謝ることなくデモできる何かに動作が落ち着いた。

二つの小さな瞬間が際立っていた:

  • 潜在的な制御はより親切だった。ピクセルではなくトークンで作業することで、小さな変更が予測可能な効果をもたらした。ピクセル単位のアーティファクトを追いかけることに時間を費やさなかった。
  • 入力マッピングが本当の作業だった。キーストロークをモデルの推定したアクション空間に変換するのは、予想以上に試行錯誤が必要だった。しかしそれがうまくいったとき、コントロールの感覚は即座だった——新しいトラックパッドの感度を学ぶようなものだ。

注意点:意図する動作に合ったデータがまだ必要だ。クリップにジャンプが含まれていなければ、クリーンなジャンプは期待できない。モデルはハルシネーションを起こす可能性があるが、学習したものの流れに沿ってハルシネーションを起こす。

一貫性と物理演算の扱い

「リアルに感じる」と言うとき、通常は二つのことを指している:時間が本来あるべき流れ方をしていること、そして空間がまとまっていること。Genieスタイルのワールドモデルは両方で進歩を遂げているが、いくつかの癖がある。

時間的一貫性

初期の実行には、ビデオモデルでよく見られる同じ揺れがあった:オブジェクトがドリフトし、その後元に戻る。時間的一貫性は、モデルと戦う代わりにモデルの強みを活かすことで改善した。頻繁なアクション入力を伴う短いロールアウトで、より明確なアンカーが得られた。10秒間の自由実行生成を試みると、縫い目が現れた。

実際的には、モデルは短期的なモメンタムを非常によく保持する傾向がある。ボールが転がっていれば、転がり続ける。キャラクターがジャンプの途中なら、弧は次の数十フレームにわたって滑らかに続く。より長い弧、特にカメラパンや遮蔽の後では、スレッドを失って新しいものを作り出すことがある。時間がコントロールされた形で経過していることを思い出させるために、数フレームごとに穏やかな「ping」(小さなno-op入力)を追加し始めた。これでちらつきが多少減った。

遅延対安定性の問題もある。速いデコードは魅力的だが、小さなコストに気づいた:速度を追求すると、わずかな時間的ジッターが忍び込んだ——ほとんど見えないが、ステアリング中には感じられる。デコーダーをやや遅く、安定した設定にダイヤルすることで、コントロールループがより安定した感じになった。分単位の時間は節約できなかったが、迷いを節約できた。

空間的コヒーレンス

空間的コヒーレンスとは、物が存在すべき場所に留まり続けるかどうか、そして世界が自分自身のレイアウトを尊重するかどうかだ。衝突が明白なテストとなる。Genieスタイルのモデルでは、衝突はコーディングされるのではなく学習される。壁がトレーニングクリップで明確かつ一貫していれば、モデルは通常それを境界として扱う。壁が柔らかいか曖昧であれば、漏れを期待すること。

シンプルで高コントラストのシーンの方が良い結果が得られた。クリーンなシルエットを持つプラットフォーマーは、パララックスレイヤーのある忙しいシーンよりも境界違反が少なかった。モデルが空間を壊したとき——例えばキャラクターがコーナーをすり抜けるとき——二つの対処法を見つけた:

  • アクション空間を調整する。時々モデルは従っていたが、コントロールが強く押しすぎていた。最大入力の大きさを制限することで、学習した壁を「圧倒」するのを防いだ。
  • キーフレームで再中心化する。数秒ごとに実際のフレームをフィードする(純粋な自己回帰の代わりに)ことで、モデルを実際に学習したマップに引き戻した。エレガントではないが、効果があった。

**もう一つの注意点:**カメラの動き。ソースビデオでカメラが安定していると、モデルは空間をよく保持した。カメラがドリフトすると、モデルは時折ワールドの動きとカメラの動きを混合し、オブジェクトが泳いだ。できる限りカメラをロックすること。

従来の方法に対する利点

ゲームエンジンで手作りしたプロトタイプと比較すると、Genie 3のワールドモデルはトレードオフのように感じた:精度を諦め、スピードと柔軟性を得た。小さな実験では、それは公平な取引だった。

  • セットアップコストが低い。 物理演算もタイルマップも組み込まなかった。クリップをフィードし、入力をマッピングし、その日のうちにインタラクティブなものができた。節約された時間は時計の上では大きくはなかった(おそらく数時間)が、精神的な負担の軽減は重要だった。決断が減り、うさぎの穴が減った。
  • 自然なスタイル転送。 ビジュアルとダイナミクスが一緒に学習されるため、ソースクリップの「感触」が引き継がれる。入力に応答しながらもムーディーでざらざらした世界が欲しければ、ライティングパスなしにそこに到達できる。
  • 統合されたイテレーション。 調整は一か所で行われる——データとモデルだ。物理パネル、シェーダー、ステートマシンを切り替えることがなかった。フィードバックループは一つだ。

もちろん、限界もある。ピクセル完璧な衝突、決定論的な物理演算、またはドリフトのない長い時間軸が必要なら、従来のエンジンがまだ勝る。そしてデータが動作を示さなければ、モデルはそれを確実に発明しない。本番環境や安全性が重要な場合は、ワールドモデルにガードレールを組み合わせるか、コードにフォールバックする。

なぜ私にとって重要なのか:ワールドモデルはアイデアを試す摩擦を減らす。それをリリースするためではなく、次のステップに値するかどうかを確かめるために。プロトタイプの中で生きているなら、それは贈り物だ。