TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

dlshogi(第2回世界将棋AI電竜戦エキシビジョンバージョン)のWindows版ビルド済みファイル公開

dlshogi(第2回世界将棋AI電竜戦エキシビジョンバージョン)のWindows版ビルド済みファイルを公開します。

モデルファイル

モデルファイルは別のzipファイル(model-dr2_exhi.zip)になっています。
ダウンロード前に、下記のライセンスを参照してください。

ダウンロードしたモデルファイルを使用するにはエンジン設定で、モデルファイルのパスの設定が必要です。
DNN_Modelに解凍したモデルファイル(model-dr2_exhi.onnx)のパスを設定してください。

モデルファイルのニューラルネットワークは15ブロックのResNetになっているため、以前のバージョン(10ブロックResNet)よりNPSが低下します。
GPUの性能によっては、同一の時間での対局で弱くなる場合があります。

倍精度バージョンの追加

1千万ノード以上探索すると、floatの桁落ちによる誤差により評価値の精度が落ちるため、今までのバージョンは長時間の検討には不向きでした。
そのため、検討用に倍精度浮動小数点数でビルドしたバイナリを追加しました。

長時間検討する場合は、ファイル名に「_double」が付く.exeファイルを使用してください。

倍精度バージョンは、メモリ使用量が増えます。
メモリ使用量の目安は、以下の通りです。

バージョン ノード数 メモリ使用量
通常バージョン 1000万ノード 18.2GB
倍精度バージョン 1000万ノード 23.3GB

GPU(RTX 3090)1枚で1千万ノード以上探索するには、5分以上かかります。
長時間検討しない場合や、メモリが少ないマシンでは通常バージョンを使用してください。

なお、1千万ノード以上探索する場合は、UCT_NodeLimitの値を増やす必要があります。

USIオプション追加

読み筋(PV)上に詰みがないかチェックするオプションを追加しました。
頓死をある程度防ぐことができます。
有効にするには、PV_Mate_Search_Threadsを1以上に設定してください。

ただし、CPUコアが余っていないとかえって弱くなる場合があります。

モデル別の探索パラメータの設定

モデルによって最適な探索パラメータが異なるため、探索パラメータのデフォルト値をモデルファイルのパスに拡張子「.ini」を付けたファイルで設定できるようにしました。

USIオプションがデフォルト値から変更されている場合は、変更した値の方が使用されます。
将棋所だと現在の値がデフォルト値かが確認できないため、心配な場合はエンジンの設定を一旦削除して、登録からやり直すとよいです。

.iniファイルには、

オプション名=値

を行区切りで記述します。
※=の前後にスペースは記述しません。

設定例:

C_init=100
C_base=20000
C_fpu_reduction=10
C_init_root=200
C_base_root=21000
Softmax_Temperature=100

モデルファイルのzipには、.iniを含んでいますので、モデルファイル(.onnx)と同一フォルダに配置してください。

モデルファイルのライセンス

モデルファイルを公開してしまうと、大会で不利になってしまうため、モデルファイルだけライセンスを制限します。
使用するには、以下のライセンスに同意が必要です。

1. 本モデルファイルの著作権者は山岡忠夫に帰属します。

2. 私的使用の範囲内で、本モデルファイルを無料で使用できます。

3. コンピュータ将棋の大会向けに本モデルを使用する場合、
    ・モデル学習用の棋譜生成
    ・勝率測定
    を目的とする場合のみ使用を許可します。

    以下は、許可しません。
    ・定跡生成に使用すること
    ・本モデルファイルを直接対局に使用すること
    ・本モデルファイルに追加学習すること
    ・本モデルファイルのパラメータを転用すること

4. リバースエンジニアリング、改変、再配布は禁止します。

ライセンスを確認しているかを担保するため、モデルファイルのzipにはパスワードをかけています。
「dlshogi-dr2_exhi」で解凍できます(※このパスワードは、他には転記しないでください)。