Example Store の概要

Example Store を使用すると、少数ショットの例を保存して動的に取得できます。少数ショットの例を使用すると、LLM に期待する回答パターンを提示し、類似のクエリに対する回答の品質、精度、整合性を向上させることができます。

少数ショットの例とは

少数ショットの例は、LLM のユースケースに固有のラベルが付いているデータです。これには、モデル リクエストに対するモデルの想定されるレスポンスを示す入出力ペアが含まれます。例を使用して、LLM から期待される動作やレスポンス パターンを示すことができます。

関連性の高い例を少数使用するだけで、プロンプトのサイズや複雑さを増やすことなく、考えられる結果、意図した動作、ユーザー入力のより大きなセットをカバーできます。関連する例のみを含める(例の数を減らす)ことと、期待される動作を「説明するのではなく示す」ことの両方によって実現されます。

少数ショット プロンプトの使用は、コンテキスト内学習の一種です。この例では、モデルがコンテンツを生成する方法を説明せずに、入力と出力の明確なパターンを示しています。プロンプトのサイズやコードの複雑さを増やすことなく、比較的少ない例で、より多くの可能性のある結果やユーザークエリをカバーできます。例を使用しても、事前トレーニング済みモデルのパラメータは更新されず、LLM の知識の幅に影響することもありません。これにより、例を用いたコンテキスト内学習は、LLM の推論と回答をカスタマイズ、修正、改善して、まだ見たことのないプロンプトに対応するための、比較的軽量で簡潔なアプローチになります。

ユーザーのクエリを代表する関連性の高い例を収集することで、モデルが注意を維持し、期待されるパターンを示すとともに、誤った動作や予期しない動作を修正できます。これにより、期待どおりのレスポンスが返される他のリクエストには影響しません。

すべてのプロンプト エンジニアリング戦略と同様に、少数ショットの例の使用は、ファインチューニングRAG などの他の LLM 最適化手法に追加されます。

Example Store の使用方法

次の手順では、Example Store の使用方法の概要を説明します。

  1. 「Example Store インスタンス」とも呼ばれる ExampleStore リソースを作成または再利用します。

    • リージョンとプロジェクトごとに、最大 50 個の Example Store インスタンスを作成できます。
  2. LLM の回答に基づいてサンプルを作成してアップロードします。次の 2 つのシナリオが考えられます。

    • LLM の動作とレスポンス パターンが想定どおりの場合は、これらのレスポンスに基づいてサンプルを作成し、Example Store インスタンスにアップロードします。

    • LLM で予期しない動作やレスポンス パターンが見られた場合は、レスポンスを修正する方法を示すサンプルを作成し、Example Store インスタンスにアップロードします。

  3. アップロードされたサンプルは、Example Store インスタンスに関連付けられたエージェントまたは LLM アプリケーションですぐに使用できるようになります。

    • Vertex AI Agent Development Kit に基づくエージェントが Example Store インスタンスにリンクされている場合、エージェントは自動的に例を取得し、LLM リクエストに含めます。

    • 他のすべての LLM アプリケーションでは、例を検索して取得し、プロンプトに含める必要があります。

LLM で予期しないパフォーマンスが確認された場合や、敵対的なユーザークエリや、予期しないユーザークエリが発生した場合は、Example Store インスタンスに例を繰り返し追加できます。コードを更新したり、LLM アプリケーションの新しいバージョンを再デプロイする必要はありません。サンプルは、Example Store インスタンスにアップロードするとすぐにエージェントまたはアプリケーションで使用できるようになります。

また、次の操作も行うことができます。

  • 保存された例の検索キーとクエリの検索キーの間でコサイン類似度検索を実行して、例を取得します。

  • 関数名でサンプルをフィルタし、候補サンプルのリストを LLM からのレスポンスを表すものに絞り込みます。

  • エージェントまたは LLM アプリケーションを反復的に改善します。

  • 複数のエージェントまたは LLM アプリケーションで例を共有します。

少数ショットの例を作成するためのガイドライン

モデルのパフォーマンスに対する例の影響は、プロンプトに含まれる例の種類と、その例がどのように含まれているかによって異なります。

一般的に推奨される例の作成方法は次のとおりです。

  • 関連性と類似性: 例は、特定のタスクやドメインと密接に関連している必要があります。これにより、モデルは知識の最も関連性の高い側面に焦点を当て、トークンの使用量を減らし、パフォーマンスを維持または向上させることができます。会話に関連する例であれば、必要な例の数は少なくなります。使用可能な例のコーパスは、ユーザーが入力する可能性のあるクエリを代表するものでなければなりません。また、例は特定のユーザークエリに関連している必要があります。

  • 複雑さ: LLM のパフォーマンスを向上させるには、複雑さの低い例を使用して、期待される推論を示します。

  • 考えられるモデルの結果を表している: 例に期待されるレスポンスは、考えられる結果と一致している必要があります。これにより、プロンプトに対する LLM の予想される推論と一貫性のある推論を明確に示せます。

  • 形式: 最適なパフォーマンスを得るには、LLM トレーニング データと一貫性があり、会話履歴とは異なる方法で、プロンプトの数ショットの例をフォーマットします。プロンプト内の例の形式は、LLM のパフォーマンスに大きな影響を与える可能性があります。

ユースケースの例: 関数呼び出し

少数ショットのサンプルを使用すると、関数呼び出しのパフォーマンスを改善できます。ユーザークエリの想定される関数呼び出しを、一貫したパターンで示すことができます。この例では、呼び出す必要のある関数と、関数呼び出しに含める引数を指定することで、リクエスト対して想定されるレスポンスをモデル化できます。関数 get_store_location が店舗の場所とその説明を返すユースケースを考えてみましょう。クエリがこの関数を想定どおりに呼び出さない場合や、予期しない出力が表示される場合は、少数ショットの例を使用して、以降のクエリでこの動作を修正できます。

関数呼び出しの詳細については、関数呼び出しをご覧ください。

詳細については、Example Store のクイック スタートをご覧ください。

次のステップ