2018年07月10日

GTP対応囲碁GUI「GoGui」のインストールと使いかた - Ubuntu編

コンピュータ囲碁プログラムとよばれるものは一般的に、現在の盤面の状況を分析して次の着手を導き出す囲碁思考エンジンそのものを指すことがおおく、それじたいは対局や棋譜分析に適した操作画面をそなえてないのがふつうです。
そうした操作画面は囲碁GUI(Graphical User Interface)とよばれるべつのソフトウェアが担当しており、囲碁思考エンジンを囲碁GUIと連携させることによって、グラフィカルな碁盤画面をつうじて囲碁思考エンジンとやりとりできるようになるわけです。
そして、囲碁思考エンジンと囲碁GUIとは、GTP(Go Text Protocol)という共通の言葉によってむすびつけられています。
囲碁GUIは現在の盤面の状況をGTP経由で囲碁思考エンジンに伝え、次の着手を導き出すよう命令し、囲碁思考エンジンも計算によって導き出された着手をGTP経由で囲碁GUIに返し、それを囲碁GUIがグラフィック画面の碁盤上に表示するという方法で、ユーザと囲碁思考エンジンとの対局や思考エンジンによる棋譜分析が可能になっているのです。
そのため、いろいろな囲碁思考エンジンを対局や棋譜分析に使うためには、GTPに対応した囲碁GUIをインストールして囲碁思考エンジンと連携させ、GTP対応囲碁GUIをとおして囲碁思考エンジンを制御してやる必要があることになります。
GTPに対応した囲碁GUIとしては、「GoGui」と「Sabaki」が一般的によく使われていると思います。
ここでは、「GoGui」をUbuntu18.04にインストールする方法と、基本的な使いかたについて記述していきます。

「GoGui」プロジェクトページ
「Sabaki」プロジェクトページ

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) + 1TB 5400rpm HDD (Ubuntu18.04)
--

「GoGui」をインストールするさいの動作要件ですが、ハードウェア的には特別な要請はなく、Linuxが動いているコンピュータならたいてい問題なく動かせるはずです。
ソフトウェア的には、「GoGui」は「Javaランタイム」をあてにしているので、「Javaランタイム」をあらかじめインストールしておく必要があります。

*****「Java」ランタイムインストール*****
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

Java SE Downloads」ページから「Java SE 8u171/ 8u172」 -> 「JDK」のボタンを押して、「Java SE Development Kit 8 Downloads」へすすみ、Linux版圧縮ファイル「jdk-8u171-linux-x64.tar.gz」をクリックしてインストールファイル「jdk-8u171-linux-x64.tar.gz」をダウンロードします。
ダウンロードしたディレクトリへ移動して、このファイルを解凍すると「jdk1.8.0_171」ディレクトリができるので、それを「/usr/lib/jdk1.8.0_171」に設置します。

$ tar xzvf jdk-8u171-linux-x64.tar.gz
$ sudo mv jdk1.8.0_171 /usr/lib


そのあと、エディタで「~/.bashrc」に以下二行を追記して、パスをとおしておきます。

export JAVA_HOME=/usr/lib/jdk1.8.0_171/
export PATH=$PATH:$JAVA_HOME/bin


「$ java -version」コマンドを実行して、バージョン情報が正しく表示されれば、パスの設定はO.K.です。

$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)


2. 「GoGui」インストールファイルのダウンロード
「GoGui」の最新バージョンは「1.4.9」で、ダウンロードページからLinux用インストールファイル「gogui-1.4.9.zip」を取得できます。

3. 「GoGui」のインストール
ダウンロードしたファイルを解凍すると、「gogui-1.4.9」ディレクトリが生成するので、そのディレクトリへ移動します。
インストール場所「~/gogui」および「Java」ランタイムの場所「/usr/lib/jre1.8.0_171」を指定して、インストールスクリプトを実行します。

$ unzip gogui-1.4.9.zip
$ cd gogui-1.4.9
$ ./install.sh -j /usr/lib/jdk1.8.0_171 -p ~/gogui


ファイルのコピーが終わったら、パスのとおった「~/bin」にシンボリックリンクをはっておけば、端末から「gogui」コマンドで起動できるようになります。

$ ln -s ~/gogui/bin/gogui ~/bin
$ gogui &


4. 囲碁思考エンジンの登録
「GoGui」はあくまでも囲碁GUIなので、対局や棋譜分析をおこなうためには、GTP経由で囲碁思考エンジンとやりとりする必要があります。
囲碁思考エンジンが考え、囲碁GUIがそれを画面に表現する、私たちは囲碁GUIをとおして囲碁思考エンジンと対局しているということです。
そのため、あらかじめ「GoGui」にGTP対応囲碁思考エンジンを登録し、それとやりとりできるように設定しておかないといけません。
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば囲碁思考エンジン「AQ」実行ファイルを「~/AQ」ディレクトリにインストールしている場合、「コマンド:」欄に入力する絶対パスは「/home/username/AQ/AQ」のようになります。
そしてその下の「ワーキングディレクトリ:」欄に、「AQ」実行ファイルをインストールしているディレクトリのパス、ここではたとえは「/home/username/AQ/」を入力します。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「AQ」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「AQ」を選ぶと、「AQ」が起動して対局や棋譜分析に利用できるようになります。
「AQ」の場合は「AQ.exe」とおなじ場所に設定ファイル「aq_config.txt」が存在し、そこで各種パラメータを指定する方法ですが、使用する思考エンジンによっては「コマンド:」欄で絶対パスといっしょにパラメータを渡してやる必要があります。
各種思考エンジンの「GoGui」への登録方法については、それぞれのインストール方法を紹介するページに項目をもうけて、記述していきたいと思っています。

5. 「GoGui」の基本的な使いかた
登録した囲碁思考エンジン(たとえば「AQ」)と対局するには、メニューバーの「プログラム」 -> 「プログラムの起動」とすすみ、「AQ」を選んで「AQ」を起動します。
この状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックすれば、「AQ」との対局を楽しむことができます。
メニューバーの「ツール」から「GTPシェル」をクリックすると、「GTPシェル」が開き、そこに囲碁GUI「GoGui」と囲碁思考エンジン(たとえば「AQ」)とのやりとりが表示されます。
便利な使いかたとしては、検討したい局面を指定して、そこで囲碁思考エンジン(たとえば「AQ」)がどう打つかをみることができます。
メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって局面をつくったあとで、たとえば「AQ」を起動している場合、黒番の局面なら「AQに黒を打たせる」、白番の局面なら「AQに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。


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

https://github.com/ymgaq/AQ/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95%EF%BC%88Windows%EF%BC%89
posted by hatakazu at 21:46| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月09日

囲碁対局・観戦・棋譜編集アプリケーション - Windows編

ふだん囲碁の勉強(対局、観戦、棋譜管理など)に使っている、便利なアプリケーションについて、ダウンロードサイトやインストール手順などの情報をまとめておきます。

1) KGS Go Server対局ソフト(KGSで打つために必要)
KGS Go Server」サイトへいき、「For Windows」をクリックして、Windows版インストールファイル「cgoban.exe」を取得します。
取得したファイルをダブルクリックすると、セットアップがはじまるので、基本的にデフォルトの設定のまますすめていけばO.K.です。
デスクトップにショートカットが生成するので、それをダブルクリックして、問題なく起動できることを確認します。

2) 東洋囲碁対局ソフト(東洋囲碁で打つために必要)
東洋囲碁 | 対局の仕方 | 対局ソフトを入手する」ページへいき、「対局ソフトをダウンロードする」ボタンを押して、Windows版インストールファイル「Tygemigo.exe」を取得します。
取得したファイルをダブルクリックすると、セットアップがはじまるので、基本的にデフォルトの設定のまますすめていけばO.K.です。
デスクトップにショートカットが生成するので、それをダブルクリックして、問題なく起動できることを確認します。

2-1) 東洋囲碁で対局したときの棋譜は、独自の形式で保存されるので、それをもっともあつかいやすいSGF形式に変換するサービスが公開されています。
Rubyスクリプトも公開されています。

http://sowhat.ifdef.jp/SGF/gib2SGF.html

3) PANDA-EGG(タイトル戦の解説つき棋譜などを再生するのに必要)
PANDA EGGのダウンロード」ページへいき、「ここをクリックすると、専用ソフトのダウンロード(無料)が始まります。」ボタンを押して、Windows版インストールファイル「Setup-EGG.exe」を取得します。
取得したファイルをダブルクリックすると、セットアップがはじまるので、基本的にデフォルトの設定のまますすめていけばO.K.です。
デスクトップにショートカットが生成するので、それをダブルクリックして、問題なく起動できることを確認します。

4) Kiin Editor(使いやすい棋譜編集ソフト)
囲碁棋譜再生・編集ソフト Kiin Editor」ページへいき、「ダウンロード開始」ボタンを押して、Windows版インストールファイル「SetupKiinEditor.msi」を取得します。
取得したファイルをダブルクリックすると、セットアップがはじまるので、基本的にデフォルトの設定のまますすめていけばO.K.です。
デスクトップにショートカットが生成するので、それをダブルクリックして、問題なく起動できることを確認します。

