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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
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
770
Node.js x Chrome headless for WebRTC MCU
mganeko
1
3.4k
Extend User Experience of WebRTC with Cool Sensor Devices
mganeko
1
730
Playing with OSS WebRTC SFU meidasoup (update for v1.2)
mganeko
0
940
Build WebRTC iOS Gateway on Browser
mganeko
0
1.3k
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.6k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
250
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.6k
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
550
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
290
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
150
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
Model Studio CLI × Token Plan
maigo999
0
170
モバイルアプリ開発概論2026
recruitengineers
PRO
5
580
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Making the Leap to Tech Lead
cromwellryan
135
10k
The Curious Case for Waylosing
cassininazir
1
450
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
520
Thoughts on Productivity
jonyablonski
76
5.3k
Chasing Engaging Ingredients in Design
codingconduct
0
260
WCS-LA-2024
lcolladotor
0
790
Done Done
chrislema
186
16k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
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)