Vertex AI ベクトル検索の概要

ベクトル検索は、Google が開発したベクトル検索技術をベースにしています。ベクトル検索では、Google 検索、YouTube、Play などの Google プロダクトの基盤と同じインフラストラクチャを利用できます。

はじめに

ベクトル検索では、意味的に類似または関連する何十億ものアイテムから検索を行うことができます。ベクトル類似度マッチング サービスには、レコメンデーション エンジン、検索エンジン、chatbot、テキスト分類の実装など、多くのユースケースがあります。

衣装のクエリ

ベクトル検索のユースケースとして、数十万もの衣料品在庫を持つオンライン小売店があります。このシナリオでは、マルチモーダル エンベディング API を使用してこれらの商品のエンベディングを作成し、ベクトル検索を利用してテキストクエリと意味的に最も類似した画像にマッチングさせています。たとえば、「黄色のサマードレス」と検索すると、ベクトル検索が最も類似した商品を返します。ベクトル検索では、秒間クエリ数(QPS)、再現率、レイテンシ、費用対効果に優れた大規模な検索が可能です。

エンベディングは、単語やテキスト以外でも使用されています。画像、音声、動画、ユーザーの好みなど、さまざまな種類のデータに対して、セマンティック エンベディングを生成できます。Vertex AI を使用してマルチモーダル エンベディングを生成するには、マルチモーダル エンベディングを取得するをご覧ください。

セマンティック マッチングにベクトル検索を使用する方法

セマンティック マッチングは数ステップで行うことができます。まず、多くのアイテムに対してエンベディング表現を生成する必要があります(ベクトル検索の外部で行います)。次に、エンベディングを Google Cloud にアップロードし、データをベクトル検索にリンクします。エンベディングをベクトル検索に追加したら、インデックスを作成してクエリを実行し、レコメンデーションや結果を取得できます。

エンベディングを生成する

データセットのエンベディングを生成します。近似最近傍探索(ANN)を効率的に行えるようにデータの前処理も行います。この操作は Vertex AI の外部で行うことができます。また、Vertex AI の生成 AI を使用してエンベディングを作成することもできます。Vertex AI の生成 AI を使用すると、テキスト エンベディングとマルチモーダル エンベディングの両方を作成できます。

エンベディングを Cloud Storage に追加する

エンベディングを Cloud Storage にアップロードして、ベクトル検索サービスから呼び出せるようにします。

ベクトル検索にアップロードする

エンベディングをベクトル検索に接続して、最近傍探索を実行します。エンベディングからインデックスを作成すると、インデックス エンドポイントにデプロイしてクエリを実行できます。このクエリは近似最近傍を返します。インデックスの作成方法については、インデックスの管理をご覧ください。インデックスをエンドポイントにデプロイする方法については、インデックス エンドポイントをデプロイして管理するをご覧ください。

結果を評価する

近似最近傍の結果が得られたら、結果を評価して、ニーズをどの程度満たしているかを確認します。結果の精度が十分でない場合は、アルゴリズムのパラメータを調整するか、より高い秒間クエリ数をサポートできるようにスケーリングを有効にします。これを行うには、インデックスを構成する構成ファイルを更新します。詳細については、インデックス パラメータを構成するをご覧ください。

ベクトル検索の用語

このリストには、ベクトル検索を使用するために理解しておく必要のある重要な用語が含まれています。

  • ベクトル: ベクトルは、大きさと方向を持つ浮動小数点値のリストです。数値、空間上の点、方向など、あらゆる種類のデータを表すことができます。
  • エンベディング: エンベディングは、データをセマンティックな意味で表すために使用されるベクトルの一種です。エンベディングは通常、ML 技術を使用して作成され、自然言語処理(NLP)やその他の ML アプリケーションで使用されます。
  • インデックス: 類似度検索でまとめてデプロイされるベクトルの集合。ベクトルはインデックスに追加することも、インデックスから削除することもできます。類似度検索クエリは特定のインデックスに対して実行され、そのインデックス内のベクトルが検索されます。
  • グラウンド トゥルース: ML の正確性を現実世界と比較して検証することを指す用語。「グラウンド トゥルース データセット」のように使用します。
  • 再現率: インデックスによって返された最近傍の中で、実際に正しい最近傍であるものの割合。たとえば、20 個の最近傍に対する最近傍クエリで、グラウンド トゥルースの最近傍が 19 個返された場合、再現率は 19÷20×100 = 95% となります。

  • 制限: ブールルールを使用して、検索をインデックスのサブセットに制限する機能。制限は「フィルタリング」とも呼ばれます。ベクトル検索では、数値フィルタリングとテキスト属性フィルタリングを使用できます。

次のステップ