0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mac mini M4に将棋AIを導入してみた(NNUE系、DL系)

Last updated at Posted at 2024-11-11

はじめまして
普段はフリーのwebエンジニアをやっていますshutaです。

最近Mac mini M4を購入したのですがせっかくスペックが上がったので趣味の将棋のAIを導入してみました。
今回はその手順について書かせていただこうと思います。

筆者について

将棋ウォーズ六段
最新のAIについての知識はほぼゼロなのでご了承ください。

NNUE系とDL系

現在、将棋AIの評価関数はNNUE系とDL系の2つに分かれるようです。
NNUE系はニューラルネットワーク、DL系はディープラーニングで学習した評価関数とのことで、
DL系の方が読める局面は少なくなり、その分人間の思考により近く正確に局面を読むことができるようになるようです。
今回はそのどちらも導入してみます。

NNUE系の導入

まず、gitからやねうら王をcloneします。

$ git clone git@github.com:yaneurao/YaneuraOu.git

MakeFileを編集します。
YaneuraOu/source/MakeFileを開き、TARGET_CPUを変更してください。

- TARGET_CPU = AVX2
+ #TARGET_CPU = AVX2
+ TARGET_CPU = APPLEM1

MakeFileの編集はこれだけで大丈夫なはずです。
最後にビルドします。

$ cd YaneuraOu/source
$ make

これで/source内にYaneuraOu-by-gccというファイルができていればOKです
このファイルを適当なディレクトリ内に移動させます。

├── YaneuraOu-by-gcc
├── eval
└── book

後々使うのでeval、bookというフォルダも作成しておきます。

まずはこの状態で将棋所にエンジン登録してみましょう。
将棋所で対局->エンジン登録からディレクトリに移動させたYaneuraOu-by-gccを登録します。

これで対局開始してみます

https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_304831_0a738cad-6005-6cbc-0e19-6c4c2e050c62.png

eval内に評価関数ファイルがないので動きませんでした。

今回使用させていただいたやねうら王は探索エンジンのみで、評価関数ファイルは別で用意する必要があります。

フリーで公開されている評価関数はいくつもあり、有名なところだと水匠(https://github.com/yaneurao/YaneuraOu/releases/tag/suisho5 )などがあります。

今回は筆者の志向でqhapaq(https://github.com/qhapaq-49/qhapaq-bin/releases/tag/tagtest )を導入します。

js26.7zをインストール、解凍してeval/nn.binをYaneuraOu-by-gccと同じディレクトリのeval以下に配置します。

├── YaneuraOu-by-gcc
├── eval
│   └──nn.bin
└── book

評価関数ファイルを配置後、対局開始することができました。

スクリーンショット 2024-11-12 7.51.59.png

book以下のディレクトリですが、定跡ファイルを配置することでAIに指定した定跡で指してもらうことができます。
私は振り飛車の研究がしたいので公開されている振り飛車の定跡ファイルを読み込ませています
https://github.com/32hiko/HoneyWaffleBook/releases

bookフォルダ内に定跡ファイルを置いた後はエンジン設定でファイルの指定をします。

├── YaneuraOu-by-gcc
├── eval
│   └──nn.bin
└── book
    └──user_book2.db

スクリーンショット 2024-11-12 8.29.06.png

これで振り飛車を指してくれるようになりました。

DL系の導入

DL系の場合もやねうら王からビルド可能です。

MakeFileを編集し、YANEURAOU_EDITIONを変更します。

- YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE
+ YANEURAOU_EDITION = YANEURAOU_ENGINE_DEEP_COREML

NNUE系と同じようにビルド後、フォルダを作成しファイルを配置します。

├── YaneuraOu-by-gcc
├── eval
└── book
    └──user_book2.db

mac上で使用できるDL系評価関数が公開されているので使用させていただきます
https://github.com/select766/FukauraOu-CoreML/releases/tag/coreml-sample-20220613

こちらでDlShogiResnet10SwishBatch.mlmodelをダウンロードし、eval以下に配置後、DNN_Model1に「DlShogiResnet10SwishBatch.mlmodel」を指定
スクリーンショット 2024-11-12 8.17.49.png
これで設定完了。対局できるようになりました。

最後に

公開されているソフトを組み合わせて簡単に将棋AIを導入することができました。
試しに対局してみましたがあまりに自然な強さで、このようなものが無料公開されているとは大変驚きです。
開発された方々に感謝申し上げます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?