見出し画像

将棋 AI を使った研究環境を作るための Tips

はじめに

現在の将棋AIはとても性能が高く、高機能な無償のGUIと組み合わせれば将棋の研究に大いに役立ちます。
一方で、将棋AIの技術的な知識を持たない利用者にとって、環境構築は易しいものとは言えません。
この記事では、研究環境を整えるための Tips をまとめます。

PC環境について

💡CPU

多くの将棋 AI にとって、 PC の部品の中で CPU (メインの演算処理装置)の性能が最も重要です。
CPU の性能をベンチマークツールで調べて比較しているサイトがいくつもあるので、購入を検討している型番を見てみると参考になると思います。
ただし、一般的なベンチマークツールは将棋 AI を想定したものではないので、あくまでも参考程度のものと考えてください。
コア数は多いに越したことはありませんが、2倍に増えたからといって将棋AIのパフォーマンスが単純に2倍になるわけではありません。
スペックを追求するとガンガン値段が上がっていくので、予算的に許せる範囲の中でグレードが高い製品を買うようにしましょう。

💡GPU

GPU も演算処理装置の一種ですが、グラフィックに特化しています。
「グラフィックボード(グラボ)」は高性能な GPU を積み込むための基盤です。ただし家庭用の PC だと CPU と統合されているケースが多く、「内蔵GPU」や「統合GPU」と呼ばれます。
一般的な用途は動画やゲームですが、近年では AI に応用するケースも増えています。
将棋 AI の中でも「DL系」と呼ばれる dlshogi やふかうら王は GPU を活用する AI なので GPU の性能は重要です。
一方で、やねうら王は GPU を全く使わないので、GPU の性能を気にする必要はありません。
GPU もスペックの高いものは高額なのと、CPU よりも取り扱いに注意点が多いので知識に自身の無い方が将棋 AI に使うことはお勧めしません。

💡排熱性能

将棋 AI は CPU に(DL系なら GPU に)極端な負荷をかけます。
一般的な PC の使い方でそこまで負荷をかけることは稀(まれ)です。
CPU や GPU に負荷をかけ続けるとガンガン発熱します。
熱が上がるとファンの回転数を上げて冷却しますが、冷却が追いつかない場合は CPU の処理速度を低下(サーマルスロットリング)させます。
あまりにも発熱がひどいと、最悪の場合は熱暴走という制御不能な状態になり、異常な高温になるため危険です。
筆者は GPU を熱暴走させた経験が一度あり、慌てて電源ボタンを長押しして PC を停止させました。

ノートPCよりも空間に余裕のあるデスクトップ型の方が冷却には有利です。
ノートPCの場合はバッテリーを積んでいる点でも、より熱に気をつかう必要があると言えます。
デスクトップ型の中でも、小型のものは熱がこもりやすい傾向があります。

💡OS

macOS より Windows の方が将棋関連のソフトウェアは充実しています。
ただ、最近は ShogiHome や将棋所、やねうら王など mac 版を配布するソフトウェアも増えたので困ることは少なくなったと思います。
macOS の場合は古い Mac を入手しない限り CPU も Apple 製になります。Intel や AMD の CPU を使いたい場合は Windows が必要です。

💡その他

メモリも大きい方が良いですが、これもそれなりに費用がかかります。
自身の使い方に合わせて選ぶ必要がありますが、通常は 16GB くらいで良いと思います。

ストレージ(SSD)のサイズや速度は将棋 AI の性能には直結しません。

セットアップの基礎知識

将棋神やねうら王激指のようにオールインワンで販売されているものをインストールするのは簡単です。
しかし、近年の将棋関連ソフトは手軽に入手できる代わりに、必要なものを自分で集めてインストールしなければなりません。
通常は GUI(画面表示アプリ)エンジン(将棋AI)がそれぞれ 1 種類以上必要です。

GUI とエンジンの構成例

さらに近年はエンジン本体(探索部)評価関数(評価値算出部)を別の開発者が作るケースが増えており、それらを個別に入手する必要があります。
従って、やねうら王を使用する場合は次の 3 種類をインストールする必要があります。

  • GUI のアプリ(ShogiHome、ShogiGUI など)

  • やねうら王

  • NNUE 評価関数(水匠、tanuki-、BLOSSOM など)

また、場合によっては定跡を追加で入手します。定跡がなくても困るわけではありませんが、定跡があれば事前に調べた最善手や評価値を見る事ができます。エンジンに定跡が同封されている場合もあります。

GUI のインストール

GUI のインストールは比較的簡単です。ただし、インストーラーが付属していないものを使う場合は、自分で置き場所を決める必要があります。

ShogiHome はインストーラーを起動するとすぐにインストールが開始され、成功するとアプリが立ち上がります。
ShogiGUI もインストーラー版を使用すれば、簡単な操作でインストールが完了します。
将棋所 や WhaleWatcher にはインストラーが付属していません。自分で置き場所を決めた上で、ダウンロードしたファイルを移動する必要があります。

エンジン(AI)のインストール

💡入手可能なエンジン

エンジンの入手先は例えば以下のリンク集が参考になります。

ただ実際のところ、多くの人の関心はやねうら王系と dlshogi だと思います。
2024 年現在、やねうら王系の最新 AI を入手する主な手段は、やねうら王のスポンサーになってニュースレターを受け取るか、あるいは tanuki- シリーズを購入することです。
少し前のバージョンで良ければ tanuki- シリーズの「Háo」は無料で入手できます。
dlshogi の最新版は公開されておらず、棋神アナリティクスを通してのみ利用可能です。入手可能なものでは 2021 年の電竜戦エキシビジョンバージョンが最新です。

💡エンジンを入れる場所

エンジンをインストールする前に、置き場所を決めましょう。
インターネットからファイルをダウンロードすると「ダウンロード」フォルダに保存されますが、そのまま使うのはお勧めしません。

デスクトップに置くのは絶対駄目というわけではありませんが、最近の Windows は初期設定でデスクトップのファイルがクラウドに同期されるので注意が必要です。

いずれにしても、エンジンをまとめるフォルダ(下図上段)をまず作成し、その中に「Hao」「Suisho10beta」「dlshogi」などエンジンごとのフォルダ(下図下段)を置くようにします。
そのショートカットをデスクトップに置いたり、エクスプローラーにピン留めしておくと便利です。

将棋エンジン専用のフォルダで整理

💡やねうら王

やねうら王を使用する場合はやねうら王Wikiやねうら王のインストール手順を参考にインストールをします。
少し長い文書ですが、公式かつ詳細な情報なのでしっかり読み込むことをお勧めします。

文書だけでは難しいという人は、tanuki- シリーズ「Háo」のインストール手順が水匠の開発者によって動画で解説されているので参考にすると良いと思います。

ただし、この動画も細かいところは端折っているのと、公式 Wiki と違って最新情報が反映されないので注意してください。
例えば、動画では 7zip をインストールする必要があると説明されていますが、新しい Windows や macOS は標準で 7zip に対応しています。

一番難しいところは、どのファイルを選べば良いのかというところだと思います。
残念ながら自動で判別するツールは 2024 年現在ではありません。メンテナンスが面倒なのでおそらくは今後も作られないでしょう。
やねうら王 Wiki の以下の 2 項目を読んで自身の環境にあったファイルを選んでください。

💡dlshogi

dlshogi (DeepLearningShogi) の場合は山岡さんのブログ記事dlshogi(第2回世界将棋AI電竜戦エキシビジョンバージョン)のWindows版ビルド済みファイル公開を参考にインストールします。
ただし、このブログの本文に手順の全ては書かれていません。
ブログのリンクを開いていくと、以下の 2 つのページに行きつきます。

NVIDIA 製の CUDA 対応 GPU を搭載している場合、 CUDAcuDNNTensorRTをインストールするように書かれています。NVIDIA の公式サイトからダウンロードしてセットアップする必要があります。
CUDA 対応の GPU が無くても動かすことはできるようですが、十分な性能を発揮できないと思います。

環境構築の難易度が他の将棋 AI より高く、トラブルシューティングに知識も必要です。
一般の方が遊びで入れることはお勧めしません。

💡ふかうら王

ふかうら王のインストール手順もやねうら王と同様に やねうら王Wiki にあります。

ふかうら王も dlshogi と同じく GPU を使うので、 NVIDIA の開発ツールをインストールする必要があります。
ふかうら王の環境構築を筆者はやったことがありませんが、内容は dlshogi と似ていると思います。
こちらも、知識の無い人にはお勧めしません。

エンジン設定について