5) MultiGo(機能豊富な棋譜編集ソフト。記号や文字や数字を自由に使え、盤面のスクリーンショットもとれる)
MultiGo Home」から「MultiGo Download」ページへいき、「Latest Version Download」セクションに表示されている「MultiGo 4.4.4」をクリックして、Windows版圧縮ファイル「multigo.zip」を取得します。
取得したzipファイルを解凍すると、Windows用インストールファイル「MultiGoSetup.exe」が生成します。
生成したインストールファイルをダブルクリックすると、セットアップがはじまるので、基本的にデフォルトの設定のまますすめていけばO.K.です。
デスクトップにショートカットが生成するので、それをダブルクリックして、問題なく起動できることを確認します。
posted by hatakazu at 22:03| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月08日

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

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:Windows10 Home 64bit
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD + 1TB 5400rpm HDD
--

「GoReviewPartner」をインストールするにあたって必要とされる動作要件は、棋譜分析に利用するGTP囲碁思考エンジンの動作要件に準じます。

2. 「GoReviewPartner」インストールファイルのダウンロード
「GoReviewPartner」の現行バージョンは「v0.13」です。

2-1. GTP思考エンジンをべつに用意する場合
「Leela」「Leela Zero」「AQ」などのGTP囲碁思考エンジンがすでにインストールされている、もしくはこれからべつにインストールするのであれば、「Go Review Partner Home Page」の「Bundled download for Windows」表の一番下にある「No bot | Download」をクリックして、Windows用インストールファイル「goreviewpartner-v0.13.zip」を取得すればO.K.です。

2-2. GTP思考エンジンとセットでインストールする場合
GTP囲碁思考エンジンがインストールされてない場合は、思考エンジンの好み(日本ルールに強いとか置碁むけとか)とコンピュータのスペック(GPUの有無など)におうじて、おなじ表から適切なエンジンがバンドルされたパッケージをダウンロードします。

Leela 0.11 (CPU only): よくわからないときはとりあえずこれを選択。GPU非搭載コンピュータで問題なく動作し、さまざまな条件の碁(コミ、置石)をこなせる。
Leela 0.11 (GPU with OpenCL): 「OpenCL1.1」以上に対応したGPU搭載コンピュータで動作する。オーソドックスな棋風で、さまざまな条件の碁(コミ、置石)を高いレベルでこなす。置碁に最適。
Leela Zero 0.15 - 64bit」: NVIDIA製もしくはAMD製の外部GPU搭載コンピュータで動作する。中国ルールの碁に最適。学習ずみネットワークが更新されるメリットあり。
AQ 2.1.1 (GPU with Cuda): 「CUDA 3.0」以降に対応したNVIDIA製GPU搭載コンピュータで動作する。日本ルールの碁に最適。

3. 「GoReviewPartner」のインストール
GTP思考エンジンをべつに用意する場合は、「3-1.」手順完了後「4. 設定」をへて「5. 使いかた」へ、GTP思考エンジンとセットでインストールする場合は、「3-2.」手順完了後「4. 設定」を飛ばして「5. 使いかた」へすすんでください。

3-1. GTP思考エンジンをべつに用意する場合
ダウンロードした「goreviewpartner-v0.13.zip」ファイルを右クリックして「すべて展開」を選ぶと、「goreviewpartner-v0.13」フォルダができるので、そのフォルダの名前を「goreviewpartner」に変更しておきます。
この「goreviewpartner」フォルダのなかに棋譜分析ツールのインタフェースである「GoReviewPartner.exe」がふくまれているので、この「goreviewpartner」フォルダをそのまましかるべき場所(たとえば「C:\Users\username\goreviewpartner」など)に設置すれば、インストール作業は終了です。

3-2. GTP思考エンジンとセットでインストールする場合
思考エンジンがバンドルされたパッケージ、たとえば「AQ 2.1.1 (GPU with Cuda)」バンドルパッケージの場合、ダウンロードした「goreviewpartner-v0.13-AQ.zip」ファイルを右クリックして「すべて展開」を選びます。
「goreviewpartner-v0.13-AQ」フォルダができるので、そのフォルダの名前を「goreviewpartner」に変更のうえ、そのまましかるべき場所(たとえば「C:\Users\username\goreviewpartner」など)に設置します。
それによって、棋譜分析ツールのインタフェースである「GoReviewPartner.exe」は「C:\Users\username\goreviewpartner」フォルダに、囲碁思考エンジン本体である「AQ.exe」は「C:\Users\username\goreviewpartner\AQ」フォルダにインストールされます。
この状態で、すでに「AQ 2.1.1 (GPU with Cuda)」をもちいた棋譜分析ができるようになっているので、以下の「4. 設定」は飛ばして「5. 使いかた」へすすんでください。

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

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

Slow profile parameters
Command: C:\Users\username\AQ\AQ.exe
Parameters: --config=C:\Users\username\AQ\aq_config_slow.txt

Fast profile parameters
Command: C:\Users\username\AQ\AQ.exe
Parameters: --config=C:\Users\username\AQ\aq_config_fast.txt


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

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

Slow profile parameters
Command: C:\Users\username\Leela0110GTP\Leela0110GTP_OpenCL.exe
Parameters: --gtp --noponder
Time per move (s): 15

Fast profile parameters
Command: C:\Users\username\Leela0110GTP\Leela0110GTP_OpenCL.exe
Parameters: --gtp --noponder
Time per move (s): 5


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

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

Slow profile parameters
Command: C:\Users\username\leela-zero\leelaz.exe
Parameters: --gtp --noponder --weights best-network
Time per move (s): 15

Fast profile parameters
Command: C:\Users\username\leela-zero\leelaz.exe
Parameters: --gtp --noponder --weights best-network
Time per move (s): 5


「Leela Zero」の特徴として、自己対戦データを集積して学習を重ねることで強くなりつづけている、ということがあえられます。
定期的に「http://zero.sjeng.org/best-network」をおとづれて、あたらしい学習ずみネットワークを取得することによって、その特徴を楽しむことができます。
ダウンロードしたファイルを「best-network」という名前に変更し、「C:\Users\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 17:04| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月07日

コンピュータ囲碁プログラム「PhoenixGo」のインストールと使いかた - Windows編

「PhoenixGo」は、Tencent社が開発しオープンソース化した、自己対戦による深層学習の手法にもとづくコンピュータ囲碁プログラムです。
2018年1月にTencent社の囲碁対局プラットフォーム「野狐」で「BensonDarrz」という名前で打ちはじめましたが、同4月に「世界囲碁AIトーナメント2018」で優勝してより広く知られるようになった、とのことです。

「PhoenixGo」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。

関連記事
Tencent unveils China's first open source Go AI, made on spare WeChat server processing power

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

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

「PhoenixGo」をインストールするにあたっては、Windows7以上の64bit OSが前提となっています。
GPUバージョンを動かすためには、「NVIDIA製GPU」+「CUDA 9.0」+「cuDNN 7.1.4」環境が必要で、それ以外の場合はCPUバージョンを使うことになります。

*****「CUDA 9.0」+「cuDNN 7.1.4」環境構築*****
(必要な環境がすでに構築されている場合、もしくはCPUバージョンを使う場合は、このセクションは無視して先へすすんでください。)

a) 「Visual Studio Community 2017」インストール
Visual Studioのダウンロード」ページから、「Visual Studio Community 2017」の「無償ダウンロード」ボタンを押して、インストールファイル「vs_community__1550688207.1530707720.exe」をダウンロードする。
ダウンロードしたファイルをダブルクリックしてインストーラを起動、「C++によるデスクトップ開発」カテゴリの「Windows 10 SDK」コンポーネントにチェックをいれて、インストールを実行する。
コンピュータを再起動するよう指示されるので、それにしたがって再起動する。

b) 「CUDA 9.0」インストール
NVIDIA DEVELOPER」サイトの「CUDA Toolkit Archive」から「CUDA Toolkit 9.0 Downloads」ページへすすみ、「Windows」「x86_64」「10」「exe (local)」用の「CUDA 9.0」インストールファイル「cuda_9.0.176_win10.exe」をダウンロードする。
ダウンロードしたファイルをダブルクリックしてインストーラを起動、あらかじめ推奨チェックがはいっているとおりにインストールを実行する。

c) 「cuDNN 7.1.4」インストール
NVIDIA cuDNN」ページで「DOWNLOAD cuDNN」ボタンを押し、「cuDNN Download」ページへすすむ(必要におうじてアカウント作成のうえログインする)。
「I Agree To the Terms of the cuDNN Software License Agreement 」にチェックをいれ、「Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0」を選択、「cuDNN v7.1.4 Library for Windows 10」をクリックして「cudnn-9.0-windows10-x64-v7.1.zip」ファイルをダウンロードする。
ダウンロードしたファイルを展開、生成した「cuda」フォルダのなかの「bin」「include」「lib」の三フォルダを、「CUDA 9.0」インストールフォルダ「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0」にコピーする。


