2020年05月22日

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

KataGo」はコンピュータ囲碁プログラムとしては比較的あたらしいプロジェクトで、「AlphaZero」方式の自己学習を基本としながらもさまざまな工夫をこらして学習効率を高め、ほかの類似のコンピュータ囲碁プログラムよりも短期間で強くなってきたところにアピール点があります。
「KataGo」をインストールしたコンピュータのGPU性能におうじて、適切にリソースを設定するための方法を提供し、具体的にいろいろ説明しているのもおもしろいところです。
まあそのあたりはhatakazuのようなただの囲碁愛好家にはあまり関係ないのですが、コンピュータ囲碁プログラムの思考を囲碁GUIに表示させて遊んでいる身からすれば、①「KataGo」が独自の形勢判断機能を搭載していて、形勢を目数差で表示することができること、②標準で「Lizzie」との連携が可能で、「Lizzie」でも「KataGo」独自の形勢判断機能をサポートしていること、③「v1.3」以降で日本ルールへの対応を打ち出したことはうれしいポイントです。

「KataGo」GitHubレポジトリ
・Linux用およびWindows用バイナリ配布あり。
・CUDAバージョンおよびOpenCLバージョン。
・現時点の最新バージョンは「v1.4.2」。

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)
--

「KataGo」を動かすには「CUDA」もしくは「OpenCL」に対応したGPUが必要で、ここではあらかじめ「「Ubuntu 18.04 LTS 日本語 Remix」に「CUDA 10.0」+「TensorRT 7.0.0」をインストールする」の記述のとおりに「CUDA 10.2」+「cuDNN 7.6.5」環境が構築されていることを前提として、CUDAバージョンのインストール方法を説明していきます。
「KataGo」GitHubレポジトリの記述では「CUDA 10.1」+「CUDNN 7.6.1」環境への言及がありますが、「CUDA」関連ライブラリのバージョン間における互換性などの制約は検証されておらず、今回「CUDA 10.2」+「cuDNN 7.6.5」環境でもまったく問題なく動作することが検証できました。
OpenCLバージョンをインストールする場合は、たいてい特別な準備をする必要はありませんが、OpenCLライブラリが見つからないときは警告が出るので追加インストールしてください。
以下のCUDAバージョンのインストール方法の記述のうち、「katago-v1.4.2-cuda10.1-linux-x64」の部分をすべて「katago-v1.4.2-opencl-linux-x64」に読みかえるだけで、まったくおなじ手順を実行してもらえればOpenCLバージョンをインストールできます。
なお、「KataGo」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。

2. 「KataGo」インストールファイルのダウンロード
「KataGo」の現行バージョンは「v1.4.2」で、「KataGo」GitHubレポジトリの「Releases」ページから「katago-v1.4.2-cuda10.1-linux-x64.zip」をクリックして、Linux用バイナリファイル「katago-v1.4.2-cuda10.1-linux-x64.zip」を取得します。

3. 「KataGo」のインストール
ダウンロードした「katago-v1.4.2-cuda10.1-linux-x64.zip」ファイルを解凍すると、「katago-v1.4.2-cuda10.1-linux-x64」フォルダができるので、フォルダ名をわかりやすく「katago」に変更しておきます。
この「katago」フォルダのなかにGTP思考エンジン本体である「katago」や設定ファイル「default_gtp.cfg」などがふくまれているので、この「katago」フォルダをそのまましかるべき場所(たとえば「/home/username/katago」など)に設置します。
つづいてネットワークファイルを取得します。
「KataGo」の歴代ネットワークファイルは「katago-public/g170/neuralnets」に保管されているので、そこからダウンロードしてきたネットワークファイルを自由に使うことができます。
ここでは、最近「KataGo v1.4.0」と同時に公開された、117日間トレーニングずみの最新ネットワークファイルを使ってみることにします。
それぞれことなる設計の三種類のネットワークファイルがあり、コンピュータの性能によっても強さに差が出てくるので、試してみて自分の環境に合いそうなものを採用するといいでしょう(基本的にはGPU性能が上がるほど下のものが強くなるはず)。

g170-b20c256x2-s4384473088-d968438914.bin.gz - The latest and final semi-zero 20-block net (continuing extended training on games from the bigger nets). -> ファイル名の例「kata20x256.bin.gz」
g170-b30c320x2-s3530176512-d968463914.bin.gz - The latest and final semi-zero 30-block net. -> ファイル名の例「kata30x320.bin.gz」
g170-b40c256x2-s3708042240-d967973220.bin.zp - The latest and final semi-zero 40-block net. -> ファイル名の例「kata40x256.bin.gz」

