Код и данные для бумаги Keep CALM and Explore: Language Models for Action в текстовых играх на EMNLP 2020.
Наш набор данных ClubFloyd ( calm/lm_data.zip
) получен с веб-сайта ClubFloyd и содержит 426 транскриптов игрового процесса, охватывающих 590 текстовых игр различных жанров и стилей.
Данные состоят из 223 527 пар контекст-действие в формате [CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
. Мы используем [CLS] observation [SEP] action [SEP] next observation [SEP]
в качестве контекста для обучения языковых моделей (n-грамма, GPT-2) для прогнозирования next action [SEP]
и показываем, что эта способность генерации действий обобщает к невидимым играм и поддерживает игровой процесс в сочетании с обучением с подкреплением.
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
(Если установка pip для fasttext не удалась, попробуйте выполнить шаги сборки здесь: https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
Вес обученной модели можно скачать здесь как для моделей GPT-2, так и для n-грамм.
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}
}
Спасибо Жаклин за хостинг замечательного веб-сайта ClubFloyd и разрешение на его использование!
Код заимствован у TDQN (для части RL) и Huggingface Transformers (для части CALM).
По любым вопросам обращайтесь к Шунюй Яо <[email protected]>
.