ソフト

他AIの導入方法
ZBaduk囲碁AIメガパックMinigoELF OpenGoKataGo(対局用)PhoenixGoKataGo(検討用)LizGobanLizzieLeelaZeroAQLeela
そしてAlphaGo学習ツール
現在、囲碁AIは戦国時代となり、非常に多くのプログラムが作られていますが、そのうちソースが公開されていて無料で使えるものの導入法を紹介していきます。(説明に用いている図の上にマウスポインタ-を持っていくと大きい図になることがあります。)
紹介した各導入法はネット上で公開されている多くの記事・資料を参考にさせていただきました。お礼申し上げます。

※※ここに紹介した囲碁AIは、すべてGPUのないCPUのみのパソコンでも動きます。※※




【ZBaduk】
「ZBaduk」はパソコンに囲碁AIが入ってなくてもオンラインで囲碁AIを利用できるサービスです。ただし英語です。
まずはここにアクセスしてください。
会員登録(無料、メールアドレスを登録するだけ)をすると利用できるものが増えます。Log inをクリックして Registerをクリック、必要事項を記入し、碁盤の急所に黒石を置いたら登録完了です。
ZBadukのページにはメニューが4つあります。

Play Bot
ZBadukの囲碁AIと対戦できます。置き碁はできないようですが、指導碁モードがあり互角になるように手抜きをしてくれます。
終局後に棋譜を保存できますが、会員登録が必要です。

Game Editor
これの使い方はよく分かりません。碁盤には幻庵因碩と本因坊秀策の棋譜が入っています。好きなところの石を置き直すことが出来ます。

Smart Review
検討に使用できる囲碁AIはLeelaZeroやKatagoが使えるようです。これらはNVIDIA製GPUのあるサーバーで動いていると書いてあります。
検討したい棋譜をアップロードすればLizzie風に勝率が出ます。

Saved Games
打ち碁の棋譜または別の場所から棋譜をアップロードして貯めておく場所であり、その棋譜を検討できるところでもあります。

以上簡単にZBadukを紹介しました。詳しい使い方は私も知りません。パソコンにAIを入れられない人には便利なところと思います。





【囲碁AIメガパック】
この英語版「囲碁AIメガパック」は韓国版「囲碁AI統合プログラム」からあまり使われないツールやエンジンを削除したもので、日本の私たちにはこれで十分と思います。
ELF、KataGo、LeelaZero、minigo、PhoenixGo、SAI、Leelaの幾つかのバージョン、SabakiとLizGobanも入っています。
さらに更新が早いことも特徴です。製作者の Seventeen wonsiksさんが精力的に各囲碁AIの更新状況を把握し、即座にバージョンアップしています。


※※※注意※※※
1.Cドライブ直下に LizGoban、lizzie、nodejs、Sabakiのフォルダがあると、「囲碁AIメガパック」のフォルダに取り込まれます。残しておきたい場合は名前を変えておくなどしてくだい。
2.すでにSabakiをインストールしている場合、このプログラムをインストールすると既存のSabakiの登録エンジンも書き換えられてしまいます。Sabakiの使用するエンジンは「C:\Users\ユーザー名\AppData\Roaming\Sabaki」に登録されているので、このフォルダを別の場所にコピーしておくか、または名前を変更して、使うときだけSabakiに名前を変えるという手もあります。なお、このフォルダは隠しフォルダの中なので、エクスプローラーを隠しフォルダが見えるように設定しておく必要があります。
3.デスクトップにLizzieやSabaki、LizGobanのアイコンが既にあると書き換えられます。残しておきたければ名前を変えるなどしてください。


手順1
こちらがダウンロードページです。
ここの「Installer for various AI Baduk(Go) softwares v3.**.*」の下のリンクからダウンロードしてください(容量が2.2Gbほどあります)。
ダウンロードサイトが複数ありますが、中身は同じ物です。グーグルドライブのポリシーが最近変更されたため、download1からのダウンロードに失敗した場合は他を試してください。
現在のバージョンは v3.16.2です。

なお、Windowsが32bitでGPUの無いCPUのみのパソコンの人向けにライトバージョンが掲載されています。こちらからダウンロードしてインストールしてください。

手順2
ダウンロードした [Seventeen]Baduk_AI_Megapack_v3.**.*_x64.exe をダブルクリックまたは開くとインストールが始まります。

インストールの初めに、お使いのパソコンのGPUの種類を聞いてきます。自動的に検出された名前が呈示されるのでそれにしたがってください。よく分からなければ「dxdiag」などであらかじめ確認しておいてください。

単体のGPUを搭載していないパソコンの場合は「4 - CPU embedded GPU (Intel or AMD)」を選択してください。

インストールの最後に、Katagoのgtp.cfgのセットアップをするかどうか聞いてきます。英語が得意でない人は「2 - No, I'll do it later」として後でセットアップするようにしてください。ただし、後にするとgtp.cfgのルールの項目は何も設定されません。Katagoの記事を参照してご自分で設定してください。
セットアップする場合は、ここで日本ルールにするなど詳細な設定ができます。


インストールが完了すると、デスクトップ上に図のようなフォルダができています。

手順3
フォルダの中身です。LizGobanとLizzieとSabakiが入っています。
「Generate Katago Config」はKatagoのgtp.cfgの編集ができます。
「Update LeelaZero Network」「Update SAI Network」というアイコンは、それぞれ最新のweightsファイル(networkファイル)をダウンロードするためのものです。

手順4 Lizzie実行
Lizzieのアイコンをダブルクリックして起動すると、Lizzieの碁盤が現れます。メニューその他は日本語になっています。
上部メニューの右端「エンジン」をクリックすると、現在使えるエンジンのリストが現れますから好きなエンジンを選びます。

エンジンをKataGoにしてスペースキーを押し、分析実行中にすると選択手に数字が3つあります。上から勝率、試行回数、目数差です。KataGoは目数差も学習しているのが他のエンジンと違うところです。

