yaneurao / YaneuraOu

YaneuraOu is the World's Strongest Shogi engine(AI player) , WCSC29 1st winner , educational and USI compliant engine.
GNU General Public License v3.0
524 stars 140 forks source link

ふかうら王V8.30の読み筋がおかしい #276

Closed penguinyamap closed 6 months ago

penguinyamap commented 6 months ago

はじめまして モデルファイルがdlshogiのmodel-dr2_exhi.onnxでふかうら王V8.30で平手初期局面を検討したところ、☗18香が最善になります。そのあとの読み筋もおかしいです。

yaneurao commented 6 months ago

こちらでは再現できないですね…。 再現できる詳しい手順を教えていただけますか?

あと、ふかうら王の実行ファイルを起動後

isready と入力して go と入力してみてください。 // そこで1i1h(18香)がbestmoveとして出てくるか確認していただきたいです。

20240512fuka

penguinyamap commented 6 months ago

CUDA12.3をやねうら王wikiのリンクからダウンロードしてインストールします。ふかうら王の実行ファイルと同じ階層にevalフォルダを作成し、その中にmodel-dr2_exhi.onnxを入れます。Electron将棋V1.14.0にエンジンを登録します。model-dr2_exhi.onnx.iniに推奨パラメーターが書いてあるので、こちらに変更します。Softmax_Temperatureは千分率で指定すると思ったので1400にしました。検討ボタンを押すと初手☗18香が最善になります。

コマンドプロンプトから起動したところ、goの1回目はランダムのようですが2回目は☗18香になります。何度かやって同じ結果です。 スクリーンショット 2024-05-12 024942

yaneurao commented 6 months ago

Softmax_Temperatureは千分率で指定すると思ったので1400にしました。

Softmax_Temperatureは百分率で指定します。(2年ぐらい前のバージョンでは千分率で指定していたのですが、dlshogiの設定ファイルと互換性があるようにするために変更しました。Wikiも変更してあります。)

penguinyamap commented 6 months ago

Softmax_Temperatureを百分率で指定しなおしました。しかし最善は☗18香でした。

yaneurao commented 6 months ago

スクショよく見たら、npsが低すぎるので、CPU版を間違えて実行しているという可能性はないでしょうか。 あと、拡張子が .serialized になっているファイルを一度削除してみてもらえないでしょうか。

それから設定されているパラメーターが何か他にもおかしい可能性があるので、パラメーターを何も設定せずに起動してデフォルトの状態で試していただけますでしょうか。(モデルファイルは"model.onnx"と名前を変更しておけば、エンジンオプションは何も変更せずとも良いはず)

その状態で、実行ファイルを単体で起動したあと

isready
go infinite
stop (5秒後ぐらいに)

とした場合のスクショをいただけないでしょうか。

penguinyamap commented 6 months ago

しました。起動したのは確かにYaneuraOu-Deep-TensorRT-1GPU.exeです。タスクマネージャーからGPUが働いているのも確認しました。 実行ファイルの起動の仕方ですが、exeファイルをダブルクリックで起動するであってますでしょうか? go infiniteだとnpsが15000程度でますが、goだけだと1000ぐらいになります。 スクリーンショット 2024-05-12 135823

yaneurao commented 6 months ago

exeファイルをダブルクリックで起動するであってますでしょうか? 合ってます。

スクショ、ありがとうございます。 どうにも不可解ですね。推論でGPUから0が返ってきてるっぽい挙動に見えます。

考えられる原因 ・モデルファイルが壊れている ⇨ モデルファイルのダウンロードをやりなおしてみる ・CUDAのドライバーが何らか壊れている ⇨ CUDAを一式、一度綺麗にアンインストールしてから再度インストールしてみる。 ・ふかうら王のダウンロードに失敗している ⇨ 再度ダウンロードしてみる ・GPU自体が壊れている ⇨ 本家dlshogiは動いていますか?

⇓もし可能なら教えてください。 ・ふかうら王の一つ前のバージョンは動いていましたか? ・ふかうら王で正常に動くバージョンはありますか?

penguinyamap commented 6 months ago

・モデルファイルが壊れている ⇨ モデルファイルのダウンロードをやりなおしてみる ⇨既に2回試しました ・CUDAのドライバーが何らか壊れている ⇨ CUDAを一式、一度綺麗にアンインストールしてから再度インストールしてみる。⇨手順を調べてから今からやります。 ・ふかうら王のダウンロードに失敗している ⇨ 再度ダウンロードしてみる⇨既に2回やってます ・GPU自体が壊れている ⇨ 本家dlshogiは動いていますか?⇨動いています

・ふかうら王の一つ前のバージョンは動いていましたか?⇨使ってなかったですが、今朝動かしてみました。初手38銀、38金、48金、58金右で迷ってました。 ・ふかうら王で正常に動くバージョンはありますか?⇨ふかうら王7.61のみ正常に動きます。

yaneurao commented 6 months ago

検証ありがとうございます。

・ふかうら王の一つ前のバージョンは動いていましたか?⇨使ってなかったですが、今朝動かしてみました。初手38銀、38金、48金、58金右で迷ってました。

V8.00は挙動がおそらくはおかしいという理解で合っていますか?

・ふかうら王で正常に動くバージョンはありますか?⇨ふかうら王7.61のみ正常に動きます。

V7.61とV8.00ってふかうら王に関しては差分がほとんどないはずなので、V7.61が正常でV8.00がうまく動かないとしたら、おそらくはCUDAのドライバーのバージョンが合ってなくてCUDAが正常に呼び出せてない感じはします。(こういう現象は初めてですが..)

あとは、環境変数のCUDA_PATHが古いCUDAのフォルダになっているとか、古いCUDAのbinフォルダにpathが通ってしまっているだとか、そういう可能性もあるような…。 参考URL : https://rupic.hatenablog.com/entry/2020/03/24/021455 古いCUDAで正常に動作しないとして、それなら、ふかうら王側でCUDAのバージョンチェックをすべきではありますね。

penguinyamap commented 6 months ago

V8.00は挙動がおそらくはおかしいという理解で合っていますか?⇨あってました

結論から言うとCUDAを一式やり直したところ、V8.00,V8.30とも正常に動きました。

以下手順です CUDA12.3をアンインストールしてインストーラーのカスタムのCUDAのみを選んでインストール⇨初手18香⇨アンインストール インストーラーの高速を選択してインストール⇨正常に動作 ここで終わってもよかったのですがさらに検証しました。 CUDA12.3をアンインストールしてインストーラーのカスタムのCUDAのみを選んでインストール⇨正常に動作 アンインストールしてインストーラーの高速を選択してインストール⇨正常に動作 アンインストールした状態で動作確認⇨正常に動作・・・入れた記憶はないですが、元からCUDA12.2が入っていたからかと ここで検証をやめました。今はCUDA12.2で動いてます。

おかげさまで、すごく助かりました。ありがとうございました。

yaneurao commented 6 months ago

ご報告ありがとうございます。 CUDAが何らか壊れてて、推論できなくなっていたっぽいですね。(そんなことあるんかと驚いてます) 詳細なレポート、大変参考になりました。ありがとうございました。