ホームページ >テクノロジー周辺機器 >AI >考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論

考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-05 10:37:19780ブラウズ

大規模な言語モデル(LLMS)は、自動網取りと呼ばれる手法を使用してテキストを生成します。これには、以前の単語に基づいたシーケンスで最も可能性の高い次の単語を予測します。 ChATGPTなどのLLM駆動エージェントは、ユーザーの意図に従うように微調整されています。したがって、彼らは入力シーケンスを完了するだけでなく、入力に対するユーザーの意図をキャプチャし、それに応じて応答を生成します。

しばらくChatGptを試してみた場合、特定の回答の

の品質戻るための秘密可能な限り最良の答えは、LLMが出力を生成する方法を理解し、それに応じて入力プロンプトを策定することです。モデルの完全な可能性を活用するためにユーザー入力に適用される一連の手法は、迅速なエンジニアリングとして知られています。 この記事では、最も強力な迅速なエンジニアリング手法の1つである、チェーンオブテル(COT)プロンプトを検討します。この手法では、モデルが推論や問題解決を必要とする複雑なタスクを簡単に完了できるようにする方法でプロンプトを構成することが含まれます。 COTがなければ、まったく同じモデルが正解を提供できないことが示されています。

モデルのデフォルト機能

LLMは一般化する能力で知られていますが、モデルの機能はタスクに依存します。 LLMSを使用する場合、各モデルは巨大でありながら限られたデータベースでトレーニングされており、特定のタスクに合わせて最適化されていることを考慮することが重要です。したがって、モデルは特定のドメインで非常にパフォーマンスを発揮できますが、他のドメインでは失敗する可能性があります。

モデル機能もタイミングに依存します。人間のように、あなたが私に5桁の合計を与えた場合、あなたは正しい答えで考えて答えてくれる時間が必要です。急いでそれを行うと、簡単に計算して応答に失敗する可能性があります。 

同様に、次のトークンを計算するのにかかる時間には複雑すぎるタスクを言語モデルに与えると、正解を提供できない場合があります。

しかし、人間に似ていますが、それは必ずしもモデルがタスクを受けられないことを意味するわけではありません。

物事を推論するための時間またはガイダンスがあれば、モデルはまだ確実に答えることができるかもしれません。

モデルの応答とそれを生成するために必要な時間は、質問の特定の言葉遣いなど、さまざまな要因の影響を受ける可能性があります。
  • プロンプトが短く単純な場合、モデルが次のトークンを生成するのにそれほど時間がかからない場合があります。 プロンプトが長く複雑である場合、モデルは次のトークンを生成する前により多くの情報を処理する必要がある場合があります。
  • チェーンオブ考えの促進llmsが複雑なタスクの解決に成功するように促します。プロンプトを策定する方法を選択し、正しい答えを生成するために必要な時間または手順をモデルに提供する方法の両方によって。 チェーンの促しは何ですか?
  • chain-of-thoughtのプロンプトは、最終的な回答に到達する前に段階的な説明または推論プロセスを生成するようにモデルに明示的に促すことにより、言語モデルのパフォーマンスを改善する手法です。この方法は、モデルが問題を分解し、中間タスクをスキップして推論の障害を回避するのに役立ちます。 LLMの注意メカニズムに焦点を合わせるのに役立つため、
cotは効果的です。推論プロセスの分解により、モデルは一度に問題の一部に注意を向けることができ、あまりにも多くの情報を同時に処理することから生じる可能性のあるエラーのリスクを最小限に抑えます。 

cotの起源

Googleの研究者は、2022年に「大規模な言語モデルで推論を促進する思考のチェーン」というタイトルの論文に紹介されたチェーンオブ考えのプロンプトを導入しました。この研究は、一連の中級推論ステップを通じてモデルをガイドする方法を強調し、数学的な問題、論理的推論、マルチHOPの回答などのタスクのタスクのタスクのパフォーマンスを大幅に改善する方法を強調しました。

