やねうら王シリーズ + elmoのセットアップの手順については、elmoの作者が書いているサイトが大変わかりやすいのでそれを参考にしてください。
elmo用のページをgithubに作りました。elmo導入方法と公開した全てのデータについて記載しています。https://t.co/DVos6RYFzN
— 瀧澤 誠@elmo (@mktakizawa) May 19, 2017
質問は、以下のFAQを読んだ上で、この記事のコメント欄でお願いします。コメント欄はあとから読む人のため、定期的にメンテナンス(削除等)します。
ときどき、やねうら王のTwitterアカウントに対して個別に質問される方がおられますが、そこでお答えしても、同じ内容を質問をしてくる人が後を絶たないため、Twitter上では導入手順については一切お答えしません。何卒、ご理解のほどお願い致します。
1.思考エンジン本体等のダウンロード先
Q. 思考エンジン本体はどこからダウンロードできますか?
A. やねうら王のエンジン本体は、やねうら王のGitHubのreleasesのところからダウンロード出来ます。(以前配布していたフォルダから移動させましたので、上のelmoの導入方法の解説とは異なります。注意!) 解凍したあと、XXX-readme.txtをご覧ください。 このreadme.txtを読んでいないと思われる質問に対しては一切お答えしません。
Q. elmo以外の評価関数はどこからダウンロード出来ますか?
A. elmo以外の(やねうら王が提供している)評価関数ファイルのダウンロード方法はやねうら王のGitHubのトップページに書いてあります。
Q. 定跡ファイルはどこからダウンロード出来ますか?
A. やねうら王のGitHubのトップページに書いてあります。
2. エンジン設定、対局設定等について
Q. エンジン設定について詳しい説明はどこにありますか?
A. docs/ 配下にある、解説.txt と USI拡張コマンド.txt にあります。
Q. 将棋所やShogiGUIで置換表のサイズを8GBに設定してもそのサイズだけ確保できていないようなのですが。
A. やねうら王では、置換表サイズは、USI_Hashではなく思考エンジン設定のほうにあるHashという項目の設定に従います。詳しくは、USI拡張コマンド.txt にあります。
3. コンピューター同士の対局時の設定について
Q. 魔女と1手2秒で対局させたところ、魔女が大幅に勝ち越しましたが?
A. やねうら王のほう、NetworkDelay,NetworkDelay2を0に設定しましょう。デフォルトでは秒読みモードでは1.12秒前に指すようになっているため、最大でも(2 – 1.12)秒 = 0.88秒しか思考出来ません。詳しくは、やねうら王ライブラリのnetworkdelayオプションについてをご覧ください。また、解説.txt にも詳しい説明があります。
Q. やねうら王+elmo vs やねうら王+リゼロで対局させているのですが、同じ評価関数を読み込んでいるようです。
A. その両方のエンジン設定で、EvalDirが同じフォルダ名(例”eval”)で、かつ、EvalShareがオンになっている場合、評価関数を共有する機能が有効になるためです。これは並列対局させるときにメモリを節約するための機能ですが、並列対局させない人にとっては邪魔になるかも知れませんね。EvalShareをオフにするか、評価関数フォルダを以下のようにエンジンフォルダの上の階層に用意して、EvalDirを”../../eval/elmo”のように指定するなどしてください。詳しくは 解説.txt にあります。
eval/elmo
eval/rezero8
engine/…/
4. エンジン名の偽装について
Q. 二つの評価関数の強さを比較したいときに、エンジン名が同じだと困るのですが。
A. 将棋所ではエンジン名の末尾に任意の文字列を付与することが出来るので、それを活用するか、やねうら王のエンジン名の偽装機能を使ってみてください。詳しくは、解説.txtにあります。
5. 読み筋の出力について
Q. 読み筋が1手しか表示されないことがあります。
A. ConsiderationMode(検討モード)をオンにしてみてください。こちらの記事も参考にどうぞ。→ 検討モード用の読み筋出力について
Q. fail low/highしたときに読み筋を出力して欲しい / 欲しくないです。
A. 思考エンジン設定で変更できます。→ fail low/highしたときの読み筋の出力
6. 評価関数ファイルの形式について
Q. なんだか、すごく弱いんですけど?
A. AperyはWCSC27から評価関数ファイルの形式が変わりましたが、その新しい評価関数ファイルを間違って使用していませんか?やねうら王2017Earlyで使えるのはKK_synthesized.binというファイルが52,488 バイトになっているものです。(エクスプローラーでファイルを右クリックしてプロパティを選ぶとファイルサイズが確認できます) これより小さいものは、Aperyの新しい評価関数ファイルです。
7. 早指しについて
Q. 10分切れ負けなどでやるときに、思考エンジンが序盤で使う時間をもう少し減らしてもらえませんか?
A. 思考エンジン設定のSlowMoverというオプション項目で設定できます。詳しくは、docs/解説.txt をご覧ください。
8. エンジン設定の日本語化について
Q. エンジン設定を日本語化する方法を教えてください。
A. 将棋所だと、思考エンジンの本体(「YaneuraOu-2017-early.exe」など)と同じフォルダに「YaneuraOu-2017-early_ja.txt」(このファイルは思考エンジン本体を解凍したときに入っているはず)を配置するとエンジン設定が日本語化されます。ShogiGUIにはこの機能は無いようです。
9. 千日手設定について
Q. 先手ならなるべく千日手を打開して、後手なら自分が不利なときに千日手を選ぶようには出来ませんか?
A. “ContemptFromBlack”というエンジンオプションを利用すると設定できます。詳しくは、解説.txtを。
10. 投了スコアの設定について
Q. 連続自己対局させるときに評価値が1000を越したら投了させたいのですが?
A. “ResignValue”というエンジンオプションを利用すると設定できます。詳しくは、解説.txtを。
11.評価関数を共有するEvalShareオプションについて
Q. EvalShareとは何ですか?
A. 同じ評価関数を用いるエンジンを複数起動するときにメモリを省力化する機能です。
Q. 評価関数はどういうときに共有されますか?
A. 解説.txtに説明があります。同じEvalDirを設定すると共有されます。(例 : 2つのエンジンでどちらも EvalDirとして”eval”と設定している場合、フォルダの絶対Pathが異なっていても共有されます。この意味が理解できない人は、EvalShareをオンにして運用しないことをお勧めします。)
Q. 将棋所のエンジンオプションの設定画面にEvalShareオプションが無いようです。
A. NNUE評価関数では現状、EvalShareオプションは対応していません。(NNUE評価関数が有効にしてビルドされた実行ファイルにはEvalShareオプションは存在しません。)
置換表の設定についての質問失礼します。
ShogiGUIやWhaleWatcher等でエンジンを使用する場合、エンジン設定でUSI_HashとHashの項目が変更できます。
やねうら王のDocsには『 USI_Hash で設定された値は無視されます。』とあるので普段の棋譜解析や検討ではHashの値を変更していますが、
USI_Hashというのはエンジンの強さに対してどのような役割をもっているのでしょうか
また、将棋所ではエンジン設定側で変更できる置換表サイズと、将棋所側で設定できるハッシュメモリというのがありますが、置換表サイズ=USI_Hash, ハッシュメモリ=Hashということでしょうか
置換表サイズ=ハッシュメモリです。将棋所だと思考エンジンごとに置換表サイズの設定が出来ないので、やねうら王ではこれ(USI_Hash)を参照しません。(使いません。)
> USI_Hashというのはエンジンの強さに対してどのような役割をもっているのでしょうか
一般的に、置換表サイズが棋力にどれくらい寄与するかは以下の記事が参考になるかと…。
コンピューター将棋におけるベストな置換表サイズとは?
回答ありがとうございます。
GUI側が指定するUSI_Hash(将棋所でいう「ハッシュメモリ」設定)ではなく、エンジンの設定ダイアログのところで個別に設定したHashの値(将棋所でいう「置換表サイズ[MB]」設定)が、実際のやねうら王が使う置換表の大きさになるということなんですね。
細かい所の疑問でしたが解決しました、ありがとうございます。
YaneuraOu-2017-early-readme.txt
を読んで 適切なファイル配置をしているのですが、
将棋所 v3.8.4 にて エンジン登録が完了しません。
将棋所の「エンジン管理」にて
YaneuraOu-2017-early.exe を選択すると、
「エンジン登録中…」のまま 何分待っても終わらない状況になってしまいます。
お使いのCPUがAVX2対応ではないだとか、64bit OSでないだとか?試しにnoSSEとファイル名についてるものを登録してみるとどうでしょう?
質問失礼いたします。
dbファイルの導入ですが、elmoは標準より容量の小さいstandard.dbが公開されていました。
これをbookフォルダに上書きコピーした後、
book/yaneura_book1.db : やねうら大定跡(これは別途ダウンロードが必要)
book/yaneura_book3.db : 真やねうら定跡(これは別途ダウンロードが必要)
上記の二つは使用されないのでしょうか?
やねうら王が使用する定跡ファイルは常に1つ(ないし、使用しない)です。どの定跡ファイルを使用するかについては、思考エンジンの設定画面で選択できます。また、思考エンジンの設定画面の細かいパラメーターの意味については、
doc/USI拡張コマンド.txt
doc/解説.txt
にあります。
あと、
https://twitter.com/floodgate_fan/status/860438385948712961
> ※やねうら王2017でelmoの定跡を使用する場合、エンジン設定でBookDepthLimitを16から0に変更してください。
とのこと。
ご丁寧なお返事ありがとうございます!
elmoの設定もご指摘していただけないと気づきませんでした。
やねうら王v4.66を使っているのですが、千日手を先手番のマイナス評価(後手からみたらプラス評価)に設定することは出来ないのでしょうか?
contemptはどの程度千日手を回避するかという設定項目のようですのでそれは無理ですよね?
contemptを200に設定してみた時は、先手番の時は千日手を先手番の-200という評価になっているのですが、後手の手番の時は後手の-200(つまり先手の+200)と評価してしまうようになってしまいました。マイナスに設定した時はその逆の現象が起こりました。
現実の将棋だと先手は千日手を損と見て、後手は得とみることが多いと思うので、そういう風に設定できる方法があれば教えていただきたいです。
readmeは目を通しましたが、初歩的な質問でしたらすみません。
Contemptが何故この仕様になっているかと言うと、Stockfishがこうなっているからで、Stockfishを参考にしているソフトはすべてこの仕様ですね。チェスでも先手有利なはずで、確かに実践的には後手なら積極的に千日手を狙いたい場合もあるでしょうね。オプション設定項目を増やせば対応できるのですが、すでにオプション設定項目はかなりたくさんあって、将棋所やShogiGUIではわかりづらいので(項目のグループ化等が出来ないため)、躊躇います。とりま、ContemptFromBlackというオプション項目をV4.67bで試験的につけておきましたので試してみていただけますでしょうか。
すみません、返事が随分と遅れてしまいましたが、contemptを正の値にして、contemptfromblackを有効にしたところ、私の求めていた状態にすることが出来ました。
対応していただき本当にありがとうございました。
これからも応援しております。
(`・ω・´)ゞ
YaneuraOu-local-serverにてgo depth Xで対局する場合にXの値が大きいとタイムアウトしてしまうので何とかしたいのですが、local-game-server.cppの355行目の
if (now() >= start + 60 * 1000)からその下の{}までを削除してビルドすれば解決できますか?
まだ試してないのですがそれ以外にすることがあれば教えていただきたいと思いコメントさせていただきました。(ここまで書いて書き込む記事間違えてるか不安になるっす)
すみません。いまコメントに気づきました。time outはそこを修正するだけでいいと思いますが、local-serverは、終了したプロジェクトなので、python製の自己対局フレームワークか、tanuki-さんのTanukiColosseumを使っていただければと…。
エンジン設定のどの項目の数値を変えればデフォルト設定のものよりも強くなりますか?
デフォルトで最強なのでは…。他ソフトと対局させるときの設定の話なら、解説.txtに説明がありますのでそちらを。
分かりました。見てみます。
有難うございました。
Windows10pro 64bit / cpu:AthlonX4 631
YaneuraOu 2018 Otafuku KPPT 4.80 64SSE2
ShogiGUI上で利用しています。
エンジン登録は完了するのですが、棋譜を読み込んで検討する際、最初の1手だけは思考するのですが、1手すすめると思考を止めてしまいます。どの設定があやしいでしょうか?
・やねうら王の以前のバージョンだと動くか(実行ファイルを差し替えてみて)
・将棋所から使ってみて、デバッグウィンドウのログのところに何かエラーが出力されていないか
についてはいかがでしょう?
2017earlyで試してみましたが全く同じでした。また、将棋所のデバッグウインドウをみてみると、思考を止めてしまったところでは最終行にstopと出ているのみです。
KPP_KKPT型&リゼロでも試してみました。64sse2では状況変わらず、nosseを利用するとOKでした。いろいろ試行錯誤して分かったことは、1手で思考をやめるというよりは、0.8secだけ思考をしたあとに思考が停止しているようにみえます。(当然、思考時間は無制限に設定しています)
ShogiGUIの画面下部の思考時間とノード数の部分が0.8sec経過時点でピタッととまってしまっています。でマイナーCPUの宿命なんでしょうか。。。
ちなみに、GPSfishは問題なく動きます
x64 SSE2用でNGでかつ、Windowsがx64だということは…Athlon IIだと動かない、何かがあるんでしょうね…。
このCPU、2011年に発売されたもので私の手元で再現できる環境がないため、調査できないですが…。
KPP_KKPT型&リゼロのnosseとGPSfishは動くので、どちらかでいこうかと思いますが、どちらが強いですかね?64bitのGPSfishの方がやはり強いですか?
nosseで探索速度が半分ぐらいになっても、R200ぐらい下がるだけなのでGPSfishには9割ぐらい勝つのでは…。
なるほど、ありがとうございます!
いつも楽しく使わせていただいています。
macにて将棋ぶらうざQで使用しています。
エンジンの設定で、例えばthread 1と設定しても、一度終了させて再度起動するとデフォルトのthread 4に戻ってしまいます。ターミナルから直接入力しても、将棋ぶらうざQで設定しても同じ現象が起きます。
可能ならばデフォルトに戻らないように設定変更、あるいはデフォルトそのものを変更できたらと思うのですが、やり方があれば教えてください。
以前は、やねうら王でもデフォルトの値として、エンジン側で最後に設定されたものを保存しておき、それを用いる処理があったのですが、将棋所/将棋GUIではGUI側がやってくれるため、この処理はエンジン側では行わないのが主流のようです。規範としているStockfishもそういう作りになっていますし、これは将棋ぶらうざQ側で保存されるべき問題だと言えるかと思います。将棋ぶらうざQのほうで何故そのような処理になっていないのか(本当になっていないのかを含め)、私は将棋ぶらうざQを動かしたことがないのでわかりませんが…。
理解しました。将棋ぶらうざQはmacユーザーの頼みの綱なので悪く言えませんが何かと遅れているところもあるようですね。ご回答ありがとうございました。
横から失礼します。将棋ぶらうざQでエンジン登録時に「オプション」という欄があり、GUI保存とエンジン保存というラジオがついてるのでそれでGUI保存を選択するとオプションの値がGUI側で保存してくれるようになりますよ
質問失礼します。将棋所を使ってエンジンの追加したかったのですが、exeファイルのエンジンが見当たりません。どうすれば良いでしょうか?
exeファイルのエンジンとは何のことでしょう?(´ω`) やねうら王の思考エンジンの実行ファイルでしたら本文の1.のところにありますけども…。
PC初心者には全然わかりませんでした
自分はもう諦めたので良いのですが、未来の人々のためにもっとわかりやすい解説があるといいと思います
これからも頑張って下さい
この手の説明、わかりやすく書くとキリがないので、この説明でわからない人は平均的なITリテラシーを身に着けてくださいということで…。(´ω`)
やねうら王のlearn.exeのコマンドをまとめているものはありますでしょうか?
https://drive.google.com/drive/folders/1M_jspORqrpDz2RdluvayqQT1fX3lHRFd
これを見ていると、
rngrepとかaddとかrngb1だとか訳が分からなくなってきて・・・
(今はもうNNUEの時代だよなんて言わないで下さいね・・・)
rngrepってなんすか??(´ω`)
test evalmerge rezero8 HoneyWaffle rezero_Honey 0 rngrep -100 100
例えば、こうすると、評価値が-100~100の時のrezero8の評価関数をHoneyWaffleの評価関数に入れ替える的な事が書かれておりました・・・
もしや、私、夢でも見たのでしょうか・・・?
その人は、evalmergeのコマンドを独自に拡張されているのでしょうね。
某人〇棋士18号のreadme.txt読んでいたら発見したました・・・。
某人〇棋士18号のコマンドでした・・・。
やねうら王が、使用した奴の中に入っていたもんですから、こういうのはやねうら王を中心にして回っていると思い込んでしまっていて、ついやねうら王のものかとΣ(ノ≧ڡ≦)
お騒がせしましたm(_ _)m
(↑返信のところに打ったつもりがどうもうまくいかなかったようです・・・)