2022年版 やねうら王質問スレッド

やねうら王に関するあらゆる質問はこの記事のコメント欄にお願いします。
ふかうら王の件もこの記事のコメント欄でお願いします。

質問内容は、然るべき場所(主にやねうら王Wiki)に転載させていただいたあと、そこで回答し、ここの質問投稿自体は1ヶ月程度で削除していきます。

また、質問前に下記のWikiをご覧ください。ほとんどすべての情報は、このWikiに書いてあります。

やねうら王Wiki : https://github.com/yaneurao/YaneuraOu/wiki

2022年版 やねうら王質問スレッド」への41件のフィードバック

  1. ふかうら王のインストール手順にTensorRTとCuDNNのバージョンが提示されています。
    TensorRT : 8.2.4.2
    CuDNN : 8.4.0.27

    正しくは、下記ではないでしょうか?
    TensorRT : 8.4.0.6
    CuDNN : 8.2.4.15

    • そこ、まだ新しいバージョンで動作確認とれてないんです。
      何かの節目節目に新しいバージョンで動作確認して、Visual Studioの.propファイル更新していきます。
      (あまり頻繁に書き換えても開発している人がTensorRTのバージョン変更するの面倒だと思うのでメジャーバージョンアップの時とかに更新していきます)

  2. 「やねうら王のインストール手順」 のページにある「定跡ファイルのダウンロード先」の項目に、「 評価関数ファイルのダウンロード先 から探してみてください。」とありますが、「評価関数ファイルのダウンロード先」のリンクが間違っているようで、やねうら王wikiのトップへジャンプしてしまいます。

  3. やねうら王に関するあらゆる質問をしていいというお言葉に甘えさせていただきます。
    『将棋神やねうら王2』はいつになったら発売してくださるのでしょうか?
    有料版ならではの機能、例えば私が喉から手が出るほど欲しい柿木定跡→やねうら王定跡コンバーターのようなものは、有料版に付けていただきたいと思っております。
    『宮本定跡』の唯一の長所は強さでなく、人間的なところです。そこにやねうら王エンジンの棋力が加わったらどうなるのか、考えてみただけで胸が躍ります。

    • > 柿木定跡→やねうら王定跡コンバーター

      いま見たら、柿木将棋の定跡ファイル(KJ2)、わりと読みやすそうな感じなので誰かがコンバーター書いてくれるかも…。

      • 柿木定跡→Bonanza定跡コンバーターは可能な人がおられましたが、匿名で非公開でした。柿木定跡→やねうら王定跡コンバーターも不可能ではないと思われます。柿木定跡、やねうらお様は読みやすいと感じられたようですが、一般人の感覚では逆立ちしても無理なのです。ぜひお願いします!

        • 読みやすいのかと思ったのは、柿木将棋V以降の形式(.KJ2)の方です。それ以前の形式の方は暗号みたいになってますね…。
          棋譜管理ソフトの開発者の方が変換機能を実装してくれないかなぁ…。> .KJ2

        • 前にコメントしたときのメールアドレスの話です。今入力しているメールアドレスだとコメントできてるのでIPアドレスではなくメールアドレスではじかれてるみたいです。

          • あ、そうなんですか。もしかして「てst」って書いてあったやつですか。これ、スパムかと思って、スパムですボタンを押してしまいましたw
            解除しておきました。

          • 直りましたね。ありがとうございます。

            「てst」は先ほど別のアドレスに変えてみる前に試してみたやつだと思うんですけど(もう覚えてない)、
            今のアドレスで書き込めなかったのって5/20あたりに気づいて(結局GitHubで書いた)、それ以前に最後にコメントしたのが1/15なのでもっと前からスパム判定だったんじゃないですかね・・・?

            まぁ直ったからいいか・・・。

  4. やねうら王とStockfishのコードを並べて勉強させていただいてます。
    丁寧なコメント、助かってます。
    【YaneuraOu/source/engine/yaneuraou-engine/yaneuraou-param.h】ではStockfishの内容もところどころ取り入れられてるように思われますが、やねうら王のparam.hの部分はStockfishではどのあたりに該当されますでしょうか?
    Stockfishを追っていても見当たりませんでした。

  5. こんにちは。
    お世話になっております。

    やねうら王wikiを参考に、飛車降る評価関数の作成に取り組んでいます。
    学習を走らせた際に、hirate evalやmove accuracy、test_cross_entropy〜,learn_cross_entropy〜などいろいろな値が出てきます。
    開発者の方々はロスを見て学習の進捗度や成果を判断なさるとお聞きするのですが、具体的にロスとはどの値を指しているのか、
    どこの値がどのように変化していくとある程度成功していると判断できるものなのでしょうか?

    • > ロスとはどの値

      cross_entropyとついてるのがロスですね。(正確には損失関数をcross entropyに設定した時のその関数の値)
      testとついているのは検証用のデータとのロス(違い)、learnとついているのは学習データとのロス。

      前者が下がってないと強くなってない可能性が高いです。

      • ありがとうございます!
        wikiやこちらのコメントのおかげで、楽しみが増えました。
        もうひとつだけお聞きしたいのですが、やねうら王のビルドを行うのにVSとclang,g++ではどのくらい性能差が生じてしまうのでしょうか?

          • そんなに差があるのですね。。
            勉強になります。
            wikiの学習の欄に
            “etaを連続的に変化させるには、
            eta1 0.01 eta2 500 eta1_epoch 100 eta3 30 eta2_epoch 500”
            とありますが、eta1とeta2のみで、徐々に率を落としたいときは2の方を小さくするという認識であってますよね?

            nodchipさんの学習記録も参考にしてますが、”eta1=1e-8 eta2=1.0 eta1_epoch=100″とありました。この場合は1.0に向けてどんどん増やしているってことですよね?
            学習率は進むに連れて下げていくものだと勝手に認識していて、私の認識違いなのか気になりました。。

          • > etaを連続的に変化させるには、

            それKPPTのころの学習なのでNNUEではそんなことしないほうがよろしいです。
            (学習率自体はlossが下がらなくなれば自動的に小さくなっていきます)

        • >>(学習率自体はlossが下がらなくなれば自動的に小さくなっていきます)
          これはnewbob機能がオンの場合の話ですよね?
          この機能リジェクト回数といい使いこなすのわりかし難しいですよね(汗

          • そこはデフォルトでONにしておくのが普通だと思います。> newbob
            気に要らなければ、一定の学習ごとにetaを1/2にするようなコードを自分で追加してもいいかと。

  6. VS2022でビルドしようとすると、{YaneuraOu-5.33\source\eval\nnue\trainer\trainer.h(16,10): fatal error C1083: include ファイルを開けません。’cblas.h’:No such file or directory (ソース ファイルをコンパイルしています eval\nnue\evaluate_nnue_learner.cpp)
    1> apery_book.cpp}
    とでてエラーになってしまいます。
    考えられる理由や改善策はありますかね..

    • NNUEの学習版のビルドは、OpenBLASというライブラリに依存してて、それインストールする必要があります。(OpenBLASとかでググってみてください)
      インストールわりと面倒なので、学習版は、MSYS2 + Clangでビルドするのがお勧めです。

      • お世話になっています。msys2にて学習用のmakeを試みたところ、 下記のエラーが出ます。最新の7.〇〇では問題なくmakeできますが、4.〇〇,5〇〇でこのエラーがでてしまいます。movepick.hの該当する行は最新のものと変わりないので、どう対応するべきか教えていただけますと幸いです。

        In file included from movepick.cpp:1:
        ./movepick.h:38:27: error: no member named ‘numeric_limits’ in namespace ‘std’
        static_assert(D <= std::numeric_limits::max(), “D overflows T”);
        ~~~~~^
        ./movepick.h:38:42: error: ‘T’ does not refer to a value
        static_assert(D <= std::numeric_limits::max(), “D overflows T”);
        ^
        ./movepick.h:22:19: note: declared here
        template
        ^
        ./movepick.h:38:46: error: no member named ‘max’ in the global namespace
        static_assert(D <= std::numeric_limits::max(), “D overflows T”);
        ~~^
        3 errors generated.
        make[1]: *** [Makefile:169: ../obj/movepick.o] Error 1

        • numeric_limitsがstdにないということなのでは。static_assertはコンパイル時のチェック用なので、削除しても動作に影響ないのでそれらの行は消してしまえばよいかと思います。

          ただ、やねうら王の開発方針としては比較的最新の環境でコンパイル通ればいいやと思っているので、いずれ、古いMSYS2(や、古いgcc/Clang)では、コンパイル通らなくなります。

  7. 無事にビルドできました。
    ありがとうございます。

    ソースコード読み比べていて気になったのですが、VSCodeでlearn.cppを近年のやねうら王と2018年のtanuki-で並べたところ、やねうら王側だけ18行の#if defined(EVAL_LEARN)から最後の#endif // EVAL_LEARN
    までアクティブではない色付け(?)となっているみたいで、画像のように薄い色で表示されてしまいます。
    elmo式学習のlambdaの式を変更して、その影響を調べるために、検証しようと思っているのですが、該当部分を書き換えても適応されないみたいです。
    最近興味を持ってばかりの初心者なので、調べても何が原因なのかはっきりせずです..
    教えていただけますと幸いです。

    左 tanuki-2018 右YaneuraOU
    https://i.imgur.com/V3fPVD5.gif

  8. Youtubeの動画拝見いたしました。
    AWSの使用なのですが、動画を参考にやってみようと思います。

    例えばギガ単位の大きいファイルを転送した際などに掛かる通信費等、CPU使用料以外にこれやるとお金高くなるから気をつけろよ要因は何かありますでしょうか…?

    • AWSではネットワーク帯域に関する課金は、下り(download)方向だけですので、将棋AIでは下りはほぼ使っていないので無視できるかと思います。
      インスタンスの終了忘れが一番怖いですね。それ以外は誤差です。(請求明細には翌日に反映されているので、それ見てどれくらいの料金になっているか確認しましょう)

      • コメントしてから迅速にご対応頂き感謝申し上げます。
        使用金額の件、了解です。
        初めてクラウドサービスを借りるのでその点が心配でした。
        使う時には常に切ることを肝に銘じますね。

  9. やねうら王evallearnで学習を行う際はthreadsとusi_hashコマンドをあらかじめlearnコマンド以前に打ち込んでおかなければPCスペックを活かしきれずに学習することになってしまいますか?

    それとも自動的にそのpcのスレッドとメモリは上限まで使用されるのでしょうか?

  10. https://github.com/yaneurao/YaneuraOu/wiki/%E6%80%9D%E8%80%83%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3
    このページの記述、今はデフォルトが1024 MBになったので要らないのでは。

    > ⚠ この値はデフォルトでは16 MBとなっていて、ほとんどメモリを消費しませんが、その代わり、現代のPCでは少なすぎます。かならず、お使いのPCの空きメモリに合わせた値を設定してください。

コメントを残す

メールアドレスが公開されることはありません。