| 物 | 内容 | 費用 |
|---|---|---|
| Apple Silicon Mac | M1以降。RAM 8GBでも動く(設定に注意) | — |
| Xcode Command Line Tools | xcode-select --install で入る。Xcode本体は不要 | 無料 |
| やねうら王 FANBOX 支援 | 水匠11の評価関数の入手に必要(月3,500円プラン) | 有料 |
| Tailscale | 外出先アクセス用の無料VPN | 無料 |
suisho11-SFNN...7z → 展開すると nn.bin 約129MB)user_book1-12041007-peta.7z 278MB → 展開すると user_book1.ybb 約1GB、1,204万局面)nn.bin を置くフォルダを決める。本稿では ~/Desktop/ShogiEngines/Suisho11/ に置いた水匠11は「特殊アーキテクチャの評価関数」なので、配布バイナリでは読み込めません(FileMissMatch エラーになる)。やねうら王の最新ソースから、水匠11専用の型を指定して自分でビルドします。
評価関数のファイル名に、指定すべきアーキテクチャ型がそのまま書いてあります。水匠11なら SFNN_halfka2_1024_7_64_k3k3。これを YANEURAOU_ENGINE_ の後ろに付けます。
# 1. やねうら王の公式ソースを取得(既にあれば git pull)
git clone https://github.com/yaneurao/YaneuraOu.git ~/shogi/YaneuraOu-build
# 2. ビルド(PYTHON=python3 が必須。ここでハマる)
cd ~/shogi/YaneuraOu-build/source
make -j4 tournament \
YANEURAOU_EDITION=YANEURAOU_ENGINE_SFNN_halfka2_1024_7_64_k3k3 \
TARGET_CPU=APPLEM1 \
COMPILER=clang++ \
PYTHON=python3
# 3. できたバイナリを配置(分かりやすい名前に)
mv YaneuraOu-by-gcc ~/Desktop/ShogiEngines/Suisho11/Suisho11_YaneuraOu-tournament-applem1
PYTHON=python3 を付けないとビルドが失敗します。Makefileが python を呼ぶのに、macOSには python3 しか無いためです。エラーが出たら真っ先にここを疑ってください。xcode-select -p が /Library/Developer/CommandLineTools を返せばOK)。nn.bin と同じフォルダに eval_options.txt を作り、1行だけ書きます。水匠は FV_SCALE=40 が必須です。
FV_SCALE 40
cd ~/Desktop/ShogiEngines/Suisho11
{ printf 'usi\nsetoption name EvalDir value %s\nsetoption name FV_SCALE value 40\nsetoption name Threads value 4\nsetoption name USI_Hash value 1024\nsetoption name USI_OwnBook value false\nisready\n' "$PWD"
sleep 2
printf 'position startpos moves 7g7f 3c3d 2g2f\ngo movetime 6000\n'
sleep 8
printf 'quit\n'
} | ./Suisho11_YaneuraOu-tournament-applem1
id name YaneuraOu NNUE 9.60git 64APPLEM1 TOURNAMENT が出れば起動成功readyok が出れば評価関数の読み込みOKbestmove が返れば探索OK(実測: 4スレッドで約230万NPS、5秒で27手先まで読んだ)USI_Hash は 1024(MB)までが安全圏。水匠5と水匠11を同時起動するとハッシュが2GB超になり重くなります。ペタショック定跡(Part 1でDLした user_book1.ybb)を ~/shogi/book/ に置き、エンジンに以下を設定します。
| オプション | 値 | 意味 |
|---|---|---|
| BookDir | ~/shogi/book | 定跡フォルダ |
| BookFile | user_book1.db | .db 指定で同名 .ybb に自動フォールバック |
| BookOnTheFly | true | 8GB機は必須。1GBの定跡を丸読みしない |
| USI_OwnBook | true | 定跡を使う |
.db と書くのに実体は .ybb、というのがコツ。.ybb は従来の .db の1/3サイズで、丸読みせず高速に引けます。家のMacをエンジンサーバにして、Tailscale(無料VPN)で外から繋ぎます。UIは本家 ShogiHome そのまま——評価値も読み筋も、盤面の矢印も、手のひらに乗ります。
yoset77/shogihome-lab(本家 sunfish-shogi/shogihome のセルフホスト版フォーク・MIT)を導入します。構成はこうです。
engine-wrapper/engines.json に水匠11を登録(EvalDir・FV_SCALE=40・USI_Hash=1024・Threads=4 と、Part 3 の定跡オプション)http://<MacのTailscale IP>:8140 を開くこれで外出先から、家の水匠11がフルパワーで検討してくれます。
mobile_ai・Flask・ポート8766)。矢印は無く評価値バナーと読み筋だけですが、依存が少なく動作が軽い。ShogiHome Lab が重ければこちらから。自分のテールネットに入っていない人(家族・将棋仲間など)にも使ってもらいたい場合は、Tailscale の Funnel 機能で特定ポートだけを公開できます。Tailscale社のインターネット上の中継サーバが「公開の玄関」を代行し、指定ポートへのアクセスだけを暗号トンネルで転送する仕組みです。マシンの他のポートは非公開のまま。
# ShogiHome Lab (:8140) を公開ポート10000で外部公開
tailscale funnel --bg --https=10000 http://127.0.0.1:8140
# やめるとき(玄関ごと消える)
tailscale funnel --https=10000 off
公開URLは https://<マシン名>.<テールネット名>.ts.net:10000/。DNS登録もHTTPS証明書(Let's Encrypt)もTailscaleが自動でやってくれるので、相手はスマホのブラウザで開くだけです。
3つだけ注意:
ALLOWED_ORIGINS(例: https://<マシン名>.<テールネット名>.ts.net:10000)に追加してサーバを再起動しないと、403「Invalid Host」になります(実際になりました)配布のペタショック定跡とは別に、自分の対局から個人定跡を作るパイプラインも組めます。ポイントは「両対局者の手を頻度だけで登録すると、負け将棋の敗着まで定跡になってしまう」という罠を避けること。自分の手だけを、勝敗タグ付きで登録し、定跡を抜けた局面で評価値が互角以上を保つよう水匠で穴を検出・修繕する——という設計にしました。(詳細は別稿)
Windowsはビルド環境(コンパイラ)が無いと詰みますが、ビルドせずに済む抜け道があります。FANBOX の同じ News Letter 記事の中に、Windows用の公式配布バイナリ(storage.yaneu.com の7zアーカイブ)へのリンクがあり、これは認証不要の公開CDNです。展開すると水匠11アーキテクチャのフォルダにCPU種別ごとのexeが8種(AVX2 / AVX512 / AVX512VNNI / ZEN1/2 / SSE41/42 / AVXVNNI)入っています。自分のCPUに合うものを選ぶだけ。古めのCPU(AVX512非対応)なら AVX2版を選びます。
本稿が配るのは「手順と設定」だけです。ソフトも評価関数も、正規の入手元から各自でどうぞ。