エンジンが使えるようになっても、設定が初期値のままでは十分ではありません。
自身の環境に合わせて調整をしたり、研究用途に合った設定にする必要があります。

💡やねうら王 Wiki の情報

繰り返しになりますが、やねうら王 Wiki に詳細な説明があり、やねうら王に関してはこれが公式のドキュメントです。
できるだけ公式ドキュメントの内容を確認し、この note の記事は補助的なものとして利用してください。

💡用途別でエンジンを登録

ShogiHome や ShogiGUI は同じエンジンを何度でも登録できます。
例えば Háo を 3 回登録して、「Hao 対局用」「Hao 研究用」「Hao 解析用」などと名前を付けることが可能です。

ShogiHome の設定例

将棋所の場合は同じファイルを多重に登録できません。
将棋所で同じエンジンを重複して登録したい場合は、エンジンのファイルをコピーして別名で設置する必要があります。

💡スレッド数

スレッド数(Threads)は特に重要な設定の 1 つです。
スレッド数を 2 以上にすることで、複数の読み筋を並列で探索できます。
最近の CPU は複数コア(マルチコア)を搭載しているのが一般的なので、並列に探索することで CPU の能力をより発揮できます。

やねうら王のスレッド数設定例

ただし、コア数に対してスレッド数を上げすぎると性能が悪化します。
また、複数のコアがフルパワーで稼働することで発生する熱も増えます。
PC の排熱性能を加味して設定しましょう。特に普通のノート PC に極端な負荷をかけ続けることはお勧めしません。
PC に十分な排熱性能があり、そしてハイパー・スレッディングという機能を搭載した CPU なら、コア数の 1.5 〜 2 倍のスレッド数を設定することで最高のパフォーマンスを出す事ができます。

スレッド数を上げた際の効果について注意点があります。
スレッド数を 4 倍に上げれば NPS(1 秒間の探索局面数)も約 4 倍になります。
この表示を見て 4 倍に速くなったと思うかもしれません。
しかし、並列に探索すると無駄になる局面の割合も上がるので、トータルの性能は 4 倍まで上がっていません。
排熱の弱い PC でも限界ギリギリまでパワーを出そうとする人が居ますが、リスクを取ってまでわずかなパフォーマンスアップをすべきなのかは考えた方が良いと思います。

💡ハッシュ

ハッシュ(USI_Hash)という設定項目は、将棋 AI の「ハッシュ表」という仕組みにどれくらいメモリを使うかを調整するものです。
自身の環境の空きメモリを超えない範囲で設定します。
単位は MB なので、例えば 5 GB 以上の空きが常にあるなら、4000 くらいを設定します。

USI_Hash 設定例

OS や他のアプリが使うメモリも加味して設定します。
メモリが不足すると逆に遅くなるので、余裕を持った値を設定しましょう。
この設定を少し上げたからといって劇的に高速化するわけではないので、ギリギリを攻める必要はありません。
複数のエンジンを同時に起動する場合は、合計が空きメモリに収まるように調整しましょう。

💡マルチPV

マルチ PV(MultiPV)は最善手から何番目の手までを表示するかを表します。
マルチ PV を 2 以上にすることで、最善手だけではなく、2 番目以降の手の評価値や読み筋も知る事ができます。

マルチPV設定例

対局をするときに次善手は不要ですが、研究では AI の最善手以外も知る必要があるので必須の設定です。

MultiPV=5

増やすほど深く読むまでの時間は長くなってしまうので、必要以上には大きくしないでください。

💡FV_SCALE(やねうら王)

FV_SCALE は評価値に関する設定ですが、技術的な詳細は理解できなくても問題ありません。
それぞれの開発者が言っている推奨値を確認して入力してください。

FV_SCALE 設定例

例えば水匠5なら24、Háoなら20とされています。

💡検討用の読み筋を出す設定(やねうら王)

エンジンが用いている高速化手法の影響で、実際の読みの深さより表示される読み筋が短いことがあります。
ConsiderationMode を有効にしておくと、読み筋をできるだけ長く表示するようになります。
おそらく初期設定で有効になっていますが、念のため確認しましょう。

ConsiderationMode

💡検討中に定跡を表示する設定(やねうら王)

やねうら王で読み込める定跡データを活用したい場合は、別の記事「やねうら王で検討中に定跡を表示する方法」を参照してください。