前回、マルチGPUで学習できるようにしたので、拡散モデルで将棋の方策を学習してどこまで精度が上がるか確認した。
学習条件
- 訓練データ:約14億
- バッチサイズ:512
- 学習ステップ:10万ステップ
- 学習率:1e-4
- オプティマイザ:AdamW
- GPU数:2
- 検証データ:floodgateのR3500以上の棋譜からサンプリングした856,923局面
10万ステップで打ち切ったので、訓練したサンプル数は約5千万である。
学習結果
floodgateの棋譜の指し手に対する正解率は、47%くらいになった。
dlshogiの30ブロックのモデルをバッチサイズ4096で同じサンプル数学習したときの正解率は約46%だったため、同等以上の精度になっている。
パラメータ数は、dlshogiの30ブロックモデルの約53.4%と、dlshogiのモデルより小さい。
Name | Type | Params |
---|---|---|
dlshogi_model | PolicyValueNetwork | 80.5 M |
unet | UNet2DConditionModel | 43.0 M |
ただし、拡散モデルの条件付けには、dlshogiのモデルを使っているため、訓練データ数は同じとは言えない(dlshogiのモデルは約40億局面学習している)。
学習時間
10万ステップの学習に、19時間57分かかった。
dlshogiの30ブロックでは、同じのサンプル数(12000ステップ)学習にかかった時間は4時間1分なので、2GPU使用して約5倍かかっている。
まとめ
拡散モデルで将棋の方策を学習して、どれくらいの精度になるか確認した。
同じサンプル数を学習させた場合、dlshogiの30ブロックモデルと同等の精度になることが確認できた。
ただし、拡散モデルの条件付けにdlshogiのモデルを使用しているため公平な条件ではない。
次は、詰みの手順など学習が難しい局面の学習ができるか確認したい。