このプログラムはLizzie 0.7と同じように下部にもメニューがあって、いろいろ便利です。例えば「形勢」をクリックすれば Sabakiの勢力図と同じような図になります。(KataGoの場合は「katago形勢」)
他にもいろいろな使い方が豊富なので、その他のメニューも試して見てください。

なお使用するエンジンの並び方は「lizzie」フォルダにある「config.txt」を書き換えれば、好きな順にできます。起動したときに動くエンジンは図の下にある赤線なので、これを変更すれば好きなエンジンに変えられます。

※※Lizzie下部メニューの「形勢」をクリックしてエラーになる場合は、、囲碁AI統合プログラム手順4を実行してZen.dllをlizzieフォルダに入れてください。

手順5 Sabaki実行
Sabakiを起動し、「Engines」→「Manage Engines」をクリックするとエンジン登録画面になりますが、すでに登録されていますので好きなエンジンをすぐ使えます。

Sabakiの盤面に石があるとき、上部メニューで Engines→Atacch…で分析に使うエンジンを指定し(白黒どちらでもいい)、次に任意の局面でF4キーを押すとLizzie風の勝率予想手を示してくれます。
候補手にマウスポインタを持っていくと、以降の予想手順を示してくれるのはLizzieと同じです。

手順6 LizGoban実行
上部メニューの「Preset」で、使用するエンジンを選べます。オリジナルのLizGobanはLeelaZeroとKataGoのみですが、メガパックでは他のエンジンも選択できます。
Katagoを使用する場合、「Edit」でコミと日本ルールを含むさまざまなルールに変更できます。「File」で19路盤の他に13路と9路を選べます。


※※修正・追記(Apr. 6, 2020)※※





【Minigo】
MinigoはAlphaGoZeroのアルゴリズムに触発された Brian Lee氏が開発し、当初「MuGo」として大会に出場していたものを改修してオープンソース化したものです。
このAIは他のAIと強さを競うものではなく、皆で開発を楽しむというコンセブトのようです。そのためか布石も独特で、打ってみると人間くさい面を感じさせます。
現在v.17まで開発が進んでいるようですが、ウェイトファイルはv16のものがLeelaZero用に変換されています。
手順1
公表されている学習ずみweightsファイルは表の 001144-two-lions(BestModel)で、LeelaZero用に変換されたものはこちらにあります。この表の一番上、v16-19x19/models/001144-two-lions_converted.txt.gzをダウンロードしてください。
また同じ物が Leelaのウェイトファイル倉庫にもあります。2019-Feb-13 17:23のものです。
手順2
ダウンロードした学習ずみweightsファイル名を「weights-minigo.txt」に変更して、LeelaZeroのweights.txtのあるフォルダにコピーまたは移動してください。

手順3
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順4
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(MiniGoなど)
「Path」の左にあるフォルダのマークをクリックしてLeelaZeroフォルダの中にある「leelaz.exe」を指定します。
「No arguments」にはいろいろなコマンドを書きます。例として私は(-g -t 4 -p 1000 --noponder -w weights-minigo.txt)としました。(このへんはLeelaZeroと同じですが、weights.txtをweights-minigo.txtに変更するのを忘れないでください)
※※no ponderの前の「-」が2つあることに注意※※
「Initial Commands(; -separated)」は考慮時間の設定です。例えば、「time_settings 0 15 1;」とすれば、持ち時間ゼロ、秒読み1手15秒となります。
なお、この黒い設定画面の上の「Enable GTP logging to directory」にチェックして保存するフォルダを指定すれば対局ログを保存できます。(棋譜の保存とは違います)
入力が終われば右下の「Close」をクリックします。

手順5(実行)
Sabakiの上部メニューの「File」から「new」を選び、対戦設定を記入すれば対戦できます。黒を自分、白をLeelaZero(minigo)にするならBlackの横のレ点マークでmanual、Whiteの横のレ点マークでMiniGoを選択します。囲碁AIを他にも導入していれば、AI同士を戦わせることもできます。その場合、両方のAIを pondering off(--noponder)に設定することが必須です。
以上でminigoの思考部分がLeelaZeroで実行されることになりました。


Lizzieをminigoで動かす
Lizzieでも同様に、minigoの学習ずみweightsファイルを使えばminigoの思考で探索することになります。
上で名前を書き換えた「weights-minigo.txt」をLizzieフォルダのlizzie.jarのある場所にコピーします。
Lizzieを初めて使う場合は、一度Lizzieを起動しておきます。
Lizzieのconfig.txtをエディターで開いて赤い下線のところを書き換えます。
"network-file": "lznetwork.gz", "network-file": "weights-minigo.txt",
"engine-command": "./leelazero/leelaz --gtp --lagbuffer 0 --weights lznetwork.gz", "engine-command": "./leelazero/leelaz --gtp --lagbuffer 0 --weights %network-file",

こうしてからlizzie.jarをダブルクリックまたは開けば起動するはずです。
「Lizzie」などと比較してみるのも面白いでしょう。

※※修正・追記(Oct. 2, 2019)※※





【ELF OpenGo】
ELF OpenGoはFacebookがAlphaGoZeroと同じ方法を再現して強化し、2018年5月に公開したものです。Windowsで動くバージョンも公開されていますので末尾に記載します。
ここでは一般的な手法すなわち、学習ずみweightsファイル(LeelaZeroのweights.txtのようなもの)をLeelaZero用に変換して、思考部分をELF、実行部分をLeelaZeroとした疑似ELFの手法を説明します。
従って、CPU版、GPU版でもLeelaZeroが動いていることが前提です。

