「思考の連鎖(Chain-of-Thought)」とは、大規模言語モデルに対して解答に至る中間的な推論ステップを順序立てて出力させることで、複雑な問題の解答精度を向上させるプロンプトエンジニアリングの手法です。数学や論理パズルなど、段階的な思考が必要なタスクで高い効果を発揮します。
思考の連鎖(Chain-of-Thought)とは
思考の連鎖(Chain-of-Thought)とは、大規模言語モデルに対して問題の解決に至るまでの中間的な思考プロセスや推論ステップを段階的に出力させることで、複雑な推論問題の解答精度を向上させるプロンプトエンジニアリングの手法です。
詳しく解説
従来のプロンプトでは、問いに対して直接答えを出力させることが一般的でした。しかし、思考の連鎖を導入することにより、人間が数学の証明や複雑な論理パズルを解くときのように、問題を小さなステップに分解して順序立てて推論を行うことが可能になります。これにより、大規模言語モデルの持つパラメータや知識が有効に活性化され、特に論理的推論や算術、常識推論といった難度の高いタスクにおける正解率が劇的に向上することが研究で示されています。さらに、思考のプロセスがテキストとして明示されるため、モデルがどのような根拠でその結論に至ったかを人間が検証しやすくなるという副次的なメリットもあります。
具体例・使われ方
例えば、算数の文章題を解かせる際に、単に「答えは何か」と尋ねるのではなく、事前に「A君はリンゴを5個持っていました。2個食べ、その後3個買い足しました。まず5個から2個引くと3個、そこに3個足すので合計6個です。答えは6個です」という、思考プロセスを含めた推論の例(フューショットプロンプティングの一種)を提示します。その上で本題を入力すると、モデルは例に倣って「まず〜、次に〜、したがって答えは〜」と段階的に思考の連鎖を展開して解答します。また、例を提示せずとも「段階的に考えてください」という指示を与えるだけで同様の効果を得るゼロショットCoTというアプローチも存在します。
似た用語との違い
フューショットプロンプティングは、いくつかの入力と出力のペアを例示する手法全般を指しますが、必ずしも思考プロセスを伴うわけではありません。これに対し、思考の連鎖は中間ステップを明示的に出力させる点に特化しています。また、モデル自体のパラメータを更新する微調整(ファインチューニング)とは異なり、思考の連鎖は追加の学習を必要とせず、入力文を工夫するだけでモデルの推論能力を引き出す手法です。
注意点
思考の連鎖は万能ではなく、モデルの規模(パラメータ数)がある程度大きくないと効果が発揮されにくいとされています。また、中間ステップの出力に誤りが含まれている場合、最終的な結論も誤ってしまう現象(ハルシネーションなど)が発生します。さらに、段階的な思考プロセスを出力する分、生成されるトークン数が増加し、応答速度の低下やAPIの利用コスト増大につながる点に留意する必要があります。