NNUE評価関数がStockfishに移植されたので、それについて情報をまとめておきます。
本記事は、日本語と英語でお送り致します。
※ 英語版はDeepL翻訳を使って訳したものを修正したものです。
This article is provided in Japanese and English.
The English version is translated using DeepL translation.
NNUE評価関数がStockfishに移植されたので、それについて情報をまとめておきます。
本記事は、日本語と英語でお送り致します。
※ 英語版はDeepL翻訳を使って訳したものを修正したものです。
This article is provided in Japanese and English.
The English version is translated using DeepL translation.
WCSC30(第30回 世界コンピュータ将棋選手権)がコロナのために中止となり、代わりにWCSO1(世界コンピュータ将棋オンライン大会)が有志によって開催された。そこで優勝したのは水匠であったが、この水匠の思考エンジンは、探索部やねうら王、mブランチであった。mブランチとは何なのか。mブランチは何故強いのかについて軽く書いてみたい。
続きを読むやねうら王を始めとする従来型の将棋ソフトはチェスのソフトであるStockfishの探索部を参考にしているのに、Stockfishに何ら貢献していないという趣旨のことを先日記事に書きました。
将棋ソフトの世界では、Deep Learning勢はまだ上位のソフトに追いついていないようですが(WCSC29の決勝にDeep Learning勢は残れていなかった)、チェスのソフトの世界では、この勢力図がいままさに変わろうとしています。
だいたいにおいて、やねうら王ほどメジャーな将棋ソフトの探索部に大きなバグを埋め込むことは常識的に考えると不可能である。多くの人が改良に参加している&参考にしているので、誰かの目に止まるはずではある。ところが、公開後、数年も誰も気づかなかったbugがつい先日見つかった。Aperyの平岡さんが、AperyをRustで書き直している時にRustのコンパイラが警告を出したので気づいたと言うのだ。(WCSC29の会場で平岡さんから直接教えてもらった。)
2016年に互角局面集というのを本ブログで公開した。従来、強くなったかの計測は将棋所を用いて定跡なしで自己対局させていた。しかしそれだと同じ進行・同じ戦型に偏るため何らかの互角に近い局面を用意する必要があった。
将棋ソフト『PAL』の山口さんからWCSC28のときに、やねうら王およびStockfishのLazy SMPの部分のコードだと、コア数が増えてきた時に同じdepthを探索しているスレッドが増えすぎて良くないのではないかという指摘があった。
いまどきの将棋ソフトを使っていると、「HASH 50%」などと表示されている。これはHASH利用率と呼ばれる。この数字が大きくなってくると探索の効率が悪くなる。要するに潤沢にメモリがある場合に比べると弱くなる。これは、どれくらいの値までであるなら適切なのか?HASH利用率が99%にならない限りHASHには余裕があるものなのか?HASHはどういう仕組みになっているのか?HASH利用率が50%の状況で、ハッシュ衝突はしているのか?など、わりとソフトを長年使っていても知らない人が多いのでここに原理から詳しく説明した決定版的な記事を書く。
ONE_PLYというのは、1手を表す値のことです。固定小数になっていて、1手(ONE_PLY) = 64だと、0.5手を意味する値は 32 となります。