Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
M1 Macと将棋AIとUSI
Search
mganeko
December 29, 2022
Technology
1.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
M1 Macと将棋AIとUSI
社内のLTイベント用のスライドです
mganeko
December 29, 2022
More Decks by mganeko
See All by mganeko
OpenAI RealTime API WebRTCモード - シグナリングとDataChannelの使い道 -
mganeko
0
330
Canvasで簡易背景ぼかしをやってみた
mganeko
0
1.1k
WebCodecsの実装状況 / Status of WebCodecs
mganeko
0
1.7k
Small Tips to use Bun with WebSocket Server and WebAssembly Modules
mganeko
0
5.4k
Build Node.js–WASM/WASI tiny compiler with Node.js
mganeko
0
780
Node.js x Chrome headless for WebRTC MCU
mganeko
1
3.4k
Extend User Experience of WebRTC with Cool Sensor Devices
mganeko
1
740
Playing with OSS WebRTC SFU meidasoup (update for v1.2)
mganeko
0
950
Build WebRTC iOS Gateway on Browser
mganeko
0
1.3k
Other Decks in Technology
See All in Technology
指示待ちから変化に応じるClaude Codeへ!~環境からAgentへの帰り道を作る~
gotalab555
9
1.8k
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
210
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
140
書籍『生成AIの安全性入門』の入門
wataoka
0
200
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
270
AIエージェントを雇う前に決める5つのこと
knishioka
1
150
少人数データチームのDevin活用実践事例
runandy16
2
430
分割40%キーボードにスムーズに入門するには
hoto17296
1
230
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
170
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
710
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
120
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
The Invisible Side of Design
smashingmag
301
52k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
640
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Thoughts on Productivity
jonyablonski
76
5.3k
Embracing the Ebb and Flow
colly
88
5.2k
Transcript
M1 Macと将棋AIとUSI えるLT Vol.28 がねこまさし / @massie_g
やりたいこと:将棋AIで形勢判断 ABEMA TVより
将棋GUIアプリ と 将棋AIソフト ShogiGUI (Win) http://shogigui.siganus.com/ 将棋丸 - ブラウザ将棋 (Chrome)
https://shogimaru.com/ Electron将棋 Electron(Win/Mac) https://sunfish-shogi.github.io/electron-shogi/ 将棋GUI やねうら王 https://github.com/yaneurao/Ya neuraOu 水匠5 https://drive.google.com/drive/folders/19Al6 9YMkJ_cXSBhtn8df9yfxhn8QFCYo 将棋所(Win/Mac) http://shogidokoro.starfree.jp/ dlshogi https://github.com/TadaoYamaoka/Dee pLearningShogi 将棋AI 連携
今回:Electron将棋 + やねうら王 ShogiGUI (Win) http://shogigui.siganus.com/ 将棋丸 - ブラウザ将棋 (Chrome)
https://shogimaru.com/ Electron将棋 Electron(Win/Mac) https://sunfish-shogi.github.io/electron-shogi/ 将棋GUI やねうら王 https://github.com/yaneurao/Ya neuraOu 水匠5 https://drive.google.com/drive/folders/19Al6 9YMkJ_cXSBhtn8df9yfxhn8QFCYo 将棋所(Win/Mac) http://shogidokoro.starfree.jp/ dlshogi https://github.com/TadaoYamaoka/Dee pLearningShogi 将棋AI 連携
オマケ: Electronとは • https://www.electronjs.org/ja/docs/latest • Electron は、JavaScript、HTML、CSS によるデスクトップアプリケーションを構築 するフレームワーク ◦
Electron は Chromium (ChromeのOSS版) と Node.js をバイナリに組み込んでいる ◦ 単一の JavaScript コードベースを維持しつつ、ネイテイブ開発できる ◦ Windows、macOS、Linux で動作するクロスプラットフォームアプリを作成できる • 旧 Atom Shell ◦ GitHubが開発、管理 • 主なアプリケーション ◦ VS Code ◦ Slack (Desktop版) ◦ Discord (Desktop版)
セットアップの流れ • Electron将棋をインストール ◦ ダウンロード、インストール ◦ 起動→セキュリティで許可→再度起動 • やねうら王をインストール ◦
バイナリをダウンロード、解凍、お好きなフォルダーにコピー ◦ 定跡ファイルをダウンロード、解凍、やねうら王のフォルダー にコピー ◦ ターミナルから実行→セキュリティで許可→再度実行 • Electron将棋とやねうら王を連携 ◦ バイナリのパスを指定 ◦ 定跡ファイルのフォルダと、ファイル名を指定 やねうら王 評価関数 モジュール 定跡 ファイル Electron将棋
参考:M1 MacにElectron将棋をインストール(将棋GUI) • 使い方 ◦ https://github.com/sunfish-shogi/electron-shogi/wiki/%E4%BD%BF%E3%81%84%E6%96%B9 • Electron将棋 のサイトからバイナリをダウンロード ◦
サイト https://sunfish-shogi.github.io/electron-shogi/ ◦ 安定版バイナリ https://github.com/sunfish-shogi/electron-shogi/releases/tag/v1.2.1 ▪ release-v1.2.1-mac.zip をダウンロード(2022.12現在) • インストール ◦ zip を解凍し、.dmg をダブルクリック (ElectronShogi-1.2.1.dmg 022.12現在) ◦ ElectronShogi.app をApplicationsフォルダー( or 適切なフォルダー)ドロップ • 起動 ◦ ElectronShogi.app アイコンをダブルクリック ◦ セキュリティに引っかかるので、 [システム環境設定]-[セキュリティ]で実行を許可 ◦ 再度アイコンをダブルクリックして起動
参考:M1 Macにやねうら王をインストール(将棋AI) • やねうら王 のサイト https://github.com/yaneurao/YaneuraOu/releases ◦ M1 Mac版のビルド済みバイナリは無し ◦
参考:M1 Macbook Air でやねうら王を動かしてみた ▪ https://shogi.zukeran.org/2022/01/24/yaneuraoh-on-m1-macbook-air/ • M1 mac 用バイナリのインストール ◦ Mac用のKristallweizenバイナリ(2021年クリスマス版)※ちょっと古い ◦ https://github.com/bleu48/YaneuraOu/releases/tag/v7.00 ▪ Kristallweizen_M1Mac.zip をダウンロード ◦ 解凍してできたフォルダー (Kristallweizen_M1Mac)を、適切な場所にコピー • 定石ファイルを準備 ◦ 100テラショック定跡 ▪ https://github.com/yaneurao/YaneuraOu/releases/tag/BOOK-100T-Shock ▪ 100T-shock-book.zip をダウンロード、解凍 ◦ やねうら王のフォルダーの配下に booksフォルダーを作成 ◦ booksフォルダーに、解凍した 定跡ファイル(user_book1.db)をコピー • やねうら王を起動 ◦ ターミナルからバイナリ( YanauraOu-by-gcc) を起動 ▪ セキュリティに引っかかるので、 [システム環境設定]-[セキュリティ]で実行を許可 ◦ 再度ターミナルから起動 ▪ isready + [ENTER] と入力 → info〜と表示され、最後に "readyok" と表示されればOK ▪ quit + [ENTER] で止める
Electron将棋の画面
Electron将棋とやねうら王を連携 • Electron将棋の [設定] - [エンジン設定] メニュー でダイアログを表示 • 下部の[追加]ボタンをクリック
◦ 将棋AIのバイナリ(YanauraOu-by-gcc)を指定 • ダイアログに戻ったら、[設定]ボタンをクリック ◦ エンジン設定で、BookDirを指定 「book」 ◦ BookFileで定跡ファイルを指定「user_book1.db」 ◦ [OK] でダイアログに戻る • [保存して閉じる]ボタンをクリック
棋譜を解析 • 棋譜(将棋の手順)を準備 ◦ 将棋DB2からKIF形式を コピー ◦ https://shogidb2.com • Electron将棋に取り込む
◦ [編集]-[棋譜・局面貼り 付け] • [解析]ボタンで解析スタート ◦ 評価値や期待勝率を切 り替えられる 手数----指手---------消費時間-- 1 2六歩(27) (00:00/00:00:00) 2 8四歩(83) (00:00/00:00:00) 3 2五歩(26) (00:00/00:00:00) 4 8五歩(84) (00:00/00:00:00) 5 7六歩(77) (00:00/00:00:00) 6 3二金(41) (00:00/00:00:00) 7 7七角(88) (00:00/00:00:00) 8 3四歩(33) (00:00/00:00:00) KIF形式
将棋GUIと将棋AIの連携:USIプロトコル やねうら王 評価関数 モジュール 定跡ファイル Electron将棋 USI(Universal Shogi Interface) プロトコル
標準入出力経由のテキスト形式
USIプロトコル • “USI(Universal Shogi Interface)”プ ロトコル ◦ http://shogidokoro.starfree.jp/usi.html • GUIとエンジン間の通信のやり取り
は、標準入出力を通してテキストのコ マンドで行われます。 • エンジンは常に(たとえ思考中であっ ても)コマンドの受信ができる必要が あります。 • エンジンがコマンドの行を送信する場 合、最後に必ず改行コード( \n) https://engineerblog.mynavi.jp/technology/shogi-ai/ より (ちょっとATコマンドっぽい?)
将棋AI同士の対戦 将棋GUI 将棋AI 将棋AI USI USI USI USIは対称なプロトコルではないので、 直接やりとりはできない USIプロトコルを使って、
AI同士を仲立ちす る • 標準入出力を使うので、同じマシン 上で動かす必要あり • ※TCP/IP経由のCSAプロトコルもあ るらしい
実際にやってみた(同じ将棋AI同士の対戦) 将棋GUI 将棋AI やねうら王 V7.0 将棋AI やねうら王 V7.0 USI 標準入出力
USI 標準入出力 Electron将棋 同一マシン(M1 Mac)
結果:千日手(同じ手順を繰り返す→引き分け)
勝敗がついたケースもあり:先手の勝ち
リモートマシン上のAIと対戦させたい 将棋AI やねうら王 V7.0 将棋AI やねうら王 V7.0 USI 標準入出力 USI
標準入出力 将棋GUI Electron将棋 メインマシン(M1 Mac) リモートマシン TCP/IP
リモートマシン上のAIと対戦: ssh で実現 将棋AI やねうら王 V7.0 将棋AI やねうら王 V7.0 USI
標準入出力 将棋GUI Electron将棋 メインマシン(M1 Mac) リモートマシン(Intel Mac) シェル スクリプト ssh (鍵接続) ssh(TCP/IP) USI 標準入出力
まとめ • 最近の将棋ソフトは、GUI部分とAI部分が分離されている • 間をつなぐインターフェイスは共通化されている ◦ USIプロトコル、(CSAプロトコル) • M1 Macでも将棋AI動いた
◦ Intel Mac, Windows 10でも同様な手順で動かせた ◦ Intel Mac版/Windows版は、CPUの世代により拡張命令が異なる ▪ それぞれに最適化されたバイナリが配布されている • USI over SSH で M1 Mac ←→ Intel Mac 対戦もできた ◦ ビバ! UNIX思想 & 標準入出力(& SSH)