手順1
公表されている学習ずみweightsファイルは現在以下の3つで、それぞれLeelaZero用に変換されたものがあります。
pretrained-go-19x19-v0 (May 2,2018) 62b5417b64c46976795d10a6741801f15f857e5029681a42d02c9852097df4b9.gz
pretrained-go-19x19-v1 (Jul 31,2018) d13c40993740cb77d85c838b82c08cc9c3f0fbc7d8c3761366e5d59e8f371cbd.gz
pretrained-go-19x19-v2 (Feb 13,2019) 05dbca157002b9fd618145d22803beae0f7e4015af48ac50f246b9316e315544.gz
LeelaZero用に変換されたファイルはこちらにありますので探してください。
CtrlキーとFキーを同時に押して現れる検索窓にファイル名の最初の文字6~10文字くらいを入力すれば検索出来ます。またはページトップのメニューで「Date ↓」をクリックして掲載日をソートすれば分かりやすくなります。(ただし v0はJul 11,2018)

手順2
ダウンロードした学習ずみweightsファイル名を「weights-elf.txt」に変更して、LeelaZeroのweights.txtのあるフォルダにコピーまたは移動してください。

手順3
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順4
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(LeelaZero(ELF)など)
「Path」の左にあるフォルダのマークをクリックしてLeelaZeroフォルダの中にある「leelaz.exe」を指定します。
「No arguments」にはいろいろなコマンドを書きます。例として私は(-g -t 4 -p 1000 --noponder -w weights-elf.txt)としました。(このへんはLeelaZeroと同じですが、weights.txtをweights-elf.txtに変更するのを忘れないでください)
※※no ponderの前の「-」が2つあることに注意※※
「Initial Commands(; -separated)」は考慮時間の設定です。例えば、「time_settings 0 15 1;」とすれば、持ち時間ゼロ、秒読み1手15秒となります。
なお、この黒い設定画面の上の「Enable GTP logging to directory」にチェックして保存するフォルダを指定すれば対局ログを保存できます。(棋譜の保存とは違います)
入力が終われば右下の「Close」をクリックします。

手順5(実行)
Sabakiの上部メニューの「File」から「new」を選び、対戦設定を記入すれば対戦できます。黒を自分、白をLeelaZero(ELF)にするならBlackの横のレ点マークでmanual、Whiteの横のレ点マークでLeelaZeroを選択します。囲碁AIを他にも導入していれば、AI同士を戦わせることもできます。その場合、両方のAIを pondering off(--noponder)に設定することが必須です。
以上でELFの思考部分がLeelaZeroで実行されることになりました。


LizzieをELFで動かす
Lizzieでも同様に、ELFの学習ずみweightsファイルを使えばELFの思考で探索することになります。
上で名前を書き換えた「weights-elf.txt」をLizzieフォルダのlizzie.jarのある場所にコピーします。
Lizzieを初めて使う場合は、一度Lizzieを起動しておきます。
Lizzieのconfig.txtをエディターで開いて赤い下線のところを書き換えます。
"network-file": "lznetwork.gz", "network-file": "weights-elf.txt",
"engine-command": "./leelazero/leelaz --gtp --lagbuffer 0 --weights lznetwork.gz", "engine-command": "./leelazero/leelaz --gtp --lagbuffer 0 --weights %network-file",

こうしてからlizzie.jarをダブルクリックまたは開けば起動するはずです。
「Lizzie」、「KataGoで動くLizzie」などと比較してみるのも面白いでしょう。微妙に違います。

ELF本体を直接動かす方法を説明します。
ELFはCUDA10.0が必要と公式ページに書いてありますが、GPUの無いCPUのみのパソコンでも動いたので、GPU有りでCUDAもあれば最高のパフォーマンスを得られるという意味かもしれません。
なお、Sabakiで動かすとき、コミを認識しないというSabakiの警告が出る場合があります。Sabakiのバージョンによって警告が出たり出なかったり安定しません。警告があってもプレイすることは可能です。

Windows版のELF本体はこちらのページの中段、「ELF OpenGo Windows binary」をダウンロードして保存し、適当な場所に展開してください。

Sabakiを起動して、ELFのCPU、GPUのバージョンの設定を図のようにしてください。
CPUの場合、No argumentsには「--load model-v2.bin --mcts_rollout_per_thread 80」
GPUの場合、No argumentsには「--load model-v2.bin」
Initial commands (;-separated) には何も入れなくていいですが、考慮時間を入れる場合、CPUは最小40秒、GPUは最小4秒にしてください。
なお、rollout threadの数を大きくすればELFが強くなります(その代わり考慮時間が増えます)。CPUの場合、デフォルトは80で40秒、GPUの場合、デフォルトは800で4秒、1600にすると8秒になります。

※※修正・追記(Nov. 11, 2019)※※





【Katago(対局用)】
Katagoは囲碁AI開発者のDavid J. Wu氏が新しい手法(探索数をランダム変動させて高速化するテクニック等)で作ったもので、学習効率は既存の囲碁AIを上回っているそうです。

手順1
Katagoのページに行き、CUDAをインストールしてあるなら「katago-v1.3.5-cuda10.1-windows-x64.zip」、CUDAが無ければ「katago-v1.3.5-opencl-windows-x64.zip」をダウンロードして適当な場所に展開します。
さらに、このページに行きweightsファイル(Neural Nets)「g170e-b20c256x2-s3354994176-d716845198.bin.gz」をダウンロードして保存します。そして名前を「default_model.bin.gz」と変更します。
weightsファイルは30,40ブロックのものも公開されているので、どれを使うかはご自分で判断してください。

<最初にお使いの環境に最適になるようチューニングする方法>
コマンドプロンプトを開き、 [katago.exe benchmark -model default_model.bin.gz]としてベンチマークテストをします。
OpenCL上では、KataGoがGPUに合わせてチューニングを行うようになるはずです。そうすると、ベンチマークは速度とスレッドに関する統計情報を報告します。gtp_example.cfg の numSearchThreadsなどの値を設定すれば良いパフォーマンスを得られるでしょう。
※※囲碁AIメガパックにあるGenerate KataGo Configを使用すれば自動的に変更されるので、メガパックはお薦めです。※※