こうしてダウンロードした「kata20x256.bin.gz」「kata30x320.bin.gz」「kata40x256.bin.gz」を「katago」フォルダへ移動しておきます。

4. 「KataGo」の設定
「KataGo」フォルダのなかにGTP思考エンジン本体「katago」といっしょに設定ファイル「default_gtp.cfg」が置かれており、この設定ファイル「default_gtp.cfg」の内容を編集することで、次回起動時以降「KataGo」のふるまいを変更することができます。
ここでは現時点で最新のバージョンである「KataGo v1.4.2」をインストールしましたが、「KataGo」では「v1.3」で日本ルールへの対応を打ち出し、「katago」フォルダにある「default_gtp.cfg」でその挙動を制御できるようになっています。
基本ルールにかかわる設定ファイルの変更は以下の赤字部分で、日本ルールの適用はデフォルトの「rules = tromp-taylor」をコメントアウトして、「rules = japanese」と宣言するだけです。
個別に指定するなら、青字で示した三行のコメントをはずし、指定を有効化する方法もあります。

# Default rules------------------------------------------------------------------------------------
# See https://lightvector.github.io/KataGo/rules.html for a description of the rules.
# These rules are defaults and can be changed mid-run by several custom GTP commands.
# See https://github.com/lightvector/KataGo/blob/master/docs/GTP_Extensions.md for those commands.

# Some other legal values are: "chinese", "japanese", "korean", "aga", "chinese-ogs", "new-zealand".
# KataGo does not claim to exactly match any particular human ruleset, but KataGo will try to behave
# as closely as possible given the rules it has implemented.
# rules = tromp-taylor
rules = japanese

# Use the below instead to specify an arbitrary combination of individual rules.

# koRule = SIMPLE # Simple ko rules (triple ko = no result)
# koRule = POSITIONAL # Positional superko
# koRule = SITUATIONAL # Situational superko

# scoringRule = AREA # Area scoring
# scoringRule = TERRITORY # Territory scoring (uses a sort of special computer-friendly territory ruleset)

# taxRule = NONE # All surrounded empty points are scored
# taxRule = SEKI # Eyes in seki do NOT count as points
# taxRule = ALL # All groups are taxed up to 2 points for the two eyes needed to live

# multiStoneSuicideLegal = true #Is multiple-stone suicide legal? (Single-stone suicide is always illegal).


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

5-1. 「Lizzie」との連携
なんといっても標準で「Lizzie」と連携するGTP出力をそなえていることが、「KataGo」の特徴のひとつでもあります。
それもあって「Lizzie」のWindows用バイナリ現行バージョンには「KataGo」が同梱されていますが、これは「v1.2」で日本ルールに対応しておらず、いっしょについてくるネットワークもかなり古い(最新版ネットワークと比べるとかなり弱い)ものです。
そのため、同梱されている「KataGo v1.2」とはべつに最新版「KataGo v1.4.2」をエンジン登録し、ネットワークも最新版を導入する方法を紹介しておきましょう。
まず「Lizzie」を立ち上げ、上部メニュバーの「設定」から「エンジン」を選択し、エンジン登録画面を開きます。
この画面で、任意のエンジン番号「エンジンx」の欄に、「KataGo」思考エンジンへの絶対パス「/home/username/katago/katago」を入力します。
それにつづけてGTP通信のための「gtp」オプション、最新ネットワークファイルを指定する「-model kata20x256.bin.gz」オプション、 設定ファイルを指定する「-config default_gtp.cfg」オプションをいっしょに指定する必要があります。
最終的には一行でまとめて「/home/username/katago/katago gtp -model kata20x256.bin.gz -config default_gtp.cfg」のようになります。
「kata20x256.bin.gz」の代わりに「kata30x320.bin.gz」や「kata40x256.bin.gz」を使いたいときは、「-model」のあとのファイル名を変更すればO.K.です。
ここまでの設定が終わったら、「Lizzie」の上部メニューバー「エンジン」からを開くと、いま設定したエンジンが「エンジンx: kata20x256.bin.gz」と表示されています。
この「エンジンx: kata20x256.bin.gz」を選択すれば、日本ルール対応の最新版「KataGo」が最新版ネットワークで起動し、「KataGo」の実力をじゅうぶんに発揮させることができます。

