TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

将棋AIモデルの評価用データセット

現在、将棋AIの各開発者は、各自で評価用データセットを作成しており、同じ条件での精度の比較が行われていない。

標準となるデータセットがあった方が開発したモデルの精度比較しやすいため、dlshogiで使用している評価用データセットを公開することにした。

公開場所は、機械学習・深層学習分野における モデルおよびデータセット共有の標準的なプラットフォームとして広く利用されているHagging Faceとした。

以下のリンクから取得できる。

huggingface.co

ファイル名は、floodgate.hcpeである。

sha1sumは、以下の通り。

$ sha1sum floodgate.hcpe
0c60d3f51189934511e5309d7ad9dc3853059af0  floodgate.hcpe

データセット

floodgate における 2017年から2018年6月までの対局棋譜から、以下の条件を満たす対局のみを対象としている。

  • 対局者双方のレーティングが 3500以上
  • 評価値が 3000を超えた時点で局面生成を打ち切り

なお、千日手および最大手数到達による引き分けの対局は出力していない。 また、局面と指し手の組み合わせが重複するデータは除外している。

収録されている局面数は 856,923局面である。

データ形式は HuffmanCodedPosAndEval を採用している。

使用方法

dlshgiの、学習スクリプト(train.py)のtest_data引数に指定できる。

例: python -m dlshogi.train train.hcpe floodgate.hcpe

また、学習済みモデルをtest.pyを使用して評価できる。

例: python -m dlshogi.test model floodgate.hcpe
例(onnxの場合): python -m dlshogi.test model.onnx floodgate.hcpe --onnx

ブログに掲載している精度との比較

このブログで掲載しているdlshogiの評価指標は、このデータセットを使用している。
このデータセットを使うことで、ブログに記載している結果と精度比較が可能である。

データセットの統計情報

stat_hcpe.py で出力した統計情報は以下の通り。

positions 856923
               color      black win      draw           eval
count  856923.000000  856923.000000  856923.0  856923.000000
mean        0.500082       0.550027       0.0      81.813553
std         0.500000       0.497491       0.0     925.247184
min         0.000000       0.000000       0.0   -3000.000000
25%         0.000000       0.000000       0.0    -216.000000
50%         1.000000       1.000000       0.0      19.000000
75%         1.000000       1.000000       0.0     357.000000
max         1.000000       1.000000       0.0    3000.000000
black win rate 0.5500272486559469
white win rate 0.44997275134405307

unique positions:
                 hcp
count  840778.000000
mean        1.019202
std         0.193575
min         1.000000
25%         1.000000
50%         1.000000
75%         1.000000
max        25.000000

unique positions and best moves:
       (hcp, bestMove16)
count           856923.0
mean                 1.0
std                  0.0
min                  1.0
25%                  1.0
50%                  1.0
75%                  1.0
max                  1.0

まとめ

将棋AI開発では評価用データセットが各自で異なり、公平な精度比較が難しいという課題があった。
そこで、dlshogiで使用している評価用データセットを標準化目的で Hugging Face 上に公開した。
本データセットを用いることで、ブログに掲載されている dlshogi の評価結果と同条件で精度比較が可能になる。