In dieser Anleitung wird erläutert, wie Vertex AI Matching Engine konfiguriert und verwendet wird, um Vektorähnlichkeitssuchen durchzuführen.
VPC-Netzwerk-Peering-Verbindung einrichten
Um die Netzwerklatenz für Vektorabgleiche bei Onlineabfragen zu reduzieren, rufen Sie die Vertex AI-Dienstendpunkte aus Ihrer Virtual Private Cloud (VPC) mit privatem Dienstzugriff auf. Für jedes Google Cloud-Projekt kann nur ein VPC-Netzwerk über Peering mit Matching Engine verbunden werden. Wenn Sie bereits eine VPC mit konfiguriertem privatem Dienstzugriff haben, können Sie diese VPC für das Peering mit Vertex AI Matching Engine verwenden.
Das Konfigurieren einer VPC-Netzwerk-Peering-Verbindung ist eine anfängliche Aufgabe, die nur einmal pro Google Cloud-Projekt erforderlich ist. Nachdem diese Einrichtung abgeschlossen ist, können Sie den Matching Engine-Index von jedem Client aus aufrufen, der in Ihrer VPC ausgeführt wird.
Die VPC-Netzwerk-Peering-Verbindung ist nur für Vektorabgleiche von Onlineabfragen erforderlich. API-Aufrufe zum Erstellen, Bereitstellen und Löschen von Indexen erfordern keine VPC-Netzwerk-Peering-Verbindung.
Die folgenden Schritte müssen von Ihrem Cloud-Projektadministrator oder Netzwerkadministrator ausgeführt werden:
Führen Sie die Schritte unter Hinweis aus, um Ihre Cloud-Projekte einzurichten und die Abrechnung und APIs zu aktivieren.
Um Konflikte zwischen IP-Adressen zwischen Ihrem VPC-Netzwerk und dem Netzwerk unseres Diensterstellers zu vermeiden, müssen Sie dem Match Engine-Dienst, in dem die Match Engine-Indexe bereitgestellt werden, einen IP-Adressbereich zuweisen. Weitere Informationen finden Sie unter IP-Adressbereiche zuweisen.
# Note: `prefix-length=16` means a CIDR block with mask /16 is reserved for # use by Google services. Make sure to enable the Service Networking API. gcloud compute addresses create $PEERING_RANGE_NAME \ --global \ --prefix-length=16 \ --description="peering range for Matching Engine service" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --project=$PROJECT_ID
# Create the VPC connection. gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$PEERING_RANGE_NAME \ --project=$PROJECT_ID
Nachdem Sie eine private Verbindung erstellt haben, können Sie Onlineaufrufe an einen Match Engine-Index von jeder VM-Instanz aus ausführen, die in der Peering-VPC ausgeführt wird.
Beispiel-Notebook
Nachdem Sie die Ersteinrichtung des VPC-Netzwerk-Peerings abgeschlossen haben, können Sie innerhalb dieser VPC eine nutzerverwaltete Notebookinstanz erstellen und Befehle über das Notebook ausgeben.
Starten Sie das Beispielnotebook in Vertex AI Workbench oder rufen Sie das Notebook in GitHub auf.
Zugriffssteuerung mit IAM
Vertex AI verwendet Identity and Access Management (IAM) zur Verwaltung des Zugriffs auf Ressourcen. Wenn Sie Zugriff auf eine Ressource gewähren möchten, weisen Sie einem Nutzer, einer Gruppe oder einem Dienstkonto mindestens eine Rolle zu.
Zur Verwendung von Matching Engine verwenden Sie diese vordefinierten Rollen, um auf Projektebene unterschiedliche Zugriffsrechte auf Ressourcen zu gewähren.
Format und Struktur von Eingabedaten
Wenn Sie einen neuen Index erstellen oder einen vorhandenen Index aktualisieren möchten, stellen Sie Vektoren für Matching Engine in dem Format und der Struktur zur Verfügung, die in den folgenden Abschnitten beschrieben werden.
Speicher für Eingabedaten
Speichern Sie Ihre Eingabedaten in einem Cloud Storage-Bucket in Ihrem Cloud-Projekt.
Eingabeverzeichnisstruktur
Strukturieren Sie Ihr Eingabedatenverzeichnis so:
- Batch-Stammverzeichnis: Erstellen Sie ein Stammverzeichnis für jeden Batch von Eingabedatendateien. Verwenden Sie ein einzelnes Cloud Storage-Verzeichnis als Stammverzeichnis. Im folgenden Beispiel heißt das Stammverzeichnis
batch_root
. Dateibenennung: Platzieren Sie einzelne Datendateien direkt unter
batch_root
und benennen Sie sie mit dem Suffix.csv
,.json
oder.avro
, je nachdem, welches Dateiformat Sie verwenden.Matching Engine interpretiert jede Datendatei als eine Gruppe von Datensätzen.
Das Format des Datensatzes wird durch das Suffix des Dateinamens bestimmt und in einem der folgenden Abschnitte beschrieben.
Jeder Datensatz sollte eine ID und einen Featurevektor enthalten, optional mit zusätzlichen Feldern wie Einschränkungen und Mengenbeschränkungen.
Verzeichnis löschen: Sie können ein Unterverzeichnis
delete
unterbatch_root
erstellen. Dieses Verzeichnis ist optional.- Jede Datei direkt unter
batch_root/delete
ist eine Textdatei mit Datensatz-IDs, mit einer ID in jeder Zeile. Jede ID muss ein gültiger UTF-8-String sein.
- Jede Datei direkt unter
Alle anderen Verzeichnisse und Dateien werden ignoriert.
Alle Datensätze aus allen Datendateien, einschließlich der Datensätze unter
delete
, enthalten einen einzelnen Einabebatch. Die relative Reihenfolge der Datensätze innerhalb einer Datendatei ist unerheblich.Eine einzelne ID kann nur einmal pro Batch vorkommen.
- Hinweis: Eine ID darf nicht gleichzeitig in einer regulären Datendatei und in einer
delete
-Datendatei enthalten sein.
- Hinweis: Eine ID darf nicht gleichzeitig in einer regulären Datendatei und in einer
Alle IDs aus einer Datendatei unter
delete
werden aus der nächsten Indexversion entfernt. Datensätze aus regulären Datendateien werden in die nächste Version aufgenommen, wobei ein Wert in einer früheren Indexversion möglicherweise überschrieben wird.
Datendateiformate
Datendateien können im CSV-, JSON- oder Avro-Format vorliegen.
CSV
- Codieren Sie die Datei mit UTF-8.
- Machen Sie jede Zeile zu einer gültigen CSV-Datei, die als einzelner Datensatz interpretiert werden soll.
- Verwenden Sie als ersten Wert die
id
, wobei dieid
ein gültiger UTF-8-String ist. - Legen Sie die nächsten N Werte als Dimension des Featurevektors fest, die beim Erstellen eines Index konfiguriert wird. Machen Sie jeden Wert zu einem Gleitkommaliteral, wie in der Java-Sprachspezifikation definiert.
JSON
- Codieren Sie die Datei mit UTF-8.
- Machen Sie jede Zeile zu einem gültigen JSON-Objekt, das als Datensatz interpretiert werden soll.
- Fügen Sie in jeden Datensatz ein Feld namens
id
ein, das einen gültigen UTF-8-String erfordert, der die ID des Vektors ist. - Fügen Sie in jeden Datensatz ein Feld namens
embedding
ein, das ein Array von Zahlen erfordert. Dies ist der Featurevektor.
AVRO
- Verwenden Sie eine gültige Avro-Datei.
Erstellen Sie Datensätze, die dem folgenden Schema entsprechen:
{ "type": "record", "name": "FeatureVector", "fields": [ { "name": "id", "type": "string" }, { "name": "embedding", "type": { "type": "array", "items": "float" } }, { "name": "restricts", "type": [ "null", { "type": "array", "items": { "type": "record", "name": "Restrict", "fields": [ { "name": "namespace", "type": "string" }, { "name": "allow", "type": [ "null", { "type": "array", "items": "string" } ] }, { "name": "deny", "type": [ "null", { "type": "array", "items": "string" } ] } ] } } ] }, { "name": "crowding_tag", "type": [ "null", "string" ] } ] }
Indexe verwalten
In den folgenden Abschnitten wird beschrieben, wie Sie Indexe erstellen, löschen oder aktualisieren. Weitere Informationen finden Sie in der API-Dokumentation zu Indexen.
Index-Metadatendatei
Bevor Sie einen Index erstellen, müssen Sie die Parameter für Ihren Index konfigurieren.
Erstellen Sie beispielsweise eine Datei mit dem Namen index_metadata.json
:
{ "contentsDeltaUri": "gs://BUCKET_NAME/path", "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 500, "leafNodesToSearchPercent": 7 } } } }
Sie finden die Definition für jedes dieser Felder unter Indexe konfigurieren oder Sie rufen die Definitionen im folgenden Schema auf:
title: NearestNeighborSearch
type: object
properties:
contentsDeltaUri:
type: string
description: >
Allows inserting, updating or deleting the contents of the Matching Engine Index.
The string must be a valid Cloud Storage directory path. If this
field is set when calling IndexService.UpdateIndex, then no other
Index field can be also updated as part of the same call.
The expected structure and format of the files this URI points to is
described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
writeOnly: true
isCompleteOverwrite:
type: boolean
description: >
If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex,
then existing content of the Index will be replaced by the data from the contentsDeltaUri.
default: false
config:
type: object
description: >
The configuration of the Matching Engine Index.
required:
- dimensions
- algorithmConfig
properties:
dimensions:
type: integer
format: int32
description: >
The number of dimensions of the input vectors.
approximateNeighborsCount:
type: integer
format: int32
description: >
The default number of neighbors to find via approximate search before exact reordering is
performed. Exact reordering is a procedure where results returned by an
approximate search algorithm are reordered via a more expensive distance computation.
Required if tree-AH algorithm is used.
distanceMeasureType:
description: >
The distance measure used in nearest neighbor search.
oneOf:
- enum: [SQUARED_L2_DISTANCE]
description: >
Euclidean (L_2) Distance
- enum: [L1_DISTANCE]
description: >
Manhattan (L_1) Distance
- enum: [COSINE_DISTANCE]
description: >
Cosine Distance. Defined as 1 - cosine similarity.
- enum: [DOT_PRODUCT_DISTANCE]
description: >
Dot Product Distance. Defined as a negative of the dot product
default: DOT_PRODUCT_DISTANCE
featureNormType:
description: >
Type of normalization to be carried out on each vector.
oneOf:
- enum: [UNIT_L2_NORM]
description: >
Unit L2 normalization type.
- enum: [NONE]
description: >
No normalization type is specified.
default: NONE
algorithmConfig:
description: >
The configuration with regard to the algorithms used for efficient search.
oneOf:
- type: object
description: >
Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing).
Please refer to this paper for more details: https://arxiv.org/abs/1908.10396
properties:
type:
type: string
enum: [treeAhConfig]
leafNodeEmbeddingCount:
type: integer
format: int64
description: >
Number of embeddings on each leaf node. The default value is 1000 if not set.
leafNodesToSearchPercent:
type: number
format: int32
description: >
The default percentage of leaf nodes that any query may be searched. Must be in
range 1-100, inclusive. The default value is 10 (means 10%) if not set.
- type: object
description: >
Configuration options for using brute force search, which simply implements the
standard linear search in the database for each query.
properties:
type:
type: string
enum: [bruteForceConfig]
discriminator:
propertyName: type
Diese Metadaten-Schemadatei kann aus Cloud Storage heruntergeladen werden.
Index erstellen
gcloud
- Definieren Sie die Indexmetadaten.
- Führen Sie den Befehl
gcloud ai indexes create
aus:
gcloud ai indexes create \
--metadata-file=LOCAL_PATH_TO_METADATA_FILE \
--display-name=INDEX_NAME \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- LOCAL_PATH_TO_METADATA_FILE: Der lokale Dateipfad zur Metadatendatei.
- INDEX_NAME: Der Anzeigename für den Index.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_NAME: Der Anzeigename für den Index.
- INPUT_DIR: Der Cloud Storage-Verzeichnispfad des Indexinhalts.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexes
JSON-Text anfordern:
{ "display_name": "INDEX_NAME", "metadata": { "contentsDeltaUri": "INPUT_DIR", "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 500, "leafNodesToSearchPercent": 7 } } } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-08T01:21:10.147035Z", "updateTime": "2022-01-08T01:21:10.147035Z" } } }
"done": true
angegeben wird.
Indexe auflisten
gcloud
Führen Sie den Befehl gcloud ai indexes list
aus:
gcloud ai indexes list \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_NAME: Der Anzeigename für den Index.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexes
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "indexes": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID", "displayName": "INDEX_NAME", "metadataSchemaUri": "gs://google-cloud-aiplatform/schema/matchingengine/metadata/nearest_neighbor_search_1.0.0.yaml", "metadata": { "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "featureNormType": "NONE", "algorithmConfig": { "treeAhConfig": { "maxLeavesToSearch": 50, "leafNodeCount": 10000 } } } }, "etag": "AMEw9yNU8YX5IvwuINeBkVv3yNa7VGKk11GBQ8GkfRoVvO7LgRUeOo0qobYWuU9DiEc=", "createTime": "2020-11-08T21:56:30.558449Z", "updateTime": "2020-11-08T22:39:25.048623Z" } ] }
Indexinhalt aktualisieren
Mit der Methode IndexService.UpdateIndex
können Sie den Inhalt eines vorhandenen Index
aktualisieren.
So ersetzen Sie den vorhandenen Inhalt eines Index
:
- Setzen Sie
Index.metadata.contentsDeltaUri
auf den Cloud Storage-URI, der die zu aktualisierenden Vektoren enthält. isCompleteOverwrite
auf „true“ festlegen.
Wenn Sie das Feld contentsDeltaUri
beim Aufruf von IndexService.UpdateIndex
festlegen, können keine anderen Indexfelder wie displayName
, description
oder userLabels
im Rahmen desselben Aufrufs aktualisiert werden.
gcloud
- Indexmetadatendatei aktualisieren
- Führen Sie den Befehl
gcloud ai indexes update
aus:
gcloud ai indexes update INDEX_ID \
--metadata-file=LOCAL_PATH_TO_METADATA_FILE \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ID: Die ID des Index.
- LOCAL_PATH_TO_METADATA_FILE: Der lokale Dateipfad zur Metadatendatei.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INPUT_DIR: Der Cloud Storage-Verzeichnispfad des Indexinhalts.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexes/INDEX_ID
JSON-Text anfordern:
{ "metadata": { "contentsDeltaUri": "INPUT_DIR", "isCompleteOverwrite": true } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-12T23:56:14.480948Z", "updateTime": "2022-01-12T23:56:14.480948Z" } } }
"done": true
angegeben wird.
Wenn im Index
verknüpfte Bereitstellungen vorhanden sind (siehe Feld Index.deployed_indexes
) und bestimmte Änderungen am ursprünglichen Index
vorgenommen werden, wird der DeployedIndex
im Hintergrund automatisch asynchron aktualisiert, um diese Änderungen widerzuspiegeln.
Vergleichen Sie die Endzeit des Vorgang zur Indexaktualisierung mit der DeployedIndex.index_sync_time
, um zu prüfen, ob die Änderung übernommen wurde.
Index löschen
Beachten Sie, dass Sie Index
erst löschen können, wenn die Bereitstellung für Index.deployed_indexes
aufgehoben wurde.
gcloud
Führen Sie den Befehl gcloud ai indexes delete
aus:
gcloud ai indexes delete INDEX_ID \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ID: Die ID des Index.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ID: Die ID des Index.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexes/INDEX_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata", "genericMetadata": { "createTime": "2022-01-08T02:35:56.364956Z", "updateTime": "2022-01-08T02:35:56.364956Z" } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Indexe bereitstellen und verwalten
Die Bereitstellung eines Index umfasst die folgenden drei Aufgaben:
- Erstellen Sie bei Bedarf einen
IndexEndpoint
oder verwenden Sie einen vorhandenenIndexEndpoint
. - Rufen Sie die ID
IndexEndpoint
ab. - Stellen Sie den Index auf dem
IndexEndpoint
bereit.
Erstellen Sie einen IndexEndpoint
in Ihrem VPC-Netzwerk.
Wenn Sie einen Index
in einem vorhandenen IndexEndpoint
bereitstellen, können Sie diesen Schritt überspringen.
Bevor Sie einen Index zum Bereitstellen von Onlineabfragen für den Vektorabgleich verwenden können, müssen Sie den Index
auf einem IndexEndpoint
innerhalb Ihres VPC-Netzwerk-Peering-Netzwerks bereitstellen. Im ersten Schritt erstellen Sie einen IndexEndpoint
. Sie können mehr als einen Index auf einem IndexEndpoint
bereitstellen, der dasselbe VPC-Netzwerk verwendet.
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints create
verwendet:
gcloud ai index-endpoints create \
--display-name=INDEX_ENDPOINT_NAME \
--network=VPC_NETWORK_NAME \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_NAME: Der Anzeigename des Indexendpunkts
- VPC_NETWORK_NAME: Der Google Compute Engine-Netzwerkname, mit dem ein Indexendpunkt-Peering erfolgen soll.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
Es kann einige Minuten dauern, bis das Google Cloud-CLI-Tool das IndexEndpoint
erstellt hat.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_NAME: Der Anzeigename des Indexendpunkts
- VPC_NETWORK_NAME: Der Google Compute Engine-Netzwerkname, mit dem ein Indexendpunkt-Peering erfolgen soll.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints
JSON-Text anfordern:
{ "display_name": "INDEX_ENDPOINT_NAME", "network": "VPC_NETWORK_NAME" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateIndexEndpointOperationMetadata", "genericMetadata": { "createTime": "2022-01-13T04:09:56.641107Z", "updateTime": "2022-01-13T04:09:56.641107Z" } } }
"done": true
angegeben wird.
Index bereitstellen
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints deploy-index
verwendet:
gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \
--deployed-index-id=DEPLOYED_INDEX_ID \
--display-name=DEPLOYED_INDEX_NAME \
--index=INDEX_ID \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- DEPLOYED_INDEX_NAME: Der Anzeigename des bereitgestellten Index
- INDEX_ID: Die ID des Index.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- DEPLOYED_INDEX_NAME: Der Anzeigename des bereitgestellten Index
- INDEX_ID: Die ID des Index.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
JSON-Text anfordern:
{ "deployedIndex": { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_NAME" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" }, "deployedIndexId": "DEPLOYED_INDEX_ID" } }
"done": true
angegeben wird.
Automatische Skalierung aktivieren
Matching Engine unterstützt Autoscaling, mit dem die Anzahl der Knoten automatisch an die Anforderungen Ihrer Arbeitslasten angepasst werden kann. Bei hoher Nachfrage werden Knoten dem Knotenpool hinzugefügt, überschreiten aber die von Ihnen festgelegte maximale Größe nicht. Bei geringer Nachfrage wird der Knotenpool wieder auf eine von Ihnen festgelegte Mindestgröße herunterskaliert. Sie können die tatsächlich verwendeten Knoten und die Änderungen prüfen, wenn Sie die aktuellen Replikate überwachen.
Um das Autoscaling zu aktivieren, geben Sie beim Bereitstellen des Index maxReplicaCount
und minReplicaCount
an:
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints deploy-index
verwendet:
gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \
--deployed-index-id=DEPLOYED_INDEX_ID \
--display-name=DEPLOYED_INDEX_NAME \
--index=INDEX_ID \
--min-replica-count=MIN_REPLICA_COUNT \
--max-replica-count=MAX_REPLICA_COUNT \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- DEPLOYED_INDEX_NAME: Der Anzeigename des bereitgestellten Index
- INDEX_ID: Die ID des Index.
- MIN_REPLICA_COUNT: Die Mindestanzahl an Maschinenreplikaten, auf denen der bereitgestellte Index immer bereitgestellt wird. Wenn angegeben, muss der Wert 1 oder größer sein.
- MAX_REPLICA_COUNT: Die maximale Anzahl an Maschinenreplikaten, auf denen der bereitgestellte Index bereitgestellt werden kann.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- DEPLOYED_INDEX_NAME: Der Anzeigename des bereitgestellten Index
- INDEX_ID: Die ID des Index.
- MIN_REPLICA_COUNT: Die Mindestanzahl an Maschinenreplikaten, auf denen der bereitgestellte Index immer bereitgestellt wird. Wenn angegeben, muss der Wert 1 oder größer sein.
- MAX_REPLICA_COUNT: Die maximale Anzahl an Maschinenreplikaten, auf denen der bereitgestellte Index bereitgestellt werden kann.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
JSON-Text anfordern:
{ "deployedIndex": { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_NAME", "automaticResources": { "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" }, "deployedIndexId": "DEPLOYED_INDEX_ID" } }
"done": true
angegeben wird.
- Wenn sowohl
minReplicaCount
als auchmaxReplicaCount
nicht festgelegt sind, werden sie standardmäßig auf 2 gesetzt. - Wenn nur
maxReplicaCount
festgelegt ist, istminReplicaCount
standardmäßig auf 2 gesetzt. - Wenn nur
minReplicaCount
festgelegt ist, istmaxReplicaCount
gleichminReplicaCount
.
DeployedIndex
mutieren
Sie können die MutateDeployedIndex
API verwenden, um die Bereitstellungsressourcen (z. B. minReplicaCount
und maxReplicaCount
) eines bereits bereitgestellten Index zu aktualisieren.
- Nutzer dürfen den
machineType
nach der Bereitstellung des Index nicht mehr ändern. - Wenn
maxReplicaCount
nicht in der Anfrage angegeben ist, verwendetDeployedIndex
weiterhin den vorhandenenmaxReplicaCount
.
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints mutate-deployed-index
verwendet:
gcloud ai index-endpoints mutate-deployed-index INDEX_ENDPOINT_ID \
--deployed-index-id=DEPLOYED_INDEX_ID \
--min-replica-count=MIN_REPLICA_COUNT \
--max-replica-count=MAX_REPLICA_COUNT \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- MIN_REPLICA_COUNT: Die Mindestanzahl an Maschinenreplikaten, auf denen der bereitgestellte Index immer bereitgestellt wird. Wenn angegeben, muss der Wert 1 oder größer sein.
- MAX_REPLICA_COUNT: Die maximale Anzahl an Maschinenreplikaten, auf denen der bereitgestellte Index bereitgestellt werden kann.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- MIN_REPLICA_COUNT: Die Mindestanzahl an Maschinenreplikaten, auf denen der bereitgestellte Index immer bereitgestellt wird. Wenn angegeben, muss der Wert 1 oder größer sein.
- MAX_REPLICA_COUNT: Die maximale Anzahl an Maschinenreplikaten, auf denen der bereitgestellte Index bereitgestellt werden kann.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:mutateDeployedIndex
JSON-Text anfordern:
{ "id": "DEPLOYED_INDEX_ID", "automaticResources": { "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.MutateDeployedIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-24T20:36:37.902782Z", "updateTime": "2022-01-24T20:36:37.902782Z" }, "deployedIndexId": "gcloud_deployed_index_2" } }
"done": true
angegeben wird.
IndexEndpoints
auflisten
Führen Sie den folgenden Code aus, um Ihre IndexEndpoint
-Ressourcen aufzulisten und die Informationen zu den zugehörigen DeployedIndex
-Instanzen aufzurufen:
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints list
verwendet:
gcloud ai index-endpoints list \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "indexEndpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID", "displayName": "INDEX_ENDPOINT_NAME", "deployedIndexes": [ { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_ID", "createTime": "2021-06-04T02:23:40.178286Z", "privateEndpoints": { "matchGrpcAddress": "GRPC_ADDRESS" }, "indexSyncTime": "2022-01-13T04:22:00.151916Z", "automaticResources": { "minReplicaCount": 2, "maxReplicaCount": 10 } } ], "etag": "AMEw9yP367UitPkLo-khZ1OQvqIK8Q0vLAzZVF7QjdZ5O3l7Zow-mzBo2l6xmiuuMljV", "createTime": "2021-03-17T04:47:28.460373Z", "updateTime": "2021-06-04T02:23:40.930513Z", "network": "VPC_NETWORK_NAME" } ] }
Weitere Informationen finden Sie in der Referenzdokumentation zu IndexEndpoint
.
Bereitstellung eines Index aufheben
Führen Sie den folgenden Code aus, um die Bereitstellung eines Index aufzuheben:
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints undeploy-index
verwendet:
gcloud ai index-endpoints undeploy-index INDEX_ENDPOINT_ID \
--deployed-index-id=DEPLOYED_INDEX_ID \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- DEPLOYED_INDEX_ID: Die ID des bereitgestellten Index.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:undeployIndex
JSON-Text anfordern:
{ "deployed_index_id": "DEPLOYED_INDEX_ID" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UndeployIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-13T04:09:56.641107Z", "updateTime": "2022-01-13T04:09:56.641107Z" } } }
IndexEndpoint
löschen
Bevor Sie einen IndexEndpoint
löschen, müssen Sie alle zugehörigen Indexe aufheben.
gcloud
Im folgenden Beispiel wir der Befehl gcloud ai index-endpoints delete
verwendet:
gcloud ai index-endpoints delete INDEX_ENDPOINT_ID \
--project=PROJECT_ID \
--region=LOCATION
Dabei gilt:
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- PROJECT_ID: ID des Projekts
- LOCATION: Die Region, in der Sie Vertex AI verwenden.
REST UND BEFEHLSZEILE
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Projekt-ID oder Projektnummer
- INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
- PROJECT_NUMBER: Projektnummer für Ihr Projekt
HTTP-Methode und URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata", "genericMetadata": { "createTime": "2022-01-13T04:36:19.142203Z", "updateTime": "2022-01-13T04:36:19.142203Z" } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Indexe zum Abrufen der nächsten Nachbarn abfragen
Jeder DeployedIndex
hat eine DEPLOYED_INDEX_SERVER_IP
, die Sie durch Auflisten von IndexEndpoints
abrufen können. Zum Abfragen eines DeployedIndex
stellen Sie eine Verbindung zu seiner DEPLOYED_INDEX_SERVER_IP
an Port 10000
her und rufen die Methode Match
oder BatchMatch
auf.
In den folgenden Beispielen wird das Open-Source-Tool grpc_cli
verwendet, um grpc-Anfragen an den bereitgestellten Indexserver zu senden.
Im ersten Beispiel senden Sie eine einzelne Abfrage mit der Methode Match
.
./grpc_cli call ${DEPLOYED_INDEX_SERVER_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 ${DEPLOYED_INDEX_SERVER_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, die über Peering mit dem Dienst verbunden wurde, ausgeführt wird.
Um weitere Informationen zum Erstellen der Abfragen zu erhalten, starten Sie ein Beispiel-Notebook und führen Sie es in Vertex AI Workbench aus.
Index feinabstimmen
Zum Feinabstimmen des Index müssen Sie die Konfigurationsparameter festlegen, die sich auf die Leistung der bereitgestellten Indexe auswirken, insbesondere die Recall und Latenz. Diese Parameter werden beim Erstellen des Index festgelegt. Sie können Brute-Force-Indexe verwenden, um den Recall zu messen.
Konfigurationsparameter, die sich auf Recall und Latenz auswirken
distanceMeasureType
Folgende Werte werden unterstützt:
SQUARED_L2_DISTANCE
: Euklidische L2-Distanz.L1_DISTANCE
: Manhattan-L1-Distanz.COSINE_DISTANCE
: Kosinus-Distanz, definiert als "1 – Kosinus-Ähnlichkeit".DOT_PRODUCT_DISTANCE
: vDot-Produkt-Distanz, definiert als negativer Wert des Skalarprodukts. Dies ist der Standardwert.
In den meisten Fällen werden die für den Ähnlichkeitsabgleich verwendeten Einbettungsvektoren mithilfe von Messwert-Lernmodellen (auch als siamesische Netzwerke oder Two-Tower-Modelle bezeichnet) berechnet. Diese Modelle verwenden einen Distanzmesswert, um die Kontrastverlustfunktion zu berechnen. Im Idealfall entspricht der Wert des Parameters
distanceMeasureType
für den übereinstimmenden Index der Distanzmessung, die vom Modell verwendet wird, das die Einbettungsvektoren erstellt hat.approximateNeighborsCount
Die Standardanzahl der Nachbarn, die mithilfe der ungefähren Suche ermittelt werden soll, bevor eine genaue Neusortierung durchgeführt wird. Bei der genauen Neusortierung werden Ergebnisse, die von einem ungefähren Suchalgorithmus zurückgegeben werden, über eine aufwendigere Distanzberechnung neu sortiert. Durch Erhöhen dieses Werts wird der Recall erhöht, was zu einer proportionalen Erhöhung der Latenz führen kann.
treeAhConfig.leafNodesToSearchPercent
Der Prozentsatz der Blätter, die für jede Abfrage gesucht werden sollen. Durch Erhöhen dieses Werts wird der Recall erhöht, was auch zu einer proportionalen Erhöhung der Latenz führen kann. Der Standardwert ist
10
oder 10 % der Blätter.treeAhConfig.leafNodeEmbeddingCount
Die Anzahl der Einbettungen für jeden Blattknoten. Standardmäßig ist die Anzahl auf
1000
festgelegt.Dieser Parameter hat keine lineare Korrelation zum Recall. Das Erhöhen oder Verringern des Werts des Parameters
treeAhConfig.leafNodeEmbeddingCount
erhöht oder verringert nicht immer den Recall. Experimentieren Sie, um den optimalen Wert zu ermitteln. Das Ändern des Werts des ParameterstreeAhConfig.leafNodeEmbeddingCount
hat in der Regel weniger Auswirkungen als die Änderung des Werts der anderen Parameter.
Brute-Force-Index zum Messen des Recalls verwenden
Verwenden Sie Indexe mit dem Brute-Force-Algorithmus, um die nächsten Nachbarn abzurufen. Der Brute-Force-Algorithmus bietet einen Recall von 100 %, allerdings auf Kosten einer höheren Latenz. Ein Brute-Force-Index zur Messung des Recalls ist in der Regel keine gute Wahl für die Produktionsbereitstellung, aber er kann nützlich sein, um den Recall verschiedener Indexierungsoptionen offline zu beurteilen.
Wenn Sie einen Index mit dem Brute-Force-Algorithmus erstellen möchten, geben Sie brute_force_config
in den Index-Metadaten an:
curl -X POST -H "Content-Type: application/json" \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/indexes \ -d '{ displayName: "'${DISPLAY_NAME}'", description: "'${DESCRIPTION}'", metadata: { contentsDeltaUri: "'${INPUT_DIR}'", config: { dimensions: 100, approximateNeighborsCount: 150, distanceMeasureType: "DOT_PRODUCT_DISTANCE", featureNormType: "UNIT_L2_NORM", algorithmConfig: { bruteForceConfig: {} } }, }, }'
Das Beispiel-Notebook zeigt, wie ein Brute-Force-Index zur Messung des Recalls verwendet wird.
IndexEndpoint
überwachen
Google bietet zwei Messwerte für das Monitoring des IndexEndpoint
:
aiplatform.googleapis.com/matching_engine/current_shards
Die Anzahl der Fragmentierungen von
DeployedIndex
. Nachdem Daten hinzugefügt und gelöscht wurden, passt Matching Engine den Index automatisch neu an, um eine optimale Leistung zu erzielen. Dieser Messwert gibt die aktuelle Anzahl der Fragmentierungen des bereitgestellten Index an.aiplatform.googleapis.com/matching_engine/current_replicas
Die Gesamtzahl der aktiven Replikatserver, die vom
DeployedIndex
verwendet werden. Zum Bewältigung des Abfragevolumens aktiviert oder deaktiviert Match Engine automatisch Replikatserver anhand der Mindest- und Höchstwerte der Replikateinstellungen, die bei der Bereitstellung des Index festgelegt wurden.Wenn der Index mehrere Shards enthält, kann jeder Shard mit einer anderen Anzahl von Replikatservern bereitgestellt werden. Dieser Messwert gibt die Gesamtzahl der Replikatserver für alle Shards des angegebenen Index an.
Weitere Informationen zum Auswählen, Abfragen und Anzeigen dieser Messwerte in Metrics Explorer.
Kontingente
Weitere Informationen zu Vertex AI Matching Engine-Kontingenten und zum Anfordern von Kontingenterhöhungen.
FAQ
Wie viele IP-Adressen sollte ich reservieren?
Wenn der IP-Bereich, den Sie zuweisen können, nicht eingeschränkt ist, sollten Sie einen großen IP-Bereich wie /16 reservieren, um ein zukünftiges Problem in Bezug auf ausgeschöpfte IP-Adressen zu vermeiden.
Wenn Sie keine übermäßige Zuweisung von IP-Bereichen wünschen, können Sie eine grobe Schätzung basierend auf der Datengröße und dem Traffic durchführen. Jeder Shard kann etwa 20 GB Daten im Avro-Format hosten und jedes Replikat des Shards kann etwa 800 bis 1.000 Abfragen pro Sekunde verarbeiten. Die genaue Anzahl der Abfragen pro Sekunde, die jedes Replikat bereitstellen kann, hängt beispielsweise von der Größe der Einbettung, den Dimensionen und den Algorithmuskonfigurationen ab. Wir empfehlen dringend, einen Lasttest durchzuführen, um eine genaue Zahl zu ermitteln.
Die Gesamtzahl der bereitgestellten Indexknoten beträgt: (Anzahl der Shards) * (Anzahl der Replikate pro Shard). Wenn die Datengröße beispielsweise 30 GB und 1.200 Abfragen pro Sekunde beträgt, benötigen Sie mindestens zwei Shards und zwei Replikate pro Shard, also insgesamt vier bereitgestellte Indexknoten.
Nachdem Sie die Gesamtzahl der bereitgestellten Indexknoten geschätzt haben, können Sie das IP-Bereichspräfix anhand der folgenden Tabelle auswählen:
Insgesamt bereitgestellte Indexknoten | Empfohlenes reserviertes IP-Präfix |
---|---|
1 - 10 | /21 |
11 - 25 | /20 |
26 - 50 | /19 |
51 - 120 | /18 |
Wie behebe ich einen Fehler in Bezug auf ausgeschöpfte IP-Adressen?
Führen Sie die folgenden Schritte aus, um einen Fehler in Bezug auf ausgeschöpfte IP-Adressen zu beheben:
Suchen Sie nach nicht verwendeten DeployedIndexes und heben Sie ihre Bereitstellung auf, um einige IP-Bereiche freizugeben.
Erweitern Sie vorhandene reservierte IP-Bereiche oder weisen Sie weitere IP-Bereiche zu.
Weitere Informationen finden Sie unter IP-Adressbereich ausgeschöpft.
Warum kann ich die bereitgestellte Index-ID nicht wiederverwenden, wenn die Bereitstellung des vorherigen DeployedIndex aufgehoben wurde?
Die UndeployIndex-Bereinigung dauert mindestens 10 bis 20 Minuten, selbst wenn eine Erfolgsbestätigung empfangen wurde. Wir empfehlen, entweder 10 bis 20 Minuten zu warten, bevor Sie dieselbe ID wiederverwenden, oder eine andere ID verwenden.
Support
Wenn bei der Verwendung von Matching Engine ein Problem auftritt, gibt es zwei Möglichkeiten, Support zu erhalten. Geben Sie in beiden Fällen die folgenden Informationen an:
- Der Befehl oder Code, den Sie ausgeführt haben und der das Problem ausgelöst hat.
- Die Umgebung, in der Sie den Befehl oder Code ausgeführt haben. Wurde er beispielsweise in einer Compute Engine-Instanz oder auf einem lokalen Computer ausgeführt?
- Das beobachtete Verhalten und den Unterschied zum erwarteten Verhalten.
Cloud Customer Care-Ticket erstellen
Wenn Sie ein Customer Care-Paket haben, können Sie ein Support-Ticket einreichen. Informationen zum Abrufen eines Cloud Customer Care-Pakets finden Sie unter Customer Care.
Rufen Sie in der Google Cloud Console die Seite Fälle auf.
Klicken Sie auf Fall erstellen.
- Geben Sie im Feld Titel
Matching Engine serving
ein. - Wählen Sie im Feld Kategorie die Option Maschinelles Lernen aus.
- Wählen Sie im Feld Komponente die Option Vertex AI Matching Engine aus.
- Geben Sie im Feld Beschreibung die angeforderten Informationen ein und beantworten Sie die Fragen. Fügen Sie relevante Details hinzu, z. B. Projekt-/Index-/Vorgangs-ID, Fehlermeldungen usw.
- Klicken Sie auf Senden.
- Geben Sie im Feld Titel
Die Community fragen
Alternativ können Sie über einen der folgenden öffentlichen Kanäle Support erhalten.
- Bei Fragen zum Client SDK melden Sie ein Problem auf GitHub.
- Sonstige Fragen stellen Sie im Stack Overflow unter dem Tag google-cloud-vertex-ai.
Nächste Schritte
- Starten Sie das Beispielnotebook in Vertex AI Workbench oder rufen Sie das Notebook in GitHub auf.