shyamsn97/mario-gpt
요약
MarioGPT는 Super Mario Bros 레벨 데이터셋으로 파인튜닝된 GPT2 모델로, 간단한 텍스트 프롬프트만으로 게임 레벨을 생성할 수 있게 합니다. 사용자는 Huggingface를 통해 모델에 접근하거나, 제공되는 라이브러리를 사용하여 직접 학습 및 추론 코드를 실행할 수 있습니다.
핵심 포인트
- Super Mario Bros 데이터로 파인튜닝된 GPT2 기반의 레벨 생성 모델입니다.
- 텍스트 프롬프트만으로 게임 레벨을 생성하는 것이 가능합니다.
- Huggingface와 전용 라이브러리를 통해 사용 및 학습이 용이합니다.
- Java 설치를 통해 인터랙티브한 플레이 및 A* 탐색 기능을 사용할 수 있습니다.
| Architecture | Example Prompt Generations |
|---|---|
MarioGPT는 The Video Game Level Corpus에서 제공하는 Super Mario Bros 및 Super Mario Bros: The Lost Levels 레벨의 일부 데이터셋으로 학습된 파인튜닝(finetuned) GPT2 모델(구체적으로 distilgpt2)입니다. MarioGPT는 간단한 텍스트 프롬프트에 따라 레벨을 생성할 수 있습니다. 이 생성이 완벽하지는 않지만, 더 제어 가능하고 다양한 레벨/환경 생성을 위한 훌륭한 첫걸음이라고 생각합니다. 순방향(Forward generation):
- python3.8+
from pypi
pip install mario-gpt
또는 소스에서
git clone git@github.com:shyamsn97/mario-gpt.git
python setup.py install
저희 모델들은 훌륭한 transformers 라이브러리를 기반으로 구축되었기 때문에, 저희는 모델을 https://huggingface.co/shyamsn97/Mario-GPT2-700-context-length에 호스팅합니다.
이 코드 스니펫은 마리오 레벨을 생성하는 데 필요한 최소한의 코드입니다!
from mario_gpt import MarioLM, SampleOutput
# pretrained_model = shyamsn97/Mario-GPT2-700-context-length
mario_lm = MarioLM()
...
MarioGPT를 학습시키는 코드는 매우 간단하고 직관적이며, 학습 클래스는 여기에 위치하며 작은 예제 노트북이 있습니다.
import torch
from mario_gpt import MarioDataset, MarioLM, TrainingConfig, MarioGPTTrainer
# 기본 gpt 모델 생성
...
현재 생성된 레벨과 상호작용하는 방법은 두 가지가 있습니다:
- Huggingface 데모 -- multimodalart의 놀라운 작업 덕분에 브라우저에서 레벨을 생성하고 인터랙티브하게 플레이할 수 있습니다! 게다가, GPU가 제공되므로 직접 소유할 필요가 없습니다.
- play 및 astar 메서드 사용. 이들은 컴퓨터에 java가 설치되어 있어야 합니다(Java 8+ 테스트 완료). 인터랙티브한 사용에는
play()
메서드를, astar를 사용하려면run_astar
메서드를 사용합니다. 예시:
from mario_gpt import MarioLM
mario_lm = MarioLM()
prompts = [
- 기본 추론 코드 (Basic inference code)
- MarioBert 모델 추가 (Add MarioBert Model)
- 인터랙티브 시뮬레이터 추가 (Add Interactive simulator)
- 논문 기반 학습 코드 (Training code from paper)
- 논문 기반 인페인팅 기능 (Inpainting functionality from paper)
- 개방형 레벨 생성 코드 (Open-ended level generation code)
- 다양한 생성 방법 (예: 제약된 빔 검색 등) (Different generation methods (eg. constrained beam search, etc.))
Shyam Sudhakaran shyamsnair@protonmail.com, https://github.com/shyamsn97, https://shyamsn97.github.io/
Miguel González-Duque migd@itu.dk, https://github.com/miguelgondu
Claire Glanois clgl@itu.dk, https://github.com/claireaoi
Matthias Freiberger matfr@itu.dk, https://github.com/matfrei
Elias Najarro enaj@itu.dk, https://github.com/enajx
Sebastian Risi sebr@itu.dk, https://github.com/sebastianrisi, https://sebastianrisi.com/
학술적 또는 상업적 용도로 코드를 사용하시는 경우, 관련 논문을 인용해 주십시오:
@misc{https://doi.org/10.48550/arxiv.2302.05981,
doi = {10.48550/ARXIV.2302.05981},
url = {https://arxiv.org/abs/2302.05981},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기