※※詰碁に焦点を合わせてトレーニングをしたweightsファイルが発表されています。
※※使うならこちらからigoh120-s618909184-d292623510.txt.gzをダウンロードして、既存のmodelファイルと置き換えてください。

CUDA版の場合、CUDA(クーダ)のインストールが必要です。opencl版の場合は次の手順2を飛ばして手順3に進んでください。
手順2
GPU向けのツールであるCUDA(クーダ)とcuDNNをインストールします。
詳細はCUDAのインストールをご覧下さい。

手順3
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順4
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(katago-openclなど)
「Path」の左にあるフォルダのマークをクリックしてkatagoフォルダの中にある「katago.exe」を指定します。
「No arguments」には何も指定しなくてかまいません。KataGoは自動的にdefault_gtp.cfgとdefault_model.bin.gzを指定します。
もし指定するなら、例えば「gtp -model C:\katago-opencl\model.bin.gz -config C:\katago-opencl\gtp_example.cfg」などと入力します。(CUDA版ならそのフォルダを指定)
「Initial Commands(; -separated)」には何も書かなくていいですが、考慮時間を設定するなら例えば、「time_settings 0 15 1;」 とすれば、持ち時間ゼロ、秒読み1手15秒となります。入力が終われば右下の「Close」をクリックします。

手順5
初期設定は中国ルールですから日本ルールに変更するなら katagoフォルダにある「gtp_example.cfg」をテキストエディター(またはメモ帳)で開いて「# Rules---」の項目の以下を書き直します。そして対局のコミ設定も6.5目としてください。
変更前変更後
# koRule = SIMPLEkoRule = SIMPLE
koRule = POSITIONAL# koRule = POSITIONAL
scoringRule = AREA# scoringRule = AREA
# scoringRule = TERRITORYscoringRule = TERRITORY
# taxRule = SEKItaxRule = SEKI
multiStoneSuicideLegal = truemultiStoneSuicideLegal = false

他に、Threads数、検索時間、先読み機能(pondering)、Playouts数なども、ここで書き換えられます。

手順6(実行)
Sabakiの上部メニューの「File」から「new」を選び、対戦設定を記入すれば対戦できます。黒を自分、白をKataGoにするならBlackの横のレ点マークでmanual、Whiteの横のレ点マークでKataGoを選択します。囲碁AIを他にも導入していれば、AI同士を戦わせることもできます。その場合、両方のAIを pondering off(--noponder)に設定することが必須です。(KataGoはデフォルトでpondering offになっています)

※※修正・追記(Mar. 31, 2020)※※





【PhoenixGo】
「PhoenixGo」は、Tencent社が開発しオープンソース化した囲碁AIです。2018年4月の「世界囲碁AIトーナメント」で優勝しました。
GPU版とCPU版がありますが、windows64bitのパソコンが必要です。
手順1
PhoenixGoのページで最新のものをダウンロードします。
目的のファイル名の下にあるAssetをクリックするとダウンロードできるファイルが現れます。CPU版なら「PhoenixGo-win-x64-cpuonly-v1.zip」、GPU版なら「PhoenixGo-win-x64-gpu-v1.zip」または「PhoenixGo-win-x64-gpu-with-cuda-v1.zip」です。ダウンロードしたら適当な場所に展開してください。
CUDA版の場合、CUDA(クーダ)のインストールが必要です。それ以外は次の手順2を飛ばして手順3に進んでください。
手順2
GPU向けのツールであるCUDA(クーダ)とcuDNNをインストールします。
詳細はCUDAのインストールをご覧下さい。

手順3
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順4
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(PhoenixGoなど)
「Path」の左にあるフォルダのマークをクリックしてPhoenixGoフォルダの中にある「start.bat」を指定します。
「No arguments」以下は何もしなくてかまいませんが、考慮時間を設定するなら「Initial Commands(; -separated)」に例えば、「time_settings 0 15 1;」とすれば、持ち時間ゼロ、秒読み1手15秒となります。しかしPhoenixGoは初手こそ時間がかかりますが(GPU版は特に遅い)、打ち始めればさくさく進むので考慮時間の設定等、あまり意味が無いかも知れません。入力が終われば右下の「Close」をクリックします。

手順5(実行)
Sabakiの上部メニューの「File」から「new」を選び、対戦設定を記入すれば対戦できます。黒を自分、白をPhoenixGoにするならBlackの横のレ点マークでmanual、Whiteの横のレ点マークでPhoenixGoを選択します。囲碁AIを他にも導入していれば、AI同士を戦わせることもできます。その場合、両方のAIを pondering off(--noponder)に設定することが必須ですが、PhoenixGoはデフォルトで pondering offになっています。
Sabakiの上部メニューの「Engines」で「Toggle Gtp Console」をクリックすると左にAIの作業ログ画面が現れます。

※※修正・追記(Nov. 11, 2019)※※





【Katago(検討用)】
Lizzie0.7にはKatagoが備わっているので、この項は要らなくなりましたが、Lizzie0.6などで使う方のために残しておきます。
Lizzieの碁盤で動作する囲碁の思考エンジンです。Lizzieを導入して使っていることが前提になります。
手順1
まず、Lizzie(0.6以前)をフォルダごと適当な場所にコピーします。私は「Lizzie(katago)」というフォルダ名にして、C:\直下にコピーしました。

