探索無しのゲームAIの話

ゲームAI界隈で話題になったらしい。

またDeepMindに追いつかれた気分です。

arxiv.org

 

機械学習で完成したモデルの強さが探索無しでチェスのグランドマスター級だそうです。

将棋の方はほぼ一年前なのですが,うちの二番絞りが探索無しでプロ棋士級になっています。

コンピュータ将棋界隈で恐らく最も大きな深層学習モデルを使っており最高精度を誇ります。

 

bleu48.hatenablog.com

bleu48.hatenablog.com

 

最高到達レートで2949ですので人類でこのレベルになるのはプロ級しかおりません。

3000超えたプレイヤーも見たのですが次のときにはBANされていたのでソフト指しなのでしょう。YouTuberで2800台の方はおります。

奨励会時代の藤井さんが一瞬近い値を出したとかいう話は真偽不明ですが噂で聞いたことがあります。

 

旧型PCの0.1秒未満・探索無しでこのレベルに到達してしまうほどには機械学習の教師データも世の中に揃ってきたと言えます。強化学習の練習問題としては次を探す時期に来たのかもしれません。

そう言えば囲碁の方はまだ欧州上位級(2,3段?)でしたね。

 

ちょっと追記しておくと,floodgate上では上記の探索無し二番絞りのレートはそれほどでもありません。理由は明白で将棋の場合最終盤で詰む詰まないを読むのは古典的な探索AIの得意とするところで随分古くから人間を凌駕しており,これがあるかないかで全く終盤の強さが変わります。(これは将棋強い人なら分かると思います。最終盤の古典AIは間違えません。)

ということで,これが全く無いモデルでもそこそこ戦えているのが驚異的と見るのが正確な表現かと思います。探索無しで詰将棋を結構解くことが出来ている二番絞りのモデルは正直オーパーツ的ですらあると言えます。

 

対AI戦でレートがあまりよくなくても対人戦ではそこまで相手の終盤力が無いので勝てると言う感じでしょうか。チェスは終盤の方が簡単になるのでそこは楽ですね。

第2回マイナビニュース杯電竜戦ハードウェア統一戦(予選)

本年度は多方面で過労気味で本戦のまとめも遅れてしまいました。

第4回電竜戦本戦 - 48's diary

大手メディアでも本まとめの先手勝率に関して取り上げて頂いたようで将棋界での反響も大きいものかと思います。

 

で,ハードウェア統一戦に関して昨年度は運営準備に走り回りなんとか開催にこぎつけた感じでした。

電竜戦マイナビニュース杯ハードウェア統一戦開幕 - 48's diary

結果的にも様々な戦型を含む多くの棋譜を残せたこともあり非常に有意義な大会であったと個人的にも満足しています。

第1回マイナビニュース杯電竜戦ハードウェア統一戦の戦型分析 - 48's diary

多くの将棋関係者からも後々になりましたがコメント頂きました。

 

問題点と言うほどのことでもないのですが,運営メンバーである私が決勝に残っているのがどうも公平な大会に見えないとの指摘がありましたので,本年度はノータッチで昨年のものをそのまま使うと言うサンドバッグ役を担当します。

まぁ,単に勝ちたければうちの敗着棋譜を分析してそのまま指しても勝てるということです。

また,年越しの間のリモート操作で不手際な感じがするとのことで今年度は年明けの1月12日に開幕としました。

 

開幕前にアナウンスしなければならないところでしたが

既に予選を終えてしまいました。

電竜戦

www.youtube.com

解説の窪田先生が交通トラブルで結局どこから中継に参加されたのか分かりませんがなんとか間に合われたようで少し肝を冷やしました。

 

予選リーグ表は240戦の膨大な組み合わせを自動化して行われており詳細分析的なものは今後行わると思います。運営トラブルも昨年は少しあったものの今年はほぼ皆無です。

【予選】第2回マイナビニュース杯電竜戦ハードウェア統一戦 勝敗表

(少しは分析してからブログにしようと思ったのでなお遅れてしまいました)

 

雑感として全勝も全敗も居ない接戦と言うのは昨年と変わりません。一部Daigorillaが一勝しかできていない事象がありますが何らかの設定ミスかもしれません。しかしながら,後手番の水匠に大きな逆転勝ちをしているなど必ずしも強い弱いと一元的に扱えないという事実を示してくれました。総当たりリーグの主催者としては非常に面白い結果と言えます。

 

で,2月4日の本日に決勝トーナメントの初戦があります。

 

 

 

 

 

 

 

 

CoreMLの実験(dGPU無い勢)

今年はNPUが半導体界隈でのキーワードでしょう。

岡山のAI勉強会でもUSB接続などのNPUを持ち込んで見せてくださる方などが居て雰囲気はありましたが、インテルAMDがCPU内包の実機を出せば話は早いですね。

 

bleu48.hatenablog.com

 

他にも以前書いた「APUでDirectML」のページへのアクセス数が急増しておりdGPU無し勢にも何やら雰囲気が出てきました。

bleu48.hatenablog.com

 

スマホ界隈の方が動きが早くてNPUはAndroidでもiOSでも標準化されています。この影響でAppleの方がARMに乗り換えてからNPU搭載でも先行した形になっていました。

将棋界隈でも既に実装された例があります。

 

select766.hatenablog.com

 

世界選手権でもiPhoneで参加されるなど色物扱いですが、棋力はもちろん実装力を見せつける形になっていると個人的に注目しています。独創賞受賞されたはずです。

 

インテルAMDの実機を触る前にすこし遊んでみようということでうちの方でも下記の例を試してみました。

onnxruntime-silicon · PyPI

GitHub - cansik/onnxruntime-silicon: ONNX Runtime prebuilt wheels for Apple Silicon (M1 / M2 / M3 / ARM64)

 

手持ちには一番安いM1 MacBookがあります。これもNPU搭載実機です。

パフォーマンス的には以前計測した感じではGTX1050TiやGTX1060と争う程度です。

ねね将棋とは違いますが,手持ちの二番絞りモデルを簡単に実装したモデルで動かしてみました。

 

探索ノード数が少ないので、floodagteで勝った一局でも相手が即詰みで負けを読み切っているに手数かかって勝つ場合や互いによく分からず頓死するなど以前のAIとは相当異なる挙動を示していて面白い。

ns_m1 vs. nshogi-tE-mL-nps8000 (2024-01-28 10:30)

AobaZero_w4361_kld_avg_3200p vs. ns_m1 (2024-01-28 11:30)

探索深さで優る相手に勝つにはこういう勝ち方になることもある。 

Suisho5_750_473stb_1000k vs. ns_m1 (2024-01-28 15:30)

 

省電力で落ちたりWiFiが切れたりでレートが安定しないながらも3700は超えてきて実用にはなりそうな感じです。

NPU搭載機はハードウェア的にもう一皮剥けたらdGPU無しでもそこそこ面白いことになるかもしれません。

 

とりあえず,次の目標はRyzen 7 8700Gの入手でしょうか。

---

 

追記(02/11):

CoreMLでのonnxruntimeの使い方をまとめて頂いたのでリンクしておきます。

これでpython-dlshogi2なども動きます。

README.md · GitHub

---

 

追記2(03/07):

上記のPyPIのonnxruntimeですが更新が止まっています。

理由は明白で本家がCoreMLにデフォルト対応したそうです。普通にonnxruntime入れるとCoreML Execution Providerが使えます。

Please release 1.17.0 · Issue #16 · cansik/onnxruntime-silicon · GitHub

猫の舌

猫の舌,フランス語でlangue de chatである。

何故か年末年始で頂き物にラングドシャを頂くことが多かった。

本来猫の舌の形,具体的には薄い小判型の中頃をややくびれさせ瓢箪型にしたものが原型で語源である。しかしながら,頂いたものは全て四角であった。

 

焼き菓子の類はフランスが優勢なのか,類似案件でマドレーヌと言うものがある。こちらは元来二枚貝の形をしたものを指すが現在でも二枚貝の形をしている。マドレーヌの語源は人名である。形が違うとフィナンシェと呼ばれることが多い。厳密な定義は卵白がなんだとか粉の比率が云々と焼き菓子もマニアックな世界である。

 

