別名:思考の連鎖
チェーン・オブ・ソートの定義と根拠
「思考連鎖」(Chain-of-Thought、略してCoT)とは、一連の思考ステップからなる思考の連鎖を生み出すという原則に基づいた思考法である。思考プロセスを一連の順序だったステップに分解することで、問題に対してより体系的に考え、創造的なアイデアを生み出すのに役立つ。この方法は、イノベーション、意思決定、問題解決など、さまざまな思考シナリオに適用できる。CoT法の核となる考え方は、大きな問題をいくつもの小さな問題に分解し、それぞれの問題がシンプルで明確な方法で答えられるようになるまで、小さな問題をさらに小さな問題に分解していくことである。こうすることで、問題をより明確に理解し、より良い解決策を見つけることができる。
思考連鎖はジグソーパズルに例えることができる。ジグソーパズルでは、それぞれのピースが問題の一面を表し、それらのピースをつなげて初めて完全な答えを導き出すことができる。例えば、私たちが新しい知識を学ぶとき、その知識をよりよく理解し記憶するために、連鎖思考を利用して様々な知識のポイント間の関係を確立することができる。解を得ることができる。
ビッグデータ分野の解釈
Chain of Thought(CoT)プロンプトプロセスは、最近開発されたプロンプト手法で、大規模な言語モデルに推論プロセスの説明を促すものである。下の図は、数発の標準的なプロンプト(左)とChain of Thoughtプロンプトプロセス(右)の比較である。
この問題を計算する大きなモデルを絶対的に正しくする方法について、新しい問題を考えよう:
ニワトリは1日に6個の卵を産む。 今日、卵を1回採取して半分食べた。翌日、また卵を集めて2個食べ、3日目にも卵を集めたが、今残っている卵は何個だろう?
あるWeiら(2022)(新しいタブで開くで紹介した連鎖思考(CoT)プロンプトは、中間推論ステップを通して複雑な推論能力を可能にします。推論が解答に先行するような複雑なタスクでより良い結果を得るために、サンプルの少ないプロンプトと組み合わせることができます。
思考連鎖の主なアイデアは、プロンプトに答える際の推論プロセスも表示する大規模な言語モデルに、いくつかの少数の模範例を示すことによって、サンプルの推論プロセスを説明することです。このように推論を説明することで、より正確な結果が得られることが多い。
実例
CoTチェーン思考は、日常生活のいたるところにも見られる。例えば、料理をするとき、まず材料を用意し、次に調理し、最後に盛り付ける。これは典型的なCoTチェーン思考のプロセスである。例えば、新しい知識を学ぶとき、まず基本を理解し、それから高度な内容を学ぶ必要がある。
思考連鎖はジグソーパズルに例えることができる。ジグソーパズルでは、それぞれのピースが問題の一面を表し、それらのピースをつなげて初めて完全な答えを導き出すことができる。例えば、私たちが新しい知識を学ぶとき、その知識をよりよく理解し記憶するために、連鎖思考を利用して様々な知識のポイント間の関係を確立することができる。解を得ることができる。
長所と短所
チェーン・オブ・ソート(CoT)とは、思考のプロセスを有機的に結びついた一連のステップに分解することで、思考の効率と質を向上させる思考法である。その利点は以下の通りである:
1.人々がアイデアの流れをよりよく整理し、コントロールできるようにし、よりよい問題解決につなげる。
2.継続的思考を支援し、創造的思考を促進する。
3.思考プロセスを追跡することで、思考の質をよりよくチェックし、最適化することができる。
4.組織からイノベーションに至るまで、複雑な問題の解決に利用できる。
CoTの欠点:
1.CoTは膨大な知識ベースと分析力を必要とし、初心者には不向き
2.CoTは時間と思考努力を必要とし、厳しい時間的制約のもとでは使いにくい。
3.人それぞれ思考パターンが違うので、CoTは人によって最適な思考法ではないかもしれない。
COT手法の分類
CoTは簡単な問題ではうまくいくが、難しい問題ではうまくいかない。そしてLeast-to-Most Promptingは主に難しい問題を解くのに使われる。
最小から最大のプロンプト
Least-to-Most Promptingの考え方も非常にシンプルで、質問をよりシンプルな小質問に分解し、小質問に一つずつ答えていくことで、元の質問の答えを導き出すというものだ:
上記に加えて、もう一つのトリックは、プロンプトにいくつかのサンプル(数ショット)を追加することで、結果を大幅に改善することができます。このテクニックはCoTにもあり、結果を向上させる非常に汎用性の高い方法である。
本稿では、具体的な実装におけるタスクの違いから、主に以下の2つのプロンプト構造を考案した(プロンプトのサンプル数は若干省略):
1.この問題を分解してみよう。
このアプローチは一度呼び出すLLMは、まずサブ問題を生成し、次に各サブ問題の答えと最終的な答えを生成する。つまり、LLMの出力を標準化するかどうかは、サンプル次第ということだ。
2. "****"を解くには、まず "****", "****", "****", ...を解く必要がある。subproblem2>**", "****", ...
このアプローチは反復小問に対する答えを作成し、すべての情報をまとめてから、最終的な答えを作成する。
私は、プロンプトが使用する特定のキューワード(**分解**または**最初に解く**)は重要ではないことを理解しています。まずサブタスクに分解するもう一度個別回答思考プロセスだ。
効果