見出し画像

NNUE無償公開評価関数 最強を目指す②

とても暑い日が多くなってきましたね。
春先にエアコンが壊れ、放置したまま夏が来ました(汗)
修理にいくらかかるのかが怖かったので、スポットエアコン購入で夏を乗り切ろうとしています・・・弱運転で22~24℃くらいまでは下がるので
まぁなんとかなる感じです。
通常のルームエアコンよりはギンギンには冷えないです。
あとは音が少しうるさいので寝室には向かない気がします。
将棋AIの学習でワット消費するので、スポットエアコンはなるべく消費電力の低いものを選びました(部屋の広さで選んでいないw)

さて今回は , NNUE無償公開評価関数 最強を目指す「その2」です。
今回も過去に作成した(強そうな)評価関数を計測しました。
HaoとLiに対してある程度の対局数をこなしました。
この評価関数は2024年の4月末頃に作成していたものです。
過去、HaoやLiとは計測しておりませんでした。

学習ログ

計測の前に学習ログの一部を載せておきます。
もしかしたらNNUEの学習に興味はあるけど、まだやったことない方の参考になるかも?しれないので。
パッチコマンドは一例であり、私自身いまだに何が最適なのかわかっておりません。毎回同じではなくて、色々数値を変えながら学習させることで、稀に強い評価関数ができます。

♯教師をシャッフルする
C:\Users\Renzo\ShogiAI_Renzo\NNUElearn_X670E-GPW_R9-7950X3D>YaneuraOu7.63_NNUE-evallearn-avx2.exe learn shuffle targetdir sfens

♯学習
C:\Users\Renzo\ShogiAI_Renzo\NNUElearn_X670E-GPW_R9-7950X3D>YaneuraOu7.63_NNUE-evallearn-avx2.exe threads 16 , evaldir eval , evalsavedir new_eval , fv_scale 20 , learn loop 666 batchsize 100000 mirror_percentage 0 validation_set_file_name BB_validation-v6_D13_sfens.bin eta 0.02 eta2 0.01 eta1_epoch 1970 eta3 0.01 eta2_epoch 777 nn_batch_size 200000 eval_limit 9999 lambda 0.5 lambda2 0.5 lambda_limit 9999 eval_save_interval 10000000 shuffled_sfen.bin

Options[Threads] = 16
Options[EvalDir] = eval
Options[EvalSaveDir] = new_eval
Options[FV_SCALE] = 20
learn command , learn from shuffled_sfen.bin ,
validation set : BB_validation-v6_D13_sfens.bin
base dir :
target dir :
loop : 666
eval_limit : 9999
save_only_once : false
no_shuffle : false
Loss Function : ELMO_METHOD(WCSC27)
mini-batch size : 100000
nn_batch_size : 200000
nn_options :
learning rate : 0.02 , 0.01 , 0.01
eta_epoch : 1970 , 777
scheduling : default
discount rate : 0
reduction_gameply : 1
LAMBDA : 0.5
LAMBDA2 : 0.5
LAMBDA_LIMIT : 9999
mirror_percentage : 0
eval_save_interval : 10000000 sfens
loss_output_interval: 100000 sfens
init..
info string Hash table allocation: Windows Large Pages used.
info string EvalDirectory = C:\Users\Renzo\ShogiAI_Renzo\NNUElearn_X670E-GPW_R9-7950X3D/eval
info string loading eval file : eval/nn.bin
info string read book file : book/standard_book.db
info string Error! : can't read file : book/standard_book.db
init_training..
Initializing NN training for Features=HalfKP(Friend)[125388->256x2],Network=AffineTransform1<-32
init done.
open filename = shuffled_sfen.bin
info string read book file : book/standard_book.db
info string Error! : can't read file : book/standard_book.db

