1 ポイント 投稿者 GN⁺ 2024-10-14 | 1件のコメント | WhatsAppで共有
  • DIAMOND は、Atari 環境を離散潜在トークンに圧縮せず、拡散世界モデルでシミュレーションしたうえで、その中で強化学習エージェントを学習させるアプローチ
  • 次のフレームはエージェントの 行動 と過去のフレームを条件として生成され、この過程を繰り返すことでプレイ可能な世界モデルを構成する
  • デノイジング段階が少ない場合、DDPM は不安定だったが、EDM は1段階でも安定した軌跡を作れた。DIAMOND は一貫性のために n=3 を使用
  • Atari 100k で平均人間正規化スコア 1.46 を達成し、100k フレーム条件で世界モデル内学習エージェントの新たな最高性能を記録
  • CS:GO への適用には 87時間の人間プレイデータ、2段階の低解像度予測+アップサンプリングパイプライン、381M パラメータモデルが使われ、RTX 3090 で約 10 FPS でプレイ可能

DIAMOND が解こうとしている世界モデリング問題

  • 世界モデル は、強化学習エージェントをより安全かつサンプル効率よく学習させるためのアプローチ
  • 最近の世界モデルは主に、環境ダイナミクスを 離散潜在変数 のシーケンスとしてモデル化する
  • このような圧縮表現は、強化学習に重要な 視覚的ディテール を取りこぼす可能性がある
  • DIAMOND は、画像生成で強力な成果を上げた拡散モデルを世界モデルに適用する
  • DIAMOND の正式名称は DIffusion As a Model Of eNvironment Dreams

拡散世界モデルの仕組み

  • 拡散モデルはゲームの 次のフレーム を予測するよう学習される
  • 入力にはエージェントの行動と過去のフレームが含まれる
  • エージェントが新しい行動を繰り返し与えると、拡散モデルがゲーム状態を更新する
  • この自己回帰的な生成過程により、拡散モデルはエージェントが学習しプレイできる 世界モデル として機能する

高速実行のためのデノイジング設計

  • 世界モデルを高速化するには デノイジング段階数 を減らす必要がある
  • DDPM は、デノイジング段階数が少ないと自己回帰誤差が蓄積して不安定になる
  • EDM は、1段階のデノイジングでも安定した軌跡を生成する
  • Boxing 環境では、1段階のデノイジングが可能な結果同士を補間し、予測が難しい黒いプレイヤーがぼやけて生成される
  • デノイジング段階を増やすと、複数の可能な遷移モードの中から特定のモードをよりうまく選択でき、時間方向の一貫性が高まる
  • DIAMOND の拡散世界モデルは n=3 のデノイジング段階を使用する
  • 白いプレイヤーの動きはポリシーが制御し、その行動が世界モデルに与えられるため、デノイジング段階数に関係なく正しく予測される

Atari 100k の性能

  • DIAMOND は、離散トークンベースの IRIS よりも重要な 視覚的ディテール をうまくモデル化する
  • 拡散世界モデル内で強化学習エージェントを学習した結果、Atari 100k で平均人間正規化スコア 1.46 を達成
  • このスコアは人間を46%上回る水準
  • 100k フレーム条件で、世界モデル内のみで学習したエージェントとして新たな最高性能

CS:GO へ拡張した方法

  • DIAMOND の拡散世界モデルは、Counter-Strike: Global Offensive のような3D環境シミュレーションにも適用される
  • CS:GO 版は、強化学習エージェントが収集したデータの代わりに、87時間の人間プレイ からなる固定データセットを使用する
  • 学習コストを下げるために2段階パイプラインを適用
    • まず低解像度でダイナミクスを予測する
    • その後、2つ目のモデルでアップサンプリングする
  • モデルサイズは Atari 用の 4.4M パラメータから、CS:GO 用の 381M パラメータ に拡大
    • このうち 51M パラメータは追加アップサンプラーに相当する
  • アップサンプラーには、視覚生成品質を高めるために 確率的サンプリング を使用する
  • ダイナミクスモデルには確率的サンプリングは不要
  • CS:GO モデルは RTX 4090 で12日間学習され、RTX 3090 で約 10 FPS でプレイ可能

