2020年05月15日

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

もともとはコンピュータ囲碁プログラム「Leela Zero」専用のGTP対応囲碁GUIとして開発された「Lizzie」ですが、インタフェースの使いやすさが非常に高く評価されて、さまざまなコンピュータ囲碁プログラムとの組み合わせて利用できるよう工夫されてきました。
現行のバージョンでは、「KataGo」が同梱されており、はじめから「Leela Zero」と「KataGo」の二つの思考エンジンを選択して使えるようになっています。

「Lizzie」GitHubレポジトリ
・Windowsバイナリ配布あり。
・64bit対応。
・GPUバージョンおよびCPUバージョン。
・現時点の最新バージョンは「0.7.2」。

とくに棋譜を分析するということにかけては優秀で、勝率の推移はもちろんのこと、複数の候補手とそれぞれの勝率、そのあとの読み筋などをグラフィカルにわかりやすく表示させることが可能で、hatakazuのようにコンピュータで囲碁の勉強をするひとにとってはたいへん役にたつツールです。
「Leela Zero」の思考エンジンを経由するかたちで、「ELF OpenGo」などのネットワークを使って棋譜を分析することもできるのも、「Lizzie」の魅力のひとつといえるでしょう。

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」や「KataGo」などのコンピュータ囲碁プログラムの思考を人間にわかりやすい方法で表現するインタフェースなので、そのコンピュータ囲碁プログラムを動かすのに要求される条件を考慮する必要があります。
メインの「Leela Zero」でいえば、NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであればGPUバージョンを動かすことができますが、それ以外の場合はCPUバージョンしか使えません。
なのでそれに合わせて、NVIDIA製もしくはAMD製の外部GPUを搭載したコンピュータであればGPUバージョン「Lizzie」を、それ以外の場合はCPUバージョン「Lizzie」をインストールすることになります。
「KataGo」のほうはCPUバージョンはなく、基本的にOpenCL対応GPU(CPU組込型ふくむ)以上のコンピュータでしか動きませんが、「Lizzie」のGPUバージョンかCPUバージョンかを問わず、パッケージにふくまれているのは「CUDA」環境をあてにするCUDAバージョンではなく、より幅広いハードウェアに対応するOpenCLバージョンのほうです。
ここではとりあえず「Lizzie」をインストールして標準の状態のまま、「Leela Zero」や「KataGo」を使って対局や棋譜分析をできるようにするところまでを、基本編として記述します。
GPUだのCPUだのCUDAだのOpenCLだのにまったく興味がなく、よくわからないという場合は、以下の手順にしたがってCPUバージョン「Lizzie」(=CPUバージョン「Leela Zero」+OpenCLバージョン「KataGo」)をインストールすることをおすすめします。
「Leela Zero」や「KataGo」にべつのネットワークファイルを読みこませたり、ほかのコンピュータ囲碁プログラムと連携させたりして、「Lizzie」をより便利に利用する設定方法については、あらためて応用編でまとめていきます。

*****「Java」ランタイムインストール*****
ソフトウェア的には、「Lizzie」は「Java」ランタイムをあてにしているので、「Java」ランタイムをあらかじめインストールしておく必要があります。
Windows 10上に囲碁勉強環境を構築する - 準備編」のなかに必要な手順が記述されていますが、「CUDA」とかはどうでもいいので、とにかく「Lizzie」をインストールして「Leela Zero」を動かせればいいというむきのために、以下に「Java」ランタイムのインストール方法だけ再掲しておきます。
(必要な環境がすでに構築されている場合は、このセクションは無視して先へすすんでください。)

1) 「Java」ランタイムのインストール
無料Javaソフトウェアをダウンロード」ページから、「無料Javaのダウンロード」 -> 「同意して無料ダウンロードを開始」とすすんで、Windows版Javaの推奨バージョン(Version 8 Update 251)インストールファイル「JavaSetup8u251.exe」をダウンロードします。
ダウンロードに問題がある場合は、「全オペレーティング・システム用のJavaのダウンロード」ページから、明示的に必要なファイル「jre-8u251-windows-x64.exe」を選択してダウンロードしてみてください。
ダウンロードしたインストールファイルをダブルクリックすると、セットアップがはじまって「Javaへようこそ」画面が開くので、(必要におうじて「宛先フォルダを変更する」にチェックをいれて)「インストール」ボタンをクリックします。
ファイルのダウンロードがはじまって、最終確認を求められるので、問題なければそのまま「インストール」ボタンを押してすすめます。
古いバージョンの「Java」ランタイムがインストールされていた場合、この段階で検出されるので、かならずアンインストールしておきましょう。
デフォルトのインストール先は「C:\Program Files (x86)\Java\jre1.8.0_251」で、インストール完了時点でパスはとおって、すでに使えるようになっているはずです。
インストール処理が終わったら、完了画面があらわれるので、「閉じる」ボタンをクリックして終了します。


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

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