2. 「PhoenixGo」インストールファイルのダウンロード
「PhoenixGo」の現行バージョンは「v1」で、「PhoenixGo」GitHubレポジトリの「Releases」ページから「PhoenixGo-win-x64-gpu-v1.zip 」をクリックして、GPUバージョンのWindows用インストールファイル「PhoenixGo-win-x64-gpu-v1.zip」を取得します。
CPUバージョンを使う場合は、「PhoenixGo-win-x64-cpuonly-v1.zip」のほうをクリックして、CPUバージョンのWindows用インストールファイル「PhoenixGo-win-x64-cpuonly-v1.zip」を取得します。

3. 「PhoenixGo」のインストール
ダウンロードした「PhoenixGo-win-x64-gpu-v1.zip」ファイルもしくは「PhoenixGo-win-x64-cpuonly-v1.zip」ファイルを右クリックして「すべて展開」を選ぶと、「PhoenixGo-win-x64-gpu-v1」フォルダもしくは「PhoenixGo-win-x64-cpuonly-v1」フォルダができるので、そのフォルダの名前を「PhoenixGo」に変更しておきます。
この「PhoenixGo」フォルダのなかにインストール手順書「how to install phoenixgo(en).pdf」ファイルがあるので、基本的にはこのファイルに記述されているとおりに作業していけばO.K.です。
まずは「PhoenixGo」フォルダをそのまましかるべき場所、たとえば「C:\Users\username\PhoenixGo」(「username」はお使いのユーザ名)などに設置のうえ、フォルダを開いて「start.bat」ファイルをダブルクリックします。

XXXX-XX-XX XX:XX:XX.XXXXXX: I model\zero_model.cc:100] Create session succ
XXXX-XX-XX XX:XX:XX.XXXXXX: I model\zero_model.cc:107] Create graph succ
XXXX-XX-XX XX:XX:XX.XXXXXX: I model\zero_model.cc:119] Load checkpoint succ


コマンドプロンプトが開いて何行かメッセージが表示されますが、その最後の三行が上記のように「Create session succ」「Create graph succ」「Load checkpoint succ」となっていれば問題ないので、そのままコマンドプロンプトを閉じます。
以上でインストール作業は完了です。
もし「the program can’t start because XXX.dll is missing」というメッセージが表示された場合は、「https://www.microsoft.com/ja-jp/download/confirmation.aspx?id=48145&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1」へいって「Visual C++ Redistributable for Visual Studio 2015(ファイル名「vc_redist.x64.exe」)」をダウンロードのうえ、インストールする必要があります。
再度「start.bat」ファイルをダブルクリックして、表示されるメッセージを確認してください。

4. 「PhoenixGo」の設定
GPUを一個搭載したコンピュータでGPUバージョンを動かす場合は「PhoenixGo」フォルダ -> 「etc」フォルダ -> 「mcts_1gpu_notensorrt.conf」ファイルが、CPUバージョンの場合は「PhoenixGo」フォルダ -> 「etc」フォルダ -> 「mcts_cpu.conf」ファイルが、「PhoenixGo」の動作条件を制御する設定ファイルとなっています。
以下に、編集する可能性のある項目だけ抜き出して、各項目の意味と設定方法を記述します。

num_eval_threads: 1 # 使用するGPUの個数。
num_search_threads: 4 # 「num_eval_threads」と「eval_batch_size」をかけた値よりもちょっと大きい値に設定するらしい。
timeout_ms_per_step: 10000 # 一手ごとの考慮時間をミリ秒で指定。
max_simulations_per_step: 0 # 一手ごとのシミュレーション数。「0」で無指定。
gpu_list: "0" # 使用するGPUの認識番号をコンマで区切って登録。CPUバージョンの設定ファイルには行じたい存在しない。
model_config -> train_dir: "pkct" # 学習ずみネットワークが保管されているフォルダを指定。
max_search_tree_size: # ツリーノードの最大サイズ。メモリ容量によって指定する。
max_children_per_node: # 各ノードがもてる子ノードの最大サイズ。メモリ容量によって指定する。
enable_background_search: 0 # 「ponder」機能を使うときは「1」、使わないときは「0」に設定。
early_stop -> enable: 0 # 勝敗が確定してしまったあとはすぐに打つ。一定ペースで打たせたいときは「0」に設定。
unstable_overtime -> enable: 0 # 次の手が確定しないときは余計に考える。一定ペースで打たせたいときは「0」に設定。
behind_overtime -> enable: 0 # 形成がよくないときは余計に考える。一定ペースで打たせたいときは「0」に設定。
time_control -> enable: 0 # GTPコマンド「time_settings」への対応。一定ペースで打たせたいときは「0」に設定。


5. GTP対応囲碁GUIとの連携方法
「PhoenixGo」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。
「PhoenixGo」フォルダをたとえば「C:\Users\username\PhoenixGo」に設置したとして、「C:\Users\username\PhoenixGo\start.bat」が、囲碁GUIに登録するべきGTP思考エンジンのパスになります。

5-1. GTP対応囲碁GUI「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「PhoenixGo」フォルダを「C:\Users\username\PhoenixGo」に設置した場合、「コマンド:」欄に入力する絶対パスは「C:\Users\username\PhoenixGo\start.bat」のようになります。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「PhoenixGo」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「PhoenixGo」を選ぶと、「PhoenixGo」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「PhoenixGo」と対局するには、「PhoenixGo」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「PhoenixGo」がどう打つかをみることもできます。
「PhoenixGo」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「PhoenixGoに黒を打たせる」、白番の局面なら「PhoenixGoに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。

5-2. 「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「PhoenixGo」フォルダを「C:\Users\username\PhoenixGoに設置した場合、「(Unnamed Engine)」欄にカーソルをもっていって「PhoenixGo」と入力、「Path」欄に絶対パス「C:\Users\username\PhoenixGo\start.bat」を指定します。
登録した「PhoenixGo」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「PhoenixGo」に担当させる手番は登録されている思考エンジンの表示名から「PhoenixGo」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「PhoenixGo」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。


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

https://github.com/Tencent/PhoenixGo
https://github.com/Tencent/PhoenixGo/releases
https://qiita.com/take-iwiw/items/0bf12bec9c3bade2e331
posted by hatakazu at 17:38| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

コンピュータ囲碁プログラム「AQ」のインストールと使いかた - Windows編

「AQ」は、山口祐さんが独力で開発しオープンソース化したコンピュータ囲碁プログラムで、自己対戦による深層学習の手法にもとづいています。
日本棋院ネット対局「幽玄の間」に導入されてプロ棋士の練習相手をつとめ、最初の一週間で「118勝8敗」、およそ一ケ月のあいだに「420勝23敗」という驚異的な成績を残したことでも知られています。

「AQ」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。

関連記事
ネット対局「幽玄の間」に囲碁ソフト「AQ」を導入
囲碁AI「AQ」が驚異の118勝8敗
プロ練習に新囲碁AI 個人で開発、日本棋院導入

「AQ」の強さについては山口さんご自身が「トッププロ級」とおっしゃっていますが、これは高性能GPUを利用して高速演算できる場合の話で、GPUをもたない環境で動作するCPUバージョン「AQ-mini」は「大変弱く、アマチュア2~3段程度」とのことです。
hatakazuが囲碁を学ぶうえで「AQ」を利用したいのは、オープンソース化されているコンピュータ囲碁プログラムのなかで「コミ六目半の互先の碁」に最適化されているのは「AQ」だけ、だと思うからです。
逆にそのせいで、コミ七目半の中国ルールでは黒番半目負けになる可能性があることについて、山口さんご自身が以下のように注意を喚起されているほどです。

!!!Caution!!! This version was trained in Komi = 6.5 for the Japanese rule. So, AQ often loses 0.5 point at Black, but that is inevitable.


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

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

「AQ」をインストールするさいの動作要件は、以下のように記述されています。

・OS: 64-bit Windows 7 or later (NOT tested on 8.1/10)
・GPU: Nvidia GPU with CUDA capability of >=3.0 (GPUバージョンのみ)
・CPU: CPU with SSE 4.2

Windows7以降は64bitのみの対応、そしてGPUバージョンを動かすためには、Compute Capability 3.0以上のNVIDIA製GPUが必要です。
GPUをもたない環境では、CPUバージョンである「AQ-mini」を使うことになります。
なお、「AQ」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。

2. 「AQ」インストールファイルのダウンロード
「AQ」の現行バージョンは「v2.1.1」で、「AQ」GitHubレポジトリの「Releases」ページから「AQ_win.zip」をクリックして、GPUバージョンのWindows用インストールファイル「AQ_win.zip」を取得します。
CPUバージョンを使う場合は、「AQ-mini_win.zip」のほうをクリックして、CPUバージョンのWindows用インストールファイル「AQ-mini_win.zip」を取得します。

3. 「AQ」のインストール
ダウンロードした「AQ_win.zip」ファイルもしくは「AQ-mini_win.zip」ファイルを右クリックして「すべて展開」を選ぶと、「AQ-win」フォルダもしくは「AQ-mimi_win」フォルダができて、さらにそのなかに「AQ」フォルダがあります。
この「AQ」フォルダのなかにGTP思考エンジン本体である「AQ.exe」や設定ファイル「aq_config.txt」などがふくまれているので、この「AQ」フォルダをそのまましかるべき場所(たとえば「C:\Users\username\AQ」など)に設置すれば、インストール作業は終了です。

