jj1gujのブログ

アイコン画像は音速の奇行子 様よりいただきました

WCSC32参加記

第32回世界コンピュータ将棋選手権(WCSC32)に参加しました.

大会の概要

WCSCは最も強い将棋ソフトを決める, 1990年から開催されている伝統ある大会です. 大きな特徴としてはマシンスペックに一切の制限がないところで, 上位勢はAWSインスタンスを大量に借りたり, 会社で自由に使うことのできるNVIDIA A100を大量に使用していたりします. 大会自体は3日かけて行われ, 1日目に1次予選を, 2日目に2次予選を, 3日目に決勝リーグを行い優勝者を決定するようになっています. 1次予選から決勝リーグまですべてリーグ戦で行われます. 対局は持ち時間15分, 1手5秒加算のフィッシャルール, 320手の時点で勝敗が決定しない場合は引き分けというルールになっています. また, 対局相手はスイス式により決定します.

具体的なルールや概要はこちらをご覧ください.

ja.wikipedia.org

一昨年, 昨年とオンラインのみの開催*1でしたが今年は現地及びオンラインのハイブリット開催となりました. この参加記は1次予選に参加した参加記となります.

ソフトの概要

ソフト名は去年から引き続きponkotsuというソフト名で出場しました. 今年は, DeepLearning系ソフトに定跡を積まずに振り飛車を指させることを目標に開発しました.

手法としては, 振り飛車専用のネットワークと局面評価専用のネットワークを用意し, それぞれPolicy NetworkとValue Networkに割り当ててMCTSを行うようになっています.

振り飛車専用のネットワークは振り飛車を指す将棋ソフトとして有名なHoneyWaffleを手元で自己対局させて生成した棋譜(約2万局分)を教師データとして学習させています. 局面評価専用のネットワークはfloodgateの2015年~2021年の棋譜(数えていないので局数は不明. 恐らく50万局程度)を教師データとして学習させています. いずれのネットワークも学習時にはPolicyと勝敗の双方を学習するマルチタスク学習を行っています.

結果として主に四間飛車を目指して自分から飛車を振るソフトが完成しました.

今年の成績

今年は1次予選で4勝4敗と指し分け, 参加した33チーム中19位の成績となり, 二次予選に進むことは叶わなかったものの昨年から大きく成績を上げることができました. 順位表はこちらをご覧ください.

対局の様子とか

※筆者は将棋が弱いため将棋の内容は将棋が強い人からしたら見当違いなことを書いている可能性が高いです. その点ご了承下さい.

1回戦(対きふわらべ)

1回戦は昨年頭金で詰まされたきふわらべとの対戦となりました.

先手番の将棋で初手5六歩と指したので中飛車にするかと思われましたが, なぜか居飛車のまま指し始めました… 今年はしっかりと詰まして無事勝利することができました.

棋譜はこちら

tsec-shogi.com

2回戦(対TMOQ)

後手番の将棋で, 4手目に角道を空けたまま4二銀と上がる大悪手により角をただ取りされて負けました. ただ意外にも70手まで生き永らえることができました…

棋譜はこちら

tsec-shogi.com

3回戦(対こまあそび)

2回戦までの結果を踏まえ, ここで評価関数のパラメータを差し替えました(2回戦まで前日に学習させたパラメータを使用していた). 最初の方に対局サーバとの接続トラブルでなかなか対局が始まらず, やきもきしてました*2.

今度は先手番となり, こちらの三間飛車にたいしてこまあそびが中飛車という相振り飛車の将棋になりました. 素人目には序盤から5段目に角が出てくる激しい将棋となりましたが, ponkotsuの玉頭の攻めがうまく刺さってくれたおかげで勝つことができました.

棋譜はこちら

tsec-shogi.com

昼休憩

3回戦終わってここで昼食休憩となりました. 昼食は会場にいた開発者の方々と川崎家に行きました. 川崎家は将棋ファンの間では永瀬王座のご実家として有名です. 現地参加できることが決まってからずっと行きたいと思っていたので行くことができて嬉しかったです. ラーメンは豚骨ベースでとてもおいしかったです.

4回戦(対Easy Shogi)

後手番の将棋で飛車を振ってくれるか不安でしたが2手目5四歩に続いて4手目に5二飛と振ってくれ, なんと中飛車の将棋になりました. いままでponkotsuくんが中飛車に振ってくれたことがなかったので驚きでした.

