🎮
エージェント版GPT~VPTマイクラでダイヤを獲得~【7分まとめ】
VPT : Learning to Play Minecraft with Video PreTraining
OpenAIがはじめてマインクラフトでダイヤを手に入れることができるエージェントを作ることに成功した。
GPT(Generative Pre-trained Transformer)は大量のテキストデータで、人間にどういう言葉を渡したら、どういう言葉を返してくるか学習。
VPT(Video PreTraining)は大量の動画データで、人間にどういう映像を渡したら、どういう行動を返してくるか学習。
大量のデータとTransformerを利用しPre-trainingして、最後に目的に合わせたデータでFine-tuningし、さらに報酬を設定し強化学習でFine-tuningを行う。
最初のPre-trainingである程度のzero-shot性能が確認された。
※エージェント版GPTとは個人的にOpenAIがGPTを意識してこのモデルを開発したのであろうという推測です。(名前が似てたり、エージェントでZeroshot性能を求めたり、その他類似点があるため)
しくみ
- 主にビデオデータ(~70k hours)だけでpolicyを学習
- 検索ワードでYoutubeの動画を絞ったり、ほかにも様々な方法できれいなデータを摘出
- しかし、ビデオデータにはaction labelがついていないので、ビデオからactionを予想するモデル(IDM(Inverse Dynamics Model))を学習
- ~2kのaction label付きの人間の行動から生成されたデータで学習
- Policyを学習することよりは簡単なので、少ないデータで大丈夫
- 環境を探索しながら学習してもいいが、そうするとエキスパートデータとのpolicyの違いからIDMの性能が低下する
- 学習されたIDMを利用してビデオにaction labelを付与し、基盤モデル(policy)を学習する
- 最後にFine-tuningをすることでさらに性能が上がる
- IDMは今後固定する
- マインクラフトでダイヤを獲得するタスクに強く関連するような動画のみで学習
- 報酬を設定してPPG/PPOで強化学習を行う
- 強化学習により、人間の操作を忘却することがあるため、事前学習したモデルの行動分布とのKLダイバージェンスを損失に加える
Behavior Cloning from Observation(BCO)(2018)との違い
先行の類似研究として存在するこのモデルだが、このモデルは分布シフトに苦しまされた。
この問題を回避するために、シンプルな2つのアプローチをとった。
- 少ないながらも、実際に人間のプレイから取得されたactionを含む教師データでIDMを学習
- 実際人間がたどり着くであろう状態に対してもIDMが適切にラベルを出力できるようになる
- IDMを固定する
逆に構造自体はほぼこれと同じである。
アーキテクチャ
IDM
- 各フレームのアクションを予測する
- 128x128x128x3の入力
- ResNet+attention(residual unmasked attention)
- 最初の層は、時間的カーネル幅5、空間的カーネル幅1の3D CNN
基盤モデル(Foundation Model)
- 5億パラメータ = GPT2の1/3
- 2億5800万パラメータ
- 7100万パラメータ
の三つを用意
結果
IDMの性能
- 左のグラフ
- キーボード操作と、マウス操作の正答率と、データサイズの関係を示している
- 右のグラフ
- 従来の環境を探索しIDMを学習する方法と、人間から集められたデータでIDMを学習する際の性能の差を表している
Zero-Shot性能(ft無し)
- 左
- IDM疑似ラベルを利用したtrain/val loss
- contractor data = IDM学習用ラベル付きの教師データ
- 途中からcontractor data のlossが増えるがvalは下がる
- おそらく、Youtuberと通常プレーヤーの行動の差が生むロス?
- 右
- 学習回数と、60分間生存(72000回の連続行動)2500エピソード内でのそれぞれのアイテムの収集量+その平均の標準誤差で陰影
- basic mining = 土、砂利、砂(道具なしで採取可能な材料)を採取すること
- 作業台の作成量が人間より少ない(5.44 vs 0.19)
- 木製の道具を作るのに必要な木の棒を無視できない量作り、様々な花を集めて染料を作り、夜に現れるゾンビを殺し、野生動物を狩り、様々なベリーやキノコを集めて食べ、ゲームが生成する村を見つけては、宝箱から様々な珍しいアイテムを集めます
- "minecraft survival for beginners “とかの検索ワードでプレイ動画を調べた
- 270k hoursを用意できたけど、クリーニングしたら70k hoursになった(=web_clean dataset)
- 30エポックの学習が有効
- 720台 V100GPU 9日
- 学習パラメータ
- Learning rate : 0.002147
- Weight decay : 0.0625
- Epochs : 30
- Batch size : 880
Behavioral CloningによるFine-Tuningの性能
- VPTの基礎モデルがこれらの「ゲーム初期」のアイテムを収集し、クラフトする能力を向上させるために、プレイヤーが新しい世界で開始してから数分以内のMinecraftの動作を対象とした2つの狭いデータセットで微調整
- contractor_house
- 10分間で主に木材、砂、土を使用して基本的な家をゼロから建設
- earlygame_keyword
- “new world”, “let’s play episode 1”で検索したデータを利用
- contractor_house
- これらのでーたをIDMでラベル付けする
これらのデータでFTするといい感じに性能が上昇した
強化学習によるFine-Tuning
10分以内にダイヤモンドのつるはしを手に入れることを達成できるように適切に報酬が設定された環境でFT
- 事前学習したモデルの行動分布とのKLダイバージェンスを損失に加えています。ただし、割合を徐々に減らして、新しい探索を促進
- PPO, PPGを利用
- PPG(Phasic Policy Gradient)は、方策は同じデータを複数回学習すると過剰適合することを防ぐために、方策をフェーズと価値を学習するフェーズに分けて学習する方法
- PPG(Phasic Policy Gradient)は、方策は同じデータを複数回学習すると過剰適合することを防ぐために、方策をフェーズと価値を学習するフェーズに分けて学習する方法
パラメータ数と性能
データサイズと性能
- 左
- FT無しのモデルでのデータサイズとの関連
- 右
- FTありでの比較
IDMの性能と基盤モデル学習への影響
Discussion