4. 「AQ」の設定
「AQ」フォルダのなかにGTP思考エンジン本体「AQ.exe」といっしょに設定ファイル「aq_config.txt」が置かれており、この設定ファイル「aq_config.txt」の内容を編集することで、次回起動時以降「AQ」のふるまいを変更することができます。
以下に、編集する可能性のある項目だけ抜き出して、各項目の意味と設定方法を記述します。

### Hardware setting ###
# Set number of 1-8 for 'gpu count'.
# 'thread count' is number of the total usable threads.
-gpu count =1 # 利用できるGPUの数なので、hatakazuの環境では「1」を指定します。CPUバージョンの場合は「0」になります。
-thread count =4 # 利用できるCPUスレッド数ですが、GPU一個の場合は「5」ていどまで、GPU二個なら「8」以上が有効になるようです。

### Time contorol setting ###
-main time[sec] =0 # 秒読みにはいるまえのいわゆる持ち時間を秒単位で入力。秒読みのみの場合は「0」に設定する。
-byoyomi[sec] =10 # 持ち時間が切れたあとの秒読みの長さを秒単位で入力。秒読みなし切れ負けの場合は「0」に設定する。
-emergency time[sec] =15 # 秒読みなしの場合に、持ち時間がここで指定した秒数より短くなると、ノータイムで打ちはじめる。

### Thinking setting ###
-japanese rule =on # 日本ルールの場合は「on」に、中国ルールの場合は「off」に設定する。
-komi =6.5 # 日本ルールの場合は「6.5」に、中国ルールの場合は「7.5」に設定する。
-use pondering =off # 相手の手番でも考慮する「ponder」機能を使う場合は「on」に、使わない場合は「off」に設定する。


5. GTP対応囲碁GUIとの連携方法
「AQ」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。
「AQ」フォルダをたとえば「C:\Users\username\AQ」(「username」はお使いのユーザ名)に設置したとして、「C:\Users\username\AQ\AQ.exe」が、囲碁GUIに登録するべきGTP思考エンジンへのパスになります。

5-1. GTP対応囲碁GUI「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「AQ」フォルダを「C:\Users\username\AQ」に設置した場合、「コマンド:」欄に入力する絶対パスは「C:\Users\username\AQ\AQ.exe」のようになります。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「AQ」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「AQ」を選ぶと、「AQ」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「AQ」と対局するには、「AQ」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「AQ」がどう打つかをみることもできます。
「AQ」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「AQに黒を打たせる」、白番の局面なら「AQに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。

5-2. 「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「AQ」フォルダを「C:\Users\username\AQ」に設置した場合、「(Unnamed Engine)」欄にカーソルをもっていって「AQ」と入力、「Path」欄に絶対パス「C:\Users\username\AQ\AQ.exe」を指定します。
登録した「AQ」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「AQ」に担当させる手番は登録されている思考エンジンの表示名から「AQ」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「AQ」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。


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

「AQ」開発者である山口祐さんのtwitter「https://twitter.com/ymg_aq」
https://github.com/ymgaq/AQ
https://github.com/ymgaq/AQ/releases
https://github.com/ymgaq/AQ/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95%EF%BC%88Windows%EF%BC%89
posted by hatakazu at 15:12| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月06日

「Leela Zero」専用囲碁GUI「Lizzie」のインストールと使いかた - Windows編

せっかく「Leela Zero」をインストールしても対局しかできないのは残念なことで、できることならこのどんどん強くなっていくコンピュータ囲碁プログラムが考えていることを学んで、棋力の向上に役だてたいものです。
そうした目的にぴったりな「Leela Zero」専用囲碁GUIとして、「Lizzie - Leela Zero Interface」が公開されています。

「Lizzie」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。

「Lizzie」を使うことで、「Leela Zero」と対局するだけではなく、「Leela Zero」の思考エンジンを利用して棋譜を分析することもできるようになります。
棋譜分析では勝率の推移はもちろん、候補手とそれぞれの勝率、そのあとの読み筋などを表示させることが可能で、hatakazuのように囲碁の勉強に「Leela Zero」を使ってみたいひとにとってはたいへん役にたつツールになっています。

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

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

「Lizzie」をインストールするさいの動作要件ですが、ハードウェア的には特別な要請はなく、64bit版Windowsが動いているコンピュータならたいてい問題なく動かせるはずです。
ただし、「Lizzie」はようするに「Leela Zero」を思考エンジンとしてもちいる囲碁GUIなので、「Leela Zero」を動かすさいの条件を考慮する必要があります。
NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであれば、GPUバージョンの「Leela Zero」を動かすことができますが、それ以外の場合はCPUバージョンを使うことになります。
ソフトウェア的には、「Lizzie」は「Javaランタイム」をあてにしているので、「Javaランタイム」をあらかじめインストールしておく必要があります。

*****「Java」ランタイムインストール*****
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

無料Javaソフトウェアをダウンロード」ページから、「無料Javaのダウンロード」 -> 「同意して無料ダウンロードを開始」とすすんで、Windows版Javaの推奨バージョン(Version 8 Update 171)インストールファイル「JavaSetup8u171.exe」をダウンロードします。

ダウンロードしたインストールファイルをダブルクリックすると、セットアップがはじまって「Javaへようこそ」画面が開くので、(必要におうじて「宛先フォルダを変更する」にチェックをいれて)「インストール」ボタンをクリックします。
ファイルのダウンロードがはじまって、最終確認を求められるので、問題なければそのまま「インストール」ボタンを押してすすめます。
デフォルトのインストール先は「C:\Program Files (x86)\Java\jre1.8.0_171」です。

インストール処理が終わったら、完了画面があらわれるので、「閉じる」ボタンをクリックして終了します。


2. 「Lizzie」インストールファイルのダウンロード
「Lizzie」の現行バージョンは「v0.5」で、「Lizzie」GitHubレポジトリの「Releases」ページから「Lizzie.0.5.Windows.x64.GPU.zip」をクリックして、GPUバージョンの64bit版Windows用インストールファイル「Lizzie.0.5.Windows.x64.GPU.zip」を取得します。
CPUバージョンを使う場合は、「Lizzie.0.5.Windows.x64.CPU.zip」のほうをクリックして、CPUバージョンの64bit版Windows用インストールファイル「Lizzie.0.5.Windows.x64.CPU.zip」を取得します。

3. 「Lizzie」のインストール
ダウンロードした「Lizzie.0.5.Windows.x64.GPU.zip」ファイルもしくは「Lizzie.0.5.Windows.x64.CPU.zip」ファイルを右クリックして「すべて展開」を選ぶと、「Lizzie.0.5.Windows.x64.GPU」フォルダもしくは「Lizzie.0.5.Windows.x64.CPU」フォルダが生成し、そのなかに「lizzie」フォルダができているはずです。
この「lizzie」フォルダをそのまましかるべき場所、たとえば「C:\Users\username\lizzie」(「username」はお使いのユーザ名)などに設置すれば、インストール作業は終了です。

4. 「Lizzie」の設定
「lizzie」フォルダのなかには「Lizzie」囲碁GUI機能を提供する「Lizzie.jar」のほか、「Lizzie」と連携して動く「Leela Zero」囲碁思考エンジン本体である「leelaz.exe」、そして「Leela Zero」が利用する学習ずみネットワーク「network.gz」などがふくまれています。
動作要件どおり「Javaランタイム」がインストールされた環境であれば、「Lizzie.jar」をダブルクリックすることで、「Lizzie」が起動するはずです。
はじめて「Lizzie」を起動する場合は、連携する「Leela Zero」が「OpenCL」チューニングを設定する必要があるため、じゃっかん時間がかかります。
左下に「Leela Zero is loading...」というメッセージが表示された状態で、しばらく待たされますが、このメッセージが消えたら「Lizzie」は問題なく起動しています。
「Lizzie」の正常起動を確認したら「Lizzie」をいったん終了し、「lizzie」フォルダのなかに生成している設定ファイル「config.txt」を開きます。
以下に、編集する可能性のある項目だけ抜き出して、各項目の意味と設定方法を記述します。

{ # 全体設定開始。
"leelaz": { # エンジン設定開始。
"automatically-download-latest-network": false, # 「true」にすると、起動するたびに最新の学習ずみネットワークを確認にいく。
"max-analyze-time-minutes": 5, # 思考モードを継続する最大分数。
"analyze-update-interval-centisec": 10, # エンジンから分析情報を送る間隔を1/100秒単位で指定。
"network-file": "best-network", # 利用する学習ずみネットワークファイルを指定。
"max-game-thinking-time-seconds": 10, # 対局時に考える一手あたりの最大秒数。
"engine-start-location": ".", # パスの起点を指定する。
"engine-command": "./leelaz --gtp --lagbuffer 0 --weights %network-file --threads 4", # エンジンのパスと、起動時にわたすパラメータ。
"print-comms": false # 「true」にすると、エンジンとやりとりするGTPコマンドを出力する。
}, # エンジン設定終了
"ui": { # GUI設定開始
"shadows-enabled": true,
"board-color": [
217,
152,
77
],
"shadow-size": 100,
"show-winrate": true, # 勝率を表示する。
"fancy-board": true,
"show-variation-graph": true, # 「true」にすると、画面右に分岐ツリーを表示する。
"win-rate-always-black": false, # 「true」にすると、つねに黒番からみた勝率を表示する。
"confirm-exit": false, # 「true」にすると、「lizzie」を終了するときにデータ保存の確認をする。
"handicap-instead-of-winrate": false, # 「true」にすると、実力差を勝率ではなく、置石の数で表示する。
"large-subboard": false, # 画面左下の第二碁盤を大きなサイズで表示する。
"show-move-number": false, # 「true」にすると、石の上に手順を表示する。
"show-next-moves": true, # 次の手を表示する。
"show-leelaz-variation": true, # 変化図を表示する。
"show-subboard": true, # 画面左下に第二碁盤を表示する。
"theme": "DefaultTheme",
"fancy-stones": true,
"show-best-moves": true, # 最善手をハイライト表示する。
"board-size": 19
} # GUI設定終了
} # 全体設定終了