提案されている例の1つを見てみましょう:

標準プロンプトとCOTプロンプトの比較。左側では、モデルは最終的な回答(標準プロンプト)を直接提供するように指示されます。右側では、モデルが最終的な回答に到達するように推論プロセスを示すように指示されています(COTプロンプト)。

私たちが観察できるように、一連の思考を生成する - 一連の中間推論ステップ - は、モデルが正解を提供するのに役立ちます。

元の著者は、一連の思考を、最終的な出力につながる一連の中間自然言語推論の手順と呼び、このアプローチを考えている促しと呼んでいます。

考えられたチェーンプロンプト作業はどのように機能しますか?

プロセスは、モデルが段階的な方法で問題を介して考えることを奨励するプロンプトのクラフトから始まり、最終的な回答に直接ジャンプせずに中間ステップを生成します。これは、異なる戦略を使用して実行できます:

#1。明示的な指示

明示的な指示を与えるということは、ユーザープロンプト自体の問題を分解することを意味します。たとえば、「最初に、考慮する必要がある」などの文を使用して、モデルにその思考プロセスを詳述するように促します。

アクションで見てみましょう! 私のスペインの母が私に冷たい醸造を準備するための家族のレシピを送ってくれたと想像してください:

コーヒー関連のすべての言葉を英語に翻訳することに興味があるとしましょう。タスクにchatgptを使用したいと思います。
input_text = """
¡Preparar café Cold Brew es un proceso sencillo y refrescante!
Todo lo que necesitas son granos de café molido grueso y agua fría.
Comienza añadiendo el café molido a un recipiente o jarra grande.
Luego, vierte agua fría, asegurándote de que todos los granos de café
estén completamente sumergidos.
Remueve la mezcla suavemente para garantizar una saturación uniforme.
Cubre el recipiente y déjalo en remojo en el refrigerador durante al
menos 12 a 24 horas, dependiendo de la fuerza deseada.
"""

このプロンプトへの応答は次のとおりです

prompt = f"""
Give me a numbered list of all coffee-related words in English from the text below:
Text: <{input_text}>
"""
response = chatgpt_call(prompt)
print(response)

このタスクをすぐに実行するようにモデルに依頼すると、タスクを誤って実行することがわかります。非関連するコーヒーの単語を出力するだけでなく、英語ではなくスペイン語でも出力します。

このタスクは2つのステップが必要なため、複雑であると考えることができます。 考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論

テキストをスペイン語から英語に翻訳します。

コーヒー関連の単語を識別します。

代わりに、モデルはコーヒー関連の単語を識別する最終タスクにまっすぐジャンプし、翻訳ステップがありません。翻訳を中間タスクとして指定するか、メインの2つのステップでタスクを分解することにより、モデルを正しい出力に導くことができます。
    上記の考え方を含めることは、正しい答えにつながります:
  1. この記事のように、ChatGptやOpenai APIではなく、他のLLMSでこのテクニックを試すことに興味がある場合、「大規模な言語モデルの開発」はあなたのためです!
#2。暗黙の指示

時々、プロンプトで問題を分解する必要はありません。東京大学は、Googleの調査とともに、元のプロンプトの最後に「段階的に考えよう」を追加することからなるLLM応答を改善する素晴らしい方法を提案しました。
prompt = f"""
Give me a numbered list of all coffee-related words in English from the text below:
The task requires the following actions:
1 - Translate the given text into English.
2 - List each coffee-related word from the English text.
Text: <{input_text}>
"""
response = chatgpt_call(prompt)
print(response)
この単純な文は、モデルに大声で推論し、タスクを実行するために必要なすべての手順を実行するように促します。

著者が元の論文で提案した例の1つを分析しましょう。

考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論

標準プロンプトと暗黙のCOT命令の使用法との比較。左側では、モデルは問題に対する最終的な回答をすぐに提供し(ゼロショットプロンプト)、失敗します。右側では、モデルは暗黙のCOT命令(COTプロンプト)が正しい応答に到達することで指示されます。