で,ラングドシャの何が良かったかと言うと全部ストレートに甘い点である。触感としてザラザラした表面に加え日本の四角いラングドシャは多くチョコレートを挟んでいる。このチョコレートも昨今の甘さ控えめなんてことは皆無でストレートに甘いものばかりであった。

お茶菓子としてウケるわけだ。

 

その後いろいろと調べてみたのだが日本のラングドシャが四角い理由が未だに分からない。舌が四角い猫が日本にいたという話も聞かない。

そういえば,広義だとビスケットやクッキーと同類といっていいのだろうか。

 

タイトルを決めて書き始めたが,肝心なオチが無い。

2024年のキーワードNPUの話

昨今IT業界の話題はAI(人工知能)である。

若干スマホ界隈の方が先行していた風な感じのあるNPUであるがPC界隈も変わりつつある。

pc.watch.impress.co.jp

pc.watch.impress.co.jp

 

以前からonnxruntimeなどオープンソース系AIではマイクロソフト社の活躍が凄いのだが,Windowsとなると若干出遅れていた感がある。理由は明白でハードウェアとして多くのデバイスに対応するため個々のハードウェアに特化した機能はOSとして押し出しにくいというのがある。

今年はNPUの規格はもちろん,実装がリリースされ普及する年になりそうだと言うのが本記事のネタである。上記リンクにもあるようにインテルAMDの両者からほぼ同時にほぼ同じ程度のパフォーマンスのNPUが搭載される。裏で政治的な協定でもあったんじゃないかと思うくらいだ。

 

さらに深くコメントすると上記両者が搭載しているのは両社ともモバイル用のCPUであるということに気づくだろう。これは何を意味しているかと言うとデスクトップ機であればNVIDIA一強と言われるようにGPUを搭載することで数十倍というパフォーマンスを手に入れることが出来る。モバイル機では一部のハイエンドゲーミングノート以外ではそこまでの性能はコスト的にも電力的にも難しい。

と言うことで,本件NPUでインテルAMDが対抗してるのはNVIDIAではないことは明白である。インテル側の資料がよりはっきりと省電力を打ち出していることが分かる。つまり,AI機能専用チップにより性能向上はもちろんだが,AI機能時の省電力を目指している。

 

似たような事例があったので紹介した方が理解が進むだろう。もう20年以上の歴史になる動画再生である。古のノートPCでは動画再生は非常に負荷が大きくバッテリー駆動では30分と持たなかった。MPEG1やMPEG2の時代である。

インテルは動画再生支援機能をCPUに盛り込むことで対応された動画であれば比較的省電力で再生することに成功した。新たな動画圧縮技術が生まれるたびにそれは更新されてきた。近頃ではAV1などであろう。

ノートPCのバッテリー駆動時間の基準が古くは動画再生時間で計測されていたのだが,これが劇的に伸びる結果となり,また動画再生がむしろ軽い処理とされるほどの時代になったため現在では他のバッテリー駆動時間計測が行われているほどである。

今ではYouTubeにはじまるネット越しの動画再生ですらバッテリー駆動で気軽に使える機能となった。

 

以上から類推するにAI機能をモバイルPCにおいて容易く扱うための下準備と考えるのが適当であろう。未来像としてNPUにより常時AIアシストさせるモバイルPCと言うのが想定される。

WindowsPCのキーボードにCopilotキーが追加されるという話も出ている。

www.itmedia.co.jp

 

ここからは余談になるが,この辺の元ネタは昨年のこれのアクセス数が年末年始で伸びていたことからヒントになっている。

APUも出たときはCPUとGPUの親和性から生まれたものであるが,これも動画再生支援機能がうまく働いた。つまり低コストで動画編集などが行えるという素晴らしいものであった。今ではAI機能に期待されており,その姿勢は私以外でも多く共通するものであったという風に見える。

ただ,現行APUでAI負荷を上げると割と熱暴走するので次世代に期待している。

bleu48.hatenablog.com

 

最後にたぶん同じ気持ちの人がいると思うけど,3D Vキャッシュ搭載のAPUをAMDに期待して終わる。実機出す技術があることは明白であり,パフォーマンス的にはAIには凄く効くはず。