4. 「Lizzie」の設定
「lizzie」フォルダ直下には「Lizzie」囲碁GUI機能を提供する「Lizzie.jar」のほか、「Lizzie」の動作を制御する設定ファイル「config.txt」や、「Leela Zero」が利用する学習ずみネットワーク「lznetwork.gz」、「KataGo」のネットワーク「katanetwork.gz」などが置かれています。
「Lizzie」と連携して動く「Leela Zero」の囲碁思考エンジン本体である「leelaz.exe」は「leelazero」フォルダ内に、「KataGo」の囲碁思考エンジン本体である「katago.exe」は「katago」フォルダ内に、独立に格納されています。
動作要件どおり「Java」ランタイムがインストールされた環境であれば、「Lizzie.jar」をダブルクリックすることで、「Lizzie」が起動するはずです。
はじめて「Lizzie」を起動する場合は、連携する「Leela Zero」が「OpenCL」チューニングを設定する必要があるため、じゃっかん時間がかかります。
左下に「Leela Zero is loading...」というメッセージが表示された状態で、しばらく待たされますが、このメッセージが消えたら「Lizzie」は問題なく起動しています。
上部メニューバーに「ファイル」「表示」「対局」「設定」「エンジン0: lznetwork.gz」と表示されていますが、この「エンジン0: lznetwork.gz」部分をクリックすると「エンジン0: lznetwork.gz」「エンジン1: katanetwork.gz」の二つの選択肢が見え、「エンジン1: katanetwork.gz」をクリックすると「Leela Zero」の代わりに「KataGo」を用いた対局や棋譜分析ができるようになります。
「KataGo」を初めて起動するときもおなじように、画面が動き出すまでにかなり時間がかかります。
かつては設定ファイル「config.txt」を直接編集して「Lizzie」の動作を制御していましたが、現在ではほとんどの項目を「Lizzie」上でグラフィカルに設定できるようになっています。

5. 「Lizzie」の使いかた
デフォルトであらわれるのは、白黒両方を手動入力するかたちで、「Leela Zero」エンジンの思考内容を表示させていく画面です。
「x」キーを押すことで、入力できるコマンドの一覧表が表示されます。
「Leela Zero」との対局を開始するためには、「n」キーを押下します。
対局条件としては手番と置石のほか、コミも六目半に設定できるようになっていますが、日本ルールに対応できるのは「KataGo」のみですこし設定の変更も必要になります(「Lizzie」応用編であつかいます)。
「Leela Zero」に棋譜分析させるためには、「o」キーを押して、分析したいSGFファイルを読みこみます。
「s」キーで保存、「i」キーで棋譜情報編集(ここでコミも変更できる)、「m」キーで手順番号表示、「.」キーで地を数えて形勢判断します。
形勢判断は「KataGo」では標準の「katago形勢」を使います(画面下部ツールバーの「katago形勢」ボタンをクリックしても同じ)が、「Leela Zero」での形勢判断(画面下部ツールバーの「形勢」ボタンをクリックしても同じ)を機能させるためには、ここから「YAZenGtp.exe」および「Zen.dll」をダウンロードして「lizzie」フォルダに置いておく必要があります。
上下矢印キーで手順操作、左右矢印キーで分岐ツリーを移動、「home」キーで棋譜の最初へ、「end」キーで棋譜の最後へ飛びます。
棋譜分析では、考えられる候補手が勝率および思考深さ(「KataGo」では目数差も)とともに表示され、候補手のどれかにカーソルを重ねるとそのあとの読み筋が表示される仕組みになっています。
「space」キーで「Leela Zero」の思考開始/停止をコントロールできるほか、「enter」キーで「Leela Zero」に次の手を打たせてみることもできます。
そのあたりの操作も、画面上部メニューバーと画面下部ツールバーからマウスで操作できるようになっています。
「Leela Zero」や「KataGo」の挙動に問題がある場合は、画面上部メニューバー「表示」 -> 「パネル表示」 -> 「Gtpコンソール」にチェックをいれて通信内容を見てみると、解決のためのヒントがつかめるかもしれません。
posted by hatakazu at 20:10| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください