囲碁ソフトの、マシンリソース(思考時間)を増やした時の棋力の変化について
AlphaGoの論文が出た直後、コンピュータ将棋で有名な伊藤さんが以下のような記事を書いていました。
http://aleag.cocolog-nifty.com/blog/2016/01/alphago-21ae.html
コメントでのやり取りで、「クラスタ性能が飽和するというのは(素人考えですが)ちょっと信じがたいのですが… MCTSの性質上、たくさん読むほど強くなるのは自明な気がするんですが、違うのかな?」という発言を頂いていたので、空いたマシンを使ってテストしてみました。
・Linux 4コアサーバーでテスト。
・Pachi11.0とLeela0.11.0でテスト。(PachiはDeep Learningを使用しないMCTSフリーソフトの代表格。Leela0.11.0(LeelaZeroではない)はAlphaGoの最初の論文に基づいて作られたソフト。) Leela0.11.0はGPUを使用しない(CPUでDeep Learningを動かす)バージョンを使用。
・Pachiの一局あたりの思考時間を1200秒→2400秒→4800秒→9600秒と増やし、Leelaに対する勝率とレート差を調べる。(並列化でnスレッド使った時の性能は、基本的に思考時間をn倍した時より良くなることはない。) Leelaは一手250プレイアウト。これらの数値は、PachiとLeelaのレート差を計れるように、Pachiが全敗しないように経験から決めた。
・gogui-twogtpを使って自動対局。gogui-twogtpのオプションで、4対局同時進行。手番は一局ごとに入れ替わる(結果の表示は最初の手番に合わせて出る)。
・PachiとLeelaは1コアのみ使用し、PonderingはOff。
なお、AlphaGoそのものが使えないのは当然ですが、ZenやCrazyStoneなどもLinux版が手に入らないので、PachiとLeelaでテストしました。
結果は以下の通りです。
レート差の変遷をグラフにしたのが↓です。横軸が実際の消費時間、縦軸がレート差です。