思考の連鎖を促す:AIが一歩ずつ考えるように導く

思考の連鎖を促す:AIが一歩ずつ考えるように導く
思考連鎖プロンプティングとは?
Chain-of-Thought (CoT)とは、大規模なLarge Language Models (LLMs)が複雑な問題をより小さな簡単なステップに分解するのを助ける、[prompt engineering](https://zilliz.com/glossary/prompt-as-code-(prompt-engineering appendix))テクニックである。直接的な答えを与える代わりに、モデルは、人が問題を一歩一歩解決する方法のように、一連の思考や推論を通して歩みを進める。
思考連鎖型プロンプティングはどのように機能するか?
Chain-of-Thoughtプロンプティングは、AIモデルが複雑な問題に段階的に取り組むように誘導することで機能する。この方法は逐次推論に基づいており、各ステップは前のステップの上に構築される。例えば、モデルが難しい数学の問題を出題されたとする。すぐに最終的な答えを出そうとするのではなく、まず小さな計算や論理的なステップを踏んで、より正確な最終結果を導き出す。問題を分解するこのプロセスは、モデルが正しい答えを導き出し、そこに至った経緯を理解するのに役立ち、全体的な回答の質を向上させる。
実践例思考連鎖プロンプティングの前と後
CoTがどのように機能するか、実例を通して理解しよう。つのプロンプトは、思考連鎖プロンプトがAIモデルの反応にどのような影響を与えるかを示しています。
**1.CoT前のプロンプト
以下のユーザーレビューを「ポジティブ」、「ネガティブ」、「ニュートラル」に分類してください。
"製品の到着は遅かったが、問題なく動作している"。
"素晴らしいサービスと品質でした!"
"色が気に入らなかったが、カスタマーサポートは親切だった。"
"ひどい経験。お勧めできない」「色が気に入らなかったが、カスタマーサポートは親切だった」「ひどい経験。
"まあまあ、仕事はできる""_
回答:*
COTなしのプロンプト.png
図:CoTなしのプロンプト
**分析
素朴なプロンプトでは、モデルは基本的な出力を提供し、各レビューは各決定に至った方法を説明することなく、単に分類されます。カテゴライズの背後にある理由をユーザーに示したり、どの特定の単語やフレーズが肯定的または否定的と見なされたかについての洞察を提供したりしません。出力は正しいが、深みと透明性に欠ける。
2.CoT後のプロンプト
- 以下のユーザーレビューを「ポジティブ」、「ネガティブ」、「ニュートラル」に分類してください。各レビューについて、以下の手順に従ってください。
レビューを注意深く読んでください。
1.肯定的な言葉やフレーズを特定する。
2.否定的な単語やフレーズを挙げてください。
3.肯定的な要素と否定的な要素に基づいて、全体的なセンチメントを評価する。
4.適切なカテゴリーを割り当てる
5.出力では、すべての情報を表にしてください。
各レビューを進める
"製品の到着は遅かったが、問題なく動作している"
"素晴らしいサービスと品質!"
"色が気に入らなかったが、カスタマーサポートは親切だった。"
"ひどい経験。お勧めできない」「色が気に入らなかったが、カスタマーサポートは親切だった」「ひどい経験。
"まあまあ、仕事はできる"
回答:*
CoTでプロンプト](https://assets.zilliz.com/answer_with_COT_d295b92fd4.png)
図:CoTによるプロンプト
**分析
このモデルは、各レビューの肯定的なフレーズと否定的なフレーズを識別することで、その理由を説明し、ユーザーに判断の明確な理解を与えます。
表が生成され、最終的なカテゴリがリストされるだけでなく、各レビューの主要な感情フレーズも表示され、出力がより構造化され透明化されます。
プロンプトの例による思考連鎖のバリエーション
ここでは、さまざまなタイプの思考連鎖プロンプトと、それぞれの実践的なプロンプト例を紹介します:
1.標準的な思考連鎖型プロンプティング
このタイプの思考の連鎖は、モデルに問題の各部分を段階的に考えさせる。
**プロンプトの例
時速60マイルで走る列車は180マイル進む必要があります。この旅を完了するにはどれくらいの時間がかかりますか?順を追って説明しましょう。
予想される模範応答:*
1.「列車は時速60マイルで走っている。
2.「走行距離は180マイルです。
3.「時間を求めるには、距離を速度で割る必要がある。
4.「目的地まで3時間かかる。
2.数撃ちゃ当たる思考連鎖型プロンプティング
スモールショットCoTでは、新しい問題を解くように指示される前に、モデル にいくつかの例が与えられる。
**プロンプトの例
ここに例があります:ある車が2時間で100マイルを走る場合、その速さは何マイルですか?時速は100÷2=50マイルです。 もう一つ例を挙げましょう:飛行機が 3 時間で 600 マイルを走る場合、速度は 600 ÷ 3 = 200 マイル/時です。 同じ手順で、自転車が3時間で90マイルを走る場合、その速度は何マイルですか?
予想される模範解答:*」。
1.「距離は90マイル、時間は3時間です。
2.「速度を求めるには、90を3で割る。
3.「90÷3=時速30マイル
3.自己矛盾連鎖思考
モデルは複数の推論経路を生成し、最も一貫性のある答えを選ぶ。
**プロンプトの例
この問題をいろいろな方法で解いてみて、答えを見比べてみましょう。この問題をいろいろな方法で解いてみて、答えを比べてみましょう。 予想される模範解答:」「」「」「」「」「」「***」。
経路 1: 1.「総費用は12ドルで、リンゴは6個です。 2."12ドル÷6=2ドル" パス 2: 1."6個のリンゴの値段が$12なら、$12÷6=$2だから、1個のリンゴの値段は$2である。" 最終的な答え:*。 "どちらの方法でも同じ結果になるので、りんご1個あたりの値段は ˶ˆ꒳ˆ˵ ) ˶ˆ꒳ˆ˵ ) ˶ˆ꒳ˆ˵ ) ˶ˆ꒳ˆ˵ ) ˶ˆ꒳ˆ˵ )
4.対話的思考連鎖
このモデルでは、必要なときに説明や追加情報を求めます。 **プロンプトの例 あなたは合計50ドル持っていて、何冊か本を買いたい。一冊7ドルです。あなたは何冊の本を買うことができますか。解く前にもっと情報が必要なら聞いてください。 予想される模範解答:****. 1.「本の値段には税金が含まれていますか。 (本1冊につき税抜き7円であることを確認した場合)。 2."よし、税抜きだと ㋑50円 ㋒7円でだいたい7冊。7×7=49だから。" 3.「7冊買うと残り1円。
5.複数エージェントの思考連鎖
この場合、複数のAIエージェントが協力して異なる部分に取り組み、問題を解決する。 **例 45人の生徒と9人の教師が旅行に行きます。1台のバスに15人乗れるとすると、何台のバスが必要ですか?1人のエージェントに総人数を計算させ、別のエージェントに割り算を計算させ、3人目のエージェントに解を検証させましょう。 **予想されるモデルの反応 エージェント1:「総人数は生徒45人+教師9人=54人です。 **54人をバス1台15人で割ると、54÷15=3.6となり、バスが4台必要になります。 **エージェント3:「総人数も計算も正確です。バスが4台必要です。"
6.再帰的思考連鎖
モデルは自分自身の推論をチェックし、必要ならステップを修正する。 **プロンプトの例 **手元に120円のお金があり、食料品に45円、ガソリン代に30円、交際費に20円を使います。残りのお金はいくらですか。計算を確認しながら行ってください。 **予想される模範応答 1.「120ドルから始めます。 2."$120 - $45 = $75." 3."$75 - $30 = $45." 4."$45 - $20 = $25." 5."確認中:\120ドル-45ドル=75ドル"、"75ドル-30ドル=45ドル"、"45ドル-20ドル=25ドル"。答えは、"╱╱╱╱"です。
思考連鎖プロンプティングを使うとき
思考連鎖プロンプトは、多段階の推論、論理的思考、慎重な分析が必要なタスクに適し ている。以下は、CoTが役立ついくつかのシナリオです:
1.数学の問題または計算:* 課題に複数の操作や計算が含まれる場合、CoT は各ステップを通じてモデルをガイドする。例えば、言葉の問題や複雑な算数を解くには、計算を実行する前に、情報を小さくて扱いやすい断片に分解する必要がある。
2.論理的推論と演繹: CoT は、モデルが情報を段階的に分析する必要があるタスクに最適です。
3.多段階問題解決:* 予算のバランスをとる、レシピに従う、技術的な問題を解決するといったタスクは、多くの場合、いくつかのステップを必要とします。CoTは、モデルがこれらのステップを正しい順序でたどるのを助けます。
4.**CoTは、科学、法律、哲学の分野で複雑な質問をされたときに、より正確で詳細な回答をするために必要な推論を通してモデルを導くことができます。推測の代わりに、健全な答えを形成するために必要な事実と論理を分析します。
思考の連鎖をさらに改善する
プロンプトの効果をさらに高めるために、他のいくつかのテクニックを組み合わせて推論を処理することができます。例えば
1.明確で構造化されたプロンプトの提供: プロンプトの質は推論に大きく影響する。プロンプトは、問題を論理的なステップに分割するCoTを強化するように設計する必要があります。プロンプトがより構造化され詳細であればあるほど、モデルはより良い推論プロセスに従います。
2.CoTとFew-Shot Learningの組み合わせ:Few-Shot Learningは、モデルが問題を通して推論のいくつかの例を与えることで、CoTを向上させることができます。ステップバイステップの推論が使用されたいくつかの類似したケースをモデルに示すことで、モデルは新しいタスクへのアプローチ方法をよりよく理解することができます。
3.自己反省と検証: CoTを向上させる1つの方法は、モデルが自分の推論をチェックするように促すことです。答えを生成した後、モデルにそのステップが理にかなっているかどうかを見直すよう求めることができます。これは、最終的な答えを出す前に、論理的な間違いやずれを発見するのに役立ちます。
4.自己一貫性の組み込み:自己一貫性とは、モデルが複数の推論パスを生成し、それらが同じ結論につながるかどうかを確認するためにそれらを比較する方法です。複数のパスが一致する場合、モデルは正しい答えに到達している可能性が高くなります。例えば、モデルに2つの異なる方法で問題を解くように要求し、異なるアプローチ間で最も一貫性のある答えを選択することができます。
思考連鎖プロンプティングの限界
思考連鎖プロンプトはAIの推論を向上させるための強力なアプローチであるが、特定のシナリオにおいてその有効性に影響を与える可能性のあるいくつかの制限がある。
1.推論の誤りを犯しやすい: CoTは、モデルが論理的で段階的なプロセスに従うかどうかに依存する。しかし、モデルが1つのステップでミスを犯すと、そのミスは最終的な答えまで持ち越される可能性がある。
2.時間とリソースのオーバーヘッド: CoTは、モデルが直接的な答えを提供する代わりに、各ステップを通して考えなければならないため、より多くの計算資源を必要とします。このため、特に複雑な問題や複数ステップの問題では、プロセスが遅くなり、リソースをより多く消費する可能性があります。スピードが優先される状況では、CoTは理想的ではないかもしれません。
4.よく設計されたプロンプトへの依存:* CoTの効果は、提供されるプロンプトの質に大きく依存する。プロンプトが明確でなかったり、うまく構造化されていなかったりすると、モデルは問題を推論するのに苦労するかもしれない。このようなプロンプトを作成するには、努力と専門知識が必要である。
5.馴染みのないタスクへの限定された汎化: CoTは、以前に見たことのあるタスクや、以前のタスクによく似たタスクに対しては非常に効果的である。しかし、トレーニングデータ以外の見慣れない問題やタスクが提示された場合、学習された推論パターンに依存するため、モデルはCoTを効果的に適用するのに苦労する可能性があります。
6.プロンプト構造への過剰適合のリスク:時間が経つにつれて、CoTを使用するように訓練されたモデルは、特定のプロンプトに過度に依存するようになり、柔軟性が制限される可能性があります。Overfittingは、問題が常に特定の形式で提示されることを期待し、モデルが新しいタスクや異なる言い回しのタスクに適応することを難しくするかもしれません。
思考連鎖プロンプトの実際の使用例
思考連鎖型プロンプトは、さまざまな分野で幅広く実用化されている。ここでは、CoTが非常に有益となる実際の主な使用例をいくつか紹介する:
1.数学的問題解決
CoTは数学教育や個別指導のプラットフォームにおいて非常に有用である。生徒は、最終的な答えを得るだけでなく、数学の問題をより小さな論理的なステップに分解することで、そのプロセスを理解することができます。また、代数学、微積分学、統計学などの分野での高度な計算にも役立ちます。
2.法的推論と契約分析
法律システムにおいて、CoTは、AIシステムが契約やケースの各ポイントを体系的に調べることで、法的文書の評価、条項の分析、法的アドバイスの生成を支援する。また、段階的な法的推論を説明することができ、法的プロセスにおいてAIをより透明で信頼できるものにします。
3.カスタマーサポートとトラブルシューティング
CoTは、AI主導のチャットボットやサポートシステムが、段階的なトラブルシューティングのプロセスを通じてユーザーをガイドするのに役立ちます。これは、ユーザーが問題を解決するために指示や診断ステップに従わなければならない技術的な問題に役立ちます。
4.医療診断と意思決定支援
CoTは、医師や医療専門家が症状、検査結果、病歴を分析し、可能性のある診断や治療法を提案し、それぞれの結論に至った経緯を説明するのに役立ちます。
5.複雑な質問に対する回答
CoTは、単に事実を検索する以上のことを必要とする複雑な質問に答えるのに非常に効果的です。歴史、科学、法律などの分野の質問に対して、CoTはAIシステムが回答の理由を説明する詳細な複数ステップの回答を提供するのに役立ちます。
6.ゲーム戦略とパズル解決
ゲームでは、戦略は、一連の流れの中で複数のステップを考慮することによって生成される。CoTは、ゲームやパズルを解くシナリオにおける複雑な戦略を、チェス、囲碁、パズルベースのゲームのような、より良い意思決定とゲームプレイにつながる、より小さく、思慮深い手に分解する。
思考連鎖プロンプトの効率を高めるには?
Zillizによって開発されたオープンソースのベクトルデータベースであるMilvusは、画像、テキスト、動画などの非構造化データを効率的に保存・検索するように設計されている。Chain-of-ThoughtプロンプトがAIモデルの推論能力を向上させることに重点を置いているのに対し、Milvusはこれらのモデルが大規模なベクトルデータを管理・処理する方法を強化する。
1.複雑な推論のための効率的なデータ検索: CoTは、AIモデルがステップバイステップの推論を行うための関連情報にアクセスできることに依存しています。Milvusは効率的なバックエンドであり、膨大な量のベクトルデータ(テキスト埋め込みなど)を格納し、迅速な検索を提供する。これにより、AIモデルは推論プロセスの各ステップで必要なデータに遅延なくアクセスすることができます。
1)大規模アプリケーションのサポート: CoTプロンプトは、多くの実世界のケースで、マルチステップ推論のための広範なデータセットを扱う必要があります。Milvusは、多くの実世界のケースにおいて、AIモデルがスピードやパフォーマンスを損なうことなく、大規模なデータセットを扱うことを可能にします。
2)最適化された類似検索: Milvusは高速な意味検索と類似検索のために構築されており、AIが意味的に関連するデータに素早くアクセスできるようにすることでCoTを強化します。これにより、多段階の問題を解く際に、モデルが関連情報をより正確かつ効率的に引き出すことができるため、推論プロセスがスピードアップします。
結論
要約すると、思考連鎖プロンプトは、AIモデルが複雑な問題を論理的なステップに分割して取り組むのを助け、正確さと明瞭さを向上させる。Milvusは、大量の非構造化データに素早くアクセスできるようにすることで、このプロセスを強化し、AIが各ステップで作業する際に関連情報を引き出せるようにする。CoTとMilvusは、研究、顧客サポート、財務分析などの分野で複雑なタスクを処理するための実用的なソリューションを提供し、AIを実世界のアプリケーションでより効果的かつ信頼性の高いものにします。
思考連鎖プロンプトに関するFAQ
- 思考連鎖型プロンプティングはどのようにAIの推論を向上させますか?
思考連鎖プロンプトは、段階的に問題を通してモデルを誘導することにより、AIの推論を向上させます。この方法は、モデルが複雑なタスクをより小さく、管理可能な断片に分解することを促し、エラーを減らし、精度を高めます。
- 思考連鎖型プロンプティングはいつ使うべきか?
CoTは、多段階の推論、深い論理分析、または複雑な問題解決を必要とするタスクに最適です。例えば、数学の問題、論理的な推論、技術的なトラブルシューティング、多面的な意思決定プロセスなどです。
- 思考連鎖プロンプティングの主な利点は何ですか?
CoTの主な利点には、精度の向上、複雑な問題のより良い処理、エラーの減少、モデルの透明性の向上、およびAIの推論をより理解しやすく信頼性の高いものにする構造化されたアプローチが含まれます。
- Milvusはどのように思考連鎖型プロンプティングの効率を向上させるのか?
Milvusは、テキストや画像などの大規模な非構造化データを効率的に保存および検索することで、CoTプロンプトを強化します。これにより、AIモデルは各推論段階で関連データに迅速にアクセスできるようになり、複雑なマルチステップタスクでスムーズかつ高速なパフォーマンスを実現します。
- 思考連鎖型プロンプティングは従来のAI応答とどう違うのか?
従来のAI応答は、推論プロセスを詳細に説明することなく、直接的に答えを提供しようとすることが多い。一方、Chain-of-Thought Prompting(思考連鎖型プロンプティング)は、ステップごとに推論を説明するようモデルをガイドし、透明性を提供し、解決策に向けた論理的な進行に従います。
関連リソース
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models](https://arxiv.org/abs/2201.11903)
プロンプトエンジニアリング入門](https://zilliz.com/glossary/prompt-as-code-(prompt-engineering))
Milvusを用いたLLMによるテキストから画像へのプロンプト生成](https://zilliz.com/blog/llm-powered-text-to-image-prompt-generation-with-milvus)
LangChainにおけるプロンプティング](https://zilliz.com/blog/prompting-langchain)
プロンプト連鎖](https://zilliz.com/glossary/prompt-chaining)
ゼロショット学習について知っておくべきこと](https://zilliz.com/learn/what-is-zero-shot-learning)
ChatGPT+ベクター・データベース+プロンプト・アズ・コード - CVPスタック](https://zilliz.com/blog/ChatGPT-VectorDB-Prompt-as-code)
AI時代のLLM駆動エージェントを探る】(https://zilliz.com/blog/explore-llm-driven-agents-in-age-of-AI)