Chain of Thoughts(CoT)とは?プロンプト事例で学ぶ思考連鎖の仕組みと精度向上のコツ

大規模言語モデル(LLM)の回答精度に「物足りない」「間違いが多い」と感じていませんか。その課題は、モデルの思考プロセスを工夫することで解決できるかもしれません。本記事では、LLMに”考える手順”を教えるプロンプト技術「Chain of Thoughts(CoT:思考の連鎖)」の基本から応用までを解説します。この記事を読めば、CoTの仕組みを理解し、具体的なプロンプトを使ってAIの性能を最大限に引き出す方法がわかります。

目次

1. Chain of Thoughts (CoT)とは?AIの思考力を引き出す技術

Chain of Thoughts(CoT)は、大規模言語モデル(LLM)に対して、最終的な回答だけでなく、そこに至るまでの中間的な思考プロセスをステップバイステップで生成させるプロンプト技術です。人間が複雑な問題を解く際に、一度に答えを出すのではなく、順を追って考えるプロセスを模倣させることが目的です。この手法は、特に複雑な推論が必要なタスクにおいて、LLMの回答精度を飛躍的に向上させることが報告されています(Google Research, 2022)。

1-1. CoTの基本的な定義と仕組み

CoTの核心は、LLMに「思考の連鎖」を促す点にあります。従来のプロンプトが「質問→答え」という直接的な形式だったのに対し、CoTでは「質問→思考プロセス→答え」という形式で出力を生成させます。

例えば、「食堂にリンゴが5個あり、2個使って昼食を作り、さらに4個買ってきたら、全部で何個になりますか?」という質問に対し、CoTを使わないモデルは即座に「7個」と間違える可能性があります。しかし、CoTを用いると、以下のような思考プロセスを経て正しい答えを導き出します。

  • ステップ1:最初は5個のリンゴがある。
  • ステップ2:2個使ったので、5 – 2 = 3個残る。
  • ステップ3:新しく4個買ってきたので、3 + 4 = 7個になる。
  • 結論:最終的にリンゴは7個になる。

このように、複雑な問題をより小さく扱いやすいステップに分解させることで、モデルは各ステップに集中でき、計算間違いや勘違いを減らすことができます。

1-2. なぜCoTでLLMの精度が向上するのか?

CoTがLLMの精度を向上させる理由は、主に3つ挙げられます。

第一に、推論プロセスの明示化です。思考の過程を文章として書き出すことで、モデル自身が論理的な矛盾や誤りを発見しやすくなります。これは、人間が計算問題を解くときに途中式を書くのと同じ効果です。

第二に、計算リソースの適切な配分です。複雑な問題全体を一度に処理するのではなく、簡単なサブタスクに分割することで、モデルは各ステップの推論に十分なリソースを割り当てられます。これにより、より深く、正確な思考が可能になります。

第三に、解釈可能性の向上です。CoTによって生成された思考プロセスは、人間がモデルの判断根拠を理解する上で重要な手がかりとなります。なぜその結論に至ったのかがわかるため、出力結果のデバッグや改善が容易になります。

1-3. CoTが特に有効なタスクの具体例

CoTは万能ではありませんが、特定の種類のタスクで特に高い効果を発揮します。これらのタスクは、直感的な回答ではなく、多段階の論理的思考や計算を必要とする点で共通しています。

  • 算術推論:文章問題や多段階の計算など。
  • 常識推論:日常生活における因果関係や状況判断を問う問題。
  • 記号推論:文字の並べ替えや論理パズルのような、ルールに基づいた操作が必要な問題。

これらのタスクでは、CoTを用いることで、従来のプロンプト手法と比較して大幅な性能向上が見られます。一方で、単純な事実検索(例:「フランスの首都は?」)や、創造的な文章生成のような単一ステップで完結するタスクでは、CoTの効果は限定的です。

2. CoTプロンプトの具体的な書き方と事例

CoTを実践するには、プロンプトの工夫が鍵となります。CoTには大きく分けて、具体例と思考プロセスを示す「Few-shot CoT」と、簡単な指示を与えるだけの「Zero-shot CoT」の2種類が存在します。それぞれの特徴と使い方を、事例を交えて解説します。

2-1. 【基本】思考の例を示す「Few-shot CoT」

Few-shot CoTは、プロンプト内でいくつかの質問と、その思考プロセスを含む回答例を提示する方法です。モデルに「このように考えてほしい」という手本を見せることで、新しい質問に対しても同様の思考プロセスを生成するように促します。これは、CoTの基本的なアプローチであり、高い精度が期待できます。