PROGRESS: Tue Apr 30 16:48:27 2024, 100003 sfens, iteration 1, eta = 0.02, hirate eval = 64 , test_cross_entropy_eval = 0.651375 , test_cross_entropy_win = 0.592864 , test_entropy_eval = 0.554438 , test_entropy_win = -9.99999e-07 , test_cross_entropy = 0.62212 , test_entropy = 0.435217 , norm = 1.19835e+07 , move accuracy = 39.8% , learn_cross_entropy_eval = 0.635375 , learn_cross_entropy_win = 0.599443 , learn_entropy_eval = 0.568294 , learn_entropy_win = -9.99999e-07 , learn_cross_entropy = 0.617409 , learn_entropy = 0.456798
INFO: observed 0 (out of 132219) features
INFO: (min, max) of pre-activations = 3.40282e+38, -3.40282e+38 (limit = 258.008)
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38
PROGRESS: Tue Apr 30 16:48:29 2024, 200002 sfens, iteration 2, eta = 0.0199949, hirate eval = 64 , test_cross_entropy_eval = 0.651124 , test_cross_entropy_win = 0.592692 , test_entropy_eval = 0.554438 , test_entropy_win = -9.99999e-07 , test_cross_entropy = 0.621908 , test_entropy = 0.435217 , norm = 1.19568e+07 , move accuracy = 39.87% , learn_cross_entropy_eval = 0.636033 , learn_cross_entropy_win = 0.60169 , learn_entropy_eval = 0.568404 , learn_entropy_win = -9.99999e-07 , learn_cross_entropy = 0.618861 , learn_entropy = 0.457139
INFO: observed 88444 (out of 132219) features
INFO: (min, max) of pre-activations = -10.6378, 6.8189 (limit = 258.008)
INFO: largest min activation = 0, smallest max activation = 1
INFO: largest min activation = 0, smallest max activation = 0.0258367
INFO: largest min activation = 0, smallest max activation = 0.541542
PROGRESS: Tue Apr 30 16:48:30 2024, 300008 sfens, iteration 3, eta = 0.0199898, hirate eval = 64 , test_cross_entropy_eval = 0.650706 , test_cross_entropy_win = 0.593023 , test_entropy_eval = 0.554438 , test_entropy_win = -9.99999e-07 , test_cross_entropy = 0.621865 , test_entropy = 0.435217 , norm = 1.19766e+07 , move accuracy = 39.8233% , learn_cross_entropy_eval = 0.636136 , learn_cross_entropy_win = 0.59898 , learn_entropy_eval = 0.568582 , learn_entropy_win = -9.99999e-07 , learn_cross_entropy = 0.617558 , learn_entropy = 0.457007
INFO: observed 88444 (out of 132219) features
INFO: (min, max) of pre-activations = -10.6378, 6.8189 (limit = 258.008)
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38
INFO: largest min activation = 3.40282e+38, smallest max activation = -3.40282e+38   以下割愛

計測

今回のNNUE評価関数は標準NNUEといわれる halfkp256x2-32-32です。

計測PC Ryzen9-7950X3D  / 4t2s(4スレッド2秒)
fvscale 20/20(それぞれのソフトの適正値)
vs Hao
IXO-044_YO_V8.30DEV vs hao(tanuki-20230508)_YO_V8.30DEV
互角局面集① 152-23-125 (54.87%)
互角局面集② 151-24-125 (54.71%)
平手 200-33-167 (54.49%)
----------------------------------------
合計 1000gams 503-81-417 (54.67%) R+32.5

計測PC Ryzen9-7950X3D  / 4t2s(4スレッド2秒)
fvscale 20/20(それぞれのソフトの適正値)
 vs Li
IXO-044_YO_V8.30DEV vs Li-(tanuki-wcsc33)_YO_v8.30dev
互角局面集① 197-24-179 (52.39%)
互角局面集② 179-34-187 (48.90%)
互角局面集③ 99-12-89 (52.65%)
---------------------------------------
合計 1000gams 475-70-455 (51.07%) R+7

Haoに対しては強かったですし、Liにも互角でした。
この評価関数を公開したいと思います。

BBnnue20240430

・推奨FV_SCALEは 20 です。

・やねうら王ベースのソフトですので
探索エンジン最新版や、
インストール方法は本家様のサイトを参照してください。
また探索エンジンはdev(開発版)をお勧めします。
devバージョンが強いです。

標準NNUEに関しては教師改善次第でもう少し強くできるのでは??と感じています。今回の評価関数よりもう少し強いものができたら、
また公開するかもしれません。


この記事が気に入ったらサポートをしてみませんか?