Code et données pour le papier Keep CALM and Explore : Language Models for Action Generation in Text-based Games à l'EMNLP 2020.
Notre ensemble de données ClubFloyd ( calm/lm_data.zip
) est extrait du site Web ClubFloyd et contient 426 transcriptions de jeux humains, qui couvrent 590 jeux textuels de genres et de styles divers.
Les données se composent de 223 527 paires contexte-action au format [CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
. Nous utilisons [CLS] observation [SEP] action [SEP] next observation [SEP]
comme contexte pour entraîner des modèles de langage (n-gram, GPT-2) pour prédire next action [SEP]
et montrons que cette capacité de génération d'action se généralise à des jeux inédits et prend en charge le gameplay lorsqu'il est combiné avec un apprentissage par renforcement.
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
(Si l'installation de pip échoue pour fasttext, essayez les étapes de construction ici : https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
Les poids des modèles entraînés peuvent être téléchargés ici pour les modèles GPT-2 et n-gram.
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}
}
Merci Jacqueline d'avoir hébergé le merveilleux site Web ClubFloyd et d'avoir autorisé notre utilisation !
Le code emprunte à TDQN (pour la partie RL) et Huggingface Transformers (pour la partie CALM).
Pour toute question, veuillez contacter Shunyu Yao <[email protected]>
.