TadaoYamaokaの開発日記

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

世界コンピュータ将棋オンライン大会 結果報告

昨日、本日、世界コンピュータ将棋オンライン大会が開催されました。
dlshogiはシードのため2日目からの参加でした。

結果は、4勝4敗で、2日目に進んだ28チームの内13位でした。
floodgateでのテストからR4000くらいと見積もっていたので、順当な結果だと思います。

本番では、Tesla V100 8GPUを使用しました。
諸事情によりLinux上のDockerで動かしていたので、dlshogiライブラリを使用していたGCTがWindows Serverで4GPUで動かして同じくらいのNPSになっていたことから、8GPUの性能を発揮しきれていなかったかもしれません。

dlshogiの実行ファイルとモデルファイルは、後日公開する予定です。

対局振り返り

1局目 koron vs dlshogi

koronはやねうら王ライブラリ使用のソフトです。
結果は、149手でdlshogiの勝ち
f:id:TadaoYamaoka:20200504224047p:plain

評価値は、ずっとdlshogi側に優勢でした。
126手で、一瞬評価値0付近になりました。
バグっぽいので原因を調べる予定です。

2局目 dlshogi vs elmo

151手 elmoの勝ち
f:id:TadaoYamaoka:20200504224352p:plain

102手までは互角でした。
103手目から徐々に悪くなって負けました。

3局目 dlshogi vs スーパーうさぴょん2X

151手 dlshogiの勝ち
f:id:TadaoYamaoka:20200504224736p:plain

41手目からdlshogi側に優勢になって、そのまま勝ちました。

4局目 dlshogi vs NineDayFever

95手 NineDayFeverの勝ち
f:id:TadaoYamaoka:20200504225035p:plain

69手目で、優勢と判断しましたが、これが悪手だったようです。
ログからこのとき50万ノードしか読めておらず、ハッシュ再利用の処理に13秒費やしていたことがわかりました。
ハッシュ再利用の処理が遅いのが、今のdlshogiが急に劣勢になる原因になっているかもしれません。
※ 2020/5/5追記 69手目はすでに詰みだったようです。その前の評価が間違っていたようです。

5局目 AobaZero vs dlshogi

DL同士の対決は、149手でdlshogiの勝ちでした。
f:id:TadaoYamaoka:20200504225557p:plain

84手で一瞬30000点になりましたが、これはAobaZeroが駒損して優越局面になったからだと思います。あとで調べる予定です。

6局面 dlshogi vs HoneyWaffle

HoneyWaffleは、振り飛車で知られるソフトですが、この対局でも振り飛車でした。
結果は、252手でdlshogiの勝ち
f:id:TadaoYamaoka:20200504225823p:plain

序盤でdlshogiは振り飛車を不利と判断していましたが、互角に持ち込まれました。
51手目からはdlshogi側に優勢になって勝ち切りました。
dlshogiは、ハッシュ再利用に5秒以上かかる問題があったので、時間切れ負けを心配していましたが、なんとか間に合いました。

7局目 dlshogi vs Qhapaq from Neo-Saitama

dlshogiライブラリを使用すると宣言していたQhapaqチームは、結局やねうら王ライブラリを使用しての参加でした。
結果は、167手 Qhapaq from Neo-Saitamaの勝ち
f:id:TadaoYamaoka:20200504230412p:plain

101手までは互角でしたが、そこから徐々に悪くなって負けました。

8局目 名人コブラ vs dlshogi

138手 名人コブラの勝ち
f:id:TadaoYamaoka:20200504230506p:plain

102手までは互角でしたが、一気に悪くなって負けました。
この対局でも、この時47万ノードしか読めておらず、ハッシュ再利用に時間がかかったことが悪手の原因になっていないか調査する予定です。

まとめ

やねうら王ライブラリのkoronとHoneyWaffleに勝てたことから、ディープラーニング+MCTSのソフトがαβ探索のソフトに追いついてきたことが示せたと思います。
同じくディープラーニングを使用しているAobaZeroに勝てたので、現時点でDL勢ではトップになれたのも良かったです。

今回、去年より強くできたのは、探索と学習にLeela Chess Zeroの方法を取り入れたのと、リーグ戦で強化学習を行ったこと、1ヵ月前にTensorRTに対応したことが、主な要因だと思います。

まだ、決勝進出レベルには足りていないので、今後も改良を続けていくつもりです。
特に、ハッシュ再利用の処理が遅いのは直したいと思っています。
普段はPonderなしの1手3秒の対局がメインで、たまに行うfloodgateのテストでもログを確認していなかったので、問題があると認識したのが直前だったので直す時間がありませんでした。
ログをとって処理時間のボトルネックをちゃんと確認するのが大事だと思いました。