手順2
Katagoのページに行き、「katago-v1.3.5-opencl-windows-x64.zip」をダウンロードして適当な場所に保存します。それを展開して「katago-v1.3.5-opencl-windows-x64.zip」フォルダの中身を上記のLizzie(katago)フォルダにコピーまたは移動します。(フォルダごとコピーしてもいいですが、その場合は下記config.txtの書き換えでフォルダ名を追加しなければなりません)
さらに、このページに行きweightsファイル(Neural Nets)「g170e-b20c256x2-s3354994176-d716845198.bin.gz」をダウンロードして保存します。そして名前を「model.bin.gz」に変更して、katago.exeのあるフォルダにコピーします。
weightsファイルは30,40ブロックのものも公開されているので、どれを使うかはご自分で判断してください。

手順3
lizzie.jarのあるフォルダ(C:\Lizzie(katago))の中の「config.txt」をテキストエディター(またはメモ帳)で開き、図のように書き換えます。
"network-file": "network.gz" "network-file": "model.bin.gz"
"engine-command": "./leela-zero/leelaz --gtp --lagbuffer 0 --weights %network-file" "engine-command": "katago.exe gtp -override-version 0.17 -config gtp_example.cfg -model %network-file"

手順4
初期設定は中国ルールですから日本ルールに変更するなら katagoフォルダにある「gtp_example.cfg」をテキストエディター(またはメモ帳)で開いて「# Rules---」の項目の以下を書き直します。そして対局のコミ設定も6.5目としてください。
変更前変更後
# koRule = SIMPLEkoRule = SIMPLE
koRule = POSITIONAL# koRule = POSITIONAL
scoringRule = AREA# scoringRule = AREA
# scoringRule = TERRITORYscoringRule = TERRITORY
# taxRule = SEKItaxRule = SEKI
multiStoneSuicideLegal = truemultiStoneSuicideLegal = false
以上で準備は終了です。

手順5(実行)
lizzie.jarをダブルクリックまたは開いて碁盤が現れれば、導入は成功です。初めて起動するときはKataGoのチューニングに時間がかかります。焦らず待ちましょう。
候補手が現れたら 分析オンで探索させると10手までしか表示されなければKataGoが動いています。

なお、KataGoにはopenclバージョンの他にcudaバージョンもありますから、NVIDIAのCUDAをインストールしている方は同様の方法でLizzieにセットできます。両方試してみるのも面白いでしょう。

※※修正・追記(Mar. 31, 2020)※※





【LizGoban】
Lizzieとは別の囲碁検討ソフトですが、置き碁の設定も簡単、あえて悪い手を選んで打たせる接待碁もできるのが特徴です。(メニューの Viewで Raw boardを選択し、相手の手番でキーボードの数字キーを押すと、その数字の順位の候補手を打ってきます。つまり1ならわずかに弱い候補手、9なら非常に弱い候補手という具合です。ハンデを付けなければエンターを押してください。)

こちらのページで[LizGoban 0.4.0-pre2.91]のAssetsの中の「LizGoban-0.4.0-pre2.91_win_200405.zip」をダウンロードして展開してください。
これは CPU版のLeelaZeroで動くLizGobanです。exeファイルなので、ダブルクリックすれば何もしなくても起動できます。
メニューのPresetで分析エンジンを選択できます。ショートカットとしては F1キーでLeelaZero、F2キーでKatagoという具合です。(Katagoは初回起動時にはCPUのみのパソコンではチューニングに長時間かかります。30分~1時間くらいはみてください。)

Katagoを使用する場合、Editメニューでコミと日本ルールを含むさまざまなルールに変更できます。Fileメニューで19路盤の他に13路と9路を選べます。

weightsファイル(gzファイルやweights.txtなど)を更新するなら、メニューのEngineの「Load network weights」をクリックして指定してください。weightsファイルについては Lizzieの項に詳しく書いてあります。
Lizzieを導入するよりも簡単なので、CPU、GPUにかかわらず一度使ってみることをお薦めします。

【便利な機能】
1、上部メニューの「Preset」で、使用するエンジンを選べます。KataGo for handicap gamesは置き碁用です。
2、「File」で置き碁や棋譜(sgf)の入力・保存、「View」で表示画面の選択などできます。
3、「View」でRaw boardにして、相手の手番でキーボードの数字を押すと、その数字の順位の候補手を打ってきます。つまり1なら僅かに弱い候補手、9なら非常に弱い候補手という具合です。ここでZキーを押すとカンニングできます。
4、棋譜ファイルをドラッグして碁盤上でドロップすれば碁盤に石が現れます。
5、黒白の石をあらかじめ含んだ棋譜(例えば途中図からの棋譜)をコピーして碁盤上でCtrl+Vで貼り付けられます。
6、エンジンKataGoで 盤面の右上に表示される +nの数字は日本ルールの場合はアゲハマの差、中国ルールでは生存している石数の差です。これは現時点では無く終局時に予想されるアゲハマ等ということで、誤差もあるのでおおまかな目安であるようです。

その他の使い方は、およそのことが Helpに書いてあります。
またweightsファイル(network.gz or bin.gz)を最新のものにすればLizGobanも強くなります。

上記のexe版はGPU搭載のパソコンでも問題なく動きますが、LeelaZeroのGPU版を使いたいなら、手順1から後を実行してください。

手順1
LizGobanのページに行き、緑色のボタン「Clone or download」からDownload ZIPを選びます。「lizgoban-master.zip」がダウンロードされます。
これを適当な場所に展開します。C:\直下が分かりやすいです。展開するとlizgoban-masterというフォルダができます。
このフォルダの中にexternalというフォルダがありますから、そこにLizzieフォルダの中にあるleela-zeroフォルダの中身を全部コピーします。Lizzieフォルダにあるnetwork.gzもexternalフォルダにコピーします。(Lizzie.0.7の場合はlznetwork.gzという名前なので、externalフォルダにコピーしてからnetwork.gzと名前を変更してください)
※※※このコピーするleela-zeroフォルダは CPU版でも可能なので、LizGobanはもともとCPUのみのパソコンでも動くものでした。誤解を広めたようで申し訳ありません。