上記は「http://zero.sjeng.org/best-network」から最新の学習ずみネットワークを取得し、それを「C:\Users\username\lizzie」フォルダに移動して、「best-network」という名前に変更したものを利用する設定です。

*****そのほかの学習ずみネットワークの利用方法*****
「Leela Zero」が各局面でどう打つかは過去に学習してきたことに依存するので、ことなる学習ずみネットワークを読みこませることで、ことなるふるまいをすることが期待できます。

人間の棋譜から学んで人間にちかい打ちかたをするもの
上のリンクから「best_v1.txt.zip」ファイルを取得し、展開してえられる「weights.txt」ファイルを「C:\Users\username\lizzie」フォルダに移動して、「human-network」などのわかりやすい名前に変更しておきます。
この学習ずみネットワークを利用したい場合、「Lizzie」フォルダにある設定ファイル「config.txt」の該当部分を、「"network-file": "human-network",」に変更します。

Facebook「ELF OpenGo」の学習ずみネットワークを「Leela Zero」で利用できるように変換したもの
上のリンクからgzファイルを取得し、「C:\Users\username\lizzie」フォルダに移動して、「ELF-network」などのわかりやすい名前に変更しておきます。
Facebook「ELF OpenGo」のGitHubレポジトリから学習ずみネットワーク「pretrained-go-19x19-v0.bin」をダウンロードして、公開されているpythonスクリプトで変換することもできます。

この学習ずみネットワークを利用したい場合、「Lizzie」フォルダにある設定ファイル「config.txt」の該当部分を、「"network-file": "ELF-network",」に変更します。


5. 「Lizzie」の使いかた
デフォルトであらわれるのは、白黒両方を手動入力するかたちで、「Leela Zero」エンジンの思考内容を表示させていく画面です。
「x」キーを押すことで、入力できるコマンドの一覧表が表示されます。
「Leela Zero」との対局を開始するためには、「n」キーを押下します。
対局条件としては手番と置石は設定できますが、コミは七目半固定で、日本ルールでの対局はできなそうなのが残念なところです。
「Leela Zero」に棋譜分析させるためには、「o」キーを押して、分析したいSGFファイルを読みこみます。
「s」キーで保存、「i」キーで棋譜情報編集、「m」キーで手順番号表示、「.」キーで地を数えて形成判断します。
上下矢印キーで手順操作、左右矢印キーで分岐ツリーを移動、「home」キーで棋譜の最初へ、「end」キーで棋譜の最後へ飛びます。
棋譜分析では、考えられる候補手が勝率および思考深さとともに表示され、候補手のどれかにカーソルを重ねるとそのあとの読み筋が表示される仕組みになっています。
「space」キーで「Leela Zero」の思考開始/停止をコントロールできるほか、「enter」キーで「Leela Zero」に次の手を打たせてみることもできます。
posted by hatakazu at 21:55| Comment(20) | 囲碁ソフトのこと | 更新情報をチェックする

コンピュータ囲碁プログラム「Leela Zero」のインストールと使いかた - Windows編

コンピュータ囲碁プログラム「Leela」を開発したベルギーの開発者が、Google DeepMindの「AlphaGo Zero」論文に触発されて、自己対戦による深層学習の手法にもとづくあらたなコンピュータ囲碁プログラム「Leela Zero」を開発し、ユーザがリソースを提供して自己対戦データを収集することで「Leela Zero」を育てていく、というユーザ参加型のプロジェクトが立ち上がっています。
このプロジェクトは2017年11月に開始されましたが、およそ九ケ月たった2018年7月現在までに800万回をこえる自己対戦を積みかさねた結果として、「Leela Zero」はすでに世界最強のコンピュータ囲碁プログラムのひとつといえるまでに成長しているそうです。

「Leela Zero」プロジェクトのサイト
「Leela Zero」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bitおよび32bit対応。
・GPUバージョンおよびCPUバージョン。

ほかのオープンソース化されたコンピュータ囲碁プラグラムは、あらかじめ自己対戦を積みかさねてできあがった学習ずみネットワークが公開されますが、プロジェクトとしてはその時点で完結しているため、さらに学習をつづけて学習ずみネットワークが更新されることはありません。
しかしながら「Leela Zero」の場合は、ユーザの協力によって自己対戦データを増やしていってみんなで「Leela Zero」を育てていくプロジェクトなので、はっきりと強くなったことが確認された時点で学習ずみネットワークが更新されます。
「AlphaGo Zero」論文の検証を目的として立ちあげられたプロジェクトですが、人間の棋譜から学ぶことなく独力で学習をつづける「Leela Zero」はどのような碁を打つようになるのか、そしてどこまで強くなるのか、見守っていきたいと思っています。

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

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

「Leela Zero」をインストールするにあたっては、NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであればGPUバージョンを動かすことができますが、それ以外の場合はCPUバージョンを使うことになります。
なお、「Leela Zero」を使って対局や棋譜分析をおこないたい場合は、GTPを解釈できる囲碁GUIと連携させる必要があります。
「Leela Zero」専用に開発された「Lizzie」という囲碁GUIを使うのが便利ですが、その「Lizzie」が64bit版Windowsのみ対応となっているため、「Leela Zero」についても64bit版Windows前提で記述していきます。
(じっさいには32bit版Windows用「Leela Zero」バイナリも公開されていますので、以下であつかうファイル名フォルダ名の「win64」の部分を「win32」に読みかえれば、そのまま32bit版Windows用「Leela Zero」をインストールできます。)

2. 「Leela Zero」インストールファイルのダウンロード
「Leela Zero」の現行バージョンは「v0.15」で、「Leela Zero」GitHubレポジトリの「Releases」ページから「leela-zero-0.15-win64.zip」をクリックして、GPUバージョンの64bit版Windows用インストールファイル「leela-zero-0.15-win64.zip」を取得します。
CPUバージョンを使う場合は、「leela-zero-0.15-cpuonly-win64.zip」のほうをクリックして、CPUバージョンの64bit版Windows用インストールファイル「leela-zero-0.15-cpuonly-win64.zip」を取得します。

3. 「Leela Zero」のインストール
ダウンロードした「leela-zero-0.15-win64.zip」ファイルもしくは「leela-zero-0.15-cpuonly-win64.zip」ファイルを右クリックして「すべて展開」を選ぶと、「leela-zero-0.15-win64」フォルダもしくは「leela-zero-0.15-cpuonly-win64」フォルダができるので、そのフォルダの名前を「leela-zero」に変更しておきます。
この「leela-zero」フォルダのなかにGTP思考エンジン本体である「leelaz.exe」がふくまれているので、この「leela-zero」フォルダをそのまましかるべき場所(たとえば「C:\Users\username\leela-zero」など)に設置すれば、インストール作業は終了です。

4. 「Leela Zero」の設定
「Leela Zero」はパラメータをあらかじめ指定した設定ファイルをもたず、起動コマンドにパラメータをわたすかたちで動作を制御します。
そのため設定ファイルの準備は必要ありませんが、ユーザが自己対戦データを提供してみんなで「Leela Zero」を育てていくというコンセプトにもとづいて、強くなったらそのぶんの学習ずみネットワークが公開されるので、「Leela Zero」が最新の学習ずみネットワークを使えるように準備しないといけません。
どの学習ずみネットワークを読みこませるかは、やはり起動時にパラメータ指定することになりますが、そのファイルをあらかじめ取得しておく必要があるということです。
http://zero.sjeng.org/best-network」から最新の学習ずみネットワークを取得し、それを「C:\Users\username\leela-zero」フォルダに移動して、「best-network」という名前に変更しておきます。
それにより、起動時に「--weights C:\Users\username\leela-zero\best-network」パラメータを指定することで、「Leela Zero」が最新の学習ずみネットワークを利用できるようになります。

*****そのほかの学習ずみネットワークの利用方法*****
「Leela Zero」が各局面でどう打つかは過去に学習してきたことに依存するので、ことなる学習ずみネットワークを読みこませることで、ことなるふるまいをすることが期待できます。