2-1-1. Few-shot CoTのプロンプト構造

Few-shot CoTのプロンプトは、一般的に以下の要素で構成されます。

  1. タスクの説明(任意):これからどのような問題を解くのかを簡潔に指示します。
  2. 具体例(1〜数個)
    • 質問(Input)
    • 思考の連鎖(Chain of Thought)
    • 最終的な答え(Output)
  3. 本題の質問:モデルに解かせたい新しい質問を最後に配置します。

この構造により、モデルは提示された具体例のパターンを学習し、本題の質問に対してもステップバイステップで回答を生成しようと試みます。

2-1-2. プロンプト事例:算数問題での活用

以下に、Few-shot CoTを用いた算数問題のプロンプト例を示します。

Q: ロジャーはテニスボールを5個持っています。彼は2箱のテニスボールを買いました。1箱には3個のテニスボールが入っています。彼は今、全部で何個のテニスボールを持っていますか?
A: ロジャーは最初に5個のボールを持っていました。2箱のテニスボールは、1箱3個入りなので、2 * 3 = 6個です。彼が持っているボールの総数は 5 + 6 = 11個です。答えは11です。

Q: 食堂にリンゴが5個あり、2個使って昼食を作り、さらに4個買ってきたら、全部で何個になりますか?
A:

このプロンプトでは、最初の例題で「どう考えればよいか」の道筋を示しています。この手本があることで、LLMは次の質問に対しても同様に「5 – 2 = 3」「3 + 4 = 7」という思考プロセスを生成し、正答である「7」を導き出しやすくなります。

2-2. 【応用】指示だけで実行させる「Zero-shot CoT」

Zero-shot CoTは、Few-shot CoTのように具体例を提示せず、プロンプトの末尾に「ステップバイステップで考えてみましょう(Let’s think step by step.)」のような魔法の言葉を追加するだけでCoTを誘発する手法です。この方法は、プロンプトを準備する手間が少ないという大きな利点があります(東京大学/Google, 2022)。

例えば、先ほどのリンゴの問題であれば、プロンプトは以下のようになります。

Q: 食堂にリンゴが5個あり、2個使って昼食を作り、さらに4個買ってきたら、全部で何個になりますか?
A: ステップバイステップで考えてみましょう。

これだけで、モデルは思考プロセスを自己生成しようと試みます。精度はFew-shot CoTに劣る場合がありますが、手軽にCoTの効果を試したい場合に非常に有効な手法です。

2-3. 【比較表】Few-shot CoTとZero-shot CoTの使い分け

どちらの手法を選択するかは、タスクの複雑さや求められる精度、プロンプト準備にかけられるコストによって決まります。それぞれの特徴を理解し、適切に使い分けることが重要です。

比較軸Few-shot CoTZero-shot CoT
定義思考プロセスの具体例をプロンプトに含める手法。具体例なしで「ステップバイステップで考えて」などの指示を与える手法。
対象非常に複雑で、特定の思考パターンを要求するタスク。比較的単純な推論タスクや、迅速な応答が求められる場合。
メリット高い精度と安定性が期待できる。複雑な問題にも対応可能。プロンプトの準備が非常に簡単で、手軽に試せる。
デメリット具体例の作成に手間とコストがかかる。プロンプトが長くなる。Few-shot CoTに比べて精度が不安定な場合がある。
適用条件高い精度が最優先される場合。タスクの傾向が明確な場合。手軽にCoTを試したい場合。汎用的なタスクを扱う場合。
注意点例の質が低いと、モデルが誤った思考パターンを学習する可能性がある。モデルの性能によっては、指示だけではCoTがうまく機能しないことがある。

3. CoTをさらに発展させた応用技術

Chain of Thoughtsは、その有効性から多くの研究者によって拡張され、さらに高度なプロンプト技術が生み出されています。ここでは、CoTから派生した代表的な応用技術をいくつか紹介します。これらの技術を理解することで、より困難な問題にも対応できるようになります。

3-1. 多数決で精度を高める「Self-Consistency」

Self-Consistency(自己整合性)は、同じ質問に対してCoTを用いて複数の異なる思考プロセスを生成させ、最終的に最も多くの支持を得た回答を正解とする手法です(Google Research, 2022)。いわば、AIに「三人寄れば文殊の知恵」を実践させるようなものです。

