Spanner から Vertex AI ベクトル検索にエンべディングをエクスポートする

Vertex AI Vecter Search を使用すると、ベクトル エンベディングを使用して意味的に類似しているアイテムを検索できます。 Spanner To Vertex AI Vector Search Workflow を使用すると、Spanner データベースを Vector Search と統合して、Spanner データのベクトル類似性検索を実行できます。

次の図は、Vector Search を有効にして Spanner データで使用する方法のエンドツーエンドのアプリケーション ワークフローを示しています。

Spanner からベクター検索のワークフロー。

一般的なワークフローは次のとおりです。

  1. ベクトル エンベディングを生成して保存する。

    データのベクトル エンベディングを生成して、運用データとともに Spanner に保存して管理できます。Spanner の ML.PREDICT SQL 関数を使用してエンベディングを生成し、Vertex AI の textembedding-gecko モデルにアクセスするか、またはVertex AI にデプロイされた他のエンベディング モデルを使用することができます。

  2. エンベディングを Vector Search と同期する。

    Spanner To Vertex AI Vector Search Workflow を使用する。これは、Workflows を使用してデプロイされ、エンベディングをエクスポートして Vector Search インデックスにアップロードします。Cloud Scheduler を使用してこのワークフローを定期的にスケジュールすると、Spanner のエンベディングの最新の変更で Vector Search インデックスを最新の状態に維持できます。

  3. Vector Search インデックスを使用してベクトル類似度検索を実行します。

    Vector Search インデックスをクエリして、意味的に類似しているアイテムを検索し、結果を検索します。パブリック エンドポイントまたは VPC ピアリングを使用してクエリを実行できます。

使用例

Vector Search のユースケースの一例は、何十万もの在庫を持つオンライン小売店です。このシナリオでは、オンライン小売店のデベロッパーが、Spanner の商品カタログでベクトル類似度検索を使用して、顧客が検索クエリに基づいて関連商品を見つけることを支援します。

一般的なワークフローに示されているステップ 1 とステップ 2 に従って、商品カタログのベクトル エンベディングを生成し、これらのエンベディングを Vector Search と同期します。

お客様がアプリケーションを閲覧し、「水中で着用できる最良の速乾スポーツパンツ」のような検索をしているとします。アプリケーションがこのクエリを受信したら、Spanner の ML.PREDICT SQL 関数を使用して、この検索リクエストのリクエスト エンベディングを生成する必要があります。商品カタログのエンベディングの生成に使用したものと同じエンベディング モデルを使用してください。

次に、Vector Search インデックスをクエリし、対応するエンベディングが顧客の検索リクエストから生成されたリクエスト エンベディングと類似しているプロダクト ID を取得します。検索インデックスでは、ウェイクボード ショートパンツ、サーフィン用アパレル、スイミング パンツなど、意味が似ているアイテムに対して商品 ID が提案されることがあります。

Vector Search がこれらの類似商品 ID を返すと、Spanner に商品の説明、在庫数、価格、および関連するその他のメタデータをクエリして、お客様に表示できます。

生成 AI を使用して、Spanner から返される結果を処理してからお客様に表示することもできます。たとえば、Google の大規模な生成 AI モデルを使用して、推奨プロダクトの簡潔な要約を生成できます。詳細については、生成 AI を使用して e コマース アプリケーションでパーソナライズされたレコメンデーションを取得する方法に関するチュートリアルをご覧ください。

次のステップ