2018年07月19日

棋譜分析専用ツール「GoReviewPartner」のインストールと使いかた - Ubuntu編

SGF棋譜ファイルを分析するためのツールとして、「GoReviewPartner」というものがあります。
SGFファイルを指定したエンジンに分析させて、その結果をRSGFファイルへ出力し、RSGFファイルにふくまれた分析結果を表示するツールです。

「GoReviewPartner」プロジェクトページ
GitHubレポジトリ
Documentation Page

棋譜分析に使えるエンジンとして、いまのところ「AQ」「Leela」「Leela Zero」などを指定することができます。
「Leela Zero」エンジンを指定のうえ、「ELF OpenGo」の学習ずみネットワークを読みこませれば、「ELF OpenGo」による分析結果を見ることもできます。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10 Home 64bit) + 1TB 5400rpm HDD (Ubuntu 18.04 LTS 日本語 Remix)
--

「GoReviewPartner」をインストールするにあたって必要とされる動作要件は、ハードウェア的には、棋譜分析に利用するGTP囲碁思考エンジンの動作要件に準じます。
ソフトウェア的には、「Python 2」および「TkInter」に依存しているので、以下のコマンドを実行してあらかじめインストールしておきます。

$ sudo apt install python python-tk python-wxgtk3.0


2. 「GoReviewPartner」のダウンロードとインストール
「GoReviewPartner」の現行バージョンは「v0.13」です。
「GoReviewPartner」のインストール方法としては、ソースを配置のうえソースから起動することが推奨されているので、それにしたがってソースをダウンロードします。

$ cd
$ git clone https://github.com/pnprog/goreviewpartner


以上で、「RoReviewPartner」のソースが「~/goreviewpartner」にインストールされました。

3. 「GoReviewPartner」の起動

「GoReviewPartner」を起動するには、ターミナルを開いて、以下のコマンドを実行します。

$ cd ~/goreviewpartner
$ python main.py
3系のpythonがデフォルトになっている場合は、2系のpythonで起動するため、「$ python2 main.py」コマンドを使う必要があるかもしれません。


問題なく「GoReviewPartner」が起動できるようになったら、今後のために、かんたんな起動スクリプトを作成しておきます。

#!/bin/bash
cd ~/goreviewpartner
python main.py


上記の内容を記述したファイルを「goreviewpartner.sh」とでも名づけて保存し、「chmod +x goreviewpartner.sh」で実行権限を付与しておきます。
たとえばこのファイルをデスクトップにおいておけば、デスクトップへ移動して「./goreviewpartner.sh」コマンドを実行すれば、「GoReviewPartner」が起動するようになります。

4. 「GoReviewPartner」の設定
「GoReviewParter」で棋譜分析をおこなうにさいして、どの思考エンジンを使うかによって、設定内容がかわってきます。
以下では、「AQ」「Leela」「Leela Zero」のそれぞれについて、思考エンジンを登録するさい必要になる作業を記述します。

4-1. 「AQ」との連携
「~/goreviewpartner」ディレクトリへ移動し、「$ python main.py」を実行して「GoReviewPartner」を起動すると、メイン画面が表示されます。
なんらかの思考エンジンを登録しないと、「GoReviewPartner」で棋譜分析をおこなうことはできないので、「Settings」画面を開いて左のタブから「AQ」を選びます。
ここで「Command」欄に「AQ」実行ファイルのパスを、「Parameters」欄に「AQ」起動時に読みこませる設定ファイルを指定するオプションを、それぞれ入力します。
「Slow profile」「Fast profile」それぞれに対応する設定ファイル「aq_config_slow.txt」「aq_config_fast.txt」を、思考エンジン「AQ」があるのとおなじ「~/AQ」ディレクトリに用意し、「-byoyomi[sec] =15」「-byoyomi[sec] =5」のように、考慮時間に差をつけておきます。

Slow profile parameters
Command: /home/username/AQ/AQ
Parameters: --config=/home/username/AQ/aq_config_slow.txt

Fast profile parameters
Command: /home/username/AQ/AQ
Parameters: --config=/home/username/AQ/aq_config_fast.txt


「Test」ボタンを押してGTP通信を開始し、「genmove black」「genmove white」などのGTPコマンドをためしてみてうまく動作するようなら、忘れずに「Save settings」ボタンを押して設定を保存します。

