<p><meta/>
本回答は、Chain-of-Thought(CoT)プロンプトの設計において、多段階の推論プロセスを構造化し、検証ステップを組み込むことで精度を最大化するアプローチをまとめています。推論の連鎖(Chain)を明示的に指示し、自己評価ルールを設けることで、論理的破綻や計算ミスを抑制する構成をとっています。
</p>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">Chain-of-Thoughtを用いた多段階推論タスクの精度最適化プロンプト設計</h1>
<h3 class="wp-block-heading">【ユースケース定義と課題】</h3>
<p>複雑な製造コスト算出や複数条件の論理推論において、途中の計算ミスや論理の飛躍を防ぎ、根拠に基づいた正確な結論をJSON形式で出力させます。</p>
<h3 class="wp-block-heading">【プロンプト設計のループ】</h3>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["設計: 思考ステップの定義"] --> B["実行: Zero-shot/Few-shot CoT"]
B --> C["評価: 推論の整合性と形式チェック"]
C -->|改善: 制約の追加と例示の最適化| A
</pre></div>
<ol class="wp-block-list">
<li><p><strong>設計</strong>: LLMが辿るべき論理ステップ(現状分析→中間計算→検証→結論)を定義します。</p></li>
<li><p><strong>実行</strong>: 思考プロセスを書き出すよう指示し、タスクを遂行させます。</p></li>
<li><p><strong>評価</strong>: 最終回答だけでなく、途中の推論が論理的か、出力形式が遵守されているかを検証します。</p></li>
</ol>
<h3 class="wp-block-heading">【プロンプトの実装案】</h3>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
あなたは精密な論理推論を行うスペシャリストです。
# Task
以下の「条件」に基づき、最終的な計算結果と推論プロセスを回答してください。
# Conditions
1. 工場の年間稼働時間は360日、1日24時間。
2. 装置Aの電力消費は100kWh、装置Bは150kWh。
3. 電気代は一律 25円/kWh。
4. 装置Bを導入した場合、装置Aに比べ生産効率が20%向上し、人件費を年間1,000万円削減できる。
# Instructions
- 結論を出す前に、必ず思考の過程を「Step-by-step」で記述してください。
- 最終結果は以下のJSON形式で出力してください。
# Few-shot Example
Input: [条件データA]
Thought:
Step 1: 消費電力の差分を算出。150 - 100 = 50kWh。
Step 2: 年間の電気代増加分を計算。50 * 24 * 360 * 25 = ...
...
Output: {"result": "...", "cost_benefit": "..."}
# Output Format
{
"thought_process": "ここまでの思考ステップ",
"total_cost_delta": 0,
"is_profitable": true
}
</pre>
</div>
<h3 class="wp-block-heading">【評価指標と誤り分析】</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">評価項目</th>
<th style="text-align:left;">採点基準 (1-5)</th>
<th style="text-align:left;">失敗パターン</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">推論の整合性</td>
<td style="text-align:left;">途中の論理に飛躍や矛盾がないか</td>
<td style="text-align:left;">単位変換ミス、前提条件の無視</td>
</tr>
<tr>
<td style="text-align:left;">計算の正確性</td>
<td style="text-align:left;">数値計算が正しいか</td>
<td style="text-align:left;">桁数の間違い、四則演算の誤り</td>
</tr>
<tr>
<td style="text-align:left;">形式遵守</td>
<td style="text-align:left;">指定されたJSON構造を維持しているか</td>
<td style="text-align:left;">余計な解説テキストの混入、閉じ括弧不足</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【改良後の最適プロンプト】</h3>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
Professional Logic & Financial Analyst
# Constraint Rules
- [THINKING_PROCESS]: 結論を導く前に、変数の定義、中間計算、矛盾確認の3段階で思考を書き出すこと。
- [VERIFICATION]: 最終回答の前に、計算結果を逆算してセルフチェックすること。
- [FORMAT]: 出力は純粋なJSONのみとし、Markdownのコードブロックで囲むこと。
# Input Data
[対象となる複雑なデータ]
# Execution Command
Let's think step by step to ensure the highest accuracy. Verify each calculation twice.
</pre>
</div>
<h3 class="wp-block-heading">【まとめ】</h3>
<ol class="wp-block-list">
<li><p><strong>思考の明示化</strong>: 「Let’s think step by step」だけでなく、思考の「型(ステップ)」を指定する。</p></li>
<li><p><strong>検証フェーズの組み込み</strong>: プロンプト内で自己検算や論理チェックを明示的に命令する。</p></li>
<li><p><strong>出力の分離</strong>: 推論過程(思考用)と構造化データ(結果用)を明確に分けて定義する。</p></li>
</ol>
本回答は、Chain-of-Thought(CoT)プロンプトの設計において、多段階の推論プロセスを構造化し、検証ステップを組み込むことで精度を最大化するアプローチをまとめています。推論の連鎖(Chain)を明示的に指示し、自己評価ルールを設けることで、論理的破綻や計算ミスを抑制する構成をとっています。
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
Chain-of-Thoughtを用いた多段階推論タスクの精度最適化プロンプト設計
【ユースケース定義と課題】
複雑な製造コスト算出や複数条件の論理推論において、途中の計算ミスや論理の飛躍を防ぎ、根拠に基づいた正確な結論をJSON形式で出力させます。
【プロンプト設計のループ】
graph TD
A["設計: 思考ステップの定義"] --> B["実行: Zero-shot/Few-shot CoT"]
B --> C["評価: 推論の整合性と形式チェック"]
C -->|改善: 制約の追加と例示の最適化| A
設計: LLMが辿るべき論理ステップ(現状分析→中間計算→検証→結論)を定義します。
実行: 思考プロセスを書き出すよう指示し、タスクを遂行させます。
評価: 最終回答だけでなく、途中の推論が論理的か、出力形式が遵守されているかを検証します。
【プロンプトの実装案】
# Role
あなたは精密な論理推論を行うスペシャリストです。
# Task
以下の「条件」に基づき、最終的な計算結果と推論プロセスを回答してください。
# Conditions
1. 工場の年間稼働時間は360日、1日24時間。
2. 装置Aの電力消費は100kWh、装置Bは150kWh。
3. 電気代は一律 25円/kWh。
4. 装置Bを導入した場合、装置Aに比べ生産効率が20%向上し、人件費を年間1,000万円削減できる。
# Instructions
- 結論を出す前に、必ず思考の過程を「Step-by-step」で記述してください。
- 最終結果は以下のJSON形式で出力してください。
# Few-shot Example
Input: [条件データA]
Thought:
Step 1: 消費電力の差分を算出。150 - 100 = 50kWh。
Step 2: 年間の電気代増加分を計算。50 * 24 * 360 * 25 = ...
...
Output: {"result": "...", "cost_benefit": "..."}
# Output Format
{
"thought_process": "ここまでの思考ステップ",
"total_cost_delta": 0,
"is_profitable": true
}
【評価指標と誤り分析】
| 評価項目 |
採点基準 (1-5) |
失敗パターン |
| 推論の整合性 |
途中の論理に飛躍や矛盾がないか |
単位変換ミス、前提条件の無視 |
| 計算の正確性 |
数値計算が正しいか |
桁数の間違い、四則演算の誤り |
| 形式遵守 |
指定されたJSON構造を維持しているか |
余計な解説テキストの混入、閉じ括弧不足 |
【改良後の最適プロンプト】
# Role
Professional Logic & Financial Analyst
# Constraint Rules
- [THINKING_PROCESS]: 結論を導く前に、変数の定義、中間計算、矛盾確認の3段階で思考を書き出すこと。
- [VERIFICATION]: 最終回答の前に、計算結果を逆算してセルフチェックすること。
- [FORMAT]: 出力は純粋なJSONのみとし、Markdownのコードブロックで囲むこと。
# Input Data
[対象となる複雑なデータ]
# Execution Command
Let's think step by step to ensure the highest accuracy. Verify each calculation twice.
【まとめ】
思考の明示化: 「Let’s think step by step」だけでなく、思考の「型(ステップ)」を指定する。
検証フェーズの組み込み: プロンプト内で自己検算や論理チェックを明示的に命令する。
出力の分離: 推論過程(思考用)と構造化データ(結果用)を明確に分けて定義する。
ライセンス:本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント