0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# 勉強で作った創作将棋ツールの紹介#1-1

0
Posted at

イントロダクション

きっかけは、将棋ユーチューバーとして有名なそらさんのある動画

【すげえ…】Gemini3.0「そらの将棋を分析した結果wwwww」:将棋実況 そら

これを見ると、意外とLLMで将棋対局の解説ができている様子でした。
従来の棋譜解析ソフトは、形勢グラフでしか自分の対局を振り返れませんでしたが、「言語化」してくれるシステムがあったら面白いんじゃないか?
そんなインスピレーションがあって、勉強も兼ねて色々作ってみました。

私の「創作将棋ツール紹介」シリーズについて

私が作った将棋ツールは、

  • 読み
  • 筋/形などのパターン認識
  • 局面判断

の3つの力を鍛えることで将棋が強くなる、という考え方で作っています。

今まで作ったツールは

  • LLM自動分析ツール(#1)
    • AIが自分の負けた将棋対局について自動で分類、レポートを作成
  • 将棋ノートツール(#2)
    • ユーザー自身で対局データ、勉強したURLを後から見やすく分類整理
      (開発者の私はこちらを愛用)

の2つです。

このブログシリーズでは、私の作ったツールを誰でも使える形で、セットアップ方法や使い方などを公開致します。

⚠️注意事項⚠️

※ツールのご利用はすべて利用者ご自身の責任でお願いします。ツールの利用により発生したいかなる問題についても、開発者は一切の責任を負いません。
※ツールに関するご感想やご質問、ご希望されるアップデート機能、不具合報告などは、このブログシリーズのコメント欄までご記入ください。対応できるかはお答えできかねますが、今後の参考とさせていただきます。
※公開するツールは将棋ウォーズの非公式ツールであり、HEROZ株式会社とは一切関係ありません。
※公開するツールは、将棋ウォーズの公開情報(棋譜)を利用者自身が取得・解析するためのものです。他者のIDを用いた解析結果の公開、誹謗中傷、嫌がらせなど、第三者の権利を侵害する行為や悪用を禁止します。これらの行為により生じたトラブルについて、開発者は一切の責任を負いません。
※公開するツールは、予告なくアップデート、削除する場合があります。

LLM自動分析ツール

LLMとは、ごく簡単に言うと言語を扱うAIモデルのことです。本ツールはこれを使って、将棋の対局棋譜データから分析した内容を言語化してくれるツールです。

ツール概要

このツールの概要については、noteに書いたのでこちらをご覧いただければと思います。

動作フロー

  1. ユーザーが対局&振り返り
    夜1時にパイプラインが自動で実行開始
  2. ウォーズID情報などを取得
  3. 棋譜データをダウンロード
  4. 負けた対局データのレポート作成
    負けた対局データのレポート件数が40以上かつ、その月においてコーチングレポートが作成されていない場合、以降を実行
  5. 今までの負けた対局データのレポートから、弱点傾向と勉強法を提案するコーチングレポートを作成
  6. 自分が負けた対局データについて、相手の戦型別と自分の敗因別に分類
  7. 古いデータの削除やログ管理
  8. Githubのユーザーアカウントのデータ情報を更新(リポジトリにpush)
  9. 次の日、今までの対局について再度振り返り

1. ユーザーが対局&振り返り

通常通り将棋ウォーズで対局&振り返りするだけです。対局の棋譜データはshogi-extend.comというところにデータが蓄積されます。
image.png

2. ウォーズID情報などを取得

夜1時になるとGithubのツールが自動で始動。リポジトリ内に登録した情報を取得
image.pngimage.png

3. 棋譜データをダウンロード

ツールが自動でshogi-extend.comから棋譜データをダウンロードします。このデータを元に色々解析を行っていきます。
image.png

4. 負けた対局データのレポート作成

ダウンロードした対局データから、1日についき最新未解析の負けた対局データ10局分を抽出し、Geminiがレポートを作成します。
作成されたレポートは、temp/trg_YYYYMMDD_hhmm/(先手ウォーズID)-(後手ウォーズID)-(対局日時)/local_report.pdfというディレクトリ構造で保存されます。
このlocal_report.pdfの1P目に記載されている
https://shogi-club-analysis.userlocal.jp/analysis?game=~
を検索すると、将棋倶楽部24の棋譜解析サービスに盤面再現と棋譜解析が実行されます。
なお、同じ階層に保存されているraw.kifはshogi-extend.comからダウンロードした対局棋譜です。

image.png

5. 今までの負けた対局データのレポートから、弱点傾向と勉強法を提案するコーチングレポートを作成

対局振り返りレポートlocal_report.pdfが40局分以上蓄積され、かつその月で1度もコーチングレポートが作成されていないとき、AIがそれらの対局振り返りレポートデータを参照し、ユーザーの弱点傾向から、将棋の勉強方法について提案するコーチングレポートの作成と、対局データを敗因別に振分けるときの分類計画の作成を行います。
image.png
このコーチングレポート作成機能はおそらく今まで世の中になかなか存在しない機能なので、試してみると面白いと思います。

6. 自分が負けた対局データについて、相手の戦型別と自分の敗因別に分類

蓄積された対局レポートから、
・相手の戦型別(→戦型別フォルダ)
・自分の敗因別(→themesフォルダ)
という切り口で、対局データを分類します。
image.png
自分にとって苦手で気になっていたけどよく出てくる形、をまとめて振り返りたい時もあると思います。
そのようなとき、分類済みのデータを確認できるので、効率の良い勉強が行えます。
また、これらの分類データからreports/将棋の敗因傾向.xlsxを作成し、負けた頻度や勝率が確認できます。これにより、自分にとっての優先的に考えるべき反省点や成長度合いを確認できます。

7. 古いデータの削除やログ管理

Githubのリポジトリには、保存できるデータ量が限られているため、目安として90日以上経過したデータは削除されます。
また、プログラムの動作ログをlogsディレクトリ直下に保存しており、ツールの動作内容が確認できます。

8. Githubのユーザーアカウントのデータ情報を更新(リポジトリにpush)

上記の整理したデータをリポジトリにマージします。つまり、分析データを保存する処理を行います。

9. 次の日、今までの対局について再度振り返り

次の日、ユーザーはレポジトリやWebUIを開いて、AIが分析したデータを参考に過去の対局や、似たようなパターンで負けた対局データについて再度振り返り、以降の対局に活かせるようになります。
これで、昨日負けてしまった対局についても、次の日に対話を通じてプロ棋士AI視点による振り返りができます。
ただし、会話するたびにAPIの従量課金が加算される点にご注意!!

image.png

対話するときのプロンプトのコツと例
✖「最善手」「読み筋」を聞こうとすると失敗しやすいです(それは従来の棋譜解析ソフトでやるべき)。
〇「よくある形」や「自分が悩んだ局面における次の一手をどう考えるべきだったか」について、参考までに聞いてみるのが良いです

<プロンプト例1 - 序盤から不利にならないための`形`について尋ねるパターン>
本対局では序盤から不利になりました。
以下について教えてください:
① 本対局における相手の戦型の基本方針(玉・攻め・駒組み)
② 相手の戦型でよくある狙い筋(例:囲い完成・駒の活用など)
③ 同じ戦型を相手にするときに、意識すべき優先順位(例:玉→駒組み→攻め)
④ 本対局における自分の指し手の問題点(どの判断基準からズレていたか)
⑤ 再発防止ルール(短いルールで)
※具体的な変化手順ではなく、「再現可能な考え方」に限定してください

<プロンプト例2 - 中盤以降でよく迷う'局面判断'について尋ねるパターン>
○○手目の局面でA()とB()で迷いAを指しましたが、棋譜解析AIによると最善手はBでした。
AとBをそれぞれ指した場合について、下記の観点で比較してください。

【比較観点】
① 玉の安全度
・自玉の守っている駒の変化

② 攻め駒の働き
・相手玉を攻めている駒の変化

③ 形の良し悪し
・自分の駒の連携の変化
・自分と相手の陣形の急所の変化

その上で、どのような判断基準でBが最善手だったと考えられるのかを教えてください。
※数手先の「読み」ではなく、指した瞬間の「局面の構造変化」に集中して解説してください。

その他、良い結果が得られたプロンプトがあれば、ぜひブログのコメント欄まで。

ツールのディレクトリ構造と役割

ツールのリポジトリをローカルPCにクローンすると、次の図のようなディレクトリ構造になっています。
image.png
ツールを利用するうえで、ユーザーが利用するときのディレクトリと役割についてまとめて示します。
※Githubのリポジトリでも同じです。

  • reports/:コーチングレポートと、将棋の敗因傾向を統計したExcelファイルの保存先
    • コーチングレポートの確認
    • 敗因傾向の統計データの確認
  • temp/:コーチングレポートを作成する前の、直近の対局データの保存先
    • 直近の対局レポートの確認
  • themes/:コーチングレポート作成後に、AIが敗因別に振り分けた対局データ
    • 敗因別に対局データをまとめて振り返りたい場合
  • 戦型別/:コーチングレポート作成後に、相手の戦型別に振り分けた対局データ
    • 相手の戦型別にの対局データをまとめて振り返りたい場合
  • logs/:プログラムの動作ログ
  • src/:ツールのプログラムファイルを保存しているフォルダ
  • workspace/:バイブコーディングする際に有用なCLAUDE.mdの保存先(公開時の少し前バージョンなので一度作り直す必要あり)

(AIとの対話機能の利用は、Renderという小規模サーバーを立てて利用)


もし使ってみたいという方がいれば、セットアップ方法を続きの#1-2に記載します。

ただしこのツールは、厳重管理が必要な内容に関する複雑な設定作業が多い上に、

  • 王手を見逃す
  • 駒がある場所に駒を貼ろうとする
  • 平気でただ取りされる手を勧めてくる

など、有料にしても成果物の品質が安定しないデメリットがあります。開発者の私としては、これらのデメリットがなく愛用している#2のツールもオススメしています。

最後までお読みいただき、ありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?