例えば、ある問題に対して5回のCoTを実行し、3回が「答えA」、2回が「答えB」を導き出した場合、Self-Consistencyは「答えA」を最終的な回答として採用します。単一のCoTでは偶然間違える可能性があっても、複数の思考経路を試すことで、より頑健で信頼性の高い結論にたどり着くことができます。ただし、複数回の推論を行うため、計算コストが増加する点がデメリットです。

3-2. 思考を分岐・評価する「Tree of Thoughts (ToT)」

Tree of Thoughts(ToT:思考の木)は、CoTをさらに一歩進め、問題を解く過程で複数の思考経路を木の枝のように分岐させ、それぞれの経路を評価・探索する手法です(Princeton University/Google DeepMind, 2023)。

CoTが一つの思考経路を深掘りしていくのに対し、ToTは複数の可能性を同時に検討します。例えば、あるステップで複数の選択肢が考えられる場合、ToTはそれぞれの選択肢について思考を進め、途中で行き詰まったり、見込みが薄いと判断した経路は剪定(プルーニング)します。この自己評価と探索のプロセスにより、CoTでは解けなかったような、より複雑な計画立案や探索問題に対応できる可能性があります。

3-3. その他の主要な派生技術(Least-to-Most Promptingなど)

CoTの考え方を応用した技術は他にも存在します。その一つが「Least-to-Most Prompting」です。この手法は、複雑な問題をより簡単な部分問題に分解し、簡単な問題から順に解いていくアプローチを取ります。

例えば、「A、B、Cの3人のスケジュールを調整する」という複雑な問題を、「まずAとBの共通の空き時間を見つける」「次に、その空き時間とCの空き時間を照合する」というように、簡単なステップから順番に解決していきます。前のステップの解を次のステップのプロンプトに含めることで、段階的に最終的な答えに近づけていきます。

4. CoTを実践する上での注意点と成功のコツ

CoTは強力な技術ですが、ただプロンプトに魔法の言葉を加えれば常に成功するわけではありません。効果を最大限に引き出すためには、いくつかの注意点を理解し、適切な使い方を心がける必要があります。ここでは、よくある失敗例とその回避策、そして導入に役立つチェックリストを紹介します。

4-1. CoT導入でよくある失敗例とその回避策

CoTを導入する際には、いくつかの落とし穴があります。事前にこれらを把握し、対策を講じることが成功への近道です。

  • 失敗例1:不適切な例の提示
    Few-shot CoTで提示する例の質が低い、または思考プロセスに誤りがあると、モデルはそれを正しいものとして学習してしまい、かえって精度が低下します。
    回避策:提示する例は、論理的に正しく、かつ解きたい問題の構造と似たものを慎重に選びましょう。複数の異なるパターンの例を用意することも有効です。
  • 失敗例2:単純なタスクへの過剰な適用
    事実確認など、推論を必要としない単純なタスクにCoTを使うと、不要な思考プロセスが生成され、応答が遅くなったり、逆に情報が混乱したりすることがあります。
    回避策:タスクの性質を見極め、CoTが本当に必要な複雑な推論タスクに限定して使用しましょう。
  • 失敗例3:思考プロセスの形式を限定しすぎる
    プロンプトで思考の形式をあまりに厳格に縛りすぎると、モデルの自由な発想が阻害され、最適な解にたどり着けなくなることがあります。
    回避策:思考の方向性を示す程度に留め、ある程度の柔軟性をモデルに与えることが重要です。

4-2. CoTを効果的に活用するためのチェックリスト

CoTを導入する際に、以下の項目を確認することで、より効果的な活用が期待できます。

  • [ ] タスクの適合性:解きたいタスクは、算術、常識、記号推論など、多段階の思考を必要とするものか?
  • [ ] 手法の選択:高い精度が求められるか(Few-shot)、手軽さが重要か(Zero-shot)?
  • [ ] 具体例の品質(Few-shotの場合):提示する例は論理的に正しく、多様なパターンをカバーしているか?
  • [ ] プロンプトの明確さ:モデルに対して、何をどのように考えてほしいかの指示が明確か?
  • [ ] モデルの性能:使用しているLLMは、CoTを十分に実行できる性能を持っているか?(一般的に、高性能なモデルほどCoTの効果は高い)
  • [ ] コストの考慮:Self-Consistencyなど複数回推論する手法を用いる場合、計算コストは許容範囲内か?
  • [ ] 結果の評価:CoTによって生成された思考プロセスをレビューし、間違いの傾向を分析する体制はあるか?