人間の棋譜から学んで人間にちかい打ちかたをするもの
上のリンクから「best_v1.txt.zip」ファイルを取得し、展開してえられる「weights.txt」ファイルを「C:\Users\username\leela-zero」フォルダに移動して、「human-network」などのわかりやすい名前に変更しておきます。
この学習ずみネットワークを利用したい場合、「Leela Zero」起動時に指定するパラメータは、「--weights C:\Users\username\leela-zero\human-network」になります。

Facebook「ELF OpenGo」の学習ずみネットワークを「Leela Zero」で利用できるように変換したもの
上のリンクからgzファイルを取得し、「C:\Users\username\leela-zero」フォルダに移動して、「ELF-network」などのわかりやすい名前に変更しておきます。
Facebook「ELF OpenGo」のGitHubレポジトリから学習ずみネットワーク「pretrained-go-19x19-v0.bin」をダウンロードして、公開されているpythonスクリプトで変換することもできます。

この学習ずみネットワークを利用したい場合、「Leela Zero」起動時に指定するパラメータは、「--weights C:\Users\username\leela-zero\ELF-network」になります。


5. GTP対応囲碁GUIとの連携方法
「Leela Zero」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。
「leela-zero」フォルダをたとえば「C:\Users\username\leela-zero」(「username」はお使いのユーザ名)に設置したとして、「C:\Users\username\leela-zero\leelaz.exe」が、囲碁GUIに登録するべきGTP思考エンジンへのパスになります。

5-1. GTP対応囲碁GUI「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「leela-zero」フォルダを「C:\Users\username\leela-zero」に設置した場合、「コマンド:」欄に入力する絶対パスは「C:\Users\username\leela-zero\leelaz.exe」のようになります。
パラメータはたとえば「--gtp --threads 4 --playouts 1600 --noponder --weights C:\Users\username\leela-zero\best-network」のようなかたちで指定しますが、「--gtp」がGTP対応囲碁GUIから制御するための必須オプション、「--threads」は使用するスレッド数指定、「--playouts」はプレイアウト数指定で大きいほど強くなる(「--playouts」オプション無指定でプレイアウト数無制限)、「--noponder」は相手の手番でも思考する「ponder」機能を使わない(プレイアウト数を指定するときは必須)、「--weights」は利用する学習ずみネットワークファイルを絶対パスで指定、といった意味をもちます。
上記パスとパラメータは、一行にまとめて「コマンド:」欄に記述するので、全体として入力するべきコマンドは「C:\Users\username\leela-zero\leelaz.exe --gtp --threads 4 --playouts 1600 --noponder --weights C:\Users\username\leela-zero\best-network」のようになります。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「Leela Zero」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「Leela Zero」を選ぶと、「Leela Zero」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「Leela Zero」と対局するには、「Leela Zero」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「Leela Zero」がどう打つかをみることもできます。
「Leela Zero」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「Leela Zeroに黒を打たせる」、白番の局面なら「Leela Zeroに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。

5-2. 「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「leela-zero」フォルダを「C:\Users\username\leela-zero」に設置した場合、「(Unnamed Engine)」欄にカーソルをもっていって「Leela Zero」と入力、「Path」欄に絶対パス「C:\Users\username\leela-zero\leelaz.exe」を指定します。
その下の「No arguments」と表示されている欄には、思考エンジンに渡してやるパラメータを入力します。
パラメータはたとえば「--gtp --threads 4 --playouts 1600 --noponder --weights C:\Users\username\leela-zero\best-network」のようなかたちで指定しますが、「--gtp」がGTP対応囲碁GUIから制御するための必須オプション、「--threads」は使用するスレッド数指定、「--playouts」はプレイアウト数指定で大きいほど強くなる(「--playouts」オプション無指定でプレイアウト数無制限)、「--noponder」は相手の手番でも思考する「ponder」機能を使わない(プレイアウト数を指定するときは必須)、「--weights」は利用する学習ずみネットワークファイルを絶対パスで指定、といった意味をもちます。
さらにその下の「Initial command (;-separated)」と表示されている欄で、考慮時間の設定などが可能です。
たとえば「持ち時間なし、一手20秒以内で着手」という条件にしたい場合は、ここに「time_settings 0 20 1;」と入力してやればO.K.です。
基本的には、プレイアウト数と考慮時間が強さに影響する要素なので、うまく強さと対局時間のバランスがとれる条件を見つける必要があります。
登録した「Leela Zero」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「Leela Zero」に担当させる手番は登録されている思考エンジンの表示名から「Leela Zero」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「Leela Zero」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。


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

http://zero.sjeng.org/
https://github.com/gcp/leela-zero
https://github.com/gcp/leela-zero/releases
https://github.com/gcp/leela-zero/issues/1329
posted by hatakazu at 21:34| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月05日

コンピュータ囲碁プログラム「Leela」のインストールと使いかた - Windows編

ベルギーの開発者が無料で公開しているコンピュータ囲碁プログラム「Leela」は、現在のところバージョン「0.11.0」が最新版で、19路盤での強さは(使用するハードウェアの性能に大きく依存しますが)九段をこえるところまできているとのことです。

「Leela」サイト:SJENG.ORG - chess, go, audio and misc. software
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。
・GUIパッケージおよびGTP思考エンジンのみ配布。

Google DeapMind「AlphaGo」、とりわけそれにつづく「AlphaGo Zero」の衝撃をうけて、人間が過去に蓄積した知識による教育なしに、自己対戦のみにもとづいて深層学習を重ねていく手法をとりいれたあたらしいコンピュータ囲碁プログラムが登場してきました。

「Leela Zero」プロジェクトページ「Leela Zero」GitHubレポジトリ:Windowsバイナリ配布あり、64bitおよび32bit対応、GPUバージョンおよびCPUバージョン。
「AQ」GitHubレポジトリ:Windowsバイナリ配布あり、64bit対応、GPUバージョンおよびCPUバージョン。
Facebook「ELF OpenGo」GitHubレポジトリ:Windowsバイナリ配布なし。
Tencent「PhoenixGo」GitHubレポジトリ:Windowsバイナリ配布あり、64bit対応、GPUバージョンおよびCPUバージョン。GPUバージョンは「NVIDIA製GPU」+「CUDA 9.0」+「cuDNN 7.1.4」必要。

これらのあたらしいコンピュータ囲碁プログラムはきわめて短期間でものすごく強くなっているだけではなく、人間の棋譜から学んでないため人間なら打たないような着手がおおく、囲碁の可能性を広げるものとしてプロ棋士もコンピュータ囲碁プログラムから学ぶというかたちで歓迎されているようです。
hatakazuもこうしたコンピュータ囲碁プログラム、とくにFacebook「ELF OpenGo」を動かしてみたくて、NVIDIA製GPU(GeForce MX 150)搭載のラップトップを購入してしまったほどです。
このラップトップ上には、すでにWindows10とUbuntu18.04のデュアルブート環境を構築してあるので、今後すこしずつ導入していろいろ遊んでみるつもりです。
しかし、正直なところhatakazuが囲碁を勉強する場合、一番役に立つのは「Leela」だといまでも思っています。
まずは、「Leela」はプロ棋士などレベルの高い人間の棋譜から学んでおり、各局面でプロ棋士ならどう打つかをシミュレートするメカニズムになっているため、人間の強いひとのような着手がおおくて、人間が対局や棋譜分析をつうじて学ぶのに適していること。
それから、パッケージにふくまれる囲碁GUIがたいへんよくできており、操作性がよいというだけではなく、「Leela」の強さを生かして囲碁を勉強するためのすぐれたツールになっていること。
そしてもうひとつ特記すべき理由は、なんといっても置碁をふつうに打ってくれる唯一のコンピュータ囲碁プラグラムである、ということです。

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

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

「Leela」をインストールするにあたっては、Windows7以上の64bit OSが必要と思われます。
「OpenCL 1.1」以降に対応したGPUを搭載したコンピュータであれば、「GPU Accelerated」バージョンを動かすことができますが、それ以外の場合は通常のCPUバージョンを使うことになります。

2. 「Leela」インストールファイルのダウンロード
「Leela」の最新バージョンは「0.11.0」で、「Leela」ページから「Leela 0.11.0 (graphical interface for Windows, you probably want this one)」をクリックして、囲碁GUIがセットになったパッケージのWindows用インストールファイル「setupLeela0110.exe」を取得します。

3. 「Leela」のインストール
ダウンロードした「setupLeela0110.exe」ファイルをダブルクリックすると、インストール処理がはじまります。
管理者権限不要でインストールするには、「Next」 -> 「I agree」 -> 「Next」とすすめて、ここでインストール先のフォルダを指定します。
デフォルトのインストール先は「C:\Users\username\AppData\Local\Programs\Leela」ですが、必要におうじて「C:\Users\username\Leela」(「username」はお使いのユーザ名)などに変更のうえ、「Next」ボタンを押します。
次の画面で、「OpenCL 1.1」以降に対応したGPUを搭載したコンピュータであれば「Leela (GPU Accelerated)」にチェックをいれて、GPUバージョンをインストールするよう設定します。
それ以外の場合はCPUバージョンのみのインストールになるので、そのまま「Next」ボタンを押します。
最後の画面で「スタートメニュー」に登録するかどうかを選択のうえ、「Install」ボタンを押下するとファイルのコピーがはじまるので、終わったら「Finish」ボタンをクリックしてインストール画面を閉じます。
デスクトップに「Leela」のショートカットができているので、それをダブルクリックすればCPUバージョン「Leela」のGUI画面が起動して、碁盤が表示されるはずです。
「OpenCL 1.1」以降に対応したGPUを搭載したコンピュータで「Leela (GPU Accelerated)」にチェックをいれた場合は、「Leela (GPU Accelerated)」のショートカットもできているので、基本的にこちらのGPUバージョン「Leela」を使えばO.K.です。
「Leela (GPU Accelerated)」をダブルクリックしてGPUバージョン「Leela」を起動したあと、「Help」 -> 「About...」をクリックすると、「Leela」が認識しているGPUを確認することができます。

