棋桜について
株式会社ネコノメさんがリリースしたiOS, Android, Steamで遊べるオンライン対戦型の将棋アプリケーションです。
将棋は好きなので、このアプリがどのように動いているか徹底解剖することにしました。
将棋エンジン
さて、広報にもあるように将棋AIには谷合廣紀五段が開発したAIが使われているみたいです。レポジトリ自体はプライベートですが、パッケージは公開されています。
評価関数
HalfKPの評価関数が使われています。標準NNUEではなく中間層の次元が128しかない(標準NNUEでは256)なので、バイナリとしては半分のサイズしかありません。
どういう理由があってこのネットワークを採用したのかは謎です。
ついでにレーティングも測定してみました。全部チェックするのは大変なので水匠5との相対レーティングで計算してみました。
その結果、棋桜AIは水匠5と同じスペックで実行した場合にはになりました。時間もリソースもないので互角局面集から100局対局した結果なので「水匠5よりはちょっと弱い」ということは言えそうです。
ただし、これはスペックを全部使えた場合の話でサポート機能は意図的に棋力を落としてdepth=5で探索しているので、過信は禁物です。たまにとんでもない手を推奨してきます。
棋桜AI解析
将棋ウォーズがサーバーで解析しているのに対して、棋桜の解析はクライアントサイドで行われています。つまり、解析に必要な計算資源は「遊んでいるユーザーの端末」ということになります。
ユーザーの端末で計算しておいて一ヶ月650円取るのはどうなんだろう、というのがあります。あ、でも課金していないとすぐにグラフがでるやつはでないと思います。それくらいですね。
ちなみに棋桜AI解析はdepth=15 Hash=16MBで動作しています。これはめちゃくちゃ制限がキツいので、M系のiPadを持っているユーザーには正直物足りないと思います。
Kiou Forge
というわけで、それらの制限を突破できるカスタマイズツールを作りました。
名前のKiouForgeはClaude Codeに書いてもらったので、特に意味はありません。
以下が、Kiou Forgeの導入でできることです。より詳しくはレポジトリを参照して下さい。
FPS調整
デフォルトではフレームレートは30と60しか使えませんが、それ以上とそれ以下に設定できるようにします。
AFK無効化
長考していると確認ダイアログが出てきて邪魔ですが、それを無効化します。
棋桜解析チューニング
深さ、ハッシュ、スキルレベルの値を変えて解析できます。
スキルレベルはほぼほぼ使うことがないと思うので、主に深さとハッシュの調整がメインです。非力なマシンで大きな値を設定すると事実上、フリーズします。
このチューニングは解析時のみ有効で、対局中のサポートや棋桜覚醒の解析能力に一切影響を与えません。
棋譜自動保存
指定したモードの棋譜を自動でKIF 2.0形式で保存します。
ファイル共有の有効化もされているので、iOS標準のファイルから棋譜が見れてそのまま解析サイトやソフトで読み込ませることができます。
ということで、Kiou Forgeは主に公式のアプリで手の届かないかゆいところを調整するためのユーティリティツールです。README.mdを見てもらえればわかるとおり、基本的に導入は正直ちょっとめんどくさいのですが、そのうち誰かがひょっとしたら導入のための解説記事を書いてくれるかも知れません。
またKiou Forgeの開発にあたり、別のライブラリの開発が必要となりました。それについては近いうちにまたご説明できたらと思います。
記事は以上。