TadaoYamaokaの開発日記

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

【dlshogi】ラージカーネルの効果 その2(推論速度)

前回、dlshogiにおけるラージカーネルの精度と訓練速度を測定した。

推論については、測定していなかったので、追加で測定した。

モデル構造

比較するモデル構造について再掲する。

ResNet 20ブロック、256フィルタを基本モデルとして、以下のパターンで比較した。
1. 5ブロック間隔で、ブロックの最初の畳み込みを7x7カーネル
2. 5ブロック間隔で、ブロックの最初の畳み込みを7x7カーネル(depth wise)
3. 5ブロック間隔で、ブロックの最初の畳み込みを5x5カーネル
4. 5ブロック間隔で、Ryfamateと同様の9x1と1x9カーネルを並列にしたブロック
5. 4ブロック間隔で、Ryfamateと同様の9x1と1x9カーネルを並列にしたブロック

推論速度

floodgateの棋譜からサンプリングした100局面について、1秒探索した際のNPSを測定した。
4回測定し、各局面について平均を算出した。

RTX 4090 1枚で測定した。

局面について平均、中央値、最大、最小を求めた結果は以下の通り。

Ryfamateと同様の9x1と1x9カーネルを並列にした場合が、NPSが最も高い。

条件4は平均でResNetの1.042倍、
条件5は平均でResNetの1.045倍のNPSが出ている。


条件1のカーネルサイズ7x7は平均で0.73倍、
条件3のカーネルサイズ5x5は平均で0.88倍であり、
大きいカーネルサイズでは、NPSが著しく低下することが分かる。

条件2のカーネルサイズ7x7をdepth wideにした場合は、ResNetの1.008倍でNPSは低下していない。
ただし、前回測定した通り、depth wideにした場合は精度は3x3カーネル以下になるため、メリットはない。

考察

9x1と1x9カーネルは、カーネルを画素数分スライドする必要がないため、推論速度が上がっていると考えられる。

畳み込みの出力は、それぞれ1x9、9x1になるため、9x9にするために画素が1の軸はブロードキャストすることなる。
位置の情報をある程度捨てていることになるが、逆に精度が上がっていることを考えると、
将棋においては、縦横それぞれの軸でミックスした情報が重要ということなのかもしれない。

まとめ

カーネルサイズを大きくしたモデルの推論速度を比較した。
結果、大きいカーネルサイズでは、NPSが著しく低下することが分かった。
Ryfamateと同様の9x1と1x9カーネルを並列にしたブロックは、訓練速度は通常の3x3の畳み込みとほぼ同じだったが、推論速度は向上した。
Ryfamateと同様の9x1と1x9カーネルを並列にしたブロックは、精度、速度両方で効果的であることが分かった。