この将棋は詰まし切ることができ, 昨年の成績を超える3勝目を挙げることができました. Easy Shogiには昨年も勝っていたのですが, そのときは連続王手の千日手をかけられての反則勝ちというなんとも言えない結果だったので詰まし切ることができてよかったです.

棋譜はこちら

tsec-shogi.com

5回戦(対prelude)

ここまで3勝1敗という成績だったのでそろそろ上位勢と当たる気がしていたところに上位勢と当たることになりました.

preludeはプロ棋士の谷合四段が開発されているソフトで, 初戦にAobaZero*3に勝っていました. そのため, 対局がつくとわかったときにはボコボコにされると覚悟しました.

将棋の方は先手番で, 相向かい飛車というソフト同士の対局にしては珍しい戦型になりました. 自陣に角の打ち込む隙があるにも関わらず29手目で角道を開けて角交換を仕掛けに行くなど疑問手や細かいミスが相次ぎ, 見事に詰まされました. 谷合四段も会場にいらっしゃっていて, 対局を見ながら隣で解説していただいて貴重な時間でした.

棋譜はこちら

tsec-shogi.com

6回戦(対Argo)

またまた強いソフトと当たることになりました… 今度は後手番の将棋で, こちらの四間飛車銀冠に対して先手の居飛車穴熊になりました. こちらは評価値的にはじわじわと差を広げられて負けました.

棋譜はこちら

tsec-shogi.com

7回戦(対なのは)

ここら辺で欲が出てきて指し分けに持っていきたいと考えていたところまた強いソフトと当たることになりました… 先手番の将棋で, こちらが三間飛車となる対抗形になりました. よくわかってはいないのですが, 序盤の方でなのはの定跡にない展開になったのか時間を使わせる展開になってワンチャンスあるのではと思ったのですが, 無事詰まされました…

棋譜はこちら

tsec-shogi.com

8回戦(対wizodds 2022)

いよいよ指し分けまで後がなくなり, ただひたすらお祈りしてました. 後手番の将棋となり, こちらの四間飛車の急戦っぽい対抗形となりました. 序盤から角を交換し合う激しい展開な上にponkotsuがなぜか飛車先の歩を突こうとしない謎挙動がありヒヤヒヤしていましたが, 40手目で桂を丸得することができ, 見事勝つことができました. これで4勝4敗と指し分けることができました!

棋譜はこちら

tsec-shogi.com

課題

今回の大会に参加して次のような課題が見つかりました.

  • 振り飛車は指せるが振り飛車の大きな特徴である捌きをしない(らしい)
  • NPS(1秒に読むことのできる局面数)が低い
  • 要所要所でミスをする

いずれも決定的な解決策が見えていないのでおいおい解決していきたいです.

今後の展望

感想

昨年と比較してかなり強くなり, 研究室で先生に指してもらったときにも勝つことができたため去年の成績を超えられそうな気はしていました. それが結果的には指し分けという結果になり, 非常に嬉しかったです. しかし, 一方で上位陣に対してはまだまだ勝つことができず, 4勝と5勝の間には大きな壁があることがわかりました. 今大会を通じて多くの課題が見えたため, これらを修正して7月に開催されるTSEC*4に備えたいと思います(なお研究の進捗…)

ちなみに8回戦終了後先生からお祝いのメッセージをもらった上に褒められが発生して気分が良かったです.

最後に

初めて現地参加してみて思ったのですが, 若い人が少なかったです... 現地参加した人が少なかったのもあると思うのですが現地勢だとぼくが1番年下で, オンライン参加含めても多分ぼくより年下の人が2人だけというような状態でした.

ここ数年で将棋ソフトの作り方を詳細に解説した本が出版されていたり強い将棋ソフトのコードやそのソフトが使用した大量の質の良い教師データがオープンソースで公開されていたりと新規勢が参入しやすい土壌が急激に整ってきています. また, 将棋ソフトを作成して大会に出たことを就活時にESに書いたり面接で話したりすると仮に大会での成績が芳しくなかったとしてもものすごく受けがいいです. 個人的には将棋ソフト開発は競プロより就活の役に立つと思います.*5 まだ将棋ソフトを開発していないそこのあなた!これを読んでぜひ開発して大会に出場しましょう!!!

*1:一昨年は大会自体は中止で, 代替のオンライン大会が開催された

*2:運営の皆さん, お疲れ様です…

*3:AlphaZero追試で開発が始められたソフト. 平手でも駒落ちでも強い

*4:指定された局面から指し始める将棋ソフトの大会

*5:競プロはあくまでも基礎体力しか測ることができないことを考えると比較するのはあまり良くないかもしれません…