5-2. GTP対応囲碁GUI「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「katago」フォルダを「/home/username/katago」に設置した場合、「コマンド:」欄に入力する絶対パスは「/home/username/katago/katago」のようになります。
これにオプションを追加しますが、GTP通信のための「gtp」オプションのほか、「-config default_gtp.cfg」のような設定ファイル指定、「-model kata20x256.bin.gz」のようなネットワークファイル指定が使えます。
「kata20x256.bin.gz」の代わりに「kata30x320.bin.gz」や「kata40x256.bin.gz」を使いたいときは、「-model」のあとのファイル名を変更すればO.K.です。
最終的に「コマンド欄:」には、これをすべて一行でつなげて、「/home/username/katago/katago gtp -config default_gtp.cfg -model kata20x256.bin.gz」と入力します。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「KataGo」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「KataGo」を選ぶと、「KataGo」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「KataGo」と対局するには、「KataGo」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「KataGo」がどう打つかをみることもできます。
「KataGo」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「KataGoに黒を打たせる」、白番の局面なら「KataGoに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、「GoGui」と「KataGo」との通信内容が表示されるので、なにか問題がある場合は問題解決の手がかりを得ることができます。

5-3. GTP対応囲碁GUI「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「katago」フォルダを「/home/username/katago」に設置した場合、「(Unnamed Engine)」欄にカーソルをもっていって「KataGo」と入力、「Path」欄に絶対パス「/home/username/katago/katago」を指定します。
「(No arguments)」欄にはオプションを追加しますが、GTP通信のための「gtp」オプションのほか、「-config default_gtp.cfg」のような設定ファイル指定、「-model kata20x256.bin.gz」のようなネットワークファイル指定が使えます。
「kata20x256.bin.gz」の代わりに「kata30x320.bin.gz」や「kata40x256.bin.gz」を使いたいときは、「-model」のあとのファイル名を変更すればO.K.です。
最終的に「(No arguments)」欄には、「gtp -config default_gtp.cfg -model kata20x256.bin.gz」のように入力することになります。
登録した「KataGo」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「KataGo」に担当させる手番は登録されている思考エンジンの表示名から「KataGo」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「KataGo」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。
「KataGo」では、設定ファイル「default_gtp.cfg」に記述されている「ponderingEnabled = false」の部分が該当します。
「Sabaki」では、「KataGo」をもちいて記譜解析を(SGF記譜を読みこみながら、もしくはリアルタイムで入力しながら)おこなうことができます。
「F4」キーで解析モードにうつった画面で、「KataGo」の特徴のひとつである目数差での形勢表示は可能ですが、「勝率+探索数」か「目数差+探索数」の選択となり、「Lizzie」のように「勝率」「探索数」「目数差」の三つを同時に表示させることはできないようです。

6. そのほかのポイント

6-1. GPUチューニング
「KataGo」では、GPUを制御するパラメータを適切に設定するための、さまざまな方法が提供されています。
GitHubレポジトリの「How to use」や「Tuning for performance」を参考に、GPUパフォーマンスの最適化に取りくんでいきます。


参考ウェブページ一覧表(順不同)
posted by hatakazu at 20:48| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする

Windows 10上に囲碁勉強環境を構築する - 「q5Go」編

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

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

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
--

「q5Go」をインストールするさいの動作要件ですが、ハードウェア的にもソフトウェア的にも特別な要請はなく、比較的あたらしいOSが動いているコンピュータならたいてい問題なく動かせるはずです。
ただし、「q5Go」をどれだけ使えるかはけっきょく「q5Go」から利用できる囲碁思考エンジンの性能に依存するので、最低限自分が利用したいコンピュータ囲碁プログラムを動かせる環境でないと意味がありません。

2. 「q5Go」インストールファイルのダウンロード
「q5Go」の最新バージョンは「1.1.1」で、「q5Go」GitHubレポジトリの「Releases」ページから、Windows用バイナリファイルをダウンロードすることができます。
「Releases」ページに表示されている最新バージョン「1.1.1」の「Assets」タブから「q5go-1.1.1-win.zip」をクリックして、「Windows用バイナリファイル「q5go-1.1.1-win.zip」を取得します。

3. 「q5Go」のインストール
ダウンロードした「q5go-1.1.1-win.zip」を右クリックして「すべて展開」を選ぶと、「q5go-1.1.1-win」フォルダができるので、フォルダ名をわかりやすく「q5go」に変更しておきます。
この「q5go」フォルダのなかに囲碁GUI本体である「q5go.exe」や動作に必要なライブラリなどがふくまれているので、この「q5go」フォルダをそのまましかるべき場所(たとえば「C:\Users\username\q5go」など)に設置します。
必要におうじてデスクトップにショートカットを作成しておけば、今後はこのショートカットをダブルクリックするだけでかんたんに「q5go」を起動できるようになります。