4-3. CoTの限界と利用時の注意点

強力なCoTにも限界はあります。まず、CoTはモデルが元々持っている知識や能力を超える結果を生み出すわけではありません。あくまで、その潜在能力を最大限に引き出すための手法です。したがって、モデルが学習していない事実や、根本的に実行不可能な論理展開は行えません。

また、CoTは出力が長くなるため、応答速度(レイテンシ)が遅くなり、API利用料などのコストが増加する傾向があります。リアルタイム性が求められるアプリケーションなどでは、このトレードオフを慎重に考慮する必要があります。利用する際は、精度向上のメリットと、コスト増加のデメリットを天秤にかけ、最適なバランスを見つけることが重要です。

5. まとめ

本記事では、大規模言語モデルの精度を向上させるプロンプト技術「Chain of Thoughts (CoT)」について、その仕組みから具体的な活用法、応用技術までを網羅的に解説しました。

要点サマリー

  • CoTはAIに思考プロセスを生成させる技術:複雑な問題をステップに分解させ、推論の正確性を高めます。
  • プロンプトには2種類ある:手本を示す「Few-shot CoT」と、指示を与える「Zero-shot CoT」があり、タスクに応じて使い分けが重要です。
  • 応用技術でさらに進化:Self-ConsistencyやTree of Thoughtsなどの派生技術により、さらに困難な問題への対応が可能になります。
  • 万能ではなく注意点も:タスクの適合性を見極め、計算コストとのバランスを考慮する必要があります。

読者タイプ別の次アクション

  • 初心者の方:まずは手軽な「Zero-shot CoT」から試してみましょう。「ステップバイステップで考えて」の一文を、普段のプロンプトに加えるだけで効果を体感できるかもしれません。
  • 中級者・開発者の方:特定のタスクの精度向上を目指し、「Few-shot CoT」のプロンプト設計に挑戦してみてください。質の高い具体例を作成することが、性能向上の鍵となります。
  • 意思決定者・企画担当者の方:自社の課題解決にCoTやその応用技術が活用できないか検討しましょう。特に、高度な分析や計画立案が求められる業務での応用可能性を探ってみてください。

6. FAQ

Q1: Chain of Thoughts (CoT)はどの言語モデルで使えますか?
A1: CoTは、一般的に1000億パラメータを超えるような大規模言語モデル(LLM)で特に効果を発揮します。GPT-3.5、GPT-4、PaLM、Claudeなど、現代の主要なLLMの多くがCoTに対応しています。モデルの規模が小さいと、指示を理解して思考プロセスを生成する能力が不十分な場合があります。

Q2: CoTプロンプトを作成する上で最も重要なことは何ですか?
A2: Few-shot CoTの場合は、思考プロセスの「質」が最も重要です。提示する具体例が論理的で分かりやすいほど、モデルはそれを手本として高品質な推論を行うことができます。Zero-shot CoTの場合は、タスクの指示を明確にすることが重要です。

Q3: CoTを使っても精度が上がらない場合はどうすれば良いですか?
A3: いくつかの原因が考えられます。①タスクがCoTに向いていない(単純すぎる)、②Few-shotの例が不適切、③使用しているモデルの性能が不足している、などです。まずはタスクの適合性を見直し、次にプロンプトの例を改善してみてください。Self-Consistencyのような応用技術を試すのも一つの手です。

Q4: 日本語のプロンプトでもCoTは有効ですか?
A4: はい、有効です。Zero-shot CoTで使う「Let’s think step by step.」を「ステップバイステップで考えてみましょう。」や「順を追って説明してください。」といった日本語の指示に置き換えることで、同様の効果が期待できます。Few-shot CoTも、日本語の具体例を用意することで問題なく機能します。

Q5: CoTとファインチューニングはどちらが良いのですか?
A5: CoTはプロンプトの工夫だけで実行できる手軽な手法(インコンテキスト学習)であるのに対し、ファインチューニングは特定のタスクに合わせてモデル自体を追加学習させる、より高度でコストのかかる手法です。まずはCoTで精度向上を試し、それでも不十分な場合や、特定のドメインに特化させたい場合にファインチューニングを検討するのが一般的なアプローチです。

この記事が気に入ったら
いいねしてね!

この情報が役立ったら、シェアしてね!
目次