TadaoYamaokaの開発日記

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

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

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

大会の概要

今回は、51チームが参加しました。
第1予選、第2予選を通過した上位8チームで総当たりのリーグ戦で決勝戦が行われました。

大会の結果

dlshogi with HEROZは、第3位という結果でした。

二次予選は、2位に1.5勝差をつけて1位通過だったので、優勝を狙えると思っていましたが、決勝で二次予選8位のKanadeに後手番で負けたのと、INUGAMI相手に先手番で320手引き分けルールでほぼ勝ちの対局が引き分けになったのが影響しました。

優勝した水匠に後手番で当たったのも対戦相手の当たりが良くなかった気もします。
最近のコンピュータ将棋の大会では、上位陣は、先手がほぼ勝つので後手番では勝つのが難しいです。

Kanadeに後手番で勝てなかったのは、定跡とモデル精度がまだ不十分ということなので、結果は現時点での実力を反映したものだと受け止めています。

今大会の特徴

定跡の戦い

決勝の上位チームは、定跡を用意しており、後手番は対策なしで勝つのは難しくなっています。
コンピュータ将棋の対局で良く現れる手順は、ほぼ先手が勝ちの局面まで定跡に登録されており、後手番は、多少評価値が下がってもそれを避けて勝負することになります。

そのため、相手が準備していなくて、コンピュータ将棋が間違いやすい局面に誘導するといったメタ戦略が有効になります。
水匠チームは、そのような方法で準備をされていたようです。
tanukiチーム(ソフト名:INUGAMI)も後手番定跡をうまく作っている印象があります。

dlshogiは、特にメタ戦略は行わずに、自動で定跡を作成しているため、大会では有効かもしれない手順も先手有利の結論が出てしまうと、自らそれを避けるようになっているため、後手番の定跡はあまり出来が良くなかったと思います。
大会に向けては、どうやってメタ戦略を取り入れるかが課題になります。

先手番は、先手が有利なため、手順を変える必要がなく、深い手順まで準備することができます。
今大会で、dlshogiは、先手番での負けはありませんでした。

NNUE系の進歩

昨年12月の電竜戦の後に、tanukiチームが、ディープラーニングのモデルで教師データの評価値を付け替えて、知識蒸留を行う手法が効果があることを発見した後、NNUE系のソフトを開発しているチームでノウハウを共有しあうことで、レーティングを飛躍的に伸ばしています。

今大会でNNUE系の水匠が優勝したのも、知識蒸留の成果も大きかったのではないかと思います。

ディープラーニング系の健闘

決勝に進んだ半数以上の5チームがディープラーニング系のソフト(Ryfamateは合議)で、ディープラーニング系ソフトも存在感を示しています。

dlshogiやRyfamateは、Transformerをモデルアーキテクチャに取り入れるなどして、着実にモデル精度を上げています。

終盤の精度がまだ、NNUE系には及ばないため、今後、定跡で序盤中盤の精度の有利を活かせなくなってくると、NNUE系にどう対抗するかが課題になります。

dlshogiの今大会に向けた工夫点

モデルアーキテクチャ

ResNetにTransformerを組み合わせるアーキテクチャを採用しました。
Transformerを使うことで、ResNetと比較して少ない層数で精度を上げることができています。
詳細はアピール文書に記載しています。

モデルサイズ

40ブロック512フィルタのモデルで、約2億パラメータがあります。

50ブロック640フィルタのモデルも学習しましたが、同一持ち時間では強くならなかったため、40ブロック512フィルタの方を採用しました。
詳細は、以前の記事を参照してください。

今後は、50ブロック640フィルタのモデルから、40ブロック512フィルタのモデルへの知識蒸留を試すつもりです。
今大会では時間が足りずできませんでした。

入玉特徴量

特徴量に入玉宣言までの残り点数と、駒数を追加しました。
入玉の見極めがうまくなるのか、入玉以外の対局でも強くなっています。
詳細は、以前の記事を参照してください。

今大会でも入玉宣言で勝ちの対局が1局と、宣言勝ちできる状況で320手引き分けのため手数が足りず引き分けになった対局が2局ありました。

定跡自動生成

前回大会時点は、定跡に250万局面を登録していましたが、今大会では、330万局面を登録していました。
定跡作成方法は、前大会と基本的には同じ手法です。
前大会のアピール文書を参照してください。

作成したdlshogiの定跡では、先手の開始局面の評価値は264で、勝率換算で、58.6%になっています。

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

二次予選
先手 後手 評価値 手数
dlshogi nshogi 30000 117
Kanade dlshogi -221 32
dlshogi あすとら将棋 488 79
dlshogi INUGAMI 1455 107
Ryfamate dlshogi -273 30
dlshogi やねうら王 305 33
Serenade dlshogi 28 34
dlshogi 水匠 1374 117
決勝
先手 後手 評価値 手数
Kanade dlshogi -237 30
dlshogi AobaZero 634 35
dlshogi やねうら王 291 43
水匠 dlshogi -165 46
Ryfamate dlshogi -165 72
dlshogi INUGAMI 573 71
dlshogi Serenade 428 51


二次予選のnshogiとの対局は、角換わりのコンピュータ将棋でよく現れる手順で、詰みが見つかるまで定跡でした。

先手番では、中央値で75手まで定跡で、定跡を抜けた時点の評価値の中央値は603でした。
しかし、決勝でのやねうら王には、上手く先手の定跡を外されています。

後手番では、中央値で33手まで定跡で、定跡を抜けた時点の評価値の中央値は-193でした。

先手番に比べると定跡を抜ける手数は短く、後手で長い定跡を用意するのが難しいのが分かります。
メタ戦略を取り入れないと、これ以上後手の定跡の手数を伸ばすのは難しそうです。

定跡を抜けた時点で、大きく不利な局面にはなっていないので、先手定跡に嵌まるのは回避できています。
ただし、定跡を抜けた時点で先手が有利のため、後手で勝つのは厳しいと言えます。

ハードウェア

二次予選は、H100 PCIe x 8のマシンを使用しました。
決勝では、前大会で、他チームがvast.aiでRTX4090 x 14のマシンを借りていたため、スペックで負けないように、AWSでH200 SMX x 8のマシンを借りました。
二次予選と比べてNPSは、約1.5倍になっています。

課題

モデル精度

後手で定跡を抜けた後に、先手優勢を覆すには、相手を上回るモデル精度が必要になります。
また、互角に戻した後にそのまま終盤まで勝ち切る必要があります。

そのため、中終盤のモデル精度を上げていくことが必要になります。

また、今大会では、後手番で標準のdlshogiのモデルで公開された教師データのみで学習を行っているKanadeに負けており、中盤のモデル精度にまだ学習が不十分な局面がありそうというのがわかりました。

後手番の定跡

後手番で定跡を抜けた時点で互角くらいまで持ち込むには、相手が準備していない定跡を狙い撃つことや、NNUE系やディープラーニング系が誤りそうな局面に誘導するなどのメタ戦略が必要になります。
それらをどうやって自動定跡作成に組み込むかが課題になります。

まとめ

第35回世界コンピュータ将棋選手権に参加し、第3位という結果でした。

後手番の定跡作成方法や、中終盤のモデル精度にまだ課題があることがわかりました。
次の大会に向けて課題の対策を考えたいと思います。

優勝した水匠チームの方、おめでとうございます
大会を運営してくださった主催者様、対局してくださったチームの方々、そして応援してくださった皆様にお礼申し上げます。