Open7

The Neural MMO Challenge

みつよしみつよし

概要

https://www.aicrowd.com/challenges/neurips-2023-the-neural-mmo-challenge

  • NeuralMMOという、プログラミングしたbotをMMO世界に放ってスコアを競うゲームプラットフォームを使ったプログラミング競技
  • 期間:2023/12/16 9:00 JST (2023/12/15 00:00 UTC)
  • Prize:$20K in prizes sponsored by Parametrix.ai
  • 参加方法: aicrowd.com にアカウントを作り、上のチャレンジのリンクから参加
  • リソース:
    • Discord
      • welcomeチャンネルに各種リンクがあります
みつよしみつよし

NeuralMMO

食事、資源回収、戦闘、経済などの機能が入ったMMOゲーム世界に、自動で判断・行動するキャラクターを放ち生存とスコアリングを行うゲームです。
キャラクターのAIは強化学習で生成することが想定されています。

ゲームの仕様は # TODO: リンク入れる

ブラウザークライアント で動作しているデモを見ることができます。

Screenshot 2023-11-18 at 13 32 14

みつよしみつよし

競技内容

※ 競技の複雑さの割に公式の説明が貧弱で、実際に動かしてからでないと非常にわかりづらいです

競技内容とルールは以下のランディングページに記載があります。
https://neuralmmo.github.io/beta/_build/html/rst/landing.html

競うのはキャラクターを実際にMMO世界で動作させた結果のスコアの高さです。
キャラクターAIを生成するのにはReinforced Learning, Curriculum Generation, No Hold Barredの3つ※のtrack(手法)がありますが、競技自体はひとつです。

※ ランディングページにはLLMを使うtrackも記載があるが、正式にサポートされているわけではない

みつよしみつよし

始め方

構成

強化学習の学習でGPUを使うため、Windows上にWSLを入れてその上で学習させ、開発はMacからssh接続でWSLに繋いで行います。

みつよしみつよし

Submission

gitlab.aicrowd.com に指定の構成でリポジトリを作り、そのリポジトリに指定のタグ名でタグをpushすることでsubmissionします。

公式のSubmission方法は、チャレンジページの Submission タブから Create Submission をクリックして開く 新規Submission ページに書かれていますが、リポジトリを説明の通りに構成するとSubmitに失敗する ため以下の説明を読みましょう

  1. チャレンジ に参加していない場合は参加する
  2. https://gitlab.aicrowd.com にアカウントを作り、ssh鍵の登録など必要な準備を済ませておく
  3. https://gitlab.aicrowd.com/Mudou/start-kit をフォークする
    • 全ファイルをpullしてくるには git-lfs が必要なので入れておく
    • このリポジトリにSubmitに必要なものが全て入っており、botのモデルも含まれるためSubmitすれば実行されてスコアが計上され、リーダーボードに載る
    • リポジトリのREADMEに色々書いてあるが、Submitするだけならば環境を作ったり何かを実行する必要はない
  4. start-kitのaicrowd.jsonの内容を、新規Submissionページに書かれている Your repository should have a aicrowd.json file with following fields: の内容と置き換える。 この際、grader_idフィールドを削除しておく grader_idは過去回に必要だったフィールドで、残ったままSubmitするとSubmissionに失敗する
  5. 新規Submissionページの Submitting セクションを参考に、バージョン番号を入れたgit tagを作成・remoteへpushする
    • おそらく gitlab.aicrowd.com に特定の名前のtagがpushされるとSubmissionとして扱うようになっている
  6. リポジトリのissueに、Submissionを受け付けてキューに入っている or 失敗した旨のissueが自動的に生成される