Kode dan data untuk makalah Keep CALM and Explore: Model Bahasa untuk Pembuatan Tindakan dalam Game Berbasis Teks di EMNLP 2020.
Kumpulan data ClubFloyd kami ( calm/lm_data.zip
) dijelajahi dari situs web ClubFloyd dan berisi 426 transkrip permainan manusia, yang mencakup 590 permainan berbasis teks dari beragam genre dan gaya.
Data tersebut terdiri dari 223.527 pasangan konteks-tindakan dengan format [CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
. Kami menggunakan [CLS] observation [SEP] action [SEP] next observation [SEP]
sebagai konteks untuk melatih model bahasa (n-gram, GPT-2) untuk memprediksi next action [SEP]
, dan menunjukkan bahwa kemampuan pembuatan tindakan ini menggeneralisasi untuk permainan yang tak terlihat dan mendukung gameplay bila dikombinasikan dengan pembelajaran penguatan.
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
(Jika instalasi pip gagal untuk fasttext, coba langkah-langkah pembuatan di sini: https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
Bobot model terlatih dapat diunduh di sini untuk model GPT-2 dan 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}
}
Terima kasih Jacqueline karena telah menghosting situs web ClubFloyd yang luar biasa dan mengizinkan penggunaan kami!
Kode ini dipinjam dari TDQN (untuk bagian RL) dan Huggingface Transformers (untuk bagian CALM).
Untuk pertanyaan apa pun, silakan hubungi Shunyu Yao <[email protected]>
.