4. 「Leela」の基本的な使いかた

4-1. 対局方法
「File」 -> 「New Game」をクリックし、開いた画面で「盤サイズ」「手番」「置石」「コミ」などの条件を指定して、「OK」を押下すると対局がはじまります。
「Engine max level」は思考エンジンのシミュレーション数をあらわしていて、値が大きいほど強くなりますが、通常は「Unlimited」を指定すればO.K.です。
ふつうに条件を指定して対局するほかにも、勝敗におうじて段級位が変動し、それにともなって自動的に対局条件が設定されるレーティング対局もできます。
「File」 -> 「Set Rated Board Size」でレーティングに挑戦する碁盤のサイズを指定して、「File」 -> 「New Rated Game」でレーティング対局がはじまります。
勝ったら置石が減り、負けたら置石が増えるかたちで、実力にあうように次局の対局条件が調整されていきます。

4-2. 棋譜分析
対局以外の実用性の高い使いかたとしては、SGF形式などの棋譜を読みこんで、それをLeelaに分析させることができます。
「Analyze」 -> 「Analysis Window」を表示させてから、「Analyze」 -> 「Start/Stop Analysis」をクリックすると、「Analysis Window」に候補手とそれぞれの候補手を選択した場合の勝率が表示されます。
「Move」列に表示されている候補手をクリックすると、そのときに読んでいる変化図が碁盤に表示されます。
「Effort%」が高ければ十手以上先まで読み筋が出ますし、クリックするたびに図が変化して、かなり広く深く読んでいることがわかります。
「Tools」 -> 「Show Best Moves」をオンにすると、色分けによる優先順位表示とともに、候補手を盤上に表示させることもできます。
「Analyze」 -> 「Show Histogram」をオンにすると、手数の進行にともなう勝率の変遷が可視化され、どこでわるい手を打ったかひと目で把握できます。
「Leela」の棋力そのものが高いため、こうした分析内容の信頼性も高く、対局のみならず囲碁を勉強するツールとしても非常に貴重な存在であるといえます。

5. GTP思考エンジンの利用方法
「Leela」は基本的に対局や棋譜分析のためのインタフェースもふくんだGUIパッケージで配布されていますが、「Leela」の思考エンジン部分のみをGTPで利用して、ほかのGTP対応囲碁GUIから対局や棋譜分析に利用することもできます。
「Leela」の思考エンジンをほかのGTP対応囲碁GUIから使いたい場合は、「Leela 0.11.0 engine only (commandline/GTP engine for Windows/Linux/macOS)」をクリックして、Windows用をふくむ思考エンジンのみの圧縮ファイル「Leela0110GTP.zip」をダウンロードします。
ダウンロードした「Leela0110GTP.zip」を右クリックして「すべて展開」を選ぶと、「Leela0110GTP」フォルダができるので、この「Leela0110GTP」フォルダを環境にあわせて適切な場所、たとえば「C:\Users\username\Leela0110GTP」などに配置します。
「Leela0110GTP」フォルダのなかにGTP思考エンジンの各種環境用バイナリがふくまれており、「OpenCL 1.1」以降に対応したGPUを搭載したコンピュータであればGPUバージョン「Leela0110GTP_OpenCL.exe」が、それ以外の場合はCPUバージョン「Leela0110GTP.exe」が、囲碁GUIに登録するべきGTP思考エンジンになります。

5-1. 「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスと、指定すべきパラメータを入力します。
たとえば解凍したフォルダを「C:\Users\username\Leela0110GTP」に置いた場合、「コマンド:」欄に入力する絶対パスは「C:\Users\username\Leela0110GTP\Leela0110GTP_OpenCL.exe」のようになります。
パラメータはたとえば「--gtp --threads 4 --playouts 1600 --noponder」のようなかたちで指定しますが、「--gtp」がGTP対応囲碁GUIから制御するための必須オプション、「--threads」は使用するスレッド数指定、「--playouts 1600」はプレイアウト数指定で大きいほど強くなる(「--playouts」オプション無指定でプレイアウト数無制限)、「--noponder」は相手の手番でも思考する「ponder」機能を使わない(プレイアウト数を指定するときは必須)、といった意味をもちます。
上記パスとパラメータは、一行にまとめて「コマンド:」欄に記述するので、全体として入力するべきコマンドは「C:\Users\username\Leela0110GTP\Leela0110GTP_OpenCL.exe --gtp --threads 4 --playouts 1600 --noponder」のようになります。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「Leela 0.11.0 GTP」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「Leela 0.11.0 GTP」を選ぶと、「Leela」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「Leela」と対局するには、「Leela」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「Leela」がどう打つかをみることもできます。
「Leela」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「Leelaに黒を打たせる」、白番の局面なら「Leelaに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。
CPUバージョンを使う場合は、上の記述における「Leela0110GTP_OpenCL.exe」を「Leela0110GTP.exe」に読みかえてください。

5-2. 「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば解凍したフォルダを「C:\Users\username\Leela0110GTP」に置いた場合、「(Unnamed Engine)」欄にカーソルをもっていって「Leela 0.11.0 GTP」と入力、「Path」欄に絶対パス「C:\Users\username\Leela0110GTP\Leela0110GTP_OpenCL.exe」を指定します。
その下の「No arguments」と表示されている欄には、思考エンジンに渡してやるパラメータを入力します。
パラメータはたとえば「--gtp --threads 4 --playouts 1600 --noponder」のようなかたちで指定しますが、「--gtp」がGTP対応囲碁GUIから制御するための必須オプション、「--threads」は使用するスレッド数指定、「--playouts 1600」はプレイアウト数指定で大きいほど強くなる(「--playouts」オプション無指定でプレイアウト数無制限)、「--noponder」は相手の手番でも思考する「ponder」機能を使わない(プレイアウト数を指定するときは必須)、といった意味をもちます。
さらにその下の「Initial command (;-separated)」と表示されている欄で、考慮時間の設定などが可能です。
たとえば「持ち時間なし、一手20秒以内で着手」という条件にしたい場合は、ここに「time_settings 0 20 1;」と入力してやればO.K.です。
基本的には、プレイアウト数と考慮時間が強さに影響する要素なので、うまく強さと対局時間のバランスがとれる条件を見つける必要があります。
登録した「Leela」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「Leela」に担当させる手番は登録されている思考エンジンの表示名から「Leela 0.11.0 GTP」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「Leela」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。
CPUバージョンを使う場合は、上の記述における「Leela0110GTP_OpenCL.exe」を「Leela0110GTP.exe」に読みかえてください。


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

https://www.sjeng.org/leela.html
posted by hatakazu at 21:04| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

2018年07月04日

GTP対応囲碁GUI「Sabaki」のインストールと使いかた - Windows編

コンピュータ囲碁プログラムとよばれるものは一般的に、現在の盤面の状況を分析して次の着手を導き出す囲碁思考エンジンそのものを指すことがおおく、それじたいは対局や棋譜分析に適した操作画面をそなえてないのがふつうです。
そうした操作画面は囲碁GUI(Graphical User Interface)とよばれるべつのソフトウェアで、囲碁思考エンジンを囲碁GUIと連携させることによって、グラフィカルな碁盤画面をつうじて囲碁思考エンジンとやりとりできるようになるわけです。
そして、囲碁思考エンジンと囲碁GUIとは、GTP(Go Text Protocol)という共通の言葉によってむすびつけられています。
囲碁GUIは現在の盤面の状況をGTP経由で囲碁思考エンジンに伝え、次の着手を導き出すよう命令し、囲碁思考エンジンも計算によって導き出された着手をGTP経由で囲碁GUIに返し、それを囲碁GUIがグラフィック画面の碁盤上に表示するという方法で、ユーザと囲碁思考エンジンとの対局や思考エンジンによる棋譜分析が可能になっているのです。
そのため、いろいろな囲碁思考エンジンを対局や棋譜分析に使うためには、GTPに対応した囲碁GUIをインストールして囲碁思考エンジンと連携させ、GTP対応囲碁GUIをとおして囲碁思考エンジンを制御してやる必要があることになります。
GTPに対応した囲碁GUIとしては、「GoGui」と「Sabaki」が一般的によく使われていると思います。
ここでは、「Sabaki」をWindowsにインストールする方法と、基本的な使いかたについて記述していきます。

「GoGui」プロジェクトページ
「Sabaki」プロジェクトページ

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

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

「Sabaki」をインストールするさいの動作要件ですが、ハードウェア的にもソフトウェア的にも特別な要請はなく、Windowsが動いているコンピュータならたいてい問題なく動かせるはずです。