手順2
nodejsのサイトで、緑色の windows installerボタンからnode.jsをダウンロードして実行してください。使っているパソコンに合わせたインストーラーがダウンロードされます。最新版は「node-v**.**.*-x64.msi」となります。(node.jsはアップデートが頻繁ですが、一度インストールすればよほど大きなバージョンアップでない限り更新の必要はないでしょう)
実行するとnode.jsがインストールされます。node.jsはどこに保存してもかまいません。インストール中は何も変更せずに[NEXT]を押し続けます。
念のためコマンドプロンプト(Windowsシステムツールにあります)を開いて「node -v」または「npm -v」と入力してバージョンを確認してください。それぞれ「v12.13.0」または「6.12.0」などと表示されれば正常にインストールされています。ここでエラーになればnode.jsのインストールをやり直してください。

手順3
コマンドプロンプト画面(Windowsシステムツールにあります)で Lizgobanフォルダを指定します。例えば「cd C:\lizgoban-master」と入力してエンターを押します。
もしもCドライブ以外、例えばDドライブに保存したなら単に「D:」と入力してDドライブに移動し、「cd D:\lizgoban-master」と入力してエンターです。
C:\lizgoban-master> という表示になったら、「npm install」と入力してエンターを押すとダウンロードが始まります。少し時間がかかるので焦らず待ってください。カーソルが点滅した状態になったら終了です。終わると「lizgoban-master」フォルダの中に「node_modules」というフォルダができているはずです。
以上で準備は終了です。コマンドプロンプト画面は閉じてかまいません。

手順4(実行)
「lizgoban-master」フォルダの中にある「lizgoban_windows.vbs」をダブルクリックすれば碁盤が現れるはずです。しばらく待つと候補手をいろいろ表示してくるのはLizzieと同じです。

LizGobanのエンジン(思考部)をKatagoに変更する方法です。(Katagoが動いていることが前提です)
※※Lizgoban.exe v0.2からKatagoが搭載されていますが、ここはしばらく残しておきます。

下記内容のファイルをメモ帳またはテキストエディターで作成し、katago.jsonという名前で lizgoban-masterのフォルダに保存してください。
{
"analyze_interval_centisec": 30,
"leelaz_command": "C:/katago-opencl/katago",
"leelaz_args": ["gtp","-override-version","0.17","-model","C:/katago-opencl/model.txt.gz","-config","C:/katago-opencl/gtp_example.cfg"]
}

この例ではkatago.exeのあるフォルダを「C:/katago-opencl/」としています。ご自分の環境に合わせて変更してください。3ヵ所あります。

コマンドプロンプトを開いて、図のように「npm start -- -c katago.json」と入力すればkatagoのエンジンになったLizGobanが起動します。


いちいちコマンドプロンプトで入力するのが面倒なら、Windows用に起動ファイルを作ります。
Const conf = "katago.json"
command = "npm start"

Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(conf) Then
command = command & " -- -c " & conf
End If
CreateObject("WScript.Shell").Run command, 0

この内容のファイルを作り、名前を katago-windows.vbsとし、lizgoban-masterのフォルダに保存してください。
katago-windows.vbsをダブルクリックすれば KataGoをエンジンとしたLizGobanが起動します。
棋譜を読み込んで、勢力に目数が表示されれば成功です。
なお、Katagoを日本ルールにするには、Katagoの説明をご覧下さい。

このようにLizGobanを動かす方法は幾つもありますが、GPU版なら上にある「囲碁AIメガパック」を使うのが最も簡単です。

※※修正・追記(Apr. 6, 2020)※※





【Lizzie】
※※以下に書いたことをもう少し詳しく書いたので、トップページのLizzieの導入方法もご覧下さい。

Leela Zero専用検討ソフト『Lizzie』は以下をダウンロードしてください。
Lizzieのダウンロードページに行って、Lizzie v0.7.2の下の方に以下のファイルがあります。
PCにGPUが有るなら Lizzie.0.7.2Windows.x64.GPU.zipをダウンロード
PCにGPUが無いなら Lizzie.0.7.2Windows.x64.CPU.zipをダウンロードします。
もしGPUの無い古いパソコンの場合、Lizzie v0.7は荷が重いかもしれません。そういう場合はLizzie v0.6の Lizzie.0.6.Windows.x64.CPU.zipをダウンロードするのが良いでしょう。また、Lizzie v0.7に付属しているKatagoはCPUのみのパソコンでも動きます。

ご自分のPCのGPUを調べる方法は「ファイル名を指定して実行」(WindowsKey+R)で dxdiagと入力、ディスプレイタブの「チップの種類」に書いてあります。「名前」や「製造元」に AMD RADEONや NVIDIA GeForceなどと書かれていればGPUのメーカー名です。Intel(R)HD Graphics ~などと書かれていれば、GPUではなくパソコンに初めから組み込まれているグラフィック機能です。
以下も参照してください。
https://www.dospara.co.jp/5info/cts_str_parts_vga

Javaがインストールされていないと動きませんから無料Javaのダウンロードのページからダウンロードしてインストールしてください。

念のため、上でダウンロードして展開した「lizzie」フォルダの中の「leela-zero」フォルダにある「leelaz.exe」をダブルクリックしてみてください。何事もなく閉じれば動作条件を満たしているので問題ありません。もしもエラーが出たら、「Visual Studio 2015、2017 および 2019」にあるvc_redist.x64.exeを実行して Visual C++ をインストールしてください。

[起動]
Javaがインストールされていれば、上でダウンロードして展開したファイルの中にある Lizzie.jarを右クリックして「開く」またはダブルクリックすれば起動します。いちいちこのファイルを探しに行くのが面倒なら右クリックしてデスクトップにショートカットを置いておけばいいです。

