第32回世界コンピュータ将棋選手権(WCSC32)に参加しました.
大会の概要
WCSCは最も強い将棋ソフトを決める, 1990年から開催されている伝統ある大会です. 大きな特徴としてはマシンスペックに一切の制限がないところで, 上位勢はAWSのインスタンスを大量に借りたり, 会社で自由に使うことのできるNVIDIA A100を大量に使用していたりします. 大会自体は3日かけて行われ, 1日目に1次予選を, 2日目に2次予選を, 3日目に決勝リーグを行い優勝者を決定するようになっています. 1次予選から決勝リーグまですべてリーグ戦で行われます. 対局は持ち時間15分, 1手5秒加算のフィッシャルール, 320手の時点で勝敗が決定しない場合は引き分けというルールになっています. また, 対局相手はスイス式により決定します.
具体的なルールや概要はこちらをご覧ください.
一昨年, 昨年とオンラインのみの開催*1でしたが今年は現地及びオンラインのハイブリット開催となりました. この参加記は1次予選に参加した参加記となります.
ソフトの概要
ソフト名は去年から引き続きponkotsuというソフト名で出場しました. 今年は, DeepLearning系ソフトに定跡を積まずに振り飛車を指させることを目標に開発しました.
手法としては, 振り飛車専用のネットワークと局面評価専用のネットワークを用意し, それぞれPolicy NetworkとValue Networkに割り当ててMCTSを行うようになっています.
振り飛車専用のネットワークは振り飛車を指す将棋ソフトとして有名なHoneyWaffleを手元で自己対局させて生成した棋譜(約2万局分)を教師データとして学習させています. 局面評価専用のネットワークはfloodgateの2015年~2021年の棋譜(数えていないので局数は不明. 恐らく50万局程度)を教師データとして学習させています. いずれのネットワークも学習時にはPolicyと勝敗の双方を学習するマルチタスク学習を行っています.
結果として主に四間飛車を目指して自分から飛車を振るソフトが完成しました.
今年の成績
今年は1次予選で4勝4敗と指し分け, 参加した33チーム中19位の成績となり, 二次予選に進むことは叶わなかったものの昨年から大きく成績を上げることができました. 順位表はこちらをご覧ください.
ponkotsuは4勝4敗で19位でした!
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
カツ丼将棋には7月のTSECで恩返しをしたいです…!! #wcsc32 pic.twitter.com/oOxWw93CcD
対局の様子とか
※筆者は将棋が弱いため将棋の内容は将棋が強い人からしたら見当違いなことを書いている可能性が高いです. その点ご了承下さい.
1回戦(対きふわらべ)
1回戦は昨年頭金で詰まされたきふわらべとの対戦となりました.
先手番の将棋で初手5六歩と指したので中飛車にするかと思われましたが, なぜか居飛車のまま指し始めました… 今年はしっかりと詰まして無事勝利することができました.
棋譜はこちら
2回戦(対TMOQ)
後手番の将棋で, 4手目に角道を空けたまま4二銀と上がる大悪手により角をただ取りされて負けました. ただ意外にも70手まで生き永らえることができました…
角がただ取りされた…
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
2戦目は負けでした
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
角ただ取りされた割には長生きしてて草 #wcsc32 pic.twitter.com/7ltD2eyVBy
棋譜はこちら
3回戦(対こまあそび)
2回戦までの結果を踏まえ, ここで評価関数のパラメータを差し替えました(2回戦まで前日に学習させたパラメータを使用していた). 最初の方に対局サーバとの接続トラブルでなかなか対局が始まらず, やきもきしてました*2.
今度は先手番となり, こちらの三間飛車にたいしてこまあそびが中飛車という相振り飛車の将棋になりました. 素人目には序盤から5段目に角が出てくる激しい将棋となりましたが, ponkotsuの玉頭の攻めがうまく刺さってくれたおかげで勝つことができました.
棋譜はこちら
昼休憩
3回戦終わってここで昼食休憩となりました. 昼食は会場にいた開発者の方々と川崎家に行きました. 川崎家は将棋ファンの間では永瀬王座のご実家として有名です. 現地参加できることが決まってからずっと行きたいと思っていたので行くことができて嬉しかったです. ラーメンは豚骨ベースでとてもおいしかったです.
初めてきた (@ 川崎家 榎町店 in 川崎市, 神奈川県) https://t.co/VyLhjJ5uLT pic.twitter.com/2NLK4OmQMW
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
4回戦(対Easy Shogi)
後手番の将棋で飛車を振ってくれるか不安でしたが2手目5四歩に続いて4手目に5二飛と振ってくれ, なんと中飛車の将棋になりました. いままでponkotsuくんが中飛車に振ってくれたことがなかったので驚きでした.
中飛車を指した!!!!!!
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
この将棋は詰まし切ることができ, 昨年の成績を超える3勝目を挙げることができました. Easy Shogiには昨年も勝っていたのですが, そのときは連続王手の千日手をかけられての反則勝ちというなんとも言えない結果だったので詰まし切ることができてよかったです.
棋譜はこちら
5回戦(対prelude)
ここまで3勝1敗という成績だったのでそろそろ上位勢と当たる気がしていたところに上位勢と当たることになりました.
そろそろ負けがこみ始めると思います #wcsc32
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
preludeはプロ棋士の谷合四段が開発されているソフトで, 初戦にAobaZero*3に勝っていました. そのため, 対局がつくとわかったときにはボコボコにされると覚悟しました.
5回戦はprelude戦です!!
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
タコ殴りにされる気がする #wcsc32
将棋の方は先手番で, 相向かい飛車というソフト同士の対局にしては珍しい戦型になりました. 自陣に角の打ち込む隙があるにも関わらず29手目で角道を開けて角交換を仕掛けに行くなど疑問手や細かいミスが相次ぎ, 見事に詰まされました. 谷合四段も会場にいらっしゃっていて, 対局を見ながら隣で解説していただいて貴重な時間でした.
棋譜はこちら
6回戦(対Argo)
またまた強いソフトと当たることになりました… 今度は後手番の将棋で, こちらの四間飛車銀冠に対して先手の居飛車穴熊になりました. こちらは評価値的にはじわじわと差を広げられて負けました.
棋譜はこちら
7回戦(対なのは)
ここら辺で欲が出てきて指し分けに持っていきたいと考えていたところまた強いソフトと当たることになりました… 先手番の将棋で, こちらが三間飛車となる対抗形になりました. よくわかってはいないのですが, 序盤の方でなのはの定跡にない展開になったのか時間を使わせる展開になってワンチャンスあるのではと思ったのですが, 無事詰まされました…
カツ丼さん「ponkotsuさん次どこ?」
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
わい「なのはです」
カツ丼さん「あー、ご愁傷様」#wcsc32
棋譜はこちら
8回戦(対wizodds 2022)
いよいよ指し分けまで後がなくなり, ただひたすらお祈りしてました. 後手番の将棋となり, こちらの四間飛車の急戦っぽい対抗形となりました. 序盤から角を交換し合う激しい展開な上にponkotsuがなぜか飛車先の歩を突こうとしない謎挙動がありヒヤヒヤしていましたが, 40手目で桂を丸得することができ, 見事勝つことができました. これで4勝4敗と指し分けることができました!
最終戦勝ってなんと指分けました!!!!!!#wcsc32 https://t.co/XKAylaBj1p
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
棋譜はこちら
課題
今回の大会に参加して次のような課題が見つかりました.
いずれも決定的な解決策が見えていないのでおいおい解決していきたいです.
今後の展望
ponkotsuくんでやってみたいこと
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月6日
・高NPSを手に入れる
・HNW以外の振り飛車ソフトの棋譜で学習する
・DL将棋本の付属データを利用する
・floodgateに放流する
・ラズパイで動かす
感想
昨年と比較してかなり強くなり, 研究室で先生に指してもらったときにも勝つことができたため去年の成績を超えられそうな気はしていました. それが結果的には指し分けという結果になり, 非常に嬉しかったです. しかし, 一方で上位陣に対してはまだまだ勝つことができず, 4勝と5勝の間には大きな壁があることがわかりました. 今大会を通じて多くの課題が見えたため, これらを修正して7月に開催されるTSEC*4に備えたいと思います(なお研究の進捗…)
あるある
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
大会後が1番モチベーション高い#wcsc32
ちなみに8回戦終了後先生からお祝いのメッセージをもらった上に褒められが発生して気分が良かったです.
研究室の先生から4勝おめってきた!
— JJ1GUJ@WCSC32一次予選19位 (@jj1guj) 2022年5月3日
最終戦の勝ち方見事だったってほめられた!!!!!!!!#wcsc32
最後に
初めて現地参加してみて思ったのですが, 若い人が少なかったです... 現地参加した人が少なかったのもあると思うのですが現地勢だとぼくが1番年下で, オンライン参加含めても多分ぼくより年下の人が2人だけというような状態でした.
ここ数年で将棋ソフトの作り方を詳細に解説した本が出版されていたり強い将棋ソフトのコードやそのソフトが使用した大量の質の良い教師データがオープンソースで公開されていたりと新規勢が参入しやすい土壌が急激に整ってきています. また, 将棋ソフトを作成して大会に出たことを就活時にESに書いたり面接で話したりすると仮に大会での成績が芳しくなかったとしてもものすごく受けがいいです. 個人的には将棋ソフト開発は競プロより就活の役に立つと思います.*5 まだ将棋ソフトを開発していないそこのあなた!これを読んでぜひ開発して大会に出場しましょう!!!