mario-gpt - GPT2でマリオレベルを生成します。論文「MarioGPT:大規模言語モデルによるオープンエンドテキスト2レベル生成」のコード https://arxiv.org/abs/2302.05981

(Generating Mario Levels with GPT2. Code for the paper "MarioGPT: Open-Ended Text2Level Generation through Large Language Models" https://arxiv.org/abs/2302.05981)

Created at: 2023-02-14 14:36:19
Language: Python
License: MIT

MarioGPT: 大規模な言語モデルによるオープンエンドのテキスト2レベル生成

紙 ハギングフェイススペース

代替テキスト


それはどのように機能しますか?

代替テキスト

MarioGPTは、ビデオゲームレベルコーパスが提供するサブセットのスーパーマリオブラザーズとスーパーマリオブラザーズ:失われたレベルのレベルでトレーニングされた、微調整されたGPT2モデル(具体的にはdistilgpt2)です。MarioGPTは、簡単なテキストプロンプトによって導かれて、レベルを生成することができます。この世代は完璧ではありませんが、これはより制御可能で多様なレベル/環境の生成のための素晴らしい第一歩であると信じています。

必要条件

  • パイソン3.8+

取り付け

ピピから

pip install mario-gpt

またはソースから

git clone git@github.com:shyamsn97/mario-gpt.git
python setup.py install

レベルの生成

私たちのモデルは素晴らしい変圧器ライブラリから構築されているため、モデルを https://huggingface.co/shyamsn97/Mario-GPT2-700-context-length でホストしています

このコードスニペットは、マリオレベルを生成するために必要な最小限のコードです。

from mario_gpt.lm import MarioLM
from mario_gpt.utils import view_level, convert_level_to_png

# pretrained_model = shyamsn97/Mario-GPT2-700-context-length

mario_lm = MarioLM()

prompts = ["many pipes, many enemies, some blocks, high elevation"]

# generate level of size 700, pump temperature up to ~2.4 for more stochastic but playable levels
generated_level = mario_lm.sample(
    prompts=prompts,
    num_steps=700,
    temperature=2.0,
    use_tqdm=True
)

# show string list
view_level(generated_level, mario_lm.tokenizer)
...
レベルを生成するためのより詳細なチュートリアルについては、ノートブックを参照してください。

今後の予定

これがコードベースに追加されるいくつかのもののリストです!

  • [x] 基本的な推論コード
  • [x]マリオバートモデルを追加
  • []紙からのインペインティング機能
  • [ ] オープンエンドのレベル生成コード
  • [ ] 紙からのトレーニング・コード
  • [ ] 異なる生成方法(例:拘束ビーム検索など)

著者

シャム・スダカラン shyamsnair@protonmail.com, https://github.com/shyamsn97

ミゲルゴンザレスデュケ migd@itu.dkhttps://github.com/miguelgondu

クレア・グラノワ clgl@itu.dkhttps://github.com/claireaoi

マティアス・フライベルガー matfr@itu.dkhttps://github.com/matfrei

エリアス・ナジャロ・enaj@itu.dkhttps://github.com/enajx

セバスチャン・リージ sebr@itu.dk, https://github.com/sebastianrisi

引用

このコードを学術的または商業的使用に使用する場合は、関連する論文を引用してください。

@misc{https://doi.org/10.48550/arxiv.2302.05981,
  doi = {10.48550/ARXIV.2302.05981},
  
  url = {https://arxiv.org/abs/2302.05981},
  
  author = {Sudhakaran, Shyam and González-Duque, Miguel and Glanois, Claire and Freiberger, Matthias and Najarro, Elias and Risi, Sebastian},
  
  keywords = {Artificial Intelligence (cs.AI), Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
  
  title = {MarioGPT: Open-Ended Text2Level Generation through Large Language Models},
  
  publisher = {arXiv},
  
  year = {2023},
  
  copyright = {arXiv.org perpetual, non-exclusive license}
}