
マインクラフトではじめる人工知能 / CraftAssist(1)
1. CraftAssistとは
「CraftAssist」は、「MineCraft」の世界で、人間のプレイヤーと人工知能のアシスタントボットが共同してタスクを達成するための、研究プラットフォームです。プレイヤーとアシスタントボットは自然言語でコミュニケーションをとります。
長期的には、積極的に新しい概念やスキルを学ぶために人間と相互作用し協力するアシスタントボットを開発することが目標になります。
・facebookresearch/craftassist: A virtual assistant bot in Minecraft
「CraftAssist」の利用手順は次の通りです。
(1)CraftAssistantリポジトリのインストール
(2)MineCraftサーバーの起動
(3)MineCraftクライアントのインストール
(4)MineCraftクライアントの起動
(5)アシスタントボットの起動
今回は、「CraftAssist」を「Ubuntu 18.4」(Mac上のVirtual Box)にインストールして、アシスタントボットのサンプルを実行する方法を説明します。
※「macOS 10.14.6」へのインストールは失敗しました。
2. CraftAssistantの依存関係のインストール
はじめに、CraftAssistantの依存関係をインストールします。
・CMake: C言語のmake
・Glog: C言語のロギングライブラリ
・Boost: C言語の便利ライブラリ
・Eigen: C言語のベクトル/行列演算のライブラリ
インストールのコマンドは次の通りです。
$ sudo apt-get install cmake
$ sudo apt install libgoogle-glog-dev
$ sudo apt-get install libboost-all-dev
$ sudo apt-get install libeigen3-dev
3. AnacondaでPython 3.7の仮想環境の作成
「Anaconda」で「Python 3.7」の仮想環境を作成します。
※「Python 3.6」でのインストールは失敗しました。
$ conda create -n craftassist python=3.7 anaconda
作成した仮想環境をアクティブにします。
$ conda activate craftassist
以降のコマンドは、仮想環境内で実行します。
4. git-lfsのインストール
「git-lfs」をインストールするには、次のコマンドを入力します。
「git-lfs」は、Gitで大きいサイズのバイナリファイルをバージョン管理するためのパッケージです。
$ sudo add-apt-repository ppa:git-core/ppa
$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt-get install git-lfs
$ git lfs install
5. CraftAssistリポジトリのビルド
以下のコマンドで、「CraftAssistリポジトリ」をチェックアウトします。
craftassistフォルダにソースコード一式がダウンロードされます。githubのssh設定は必要です。
このリポジトリには、「CraftAssistantリポジトリ」には、「MineCraftサーバー」(Cuberite)と「アシスタントボット」のサンプルが含まれます。
$ git lfs clone --recursive git@github.com:facebookresearch/craftassist.git
以下のコマンドで、craftassistフォルダに移動して、ビルドします。
$ cd craftassist
$ make
6. MineCraftサーバーの起動
以下のコマンドで、MineCraftサーバー(Cuberite)を起動します。
「localhost:25565」で起動します。
python ./python/cuberite_process.py
7. MineCraftクライアントのインストール
「MineCraftクライアント」は通常のゲーム「Minecraft Java Edition」です。MineCraftの公式サイトで購入(3,000円)してダウンロードします。
Ubuntuの場合は、「Minecraft.deb」をダウンロードして、以下のコマンドでインストールします。
sudo apt install ./Minecraft.deb
8. MineCraftクライアントのバージョンの指定
MineCraftは最近「v1.14」をリリースしました。CraftAssistがサポートするのは「v1.12」までです。そこで、以下の手順で「v1.12」に戻します。
(1)タイトルの「起動構成」をクリック
(2)新規作成ボタンを押す。
(3)起動構成の作成でバージョン「release 1.12.1」を選択して作成ボタンを押す。
(4)作成した起動構成を選択
9. MineCraftクライアントの接続
MineCraftクライアントで起動中のMineCraftサーバーに接続する手順は次の通りです。
(1)MineCraftの「Multiplayer」ボタンクリック。
(2)「Direct Connect」をクリック。
(3)「localhost:25565」を入力して「Join Server」をクリック。
10. アシスタントボットの起動
アシスタントボット(対話式V0エージェントの実行)を起動するコマンドは次の通りです。MineCraftサーバーとは別の端末(ターミナル)を開き、仮想環境内で実行します。
以下の依存関係をインストールします。
※自分の環境でcraftassist_agent.pyを実行しようとして要求されたパッケージになります。
$ pip install sentry_sdk
$ pip install torch
$ pip install word2number
$ pip install python-Levenshtein
$ pip install ipdb
$ pip install spacy
以下のコマンドで、アシスタントボットを起動します。
$ python ./python/craftassist/craftassist_agent.py
新しいアシスタントボットがゲームに参加してきます。
「t」キーでダイアログボックスを開き、文字を入力してEnterで決定することで、アシスタントボットと会話できます。
「w」「a」「s」「d」キーで移動し、「左右マウスクリック」でブロックを破壊・配置し、「e」キーで配置するブロックを選択します。