もちろん,インテルがやってもいいけど。

 

---

追記1/9:

AMD側はデスクトップ用のAPUでもNPUを乗せてくるらしいので8700Gでも仕入れれば実験可能のようだ。ノートPCは電源状態や冷却安定性から考えてベンチマークを取るのには向いていない。インテルもデスクトップ用で何か出荷して欲しい。

 

www.4gamer.net

第4回電竜戦本戦

開催が12月2,3日なので二週間遅れである。

ちょっと集計したデータを付ける構想を練っていたのであるが手がついていない分遅れた。

間に岡山ローカルの勉強会があったのでその前にネタバレを避けた点もある。

 

第4回電竜戦本戦参加者

総評としては新規の参加者、特に若い人が多くなったのが一番の成果と言える。運営スタッフとしては1ファイルマッチなどの構想は全て新規参加者開拓の試みである。

第3回電竜戦本戦では36エントリーから第4回電竜戦本戦では43エントリーと増加しており、うち25歳以下が9エントリーである。

 

新規参加者が多いと言うことは新しいアイデアが導入されるという事である。こういうマニアックな大会では常連が複数年かけてじっくり作り上げるものが多いがアイデアとしては凝り固まったり中長期的に方針が不変であったりする。もちろん大きな成果を生みためには当然の行為であるが、競技自体の硬直化につながると考えている。

 

結果一覧は以下のリンクである。

denryu-sen.jp

 

優勝は水匠。直前まで変更を加えていたやねうら王エンジンとたぶんお金を出してもすぐに買えないくらいのモンスターマシンがAMDから提供されているとのことですので、さすがですね。

 

2億npsと言われてピンと来ないので、私が白ビールで世界選手権優勝した際が概ね5000万nps程度だったと記憶しておりますので約4倍ですね。

二番絞りは約20万npsでした。

 

独創賞はねね将棋、生きた回線を保有したままのiPhoneで大会参加されたとのことである。

本年は多くの賞設置のスポンサーがあり解説者、聞き手、リスナーによる投票も行われた。対局数は有限であるから当然票は偏るのでW@nderERやRyfamateが複数賞を受賞するようなことになった。

 

また運営設置として置いたshotgunが真澤千星賞および大逆転賞を頂いた。運営設置であるため賞金は辞退する。

本件の理由として元々shotgunは持ち時間を極力消費せず最終版に時間を残すシステムである点および2017年のままの比較的古い局面評価関数を持っている点がある。昨今珍しく序盤をやや不利にしても中終盤を競り合うようなタイプである。

コンピュータ将棋界隈は現在序盤でついた差をじりじり拡大していくような対局が多いため逆転が少ない。その中で逆転を演じたとして観戦者の目についたのであろう。

2017年作成のウケ狙いが6年後にウケたと考えて良いだろうか。

 

決勝A級リーグの勝敗表は以下のようになった。

【A級】第4回世界将棋AI電竜戦本戦 勝敗表

チームとしては全勝も全敗もなく激戦を物語っている。

10チームの総当たりのため組み合わせは45組。その全てを先手後手2局行っている。

集計すると、45組中2連勝が21組、1勝1敗が16組(うち先手勝ちが14、後手勝ちが2)である。1勝1分が8組あり、そのうち先手勝ちが6組、後手勝ちが2組であった。

 

昨今話題の先手勝率であるが、先手視点90局として集計すると55勝27敗8分となる。

引き分け0.4点として一局平均の勝ち点(勝率)が0.646(64.6%)となる。

ちなみに引き分け0.5勝換算すると平均65.5%となる。

 

以前先手勝率が7割と話があったが若干下がった感じになっていることがわかる。

実は第4回電竜戦本戦では前例のない大変野心的な施策が行われており、先手持ち時間を後手の半分にすることで是正を試みていた。少しは有効であったが完全な是正に至っていないことが確認された。

持ち時間をさらに削るのは対局エンジンの持ち時間マネジメントを考えると非常に危険な気がするので慎重に行わなくてはならない。

 

