第26回世界コンピュータ将棋選手権に行ってきた。

第26回世界コンピュータ将棋選手権が終わった。

なんだかめっちゃ楽しかった。
ちょっと楽し過ぎてびっくりした。


・選手権までの開発
開発続けるのしんどくて映画(TSUTAYAで借りたDVD or Blu-ray)ばかり観ていた。
20本以上観た。友情や家族愛がテーマの映画が好き。
だらだら何とか開発する中で、探索をちまちま書き換えて強くした。
評価関数は色々変えてみて実験した。
金と成金を区別して学習したり、
nozomi風に同じ方向に移動出来る駒でまとめて学習してみたり、
floodgateの棋譜を大量に使ってみたり。
でもそれらで強くはならなくて、結局L2正則化に変えて追加学習して52%程度勝てる微妙な出来のものしか出来なかった。
これなら探索だけをやってた方が効率良かったな。まあでも仕方ない。
もう3駒関係の次元下げだけでは限界に近いって気持ちになれたのが成果だ。


クジラちゃんのスレーブがめっちゃ強い事を選手権直前に知った。
Stockfish7ベースにAperyを書き換えたものらしく、
結果としてはその方針の方が早く成果を出せたか。
僕は一つ一つどの変更がどれだけ強くなるか検証しながら、強くならないものは取り入れないようにして変更してた。
やる気の問題もあって、選手権までに counter_move を入れる事が出来なかったし、まあ探索性能で負けても仕方ないか。
クジラちゃんのスレーブが探索だけで7割以上勝てるようにしてるとは思ってなかった。すごい。伸び代の存在を知る事が出来て有り難い。


一次予選の日の朝にやっとリモートマシンでAperyが動くようになった。
やってみればssh呼び出すプログラム書くだけだったので3行程度で済んだ。


合議は決勝までに作ろうと思ってたけど面倒なのとやる気がないのと眠いのとで出来なかった。
結局 AWS c4.8xlarge の 18コアマシン1台で戦う事になった。
これでも1600万〜2800万NPSくらいは出るから結構強くなったはず。Core i7 にはマシン性能差だけで7割以上は勝てるはず。


・選手権前日
選手権前日は普通にお仕事に行った。まだリモートマシンを使って対局する仕組みは準備出来てなかったが、まあ調べれば何とかなると思った。
Twitterで楽しそうな選手権準備の様子が見られた。


・一次予選
会場に行くのが楽しみだった。
今回はなんか戦いよりも、久しぶりに皆さんにお会い出来る事の方が楽しみだった。
Aperyはシードだから関係ないけど、Aperyなどのライブラリを利用したソフトが多く、
非常に厳しい一次予選だった。nozomiが一次予選敗退するとは。
nozimiも電王トーナメントバージョンに8割勝つらしいから、運とマシンパワーが足りなかった感じだ。


帰りに一緒にいるみんなでご飯に行った。こういうのも開催地によってはやりにくくて、
川崎の会場はとても良いと思った。


・二次予選
Aperyもここで敗退は十分あると思った。
結局学習用途に借りてたAWSのスポットインスタンスをそのまま使った。
価格は変動制で、入札しておく仕組みなのだが、いきなりシャットダウンされないように大会では入札価格を非常に高くしておくか、
そもそもスポットインスタンスを使わないようにする事で安定稼働させるのが望ましい。
また、応答性を高める為に出来るだけ東京に近い位置にあるマシンを借りるのがなお良い。
僕は設定を変えるのが面倒だったのと、アメリカのサーバーでもそれなりに応答速度も保てていたのと、かなり価格が安定していた事もあり、
上限0.8ドルなんていう安過ぎる価格で入札したままで本番を迎えた。
実際の価格は0.3ドル付近で推移していた。
意識が低過ぎたので次回以降はきちんとしたい。


AWAKEに3年振りに勝てた。AWAKEは二次予選落ちしてしまったが、AWAKEも半年前のAperyに7割程度勝てるらしく、十分強い存在だった。
ただLazy SMPを実装していないらしく、ハードウェア面でもXeon勢に劣っていたのが厳しかったのかなと思った。


NDFに負けた。壁銀の評価がAperyは上手く出来てない感じ。
NDFは結構今年開発サボってたので勝ち進むのしんどいって話だった。
サボると如実に結果に表れてくるから厳しい世界だよね。


大将軍と戦った時は謎の飛車バサミにあってあっけなく不利になって負けた。
評価関数の精度上げたいな。大将軍には負けた事無かったのにな〜。
大将軍はお高いマシンを選手権に合わせて購入したらしく、マシン性能で負けていたが、
どれくらいマシン性能差はレーティングに表れるのだろう。Xeon18コア(Apery)とXeon24コア(大将軍)。


技巧はLazySMPは実装しているがそれ以外ではレーティング10点しか伸びて無くて、クラスタの伸びがほとんどみたい。
意外と単体の差は小さいのかも。
技巧とPonanzaには負けても悔しいとすら思わなくなっている。
それはそれで選手権では人と会うのが楽しみだったし、そういう楽しみ方もありかも知れないけれど、
もう一度やる気出して追い付き追い越さないとなあ。


激指が強化学習になっているらしく、棋風が全く異なるとの事だったが、
対局してないし、確認していない。あまりお話できていないが、Aperyがライブラリでキツいというような事を鶴岡さんに言われた。


GPS将棋は現在ほとんど森脇さんだけで開発しているらしい。
GPSは選手権でAWAKEに相性が良い。偶然なんだろうけど。


YSSはアピール文書からは3駒関係をついに使った感じに思えたけれど、詳しく聞く事が出来なかった。
決勝にはYSSも激指もGPSも残らなかった。大きく顔ぶれが変わった。
Aperyは運良く決勝には残れた。本当に運の要素が大きい。


技巧がPonanzaを破って、明日の決勝が非常に楽しみという感じだった。


この日も駅前で一緒に帰った皆でご飯に行った。


・決勝
クジラちゃんに勝てた。Aperyの方が単体では弱いはずだけれど、クラスタ性能的にあんまり不利にはなってないのかも知れない。
クジラちゃんは浅い探索してオーダリングしてから良いマシンに良さそうな手を優先させて読ませると良いと思った。
ponderも無いようだし。


技巧は半年前の反省から、Aperyみたいに定跡に点数をつけて一定以下の点数の定跡は使わないようにしたらしい。
その点数を付ける為に30手読みしているらしく、すさまじいと思った。
Aperyなんてそういう枠組みだけはあるのに今の定跡には面倒で点数付けてないから、意識の違いを思い知らされる。
その代わりAperyはワンサイドゲームから定跡作ってるから相対的にマシなんだけど。


何と保木さんが現れた。
少し話せた。昨日の結果とかは全く知らなかったようで、
山下さんや鶴岡さんなどいなくて、昨日だったら棚瀬さんも来てたという事を伝えたら、
昨日来たら良かったとおっしゃっていた。


NDFに初めて勝てた。おそらく今回が一番レーティングが離れていなかったと思うから、何とか初めて勝てて良い思い出になった。


最終局の相手は大将軍。この将棋は非常に難解で、どうやってAperyが攻めるのかと見守っていた。
攻め合いになった時は玉形からApery優勢になったかと思ったが、勝てなかった。
終盤で大将軍が一気に大将軍有利と評価を出した時に、Aperyはどう評価しているか、Aperyのブースにいる人に聞いた時に
千田さんがハンドサインで✕印を作って伝えて下さったのがとても面白かった。めっちゃ分かりやすかった。
今回の大将軍は強かった。


Ponanza対技巧の優勝決定戦となる最終局、それまで全勝の技巧が乱戦でポッキリ折れた。
何だかWCSC22のGPS対Ponanzaの対局を思い出した。
Ponanzaは強かった。15年ぶりの連覇。おめでとう。


技巧の出村さん、オープンソース化を前向きに検討との事。素晴らしい。
これからどんどんコンピュータ将棋が発展していきそう!


千田さんと保木さんを囲む会が川崎駅前で開かれて、とても楽しかった。
幹事をnozomiの大森さんがやってくれて大変感謝。


(まだ適当に修正・追記するかもだけど一旦アップロード)