KataGoの使用方法【Lizzieへ導入】

KataGoの概要

囲碁AI・KataGoは開発者のDavid J. Wu(GitHubではlightvector)が作成したもの。
地の考え方を取り入れたAIで学習効率は他のAIを上回っているという。(こちらを参照)
ELFv2に比べて50倍以上の効率を誇り、GPUのV100では19日間でELFv2を超えたようだ。
今回は検討機能・Lizzieを通して、KataGoを導入する手順を示していきます。

どれくらいの強さであるかは検証していませんが、動作が軽くて探索数を稼げます。
パソコンの性能次第であるものの、今までよりは軽いように感じます。

材料集めと環境作り

・Lizzie0.6が導入していること(64ビットのPC)※導入方法はこちらを参照
こちらより、以下のものをダウンロードします。
katago-v1.2-cuda-windows-x64.zip」←KataGoのエンジン
「g104-b20c256-s447913472-d241840887.zip」←Lizzieで言うnetwork
※「Strong Neural Net, LCB, and many bugfixes」の項目のAssetにあります。

・CUDA10.1の導入方法


こちらへ入った後に、上の図のようにチェックを入れてダウンロード。
ダウンロードしたものをダブルクリックして「はい」を押し続けてインストールして完了。

・CuDNN7.6.1の導入
(1)こちらに入ります。
(2)少し下にある「Download cuDNN」をクリック。
(3)登録をしていない方は右側の「Join」から登録してください。
※登録済みの方は「Login」からログインしてください。
(4)「I Agree To the Terms of the cuDNN Software License Agreement」にチェック。
(5)「Archived cuDNN Releases」を押して過去にものを見れるようにします。


(6)上図のものをダウンロードします。(v7.6.1とCUDA10.1であることを要確認)


(7)ダウンロードした中身が上図のものです。
これをCUDAの所定の位置に入れる必要があるので下記にて説明します。


(8)適当なファイルを開き、左側の「PC」→「Windows(C:)」→「Program Files」
→「NVIDIA GPU Computing Toolkit」→「CUDA」→「v10.1」で上図の画面です。
それぞれ対応するファイル(bin、include、lib)に(7)の中身を入れます。
これで材料と動作環境を整える作業が終了です。

導入方法


(1)万一失敗しても良いように、「Lizzie」のファイルをコピーして作業してください。
コピーしたファイルの中に、上図のように「Katago」というファイルを作ります。


(2)「Katago」のファイルに入り、下記のものを解凍して入れてください。
katago-v1.2-cuda-windows-x64.zip」
「g104-b20c256-s447913472-d241840887.zip」
※ファイル名は画像のようにしてください。(動作設定の時に重要になります)

(3)「katago-v1.2-cuda-windows-x64」のファイルに入り「gtp_example.cfg」を編集。
※「gtp_example.cfg」を右クリック→プログラムで開く→ワードパット又はメモ帳を選択。


(4)上図のように文字の羅列があると思います。以下の項目を変更してください。
探したいキーワードは「Ctrl+F」でキーワードの一部でも打てば検索してくれます。
・「multiStoneSuicideLegal = true」を「multiStoneSuicideLegal = false」に書き換え。
・中国ルール→日本ルールに変更する場合
→「# koRule = SIMPLE」を「koRule = SIMPLE」を、
「koRule = POSITIONAL」を「# koRule = POSITIONAL」に書き換え。
→「# scoringRule = TERRITORY」を「scoringRule = TERRITORY」を、
「scoringRule = AREA」を「# scoringRule = AREA」に書き換え。
※コメントアウトする理由は、日本ルール→中国ルールへ切り替えやすくするため。

(5)Lizzie.jarのあるディレクトリでconfig.txtを開き、以下に書き換える。
・”network-file”: “./Katago/g104-b20c256-s447913472-d241840887/model.txt.gz”
・”engine-command”: “./Katago/katago-v1.2-cuda-windows-x64/katago.exe gtp -model %network-file -config ./Katago/katago-v1.2-cuda-windows-x64/gtp_example.cfg -override-version 0.17”,  設定は完了したので、「lizzie.jar」でLizzieを起動して動けば成功です。
10手までしか表示されない特徴があり、探索数が増えても10手以上にならなければ成功。

カスタマイズ(オススメ)

動作することが確認が取れたら、「gtp_example.cfg」をさらに編集しましょう。
設定によってはスペックが低くても、そこそこ早くなります。

・maxVisits
探索数の上限を決めるものなので、際限なく大きくしても問題なさそう。
・numSearchThreads
スレッド数ですので、パソコンのスペック毎に上限はありますが、増やすと早くなります。
・numNNServerThreadsPerModel
これは増やすと若干早くなる気がします。これも調整してみてください。
・mutexPoolSize
これも上げていくとそこそこ早くなります。とりあえず100000くらいに上げましょう。
後はどこまで上げて良いか微調整してください。
・rootNoiseEnabled
これを「true」にするとランダムな候補手が現れます。
ただ、大石のアタリなど絶対に近い手がある場合はあまり左右されない模様。(検証少な目)
他にも変えられる欄があるので、試してみてください。(英語で説明は書かれています)

