※※※以下2018年8月7日追記※※※
コンピュータ囲碁プログラム「Leela Zero」のインストールと使いかた、および「Leela Zero」を便利に使える専用囲碁GUI「Lizzie」と連携させる方法について、LinuxむけとWindowsむけにべつべつの記事を書きました。
Linuxむけ記事
・コンピュータ囲碁プログラム「Leela Zero」のインストールと使いかた - Ubuntu編
・「Leela Zero」専用囲碁GUI「Lizzie」のインストールと使いかた - Ubuntu編
Windowsむけ記事
・コンピュータ囲碁プログラム「Leela Zero」のインストールと使いかた - Windows編
・「Leela Zero」専用囲碁GUI「Lizzie」のインストールと使いかた - Windows編
あわせてご参照ください。
※※※以上2018年8月7日追記※※※
せっかく「Leela Zero」をインストールしても、対局しかできないのは残念なことで、できることならこのどんどん強くなっていく囲碁AIが考えていることを学んで棋力向上につなげたいものです。
そうした目的にぴったりな「Leela Zero」専用GUIとして、「
Lizzie - Leela Zero Interface」が公開されています。
「Lizzie」を使うことで、「Leela Zero」と対局できるだけではなく、「Leela Zero」のエンジンを利用して棋譜を分析することもできます。
棋譜分析では勝率の推移はもちろん、候補手とそれぞれの勝率、そのあとの読み筋を表示させることが可能で、hatakazuのように囲碁の勉強に「Leela Zero」を使ってみたい場合はたいへん役にたちます。
なお、「Lizzie」を動かすには「Java 8」以降が要件となっているため、必要におうじてあらかじめ「Oracle Java 8」をインストールしておきます。
1行めは、バージョンのちがうJavaがはいっていて、あらかじめそれを削除する場合のみ実行します。
$ sudo apt-get purge openjdk*
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
「Lizzie」を起動したときに、「canberra-gtk-moduleをロードできない」というようなエラーが出るときは、該当するモジュールをインストールしておきます。
$ sudo apt install libcanberra-gtk-module
1. 「Lizzie」用特別仕様「Leela Zero」の準備
棋譜分析のために必要な情報を「Leela Zero」から取得するため、思考している内容を常時出力する機能をもつように、「Leela Zero」をコンパイルしてやる必要があります。
具体的には、
「Leela Zero」レポジトリの「UCTSearch.cpp」ファイルを
「Lizzie」サイドから提供されているものに依拠して変更のうえ、コンパイルを実行するということです。
ほとんどの部分がくりかえしになりますが、「Lizzie」で利用できるように「Leela Zero」をコンパイルする手順は、以下のように記述されます。
$ sudo apt install clinfo && clinfo
$ git clone https://github.com/gcp/leela-zero leelaz-for-lizzie
$ cd leelaz-for-lizzie/src
$ sudo apt install libboost-dev libboost-program-options-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev
*1 ここでテキストエディタで「config.h」を開き、現行バージョンでは74行めにあたる「#define USE_OPENCL」行を削除します。
「https://github.com/gcp/leela-zero#requirements」の「If you do not have a GPU, modify config.h in the source and remove the line that says "#define USE_OPENCL".」という記述にしたがった処置です。
*2 「Leela Zero」オリジナルの「UCTSearch.cpp」ファイルを、「Lizzie」提供のものを参考に編集します。
「Lizzie」提供の「UCTSearch.cpp」の最後のほうに、「// lizzie」コメントのついた行が10行ほどあるので、それを「Leela Zero」オリジナルの「UCTSearch.cpp」の該当する場所(前後の行を比べていけば容易に判別可能)に埋めこんでやればO.K.です。
「UCTSearch.cpp」の変更を保存したうえで、コンパイル作業をすすめます。
$ make
$ cd ..
$ wget http://zero.sjeng.org/best-network
上記手順どおりにインストールを実行した場合、「Lizzie」用特別仕様の「Leela Zero」エンジン本体は「~/leelaz-for-lizzie/src/leelaz」に、ダウンロードした学習データは「~/leelaz-for-lizzie/best-network」に格納されています。
ここまでの準備が完了したら、「Lizzie」のインストールにすすみます。
2. 「Lizzie」のインストール
「
https://github.com/featurecat/lizzie/releases」から「
lizzie-mac-linux.zipをダウンロードして、ホームディレクトリに展開します。
そうして生成する「~/lizzie」ディレクトリに、あらかじめ準備しておいた思考エンジンと学習データをコピーします。
$ cd
$ wget https://github.com/featurecat/lizzie/releases/download/0.4/lizzie-mac-linux.zip
$ unzip lizzie-mac-linux.zip
$ cp ~/leelaz-for-lizzie/src/leelaz ~/lizzie
$ cp ~/leelaz-for-lizzie/best-network ~/lizzie/network
3. 「Lizzie」の使いかた
「Lizzie」を起動するためには、ターミナルから「$ cd ~/lizzie」 -> 「$ java -jar Lizzie.jar」コマンドを実行します。
はじめて起動するときにじゃっかん時間がかかりますが、「Lizzie」の碁盤画面があらわれたら、すべての作業がうまく完了したということです。
デフォルトであらわれるのは、白黒両方を手動入力するかたちで、「Leela Zero」エンジンの思考内容を表示させていく画面です。
「x」キーを押すことで、入力できるコマンドの一覧表が表示されます。
「Leela Zero」との対局を開始するためには「n」キー、「Leela Zero」に分析させるsgfファイルを読みこむためには「o」キーを押下します。
「Leela Zero」との対局では、手番と置石は設定できますがコミは七目半固定で、日本ルールでの対局はできなそうなのが残念なところです。
棋譜分析では、考えられる候補手が勝率および思考深さとともに表示され、候補手のどれかにカーソルを重ねるとそのあとの読み筋が表示される仕組みになっています。
4. 起動スクリプトの作成
問題なく「Lizzie」が起動できるようになったら、今後のために、かんたんな起動スクリプトを作成しておきます。
#!/bin/bash
cd ~/lizzie
java -jar Lizzie.jar
上記の内容を記述したファイルを「lizzie.sh」とでも名づけて保存し、「chmod +x lizzie.sh」で実行権限を付与しておきます。
たとえばこのファイルをデスクトップにおいておけば、デスクトップへ移動して「./lizzie.sh」コマンドを実行すれば、「Lizzie」が起動するようになります。
posted by hatakazu at 21:24|
Comment(0)
|
囲碁ソフトのこと
|