「Online KataGo」をリリースしました
少し時間が掛かってしまったのですが、以前からここにも少し書いていた、オンライン版のKataGoがようやくできました。
Online KataGo
https://www.onlinekatago.net/
まだ怪しいところがいろいろありますが、一回表に出しておきたいと思います。
いずれ作る予定の、でもまだ実装できていない機能もいくつかあるのですが、それを順に書いていくと、まず、クリック/タップしなくても自動的に解析が始まるようにしたいと思っています。ただこれは、ユーザの使用状況をしばらく確認してみないと仕様が定まらないので、実装するにも少し時間が必要です。
それから、SGFのLOAD/SAVEができないのは、当然できるようにしますのでしばらくお待ちください(SGFのパーサって難しいんですよね…)。その代わり、COSUMIの対局リプレイ式のクエリストリングがすでに使えるようになっています。こんな感じですね。今現在、使えるパラメータは、bs(碁盤サイズ)、k(コミ)、h(置き石)、gr(棋譜)のみですが、将来的にはもう少しいろんなパラメータを使えるようにするかもしれません。今すぐ手持ちの棋譜を解析したいって方は、オンライン棋譜ビューア使って変換してみてください。出来るだけすぐに、COSUMIの対局リプレイにも、Online KataGoへのリンクを用意するつもりです。というわけで、当面はCOSUMIユーザが優先ってことでお願いします。
あと、読み込んだ棋譜を丸ごと解析っていうのも当然考えはしますが、これは少し難しいかもしれません。仕様次第なんですが、リソースが無限にあるわけではないので… Online KataGoはもう少しピンポイントに使ってもらいたいなと思っています。さらっと全体を解析するだけだったら、COSUMIの対局リプレイを使ってください。
今現在、KataGoはAWS EC2のg6.4xlargeg6.xlarge(ごめんなさい。間違えてました)で動かしています。そしてそれではリソースが足りなくなったら、前にも書いた通りg6.12xlargeに移行することを本気で検討しているのですが、余裕で年400万円オーバーなんですよね…(COSUMIの大半もそこで動かせるので、Online KataGoで使う分としてはそこから年100万円ほど安くなりますが) 人生短いし(笑)、少なくとも1年間は私は楽しい思いができるので、お金ぶっこむことにはもう覚悟ができているのですが、とはいえなんだかものすごく割高な気がしています。で、なんでこんなに価格が高いんだろうって考えていると、とりあえずこれ、GPUのメモリが多すぎるんですよね。NVIDIA L4って24GBなんですが、KataGo動かすだけなのにそんなに要らない!(なんならg6.12xlargeのメインメモリは196GB。ほんとに要らない!(笑)) このあたり本当によくわからないのですが、もしかしてデータセンターでKataGo的なタスクを動かす需要ってほとんどないんですかね? データセンターのGPUって、推論ではなく学習に使われていることが多いとか、推論は推論でも大き目のサイズのNNか、もしくは複数種類のNNを同時に動かしていることが多くて、囲碁みたいに、ひとつの小さ目サイズのNNにほとんど違いの無い入力データを繰り返し繰り返し放り込み続けるっていうのは、かなり特殊な使い方なのかもしれません。元々、「囲碁のためにグラフィックボードを買うのはもったいないからやめよう」ってところから作り始めたプロダクトなんですが、囲碁のためにL4借りるのは、はるかにもっともったいないことのような気がしてきました。でももう後に引けないので、今Google Cloudの価格を調べています。N1+T4が正解とかってあるのかな? いやしかし、一介の個人がこんなのほいほい払っていたら、デジタル赤字なんて無くなる訳がないですね…
あとそれから、前にも書いた通り、いずれAdSenseのオファーウォールをかなりがっつり掛けるつもりにしています。ただ、それはあくまでサーバ構成が最終形態になって、そのリソースが使い切られるようになった時の話です。それまでは、広告フリーでお楽しみください。
[追記 2025/11/17]
最初のリリースからすでにいろいろやっていて、もう影響範囲もよくわかっていませんが2つほど大きなバグを潰し、それ以外にも大量の修正を加えました。現時点の状態をもって、一応ちゃんとスタートできたような気がします。COSUMIの対局リプレイにも、リンクのボタンを用意しました。
自分でもちょこちょこ使ってみて、なんとなく必要な機能と適切な仕様がわかってきました。棋譜の丸ごと解析は、形勢だけでもいいのでやはり必要ですね。これは必ずやりたいと思います。
[追記 2025/12/7]
解析モードに、スライダーで移動できる範囲内すべてを一括で解析する「ALL」と、ユーザのアクション無しで自動で解析が開始する「AUTO」を追加しました。それ以外にもまたさらに大量の改善が入っていて、リリース当初とは比べ物にならないくらい良くなっています。後はもうSGFの読み書きをできるようにしなければいけないだけで、それを除けば現時点でほぼほぼ最終形だと思います。
手を動かしていて思ったのですが、オレゴンまで行って、19路盤の対局丸ごとをプロレベルの解析して、戻って来ても2秒掛からないっていうのは、改めてとんでもない時代になりましたね… COSUMIを始めた頃の自分に想像がついていた未来なのかどうかも、今はもうよく覚えていません。ちなみに、オレゴンからNNの出力が帰って来ることを、わたしは「オレゴンからAI」って呼んでいます(笑)。
[追記 2025/12/22]
こまごまとした修正をしつこく続けていて、細かい部分もかなり良くなったと思います。もう本当にSGFを読み書きできるようにするだけになった感じなんですが、Online KataGoでそれをやる前に、COSUMIのオンライン棋譜ビューアでもファイルから読めるようにしてみました。ちょっとしたことなんですが、こんなことでもいろいろ調べないとできないので、結構面倒…
[追記 2025/12/30]
SGFの読み込みもできるようになりました。ひとまずこれで完成です(年内に終わって良かった(笑))。かなり使えるものになったと思いますし、個人的にはKaTrainがもう全く必要なくなりました。
一番最初にOnline KataGo作ろうと思った時は、正直、こんなちゃんとしたものを作るつもりじゃなかったんです… 手元のコードを切り貼りしただけの簡単なものでも、そこそこ需要があるんじゃないかと、かなり軽い気持ちだったのですが、一旦、手を動かし始めると、付け加えたり直したい箇所がどんどん出てきて、気が付いたらめいいっぱいのプロダクトになってました。本当に大げさではなく、私がCOSUMIを始めてから身につけたものを、全て注ぎ込みました。逆に言うと、これ以上はもう無理かな?
今回、SGFのパーサを書いていて思ったのですが、使いにくい、そして実際に全然使われていないプロパティとかがたくさんあって、なんというか、SGFがもともと目指していた使われ方と、今SGFを使っている人が求めていることが、大きくかけ離れているような気がしています。この先も囲碁の世界がSGFと共に進んで行くのなら、それは結構もったいないことのような気が私はしてて、ここらで一度、だれかが「新しい囲碁専用(SGFが囲碁専用でないのも、問題の根源のひとつな気がする)の棋譜フォーマット作ろう」ってやってくれないかなあ… JSON互換のフォーマットが欲しいっていう人をほとんど見かけないのも、不思議で不思議でなりません。KataGoのAnalysisモードだって、入出力はJSONなんですけどね…
ここ最近、Online KataGoと交互に、COSUMIの方にも手を入れていたのですが、対局リプレイのSGFをクリップボードにコピーするボタンがiOSでたぶん死んでいたので、今時な書き方に直しておきました。
[追記 2026/1/3]
たまたますぐに気がついたので良かったのですが、昨日1/2の14:35~17:05ぐらいの間、サーバがトラブってました。調べたところ、ちょっとはっきりとはわからないのですが、もしかするとKataGo自体の不具合かもしれません。うーん、それだけは本当に本当に困るんですよね… なにか簡単な方法で回避できるかなあ? 年明けてから、ようやく解析回数が1万回/日を超えてきたのですが、まだまだぜんぜんみなさんに使ってもらえてなくて、とりあえず出血を止めるために、g6.4xlargeあたりにCOSUMIのサーバと纏めようかと思ってたのですが、今はこれ、ちょっと怖いですね… とはいえ、最終的にはサーバを一緒にしないわけにもいかないので、またちゃんと調べます。
[追記 2026/1/8]
読み込みほどは需要ないと思いますが、SGFの書き出しもできるようになりました。解析結果もSGFの出力に含めようかと思っていたのですが、ちょっといろいろあれなので、とりあえずは無しで。またちょっと考えておきます。
後は一応いくつかの項目をユーザが設定可能にする予定にしてて、それができたら基本部分に関しては本当にもう全部お終いなんですが、ただもう少し時間をおいて考えてみないと、なにを設定項目に用意すればいいのかわからないので、しばらくはこのままで。作り始めた頃は、一応、サウンドも鳴らそうと考えていたのですが、目指すところとはちょっと違う気がするので、これはもう止めておきます。
[追記 2026/1/12]
リソースが余りまくってもったいないので、ALLのmaxVisitsを10にしてみました。さすがにこれは、今後もずっと続けていくことはできないと思うので、適当なタイミングでまた元の2に戻す予定にしてますが、最初から精度の高い解析を返しておいた方が、追加の解析が行われなくてリソースの消費が少くなるっていう可能性もないわけではないので、様子を見てまた考えます。ただ今の時点でももうすでに、解析の必要な局面が多い時にちょっと遅いですね。まあとにもかくにも、みなさんもっとがんがん使ってください(笑)。
KataGoの最新のウェイトのkata1-b28c512nbt-s12192929536-d5655876072がなかなか強く、手元の検証でも数字は悪くなさそうです。ただ、KataGoの開発がどういうふうに行われているのか私が全然分かってないのであれですが、早く使いたい気持ちを今はちょっと抑えて、AdamWなバージョンを待とうと思います。
[追記 2026/1/12 20:15]
なんかトラブるので、一旦、ALLのmaxVisitsを2に戻しました。今までちょいちょいおかしくなってた時と同じ問題だと思うので、ちゃんと調べます











































