Für AutoML-Tabellenmodelle, AutoML-Bildmodelle und benutzerdefiniert trainierte Modelle können Sie Inferenzlogs während der Modellbereitstellung oder Endpunkterstellung aktivieren oder deaktivieren. Auf dieser Seite werden die verschiedenen Arten von Inferenzlogs erläutert und es wird beschrieben, wie diese Logs aktiviert oder deaktiviert werden.
Arten von Inferenzlogs
Es gibt verschiedene Arten von Inferenzlogs, mit denen Sie Informationen von Inferenzknoten abrufen können:
Container-Logging, das die Streams
stdout
undstderr
von Ihren Inferenzknoten in Cloud Logging protokolliert. Diese Logs sind für die Fehlerbehebung erforderlich.Auf dem Dienstendpunkt
v1
ist das Container-Logging standardmäßig aktiviert. Sie können es beim Bereitstellen eines Modells deaktivieren. Sie können das Logging auch deaktivieren oder aktivieren, wenn Sie das bereitgestellte Modell ändern.Auf dem Dienstendpunkt
v1beta1
ist das Container-Logging standardmäßig deaktiviert. Sie können es aktivieren, wenn Sie ein Modell bereitstellen. Sie können das Logging auch deaktivieren oder aktivieren, wenn Sie das bereitgestellte Modell ändern.
Zugriffs-Logging, das Informationen wie Zeitstempel und Latenz für jede Anfrage an Cloud Logging protokolliert.
Auf den Dienstendpunkten
v1
undv1beta1
ist das Zugriffs-Logging standardmäßig deaktiviert. Sie können das Zugriffs-Logging aktivieren, wenn Sie ein Modell auf einem Endpunkt bereitstellen.Anfrage-/Antwort-Logging: Protokolliert eine Stichprobe von Onlineinferenzanfragen und -antworten in einer BigQuery-Tabelle.
Sie können das Anfrage-/Antwort-Logging aktivieren. Dazu erstellen Sie den Inferenzendpunkt oder patchen ihn.
Sie können jeden Logtyp einzeln aktivieren oder deaktivieren.
Einstellungen für das Inferenzprotokoll
Sie können Online-Inferenzlogs aktivieren oder deaktivieren, wenn Sie einen Endpunkt erstellen, ein Modell auf dem Endpunkt bereitstellen oder ein bereitgestelltes Modell ändern.
Wenn Sie die Einstellungen für Zugriffslogs aktualisieren möchten, müssen Sie die Bereitstellung des Modells aufheben und es dann mit den neuen Einstellungen noch einmal bereitstellen. Sie können die Einstellungen für Containerlogs aktualisieren, ohne das Modell noch einmal bereitzustellen.
Onlineinferenz mit einer hohen Abfragerate pro Sekunde (queries per second, QPS) kann zu einer erheblichen Anzahl von Logs führen, für die Cloud Logging-Preise gelten. Informationen zum Schätzen der Preise für Ihre Onlineinferenz-Logs finden Sie unter Rechnungen schätzen für Logging. Um diese Kosten zu reduzieren, können Sie das Inferenz-Logging deaktivieren.
Inferenzlogs aktivieren und deaktivieren
Die folgenden Beispiele zeigen, wo die Standardprotokolleinstellungen geändert werden können:
Console
Wenn Sie ein Modell auf einem Endpunkt bereitstellen oder einen neuen Endpunkt in derGoogle Cloud -Konsole erstellen, können Sie im Schritt Logging angeben, welche Arten von Inferenzlogs aktiviert werden sollen. Klicken Sie die Kästchen für das Zugriffs-Logging oder das Container-Logging an oder entfernen Sie die Häkchen, um diese Logs zu deaktivieren.
Verwenden Sie die REST API, um die Einstellungen für Containerlogs zu aktualisieren.
Verwenden Sie die REST API, um das Anfrage-/Antwort-Logging zu aktivieren. DieGoogle Cloud -Konsole und die gcloud CLI unterstützen keine Anfrage-/Antwort-Logging-Konfiguration.
Weitere Informationen zum Bereitstellen von Modellen finden Sie unter Modell mit der Google Cloud Console bereitstellen.
gcloud
Wenn Sie das Standardverhalten ändern möchten, für das Logs in bereitgestellten Modellen aktiviert sind, fügen Sie Ihrem gcloud
-Befehl Flags hinzu:
v1
-Dienstendpunkt
Führen Sie gcloud ai endpoints deploy-model
aus:
gcloud ai endpoints deploy-model ENDPOINT_ID\
--region=LOCATION \
--model=MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=MACHINE_TYPE \
--accelerator=count=2,type=nvidia-tesla-t4 \
--disable-container-logging \
--enable-access-logging
v1beta1
-Dienstendpunkt
Führen Sie gcloud beta ai endpoints deploy-model
aus:
gcloud beta ai endpoints deploy-model ENDPOINT_ID\
--region=LOCATION \
--model=MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=MACHINE_TYPE \
--accelerator=count=2,type=nvidia-tesla-t4 \
--enable-access-logging \
--enable-container-logging
Verwenden Sie die REST API, um die Einstellungen für Containerlogs zu aktualisieren.
Verwenden Sie die REST API, um das Anfrage-/Antwort-Logging zu aktivieren. DieGoogle Cloud -Konsole und die gcloud CLI unterstützen keine Anfrage-/Antwort-Logging-Konfiguration.
Weitere Informationen zum Bereitstellen von Modellen finden Sie unter Modell mit der Vertex AI API bereitstellen.
REST
Wenn Sie das Standardverhalten für die Logs in bereitgestellten Modellen ändern möchten, legen Sie die relevanten Felder auf True
fest:
v1
-Dienstendpunkt
Zum Deaktivieren von Container-Logging legen Sie das Feld disableContainerLogging
auf True
fest, wenn Sie entweder projects.locations.endpoints.deployModel
oder projects.locations.endpoints.mutateDeployedModel
aufrufen.
Zur Aktivierung des Zugriffs-Loggings legen Sie enableAccessLogging
auf True
fest, wenn Sie Ihr Modell mit projects.locations.endpoints.deployModel
bereitstellen.
v1beta1
-Dienstendpunkt
Zum Aktivieren von Container-Logging legen Sie das Feld enableContainerLogging
auf True
fest, wenn Sie entweder projects.locations.endpoints.deployModel
oder projects.locations.endpoints.mutateDeployedModel
aufrufen.
Zur Aktivierung des Zugriffs-Loggings legen Sie enableAccessLogging
auf True
fest, wenn Sie Ihr Modell mit projects.locations.endpoints.deployModel
bereitstellen.
Weitere Informationen zum Bereitstellen von Modellen finden Sie unter Modell mit der Vertex AI API bereitstellen.
Anfrage-/Antwort-Logging
Sie können das Anfrage-/Antwort-Logging nur aktivieren, wenn Sie mit projects.locations.endpoints.create
einen Endpunkt erstellen oder mit projects.locations.endpoints.patch
einen vorhandenen Endpunkt patchen.
Das Anfrage-/Antwort-Logging erfolgt auf Endpunktebene, sodass Anfragen, die an alle bereitgestellten Modelle unter demselben Endpunkt gesendet werden, protokolliert werden.
Wenn Sie einen Endpunkt erstellen oder patchen, füllen Sie das Feld predictRequestResponseLoggingConfig
der Endpunktressource mit den folgenden Einträgen aus:
enabled
: Wird aufTrue
festgelegt, um das Anfrage-/Antwort-Logging zu aktivieren.samplingPercentage
: Eine Zahl zwischen 0 oder 1, die den Anteil der zu protokollierenden Anfragen definiert. Legen Sie dafür beispielsweise den Wert1
fest, um alle Anfragen zu protokollieren, oder den Wert0.1
, um 10 % der Anfragen zu protokollieren.BigQueryDestination
: Die BigQuery-Tabelle, die für das Logging verwendet werden soll. Wenn Sie nur einen Projektnamen angeben, wird ein neues Dataset mit dem Namenlogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
erstellt, wobeiENDPOINT_DISPLAY_NAME
den BigQuery-Benennungsregeln folgt. Wenn Sie keinen Tabellennamen angeben, wird eine neue Tabelle mit dem Namenrequest_response_logging
erstellt.Das Schema für die BigQuery-Tabelle sollte so aussehen:
Feldname Typ Modus endpoint
STRING NULLABLE deployed_model_id
STRING NULLABLE logging_time
TIMESTAMP NULLABLE request_id
NUMERIC NULLABLE request_payload
STRING REPEATED response_payload
STRING REPEATED
Hier sehen Sie eine Beispielkonfiguration:
{ "predict_request_response_logging_config": { "enabled": true, "sampling_rate": 0.5, "bigquery_destination": { "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" } } }
Protokollierung von Anfragen und Antworten für dedizierte Endpunkte und Private Service Connect-Endpunkte
Für dedizierte Endpunkte und Private Service Connect-Endpunkte können Sie die Protokollierung von Anfragen und Antworten verwenden, um Anfrage- und Antwortnutzlasten unter 10 MB (größere Nutzlasten werden automatisch übersprungen) für TensorFlow-, PyTorch-, sklearn- und XGBoost-Modelle aufzuzeichnen.
Das Anfrage-/Antwort-Logging ist nur für die Methoden predict
und rawPredict
verfügbar.
Für die Aktivierung des Anfrage-/Antwort-Loggings müssen Sie in das Feld predictRequestResponseLoggingConfig
der Endpunktressource Folgendes eintragen:
enabled
: Wird aufTrue
festgelegt, um das Anfrage-/Antwort-Logging zu aktivieren.samplingRate
: Der Anteil der zu protokollierenden Anfragen und Antworten. Legen Sie eine Zahl fest, die größer als 0 und kleiner oder gleich 1 ist. Legen Sie dafür beispielsweise den Wert1
fest, um alle Anfragen zu protokollieren, oder den Wert0.1
, um 10% der Anfragen zu protokollieren.BigQueryDestination
: Der BigQuery-Speicherort für die Ausgabedaten als URI zu einem Projekt oder einer Tabelle.
Im Folgenden finden Sie ein Beispiel für die Konfiguration zum Erstellen eines dedizierten Endpunkts, für den das Anfrage-/Antwort-Logging aktiviert ist:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
dedicatedEndpointEnabled: true, \
predictRequestResponseLoggingConfig: { \
enabled: true, \
samplingRate: 1.0, \
bigqueryDestination: { \
outputUri:"bq://PROJECT_ID" \
} \
} \
}'
Ersetzen Sie Folgendes:
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- PROJECT_NUMBER: Die Projektnummer für Ihr Google Cloud-Projekt.
- ENDPOINT_NAME: Der Anzeigename für den Endpunkt.
- PROJECT_ID: Die Projekt-ID für Ihr Google Cloud -Projekt.
Im Folgenden finden Sie ein Beispiel für die Konfiguration zum Erstellen eines Private Service Connect-Endpunkts mit aktivierter Protokollierung von Anfragen und Antworten:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
privateServiceConnectConfig: { \
enablePrivateServiceConnect: true, \
projectAllowlist: ["ALLOWED_PROJECTS"] \
}, \
predictRequestResponseLoggingConfig: { \
enabled: true, \
samplingRate: 1.0, \
bigqueryDestination: { \
outputUri:"bq://PROJECT_ID" \
} \
} \
}'
Ersetzen Sie Folgendes:
ALLOWED_PROJECTS
: eine durch Kommas getrennte Liste von Google CloudProjekt-IDs, die jeweils in Anführungszeichen gesetzt sind. Beispiel:["PROJECTID1", "PROJECTID2"]
. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie von dort keine Inferenzanfragen an den Vertex AI-Endpunkt senden. Achten Sie darauf, dass VERTEX_AI_PROJECT_ID in diese Liste aufgenommen wird, damit Sie den Endpunkt aus demselben Projekt aufrufen können, in dem er sich befindet.
Anfrage-/Antwort-Logging und Model Monitoring v1
Anfrage-/Antwort-Logging und Model Monitoring v1 verwenden dieselbe BigQuery-Tabelle im Backend, um eingehende Anfragen zu protokollieren. Um unerwartete Änderungen an dieser BigQuery-Tabelle zu verhindern, werden die folgenden Einschränkungen erzwungen, wenn beide Features gleichzeitig verwendet werden:
Wenn für einen Endpunkt die Modellüberwachung aktiviert ist, können Sie das Anfrage-/Antwort-Logging nicht für denselben Endpunkt aktivieren.
Wenn Sie das Anfrage-/Antwort-Logging und dann das Modell-Monitoring auf demselben Endpunkt aktivieren, können Sie die Konfiguration des Anfrage-/Antwort-Loggings nicht ändern.
Nächste Schritte
- Preise schätzen für das Logging von Onlineinferenzen.
- Stellen Sie ein Modell mit der Google Cloud Console oder mit der Vertex AI API bereit.
- Weitere Informationen zum Erstellen einer BigQuery-Tabelle finden Sie unter Tabelle erstellen und verwenden.