[weightsファイル]
Lizzieをダウンロードして展開(解凍)したフォルダの中に「liziie.jar」と並んで「lznetwork.gz」というファイルがあります。
このファイルは常に更新されLizzieが強くなっていきますから、時々、最新のファイルをチェックしましょう。
この lznetwork.gz(LeelaZeroではweights.txt)は現在40ブロックと15ブロックで作成したものがあります。40ブロックは分析幅が広いが分析速度は遅い。15ブロックは分析幅は狭いが速度は速いので数が稼げるという関係にあります。
「Lizzie 0.7」からは15ブロックのものが標準に付いていますが、どちらを使うかはご自分で判断してください。
40ブロックのものは、こちらにあります。
このページ下方に表が左右にあって、左の表「Best Network Hash」という項目の中にlznetworkファイルが並んでいます。
この中で最新のもの(一番上のもの)をダウンロードして保存します。
15ブロックのものはこちらにあります。
このページに開発されたファイルがたくさん書いてあります。日付の次にランダムなアルファベットがあります。日付の一番新しいものをダウンロードしてください。例えば[2019/10/15 0d2694c5]など。

また、公式ではないですが、20ブロックのものもトレーニングされていて、こちらにあります。
どのブロックのものがベストなのかは確立されていないので、ご自分の環境によって選択して下さい。

ダウンロードしたファイルを右クリックして「lznetwork.gz」という名前に変更します。
それをlizzie.jarのあるフォルダの中に一緒に入れてください。先にある同名のlznetwork.gzは削除するか上書きしてください。

[KataGo]
上部メニューの「エンジン」でKataGoを選択すると、CPUのみのパソコンでは初回起動時に長時間かかります。画面が動かなくても我慢して待っていてください。(15分以上)
Katagoが起動すると、分析中の碁石に数字が3つあります。上から勝率、分析回数、目数差です。さらに下部メニューの「katago形勢」をクリックすると双方の勢力圏が表示されます。

新しいKatago v1.3に入れ替える場合は、情報掲示板 No.194のodagaki0621さんの書かれた記事を参照してください。

KataGoを中国ルールから日本ルールに変更するなら Lizzieフォルダにある「katago-gtp10.cfg」をテキストエディター(またはメモ帳)で開いて「# Rules---」の項目を表のように書き直します。そして対局のコミ設定も6.5目としてください(上部メニューの「対局」にある「対局情報の設定」または「i」キーでコミを変更できます)。
変更前変更後
# koRule = SIMPLEkoRule = SIMPLE
koRule = POSITIONAL# koRule = POSITIONAL
scoringRule = AREA# scoringRule = AREA
# scoringRule = TERRITORYscoringRule = TERRITORY
# taxRule = SEKItaxRule = SEKI
multiStoneSuicideLegal = truemultiStoneSuicideLegal = false

[シチョウ機能強化版]
LeelaZeroにシチョウの探索機能を付けたものを yssayaさんが公開しています。
シチョウを読めるようになって52.9%強くなったそうなので、興味がある方はこちらから「leelaz.exe」をダウンロードして、leelazeroフォルダにある同名ファイルと置き換えてください。

Lizzieの使い方を詳しく解説した記事はまだありません。起動して Xキーを押せば使えるコマンドが表示されます。
現在までに分かってきたLizzieのコマンドをまとめて表にしました。参考にしてください。
今後も「質問掲示板」に使い方などの情報提供をしていきます。

上部メニューの「設定→エンジン→変化を避ける ○○手」の意味
エンジンをleela zeroにして分析させているとき、「ここは読むな」という点を碁盤上で右クリックして「分析除外」をクリックすると, 「その点への着手は当面禁止」という条件で先の手を読むようになります。この「当面」を具体的に何手先までとするかの設定です。

下部メニューの「ポリシーネットワークを表示」のポリシーネットワークとは
「一手も読まずに今の盤面の形だけで打てと言われたら、どこに打つ確率が何%か」というようなことです。Leela Zero や KataGo はこの直感をベースにして手を読んでいきますが、ちゃんと手を読んだふつうの分析(スペースキー)のほうがより正確なので、思考エンジンの内部動作に興味がなければ気にしなくてよいメニューと思われます。

Lizzieのデザイン変更
1、Lizzie を起動する
2、メニューの「設定 > 表示 > パネルUI」にチェックを入れて「OK」を押す
3、メニューの「ファイル > 終了」で一旦 Lizzie を終了する
4、再度 Lizzie を起動する
  画面左上の白黒のアゲハマ表示の間に赤か緑の小さい丸が表示されている
  スペースキーを押して分析をオンオフすると丸の色が変わる
5、上記の状態で Alt キーを押しながら w キーを押すとデザインモードに入る
6、例えば、勝率グラフをマウスでドラッグすると、勝率グラフが別ウィンドウになって位置や大きさを変えられる
  サブ碁盤なども同様にドラッグして位置や大きさを調整できる
7、左側のアゲハマ、勝率グラフ、サブ碁盤を3つとも Lizzieウィンドウの外側へ出すと、メイン碁盤が左端にくっついてしまうが、3つのどれかのウインドウを閉じればLizzieウインドウの中に入る
8、調整が済んだら再度 Alt+w を押してデザインモードを抜ける
  これでウィンドウ配置が記憶されます
9、元に戻したければ、「設定 > 表示 > パネルUI」のチェックを外して Lizzie を再起動してください

(注意)原因はわかりませんが、ウインドウを幾つも調整していると、デザインモードを抜けてもフリーズして動かなくなることがあります。その場合はパソコンを再起動するしかないので注意してください。


Lizzieのプラットフォームを使ってELFやminigoを動かすことができます。詳細はそれぞれの項目をご覧下さい。

<バグレポート>
Lizzie.0.7で下にあるメニューの「形勢」がうまく働かないようです。Zen.dllをコピーして入れても駄目で、上にある「囲碁AIメガパック」では正常に働くのでバグと思われます。

※※修正・追記(Apr. 5, 2020)※※