4-2. 「Leela」との連携
「~/goreviewpartner」ディレクトリへ移動し、「$ python main.py」を実行して「GoReviewPartner」を起動すると、メイン画面が表示されます。
なんらかの思考エンジンを登録しないと、「GoReviewPartner」で棋譜分析をおこなうことはできないので、「Settings」画面を開いて左のタブから「Leela」を選びます。
ここで「Command」欄に「Leela」実行ファイルのパスを、「Parameters」欄にGTPモードで起動するのに必要となるオプションを、それぞれ入力します。
「Time per move (s)」欄には、「Slow profile」「Fast profile」それぞれに、一手ごとの分析にかける秒数を指定します。

Slow profile parameters
Command: /home/username/Leela0110GTP/leela_0110_linux_x64_opencl
Parameters: --gtp --noponder
Time per move (s): 15

Fast profile parameters
Command: /home/username/Leela0110GTP/leela_0110_linux_x64_opencl
Parameters: --gtp --noponder
Time per move (s): 5


「Test」ボタンを押してGTP通信を開始し、「genmove black」「genmove white」などのGTPコマンドをためしてみてうまく動作するようなら、忘れずに「Save settings」ボタンを押して設定を保存します。

4-3. 「Leela Zero」との連携
「~/goreviewpartner」ディレクトリへ移動し、「$ python main.py」を実行して「GoReviewPartner」を起動すると、メイン画面が表示されます。
なんらかの思考エンジンを登録しないと、「GoReviewPartner」で棋譜分析をおこなうことはできないので、「Settings」画面を開いて左のタブから「Leela Zero」を選びます。
ここで「Command」欄に「Leela Zero」実行ファイルのパスを、「Parameters」欄にGTPモードで起動するのに必要となるオプションを、それぞれ入力します。
「Time per move (s)」欄には、「Slow profile」「Fast profile」それぞれに、一手ごとの分析にかける秒数を指定します。

Slow profile parameters
Command: /home/username/leela-zero/leelaz
Parameters: --gtp --noponder --weights best-network
Time per move (s): 15

Fast profile parameters
Command: /home/username/leela-zero/leelaz
Parameters: --gtp --noponder --weights best-network
Time per move (s): 5


「Leela Zero」の特徴として、自己対戦データを集積して学習を重ねることで強くなりつづけている、ということがあえられます。
定期的に「http://zero.sjeng.org/best-network」をおとづれて、あたらしい学習ずみネットワークを取得することによって、その特徴を楽しむことができます。
ダウンロードしたファイルを「best-network」という名前に変更し、「/home/username/leela-zero」ディレクトリに設置すればO.K.です。
学習ずみネットワークを指定する「--weights best-network」部分で、「ELF OpenGo」の学習ずみネットワークを指定すれば、「ELF OpenGo」による棋譜分析結果を利用することもできます。
「Test」ボタンを押してGTP通信を開始し、「genmove black」「genmove white」などのGTPコマンドをためしてみてうまく動作するようなら、忘れずに「Save settings」ボタンを押して設定を保存します。

5. 「GoReviewPartner」の使いかた
GTP囲碁思考エンジンと連携させる設定が完了したら、いよいよ「GoReviewPartner」を使ってSGFファイルを分析することができるようになります。
「GoReviewPartner」を起動したあと、メイン画面から「Run a SFG file analysis」ボタンを押下し、分析にかけたいSGFファイルを指定します。
複数の思考エンジンを設定してある場合は、「Bot to use for analysis:」欄でじっさいの分析に使用するエンジンを選択することができます。
「Start」ボタンを押下すると、指定したエンジンを起動して棋譜分析がはじまりますが、けっこう時間がかかるのでゆっくりまちます。
棋譜分析が完了したら、分析したSGFファイルとおなじ場所に、おなじ名前で拡張子が「RSGF」になったファイルが生成されます。
「GoReviewPartner」メイン画面から「Open a RSGF file for review」を押下し、生成されたRSGFファイルを選択すれば、思考エンジンによって考察された内容を追跡していくことができるようになります。
左側の碁盤上でじっさいの手順を再現していくと、右側の碁盤上に思考エンジンが検討した候補手が表示され、候補手のどれかにカーソルを重ねることで変化手順を追いかけていくこともできます。


参考ウェブページ一覧表(順不同)

http://yuntingdian.com/goreviewpartner
https://github.com/pnprog/goreviewpartner
http://yuntingdian.com/goreviewpartner/grp-documentation/doc.htm
posted by hatakazu at 22:57| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください