プロンプトエンジニアリング

プロンプトエンジニアリング

プロンプト エンジニアリング (コンテキスト プロンプトとも呼ばれる) は、モデルの重み/パラメーターを更新せずに、LLM の動作を特定の結果に導く方法です。これは、望ましい結果を AI に効果的に伝えるプロセスです。ヒント エンジニアリングは、質問への回答から算術推論、さらにはさまざまなアプリケーション領域まで、さまざまなタスクに使用できます。ヒント エンジニアリングを理解することで、LLM の制限と機能を理解するのに役立ちます。

プロンプト エンジニアリングを理解するには、まずプロンプトとは何かを明確にする必要があります。

1. プロンプトとは何か

プロンプトとは何ですか?

プロンプトは、応答を生成したりタスクを完了したりするためにモデルが受け取る最初のテキスト入力です。タスクを実行するための応答を生成するようにモデルをガイドする一連のプロンプト入力を AI に提供します。この入力は、質問、説明、キーワードのセット、またはモデルがコンテンツ固有の応答を生成するようにガイドするその他の形式のテキストにすることができます。

たとえば、chatGPT では、ユーザーは通常、プロンプトを使用して大規模な言語モデルと対話し、質問への回答を要求したり、テキストを生成したり、タスクを完了したりします。モデルは、提供されたプロンプトに基づいて関連するテキストを生成し、ユーザーの要件を満たそうとします。

2. プロンプト分類

さまざまな観点から、プロンプトはさまざまな方法で分類できます。ここでは、説明可能性、対話モード、適用分野という 3 つの側面に従ってプロンプトを分類します。

2.1 説明可能性の分類: ハードヒントとソフトヒント

ハードプロンプトは、個別の入力トークンを含む手動で作成された定義済みテキスト、またはテキスト テンプレートです。静的プロンプトは、プログラミング、保存、再利用のためにプログラムに組み込むことができ、大規模なモデルベースのアプリケーションでは複数のプロンプト テンプレートを自由に使用できます。

テンプレートはある程度の柔軟性をもたらしますが、プロンプトは適切に設定する必要があります。つまり、静的プロンプトはハードコードされたプロンプトです。

LangChain 上に構築された大規模モデルに基づく多くのアプリケーションには、エージェントに実行するアクションを指示する、主に静的なプロンプト テンプレートがあります。一般的に、テンプレートには、アクセス可能なツール、それらのツールを呼び出すタイミング、および一般的なユーザー入力の定義が含まれます。

ソフト プロンプトは、プロンプト調整プロセス中に作成されます。ハード プロンプトとは異なり、ソフト プロンプトはテキストで表示または編集できず、より大きなモデルから得られた知識を表す埋め込みまたは数字の文字列が含まれます。ソフトヒントにはソフトな解釈可能性が欠けています。 AIは特定のタスクに関連するソフトキューを発見しましたが、それがなぜなのかは説明できませんでした。ディープラーニング モデル自体と同様に、ソフト ヒントは不透明です。ソフトヒントは追加のトレーニングデータを置き換えることができ、優れた言語分類器には数百から数千の追加データポイントが含まれる場合があります。

ヒント 微調整には、LLM を使用する前に小さなトレーニング可能なモデルを使用することが含まれます。小さなモデルを使用して、テキストプロンプトをエンコードし、タスク固有の仮想トークンを生成します。これらのダミー トークンはプロンプトに事前に追加され、LLM に渡されます。チューニング プロセスが完了すると、これらの仮想トークンはルックアップ テーブルに保存され、推論中に使用され、元の小さなモデルが置き換えられます。 LLM はコンテキストが提供されるとパフォーマンスが大幅に向上し、プロンプト ナッジは必要なコンテキストを即座に作成する迅速かつ効果的な方法です。

2.2 インタラクションモードの分類: オンラインプロンプトとオフラインプロンプト

「オンライン」と「オフライン」は、モデル対話におけるプロンプトの使用を区別する方法です。これら 2 つのカテゴリは、プロンプトがより大きなモデルといつどのように対話するかの違いを表します。

オンライン プロンプトは、通常、即時の対話型アプリケーション向けに、モデルとのリアルタイムの対話中に提供されるプロンプトです。このタイプのプロンプトは、ユーザーが実際にモデルと会話しているときに提供され、ユーザーはプロンプトを徐々に入力、編集、または変更できます。オンライン チャット、音声アシスタント、リアルタイムの質問応答などのアプリケーションでよく使用されます。

オフライン プロンプトは事前に準備されたプロンプトであり、通常はユーザーが実際にモデルと対話する前に作成されます。このようなプロンプトは、ユーザーの操作なしに事前に設計および入力され、バッチ処理のためにバッチとしてモデルに送られます。オフラインでのテキスト生成、記事の執筆、大規模データ処理などのアプリケーションでよく使用されます。

ヒントを「オンライン」または「オフライン」に分類すると、さまざまなアプリケーションのニーズを満たすためにヒントを効果的に使用する方法を決定するのに役立ちます。オンライン プロンプトは通常、リアルタイムの対話と即時のフィードバックが必要な状況で使用されますが、オフライン プロンプトは、大規模な処理やテキストの事前生成が必要な状況に適しています。特定のアプリケーションと使用シナリオに応じて、適切なプロンプト タイプを選択できます。

2.3 応用分野の分類

使用分類は、プロンプトの主な目的を決定し、プロンプトをより効果的に使用するのに役立ちます。一般的なプロンプトのカテゴリは次のとおりです。

情報検索: これらのプロンプトは、質問への回答、事実の提供、概念の説明など、モデルから特定の情報を取得するために使用されます。用途としては、質問と回答、情報検索、事実確認などがあります。

テキスト生成: これらのプロンプトは、記事、ストーリー、コメントなどのテキストを生成するようにモデルをガイドするために使用されます。用途としては、クリエイティブライティング、コンテンツ生成、自動要約などがあります。

翻訳: これらのプロンプトは、テキストをある言語から別の言語に翻訳するために使用されます。用途としては機械翻訳アプリケーションなどがあります。

感情分析: これらのプロンプトは、肯定的、否定的、中立的など、テキストの感情を評価するために使用されます。用途には、ソーシャル メディアの監視や感情分析アプリケーションが含まれます。

プログラミングとコード生成: これらのプロンプトは、コンピュータ プログラム コードを生成したり、プログラミングの問題を解決したりするために使用されます。用途としては、プログラミング支援、自動コード生成などがあります。

会話: これらのプロンプトは、会話やチャットをシミュレートし、ユーザーからの質問やコメントに応答するために使用されます。用途としては、チャットボット、仮想アシスタントなどがあります。

タスク固有: これらのプロンプトは、旅行計画の作成、マーケティング コピーの作成、レポートの生成など、特定のアプリケーションまたはタスク用です。目的はタスクによって異なります。

カスタム アプリケーション: これらのプロンプトは特定のフィールドまたはカスタム アプリケーション用であり、その具体的な使用方法はユーザーによって定義されます。使用方法はユーザーのニーズによって異なります。

プロンプトをさまざまな用途に分類することで、モデルをさまざまなタスクや状況にどのように適用できるかをよりよく理解できます。これは、適切なタイプのプロンプトを選択し、特定のニーズを満たすように設計するのに役立ちます。

3. プロンプトの一般的な要素

プロンプトを適用するときは、プロンプトに含まれる可能性がある 6 つの要素 (タスク、コンテキスト、例、役割、形式、トーン) を理解する必要があります。これらの要素は、重要度の降順で並べられています。

3.1 タスク

タスク シーケンスは、生成、駆動、書き込み、分析などの動詞によってガイドされ、明確なタスク目標が必要です。例えば:

写真

3.2 コンテキスト

背景コンテキストは難しいものですが、一般的には、ユーザーの背景情報、成功した結果がどのようなものになるか、ユーザーがどのような環境にいるかなどを説明します。たとえば、次のようになります。

写真

3.3 例

基本的に、すべての主要な言語モデルに関する研究では、プロンプトに例を含めると、より質の高い回答が得られることがわかっています。 例えば:

写真

チーム内のポジションの JD を書きたい場合は、最初に ChatGPT にシナリオの説明 (コンテキスト) を提供し、次に準備した説明に基づいて参照ケース (例) を提供するように指示することができます。

3.4 役割

これが AI に期待する役割です。質問があり、それを解決するために専門家に相談したいとします。たとえば、運動中に怪我をした場合、リハビリテーションを行うセラピストのところに行くことになります。仕事を探しているなら、採用担当者にアドバイスを求めるでしょう。例えば:

写真

3.5 フォーマット

仕事を見つける、良い話し手になるなど、個人またはグループの目標を達成することを想像してください。これらはすべて散在したアイデアですが、人工知能の助けを借りて、表などの特定の形式に整理することができます。電子メール、gist、コードブロックなどの形式も期待できます。段落やタグなど、これらの形式は私たちの仕事にも役立ちます。

電子メールの例を見て、コンテキストとタスクを与え、タイトル形式を使用するように AI に依頼します。

写真

3.6 トーン

トーンは、使用するトーンの種類を適切に判断すると理解しやすい要素です。

写真

これら 6 つの要素のうち、タスクは必須であり、コンテキストと例は非常に重要であり、役割、形式、トーンも理想的です。関連性があり影響力のある情報を含む電子メールで何を伝える必要があるかを示す実際の例を示します。

写真

では、LLM では Prompt はどのように機能するのでしょうか?その動作原理は何ですか?

4 プロンプトの仕組み

Prompt の動作を理解する前に、より大きなモデルがどのようにテキストを生成するかを理解する必要があります。簡単に言えば、大規模モデルのテキスト生成は、ターゲットテキストの完成として理解できます。LLM テキスト生成の動作原理を理解すると、Prompt を比較的明確に理解できるようになります。

たとえば、「パリは都市です...」という文を続けたいとします。エンコーダーは Bloom-560M モデルを使用して、保有するすべてのトークンのロジットを送信します。これは、ソフトマックス関数を使用して、生成されたトークンを選択する確率に変換できます。

写真

上位 5 つの出力トークンを見ると、すべて意味がわかります。正当であると思われる次のフレーズを生成できます。

  • パリは愛の街です
  • パリは眠らない街です
  • パリは芸術と文化が栄える都市です
  • パリは象徴的なランドマークのある都市です
  • パリは歴史が独特の魅力を持つ都市です

次に、トークンを選択するためのさまざまな戦略があります。

4.1 貪欲サンプリング

簡単に言えば、貪欲サンプリング モデルは、各ステップで最も可能性が高いと思われる単語を選択します。他の可能性を考慮したり、さまざまなオプションを検討したりすることはありません。モデルは最も確率の高い単語を選択し、選択された単語に基づいてテキストを生成します。

写真

貪欲な戦略を使用すると、計算効率が高く、簡単ですが、反復的な出力や過度に決定論的な出力につながる可能性もあります。モデルは各ステップで最も可能性の高いトークンのみを考慮するため、コンテキストと言語の多様性を完全には捉えられず、最も創造的な応答が生成されない可能性があります。このモデルの近視眼的な性質は、各ステップで最も可能性の高いマーカーのみに焦点を当て、シーケンス全体への全体的な影響を無視します。

この例で生成される出力は次のようになります: パリは未来の都市です。

4.2 ビームサーチ

ビーム検索は、テキスト生成で使用されるもう 1 つの戦略です。ビーム検索では、モデルは各ステップで最も可能性の高いトークンを考慮するのではなく、最も可能性の高い上位「k」個のトークンのセットを想定します。この k 個のトークンのグループは「ビーム」と呼ばれます。

写真

このモデルは、各トークンに対して可能なシーケンスを生成し、各ビームを拡張してテキスト生成の各ステップでそれらの確率を追跡することで、可能なシーケンスを生成します。このプロセスは、生成されたテキストの希望の長さに達するか、各ビームが「停止」トークンに遭遇するまで継続されます。モデルは、すべてのビームから全体的な確率が最も高いシーケンスを最終出力として選択します。アルゴリズムの観点から見ると、ビームを作成することは k 進木を拡張することです。ビームが作成された後、全体的な確率が最も高いブランチが最終出力として選択されます。

この例で生成される出力は次のようになります: パリは歴史と文化の都市です。

4.3 確率サンプリング

簡単に言えば、ランダムな値を選択し、それを選択した語彙にマッピングすることによって次の単語が選択されます。ルーレットを回すようなもので、各単語の領域はその確率によって決まります。確率が高ければ高いほど、その単語が選択される可能性が高くなります。これは比較的単純な計算ソリューションです。比較的ランダム性が高いため、文 (または単語のシーケンス) は毎回異なる可能性が高いからです。

写真

4.4 温度によるランダムサンプリング

一般的に、ロジットを確率に変換するにはソフトマックス関数が使用されます。ここでは、ランダム サンプリングに温度が導入されています。これは、テキスト生成のランダム性に影響を与えるハイパーパラメータです。活性化関数を比較すると、温度が確率計算にどのように影響するかをよりよく理解できます。

写真

温度が導入された後、典型的なソフトマックスとの違いは、分母が温度 T で割られることです。温度が高くなると (1 に近づくほど)、出力結果はより多様になり、温度が低くなると (0 に近づくほど)、出力結果はより集中的かつ決定論的になります。 T = 1 の場合、最初に使用されたソフトマックス関数に進化します。

4.5 トップkサンプリング

温度に基づいて確率を調整することも可能ですが、もう 1 つの改善点は、すべてのトークンではなく最初の k 個のトークンを使用することです。これにより、創造性をあまり損なうことなく、テキスト生成の安定性が向上します。今度は、温度に基づいて最初の k 個のトークンのみがランダムにサンプリングされます。唯一の問題は数値 k の選択である可能性があります。これを改善する方法は次のとおりです。

写真

4.6 トップPサンプリング

固定数の「k」トークンを指定する代わりに、top-p サンプリングでは確率しきい値「p」を使用します。しきい値は、サンプリングに含める累積確率を表します。モデルは、各ステップですべての可能なトークンの確率を計算し、それらを降順で並べ替えます。

写真

モデルは、生成されたテキストにトークンを追加し続け、その確率の合計が指定されたしきい値を超えるまで続けます。 top-p サンプリングの利点は、コンテキストに応じてより動的で適応的なマーカー選択を可能にすることです。各ステップで選択されるトークンの数は、そのコンテキストにおけるトークンの確率に基づいて変化する可能性があり、より多様で高品質の出力を生成できます。

4.7 プロンプトの考えられる動作メカニズム

事前トレーニング済みの言語モデルでは、デコード戦略はテキスト生成にとって非常に重要です。確率を定義する方法や、確率を使用する方法はたくさんあります。温度は、デコード中のトークン選択のランダム性を制御します。温度が高いほど創造性が高まり、温度が低いほど一貫性と構造に重点が置かれます。創造性は興味深い言語体験につながる可能性がありますが、適度な安定性は、生成されたテキストの優雅さを保証します。

そうすると、Prompt の本質はおそらく意味的特徴の明示的な表現であり、Prompt の動作メカニズムは、大規模モデルがテキスト トークンを生成することを選択する確率にのみ影響すると考えられます。大規模モデルは大部分がブラックボックスであるため、その出現特性を説明することが難しく、膨大なデータ関係から決定論的な特徴を抽出することが難しく、確率的な結果しか得られません。一方、ユーザーのニーズは常に変化しており、その表現は極めて多様です。そのため、プロンプトには、特定の限られた分野にのみ共通する表現がいくつかある可能性があります。

5. プロンプトエンジニアリングとは何ですか?

プロンプト エンジニアリング (コンテキストでのプロンプトとも呼ばれる) とは、モデルの重みを更新せずに LLM と通信して、その動作を望ましい結果に導く方法を指します。プロンプトエンジニアリングは、ユーザーがさまざまなシナリオや研究分野で大規模なモデルを使用できるようにするためのプロンプトワードの開発と最適化に重点を置いています。これは経験科学であり、迅速な関与の効果はモデルによって大きく異なる可能性があるため、多くの実験とヒューリスティックが必要です。

したがって、ヒント エンジニアリングは、これらのヒントをキャプチャし、モデルの出力で高い精度と関連性を実現できるようにすることを目的としています。ヒント エンジニアリング スキルを習得すると、ユーザーは大規模な言語モデルの機能と制限をよりよく理解できるようになります。特に、会話中に関連するコンテキスト データを LLM に提供する方法として、ベクトル データベース、エージェント、プロンプト パイプラインが使用されてきました。

キューエンジニアリングは、キューワードの設計と開発だけではありません。大規模な言語モデルを操作および開発するためのさまざまなスキルとテクニックを網羅しています。ヒント エンジニアリングは、大規模言語モデルとの対話や接続、および大規模言語モデルの機能の理解において重要な役割を果たします。ユーザーは、プロンプトエンジニアリングを通じて大規模言語モデルのセキュリティを向上させることができます。また、専門的なドメイン知識や外部ツールを使用して大規模言語モデルの機能を強化するなど、大規模言語モデルを強化することもできます。たとえば、パイプライン、エージェント、CoT チェーンなどの LLM ベースの実装はすべて、何らかの形式のプロンプト エンジニアリングに基づいています。

プロンプト エンジニアリングには、目的の出力を達成するためのプロンプトの選択、作成、および整理が含まれ、主に次の側面が含まれます。

  • プロンプトの形式: 質問形式、説明形式、キーワード形式など、プロンプトの構造と形式を決定します。
  • プロンプトコンテンツ: モデルがユーザーの意図を理解できるように、適切な単語、フレーズ、または質問を選択します。
  • プロンプトのコンテキスト: モデルの応答が前の会話または状況に関連していることを確認するために、先行情報またはコンテキスト情報を考慮します。
  • プロンプトの書き方のヒント: ユーザーのニーズを正確に伝えるプロンプトを書くには、明確で簡潔な言葉を使用してください。
  • プロンプトの最適化: さまざまなプロンプトを試した後、結果に基づいてプロンプトを調整および最適化し、より満足のいく応答を得ます。

ヒント エンジニアリングは、大規模な言語モデルのパフォーマンスを向上させ、ユーザーのニーズをより適切に満たすのに役立ちます。これは、特に自然言語処理タスクや、テキスト生成、回答生成、記事執筆などの生成タスクにおいて、モデルと対話するときによく使用される戦略です。

6.プロンプトエンジニアリングの基本手法

6.1 ゼロショットプロンプト

ゼロショット プロンプトでは、望ましい出力を示す例を一切使用せずにモデルにタスクを入力するため、ゼロショットと呼ばれます。たとえば、モデルに文を入力すると、その文の感情が出力されることが期待できます。 DAIR-AI の例を見てみましょう。

 -Prompt: Classify the text into neutral, negative, or positive. Text: I think the vacation is okay. **** Output: Neutral

6.2 少数ショットのプロンプト

少数のショットのプロンプトは、対象タスクの入力と予想される出力を含む少数の高品質な例をモデルに提供することで実現されます。これらの良い例を観察することで、モデルは人間の意図と正確な出力を生成するための基準をよりよく理解できるようになります。したがって、ゼロショットと比較して、少数ショットの方が一般的に優れたパフォーマンスが得られます。ただし、この方法ではより多くのトークンが消費され、長いテキストの入力または出力を処理するときにコンテキストの長さの制限が発生する可能性があります。

GPT-3 などの大規模言語モデルはゼロショット機能に優れています。しかし、複雑なタスクの場合、少数ショットのヒントの方がパフォーマンスが優れています。パフォーマンスを向上させるために、プロンプト内でモデルがタスクを実行するようガイドするデモンストレーションを提供することで、コンテキスト学習のための少数のプロンプトを使用します。つまり、モデルをいくつかのタスク固有の例に公開すると、モデルのパフォーマンスが向上します。

https://arxiv.org/abs/2005.14165の例を見てみましょう。

 - Prompt: A "whatpu" is a small, furry animal native to Tanzania. An example of a sentence that uses the word whatpu is: We were traveling in Africa and we saw these very cute whatpus.

上記のプロンプトから、モデルに例が与えられ、次の質問に対する回答を生成できることがわかります。

6.3 指示プロンプト

コマンドプロンプトは、特に ChatGPT のようなチャットボットの場合、LLM の最も一般的な用途です。プロンプト コマンドの例を次に示します。

 - Prompt: Define Onomatopoeia **in** one sentence. **** Output: Onomatopoeia **is** the use of words that imitate **or** suggest the natural sound of a thing **or** action.

プロンプトは、大規模な言語モデルにプロンプ​​トの例を提供するように設計されており、トレーニングとテストの矛盾を排除し (モデルは Web 規模のコーパスでトレーニングされ、ほとんどの指示でテストされます)、チャットボットの実際の使用シナリオをシミュレートできます。指示プロンプトは、(タスク指示、入力、実際の出力) タプルを使用して事前トレーニング済みモデルを微調整し、モデルがユーザーの意図とより一致して指示に従うようにします。指導モデルを操作するときは、タスクの要件を詳細に記述し、できるだけ具体的かつ正確に、何を行うべきかを明確に指定する必要があります(何かをしないよう指示するのではなく)。

7. 迅速なエンジニアリングの組み合わせ

プロンプトエンジニアリングがエンジニアリング手法となる理由は、主に思考連鎖(CoT)や再帰プロンプトなど、比較的複雑なプロンプト手法が多様に存在するためです。

7.1 思考連鎖の促進

Chain-of-Thought (CoT) プロンプトは、思考の連鎖と呼ばれる一連の短い文を生成します。これらの文は、最終的な答えに至る段階的な推論ロジックを説明しており、複雑な推論タスクや大規模なモデルの場合に大きなメリットがあります。一般的な基本的な CoT ヒントには、Few-shot CoT と Zero-Shot CoT の 2 つがあり、これらについて以下に説明します。

7.1.1 少数ショットのCoT

少数ショットの CoT により、モデルは高品質の推論チェーンのデモンストレーションをいくつか確認できるようになります。次の例を見てみましょう

写真

7.1.2 ゼロショットCoT

ゼロショットCoTは、2022年に小島らによって初めて提案されたもので、プロンプトに「ステップごとに考えてみましょう」という要素を追加し、モデルのパフォーマンス向上に役立ちます。例を見てみましょう:

 Prompt: **-** I went to the market **and** bought 10 apples. I gave 2 apples to the neighbor **and** 2 to the repairman. I then went **and** bought 5 more apples **and** ate 1. How many apples did I remain **with**? **-** Let's think step by step. Output: - First, you started with 10 apples. -You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left. -Then you bought 5 more apples, so now you had 11 apples. -Finally, you ate 1 apple, so you would remain with 10 apples.

ゼロショット CoT は、モデルの内部を確認し、モデルがどのように推論して答えに到達したかを理解するのに役立ちます。

7.2 再帰プロンプト

再帰プロンプトは、複雑な問題をより小さく、より扱いやすいサブ問題に分割し、一連のプロンプトを通じてそれらのサブ問題を再帰的に解決する問題解決手法です。このアプローチは、言語モデルが問題を解決するためにさまざまな情報を組み合わせる方法を学習する必要がある、組み合わせの一般化を必要とするタスクに特に役立ちます。

自然言語処理のコンテキストでは、再帰プロンプトは、少数のプロンプト方法を使用して複雑な問題をサブ問題に分解し、抽出されたサブ問題を順番に解決し、前のサブ問題の解決策を使用して次のサブ問題に答えることができます。このアプローチは、数学の問題や質問への回答などのタスクに使用できます。これらのタスクでは、言語モデルが複雑な問題をより小さく、より扱いやすい部分に分解して解決策を導き出す必要があります。例えば:

 Calculate the product of the length **and** width: prompt: "What is the product of 8 and 6?" answer: 48 Substitute the given values **for** length **and** width into the equation: prompt: "What is the area of a rectangle with length 8 and width 6?" answer: "The area of a rectangle with length 8 and width 6 is 48."

再帰プロンプトのその他の例は次のとおりです。

写真

7.3 CoTと再帰ヒントの混在

自己質問は、別の種類の再帰プロンプト、つまりモデルにフォローアップの質問を繰り返し促して思考プロセスを反復的に構築する方法と考えることができます。フォローアップの質問には、検索エンジンの結果を通じて回答できます。同様に、IRCoT と ReAct は、反復的な CoT ヒントと Wikipedia API へのクエリを組み合わせて、関連するエンティティとコンテンツを検索し、それらをコンテキストに戻します。次に例を示します。

写真

思考ツリーは、各ステップで複数の推論の可能性を探索することで CoT を拡張します。まず、問題を複数の思考ステップに分解し、各ステップで複数の思考を生成して、基本的にツリー構造を作成します。検索プロセスは幅優先プロセスまたは深さ優先プロセスにすることができ、各ノードの評価分類器はプロンプトによって完了できます。

写真

8. 自動プロンプトの設計

一般に、プロンプトは、与えられた入力に対して目的の出力が得られる可能性を高めるプレフィックス トークンのシーケンスに相当します。したがって、これらはトレーニング可能なパラメータとみなすことができ、AutoPrompt、Prefix-Tuning、P-Tuning、Prompt-Tuning などの勾配降下法によって埋め込み空間上で直接最適化することができます。AutoPrompt から Prompt-Tuning への傾向は、設定が徐々に簡素化されることです。

8.1 自動プロンプトプロジェクト

APE は、モデルによって生成されたプロンプト候補セットを検索し、選択したスコアリング関数に従って候補セットをフィルタリングして、最終的に最高スコアを持つ最適な候補プロンプトを選択する方法です。

  • ヒント LLM は、入力と出力のキーと値のペアの小さなセットに基づいて候補命令を生成しようとします。
  • データセットDtrain = {(x, y)}が与えられた場合、次のような命令ρを見つけます。

写真

  • f(.) は、パフォーマンス精度や対数確率などの各サンプルのスコア関数です。
  • モンテカルロ検索法は、意味を維持しながら promt を通じて次の命令のバリエーションを反復的に生成し、意味的に類似したバリエーションを提案して最適な候補を改善するために使用されます。

8.2 CoTを自動的に構築する

思考の連鎖を自動的に構築するために、Shum et al. (2023) は、Enhance-Prune-Select という 3 段階のプロセスを提案しました。

  • 機能強化: 少数ショットまたはゼロショットの CoT プロンプトを使用して、特定の問題に対して複数の疑似思考チェーンを生成します。
  • 剪定: 生成された回答が真実と一致するかどうかに基づいて、これらの疑似思考チェーンを剪定します。
  • 選択: 分散低減勾配戦略を適用して、選択された例の確率分布を学習します。その際、例の確率分布をポリシーとして、検証セットの精度を報酬として考慮します。

8.3 クラスタリングベースのCoT構築

クラスタリング技術を使用して質問をサンプリングし、チェーンを生成しました(2023)。 LLM は特定の種類の間違いを犯す傾向があり、ある種類の間違いは埋め込み空間で類似している可能性があるため、グループ化することができます。頻繁に発生するエラー クラスターから 1 つまたは少数のエラーのみをサンプリングすることで、1 つのエラー タイプが過度に多く発生するのを防ぎ、多様な例のセットを収集できます。

  • 質問クラスタリング: 質問を埋め込み、K-means クラスタリングを実行します。
  • デモンストレーションの選択: 各クラスターから代表的な質問のセットを選択します。つまり、クラスターからデモンストレーションの例を選択します。各クラスター内のサンプルは、クラスターの中心からの距離に応じてソートされ、クラスターの中心に近いサンプルが最初に選択されます。
  • 基本関係の生成: ゼロショット CoT を使用して、選択した質問の推論チェーンを生成し、推論用の少数ショットのプロンプトを構築します。

9. プロンプトエンジニアリングの一般的な実践

プロンプト エンジニアリングの実装には、LLM ベースのアプリケーションのさまざまな側面が関係します。プロンプト エンジニアリングの一般的なプラクティスを次に示します。

  • 静的プロンプト: プロンプトは、ゼロ、シングル、または少数ショット方式に従うことができます。 LLM の生成機能は、ワンショット学習または少数ショット学習に従うためのプロンプトにサンプルデータを含めることで大幅に強化されます。
  • 文脈的手がかり: 文脈的手がかりは、応答を生成する際に LLM の参照フレームを提供し、LLM の錯覚を大幅に回避できます。
  • プロンプト テンプレート: 静的プロンプトはテンプレートに変換され、キー値がプレースホルダーに置き換えられ、実行時にアプリケーションの値/変数に置き換えられます。プロンプト テンプレート内の変数またはプレースホルダーには、ユーザーが尋ねた質問とナレッジ ストアから検索されたナレッジが入力されるため、プロンプト インジェクションまたはエンティティ インジェクションとも呼ばれます。
  • ヒント チェーン: ヒント チェーン (LLM チェーンとも呼ばれます) は、一連のモデル呼び出しで構成されるチェーンを作成する概念です。この一連の呼び出しは順番に実行され、1 つのチェーンの出力が別のチェーンの入力として機能します。各チェーンは小さくて範囲が限定されたサブタスクをターゲットとするため、単一の LLM は、アドレス指定されたタスクの複数の順序付けられたサブコンポーネントの 1 つになります。
  • ヒント パイプライン: 機械学習では、パイプラインはイベントとデータの流れを調整するためのエンドツーエンドの構造として説明できます。パイプラインはトリガーによって開始され、特定のイベントとパラメータに基づいて、出力を生成するプロセスに従います。プロンプト パイプラインの場合、フローはほとんどの場合、特定のプロンプト テンプレートに送信されるユーザー要求によって開始されます。したがって、プロンプト パイプラインは、プロンプト テンプレートのインテリジェントな拡張として説明できます。
  • エージェント: LLM 関連の操作の場合、自動化された形式は、いわゆるエージェントです。プロンプト チェーンは、事前に決められた一連の操作を実行します。エージェントは、事前に決められたイベントの順序に従わず、高度な自律性を維持できます。エージェントは一連のツールにアクセスでき、これらのツールの範囲内にあるすべてのリクエストはエージェントによって処理できます。実行パイプラインはエージェントに自律性を提供し、エージェントが最終的な答えに到達するまでに複数回の反復が必要になる場合があります。
  • CoT ヒント: CoT ヒントにより、大規模言語モデル (LLM) は常識的な推論や算術などの複雑なタスクを処理できるようになります。これは、Prompt が CoT 推論を確立し、それに応じて LLM をガイドする、かなり簡単な実装です。標準プロンプトと CoT プロンプトの比較は次のとおりです。

写真

  • 思考連鎖プロンプトの特に便利な点は、LLM 入力と LLM 出力を分解することで、洞察と解釈の窓口が作られることです。
  • ChatML: LLM の主なセキュリティ脆弱性と悪用ベクトルはプロンプト インジェクション攻撃です。ChatML はこれらのタイプの攻撃に対する保護を可能にします。プロンプトインジェクション攻撃を排除するために、セッションはシステム、アシスタント、ユーザーなどのレベルまたはロールに分割され、対応するプロンプト保護が実行されます。

写真

10. プロンプトエンジニアリングの課題と将来

プロンプトエンジニアリングは、特定の方法で構築された自然言語であると言えます。しかし、OpenAI の CEO が言及しているのは、真に構造化されていない、非常に直感的なインターフェースであると思われますが、これはある程度議論の余地があります。なぜなら、テクノロジーとイノベーションの多くは、プロンプト エンジニアリングの基本原則に基づいているからです。

写真

エンタープライズのユースケースを考慮すると、LLM を操作する主な 2 つの方法は、推論プロンプトを微調整することと、コンテキスト参照データを注入することであり、この 2 つのアプローチは相互に排他的ではありません。モデルの微調整により LLM の動作と応答が変更され、RAG はコンテキスト参照を使用してユーザーの入力を補足します。

インスタントエンジニアリングの主な課題の 1 つは、問題の表現と形式化、つまり頭の中にある要件をテキスト形式の要求に変換することです。一歩後退して、従来のチャットボットでコンテキストを確立することは非常に重要です。コンテキストは、1つ以上の意図に従ってユーザー入力を分類することによって最初に確立され、以前の会話、他のシステムへのAPI呼び出しなどを通じてさらにコンテキストが確立されます。コンテキストは、時間と場所にも大きく依存し、質問が尋ねられたときの背景参照は何でしたか。