4. 「q5Go」の設定
「q5Go」を起動したら、まずは「q5Go」から呼び出すコンピュータ囲碁プログラムを登録します。
起動画面真ん中下の「Settings」をクリックし、設定画面が開いたら「Gomputer Go」タブをクリックして、エンジン登録画面を開きます。
「New」をクリックして「Name:」欄にわかりやすい表示名を、そして「Executable:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「AQ」フォルダを「C:\Users\username\AQ」に設置した場合、「Name:」欄に「AQ」と入力、「Executable:」欄に絶対パス「C:\Users\username\AQ\AQ」を指定します。
「Arguments:」欄には「--rule=1 --komi=6.5 --byoyomi=10 --use_ponder=off」のようにオプションを指定しますが、「AQ」の場合は「AQ」フォルダにある設定ファイル「config.txt」から設定を読みこむスタイルなので、基本的にここは空欄のままで問題ありません。
「config.txt」の内容を上書きして、「AQ」の動作を変更したい場合だけ、ここにその内容を記述すればO.K.です。
「Fixed Komi:」欄にデフォルトのコミ(「AQ」や「KataGo」なら「6.5」が有効に作用します)を指定、「Board size:」欄には「19」と入力しておきます。
「Lizzie」と通信できるエンジンであれば記譜解析に利用できるので「Use for analysis」ボタンにチェックをいれてから、それ以外のエンジンであればチェックがはずれた状態のままで、「OK」をクリックすればエンジンの登録は完了です。
「AQ v4.0.0」は「--lizzie」スイッチを指定することで「Lizzie」での出力が可能になっていますが、「q5Go」でおなじ設定をためしてみたところ、現時点では動かせませんでした。
そのため、記譜解析に使えるのは基本的には「Leela Zero」および「KataGo」のみ、ということになりそうです。

5. 「q5Go」の基本的な使いかた
「q5Go」はGTP対応囲碁GUIとしては比較的あたらしいもので、そのぶん「Leela Zero」のもつ「Leela Zero」や「KataGo」と連携した棋譜分析機能や「KataGo」の目数差による形勢判断表示などのあたらしいトレンドにも対応しており、非常に多機能かつ使いやすい囲碁GUIとなっています。
コンピュータ囲碁プログラム相手の対局、思考エンジンどうしの対局、「Leela Zero」および「KataGo」を利用した記譜解析、SGFファイルの編集や他形式ファイルへの変換など、囲碁GUIに期待されることはひととおりできるうえに、いくつか便利な機能も追加されています。

5-1. 思考エンジンとの対局
登録した囲碁思考エンジン(たとえば「AQ」)と対局するには、起動画面で「Play against the machine」ボタンをクリック、もしくは「Play online」ボタンをクリックして開いた画面のメニューバー「File」から「Play with program」を選択します。
開いた画面の「Engine:」欄で登録ずみの思考エンジンから対局したいエンジン(たとえば「AQ」)を選択、「Computer plays:」の右の石アイコンをクリックして、コンピュータに黒番を打たせるか白番を打たせるかを指定します。
「Board size: 19」「Komi: 6.5」「Hnadicap:」を指定し、「Main time (minutes):」および「Overtime」を設定して、「OK」ボタンを押下すれば対局開始です。

5-2. 思考エンジンどうしの対局
起動画面で「Play online」ボタンをクリックして開いた画面で、メニューバー「File」から「Computer vs. computer play」を選択します。
「Engine (white):」欄に白番を担当させたいエンジンを、「Engine (black):」欄に黒番を担当させたいエンジンを指定し、「Board size: 19」「Komi: 6.5」などの条件と時間を設定して「OK」ボタンをクリックします。
思考エンジンどうしの対局では、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないように設定しておく必要があります。

