将棋 AI の文書の中ではやねうら王の説明文書が一番詳しいと思うのですが、「CPU の種類」→「GPU の有無」→「評価関数の種類」という説明順序の方が分かりやすいと思うので、この順番で部分的に引用 (抜粋) します。
CPU ターゲットの種類
説明文書より。
noSSE ⊂ SSE2 ⊂ SSE4.1 ⊂ SSE4.2 ⊂ AVX2 ⊂ AVX-512
のような関係があります。例えば、SSE4.2なら、SSE4.1とSSE2の命令はすべて含み、そこに+αで命令が追加されているという感じ)
CPU-Z を起動して、そこの「Instructions」を見れば、自分の CPU がどこまで対応しているか分かります。
以下の表も、やねうら王の説明文書からの抜粋です。
実行ファイル名 | ターゲットCPU | CPUベンダー | ターゲットOS |
---|---|---|---|
YaneuraOu_XXXX_zen3.exe | Ryzen第3世代 | AMD | 64bit OS用 |
YaneuraOu_XXXX_zen2.exe | Ryzen第2世代 | AMD | 64bit OS用 |
YaneuraOu_XXXX_avx2.exe | AVX2 以降用 | Intel | 64bit OS用 |
YaneuraOu_XXXX_sse42.exe | SSE4.2 | Intel/AMD | 64bit OS用 |
YaneuraOu_XXXX_sse41.exe | SSE4.1 | Intel/AMD | 64bit OS用 |
YaneuraOu_XXXX_sse3.exe | SSE3 | Intel/AMD | 64bit OS用 |
YaneuraOu_XXXX_sse2.exe | SSE2 | Intel/AMD | 64bit OS用 |
YaneuraOu_XXXX_nosse.exe | SSEなし | Intel/AMD | 32bit OS用 |
💡 XXXX の部分には、評価関数タイプ(NNUEとかKPPTとか)が入ります。 |
思考エンジンの種類
PC の中心的な思考部品「CPU」には core (コア) と呼ばれる高性能な頭脳がいくつか入っています。(数万円の安い PC にも価格相応の CPU が入っています。)
Gaming PC などだと、この CPU の他に「GPU」と呼ばれる思考部品があり、非高性能な頭脳が数千個程度入っています。(安い PC には GPU は入っていません。)
以下の表はやねうら王の説明文書からの抜粋です。
エンジンの種類 | 特徴 |
---|---|
やねうら王 | やねうら王の通常探索エンジンです。 NNUE系などと呼ばれるのはこれです。 GPUがなくても遊べます。 |
ふかうら王 | dlshogi互換エンジン。Deep Learningを用います。 GPUなしでは本来の性能の1/10も出ません。 |
詰将棋エンジン | 詰将棋に特化したエンジンです。 |
ユーザーエンジン | ユーザーで新たに作る思考エンジンです。 |
評価関数の種類
説明文書より。
💡 評価関数とは、人間で言うところの「大局観」に相当するものです。局面を評価して、その形勢を数値化して返す(数学的な意味での)関数です。
評価関数名 | 内容 | 特徴 |
---|---|---|
KPPT | 3駒関係 + 手番 | Apery(WCSC26)、Apery(SDT4)「浮かむ瀬」の評価関数フアイルがそのまま使えます。 |
KPP_KKPT | 軽量化されたKPPT | 過去のサブプロジェクトのKPP_KKPT型ビルド用評価関数のところにあるものが使えます。 |
NNUE | 浅いニューラルネットワークを用いたもの | tanuki-(SDT5,WCSC28,WCSC29),NNUEkai、水匠5などの評価関数ファイルがそのまま使えます。 |
MATERIAL | 駒得系の評価関数 | 評価関数パラメーターは実行ファイルに埋め込まれているため、評価関数ファイルは必要ありません。 |
💡 現在主流の評価関数はNNUEです。
👉 NNUE評価関数は、いくつかの種類に分かれています。
NNUEの名前 | 入力特徴量 |
---|---|
halfKP | halfKP |
KP256 | K + P |
HALFKPE9 | halfKP + 利きの数 |
HALFKP_VM_256X2_32_32 | halfKPで左右のミラー考慮 |
HALFKP_1024X2_8_32 | halfKPで1層目の入力が1024に拡大したもの |
💡 標準的なNNUEは、halfKPというタイプです。 💡 WCSC32の『マメット・ブンブク』以降、HALFKP_1024X2_8_32が開発者の間で普及してきています。
以上、やねうら王の説明文書からの抜粋です。
なお、「NNUE」は Efficiently Updatable Neural Networks の略 (を左右反対に綴ったもの)、KPPT は King-Piece-Piece-Turn (王将-他の駒-他の駒-手番) の略、だったと思います。
やねうら王は細かい設定をしなくても自分の棋譜解析程度ならかなり役立ちます。しかし、AI 同士で対局させる場合は設定項目についてちゃんと知っておく方がよいと思います。
ふかうら王 (や dlshogi) は TensorRT 回りの導入が面倒そうで (そもそも私の PC はまともな GPU を積んでいないので) 手を出したことがありません。