このページでは、Vertex AI でモデルのレスポンスをグラウンディングする 2 つの方法と、grounding API を使用してアプリケーションでグラウンディングを機能させる方法について説明します。
Vertex AI では、次のデータソースを使用してモデル出力をグラウンディングできます。
- Google 検索: 一般公開されているウェブデータを使用してレスポンスをグラウンディングします。
- お客様のデータ: Vertex AI Search(プレビュー)のデータを使用してレスポンスをグラウンディングします。
Google 検索によるグラウンディング
モデルを世界中の知識、幅広いトピック、インターネット上の最新情報に接続する場合は、Google 検索でグラウンディングを使用します。
Google 検索によるグラウンディングでは、動的取得がサポートされているため、必要な場合にのみ Google 検索でグラウンディングされた回答を生成できます。そのため、動的取得構成では、プロンプトで最近のイベントに関する知識が必要かどうかを評価し、Google 検索によるグラウンディングを有効にします。詳細については、動的取得をご覧ください。
Vertex AI でのモデルのグラウンディングの詳細については、グラウンディングの概要をご覧ください。
サポートされているモデル
次のモデルはグラウンディングに対応しています。
- Gemini 1.5 Pro(テキスト入力のみ)
- テキスト入力のみの Gemini 1.5 Flash
- テキスト入力のみの Gemini 1.0 Pro
サポートされている言語
- English (en)
- スペイン語(es)
- 日本語(ja)
Google 検索でモデルをグラウンディングする
一般公開されているウェブデータを使用してモデルをグラウンドするには、次の手順を行います。
動的取得
リクエストで動的取得を使用すると、Google 検索でグラウンディングをオフにするタイミングを選択できます。これは、プロンプトで Google 検索に基づく回答が不要で、サポートされているモデルが根拠なしで知識に基づく回答を提供できる場合に便利です。これにより、レイテンシ、品質、費用をより効果的に管理できます。
リクエストで動的取得構成を呼び出す前に、次の用語を理解してください。
予測スコア: 根拠のある回答をリクエストすると、Vertex AI はプロンプトに予測スコアを割り当てます。予測スコアは、[0,1] の範囲内の浮動小数点値です。その価値は、プロンプトが Google 検索の最新情報に基づいて回答をグラウンディングできるかどうかによって異なります。そのため、ウェブ上の最新の事実に基づく回答が必要なプロンプトでは、予測スコアが高くなります。モデル生成の回答で十分なプロンプトの場合、予測スコアは低くなります。
以下に、いくつかのプロンプトとその予測スコアの例を示します。
プロンプト 予測スコア コメント 「牡丹の詩を書いて」 0.13 モデルは知識に依存でき、回答にグラウンディングは必要ありません 「2 歳の子供向けのおもちゃを教えて」 0.36 モデルは知識に依存でき、回答にグラウンディングは必要ありません 「アジア風のグアカモーレのレシピを教えてください。」 0.55 Google 検索はグラウンディングされた回答を提供できますが、グラウンディングは厳密には必要ではなく、モデルの知識で十分な場合もあります。 「Agent Builder とは何ですか?Agent Builder でグラウンディングはどのように課金されますか?」 0.72 Google 検索で根拠のある回答を生成できる 「前回の F1 グランプリで優勝したのは誰?」 0.97 Google 検索で根拠のある回答を生成できる しきい値: リクエストで、しきい値を指定して動的取得構成を指定できます。しきい値は [0,1] の範囲の浮動小数点値で、デフォルトは 0.7 です。しきい値が 0 の場合、レスポンスは常に Google 検索でグラウンディングされます。しきい値の他の値には、次のことが適用されます。
- 予測スコアがしきい値以上の場合、回答は Google 検索に基づいています。しきい値が低いほど���Google 検索によるグラウンディングを使用して生成されたレスポンスが含まれるプロンプトが増えます。
- 予測スコアがしきい値未満の場合、モデルは回答を生成しますが、Google 検索でグラウンディングされません。
ビジネスニーズに合った適切なしきい値を見つけるには、想定されるクエリの代表的なセットを作成します。次に、レスポンスの予測スコアに基づいてクエリを並べ替え、ユースケースに適したしきい値を選択できます。
考慮事項
Google 検索でグラウンディングを使用するには、Google 検索の検索候補を有効にする必要があります。詳しくは、Google 検索の候補をご覧ください。
最適な結果を得るには、温度を
0.0
に設定します。この設定の詳細については、モデル リファレンスの Gemini API リクエスト本文をご覧ください。Google 検索によるグラウンディングでは、1 日あたり 100 万件のクエリが上限となります。追加の問い合わせが必要な場合は、Google Cloud サポートにお問い合わせください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: リクエストを処理するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL_ID: マルチモーダル モデルのモデル ID。
- TEXT: プロンプトに含める指示のテキスト。
- DYNAMIC_THRESHOLD: 動的取得構成を呼び出すしきい値を設定するオプション フィールド。値の範囲は [0,1] です。
dynamicThreshold
フィールドを設定しない場合は、しきい値はデフォルトで 0.7 になります。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
リクエストの本文(JSON):
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }], "tools": [{ "googleSearchRetrieval": { "dynamicRetrievalConfig": { "mode": "MODE_DYNAMIC", "dynamicThreshold": DYNAMIC_THRESHOLD } } }], "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer." } ] }, "finishReason": "STOP", "safetyRatings":[ "..." ], "groundingMetadata": { "webSearchQueries": [ "What's the weather in Chicago this weekend?" ], "searchEntryPoint": { "renderedContent": "....................." } "groundingSupports": [ { "segment": { "startIndex": 0, "endIndex": 65, "text": "Chicago weather changes rapidly, so layers let you adjust easily." }, "groundingChunkIndices": [ 0 ], "confidenceScores": [ 0.99 ] }, ] "retrievalMetadata": { "webDynamicRetrievalScore": 0.96879 } } } ], "usageMetadata": { "..." } }
コンソール
Vertex AI Studio で Google 検索を使用してグラウンディングを使用する手順は次のとおりです。
- Google Cloud コンソールで、[Vertex AI Studio] ページに移動します。
- [自由形式] タブをクリックします。
- サイドパネルで [Ground model responses] 切り替えボタンをクリックします。
- [カスタマイズ] をクリックし、Google 検索をソースとして設定します。
- テキスト ボックスにプロンプトを入力し、[送信] をクリックします。
プロンプトのレスポンスが Google 検索でグラウンディングされるようになりました。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
レスポンスを理解する
Vertex AI Studio または API から Google 検索にモデル プロンプトが正常にグラウンディングされた場合、レスポンスにはソースリンク(ウェブ URL)を含むメタデータが含まれます。ただし、このメタデータが提供されず、プロンプト レスポンスがグラウンディングされない場合もあります。その理由はいくつかあります。たとえば、ソースの関連性が低い、モデルのレスポンス内の情報が不完全である、などです。
引用
引用を表示することを強くおすすめします。ユーザーは、パブリッシャーからのレスポンスを検証し、さらに学習するための手段を追加できます。
Google 検索ソースからのレスポンスの引用は、インラインと集計の両方で表示する必要があります。次の画像は、この方法の例を示しています。
代替の検索エンジン オプションの使用
お客様が Google 検索でグラウンディングを使用している場合でも、お客様は代替の検索エンジン オプションを提供したり、代替の検索オプションをお客様のアプリのデフォルト オプションにしたり、お客様のアプリに独自の検索候補やサードパーティの検索候補や検索結果を表示したりできます。ただし、Google 検索以外のサービスや関連する結果は、グラウンディングされた検索結果や検索候補とは別に表示され、Google が提供する検索結果と合理的に関連付けられないか、混同されないものでなければなりません。
Gemini のレスポンスをグラウンディングする
このセクションでは、Vertex AI API を使用して、テキスト レスポンスを Vertex AI Agent Builder データストアにグラウンディングする方法について説明します。ウェブサイト検索データストアを接地ソースとして指定することはできません。
サポートされているモデル
次のモデルはグラウンディングに対応しています。
- Gemini 1.5 Pro(テキスト入力のみ)
- テキスト入力のみの Gemini 1.5 Flash
- テキスト入力のみの Gemini 1.0 Pro
前提条件
モデルの出力をデータにグラウンディングする前に、次の前提条件を満たす必要があります。
- Vertex AI Agent Builder を有効にして API を有効にする。
- Vertex AI Agent Builder のデータソースとアプリを作成する。
- Vertex AI Agent Builder でデータストアをアプリにリンクする。データソースは、Vertex AI で Gemini 1.0 Pro のグラウンディングを行うための基盤として機能します。ウェブサイト検索データストアをグラウンドング ソースとして指定することはできません。
- データストアで Enterprise エディションを有効にする。
詳細については、Vertex AI Search の概要をご覧ください。
Vertex AI Agent Builder を有効にする
Google Cloud コンソールで、[Agent Builder] ページに移動します。
利用規約を読んで同意し、[続行して API を有効にする] をクリックします。
Vertex AI Agent Builder は、global
ロケーション、または eu
と us
のマルチリージョンで使用できます。詳細については、Vertex AI Agent Builder のロケーションをご覧ください。
Vertex AI Agent Builder でデータストアを作成する
モデルをソースデータに根拠づけるには、データを準備して Vertex AI Search に保存する必要があります。これを行うには、Vertex AI Agent Builder でデータストアを作成する必要があります。
ゼロから始める場合は、Vertex AI Agent Builder への取り込み用にデータを準備する必要があります。開始するには、取り込むデータを準備するをご覧ください。取り込みには、データのサイズに応じて、数分から数時間かかることがあります。根拠づけには、非構造化データストアのみサポートされています。
取り込むデータを準備したら、検索データストアを作成できます。データストアが正常に作成されたら、それに紐づける検索アプリを作成し、Enterprise エディションを有効にします。
例: Gemini 1.5 Flash モデルをグラウンディングする
独自のデータでモデルをグラウンドするには、次の手順を行います。
データストア ID がわからない場合は、次の手順を行います。
Google Cloud コンソールで [Vertex AI Agent Builder] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。ウェブサイト検索データストアを接地ソースとして指定することはできません。
REST
Vertex AI API を使用してテキスト プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: リクエストを処理するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL_ID: マルチモーダル モデルのモデル ID。
- TEXT: プロンプトに含める指示のテキスト。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
リクエストの本文(JSON):
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }], "tools": [{ "retrieval": { "vertexAiSearch": { "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID } } }], "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "You can make an appointment on the website https://dmv.gov/" } ] }, "finishReason": "STOP", "safetyRatings": [ "..." ], "groundingMetadata": { "retrievalQueries": [ "How to make appointment to renew driving license?" ], "groundingChunks": [ { "retrievedContext": { "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==", "title": "dmv" } } ], "groundingSupport": [ { "segment": { "startIndex": 25, "endIndex": 147 }, "segment_text": "ipsum lorem ...", "supportChunkIndices": [1, 2], "confidenceScore": [0.9541752, 0.97726375] }, { "segment": { "startIndex": 294, "endIndex": 439 }, "segment_text": "ipsum lorem ...", "supportChunkIndices": [1], "confidenceScore": [0.9541752, 0.9325467] } ] } } ], "usageMetadata": { "..." } }
Google 検索でグラウンディングされた回答について
グラウンドド リザルトが生成されると、メタデータには、グラウンドド リザルトの生成に使用されたコンテンツのパブリッシャーにリダイレクトする URI が含まれます。メタデータにはパブリッシャーのドメインも含まれます。指定された URI には、グラウンドされた結果の生成後 30 日間アクセスできます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Console
Google Cloud コンソールの Vertex AI Studio を使用してモデル出力を Vertex AI Agent Builder でグラウンディングするには、次の操作を行います。
- Google Cloud コンソールで、[Vertex AI Studio] ページに移動します。
- [自由形式] タブをクリックします。
- サイ��パネルで [モデルのレスポンスを根拠づける] をオンに切り替えて、グラウンディングを有効にします。
- [カスタマイズ] をクリックし、Vertex AI Agent Builder をソースとして設定します。パスは projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id の形式にする必要があります。
- テキスト ボックスにプロンプトを入力し、[送信] をクリックします。
プロンプト レスポンスが Vertex AI Agent Builder にグラウンディングされるようになりました。
その他の生成 AI リソース
- チャット プロンプト リクエストの送信方法については、マルチターン チャットをご覧ください。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについては、安全に関するベスト プラクティスを��覧ください。
- Vertex AI におけるグラウンディングで、PaLM モデルをグラウンディングする方法を確認する