Código y datos para papel Keep CALM and Explore: modelos de lenguaje para la generación de acción en juegos basados en texto en EMNLP 2020.
Nuestro conjunto de datos de ClubFloyd ( calm/lm_data.zip
) se rastrea desde el sitio web de ClubFloyd y contiene 426 transcripciones de juegos humanos, que cubren 590 juegos basados en texto de diversos géneros y estilos.
Los datos constan de 223.527 pares contexto-acción en el formato [CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
. Usamos [CLS] observation [SEP] action [SEP] next observation [SEP]
como contexto para entrenar modelos de lenguaje (n-gram, GPT-2) para predecir next action [SEP]
y mostrar que esta capacidad de generación de acciones se generaliza a juegos invisibles y respalda la jugabilidad cuando se combina con el aprendizaje por refuerzo.
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 la instalación de pip falla para fasttext, pruebe los pasos de compilación aquí: https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
Los pesos de los modelos entrenados se pueden descargar aquí para los modelos GPT-2 y 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}
}
¡Gracias Jacqueline por alojar el maravilloso sitio web de ClubFloyd y permitirnos usarlo!
El código toma prestado de TDQN (para la parte RL) y Huggingface Transformers (para la parte CALM).
Si tiene alguna pregunta, comuníquese con Shunyu Yao <[email protected]>
.