ChatGPT5の将棋の腕前は?AIエンジニアが本気で遊んでみる
はじめに
企画説明
こんにちは!今回は先日リリースされた話題の「ChatGPT5」の性能を、AIエンジニアが将棋を指すことで検証してみたいと思います!
本来LLMは将棋に特化したAIモデルではないのですが、Thinkingの推論能力が「博士号」レベルとのことなので、将棋も指せるのではと思い立ったことがきっかけです。
本記事は、将棋Youtuberのそらさんの企画にインスパイアされています。AIエンジニアの視点で工夫することで、さらに検証を深めてみたいと思います。
元の動画:https://www.youtube.com/watch?v=G8glD5FARxc&t=438s
自己紹介
- エンジニア:AI, 生成AI, バックエンド, フロントエンド, インフラ ...
- 将棋の腕前:ウォーズ三段
将棋の腕前は凡なので、上級者の方からしたらなぜそれを指すの?みたいな手を指すかもしれませんがご了承ください。
要件整理
課題
- 将棋という複雑なゲームでは、符号だけで推論しようとすると手が進むにつれて、盤面の状態の誤差が累積しやすくなる
- 持ち駒の状態を盤面と別で管理しないと、一貫性が失われ、LLMが誤った出力をしやすくなる
- LLMは文脈の「最もらしさ」を優先するため、先手/後手のラベルが反転しても自然な文章になる時、エラーが生じやすい(ラベルスイッチング)
- 「同歩」のように、数字の符号が含まれない表現で誤解を起こしやすい
動けない方向に駒が進む典型例
- 先後反転で歩/香/桂を後ろに動かす
- 桂の横移動・後退(桂の足は前2段のみ)
- 香の横移動、歩の横移動
- 二歩や打ち歩詰めを見落として歩を打つ
- 王手放置になる手(合い駒・応手の必要性を見落とす)
必要条件
- 毎回出力時に状態を確認させること
- 持ち駒と盤面は別で管理すること
- 「同歩」など数字を含まない符号のときは、一緒に数字を含む符号(ex.5五歩)も出力させること
- 先手と後手の盤面を明確に区別すること
- 出力の後に、特定の要件(二歩の禁止, 王手放置の禁止など)をチェックさせること
準備
システムプロンプト
次のことを意識し、プロンプトを記述します。
- 必要条件を全て含むこと
- 盤面と持ち駒はSFEN表記を用いること
将棋をしましょう。
初期局面から始めます。私が先手[a]です。
初手:▲7六歩
## ルール
・出力の前に、あなた[b]の将棋の駒の配置と、私(相手)[a]の将棋の駒の配置を全て符号で整理すること。
・上記の思考の上、次の駒の符号を出力すること。
・「同歩」や「同桂」のように数字の符号がないものは、「同歩(P55[b])」「同桂(N45[b])」のように数字による符号もつけること。
・今回指す手の候補を考えた後、3つのチェック項目に全て違反していないか確認し、違反している場合は指す手の候補を考え直すこと。
・3つのチェック項目に違反していない場合、最終的なあなた[b]の指手を確定すること。
## あなたの手のチェック項目
・二歩をしていないか
・王手を放置していないか
・駒の動きは正しいか
## 入力
・動かした駒の符号
## 出力
・あなた[b]の将棋の駒の配置の符号
・相手[a]の将棋の駒の配置の符号
・今回指すあなた[b]の手の符号
### 入力例
▲7六歩
## 出力例
### 盤面 & 持ち駒(SFEN)
```
lnsgkgsnl/1r5b1/p1ppppppp/9/9/9/P1PPPPPPP/1B5R1/LNSGKGSNL b - 1
```
### 今回指す手の候補
3c3d(3四歩)
### チェック項目
- 二歩していないか → 3筋に[b]の歩が1つしかないため、二歩していない
- 王手を放置していないか → [a]の全ての駒の可動域に[b]の王が存在しないため、王手を放置していない
- 駒の動きは正しいか → 歩は前に1マス進める。指す前の局面は3cに[b]の歩だったため、3c3dは正しい動き
### 指手
△3四歩
環境構築
今回は、将棋盤サイトを使って、盤面を動かしていきます。
ChatGPTのモデルは、「GPT5 Thinking」を使用します。
「GPT Thinking」は1手1〜2分程度の長考となってしまうのですが、「GPT5」のエージェント機能がついていないモデルにはまだ難しかったので、「Thinking」で試していきます。
将棋実践!
ChatGPTの出力(初手)
下の画像のように、「GPT5 Thinking」は完結な出力をしてくれます。
序盤
序盤は順調に進み、特に不自然な手もなく、戦型は、「角代わり」 となりました。
1つ気になったのは、8手目に後手が「△3三角」と上がったのですが、そこが少し早かったかなと思います。
16手目で歩の上に角を打ってきました。この手に先手は「▲4五歩」と角頭を攻めるのですが、「△5五角」とかわされて次の桂跳ねを見せられ、少しミスったなと思いました。仕方なく「▲5六角」と打ち、歩を守ることにしました。ChatGPT強い!
中盤
19手目、先手が角を打った場面では、角を筋違いに手放してしまった先手がやや作戦負けと考えていました。
そこからもChatGPTは目立った悪手なく、将棋が進んでいきます。
22手目の「△6四歩」は驚きました。左の銀を上がれば相手の角は詰むのですが、「△5四歩」とつくことで角を取った後こっちの角を取り返せるという読みの入った手です。
これには、「▲4八飛」と右四間飛車にして、次の「▲4六銀」から相手の角を詰ますことを狙っていきます。
飛車を回って銀を出たことで相手の角を詰ますことに成功しました。
「△7七角」とブッチしてきたのですが、4六の銀を取って → 同飛 → 5五銀打ち と進行して、銀損だけど攻めていくという指し方もあったかもしれません。
このあたりで形勢は先手がはっきりと勝勢になりました。
終盤
△5三銀とかわしてきた局面で相手玉は詰みとなりました。
結果
先手の勝ち
(先手)ウォーズ三段 vs (後手)ChatGPT5 Thinking
対局の棋譜
まとめ
結論
- エージェント機能がないと、LLMでの将棋は難しい
- 「GPT5 Thinking」では、1手1〜2分程度の長考が必要で、対局時間は1時間ほどかかる
- 序盤は有段者レベル
- 中盤以降は角打ちなど、いくつか悪手がある
- 終盤はまだまだ改善の余地あり
感想
将棋に最適化されていないLLMモデルを使って将棋の対局をしてみましたが、強かったです笑
しかし、まだ初段くらいあればGPT5 Thinkingには勝てる印象でした。
LLMの進化速度は著しいので、来年くらいには歯が立たなくなるほど強くなる気がしています。
Discussion