そもそもなぜCoTが回答の精度を向上させるのかLLM本人に解説してもらった
LLMは「次に来る単語」を予測する天才
まず、LLMの基本的な仕組みを理解しましょう。LLMは、ものすごく賢い「予測変換」のようなものです。文章を入力すると、その続きとして最も可能性の高い単語を次々と予測して、文章を生成していきます。
例えば、「今日は天気が良いので、」と入力すると、「公園に行きましょう。」と続く可能性が高いと予測します。この予測の精度は、インターネット上の膨大な量の文章を学習することで高めています。
CoT(思考の連鎖)とは? – まるで計算の「途中式」
CoT(思考の連鎖)とは、LLMに質問の答えだけを出力させるのではなく、答えに至るまでの「思考のプロセス」や「推論のステップ」を文章として書き出させる手法のことです。
人間が算数の文章問題を解くとき、いきなり答えを書くのではなく、計算の途中式を書きますよね。CoTは、LLMにその「途中式」を書かせるようなものです。
CoTがない場合(いきなり答えを出す)
ユーザー:
喫茶店には、最初に5人のお客さんがいました。その後、3人のお客さんが入ってきて、2人のお客さんが出ていきました。今、喫-茶店には何人のお客さんがいますか?
LLM:
6人です。
CoTがある場合(途中式を書き出す)
ユーザー:
喫茶店には、最初に5人のお客さんがいました。その後、3人のお客さんが入ってきて、2人のお客さんが出ていきました。今、喫茶店には何人のお客さんがいますか?ステップバイステップで考えてください。
LLM:
はい、ステップバイステップで考えます。
1. 最初に、喫茶店には5人のお客さんがいました。
2. 次に、3人のお客さんが入ってきたので、5 + 3 = 8人になります。
3. その後、2人のお客さんが出ていったので、8 - 2 = 6人になります。
したがって、今、喫茶店には6人のお客さんがいます。
このように、思考の過程を文章にすることで、正解にたどり着きやすくなります。
なぜCoTで精度が上がるのか?3つの理由
では、なぜこのような「途中式」を書かせると、LLMの回答精度が上がるのでしょうか。主に3つの理由が考えられます。
理由1:複雑な問題を簡単なステップに分解できるから
難しい問題や複雑な計算も、小さなステップに分解すれば一つひとつは簡単になります。 LLMも同様で、一度に最終的な答えを導き出そうとすると間違う可能性が高まります。
CoTを促すことで、LLMは複雑な問題を「まず〇〇を計算して、次に△△を考えて…」というように、自分が解けるレベルの簡単なサブタスクに分解して処理します。 これにより、各ステップでの間違いが減り、結果的に全体の正答率が向上するのです。
理由2:考えるための「作業スペース」が広がるから
LLMが文章を生成するとき、それまでに出力した単語(文脈)をヒントにして次の単語を予測します。
いきなり答えだけを出そうとすると、ヒントになるのは元の質問文だけです。しかし、CoTを使って思考のプロセスを書き出すと、その**書き出した文章自体が、次の思考を進めるための新しいヒント(文脈)**になります。
つまり、思考のプロセスを書き出す行為は、LLMにとって計算用紙のような「作業スペース」を広げる効果があります。より多くの情報を参照しながら考えを進められるため、より正確な結論にたどり着きやすくなるのです。
理由3:学習した「論理的な思考パターン」を引き出しやすいから
LLMは、人間が書いた膨大な量の文章を学習しています。その中には、問題を解決する手順を説明した文章や、論理的に物事を解説する文章もたくさん含まれています。
「ステップバイステップで考えて」といった指示は、LLMに対して「あなたが学習したデータの中から、問題を順序立てて解決しているパターンを真似してください」とお願いするようなものです。この指示によって、LLMは学習データに含まれる論理的な思考の流れを再現しやすくなり、結果として精度の高い回答が生成されるのです。
まとめ
LLMにとってCoT(思考の連鎖)とは、複雑な問題を簡単なステップに分解し、思考の過程を書き出すことで自分自身にヒントを与え、学習した膨大な知識の中から最も適切な「考え方」のパターンを引き出すための非常に有効な手法です。
人間が難しい問題に取り組むときに、順序立てて考えを整理するのと同じように、LLMもCoTによってその能力を最大限に発揮できるのです。
Discussion