以下は、LLMのマルチステップ手法について、各手法の概要に加え、具体的なプロンプト例とその出力例を示したものです。これにより、実際の使用シーンでどのように各手法が機能するのか、イメージしやすくなると思います。
1. Chain-of-Thought (CoT) プロンプティング
概要
- 説明: 問題に対して、中間推論の過程(思考の連鎖)を文章として展開するよう促す方法です。
- 効果: 数学問題や論理的な問題で、推論の過程を明示することで正確性や透明性が向上します。
プロンプト例
「以下の数学問題を解く際に、まず問題の理解、次に中間計算、最後に解答に至る全ての思考過程を順を追って説明してください。
問題:\( x^2 – 5x + 6 = 0 \) の解を求めなさい。」
出力例
まず、与えられた二次方程式は \( x^2 – 5x + 6 = 0 \) です。
1. 因数分解を試みます。積が6で、和が5になる2つの数は2と3です。
2. よって、方程式は \( (x – 2)(x – 3) = 0 \) と因数分解できます。
3. 各因子が0になるとき、\( x – 2 = 0 \) なら \( x = 2 \)、\( x – 3 = 0 \) なら \( x = 3 \) となります。
したがって、解は \( x = 2 \) と \( x = 3 \) です。
2. Multi-step Reasoning / 多段階推論
概要
- 説明: 複雑な問題を複数のサブタスクに分割し、それぞれを順番に解決して最終解答に統合する手法です。
- 効果: 問題を部分ごとに扱うことで、一度に処理する情報量を減らし、精度の高い解答を導きやすくなります。
プロンプト例
「以下の文章を要約するために、まず文章の主要な要素(登場人物、背景、主要な出来事)をリストアップしてください。その後、それらの情報を元に簡潔な要約を作成してください。
文章:『ジョンは小さな町で育ち、幼少期から自然に親しんできた。成長するにつれて、彼はその知識を活かし、地域の環境保護活動に参加するようになった。特に、町の川の汚染問題に取り組み、住民たちと協力して浄化プロジェクトを開始した。』」
出力例
【ステップ1:主要な要素のリストアップ】
- 登場人物: ジョン
- 背景: 小さな町、自然との関わり
- 主要な出来事: 地域の環境保護活動への参加、町の川の汚染問題に取り組み、浄化プロジェクトの開始
【ステップ2:要約の作成】
ジョンは、自然に親しんだ小さな町で育ち、成長後は地域の環境保護活動に積極的に参加。特に、町の川の汚染問題に対して住民と協力し、浄化プロジェクトを始めた。
3. Self-Consistency 手法
概要
- 説明: 同じ問題に対して複数の推論パスを生成し、その中で最も一貫性のある解答を採用する方法です。
- 効果: ランダム性による誤差や偶発的なミスを低減し、より安定した解答を導くことができます。
プロンプト例
「以下の問題に対して、異なる推論経路を3つ生成し、それぞれの最終解答を示してください。その上で、もっとも頻出する答えを最終解答として提示してください。
問題:『ある箱に赤い球と青い球が合わせて10個入っています。赤い球は青い球より2個多いとすると、各色の球は何個ずつあるでしょうか?』」
出力例
【推論パス1】
- 設定: 赤い球 = 青い球 + 2
- 式: (青い球) + (青い球 + 2) = 10
- 計算: 2×(青い球) = 8 ⇒ 青い球 = 4
- 結果: 赤い球 = 4 + 2 = 6
【推論パス2】
- 式の再確認: 赤い球 + 青い球 = 10、かつ赤い球 = 青い球 + 2
- 計算: 2×(青い球) = 8 ⇒ 青い球 = 4
- 結果: 赤い球 = 6
【推論パス3】
- 仮定から: 青い球の数を \\( x \\) とすると、赤い球は \\( x + 2 \\)
- 合計: \\( x + (x + 2) = 10 \\)
- 計算: \\( 2x = 8 \\) ⇒ \\( x = 4 \\)
- 結果: 赤い球 = 6
【最終解答】
青い球は4個、赤い球は6個
4. Decomposition / 問題分解手法
概要
- 説明: 複雑なタスクを複数のサブタスクに分割し、それぞれを個別に処理してから全体の解答に統合する手法です。
- 効果: タスク全体を小さな部分に分けることで、各部分に集中しやすくなり、全体のミスが減るとともに精度が向上します。
プロンプト例
「夏休みの旅行計画を立てるために、以下の各要素について考えてください。
- 行き先の候補
- 予算の設定
- 宿泊施設の選定
- 食事プランのアイディア
それぞれについて簡単な説明を加えた上で、最終的な旅行計画をまとめてください。」
出力例
【ステップ1:各要素の検討】
1. 行き先の候補:
- 北海道(自然豊かで観光資源が多い)
- 京都(歴史と文化を感じられる)
2. 予算の設定:
- 総予算:10万円程度
- 移動費、宿泊費、食費を考慮
3. 宿泊施設の選定:
- 北海道の場合:温泉旅館でリラックスを重視
- 京都の場合:伝統的な旅館で和の雰囲気を楽しむ
4. 食事プランのアイディア:
- 北海道:新鮮な海産物やジンギスカン
- 京都:精進料理や和食の伝統料理
【ステップ2:全体の統合と計画のまとめ】
今回、北海道への旅行を選択。予算は10万円以内に収めるため、移動は格安航空やバスを利用し、宿泊は温泉旅館を予約。食事は地元の新鮮な海産物を中心に、ジンギスカンも楽しむプランとする。
5. Recursive Prompting / 再帰的プロンプティング
概要
- 説明: 初回の回答や推論を踏まえ、さらに詳細な情報や修正、補足説明を求めるために、再度プロンプトを投げる手法です。
- 効果: 初回の回答だけでは不足している情報や詳細を、対話的に引き出すことで、最終的な解答の精度や質を高めることができます。
プロンプト例(初回)
「AIが生成した以下の回答について、なぜその結論に至ったのか、より詳しく説明してください。
回答:『AはBであるため、Cが成立する。』」
初回出力例
AI回答:『AはBであるため、Cが成立する。』
プロンプト例(再帰的な質問)
「先ほどの回答の『AはBである』という部分について、具体的な理由と根拠、関連する例を示してください。」
再帰的出力例
『AがBである』理由は、過去の事例や実験結果から示される傾向に基づいています。例えば、実験Xでは、Aの特性がBの状態を引き起こすことが確認されました。また、理論Yによれば、Aが存在するとシステム内部のバランスが変化し、その結果としてBが観察されます。これらの根拠により、AがBであると結論付けられ、最終的にCが成立すると判断されます。
まとめ
各手法は以下のように使い分けると良いでしょう:
- Chain-of-Thought:数学や論理問題など、明示的な推論過程が有用な場合に使用
- Multi-step Reasoning:複雑なタスクを段階的に処理する必要がある場合に使用
- Self-Consistency:複数の推論経路を検証して最も信頼性の高い解答を得たい場合に使用
- Decomposition:大きな問題を細分化して各部分ごとに処理する場合に使用
- Recursive Prompting:初回の回答を基に詳細な補足や修正を対話的に行いたい場合に使用
これらの具体例を参考に、タスクの性質に応じたプロンプト設計を行うことで、LLMからより精度の高い出力を得ることが可能になります。