MiacisはUSIプロトコルに対応した将棋用思考エンジンです。将棋所、将棋GUIなどを用いて対局、検討を行うことができます。
基本的にAlphaZeroを模倣したものとなっており、深層強化学習を利用した評価関数を用いてモンテカルロ木探索を行います。
独自の工夫点として、評価値をスカラーではなくカテゴリカル分布を用いて出力します。これはCategorical DQNにヒントを得たものとなっています。
コンパイルにはcmakeを利用します。ライブラリとして
- CUDA(cuDNN含む)
- TensorRT
を必要とします。環境構築は複雑なのでDockerを利用することをお勧めします。
DockerおよびNVIDIA Container ToolkitをインストールしてあるUbuntuを前提とします。
- Dockerfileをダウンロードする
wget https://raw.githubusercontent.com/SakodaShintaro/Miacis/master/docker/Dockerfile
- miacis_imageというイメージを作成する
docker build -t miacis_image:latest .
- miacis_imageをもとにmiacis_containerというコンテナを作成する
docker run --gpus all -it --name miacis_container miacis_image:latest bash
- ビルドする
mkdir ./Miacis/build/
cd ./Miacis/build/
cmake -DCMAKE_BUILD_TYPE=Release ../src
make -j$(nproc) Miacis_shogi_categorical
正常にコンパイルが進むとコンテナ内の/root/Miacis/build
以下にMiacis_shogi_categorical
というプログラムが得られます。