2. 「Sabaki」インストールファイルのダウンロード
「Sabaki」の最新バージョンは「0.34.1」で、ダウンロードページから64bit版Windows用インストーラ「sabaki-v0.34.1-win-x64-setup.exe」を取得できます。

3. 「Sabaki」のインストール
ダウンロードしたファイルをダブルクリックすると、インストール処理がはじまります。
デフォルトのインストール先は「C:\Program Files\Sabaki」ですが、必要におうじて「C:\Users\username\Sabaki」(「username」はお使いのユーザ名)などに変更のうえ、「インストール」ボタンを押します。
デスクトップに「Sabaki」のショートカットがつくられるので、それをダブルクリックすれば、「Sabaki」が起動して碁盤が表示されるはずです。

4. 囲碁思考エンジンの登録
「Sabaki」はあくまでも囲碁GUIなので、対局や棋譜分析をおこなうためには、GTP経由で囲碁思考エンジンとやりとりする必要があります。
囲碁思考エンジンが考え、囲碁GUIがそれを画面に表現する、私たちは囲碁GUIをとおして囲碁思考エンジンと対局しているということです。
そのため、あらかじめ「Sabaki」にGTP対応囲碁思考エンジンを登録し、それとやりとりできるように設定しておかないといけません。
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば囲碁思考エンジン「AQ」を「C:\Users\username\AQ」フォルダにインストールしている場合、「(Unnamed Engine)」欄にカーソルをもっていって「AQ」と入力、「Path」欄に絶対パス「C:\Users\username\AQ\AQ.exe」を指定します。
「AQ」の場合は「AQ.exe」とおなじ場所に設定ファイル「aq_config.txt」が存在し、そこで各種パラメータを指定する方法ですが、使用する思考エンジンによってはその下の「No arguments」と表示されている欄にパラメータを記入してやる必要があります。
各種思考エンジンの「Sabaki」への登録方法については、それぞれのインストール方法を紹介するページに項目をもうけて、記述していきたいと思っています。

5. 「Sabaki」の基本的な使いかた
登録した囲碁思考エンジン(たとえば「AQ」)と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、コンピュータに担当させる手番は登録されている思考エンジンの表示名から選んで、「OK」ボタンを押下します。
メニューバーの「Engines」から「Toggle GTP Console」をクリックすると、「GTP Console」が開き、そこに囲碁GUI「Sabaki」と囲碁思考エンジン(たとえば「AQ」)とのやりとりが表示されます。
便利な使いかたとしては、「Sabaki」に複数の囲碁思考エンジンを登録しておいて、思考エンジンどうし対局させることができます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないように設定するのがいいでしょう。
「Sabaki」メニューバーの「View」から「Toggle Menu Bar」をクリックすると、メニューバーが消えてしまいますが、「Alt」キーを押すことでメニューバーが表示されるようになります。


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

http://betago.hateblo.jp/entry/2018/01/18/041210
posted by hatakazu at 20:41| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

GTP対応囲碁GUI「GoGui」のインストールと使いかた - Windows編

コンピュータ囲碁プログラムとよばれるものは一般的に、現在の盤面の状況を分析して次の着手を導き出す囲碁思考エンジンそのものを指すことがおおく、それじたいは対局や棋譜分析に適した操作画面をそなえてないのがふつうです。
そうした操作画面は囲碁GUI(Graphical User Interface)とよばれるべつのソフトウェアで、囲碁思考エンジンを囲碁GUIと連携させることによって、グラフィカルな碁盤画面をつうじて囲碁思考エンジンとやりとりできるようになるわけです。
そして、囲碁思考エンジンと囲碁GUIとは、GTP(Go Text Protocol)という共通の言葉によってむすびつけられています。
囲碁GUIは現在の盤面の状況をGTP経由で囲碁思考エンジンに伝え、次の着手を導き出すよう命令し、囲碁思考エンジンも計算によって導き出された着手をGTP経由で囲碁GUIに返し、それを囲碁GUIがグラフィック画面の碁盤上に表示するという方法で、ユーザと囲碁思考エンジンとの対局や思考エンジンによる棋譜分析が可能になっているのです。
そのため、いろいろな囲碁思考エンジンを対局や棋譜分析に使うためには、GTPに対応した囲碁GUIをインストールして囲碁思考エンジンと連携させ、GTP対応囲碁GUIをとおして囲碁思考エンジンを制御してやる必要があることになります。
GTPに対応した囲碁GUIとしては、「GoGui」と「Sabaki」が一般的によく使われていると思います。
ここでは、「GoGui」をWindowsにインストールする方法と、基本的な使いかたについて記述していきます。

「GoGui」プロジェクトページ
「Sabaki」プロジェクトページ

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

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

「GoGui」をインストールするさいの動作要件ですが、ハードウェア的には特別な要請はなく、Windowsが動いているコンピュータならたいてい問題なく動かせるはずです。
ソフトウェア的には、「GoGui」は「Javaランタイム」をあてにしているので、「Javaランタイム」をあらかじめインストールしておく必要があります。

*****「Java」ランタイムインストール*****
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

無料Javaソフトウェアをダウンロード」ページから、「無料Javaのダウンロード」 -> 「同意して無料ダウンロードを開始」とすすんで、Windows版Javaの推奨バージョン(Version 8 Update 171)インストールファイル「JavaSetup8u171.exe」をダウンロードします。

ダウンロードしたインストールファイルをダブルクリックすると、セットアップがはじまって「Javaへようこそ」画面が開くので、(必要におうじて「宛先フォルダを変更する」にチェックをいれて)「インストール」ボタンをクリックします。
ファイルのダウンロードがはじまって、最終確認を求められるので、問題なければそのまま「インストール」ボタンを押してすすめます。
デフォルトのインストール先は「C:\Program Files (x86)\Java\jre1.8.0_171」です。

インストール処理が終わったら、完了画面があらわれるので、「閉じる」ボタンをクリックして終了します。


2. 「GoGui」インストールファイルのダウンロード
「GoGui」の最新バージョンは「1.4.9」で、ダウンロードページからWindows用インストーラ「gogui-1.4.9-install.exe」を取得できます。

3. 「GoGui」のインストール
ダウンロードしたファイルをダブルクリックすると、インストール処理がはじまります。
基本的には「Next」 -> 「I Agree」 -> 「Next」 -> 「Install」でO.K.ですが、SGF棋譜ファイルをほかの棋譜管理ソフトにひもづけたい場合は、「Register GoGui as handler for SGF files」のチェックははずしておきます。
デフォルトのインストール先は「C:\Program Files (x86)\GoGui」ですが、最後の「Install」ボタンを押すまえに、必要におうじて「C:\Users\username\GoGui」(「username」はお使いのユーザ名)などに変更することができます。
デスクトップに「GoGui」のショートカットがつくられるので、それをダブルクリックすれば、「GoGui」が起動して碁盤が表示されるはずです。

4. 囲碁思考エンジンの登録
「GoGui」はあくまでも囲碁GUIなので、対局や棋譜分析をおこなうためには、GTP経由で囲碁思考エンジンとやりとりする必要があります。
囲碁思考エンジンが考え、囲碁GUIがそれを画面に表現する、私たちは囲碁GUIをとおして囲碁思考エンジンと対局しているということです。
そのため、あらかじめ「GoGui」にGTP対応囲碁思考エンジンを登録し、それとやりとりできるように設定しておかないといけません。
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば囲碁思考エンジン「AQ」を「C:\Users\username\AQ」フォルダにインストールしている場合、「コマンド:」欄に入力する絶対パスは「C:\Users\username\AQ\AQ.exe」のようになります。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「AQ」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「AQ」を選ぶと、「AQ」が起動して対局や棋譜分析に利用できるようになります。
「AQ」の場合は「AQ.exe」とおなじ場所に設定ファイル「aq_config.txt」が存在し、そこで各種パラメータを指定する方法ですが、使用する思考エンジンによっては「コマンド:」欄で絶対パスといっしょにパラメータを渡してやる必要があります。
各種思考エンジンの「GoGui」への登録方法については、それぞれのインストール方法を紹介するページに項目をもうけて、記述していきたいと思っています。

5. 「GoGui」の基本的な使いかた
登録した囲碁思考エンジン(たとえば「AQ」)と対局するには、メニューバーの「プログラム」 -> 「プログラムの起動」とすすみ、「AQ」を選んで「AQ」を起動します。
この状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックすれば、「AQ」との対局を楽しむことができます。
メニューバーの「ツール」から「GTPシェル」をクリックすると、「GTPシェル」が開き、そこに囲碁GUI「GoGui」と囲碁思考エンジン(たとえば「AQ」)とのやりとりが表示されます。
便利な使いかたとしては、検討したい局面を指定して、そこで囲碁思考エンジン(たとえば「AQ」)がどう打つかをみることができます。
メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって局面をつくったあとで、たとえば「AQ」を起動している場合、黒番の局面なら「AQに黒を打たせる」、白番の局面なら「AQに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。


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

https://github.com/ymgaq/AQ/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95%EF%BC%88Windows%EF%BC%89
posted by hatakazu at 20:13| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする