※※※以下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」開発者がGoogleによって公開された「AlphaGo Zero」論文に触発されて、人間を教師とした導入なしで自己対戦のみで学習していくコンセプトの実験として、囲碁AI「Leela Zero」を開発し育てています。
そうはいってもGoogleのようにお金を使って強力なマシン上で自己対戦を重ねることはできないので、ユーザがリソースを提供し、自分のコンピュータ上で「Leela Zero」を対戦させてそのデータをサーバへ送る(すべての処理はスクリプトで自動化されているので、基本的にはバックグラウンドで走らせておくだけ)というかたちで「Leela Zero」の成長に寄与できる、というユーザ参加型のプロジェクトが立ち上がっています。
このプロジェクトは2017年11月に開始され、ほぼ半年たった2018年5月現在までに700万回をこえる自己対戦を積みかさねた「Leela Zero」はかなり成長し、人間を教師とした初期学習ありの既存「Leela」(現在のバージョンは「0.11.0」)より強くなっているという話もあります。
hatakazuは古いラップトップを使っているので、GPU環境を前提としているこのプロジェクトに参加するのはむずかしいのですが、そうやって成長してきた「Leela Zero」の囲碁の内容には興味があります。
打ちまわしにどのような特徴があるのか、現時点でどのていどの強さで、今後どのくらいの期間でどこまで強くなるのか。
「Leela Zero」プロジェクトのサイト
GitHubレポジトリ
1. Ubuntu 18.04 LTSへのインストール
上記GitHubレポジトリに、以下のとおり、公式インストール手順が記載されています。
--
# Test for OpenCL support & compatibility
sudo apt install clinfo && clinfo
# Clone github repo
git clone https://github.com/gcp/leela-zero
cd leela-zero/src
sudo apt install libboost-dev libboost-program-options-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev
make
cd ..
wget http://zero.sjeng.org/best-network
src/leelaz --weights best-network
--
しかし、hatakazuの場合はGPUをもたない古いラップトップで動かすため、OpenCLをもちいないかたちでコンパイルします。
$ sudo apt install clinfo && clinfo
$ git clone https://github.com/gcp/leela-zero
$ cd leela-zero/src
$ sudo apt install libboost-dev libboost-program-options-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev
* ここでテキストエディタで「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".」という記述にしたがった処置です。
$ make
$ cd ..
$ wget http://zero.sjeng.org/best-network
上記手順どおりにインストールを実行した場合、「Leela Zero」エンジン本体は「~/leela-zero/src/leelaz」に、ダウンロードした学習データは「~/leela-zero/best-network」に格納されています。
2. GTP対応囲碁GUIの設定
「Sabaki」などのGTPを解釈する囲碁GUIから利用する場合は、思考エンジンを「/home/username/leela-zero/src/leelaz」のようにフルバスで、オプションとして学習データを「--weights /home/username/leela-zero/best-network」のようにフルパスで指定してやる必要があります。
オプションとしてはGTP出力のための「--gtp」が必須となっており、プレイアウト数を指定する「-p xxxx」(大きいほど強い、指定しない場合は無制限)や、ponderの有無なども必要におうじて設定できます。
オプションは一行で記述するので、全体は「--gtp --weights /home/username/leela-zero/best-network -p 1600 --noponder」のようになります。
CPU版だと動作がおそくて思考にかなり時間がかかるので、「time_settings 0 20 1;」(持ち時間なし、一手20秒以内で着手)のような時間指定を使って、強さと考慮時間のバランスをさぐる必要があるかもしれません。
対局や分析にさいして、「Leela Zero」の機能をどれだけ利用できるかは、GUIのほうの実装によります。
