コペンハーゲンIT大学(IT University of Copenhagen)の研究チームは2月12日、「MarioGPT」の研究論文を公開した。「MarioGPT」とは、大規模言語モデル(LLM)を用いて『スーパーマリオブラザーズ』のステージを生成する試みだという。
「MarioGPT」は、GPT-2を用いて『スーパーマリオブラザーズ』のステージをAI生成させる試みだ。GPT-2とは、OpenAIの開発する大規模言語モデル。大規模なテキストデータを学習し、さまざまな言語処理タスクをおこなうことができる言語モデルだ。後継モデルであるGPT-3.5は、自然言語処理ツール「ChatGPT」において用いられている。
「MarioGPT」では、条件となるワードを入力すれば、本目的用に調整されたGPT-2によってステージが生成されるという。たとえば条件を「多くの土管、多くの敵(many pipes, many enemies)」とすれば、土管だらけかつクリボーだらけのステージが生成される。さらに研究において生成されたステージは、約88%が実際に攻略可能なステージとして構築されていたとのことだ。
ただしまれに条件どおりのステージが生成されない場合もみられたという。研究論文においても失敗例として、「敵なし(no enemy)」の条件に対してクリボーが生成されたステージ画像が添付されている。
なおGPT-2はテキストデータを扱うことしかできない。そのため「MarioGPT」として用いるにあたり、GPT-2には『スーパーマリオブラザーズ』のステージをテキストデータに変換して学習させているという。ステージ内の破壊不可能なブロックはX、破壊可能なブロックはSといった具合に、すべてのオブジェクトを文字に置き換え。テキストデータとしてステージを再構築したうえで、学習データに使用しているわけだ。なお「MarioGPT」においては敵の表現が簡略化されており、1種類のみしか生成できないとのこと。上記画像でクリボーのみが生成されていたのはこのためだ。
これまでには「MarioGPT」のほかにも機械学習によるステージ生成技術として、プロシージャル生成(Procedural Content Generation)技術が先行して研究されてきた。近年の研究ではGenerative Adversarial Networks(GANs)などのアルゴリズムが採用。ステージ学習用のコーパス(データベース)としてVideo Game Level Corpusが用いられ、『スーパーマリオブラザーズ』や『Doom』などのステージがAIによって生成されているという。なおVideo Game Level Corpusとは、ゲームのステージ生成を目的とする機械学習用に最適化されたコーパス(データベース)である。
「MarioGPT」では、そうした先行研究におけるプロシージャル生成技術の課題点が克服されているとのこと。具体的には、「MarioGPT」ではGPT-2を用いることで、先述のように生成するステージの条件を自然な言葉で指定可能。さらにGPTシリーズのような大規模言語モデルは多様なコーパス(データベース)で訓練されている。これが、指定された条件を盛り込みつつクリア可能という、複雑な特徴を併せもつステージを生成する能力に繋がっているそうだ。また「MarioGPT」をノベルティサーチ(novelty search)と呼ばれるアルゴリズムと組み合わせることで、生成されるステージの多様性も確保されているとのこと。プレイヤーがクリア可能かつ多彩なステージが生成されるわけだ。
なお不思議なことに、「MarioGPT」の研究論文が発表される前日に、ニューヨーク大学の研究者を中心にしたチームも類似の研究論文を発表していた。こちらはGPT-3を用いて、パズルゲーム『倉庫番』のステージをAI生成するという試みだ。
OpenAIのGPTシリーズがゲームに応用されるケースは今回が初めてではない。たとえば中世RPG『Mount & Blade II: Bannerlord』向けには、NPCとの会話テキストを自動生成する機能がユーザーにより開発されていた(関連記事)。一方で「MarioGPT」は、テキストではなくゲームのステージを生成するという点が画期的といえる。コペンハーゲンIT大学の研究論文においては、大規模言語モデルと、ノベルティサーチのようなほかのアルゴリズムの組み合わせが将来の研究の可能性を広げたと述べられている。GPTシリーズを含む言語モデルは、今後もさまざまなかたちでゲーム開発に利用される可能性を秘めているのかもしれない。
「MarioGPT」のコードはGitHubで公開されている。