文脈の認識に加えて、あいまいさは別の課題です。いくつかの形のあいまいさは、私たち人間が理解するのは簡単ですが、伝統的にNLU/チャットボットにとっては困難でした。 Openaiの実装では、CHATMLがLLM入力に表示され、役割を定義し、LLM入力の明確な構造を提供します。 LLM出力側に関数呼び出しが表示され、チャット完了モードが事実上の標準として設定されました。

意図、コンテキスト、あいまいさ、および曖昧性がすべて会話の一部です。人間の言語インターフェイスでは、コンテキストと文脈の認識が常に重要です。あいまいさが存在し、ある程度の曖昧性が人間の会話の一部です。会話では、「曖昧性」を常に使用して意味と意図を確立します。また、曖昧性はコンテキストである程度自動的に自動的に実行できます。たとえば、LLMに5つのオプションを生成するように依頼し、ユーザーに最適な生成された回答を選択するように依頼することは、曖昧性の形式です。

エンタープライズの実装はドメイン固有であり、制約が必要であり、ある程度のドメインの検出があります。質問や要求の内訳は、一連の推論を作成する上で重要です。微調整はモデルの動作を設定しますが、RAGはLLMが推論中に使用するコンテキストリファレンスを作成します。データ管理は常にLLMアプリケーションの一部になります。

写真

複雑さがなくなることはなく、ある場所から別の場所に移動します。

【参照】

  • https://github.com/openai/grade-school-math
  • https://github.com/dair-ai/prompt-engineering-guide
  • https://lilianweng.github.io/posts/2023-03-15-prompt-engineering
  • https://crfm.stanford.edu/2023/03/13/alpaca.html
  • https://learnprompting.org/docs/basics/instructions
  • https://txt.cohere.ai/how-to-train-your-pet-llm-plompt-engineering/
  • https://arxiv.org/pdf/2302.07842.pdf
  • Ivan Reznikov、「LLMはどのようにテキストを生成しますか?」
  • コブスグレイリング、「迅速なエンジニアリングの未来」
  • Dathero、「完璧なChatGptプロンプトフォーミュラをマスター」

<<:  人工知能について知っておくべきことすべて

>>:  Adobeの新しいAIペイントバージョンは爆発的、2K解像度でオンラインでプレイ可能、ネットユーザー:効果はDALL·E 3よりも優れている

推薦する

...

防衛とセキュリティの再定義に貢献するAIスタートアップ

人工知能の誕生は第二次世界大戦中に連合国が暗号解読機を開発し、それがナチスドイツのエニグマ暗号を解読...

Microsoft が大規模コード モデル WaveCoder をリリースしました。 4つのコードタスクと20,000のインスタンスデータセットにより、LLMの一般化能力が大幅に向上しました。

高品質のデータ セットを使用して命令のチューニングを実行すると、大規模なモデルのパフォーマンスを迅速...

私のディープラーニング開発環境: TensorFlow + Docker + PyCharm など。あなたの環境はどうですか?

著者: キリアンマシンハートが編集参加者: ヌルハチュ・ヌル、リー・ヤージョウこの記事では、研究者の...

2020年のライフスタイルに関する2008年の予測:そのほとんどが実現

米国のピュー・リサーチ・センターは2008年に、主に以下のような2020年のライフスタイルを予測しま...

人工知能の主要技術分野のレビュー

[[441598]] AI への準備プロセスの多くは組織の変更です。人工知能の利用には、ニューカラー...

GenAIがより良い回答を提供するためのヒント

GenAI は、ユーザーが独自の方法でデータをクエリし、ニーズに合わせた回答を受け取ることができるイ...

OpenAI が静かに「価値観」を変更: AGI に全力で取り組んでいないなら関与しないでください

OpenAI はひっそりとその中核となる価値観を変えました。公式ウェブサイトに掲載されている6つのコ...

...

...

機械が壁の建設を手伝うことがなぜそんなに難しいのでしょうか?これは人類の100年にわたる闘争の歴史である

[[418716]]建築の問題を研究すると、ほぼすべての「新しい」アイデアが、おそらく何十年も前に何...

中国AIGCデータラベリングパノラマレポート:市場規模100億、求人数100万

データラベリングは重大な再編の時期を迎えています。ビッグモデル時代の到来により、データ中心の AI ...

産業用IoTにおける機械学習の応用

産業用IoTにおける機械学習の応用産業用 IoT (IIoT) に機械学習を適用すると、企業の予測分...

AIGC時代のビデオ普及モデル、復旦チームらが分野初のレビューを発表

AI 生成コンテンツは、現在の人工知能分野で最もホットなトピックの 1 つとなっており、この分野の最...