直接実行と公開資料

  • コード、エージェント、プレイ可能な世界モデルは GitHub リポジトリ で公開されている
  • インストール例では次のコマンドを使用する
git clone https://github.com/eloialonso/diamond.git
cd diamond
conda create -n diamond python=3.10
conda activate diamond
pip install -r requirements.txt
  • Atari 世界モデルの実行:
python src/play.py --pretrained
  • CS:GO 世界モデルの実行:
git checkout csgo
python src/play.py
  • 詳細は 論文 で確認できる

残る失敗モードとスケーリングの限界

  • DIAMOND の拡散世界モデルには複数の失敗モードが残っている
  • データと計算資源をさらにスケールさせれば、多くの面で改善が期待される
  • しかし、限られたモデルメモリに起因する問題のように、スケーリングだけでは解決できない限界 もある
  • 興味深い限界の一つは、モデルが連続ジャンプを許してしまう点
    • モデルはジャンプがシーンの幾何に与える効果を一般化する
    • 学習データに連続ジャンプが十分な頻度で現れないため、連続ジャンプは不可能であるべきだという事実を学習できない

1件のコメント

 
GN⁺ 2024-10-14
Hacker News の意見
  • この動画 https://x.com/Sentdex/status/1845146540555243615 は、自分の夢にすごく似て見える。
    ときどき夢の中で高く跳ぼうとすると、まさにあんなふうに別の場所へ切り替わって、物体もずっとあんな感じで変化し続ける。
    実際の夢体験にどれほど近いかを見るのは驚きだ。

    • 明晰夢を見たとき、すべての文字が壊れて見えた。
      拡散モデルが注目され始めたとき、生成画像内の崩れたテキストも似ているというつながりが思い浮かんだ。
      人間の無意識の一部が、拡散モデルの原理とかなり似た形で動いている手がかりなのかもしれない。
    • 詳しく観察してみると、起きているときでも心はしばしば同じことをしているように見える。
      視界ではそれほど目立たないが、注意と思考そのものではよりはっきり現れる。
    • 夢が人によってどれほど違うのかは興味深い。
      自分の夢は視覚的にはかなり一貫しているので、夢の中で Google Maps を使ったこともあるし、地理は間違っていたが内部的には一貫していた。
      ただし夢の中で明晰夢を見たことはないので、その違いが影響している可能性もある。
    • だから限定的には期待している。
      夢の状態では何かの接続が切れているが、ここにもそれに似た断絶が明らかにある。
      このモデルには、動物が持つ強い空間推論や連続性への期待のような世界モデルが欠けているように見える。
      もちろんそれも、おそらく学習されるものなのだろうが。
    • 以前 DMT-5 をやったときにあまりにも似て見える。
  • これは3億パラメータのモデルで、大きな llama-3 の 1/1300 の規模であり、500万フレームを使って GTX4090 で12日間学習したもの。
    2015年なら大手テック企業がやっていたレベルの作業だった。
    大規模言語モデルのように産業規模で同じことをやれば、本当にすごいことになりそうだ。

    • それには具体的にどんな利点があるの?
      Counter Strike はすでにこれよりずっと滑らかに動くし、膨大な計算資源も無駄にしない。
    • RTX4090 で12日あれば十分なら、じきにインターネット上の誰もが自分のモデルを学習し始めそうだ。
    • ほとんど同じことを書こうとして来たら、このコメントを見た。
      進歩の速さは本当に驚くほどだ。
      実に興味深い時代に生きている。
    • 4090 は2枚だけど、だいたい合っている。
  • かなりわくわくする結果だ。
    すでにゲームエンジンでリアルな物理近似を生成するのに使えそうに見える。
    より重くリアルな物理エンジン、あるいは CGI でゲームプレイの断片を大量に作り、モデルに物理を近似するよう学習させれば、軽量な物理エンジンができる。
    煙のダイナミクス用、爆発用のように、特化したモデルを複数置くこともできる。
    幻覚があっても、ゲームでよくある物理バグより悪くはなさそうだ。

    • 「幻覚があっても、ゲームでよくある物理バグより悪くはない」かどうかはよく分からない。
      物理バグはよくあるが、最も深刻な進行不能バグから優先順位を付けて直せる。
      ブラックボックスモデルだと、それをやるのはずっと難しくなる。
    • ニューラルネットワーク推論のほうが安いと思う根拠が気になる。
      ニュートン物理学はすでに非常によく知られていて、計算もかなり効率的だ。
      数十億パラメータの関数近似でニュートン物理を計算することが、どうしてより安くなり得るのか?
      まともな物理シミュレーションより高くつき、精度も低いように見える。
    • 1,300万パラメータのニューラルネットワーク推論が、従来の物理エンジンを動かすより軽いと思う?
    • 物理バグは修正できる一貫した問題だ。
      機械学習モデルにはそうした保証がない。
      こういう方式は、わざと雑に作ったゲームの文脈でなら何とかなる可能性が高い。
    • マルチプレイヤーでも動くのだろうか?
      視覚効果だけならよいが、ゲームプレイに影響するならプレイヤーごとに違う結果が出るのでは?
  • 実際に試した人に聞きたい。
    処理の中で何らかのゲームマップを尊重したり作ったりしているのか、それとも同じ場所に二度戻れず、空間の次元もおかしいサイケデリックな夢の中の散歩のようなものなのか?
    ゲームマップは有限なのか?

    • 最初の動画を見るだけでも、プレイヤーの前に構造物が突然現れる場面がある。
      どんなマップも作っておらず、ゲーム状態らしきものに対する意味のある認識もなさそうだ。
      LLM ベースの RPG に似ている。
      剣を拾って空のバッグに入れた後、突然パン一斤を取り出して食べられる、という感じだ。
    • 記事をざっと眺めただけだが、180度振り返って反対方向に歩いても、さっき来た場所とは対応しない夢のような体験になりそうだ。
      無限マップに近いように見える。
    • 実際にやってみたが、違った。
      どんな種類のマップ認識もない。
      訓練データセットにあるものはかなり正確に思い出す想起/再生型 AIに近く、壁に向かって歩いていくようなデータにない行動をすると完全に崩壊して、でたらめを吐く。
      もっともらしいでたらめだが、それでもでたらめだ。
  • これは 2018年に Schmidhuber のグループがやっていた仕事だ。
    https://worldmodels.github.io/
    この点は指摘しておきたい。

    • 確かに時代を先取りしていた。
      ここではという表現が的確で、運転シーンも夢の中で運転している感覚に似ている。
    • 論文の最初の参考文献に入っていて、相応のクレジットも受けているので、参考文献まで見ない人たちのために便宜上リンクを提供した、ということだろう。
    • プレイしてみたら面白かったし、長く生き残りすぎるとものすごく不安定になる。
  • Stable Diffusionの基本前提、つまりノイズ除去のプロセスを逆にたどってリアルな画像を生成するということは、おおよそ理解できた気がする
    ただ、私の理解ではこれは常にピクセルレベルで行われる
    これを3Dアセットレベルで試みる研究はあるのだろうか?
    位置と向きを持つゲームエンジンのアセットを差し込み、もっともらしいシーンが再構成されるまで合わせ込むような形だ
    可能なら実際の地図と実際の物理を「夢見る」ことができ、こうしたデモに出てくるやや汚い出力を避けられるのではないか?

    • 現時点で最も近いのは3D Gaussian Splattingだと思う
      これまでは複数の角度から撮った写真で1つのシーンを学習し、点群の密度を調整してボリュームとして再構成する用途に使われてきた
      だが、複数の異なるシーンでモデルを学習し、ランダムな点群に拡散を行って新しいシーンを生成することも可能かもしれない
      点群のリアルタイムレンダリングも非常に効率的なので、ポリゴンジオメトリの代わりに、ものすごくリアルなゲーム世界を作るのに使える
      すでに誰かがそれを考えているようだ: https://ar5iv.labs.arxiv.org/html/2311.11221
    • 画像モデルはピクセルレベルでノイズを除去しているわけではない
      拡散は潜在空間で起こり、これがすべてをうまく機能させた大きなブレークスルーの一つだった
      ピクセルと潜在空間の間をエンコード/デコードするモデルがある
      潜在空間は必要な概念を必要な次元にエンコードでき、通常はピクセル空間より次元が低い
      そのため、ノイズの混じった潜在空間を得て、拡散モデルでノイズを除去し、その後、別のモデルである変分オートエンコーダーでピクセル空間へデコードする
    • 厳密には3Dアセットではないが、拡散モデルは自動運転アルゴリズム評価用の交通生成、例えば車両軌跡の生成に使われている
      こうした車両はかなり頻繁に衝突する
      例: https://github.com/NVlabs/CTG
    • ピクセルレベルでこれを生成するのが次の段階だと思う
      説明されているリバースエンジニアリング的な方法は理解しやすいので魅力的に見えるかもしれない
      それでも、ピクセルレベル生成に集中するのが正しいアプローチだと思う
      やや汚い出力は、おそらく短期間で改善されるだろう
      Doom(https://gamengen.github.io/)とこの取り組みで可能だと証明されたので、HDかつ幻覚を最小限に抑えてスケールさせる正しい構造を探す研究は、すでにもっと進んでいる可能性が高い
      動画でもすでに同じことが起きているので、近いうちに似たレベルのブレークスルーが見られそうだ
    • 通常はピクセルレベルではなく、VAEのようなモデルの潜在空間レベルで行われる
      画像生成は最終画像のピクセルより出力数が少ないこの空間で行われ、その後VAEを通じてピクセルに変換される
  • ニューラルネットワークの画像や動画にある地獄のようなノイズに、人々が気づかないのがずっと理解できない
    私には最初から常に見分けられ、恐ろしく感じられた

    • 具体的に地獄のようなノイズとは何を指しているのか気になる
      画像がほぼ常に何らかの形で奇怪だというのは自分も感じるが、同じことを言っているとは限らない
      どんな体験なのか、もう少し説明してくれる?
    • 微妙だが不安にさせるざわめき、騒がしさ、不協和音のようなものなら、ある程度何を言いたいのか分かる気がする
    • 目にもノイズは多い
  • さっきざっと確認してみたが、AMDカードとROCM PyTorchで非常によく動作する
    短時間動かす分にはかなり良さそうに見える
    時間が経つとディテールがかなり速く失われ、武器がカラフルなゴミのようになりがちだ
    動画の中に、壁に向かって歩いて入っていくとどうなるかを示しているものがない点も指摘しておきたい
    その状況はあまり優雅には処理できない

  • 本当に面白くなるのは、最新のGTAと関連する実写映像まで学習させたうえで、Vice Cityのような古いゲームのビジュアルをリアルタイムでアップグレードする用途に使う場合だ
    時間的一貫性の不足のせいで、まだ夢のように感じられるだろうが、土台が一貫しているので大きな問題にはならなさそうだし、見た目はすごいことになるはずだ

    • 既存のゲームエンジンが描いた画像を描き直す方式は機能するし、驚くような結果も出す
      指摘の通り、時間的一貫性は良くない
      遠くにある山の低解像度の緑のピクセルを、あるフレームでは果樹として、次のフレームでは松の木として解釈することもあり得る
      2021年に似たことをしたデモがある:
      https://www.youtube.com/watch?v=3rYosbwXm1w
    • GTAのようなゲームは機能が多すぎて複雑な分岐も多いので、動かすのは難しそうだ
      街を目的なく運転する程度なら可能で、それだけでも非常に格好いいだろうが
    • これをビデオゲームに使うことだけに注目する理由が分からない
      重要なのはビデオゲーム世界を再生成できることではなく、現実世界をシミュレーションできることだ
      必要なデータを安価かつ容易に合成できるため、ゲーム映像を学習に使っているだけだ
      このシステムは自分がゲームをシミュレートしているとは知らない
      現実世界の映像を数千〜数百万時間分とエージェント入力を与えれば、現実世界のシミュレーションが得られる
    • より古い例に加えて、GTAで行った新しい取り組みもある
      https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
    • 視覚的アップグレードとして使うのはDLSSがやっていることにかなり近いので、もっともらしく聞こえる
  • だんだん信じられないレベルになっている
    古いフレームと入力 → 新しいフレームという強いループなら、Counter-Strikeではない画像から始めるとどうなるのか気になる
    あるいは、モデルが見たことのないマップを入れたら追従してくれるのか、それとも既知のCounter-Strikeマップに戻ってしまうのか?

    • すべての「夢」がそのマップだけなのを見ると、Dust 2しか知らないようだ
      こういうものを見るとDust 2の夢を見ている感じがするので、「夢」と呼びたくなる