最新将棋AIの必要性を感じてなかった
以前の記事にも書きましたが、将棋ソフトに関しては「AI将棋13」というかなり古いWindows用の将棋ソフトをUbuntu機でWineを使って動かしてます。自分の棋力ではこのソフトで十分な強さですし、GUIが使いやすく詰将棋の入力や解答にも便利なので、特に最新の将棋AIソフトを使う必要性を感じていなかったからです。
でも、そろそろ最新とまでは行かなくても近年の将棋AIを味わってみるかと思い立ちUbuntuに導入してみました。「やねうら王」自体は昔からLinuxに対応しているのは知っていましたが、将棋GUIソフトで「ShogiHome」というものが存在することを知ったのが切っ掛けで、UbuntuでGUIが動かせるならやってみようって感じです。
「やねうら王」に詳しいわけではないので細かな設定は分かりませんが、とにかく動かすために自分がやった手順を紹介してみます。
必要なもの
-
やねうら王
自分の環境に合わせてコンパイルが必要です。 -
評価関数
この記事内の「6. 評価関数のタイプ」という表の中から評価関数を選んで、リンクを辿ってダウンロードします。nn.bin
という名前の評価関数ファイルだけあればとりあえず使えるようになるみたいです。自分は表の中から無料で使えてお勧めされている『Lí』(tanuki-wcsc33-2023-05-04)
を選んで、リンク先からtanuki-wcsc33-2023-05-04.7z
をダウンロードしました。 -
将棋GUI(ShogiHome)
リストの中のrelease-v1.14.2-linux.zip
をダウンロードしました。
インストール手順
- やねうら王をダウンロード
git clone https://github.com/yaneurao/YaneuraOu.git cd YaneuraOu
-
source/eval
ディレクトリを作成して、評価関数ファイル(nn.bin
)をコピーcd source mkdir eval cp -p ~/Download/tanuki-wcsc33-2023-05-04/eval/nn.bin eval/
- Makefileを編集
-YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE +#YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE -#YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE_HALFKP_1024X2_8_32 +YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE_HALFKP_1024X2_8_32 -#TARGET_CPU = ZEN3 +TARGET_CPU = ZEN3
変更したのは上記3行です。 自分のUbuntu機のCPUは
AMD Ryzen 7 5700G with Radeon Graphics
なのでTARGET_CPUをZEN3
に、ダウンロードした評価関数がtanuki-wcsc33-2023-05-04
なのでYANEURAOU_EDITIONをYANEURAOU_ENGINE_NNUE_HALFKP_1024X2_8_32
に、と言う感じです。「やねうら王のインストール手順」の「6. 評価関数のタイプ」に書かれている表のとおりに指定しただけです。 - やねうら王をコンパイル
make
YaneuraOu-by-gcc
というファイルがsourceディレクトリに出来上がります。 - ダウンロードした
ShogiHome(release-v1.14.2-linux.zip)
を解凍し、ShogiHome(ElectronShogi-1.13.7.AppImage)
を右クリックから実行 - 後はShogiHomeの画面から[設定]->[エンジン設定]->[追加]で、先程コンパイルした
やねうら王(YaneuraOu-by-gcc)ファイル
を選択して[保存して閉じる]するだけです。
※上記手順の実行環境はUbuntu22.04ですが、Ubuntu24.04を新規にインストールした環境ではShogiHomeの実行ファイル(AppImage)が動きませんでした。
libfuse2
が必要なようです。
sudo apt install libfuse2
22.04の自分のUbuntu環境にはすでに入っていたようです。
ナイアガラの滝を検証
試してみるまでもなく結果は分かっていると思いながらも、一応「AI将棋13」と手動で3局対局させてみましたが「やねうら王」の圧勝でした。予想通りでしたがこれだと面白くないので、将棋で大逆転が起きたときの棋譜を一つ比較してみることにしました。
まずは「AI将棋13」で解析すると以下のように先手優勢から一気に後手に振れる所謂ナイアガラの滝
状態です。
次は同じ棋譜を「やねうら王」で解析した結果です。グラフの赤い縦線が引かれているところは上のグラフの縦線が引かれているところ(先手のピーク)と同じ局面です。
つまり、「AI将棋13」だと終盤一気に逆転したように見えますが、「やねうら王」で確認すると先手のピークは10手以上前に過ぎていて、「AI将棋13」で先手大優勢に見える局面は「やねうら王」では既に後手優勢に変わっていて、逆転したのはかなり前の局面だったことが分かります。
AIが進化すると共に勝敗の結論がどんどん前倒しで分かるようになって、いずれは初手を指した瞬間にグラフが上か下に張り付くようになるのでしょうね。将棋の結論が持将棋や千日手ならそうはなりませんが。
比較に使った2006年発売の「AI将棋13」は古過ぎるだろうという指摘もあると思いますが、今手元にあるAndroidアプリの「ShogiDroid」で確認しても先手のピークは「AI将棋13」と同じでした(「AI将棋13」はよく出来ていると思います)。「ShogiDroid」のAIはGPSfish
のようなので、詳しくは知りませんが2016年辺りのAIだと思います、PCではなくスマホで動いているというハンデはありますが。
関係ないですが「ShogiDroid」を更新しようとして確認してみたところ、今はもうGooglePlayに公開していないようです。
スポンサー
最近将棋はYoutubeやAbemaで見るだけなのですが、「やねうら王」は今後も棋譜解析に使うと思いますのでわずか$10
だけですがここから支援しました
送金しながら思ったのは「趣味で将棋を楽しんでいるだけの自分が支援しているのに、仕事で金儲けのために将棋AIを使っているプロ棋士が支援しないのはおかしいんじゃない?」とは思いましたね個人的に支援してるプロ棋士はいるらしいですけど
ShogiHomeもgithub sponsorの窓口用意してくれれば支援したいと思ってます。
OSSについて少し思うこと
それにしてもOSSで開発資金回収って難しいだろうなとは思います。本来はどこかの企業に独占させない自由
なソフト(Free Software)というのがOSSの精神だと思いますが、日本ではFree
を無料
と訳して無料ソフトだと喧伝されているのが残念です。日本人のほとんどがフリーソフト=無料ソフトという認識しか持ってないのではないでしょうか
でもOSSの精神を誤解している人が多いことは残念だとは思うけど、すべてのソフトウェアについてOSSがすばらしいやり方だとも思いません。公共性の高いソフトウェア(例えばLinuxやGit)なんかは今OSSとして開発されていることが素晴らしいことだと思いますが、自分個人が作るようなソフトのソースを公開しても「パクられて終わり」になると思うので、GNUの所謂GPLライセンス
でソフトウェアを公開したいとは思えません。「やねうら王」に関しては過去の経緯を踏まえて仕方なくGPL
にしているって感じでしょうか?違ってたらスイマセン事情をよく知らないし、ライセンスについても詳しいわけではないのでこの辺りで止めておきます。