PSA インデックスまたは PSC インデックスを作成したら、クエリを実行して最近傍を取得できます。
PSC インデックスのクエリについて
PSC インデックスから作成されたコンピューティング アドレスを使用して、クエリを送信できます。次の例では、TARGET_IP
を作成されたコンピューティング アドレスに置き換えます。
PSA インデックスのクエリについて
各 DeployedIndex
には TARGET_IP
があり、IndexEndpoints
をリストすることで取得できます。
インデックスをクエリする
DeployedIndex
をクエリするには、ポート 10000
で TARGET_IP
に接続し、Match
メソッドまたは BatchMatch
メソッドを呼び出します。また、DOC_ID
を使用してクエリすることもできます。
以下の例では、オープンソース ツールの grpc_cli
を使用して、デプロイされたインデックス サーバーに grpc リクエストを送信します。
gRPC
最初の例では、Match
メソッドを使用して単一のクエリを送信します。
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'
2 番目の例では、2 つのクエリを同じ BatchMatch
リクエストに統合しています。
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'
これらの API は、[サービスとピアリングされた同じ VPC](#vpc-network-peering-setup) で実行されているクライアントから呼び出す必要があります。
DOC_ID
を使用してクエリを実行するには、次の例を使用します。
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
この例では、トークンと数値の制限を使用してクエリを送信します。
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{name: "double-ns", value_double: 0.3, op: LESS_EQUAL}, {name: "double-ns", value_double: -1.2, op: GREATER}, {name: "double-ns", value_double: 0., op: NOT_EQUAL}], restricts: [{name: "color", allow_tokens: ["red"]}]'
詳細については、クライアント ライブラリの説明をご覧ください。
コンソール
コンソールから VPC インデックスをクエリするには、次の手順を実施します。
- Google Cloud コンソールの [Vertex AI] セクションで、[デプロイと使用] セクションに移動します。[ベクトル検索] を選択します。
- クエリを実行する VPC インデックスを選択します。[インデックスの情報] ページが開きます。
- [デプロイされたインデックス] セクションまで下にスクロールし、クエリを実行するデプロイされたインデックスを選択します。[デプロイされるインデックスの情報] ページが開きます。
- [インデックスのクエリ] セクションから、クエリ パラメータを選択します。ベクトルや特定のデータポイントでクエリを実行できます。
- オープンソース ツールの grpc_cli または Vertex AI SDK for Python を使用してクエリを実行します。
パフォーマンスに影響するクエリ時間の設定
ベクトル検索を使用する場合、クエリ時のパラメータはレイテンシ、可用性、コストに影響する可能性があります。このガイダンスはほとんどのケースに適用されます。 ただし、必ず構成をテストして、ユースケースに適していることを確認してください。
パラメータの定義については、インデックス構成パラメータをご覧ください。
パラメータ | 概要 | パフォーマンスへの影響 |
---|---|---|
approximateNeighborsCount |
各シャードから取得するおおよその結果数をアルゴリズムに指定します。
|
|
setNeighborCount |
クエリで返す結果の数を指定します。 |
300 以下の値は、ほとんどのユースケースでパフォーマンスを維持できます。値が大きい場合は、特定のユースケースでテストします。 |
fractionLeafNodesToSearch |
最近傍を検索する際に参照するリーフノードの割合を制御します。これは、リーフノードあたりのエンベディングが多いほど、リーフあたりのデータが多く検査される leafNodeEmbeddingCount に関連しています。 |
|
次のステップ
- インデックスの更新と再構築の方法を学ぶ。
- ベクトル一致をフィルタする方法を学ぶ。
- インデックスのモニタリングの方法を学ぶ。