やねうら王 NNUE型評価関数ビルド V4.82公開しました

『将棋神やねうら王』のマスターアップが近くて死にそうです(´ω`)
発売日は延びたものの、お盆を挟むので、マスターアップの日はあまり延びてません。

NNUEというのはWCSC28でtanuki-チームが使用していたニューラルネットワークを用いた新しいタイプの評価関数です。

このNNUE型評価関数用のやねうら王の実行ファイル用意してなかったので用意しました。

やねうら王のGitHubのreleasesのところからダウンロード出来ます。

Ryzen環境やAVX2以外のCPU、no sse環境など、うまく動いているか自信ないです。動かなければコメント欄でコメントをお願いします。

やねうら王 NNUE型評価関数ビルド V4.82公開しました” への23件のコメント

    • ソースコード、追いかけてないのでわかりません…。とりま書き出してみて、ゼロクリアされているかバイナリエディタ等で見てみればいかがかと…。

  1. バグ?の報告です。
    学習をさせようと思い、コマンドを入れたのですが、
    20分後にはコマンドプロンプトが消えていて、学習もされていません。
    コマンド
    YaneuraOu-2018-Otafuku-learn-NNUE.exe threads 4 , hash 1024 , evaldir eval , evalsavedir new_eval , evalshare false , learn save_only_once batchsize 300000 eta 0.1 lambda 1.0 eval_save_interval 500000000 loss_output_interval 1000000 mirror_percentage 50 nn_batch_size 10000 eval_limit 32000 targetdir 教師データ , quit

          • 原因かどうか分かりませんが、本来、容量は3000000kbと表示されるはずなのに、3000000としか表示されていませんでした。
            何か関係はあるのでしょうか。

  2. 4.82_NNUEとorqhaを組み合わせてGCEで検討していたのですが、最近たまにはゴージャスに検討してやろうと96コアにしてメモリも64GBくらいに設定しました。
    しかし初期化エラーが出て起動できませんでした。

    徐々にメモリを減らしていったところ40GB位だと起動できて、そこら辺に壁があるみたいでした。コア数を変動しても同じく40GBくらいまでしか起動できませんでした。
    4.82_KPPTだとメモリ64GBでも起動できたのでNNUE版の問題だと思うのですが、何が原因なのでしょうか?

      • gceではubuntu 16.04でソースファイルをダウンロードしてmakeしてから、puttyを通してリモートで自宅のPCで検討しています。
        リモートだとラグが大きすぎてある程度以上メモリの読み込みに時間がかかるとはねられるのでしょうか?

        • PuTTYのKeep Aliveの設定で一定秒数の通信がないときに自動切断するようになっているだとか、ブロードバンドルーターのKeep Aliveの設定が短い秒数になっているだとか?

          • PuTTYやルータのKeep Aliveを設定しようがしまいがあまり読み込めるHASHの数は変動しないです・・・
            今のところあまり検討で影響が出ていないっぽいので気にはならないですが、数時間検討してるときは影響出てきますよね?

          • > 数時間検討してるときは影響出てきますよね?

            出ると思います。何らかのKeep Aliveが絡んでいるとして、3分ぐらい放置して切断されないか見てみては?

    • 教師データが破損しているのでは…。教師生成中に途中で停止させて破損しているのであれば、末尾を(局面データ1個分の整数倍になるように)少し削るだとか。

        • すみません。今更なんですが、局面データ1個分の整数倍になる削り方を教えていただけませんか?

          • プログラムが書けるのでしたら普通にfopen()して40バイトずつ読み込んでいけばいいだけかと…。
            プログラムを書かずにツールを使うのでしたらバイナリエディタなどで40の倍数になるところ以降、トリミングして書き出すなど。
            やねうら王を用いるのであればshuffleコマンドは40バイトずつ読み込んでいき、足りなかった場合はその分は無視して次のファイルの処理にいくので、何も考えずにshuffleコマンドを使えば自然と端数分は無視されます。

  3. ソースコードで、make evallearnとすると
    make[1]: ディレクトリ C:/Users/???/Downloads/YaneuraOu-4.83/YaneuraOu-4.83/source' に入ります
    '[' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    コマンドの構文が誤っています。
    make[1]: *** [../obj/shogi.o] エラー 1
    make[1]: ディレクトリ
    C:/Users/???/Downloads/YaneuraOu-4.83/YaneuraOu-4.83/source’ から出ます
    make: *** [evallearn] エラー 2
    となってしまいます。
    どうすればよいですか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です