Code und Daten für die Arbeit „Keep CALM and Explore: Language Models for Action Generation in Text-based Games“ bei EMNLP 2020.
Unser ClubFloyd-Datensatz ( calm/lm_data.zip
) wird von der ClubFloyd-Website gecrawlt und enthält 426 menschliche Gameplay-Transkripte, die 590 textbasierte Spiele verschiedener Genres und Stile abdecken.
Die Daten bestehen aus 223.527 Kontext-Aktionspaaren im Format [CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
. Wir verwenden [CLS] observation [SEP] action [SEP] next observation [SEP]
als Kontext, um Sprachmodelle (n-gram, GPT-2) zu trainieren, um next action [SEP]
vorherzusagen, und zeigen, dass sich diese Fähigkeit zur Aktionsgenerierung verallgemeinert zu unsichtbaren Spielen und unterstützt das Gameplay in Kombination mit verstärkendem Lernen.
pip install torch==1.4 transformers==2.5.1 jericho fasttext wandb importlib_metadata
git clone https://github.com/princeton-nlp/calm-textgame && cd calm-textgame
ln -s ../lm calm && ln -s ../lm drrn
(Wenn die Pip-Installation für Fasttext fehlschlägt, probieren Sie die Build-Schritte hier aus: https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
Trainierte Modellgewichte können hier sowohl für GPT-2- als auch für N-Gramm-Modelle heruntergeladen werden.
cd ../drrn
python train.py --rom_path ../games/ ${GAME} --lm_path ${PATH_TO_CALM} --lm_type ${gpt_or_ngram}
from lm import GPT2LM
model = GPT2LM ( "model_weights/gpt2" )
print ( model . generate ( "[CLS] observation [SEP] action [SEP] next observation [SEP]" , k = 30 ))
@inproceedings{yao2020calm,
title={Keep CALM and Explore: Language Models for Action Generation in Text-based Games},
author={Yao, Shunyu and Rao, Rohan and Hausknecht, Matthew and Narasimhan, Karthik},
booktitle={Empirical Methods in Natural Language Processing (EMNLP)},
year={2020}
}
Vielen Dank, Jacqueline, dass Sie die wunderbare ClubFloyd-Website gehostet und uns die Nutzung gewährt haben!
Der Code ist von TDQN (für den RL-Teil) und Huggingface Transformers (für den CALM-Teil) übernommen.
Bei Fragen wenden Sie sich bitte an Shunyu Yao <[email protected]>
.