地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

#04 LLMでマリオをプレイ「Large Language Mario」に挑戦

LLMは強力な生成AIで能力高い。しかし、それでも、マリオのステージ1-1のクリアもすんなりできなかった。

 

bwgift.hatenadiary.jp

 

そこで、Kazuhito00さんによるMobileVLMを使ってLLMマリオをプレイするnotebookはサクサク動いていたので、これを強化学習と組み合わせた。なお、強化学習を使ったコードは8-3をクリアしたNotebookをベースにした。ただし、ライブラリが古いので、ダウングレードを加えて、現行のColabでも動作をさせた。

 

github.com

 

報酬設計を、基本的にLLM判断で与え、ゴール時の報酬と死亡時のペナルティだけを固定で与えるようした。スクリーンショットを参照して状況の良しあしを0~10の数値でLLMに評価させ、それを報酬とした。進行方向へ進んだ時の報酬もない。LLMは10点満点を出したがる傾向。果たしてうまく行くのだろうか・・・。

 

とりあえず・・・5万ステップ。3時間21分ほど。一度はGOALしたようなので、この学習結果を使ってテストをすると・・・77回目でゴール。

 

Stage 1-1 学習経過

 

Stage 1-1 Goal!

 

無事に成功した。だが、LLMを使わなくてもゴールはするわけで(笑)以前のチャレンジと比較すると50000ステップでの学習結果としては悪くはない。報酬の与え方に苦労した他のステージもやってみて、LLMが良い働きをしているのか・・・は見てみたい。

マリオの強化学習で苦労した報酬設計をLLMに任せられるのであれば、それはそれで楽だ。繰り返し練習と状況判断の積み重ねがゲームプレイなんだなと改めて考えさせられました。

 

次は8-3に挑戦します。

 

リンク付け忘れてました・・・。
今回使ったコードです。

github.com