機械学習周りのプログラミング中心。 イベント情報
ポケモンバトルAI本電子書籍通販中

2022/iPadのNeural Engineで将棋AI

第32回世界コンピュータ将棋選手権の結果(2022/05/04)

2022年5月3日~5日にかけて開催された第32回世界コンピュータ将棋選手権に参加ソフト「ねね将棋」で参加しました。 今回のねね将棋は昨年12月から作り始めた、iPad上で動作する新しいソフトです。しかしながら昨年はdlshogiを改造してPC上で動かしたものを「…

iPadのNeural Engineで将棋AI part13 細かい話

他の記事で書きそびれた細かいテクニック等をまとめておきます。 CSAプロトコルでの対局テスト shogi-server shogi-server をサーバとして使います。 ruby 2.7.5をインストールする必要がありますが、それ以外は最新のMacで問題ありませんでした。 対戦相手…

iPadのNeural Engineで将棋AI part12 読み筋表示

独自のGUIを開発するため、レイアウトに自由度があります。ただ1行の読み筋を出すのではなく、複数の読み筋やその評価値を表示して、より面白い表示を試みました。 読み筋表示 動画だとこんな感じで動きます。 iPad用将棋AI、どうにか完成。 pic.twitter.com…

iPadのNeural Engineで将棋AI part11 画面表示の要件

将棋所なしのiPad単独で対局ができるようにするため、CSAプロトコルの実装に引き続き独自のGUIによる局面表示を実装します。 実は大会ルールで画面表示に関する要件が定められており、これに準拠した設計を行う必要があります。 第32回世界コンピュータ将棋…

iPadのNeural Engineで将棋AI part10 CSAプロトコルに対応する

前回まででiPadで動作する将棋エンジンのコアはできましたが、USIプロトコルでMac上で動作している将棋所と通信する仕様となっており、iPad単独では世界コンピュータ将棋選手権やfloodgateでの対局がまだできませんでした。選手権等での対局にはCSAプロトコ…

iPadのNeural Engineで将棋AI part09 Swiftで将棋エンジンを書く

前回記事から1.5か月空いてしまいましたが地道に対局エンジンのコア部分を開発していました。本記事までの実装をして、選手権の練習を1つの目的として開催された「電竜戦さくらリーグ2022」に参加し、B級で18チーム中7位(ソフト名 ねね将棋)となりました。 S…

iPadのNeural Engineで将棋AI part08 将棋所MacをTCP通信に対応させる

将来的にはiPad単独でCSAプロトコルを用いて対局サーバに接続することを目指しますが、局面を表示するUIを作る必要があり道のりが長いです。 まずは、Macで動作する将棋エンジン用UIである将棋所Macに通信を仲介してもらうことにします。 将棋所は将棋エンジ…

iPadのNeural Engineで将棋AI part07 iPadの冷却は必要か

前回までで、Core MLによる評価関数モデルの実行ができました。ただしボタンをタップした時に1回だけ実行するというものでした。対局では約1時間にわたり連続稼働する必要がありますので、連続稼働で問題がないかを確認しました。具体的には、発熱によって…

iPadのNeural Engineで将棋AI part06 Core MLでバッチサイズ固定モデル

前回は、実行時にバッチサイズを動的に指定できるモデルを作成し実行しました。今回は、バッチサイズを固定したモデルを作成し、より高いパフォーマンスを発揮するかどうか検証します。どんなバッチサイズでも受け入れるモデルよりも、バッチサイズ16しか受…

iPadのNeural Engineで将棋AI part05 Core MLでバッチサイズ可変モデル

前回は、バッチサイズ1の入力のみを受け付けるCore MLモデルを生成し、実行できることを確認しました。 DNNの実行効率(1サンプル当たりの所要時間)は一般的にバッチサイズが大きいほど向上します。 そのため、DNNを効率よく実行するにはバッチサイズ2以上の…

iPadのNeural Engineで将棋AI part04 Core MLでdlshogiの評価関数を動かす

iPad上でCore MLを用いてバッチサイズ1でモデルを動作させ、計算結果があっているかどうかの確認までを行います。 検証用データの生成 DNNではモデルがエラーなく動作したように見えても、入力データの与え方が間違っていたり、変換ツールのバグを引いたりし…

iPadのNeural Engineで将棋AI part03 dlshogiの評価関数をCore ML形式に変換

iPad上でdlshogiの評価関数であるDNNモデルを動作させるには、Appleが提供しているCore ML APIを使用します。 本記事では、モデルをAppleの開発環境へ取り込むための変換作業を解説します。 モデルの変換 dlshogiのモデルはPyTorch形式のため、これをCore ML…

iPadのNeural Engineで将棋AI part02 iPadを有線LANに接続

WCSCでは、対局サーバと将棋AIが入ったパソコンの間を有線LAN (Ethernet)で接続する必要があります。iPadを有線LANに接続する手段を検証しました。 ※本記事は将棋AIの話題はなく、WCSC特有の課題への対応手段を説明します。 接続対象の環境 WCSCの有線LAN環…

iPadのNeural Engineで将棋AI part01 構想

最近のiPhoneやiPadには、Neural Engineという機械学習専用のコアが搭載されています。 これを使ったら、モバイル端末でどの程度強いディープラーニングベースの将棋AIが作れるのか検証してみたくなりました。 というわけで、まだアイデア段階なのですが連載…