【LeelaZero】
※※現在、Lizzieで対局もできますが、対局についてはユーザーフレンドリーでないので、対局目的ならLeelaZeroがよろしいです※※

手順1
LeelaZeroのページで最新のもの(現在はLeela Zero 0.17 + AutoGTP v18 )をダウンロードして、適当な場所に展開してください。
GPUの有る無しでダウンロードするファイルを選択してください。

手順2
展開したLeelaZeroのフォルダの中に autogtp.exeというファイルがありますからダブルクリックしてください。コマンドプロンプト画面になって、weightsファイルのダウンロードが始まります。「Starting GTP commands sent.」という文字の後に自己対戦の棋譜が表示されるようになったら画面を閉じます。
その結果、LeelaZeroのフォルダの中にnetworksというフォルダができていて、中に長い文字列で拡張子がgzのファイルがあります。名前をweights.txtに変更して、LeelaZeroのフォルダの中に入れてください。(このファイルはLizzieで使用するnetwork.gzと同じものなので、LeelaZeroを導入した後は専用サイトをチェックするといいでしょう。専用サイトについては「Lizzie」の項の[weightsファイル]を参照してください。)

手順3
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順4
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(LeelaZeroなど)
「Path」の左にあるフォルダのマークをクリックしてLeelaZeroフォルダの中にある「leelaz.exe」を指定します。
「No arguments」にはいろいろなコマンドを書きます。例として私は(-g -t 4 -p 1000 --noponder -w weights.txt)としました。
※※no ponderの前の「-」が2つあることに注意※※
「Initial Commands(; -separated)」は考慮時間の設定です。例えば、「time_settings 0 15 1;」とすれば、持ち時間ゼロ、秒読み1手15秒となります。
なお、この黒い設定画面の上の「Enable GTP logging to directory」にチェックして保存するフォルダを指定すれば対局ログを保存できます。(棋譜の保存とは違います)
入力が終われば右下の「Close」をクリックします。

コマンドの詳しい説明はコマンドプロンプトで「leelaz.exe -h」と入力すれば見られます。
「-g」はgtpモード、「-t」はパソコンのスレッド数、デフォルトは2です。「-p」はplayout数(思考回数、大きくすると環境によっては重くなります)、「-w」は上でコピーしたweights.txtを指定、「--noponder」は相手の手番では考えない設定にします。囲碁AI同士の対戦では特に必要です。

以上で設定は終了です。

手順5(実行)
Sabakiの上部メニューの「File」から「new」を選び、対戦設定を記入すれば対戦できます。黒を自分、白をLeelaZeroにするならBlackの横のレ点マークでmanual、Whiteの横のレ点マークでLeelaZeroを選択します。囲碁AIを他にも導入していれば、AI同士を戦わせることもできます。その場合、両方のAIを pondering off(--noponder)に設定することが必須です。
石に数字を表示するのは「View」から「Show Move Numbers」をチェックします。

その他 シチョウ機能強化版
LeelaZeroにシチョウの探索機能を付けたものを yssayaさんが公開しています。
シチョウを読めるようになって52.9%強くなったそうなので、興味がある方はこちらから「leelaz.exe」をダウンロードして、同名ファイルと置き換えてください。

※※修正・追記(Nov. 16, 2019)※※





【AQ】
手順1
AQの最新版(現在は v.2.1.1)は以下でダウンロード
https://github.com/ymgaq/AQ/releases
GPU無しならAQ-mini_win.zip 、有りならAQ_win.zipをダウンロードして、適当な場所に展開してください。

手順2
碁盤を表示させる「Sabaki」のページで最新のもの(現在はsabaki-v0.43.3-win-x64-setup.exe)をダウンロードしてインストールします。(デスクトップにショートカットが作られます)

手順3
Sabakiのアイコンをダブルクリックして起動すると碁盤が現れます。
上部メニューの「Engines」、続いて「Manage Engines」をクリックします。黒い画面で左下の「Add」をクリックして必要な項目を入力します。
「(Unnamed Engine)」には適当な名前(AQなど)
「Path」の左にあるフォルダのマークをクリックして AQのフォルダの中にある「AQ.exe」を指定します。
「No arguments」以下はそのまま無記入でかまいません。
入力が終われば右下の「Close」をクリックします。

以上の準備で動くはずです。対局設定をして相手をAQにして対局すればいいです。初手を打つまでに時間がかかることがありますが、打ち始めれば数秒で打ってくれます。

より詳細な設定はAQのフォルダの中にある「aq_config.txt」を変更します。
初期設定では「-gpu count =1」「-thread count =4」となっていますが、スレッド数など環境によって変更できます。
「-main time[sec] =0」はAQの持ち時間を秒で入力します。「-byoyomi[sec] =5」は持ち時間が無くなったときの秒読み時間(秒)です。
「-japanese rule =off」「-komi =7.5」は日本ルールにするなら、それぞれ「on」「6.5」とします。
「-use pondering =on」はAI同士の対戦では「off」にします。





【Leela】
フリーソフトでKGS八段、つまりプロ並みの棋力となったLeelaです。一昔前は最強の囲碁AIの一つでしたが、LeelaZeroが出てから見捨てられた感じになりました・・・
以下をダウンロードしてください。
公式サイトのDownloadにある Leela 0.11.0 (graphical interface for Windows, you probably want this one)を選択
リンクをクリックして実行を選択すればインストールします。または保存してからインストールしてください。
GPUの搭載されているPCがあれば最大能力が出ます。インストールのときGPU版にチェックを入れます。インストールすると通常のLeelaとLeela (GPU accelerated)の2つのアイコンが作られます。 画像処理ユニット(GPU)の搭載されたパソコンなら Leela(GPU accelerated)を動かすと強いです。GPUが無ければ普通の Leelaを動かしてください。

なお、ご自分のPCのGPUを調べる方法は「Lizzie」のところに書いてあります。

"