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?

将棋エンジンの読み筋をLLMに解説させたら、ClaudeとChatGPTで差が出た話

0
Posted at

将棋AIというと、一般的には「どの手が最善か」を計算するエンジンの強さに注目が集まりがちです。

しかし、個人開発で将棋コーチAIを作っていると、もう一つ大きな課題にぶつかります。
それは、エンジンが出した最善手・評価値・読み筋を、人間が理解できる言葉に変換することです。

将棋エンジンは非常に強いです。 水匠5のような強力なエンジンを使えば、局面の最善手や評価値はかなり高精度に得られます。
一方で、初心者や子ども、あるいはアマ有段者が知りたいのは、単に「最善手はこれです」ではありません。

なぜその手が良いのか、何を狙っているのか、今すぐ攻めるべきなのか、玉を囲うべきなのか、初心者にはどう説明すれば伝わるのか、有段者にはどこまで踏み込んで説明すべきか。
こうした「説明の翻訳層」が必要になります。

そこで今回は、同じ将棋局面、同じエンジン解析結果、同じプロンプト条件で、ClaudeとChatGPTに将棋解説を生成させた比較実験を行いました。

元記事はこちらです。

この記事では、Qiita向けに技術的な観点から、今回の実験内容と得られた知見を整理します。

冒頭.png

実験の背景

今回の開発では、Pythonで作成した将棋コーチAIに、水匠5を外部エンジンとして接続しています。
大まかな流れは次のようになります。

将棋局面

USIエンジン(水匠5)

最善手・評価値・読み筋

LLMへのプロンプト生成

Claude / ChatGPT による自然言語解説

ユーザーに表示

この構成では、将棋の読みそのものは水匠5が担当します。 LLMは、あくまで説明役です。
つまり、今回比較したのは「将棋が強いAIはどちらか」ではありません。
比較したのは、同じエンジン解析結果を渡したとき、どちらがより人間に伝わる解説文を作れるかです。

実験条件

今回の比較では、条件をできるだけ揃えました。
局面:同一
エンジン:水匠5
探索深さ:depth=10
最善手:同一
評価値:ほぼ同じ
プロンプト種別:5種類
比較対象:Claude / ChatGPT

プロンプトは以下の5種類を用意しました。
普通のプロンプト
初心者向けプロンプト
アマ有段者向けプロンプト
子ども向けプロンプト
振り飛車党向けプロンプト

ここで重要なのは、局面とエンジン解析結果は同じという点です。
違うのは、LLMとプロンプトの向け先だけです。

技術フロー.png

なぜ将棋エンジンだけでは足りないのか

将棋エンジンは、局面を数値と候補手で返します。
例えば、以下のような情報です。

bestmove 4h
score cp -122
pv 4h 3b ...

開発者や有段者であれば、ある程度は意味を読み取れます。
しかし、初心者や子どもにとっては、これだけではほとんど教材になりません。
必要なのは、例えば次のような説明です。

今すぐ攻めるよりも、まず玉を安全な場所に移す一手です。中飛車では、中央の攻めを生かすためにも、玉の安全を先に確保することが大切です。

このように、エンジンの出力を、
状況説明
狙い
方針
注意点
読者に合わせた表現

へ変換する必要があります。
ここにLLMを使う価値があります。

実験結果の概要

元記事では、5種類のプロンプトごとにClaudeとChatGPTの出力を比較しました。
結果を大きくまとめると、次のような傾向が見えました。

qiita_llm_comparison_table.png

全体としては、Claudeのほうが深い教材文を作る傾向がありました。
一方で、ChatGPTは表現が安定しており、短くまとめる力や、わかりやすい締めの一言に強みがありました。

技術者目線で面白いポイント

今回の実験で面白かったのは、LLMの違いが「棋力」ではなく「説明設計」に出たことです。
将棋エンジンが出した答えはほぼ同じです。 評価値もほぼ同じです。 最善手も同じです。
それでも、解説文の印象はかなり変わりました。
これは、LLMアプリ開発において重要な示唆があります。
同じ構造化データを渡しても、LLMごとに最終的なUXは変わるということです。

つまり、LLMは単なる文章生成APIではなく、ユーザー体験を左右する「解釈レイヤー」として振る舞います。

比較.png

Claudeが強かった部分

Claudeは、特に次のような場面で強さを感じました。
局面の意味づけ
評価値が少し悪い理由の説明
初心者向けの段階的な説明
子ども向けの柔らかい表現
有段者向けの含みのある解説

例えば、単に「玉を囲う手です」と説明するだけでなく、なぜ今囲う必要があるのか、中央の位を取った構想とどうつながるのか、後手の端歩にはどんな牽制の意味があるのか、といった部分まで踏み込んで説明する傾向がありました。
教材文として読むと、Claudeのほうが「先生らしい」印象です。

ChatGPTが強かった部分

一方で、ChatGPTにも明確な強みがありました。
特に印象的だったのは、振り飛車党向けの解説です。

ChatGPTは、中飛車は、飛車のさばきと玉の安全がセット、というように、将棋の本質を短い一文でまとめる力がありました。これは教材として非常に重要です。
長く詳しい説明は役に立ちますが、読者の記憶に残るのは、最後の一言だったりします。

ChatGPTは、簡潔にまとめる、誤解の少ない表現にする、一言で本質を伝える、読みやすく安定した文章にする、という部分で強みがあります。

実装するなら、どちらか一方ではなく役割分担がよさそう

今回の結果から、将棋コーチAIの実装方針としては、どちらか一方のLLMに固定するよりも、役割分担が有効だと感じました。
例えば、以下のような構成です。

水匠5

最善手・評価値・読み筋を取得

Claude

深い解説文を生成

ChatGPT

短い要約・締めの一言・初心者向けの安全な表現に整形、あるいは、用途別に切り替える方法もあります。

qiita_llm_usecase_table.png

個人開発としては、まずは1つのLLMで実装し、将来的に用途別に切り替える設計にしておくのが現実的だと思います。

理想のコーチ.png

プロンプト設計の重要性

今回の比較では、プロンプトを5種類に分けました。
これは、将棋コーチAIにおいて非常に重要です。
なぜなら、同じ局面でも、相手によって説明の仕方が変わるからです。

初心者には、専門用語を減らす必要があります。 有段者には、表面的な説明だけでは物足りません。 子どもには、怖くない言葉で、ほめる雰囲気が必要です。 振り飛車党には、振り飛車らしい感覚に寄せた説明が刺さります。
つまり、将棋コーチAIでは、単に「最善手を説明してください」というプロンプトでは足りません。最低でも、次のような情報をプロンプトに含める必要があります。

ユーザーの棋力
解説の長さ
専門用語の許容度
口調
目的
今回強調したい観点

例えば、次のようなプロンプト設計が考えられます。

qiita_prompt_example_box.png

このように、LLMに「誰に向けて、どの深さで、何を重視して説明するか」を明示することが重要です。

今回の実験から得られた知見

今回の実験から、以下のような知見が得られました。

(1)将棋エンジンとLLMの組み合わせは有効

エンジンは読みを担当し、LLMは説明を担当する。
この分離は、かなり自然です。

(2)LLMごとに説明の個性が出る

同じ評価値・同じ最善手でも、出力される文章の深さや雰囲気は変わります。

(3)プロンプトによって教材としての質が変わる

初心者向け、有段者向け、子ども向けなど、相手を明確にするだけで解説の方向性が大きく変わります。

(4)Claudeは深い教材文に強い

局面の意味づけや有段者向けの踏み込みではClaudeが強い印象でした。

(5)ChatGPTは安定した要約と一言まとめに強い

わかりやすく、誤解が少なく、短く締める力はChatGPTの強みです。

今後やりたいこと

今後は、以下のような拡張も試してみたいと考えています。

ユーザーの棋力に応じたプロンプト自動切り替え
解説の長さをGUIから選べる機能
Claude / ChatGPT / Gemini など複数LLMの比較
エンジン評価値が悪いときの励まし方の調整
子ども向け将棋コーチモード
振り飛車専用モード
解説履歴を保存して復習できる機能

将棋AIは、すでに人間より遥かに強くなっています。
しかし、将棋を教えるAIは、まだまだ発展途上です。
「強いAI」から「教え方のうまいAI」へ。
個人開発としては、このあたりにまだ面白い余地があると感じています。

まとめ

今回の実験では、同一局面・同一エンジン解析結果を使って、ClaudeとChatGPTに将棋解説を生成させました。結果として、Claudeは深く読み応えのある教材文に強く、ChatGPTは安定した説明や一言でのまとめに強いことがわかりました。

将棋コーチAIを作るうえでは、
読み:将棋エンジン
説明:LLM
要約:別LLMまたは追加プロンプト
という役割分担が有効そうです。

将棋AI開発というと、エンジンの強さばかりに目が行きます。
しかし、実際にユーザーに使ってもらうには、AIが考えたことを、人間にわかる言葉で伝える設計が重要になります。
今回の実験は、その第一歩として非常に面白い結果になりました。

元記事では、5種類のプロンプトごとの比較結果をもう少し詳しくまとめています。
https://note.com/hip_rabbit9861/n/n0523588d24fe

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?