python-dlshogi2で遊ぼう

今月に山岡さんの書籍の改訂版が出るようです。界隈では随分前から話題となっています。
 

 

V100という高級なGPUを使ってはいますが先日の電竜戦でC級全勝優勝です。

ルール上同開発者名で3つ目のエンジンは通常の予選には入れないためC級分類でリーグを戦いましたがfloodgateでのレートを見る限り上のクラスで戦うべきエンジンでしょう。

 

実は7月の電竜戦TSECにも参加されており当時の順位は予選30位と中堅クラスの実力を見せています。この時点でgithubにも公開されていたそうです。私は最近知りました。

github.com

 

ということで,書籍が届く前に少し遊んでみることにしました。

発注済ですし,献本いただくことになってます。どちらが先に届くでしょう。

dlshogiに関しては私は2017年からの交流で,同人誌もすべて目を通しています。

今年6月段階で以下の予想を立てていますがほぼ的中と言っていいでしょう。

 

bleu48.hatenablog.com

 

前の版ではchainerを使って,同人誌ではTensorflowを使っていましたがやっとPytorchです。盤面管理もcshogiなので相当高速化されます。上記予測ではonnxruntimeを使うと書きましたが,第二版はニューラルネットワークモデルへの入力特徴量はpythonで生成し以前のモデルと互換性がないものとなっています。これは読者への改造の余地を見せる意図的な演出と思います。確かにcshogiの機能を使うと肝心な弄り所へ手が届きにくくなるため,学習を促すに適当な判断でしょう。互換モデルも推論(つまり対戦)可能になっています。

 

で,どのくらい強いのか少々試してみましたがgithubにあるチェックポイントファイルが相当学習されているのかこれが非常に強く,GTX1060程度のGPUでも技巧に勝てます。

同GTX1060で完全にゼロから学習させてみたところ,floodgate2020年棋譜で1epoch約1時間くらいだったのを8epoch回したものでLesserKai(将棋所付属,所謂れさ改)には楽勝となりました。

 

ご存じない方に一応,れさ改は私でも勝てる程度のエンジンです。技巧はプロでも勝てない程度の棋力です。

良い教師データがあればもっと簡単に強くなると山岡さんからコメント頂いており,書籍内ではその入手方法も説明されているとの噂です。

ちょうど年末ですので年末年始お暇な方は本書とそこそこのGPUで将棋の深層学習などはじめてみるのも一興かと思います。如何でしょうか?

 

ーーー

ちなみに,NVIDIAGPU以外つまりCPU内臓のGPUAMDGPUでもonnxruntime-directmlというライブラリを使うとWindows上では高速化されるのですが,通常想定されている以上の負荷がかかるために連続運転時では不安定になるようです。

棋譜検討程度では問題ないかもしれませんが,離席して連続対戦させるのは経験上お勧めしません。

---

追記12/9:

GTX1060で技巧に勝てるは条件次第でした。短時間戦に限ります。

しっかりと考えた中終盤の技巧は強いです。