5-3. 記譜分析
新規入力する記譜を分析するためには、起動画面で「Create a board」ボタンをクリック、もしくは「Play online」ボタンをクリックして開いた画面のメニューバー「File」から「New board 19x19」を選択します。
碁盤が表示されるので、メニューバー「Edit」から「Game information」を選択し、各種情報を入力していきますが、「Komi: 6.5」を忘れずに設定しておきます。
つづいてメニューバー「Analysis」から「Choose analysis engine」へすすんで、解析に使用する思考エンジンにチェックをいれます。
ふたたびメニューバー「Analysis」から、今度は「Connect analysis engine」を選択すると、さきほど選択したエンジンが起動します。
あとは、リアルタイムで進行する分析を参照しながら、着手を入力していくことができます。
保存してあるSFG記譜を分析する場合は、起動画面で「Load SGF file」ボタンをクリック、もしくは「Play online」ボタンをクリックして開いた画面のメニューバー「File」から「Opne」を選択します。
表示された画面からディレクトリをたどって解析したいSGFファイルを見つけ、それを選択して「Open」ボタンをクリックします。
あとは新規記譜の場合とおなじように解析用エンジンを指定、立ち上げてから、カーソルキーの左右を使って記譜を分析しながら手順をすすめていきます。
候補手の色分け表示や、候補手をカーソルでポイントすることによる読み筋表示など、操作方法はほかの囲碁GUIとおなじく直感的にわかりやすくなっています。
石の上に表示されるのは勝率のみ、探索数や「KataGo」の目数形勢判断などは、右下の枠内に別途表示される仕組みになっています。

5-4. 事前記譜解析のバッチ処理
ちょっとめずらしい、「q5Go」に特徴的な機能として、思考エンジンにあらかじめ記譜を解析させて結果を書き込んだSFGファイルを出力する、バッチ処理があります。
hatakazuのコンピュータはなんとか「CUDA」環境でGPUを動かせるぎりぎりの性能しかもっておらず、「Lizzie」から思考エンジンを立ち上げてGPUをぶんぶん回していると、正直なところ負荷が大きくて操作に支障をきたしたり最悪しばらく入力を受けつけなくなったりします。
しかしたとえば寝ているあいだや外出中にこの事前記譜解析バッチ処理を走らせておけば、コンピュータにむかうときにはすでに解析を終えてデータが書き込まれたSFGファイルが準備されており、「q5Go」からそれを開いて手順を追っていくと(その時点では思考エンジンを動かす必要はなく、GPUを回してコンピュータに負担をかけることなく)解析結果を見ることができるのです。
強力なGPUを搭載しているコンピュータであれば、同時進行で解析しながらでも問題ないのでしょうが、hatakazuのようにとぼしいGPU資源しかもたないコンピュータを使っている場合はたいへん助かります。
たとえば寝ているあいだに、同時進行なら待ってられないほどの時間をかけて深く解析させておいて、それをあとから短時間でパラパラと軽快に追っていくことができるということです。
hatakazuがこの囲碁GUI「q5Go」を使っている理由、ここであらためて紹介する理由は、おもにこのバッチ処理機能が便利で重宝しているところにあります。
事前記譜解析のバッチ処理を実行するためには、起動画面で「Batch analysis」ボタンをクリック、もしくは「Play online」ボタンをクリックして開いた画面のメニューバー「File」から「Batch analysis」を選択します。
「Batch computer analysis」画面が表示されるので、「Choose:」欄で解析に使用する思考エンジンを指定、メニューバー「Analysis」から「Choose analysis engine」へすすんで、解析に使用する思考エンジンにチェックをいれます。
左側の「Number of seconds per move:」と「Maximum number of lines to add:」は、一手ごとにどれだけ時間をかけて読ませ、その読んだなかからどれだけの情報を解析結果として出力するかを指定するパラメータです。
数が大きいほど情報量は増えますが、そのぶん解析にかかる時間も長くなります。
「If fixed engine komi:」では、たとえば「PhoenixGo」のように七目半以外のコミを受けつけないエンジンに、たとえばコミ六目半の碁を解析させるときの振る舞いを制御します。
このあたりの設定を終えたら、「File to analysis」欄で解析したいSGFファイルを選んでは「Add to queue」ボタンを押して「Job queue」へ追加していきます。
解析したいSFGファイルをすべて登録したら、「Start engine」ボタンをクリックします。
「Choose:」欄で設定した解析用エンジンが立ち上がり、SFGファイルを順番に解析にかけて、その結果(候補手、読み筋、勝率の推移など)を各SFGファイルへ追加していきます。
作業が終わったSFGファイルを「q5Go」で開くと、あらかじめ思考エンジンによって解析した結果が書き込まれているので、思考エンジンを起動することなく手順を追っていくことができるというわけです。
そのさいは、まさにリアルタイムで解析しながら手順を再生するときとおなじように、候補手が勝率におうじて色分け表示され、気になる候補手をポイントすれば読み筋があらわれ、勝率の推移や探索深さのデータ、「KataGo」で解析させた場合は目数形勢判断もすべて見ることができます。


参考ウェブページ一覧表(順不同)
posted by hatakazu at 18:50| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする