大会が終わると始まる、毎度のこと
世界コンピュータ将棋選手権(今年はオンライン大会でした)が終わると、開発者の方が続々と成果を公開するのが毎度の恒例です。
優勝した水匠をはじめ、うち以外はみんな公開しているみたいです。ww
大会当日、tanuki-さんのところのYoutubeにお邪魔して、開発者の皆さんとワイワイガヤガヤやってたのですが、そこでの会話中、私が「Kristallweizen改V0.4は、Kristallweizenと水匠改のキメラだよ」と話を振ったところ、QhapaqさんやFlukeさんから「NNUEもKPPTと同じく線形マージできることはわかっていた」とのお話がありました。
うん、データ構造を眺めていれば普通に気がつくことです。
で、線形マージすることができるのはわかるのですが、マージする評価関数がイマイチだと、強くなりません。^^;
私が改V0.4を作った当時、マージして効果を得られそうな評価関数は水匠改かillqha4ぐらいでした。で、何となく水匠改とマージしてみたのが改V0.4だったわけです。
線形マージと言っても単純に全部マージしたわけではなく、ちょこっと工夫はしてあります。
マージ先(この場合はKristallweizen)のバイアス、ウェイトがゼロだった場合、未学習であった可能性が高いので、無条件にマージ元(この場合は水匠改)の同じ位置の値を取り込むようにしていました。
これだけのことで、あそこまでのパフォーマンスを発揮してくれるんです。^^
で、このことがあったので、水匠2の公開を今か今かと待っていました。取り込むには一番いいですからね!(o^-')b
そんなこんなで評価関数が出来上がりましたので(作成時間20秒w)、公開します。
軽くしかテストしてませんが、なかなかイケてると思います。リソースが潤沢にある方に検証していただけたら幸いです。
以下にWindowsの実行バイナリ、評価関数、tttakさんが公開している、いろいろ評価関数にyunyun0419さんのmブランチを取り込んだものを人造棋士18号用にさらに取り込んだもののソースファイルを一式にして置いておきます。
https://github.com/Tama4649/etc/tree/master/JKishi18gou_m
Windows実行バイナリは、msys2でclang++でビルドしているので、Visual Studioやgccでビルドしたものよりは高速に動くと思います。
Shogi GUI等で動かす際は、ZIP解凍して出来たフォルダを適当なところに置き、その配下のJKishi18gou_m_avx2.exeか、JKishi18gou_m_sse42.exeを実行すれば動くと思います。
engine_option.txtには、4スレ4GB+evalHash1GBという環境を想定した初期値が入っています。このあたりは環境に合わせててきとーに修正してみてください。
2020/5/12 追記
オモチャの評価関数ですが、主従関係を反対にしたバージョンも併せて置いておきます。
こちらは水匠2にKristallweizenを取り込んだ形になっています。
eval200512.zipというのがそうです。
この記事が気に入ったらサポートをしてみませんか?