「編集後記」
通りすがり様、コメントでのご協力ありがとうございました。
実は目数も表せるUIはあるのですが、百度に登録できないとファイルが落とせなくて……。
中国の電話番号が必要なようで登録の壁を突破できずに心折れました。
明日より、遠出しますので軽めの記事が多めです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 通りすがり より:

    okaos様
    動作確認と記事執筆、ありがとうございます。

    わかりやすくまとまっていて、適合マシンを持っている方は簡単に導入できますね。

    記事中、Lizzieのconfig.txtを書き換える作業が書き忘れられているようですので
    追記をお待ちしております。

  2. マーマ より:

    katagoならQQアプリに登録してそのコミュニティに入ればファイル落とせると思います

    githubにコミュニティの番号がある筈です

    leelaもleela19路以外もあります

  3. オレンジえくす より:

    記事のとおりやってみましたが動作しません。config.txtの書き換えのところが違っていたのもしれません。また、network.gz はそのままでいいのですか・

    • okao より:

      network.gzはあってもなくても問題ありません。config.txtを書き換えた際にnetwork.gzには影響しないため。

      • オレンジえくす より:

        某所にこの記事について、次のような書き込みがありました。

         「okaoの書いた通りにやったら上手くいったが
          ただしnerworkファイルもコピペすることは基本すぎるのか書いてない」
         「network.gzもexternalにコピペすればOKかと
          okaoさんは当然と思ったのかそれを書いてない」

         これはどういう意味ですか。動作しないことと関係ありますか?

        • okao より:

          network.gzは特にいじっていないので、因果関係が検証できていません。基本的にはnetworkは別のものに紐づけしているので特にいじる必要はないかと・・・。

        • 通りすがり より:

          Leela Zeroのネットワークファイルは要りませんよ。
          代わりにg104-xxx.zipに入っているmodel.txt.gzを使うので。

  4. キクヤン より:

    この記事のお陰で一発で動きました。
    ありがとうございます。

  5. KUNIOKI ICHINOSE より:

    CUDA10.1が最後の最後で「NVDIAインストーラーが失敗しました」になります。
    なにか原因にヒントがあればご教示下さい。最初はVisualStudioが無いせいだと表示されたので、それも追加で作業した結果、途中に警告はありませんでした。

    • okao より:

      今回の手順を踏みにあたり、lizzie導入が成されている前提ですのでVisualStudioはすでに入っていたかと思います。もし、lizzieを入れて動作まで成功しているにも関わらず、インストーラーの失敗が起こるのであれば、ほかに何か原因があったのかもしれませんね。

      • KUNIOKI ICHINOSE より:

        ヒントありがとうございます。
        別のノートPCでCUDA10.1のみインストールしたらできましたので、やはり囲碁アプリに使っているゲームPCの問題のようです。先にノートで全部動かすことをやろうと思います。

  6. メタボリック より:

    書かれていた通りにしたつもりですが、LIZZIEが起動しません。通常のLIZZIEは問題なく起動します。一つだけ気になるのが、CUDA10.1のインストールで、・・・LAUNCHERの1つだけインストールできて、NVIDA VD2015、VD2017、VD2019。のような4つがインストールできないところです。ただ、インストールは完了したようで問題なく終了はできます。これが原因なんでしょいうか? LIZZIEはクリックしても碁盤の画面すら出てこない状況です。

    • okao より:

      NVIDA以下のものは重要ですので、インストールができていないのが問題かと思います。パソコンの機種により、CUDA10.1をダウンロードする際にチェックする項目を変える必要があるかもしれません。

      • メタボリック より:

        お返事ありがとうございます。こう出てるんですがなにをダウンロードしたらいいんでしょうか? NVIDAのサイトも、英語でよく分からなくて。

        • okao より:

          パソコンの機種によって異なるので、あとはご自身でお調べください。

        • KUNIOKI ICHINOSE より:

          私も同じ状態ですが↓のサイトで何をダウンロードすればよいかが一番下の方に書いてあります。
          https://developer.nvidia.com/install-nsight-visual-studio-edition
          やってみましたらCUDA10.1インストール時の警告が減りました(うまく動いてはいませんが)。
          Installed:
               – Nsight for Visual Studio 2019
               – Nsight Monitor and HUD Launcher
          Not Installed:
               – Nsight for Visual Studio 2017
                 Reason: VS2017 was not found
               – Nsight for Visual Studio 2015
                 Reason: VS2015 was not found