もともとオンラインの囲碁対戦ソフトに使える、既成の機械学習すみのものはないか?とさがしていたとき、
https://qiita.com/tkoji3744/items/2ff4b53ec10ba5b7179a
このKatagoについて知りました。https://note.com/mnishida/n/nd8132045637a
http://home.hatanaka.info/article/475218865.html
KatagoをFlaskに取り込むのは、(PyaqやdlGoなどにくらべて)比較的やさしそうでした。だが、オンラインには使う際には、バックエンドで動き続けているシステムが必要なため、pythonanywhere単独ではむずかしくVPSなど別のシステムを別個につくりそこと連携させること必要そう、ということで、導入候補から早々に脱落(そもそも言語環境はpythonではないし、なおわからない)。
ただ、「機械学習をさせる」ということはおいといて、「既成の機械学習済ファイルの豊富さと導入方法の簡便さ」に関しては断トツで、印象ふかかったので、その過程を簡単にここで紹介する。他サイトではとりあげられてないいくつかのTIPSも書けたらと思う。
(1)使うものは、ほぼ以下の2つのファイルだけ。
そしてダウンロード後、②を①にいれて、いくつかの小さなファイル名とファイルの名をかきかえるだけ
① https://github.com/lightvector/KataGo/releases
からダウンロードした、katago-v1.14.0-opencl-windows-x64
(katago-v1.12.0-opencl-windows-x64は今②に中にある多くのファイルがよみこめず)
② https://katagotraining.org/networks/kata1/
たくさんファイルがあり、どれをダウンロードしていいか迷う。
ただ、ひとついれることは、これら数十の「機械学習すみファイル」をつかえば、数十の異なるKatago-botが量産されるということ。つまり、ひとつシステムが確立されると、数十のKataGo囲碁botファミリーが誕生する。
とりあえず、選んだファイルは
kata1-b18c384nbt-s9791399168-d4261348054.bin.gz (比較的弱い)kata1-b28c512nbt-s9584861952-d4960414494.bin.gz(比較的強い)
(重要な注意)
このファイルの中に、複数の.txt.gz型ファイルがまじっているが、それはダウンロードしても動かない
(2)新しくダウンロードした②の.bin.gz を新しい①フォルダにいれる。
それから、②の名前をdefault_model.bin.gzにかえる。
*default_をいれないと、ファイルはよみこまれない
さらに、①フォルダ内の、gtp_example.cfgの最初をこういれかえる
# GTP config file
modelFile = default_model.bin.gz
logFile = gtp_log.txt
logAllGTPCommunication = false
logSearchInfo = false
numSearchThreads = 1
ponderingEnabled = false
maxParallelGames = 1
*ダウンロード直後は、最初の3行しかかかれてない。4行追記。
できた、katago-v1.14.0-opencl-windows-x64の改変後はこんな感じ
kata1-b18c384nbt-s9791399168-d4261348054.bin.gz
kata1-b28c512nbt-s9584861952-d4960414494.bin.gz
をいれるファイルは別名とする。
つまり、この数十の、名前がちがうが似たようなファイル(各々が異なる.bin.gzファイルを格納している)こそKataGo囲碁botファミリーの実体である。
(3)これが動くかどうかの確認で、katago.exe gtp -config gtp_example.cfgというコマンドプロンプトを katago.exe のあるフォルダで入力。実際やることは、
- コマンドプロンプトで katago.exe があるフォルダを開く(例: C:\Users\koji3\デスクトップ\katago-v1.12.4-opencl-windows-x64)
または、
2 または、上記の情報のアドレスバーに「cmd」と入力して Enter → すると「その場所」でコマンドプロンプトが開く!
そして、そのコマンドプロンプトの場所で、katago.exe gtp -config gtp_example.cfg、と入力 。
下記のようなものが動き出せば、成功!
成功時、最初、数十秒のチューニングが行われる。そしてその最後の画面がこれ。
(4)Sabakiを導入し、そこで、(3)で作成したKatago-botを組み込み、人と、あるいは他のbotと対戦させる。
*Sabakiに関しては比較的ネットに情報が多く、容易と思われたのだが、意外につまづきが多かったので、少し細かく記載する。
①Sabaki をダウンロード
公式サイト: https://sabaki.yichuanshen.de2025.
*2025.7.30現在、Windows11でSabakiを導入するとき
sabaki-v0.52.2-win-x64-setup.exeはダウンロードできたが、v0.50 (ネット情報多い)、 v0.51は、Wodows11にブロックされてダウンロード(を僕は)できなかった。
② KataGoをエンジンとして登録
*v0.50 (ネット情報多い)と少し画面が違っている
Sabaki を起動
メニューの左上▶からManage Enginesを選択
新しい画面、左下「+(追加)」ボタンをクリックすると以下のよう
注1:フルパスは不可
注2:v0.52 では空白
③ 対局してみる
画面右下 横3本線メニューから「info」
プレイヤー設定で「KataGo(上記で登録した名前)」、路盤の設定をする*もう一方は「人間」などにしてOK( KataGo1 vs KataGo1でもOK!)
右下OKボタンをおし、初期画面にもどる。
左上の“稲妻まーく”をおして「対局スタート」!
KataGoが応答すれば成功!
(終局)対局の終了方法:メニューから
Play → Resign(投了)
または
Play → Pass(パス)を2回して終局扱いにする。
Play → score(勝敗計算)
*v0.52.2のバージョンのSabakiは、終局後、自動で得点計算(Score)モードに入らない。手動必要。
④検討モードについて、細かいことを少し
<Sabaki(Windows)でのショートカットまとめ>
-
Alt キー(メニューの一時表示)
Windows では Alt キーを押すと、画面上部に一時的にメニューバーが表示されます。
*メニューバーがきえた!ときのトラブル時に。 -
Alt + V :View メニューを開く
T:Toggle Sidebar(棋譜リスト/手順パネル)を開閉
→ これで 従来のバージョンでは、左側に棋譜一覧(手順リスト) が復活していたが、現在の Sabaki バージョンでは View メニューに「Toggle Sidebar(手順パネルの表示)」が表示されない。
(参考)その他の「View」メニュー(クリック時のプルダウンメニュー)Show Game Tree:つかえる
Winrate Graph :つかえない
Show Move Number:つかえる
「Toggle Sidebar(手順パネルの表示)」が表示されないが、SGFに保存 → 再生(感想戦) は可能なので、それを用いる。
手順
【1】棋譜をSGF形式で保存する
上部メニューの「File」→「Save As」 をクリック
ファイル名をつけて、拡張子 .sgf で保存
【2】保存したSGFを再生する(感想戦)
「File」→「Open」 をクリック
さきほど保存した .sgf ファイルを選ぶ
⇒ 盤面に棋譜が再現される
矢印キー(→, ←)やマウスホイール で、一手ずつ進めたり戻したり可能
「Ctrl + →」や「Ctrl + ←」で一気に進めたり戻したりもできる
(5)Q&A
① KataGo は gtp_example.cfg ファイル内で明確に 9路盤 に設定されています。
✅ どこに書いてあるか?
Sabaki 連携時に指定した設定ファイル:gtp_example.cfg
modelFile = default_model.bin.gz
logFile = gtp_log.txt
...
boardXSize = 9
boardYSize = 9
この boardXSize = 9 と boardYSize = 9 の記述が 9路盤 を示す。
(注意)それゆえ、このようにKataGo 側が 9路盤に設定されていると、Sabaki の「新規対局」のときに19路盤だと、KataGo はそれに応答せず黙ってしまうことがある(その場合は書き換え要)
② 僕のPCのバックエンドで、katago.exe gtp -config gtp_example.cfgを継続して動かしておく必要はないか?
✅ 結論(Sabaki で対局する場合)
手動で katago.exe gtp -config gtp_example.cfg をコマンドラインで起動しておく必要はありません。
💡 なぜなら?
Sabaki は、エンジン設定に書かれた内容
Path katago.exe のフルパス(実行ファイル)
Arguments gtp -config gtp_example.cfg(KataGo の起動オプション)
Working Directory( .cfg や .bin.gz が置いてある場所)
をもとに、対局開始時に自動で KataGo を起動してくれるから。
✅ まとめ
コマンドラインから自分で KataGo を使うとき katago.exe gtp -config gtp_example.cfg が必要 。
だが、
Sabaki 経由で対局するとき 起動不要(Sabaki がやってくれる)
*いつか Flask などの Web アプリで対局するようなボットを構築する場合は、自分で subprocess などで起動管理することになるが、Sabaki では不要。
③KataGo は 19路盤で学習されたモデルでも 9路盤・13路盤で使えます!
これは KataGo の設計がとても柔軟だからです。
✅ その背景
KataGo のニューラルネットワークモデル(.bin.gz)は 19×19 で訓練されています。
しかし KataGo 本体(katago.exe)は、任意のサイズの碁盤にも対応しています。これは GTP(Go Text Protocol)と内部ロジックで「サイズ変換や切り出し推論」が行えるためです。
*つかえる路盤サイズ
9路盤(9×9)13路盤(13×13)19路盤(標準)
*KataGoは19路盤に最適化されたAIのため、9路では時に不自然な手を打つこともあります。
(ですが、人間には十分すぎるほど強いです!)
④おわりに
既製の囲碁ソフト(オンライン、ダウンロード)もいいが、このような方法はプラモデルを組み立てていくような楽しさがあります。
とても、プログラムを書いたり、理解したりできなくても、プログラムの「ブラックボックス」が少し垣間見える面白さがあります。
この記事を読んだあと、少しでも、その楽しさや面白さにふれる人が増えるることを祈ってます!