TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

第34回世界コンピュータ将棋選手権 結果報告

5/3~5/5に開催された第34回世界コンピュータ将棋選手権にHEROZチームとして、「dlshogi with HEROZ」というプログラム名で参加しました。

大会の概要

世界コンピュータ将棋選手権は、1990年より毎年開催されている歴史のあるコンピュータ将棋の大会です。
今回は34回目の開催で、45チームが参加しました。
第1予選、第2予選を通過した上位8チームで総当たりのリーグ戦で決勝戦が行われました。

大会の結果

決勝リーグでは最終戦で自力で勝てば優勝でしたが千日手になり、トップの「お前、 CSA 会員にならねーか?」(tanuki-チーム)と勝ち点同一でSB差で準優勝という結果になりました。

なお、二次予選は昨年とは異なり苦戦を強いられて、ボーダーラインで辞退があったため繰り上げで決勝に進めました。苦戦した事情は後述します。

今大会の特徴

定跡が出回った

先手勝率が高い角換わりの先手定跡が出回ったため、先手角換わり定跡を搭載したチームに後手で角換わりを受けると勝てないという状況でした。
後手で角換わりを回避すると、あえて少し不利な局面で戦うことになるため、棋力差がないと後手では勝ち切るのが難しいです。
先手が少し良いくらいで定跡を抜けられた場合は、終盤に近い局面で、終盤の精度が勝敗に大きく影響します。

比較的序中盤が得意なディープラーニング系にとっては、利点を活かしにくい大会となりました。

ハードスペック

dlshogiは、前々大会、前大会と同じA100x8のマシンを使用しました。
対して、他チームは前大会よりも高スペックなAWSインスタンス(m7a.metalなど)や、vast.aiでRTX4090 x 14といったGPUマシンを使用しており、ハードスペックのアドバンテージはなくなっていました(むしろ少し劣っていました)。

NNUE系の底上げ

精度の高い角換わり定跡が公開されていることと、高ノードで探索した大量の教師データが公開されたことと、やねうら王の改良した探索部が支援者に公開されたことで、NNUE系のチームは全体的に底上げされている印象がありました。

後手番対策

今大会では、後手番で角換わりはすべて避ける方針でした。
6手目に1四歩を指すことで、コンピュータ将棋では角換わりを避ける展開になりやすいため、6手目1四歩を定跡にしていました。
二次予選のkoronとの対局では、3手目に7六歩と差された場合の対処を忘れていたため、後手で角換わりを受けて互角で定跡を抜けられましたが、終盤精度の差で負けています。

また、決勝の東横将棋との対局では、6手目に1四歩に対して角換わりに合流する対策をされており、こちらも互角で定跡を抜けられましたが、終盤精度の差で負けています。

決勝リーグでは、棋力測定での勝率は多少低くても終盤の読み抜けが比較的少ないモデルに変更したのが良かったのか、後手番での負けは東横将棋との1局だけでした。

先手番の方針

今回定跡を250万局面準備しており、先手は角換わりが最善という評価になっていたため、二次予選はすべて角換わりを選択しました。

しかし、「お前、 CSA 会員にならねーか?」との対局では、dlshogiが先手の角換わりで、定跡を抜けた時点で優勢でしたが、終盤の読み抜けがあり逆転されて負けています。
dlshogiは、角換わりの終盤精度に課題がありそうです。

決勝では、角換わりはNNUE系が得意な局面になりやすいため、先手はすべて相掛かりとしました。

定跡の準備

今大会では、dlshogiはモデルの開発はほとんど行っておらず、1年間自動で定跡作成を行っていました。

定跡の作成方法は、手番側は定跡に登録された局面をαβ探索した時の最善手を指し、相手側は、dlshogiの訪問回数に応じた分布とNNUE系ソフトの指し手からサンプリングするという方法です。
定跡に未登録の局面に達したら、大会と同じくらいの思考時間で思考した結果を登録しています。
また、末端の局面はNNUE系と評価が乖離していないかチェックを行い、乖離している場合は定跡を延長しています。

これにより、指されやすい手は、100手以上の深さまで掘ることができて、定跡を抜けた時点の評価はdlshogiとNNUE系で一致する局面となります。

今大会の定跡手数と定跡を抜けた時の評価値

今大会の定跡手数と定跡を抜けた時の評価値は、以下の通りです。

先手 後手 定跡手数 評価値 戦型
二次予選 1 dlshogi argo 51 863 横歩取り
2 koron dlshogi 70 19 角換わり
3 dlshogi nshogi 113 932 角換わり
4 ponkotsu dlshogi 24 140 6手目1四歩
5 cobra dlshogi 46 61 4手目1四歩
6 Novice dlshogi 14 203 6手目1四歩
7 dlshogi astra3 67 379 角換わり
8 dlshogi 16-168 47 280 角換わり
9 dlshogi tanuki 77 462 角換わり
決勝 1 dlshogi tanuki 45 196 相掛かり
2 Toyoko dlshogi 46 49 角換わり
3 16-168 dlshogi 12 110 相掛かり
4 polonaise dlshogi 28 33 6手目1四歩
5 dlshogi koron 77 915 角換わり腰掛け銀
6 dlshogi gikou-2024 55 647 相掛かり
7 yaneuraou dlshogi 30 152 角換わり(初手7六歩)

※評価値は先手がプラス

定跡を抜けた時点で、900点以上という対局も数局ありました。
先手定跡は、大会でも通用する精度の高いとものになっていたと考えます。

後手定跡の難しさ

最近の将棋AIの評価では先手有利となっているため、定跡を掘っても、先手はほとんどのケースで最善手を変更する必要がなく、深くまで掘ることができますが、後手は有望と予測された手順がすべて先手に潰されてしまうため、手を変える必要があり、あまり深くは掘られないという状況になります。
評価値では互角と判断していても、100手目付近まで調べないと分からないということが多く、後手番で精度の高い定跡を作るのは現実的に困難だと感じています。
深くまで調べた手順も先手有利の結論になると回避してしまうため、大会では有効かもしれない手順を自ら回避してしまうという課題もあります。

今後の方針

今大会の結果から角換わりの終盤精度に課題があることが分かったので、終盤精度を上げることを目指そうと思います。

探索、モデルの両方に改善の余地があると思っています。
探索に関しては、必至の探索ルーチンを入れると効果はありそうな気がしています。
ただし、方策モデルの読み抜けがあるとどうしようもないので、モデル精度の方が優先度が高いと思っています。

まとめ

第34回世界コンピュータ将棋選手権に参加し、準優勝という結果でした。
今大会は、ほとんど定跡の準備しかしていなかったですが、先手の定跡については成功したと思います。
角換わりの定跡を抜けた後の終盤精度に課題があることが分かったので、今後は終盤のモデル精度を改善したいと思います。

優勝した「お前、 CSA 会員にならねーか?」チームの方、おめでとうございます
大会を運営してくださった主催者様、対局してくださったチームの方々、そして応援してくださった皆様にお礼申し上げます。