PSA- oder PSC-Indexe abfragen, um nächste Nachbarn abzurufen

Nachdem Sie einen PSA- oder PSC-Index erstellt haben, können Sie Abfragen ausführen, um die nächsten Nachbarn abzurufen.

Informationen zum Abfragen von PSC-Indexen

Die aus einem PSC-Index erstellte Compute-adresse kann zum Senden von Abfragen an ihn verwendet werden. Ersetzen Sie im folgenden Beispiel TARGET_IP durch die erstellte Compute-Adresse.

Informationen zum Abfragen von PSA-Indexen

Jeder DeployedIndex hat eine TARGET_IP, die Sie durch Auflisten von IndexEndpoints abrufen können.

Index abfragen

Zum Abfragen eines DeployedIndex stellen Sie eine Verbindung zu seiner TARGET_IP an Port 10000 her und rufen die Methode Match oder BatchMatch auf. Außerdem können Sie mit DOC_ID abfragen.

In den folgenden Beispielen wird das Open-Source-Tool grpc_cli verwendet, um grpc-Anfragen an den bereitgestellten Indexserver zu senden.

gRPC

Im ersten Beispiel senden Sie eine einzelne Abfrage mit der Methode Match.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match '{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}'

Im zweiten Beispiel kombinieren Sie zwei separate Abfragen in derselben BatchMatch-Anfrage.

./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,..]}]}]'

Sie müssen diese APIs von einem Client aus aufrufen, der in derselben VPC ausgeführt wird, [zu der eine Peering-Verbindung des Dienstes hergestellt wurde](#vpc-network-peering-setup).

Verwenden Sie das folgende Beispiel, um eine Abfrage mit einem DOC_ID auszuführen.

./grpc_cli call ${TARGET_IP}:10000  google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"

In diesem Beispiel senden Sie eine Abfrage mit Token- und numerischen Einschränkungen.

./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"]}]'

Weitere Informationen finden Sie unter Erläuterung zu Clientbibliotheken.

Console

Folgen Sie dieser Anleitung, um einen VPC-Index über die Console abzufragen.

  1. Wechseln Sie im Abschnitt „Vertex AI“ der Google Cloud Console zum Abschnitt Bereitstellen und verwenden. Wählen Sie Vektorsuche

    Zur Vektorsuche

  2. Wählen Sie den VPC-Index aus, den Sie abfragen möchten. Die Seite Indexinformationen wird geöffnet.
  3. Scrollen Sie nach unten zum Abschnitt Bereitgestellte Indexe und wählen Sie den bereitgestellten Index aus, den Sie abfragen möchten. Die Seite Informationen zum bereitgestellten Index wird geöffnet.
  4. Wählen Sie im Abschnitt Abfrageindex Ihre Abfrageparameter aus. Sie können nach einem Vektor oder einem bestimmten Datenpunkt abfragen.
  5. Führen Sie die Abfrage mit dem Open-Source-Tool grpc_cli oder mit dem Vertex AI SDK für Python aus.

Einstellungen beim Abfragezeitpunkt, die sich auf die Leistung auswirken

Die folgenden Parameter für die Abfragezeit können sich bei der Verwendung der Vektorsuche auf Latenz, Verfügbarkeit und Kosten auswirken. Diese Empfehlung gilt in den meisten Fällen. Testen Sie jedoch immer mit Ihren Konfigurationen, ob sie sich für Ihren Anwendungsfall eignen.

Informationen zu Parameterdefinitionen finden Sie unter Parameter für die Indexkonfiguration.

Parameter Info Auswirkungen auf die Leistung
approximateNeighborsCount

Gibt dem Algorithmus die Anzahl der ungefähren Ergebnisse an, die von jedem Shard abgerufen werden sollen.

Der Wert von approximateNeighborsCount sollte immer größer als der Wert von setNeighborsCount sein. Wenn der Wert von setNeighborsCount klein ist, wird für approximateNeighborsCount das 10-Fache dieses Werts empfohlen. Für größere setNeighborsCount-Werte kann ein kleinerer Multiplikator verwendet werden.

Das Erhöhen des Werts von approximateNeighborsCount kann sich auf folgende Weise auf die Leistung auswirken:

  • Recall: Erhöht
  • Latenz: Möglicherweise erhöht
  • Verfügbarkeit: Keine Auswirkung
  • Kosten: Kann steigen, da während einer Suche mehr Daten verarbeitet werden

Wenn Sie den Wert von approximateNeighborsCount verringern, kann sich das so auf die Leistung auswirken:

  • Recall: Verringert
  • Latenz: Verringert sich möglicherweise
  • Verfügbarkeit: Keine Auswirkung
  • Kosten: Kann die Kosten senken, da während einer Suche weniger Daten verarbeitet werden
setNeighborCount Gibt die Anzahl der Ergebnisse an, die durch die Abfrage zurückgegeben werden sollen.

Werte unter oder gleich 300 bleiben in den meisten Anwendungsfällen leistungsfähig. Bei größeren Werten sollten Sie für Ihren spezifischen Anwendungsfall testen.

fractionLeafNodesToSearch Steuert den Prozentsatz der Blattknoten, die bei der Suche nach nächsten Nachbarn besucht werden. Dies steht in Bezug auf leafNodeEmbeddingCount insofern, als je mehr Einbettungen pro Blattknoten umso mehr Daten pro Blatt untersucht werden.

Das Erhöhen des Werts von fractionLeafNodesToSearch kann die Leistung auf folgende Weise beeinflussen:

  • Recall: Erhöht
  • Latenz: Erhöht
  • Verfügbarkeit: Keine Auswirkung
  • Kosten: Kann steigen, da eine höhere Latenz mehr Maschinenressourcen belegt

Das Verringern des Werts von fractionLeafNodesToSearch kann sich auf folgende Weise auf die Leistung auswirken:

  • Recall: Verringert
  • Latenz: Verringert
  • Verfügbarkeit: Keine Auswirkung
  • Kosten: Kann sich verringern, da eine geringere Latenz weniger Maschinenressourcen belegt

Nächste Schritte