紙のコードとデータ Keep CALM and Explore: Language Models for Action Generation in Text-based Games at EMNLP 2020。
ClubFloyd データセット( calm/lm_data.zip
) は、ClubFloyd Web サイトからクロールされたもので、さまざまなジャンルやスタイルの 590 のテキストベースのゲームをカバーする 426 の人間によるゲームプレイのトランスクリプトが含まれています。
データは[CLS] observation [SEP] action [SEP] next observation [SEP] next action [SEP]
という形式の 223,527 個のコンテキストとアクションのペアで構成されます。 [CLS] observation [SEP] action [SEP] next observation [SEP]
コンテキストとして使用し、言語モデル (n-gram、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
(fasttext の pip インストールが失敗した場合は、こちらのビルド手順を試してください: https://github.com/facebookresearch/fastText#building-fasttext-for-python)
cd calm
unzip lm_data.zip
python train.py
GPT-2 モデルと 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}
}
素晴らしい ClubFloyd ウェブサイトをホストし、使用を許可してくれたジャクリーンに感謝します。
コードは TDQN (RL 部分用) および Huggingface Transformers (CALM 部分用) から借用しています。
ご質問がございましたら、姚俊佑<[email protected]>
までお問い合わせください。