[a]

最初の例では、著者はモデルに算術の問題を解決するように依頼しますが、このタスクでは失敗します。

[b]その後、元の質問に「ステップバイステップで考えましょう」を追加することにより、モデルは答えが大声で成功する理由を理由にします。 この単純なトリックをマルチアリス数学データセットに適用すると、著者は、この暗黙の指導が18%から79%の精度を4倍にしていることを発見しました!

興味がある場合は、この手法の詳細については、「この短いプロンプトを使用してChatGptの結果を高めてください。」

>

#3。実証的な例

上記のセクションで「ゼロショット」という用語を数回使用しました。

ゼロショットとは、その特定のタスクの例で明示的にトレーニングされずにタスクを実行するモデルの能力を指します

。  これは、新しい、以前に見えなかったタスクに対する適切な応答を一般化して生成するモデルの能力に依存しています。つまり、ChatGptのユーザーインターフェイスを開いてすぐに質問をすると、ゼロショットプロンプトを実行しています。 それにもかかわらず、私たちが解決したい類似のタスクのいくつかの例をモデルに示す方法があります。一連の実証的な例を提供することは、提供された例の数に応じて、ワンショットおよび少数のプロンプトとして知られています。

ワンショットプロンプト

ワンショットプロンプトには、ガイダンスのターゲットタスクに似たモデルの1つの例を示す

たとえば、記事の最初の数字を参照すると、プロンプトで提供された実証例のおかげで、モデルが思考の連鎖を生成することを観察できます。

少数のプロンプト

少数のショット学習はワンショットと同じように機能しますが、

与えられた例の数は、通常は約100です。モデルのパフォーマンスは、例の数とともに直線的に増加します。 少数のショットプロンプトは、Jason WeiとDenny Zhou et alによって研究されました。 Googleから。このアプローチは、モデルにゼロショットまたはワンショットプロンプトを使用してタスクを実行するのに十分な背景知識を持たない場合がある、より専門的またはドメイン固有の知識を必要とするタスクに特に役立ちます。

少数のプロンプトは、新しいまたは特別なデータのコレクションでモデルの小さな微調整と見なされることがあります

「プロンプトエンジニアリングでChatGPTパフォーマンスを改善する」で、ワンショットと少ないショットのプロンプトの例を参照してください。

少数のコットプロンプト

ワンショットと少数のショットプロンプトはCOTではありません。ただし、研究者は、「少ないショットのCOTプロンプト」として知られるCOTプロンプトとの少ないショット学習をどのように組み合わせることができるかを調査しました。いくつかのショットのベッドでは、

このモデルには、その推論プロセスを導くための段階的なソリューションとともに、問題のいくつかの例が提供されています。

検索された生成やインタラクティブクエリなどの他の手法と少数のショットのコットプロンプトを組み合わせることで、モデルのパフォーマンスと信頼性をさらに高めることができます。外部知識のベース、データベース、または情報検索システムを統合することで、モデルは事実と最新の情報で推論を強化することができます。

実践におけるチェーンオブ考えのプロンプトの実装

考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論

数学的な問題の迷路COTが、モデルが知識空間をナビゲートし、複雑なタスクを解決するのに役立つ方法を説明します。 CHATGPT 4Oの生成を使用した自己生成画像次のプロンプト「数学的問題の迷路を通して言語モデルエージェントを想像してください」 プロンプトにベッドを含める方法は複数あります:

構造化されたテンプレート
    :コーヒーの例で見たように、モデルがとるべきステップを明示的に概説するテンプレートを使用します。プロンプトガイドラインの記事で、プロンプトテンプレートと条件付きプロンプトの例を参照してください。
  • インタラクティブプロンプト:各ステップでフィードバックまたは修正を提供することにより、各ステップを説明するか、モデルの推論プロセスをガイドするように求められるダイアログにモデルを関与させます。これは、人間のループアプローチとしても知られています
  • フィードバックループ:必要に応じて、モデルの中間ステップが評価され、改良されているフィードバックメカニズムを組み込みます。これは、マルチステージプロンプトとしても知られています
  • 複数のフレームワークは、COTやその他の迅速なエンジニアリングテクニックの実装に役立ちますが、Langchainは私のお気に入りです。 LANGCHAINをLLMを搭載したプロジェクトの一部として使用することに興味がある場合、「Langchainを使用したLLMアプリケーションの開発」というコースは理想的な出発点です。
  • 考え方の促進の利点 考えられたチェーンプロンプトは、特に複雑なタスクでの言語モデルのパフォーマンスと信頼性を向上させる上で、いくつかの利点を提供します。
  • #1。精度が向上しました

問題を小さく管理可能な手順に分解することにより、モデルは複雑なタスクをより正確に処理できます。中間ステップは、潜在的なエラーをキャッチして修正できるチェックポイントを提供し、より正確な最終回答につながります。 数学的な問題、論理パズル、マルチホップの質問応答などのタスクがこのアプローチの恩恵を受ける理由は、

がすでに推論の複数のステップを必要とするためです

#2。強化された解釈可能性

段階的な推論プロセスは透明であり、ユーザーはモデルがどのように結論に達したかを理解できるようにします。この透明性は、モデルの出力に対する信頼を構築します

また、ユーザーはその推論でモデルが間違っている可能性のある場所をより簡単に見つけることができるため、デバッグのデバッグにも役立ちます。 制限と考慮事項

もちろん、他のテクニックと同様に、検討する価値のある特定の欠点が常にあります。

モデル依存性

COTはモデル依存技術

であると考えることが重要です。したがって、COTの有効性は、基礎となる言語モデルの機能に大きく依存します。

プロンプト生成

効果的なCOTプロンプトを作成することも困難な場合があります。プロンプトが推論プロセスを通じてモデルを正しく導くようにするために、慎重な設計が必要です。さまざまな種類のタスクとドメインのプロンプトの更新と維持は時間がかかり、絶え間ない改良が必要になる場合があります。 パフォーマンス

COTプロンプトは、明確な連続的な推論プロセスを持たないタスクにはそれほど効果的ではない場合があります。さらに、私は追加のトレーニングや適応なしで、まったく新しいまたは予期しないタイプの問題に適切に一般化できない可能性があるため、最新の知識ベースと適切なプロンプトを維持することが重要です。

トレードオフ

COTプロンプトの段階的な説明を提供することで解釈可能性が向上しますが、は、すべてのアプリケーションで常に望ましいとは限らない、より長くより冗長な出力につながる可能性があります。

結論

この記事では、チェーンオブセーブのプロンプトが、大規模な言語モデルの推論能力を強化する際の重要な進歩と、その実装の実用的な例をどのように表しているかを見てきました。 

プロンプトテンプレート、インタラクティブプロンプト、またはフィードバックループを使用するかどうかにかかわらず、これらのアプローチの背後にあるアイデアは、推論プロセスを通じてモデルを導き、その機能を活用することです。  さらに、モデルのパフォーマンスをさらに向上させ、COTと組み合わせることができるワンショットや少ないショットのプロンプトなどの強力なテクニックを調査しました。 この記事で説明したテクニックを試して、より信頼性の高い高性能プロンプトを構築し、留意してください。

DataCampのコースを通じて迅速なエンジニアリングの詳細をご覧ください。開発者向けの迅速なエンジニアリングとCHATGPTプロンプトエンジニアリングを理解できます。また、エンジニアリングの認定を促すための別のガイドをチェックして、最適な学習パスが何であるかを確認することもできます。 

FAQを促す

shoe-of-thought

以上が考えのチェーンプロンプト:LLMSを使用したステップバイステップの推論の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。