予選やC級では大半が2連勝であるため力量差のある対局では裏表の2局セットはあまり有効ではないとの考え方もある。多彩な対局組み合わせを優先する方が参加者に喜ばれるとの指摘などがあるとして今後の運営で再検討であろう。

 

冒頭にも書いてあるが、今回は若い人・新規参加者が多く運営としては大変満足のいく結果であった。今後もどんどん参加者が増えることを期待している。

---

追記:

本戦上位者がハードウェア統一戦に参加する。

ハードウェアスペック差をなくした場合にどのチームが強いのかはっきりさせようとする大会である。スポンサー企業のお陰で本戦より賞金額が上がるという恐ろしいことになっているが是非注目して頂きたい。

ちなみに昨年準優勝の二番絞りは基準扱いとし昨年と全く同じもので出場します。今年の参加者はこの基準レベルをどうクリアするのか個人的に楽しみです。

将棋界の大谷翔平

時期は正確に記憶していないのだが内容から判断して今年の春だろう。

 

2017年『shotgun』で第5回電王トーナメント初参加準優勝との活躍に始まり,翌年世界コンピュータ将棋選手権初参加優勝・新人賞,以後今日に至るまで上位入りとそこそこキープしている。

 

個人的には一番最初に試した静的な局面情報と深層学習のみでどこまで将棋が出来るか,次に試したノータイムでどこまでやれるかと言った辺りから始まって,予測手の統計的解析,探索部分の改善やライブラリの修正,スクラッチ開発を含めて多くのところに手を出している。学術的にはコンピュータ将棋の競技者で学術発表をしているものは稀有な中,手の内を毎年明かしながらコンペに出ると言う「種明かしをしながらの手品師」と呼ばれることもある。

加えて2020年から電竜戦を主催し大会運営を行い,技術的な意味での広報や競技者や視聴者を増やす活動も加わって,プレーヤーとして勝つことより優先している。

 

コンピュータ将棋界では古典的アルファベータ探索に基づく力技のアルゴリズムと比較的新しいモンテカルロ木探索に基づく深層強化学習のモデルが拮抗している。詳しくは以前記載しているし電竜戦以外のところでも数度話してあると思う。個人的には全て実験してみる方なので両方試してみたところ両方で頂点を極めることになった。

白ビール』と『二番絞り』の共存に関して

ある人に冗談として「コンピュータ将棋界の大谷翔平」と自称していいかと伝えたところ,返しが面白かった。「それならダルビッシュじゃないの」と。

ダルビッシュである理由は以下の通り,つまりWBCの時期だったと思われる。

1.WBC準備のキャンプに早々に入り若手に馴染む

2.トレーニング手法はもちろん変化球の握りなどの選手として秘匿した方が個人的利益となるような情報まで現役のうちに後進へ伝えている

3.以上の上でコンペ成績を残している

4.メディア向け活動より選手スタッフ向けの活動を優先している

 

あ~,この人私のファンじゃないかしらと思いましたよ。

冗談から始まったネタなので言った本人も覚えているかどうか分からないのだが,昨今の大谷翔平ニュースで思い出した。

 

ざっと思い出してみるとコードレベルで貢献があるのが,やねうら王,dlshogi,AobaZero,python-shogi,cshogiなど,口頭レベルでの修正提案などを含めると確かに多くのチームの底上げに貢献した気がする。コンペで勝つのが目的ではなく技術的な共有による全体の底上げが学者の本分と思うので特別なことをしているつもりはない。

集計が遅れているが先日の第4回電竜戦本戦はとても底上げ感が強くA級,B級はもちろんC級上位ですら人間を遥かに凌駕するレベルになっている。技術の普及・一般化とは恐ろしい速度である。

 

オチに使うと申し訳ないが同郷のメジャーリーガーは野茂である。

ーーー

野茂に関して:

プロ入りが衝撃的だったので地元の子供が多くサインをねだったそうで野茂自身がサインを書くことに慣れていないために断ることすら知らず物凄い数のサインボールが地元に溢れた。公園の砂場に野茂のサイン入りビニールボールが落ちているのを当時の帰省時に目撃している。(まぁ本物かどうか分からないが)