iris - トランスフォーマーはサンプル効率の良いワールド モデルです

(Transformers are Sample Efficient World Models)

Created at: 2022-08-23 15:59:35
Language: Python
License: GPL-3.0

トランスフォーマーは Sample Efficient World Models (IRIS) です

Transformers are Sample Efficient World Models
Vincent Micheli *、Eloi Alonso *、François Fleuret
* 同等の貢献を示す

100k 環境ステップ後の IRIS エージェント、つまり 2 時間のリアルタイム エクスペリエンス Asterix、Boxing、Breakout、Demon Attack、Freeway、Gopher、Kung Fu Master、Pong でプレイする IRIS

tl;dr

  • IRIS は、世界モデルで何百万もの想像上の軌跡をトレーニングしたデータ効率の高いエージェントです。
  • 世界モデルは、離散オートエンコーダーと自己回帰トランスフォーマーで構成されています。
  • 私たちのアプローチは、ダイナミクス学習をシーケンス モデリングの問題として投げかけます。そこでは、オートエンコーダーが画像トークンの言語を構築し、Transformer がその言語を時間の経過とともに構成します。

ビブテックス

このコードまたはペーパーが役立つ場合は、次のリファレンスを使用してください。

@article{iris2022,
  title={Transformers are Sample Efficient World Models},
  author={Micheli, Vincent and Alonso, Eloi and Fleuret, François},
  journal={arXiv preprint arXiv:2209.00588},
  year={2022}
}

設定

  • PyTorch (トーチとトーチビジョン)をインストールします。torch==1.11.0 および torchvision==0.12.0 で開発されたコード。
  • 他の依存関係をインストールします。
    pip install -r requirements.txt
  • 警告: Atari ROM は依存関係と共にダウンロードされます。これは、それらを使用するライセンスがあることを認めたことを意味します。

トレーニングの実行を開始する

python src/main.py env.train.id=BreakoutNoFrameskip-v4 common.device=cuda:0 wandb.mode=online

デフォルトでは、ログはweights & biases

wandb.mode=disabled
に同期され、オフに設定されています。

構成

  • すべての設定ファイルは にあります。
    config/
    メインの設定ファイルは
    config/trainer.yaml
    です。
  • 構成をカスタマイズする最も簡単な方法は、これらのファイルを直接編集することです。
  • 構成管理の詳細については、 Hydraを参照してください。

実行フォルダ

新しい実行はそれぞれ にあり

outputs/YYYY-MM-DD/hh-mm-ss/
ます。このフォルダは次のように構成されています。

outputs/YYYY-MM-DD/hh-mm-ss/
│
└─── checkpoints
│   │   last.pt
|   |   optimizer.pt
|   |   ...
│   │
│   └─── dataset
│       │   0.pt
│       │   1.pt
│       │   ...
│
└─── config
│   |   trainer.yaml
|
└─── media
│   │
│   └─── episodes
│   |   │   ...
│   │
│   └─── reconstructions
│   |   │   ...
│
└─── scripts
|   |   eval.py
│   │   play.sh
│   │   resume.sh
|   |   ...
|
└─── src
|   |   ...
|
└─── wandb
    |   ...
  • checkpoints
    : モデル、そのオプティマイザー、およびデータセットの最後のチェックポイントが含まれています。
  • media
    :
    • episodes
      : 視覚化の目的で、トレーニング / テスト / 想像のエピソードが含まれています。
    • reconstructions
      : オートエンコーダーによる再構成と一緒に元のフレームが含まれています。
  • scripts
    : run フォルダーから、次の 3 つのスクリプトを使用できます。
    • eval.py
      :
      python ./scripts/eval.py
      実行を評価するために起動します。
    • resume.sh
      : 起動
      ./scripts/resume.sh
      して、クラッシュしたトレーニングを再開します。
    • play.sh
      : 実行のいくつかの興味深い側面を視覚化するためのツール。
      • 起動
        ./scripts/play.sh -a
        して、エージェントが環境内でライブでプレイするのを確認します。左側のパネルには元の環境が表示され、右側のパネルには、エージェントが個別のオートエンコーダーを通じて実際に見ているものが表示されます。
      • 起動
        ./scripts/play.sh -w
        して、キーボード入力でライブ軌跡を展開します (つまり、ワールド モデルでプレイします)。対話を高速化するために、Transformer のメモリは 20 フレームごとにフラッシュされることに注意してください。
      • ./scripts/play.sh
        に含まれるエピソードを視覚化するために起動し
        media/episodes
        ます。

結果ノート

このフォルダー

results/data/
には、IRIS とベースラインの生スコア (各ゲームおよび各トレーニング実行) が含まれています。

ノート

results/results_iris.ipynb
を使って紙から図を再現します。

クレジット