Per i modelli tabulari AutoML, i modelli di immagini AutoML e i modelli con addestramento personalizzato, puoi attivare o disattivare i log di previsione durante il deployment del modello o la creazione dell'endpoint. Questa pagina illustra i diversi tipi di log di previsione disponibili e come attivarli o disattivarli.
Tipi di log di previsione
Esistono diversi tipi di log di previsione che puoi utilizzare per ottenere informazioni dai tuoi nodi di previsione:
Logging dei container, che registra gli stream
stdout
estderr
dai tuoi node di previsione in Cloud Logging. Questi log sono necessari per il debug.Nell'endpoint del servizio
v1
, il logging dei container è abilitato per impostazione predefinita. Puoi disattivarlo quando esegui il deployment di un modello. Puoi anche disattivare o attivare il logging quando mutate il modello di cui è stato eseguito il deployment.Nell'endpoint del servizio
v1beta1
, il logging dei container è disabilitato per impostazione predefinita. Puoi attivarlo quando esegui il deployment di un modello. Puoi anche disattivare o attivare il logging quando mutui il modello di cui è stato eseguito il deployment.
Access logging, che registra informazioni come timestamp e latenza per ogni richiesta in Cloud Logging.
Sia negli endpoint dei servizi
v1
sia in quelli div1beta1
, il logging degli accessi è disattivato per impostazione predefinita. Puoi attivare il logging degli accessi quando esegui il deployment di un modello in un endpoint.Registrazione delle richieste e delle risposte, che registra un campione di richieste e risposte di previsione online in una tabella BigQuery.
Puoi attivare la registrazione delle richieste e delle risposte creando o applicando una patch all'endpoint di previsione.
Puoi attivare o disattivare ogni tipo di log in modo indipendente.
Impostazioni del log di previsione
Puoi attivare o disattivare i log di previsione online quando crei un endpoint, esegui il deployment di un modello nell'endpoint o esegui la mutazione di un modello di cui è stato eseguito il deployment.
Per aggiornare le impostazioni per i log di accesso, devi eseguire il ritiro del modello e poi ridistribuirlo con le nuove impostazioni. Puoi aggiornare le impostazioni per i log del contenitore senza eseguire nuovamente il deployment del modello.
La previsione online a un tasso elevato di query al secondo (QPS) può produrre un numero sostanziale di log, soggetti ai prezzi di Cloud Logging. Per stimare i prezzi dei log di previsione online, consulta la sezione Stima delle fatture per i log. Per ridurre questo costo, puoi disattivare la registrazione delle previsioni.
Attivare e disattivare i log di previsione
I seguenti esempi mostrano dove modificare le impostazioni di log predefinite:
Console
Quando esegui il deployment di un modello in un endpoint o ne crei uno nuovo nella console Google Cloud, puoi specificare i tipi di log di previsione da attivare nel passaggio Logging. Seleziona le caselle di controllo per attivare il logging degli accessi o il logging dei contenitori oppure deselezionale per disattivare questi log.
Utilizza l'API REST per aggiornare le impostazioni dei log dei container.
Utilizza l'API REST per attivare il logging delle richieste e delle risposte. La console Google Cloud e il client gcloud CLI non supportano la configurazione del logging richiesta-risposta.
Per ulteriori informazioni su come eseguire il deployment dei modelli, consulta Eseguire il deployment di un modello utilizzando la console Google Cloud.
gcloud
Per modificare il comportamento predefinito per i log abilitati nei modelli di cui è stato eseguito il deployment, aggiungi flag al comando gcloud
:
Endpoint di servizio v1
Esegui gcloud ai endpoints deploy-model
:
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
Endpoint di servizio v1beta1
Esegui gcloud beta ai endpoints deploy-model
:
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
Utilizza l'API REST per aggiornare le impostazioni dei log dei container.
Utilizza l'API REST per attivare il logging delle richieste e delle risposte. La console Google Cloud e il client gcloud CLI non supportano la configurazione del logging richiesta-risposta.
Per maggiori informazioni su come eseguire il deployment dei modelli, consulta Eseguire il deployment di un modello mediante l'API Vertex AI.
REST
Per modificare il comportamento predefinito per cui i log sono abilitati nei modelli di cui è stato eseguito il deployment, imposta i campi pertinenti su True
:
Endpoint di servizio v1
Per disattivare il logging dei container, imposta il campo disableContainerLogging
su True
quando chiami projects.locations.endpoints.deployModel
o projects.locations.endpoints.mutateDeployedModel
.
Per attivare il logging degli accessi, imposta enableAccessLogging
su True
durante il deployment del modello con
projects.locations.endpoints.deployModel
.
Endpoint di servizio v1beta1
Per attivare il logging del contenitore, imposta il campo enableContainerLogging
su True
quando chiami projects.locations.endpoints.deployModel
o projects.locations.endpoints.mutateDeployedModel
.
Per attivare il logging degli accessi, imposta enableAccessLogging
su True
durante il deployment del modello con
projects.locations.endpoints.deployModel
.
Per maggiori informazioni su come eseguire il deployment dei modelli, consulta Eseguire il deployment di un modello mediante l'API Vertex AI.
Log di richiesta/risposta
Puoi attivare il logging delle richieste e delle risposte solo quando crei un endpoint utilizzando projects.locations.endpoints.create
o esegui la patch di un endpoint esistente utilizzando projects.locations.endpoints.patch
.
Il logging delle richieste e delle risposte viene eseguito a livello di endpoint, pertanto vengono registrate le richieste inviate a qualsiasi modello di cui è stato eseguito il deployment nello stesso endpoint.
Quando crei o esegui la patch di un endpoint, compila il
campo predictRequestResponseLoggingConfig
della risorsa endpoint
con le seguenti voci:
enabled
: impostato suTrue
per abilitare il logging delle richieste e delle risposte.samplingPercentage
: un numero compreso tra 0 e 1 che definisce la frazione di richieste da registrare. Ad esempio, imposta questo valore su1
per registrare tutte le richieste o su0.1
per registrare il 10% delle richieste.BigQueryDestination
: la tabella BigQuery da utilizzare per la registrazione. Se specifichi solo il nome di un progetto, viene creato un nuovo set di dati con il nomelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, doveENDPOINT_DISPLAY_NAME
segue le regole di denominazione di BigQuery. Se non specifichi un nome tabella, viene creata una nuova tabella con il nomerequest_response_logging
.Lo schema della tabella BigQuery dovrebbe avere il seguente aspetto:
Nome campo Tipo Modalità endpoint
STRING NULLABLE deployed_model_id
STRING NULLABLE logging_time
TIMESTAMP NULLABLE request_id
NUMERIC NULLABLE request_payload
STRING REPEATED response_payload
STRING REPEATED
Di seguito è riportata una configurazione di esempio:
{ "predict_request_response_logging_config": { "enabled": true, "sampling_rate": 0.5, "bigquery_destination": { "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" } } }
Log di richiesta/risposta di previsione per endpoint dedicati ed endpoint Private Service Connect
Per gli endpoint dedicati e gli endpoint Private Service Connect, puoi utilizzare il logging delle richieste e delle risposte per registrare i payload di richiesta e risposta inferiori a 10 MB (i payload più grandi vengono ignorati automaticamente) per i modelli TensorFlow, PyTorch, sklearn e XGBoost.
La registrazione delle richieste e delle risposte è disponibile solo per i metodi
predict
e rawPredict
.
Per attivare il logging delle richieste e delle risposte, compila il
campo predictRequestResponseLoggingConfig
della risorsa endpoint con le seguenti voci:
enabled
: impostato suTrue
per abilitare il logging delle richieste e delle risposte.samplingRate
: la frazione di richieste e risposte da registrare. Imposta un numero maggiore di 0 e minore o uguale a 1. Ad esempio, imposta questo valore su1
per registrare tutte le richieste o su0.1
per registrare il 10% delle richieste.BigQueryDestination
: la posizione BigQuery per i contenuti di output, come URI di un progetto o di una tabella.
Di seguito è riportato un esempio di configurazione per la creazione di un endpoint dedicato con logging delle richieste e delle risposte abilitato:
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" \
} \
} \
}'
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
- PROJECT_NUMBER: il numero del progetto. Google Cloud
- ENDPOINT_NAME: il nome visualizzato dell'endpoint.
- PROJECT_ID: l'ID del tuo progetto. Google Cloud
Di seguito è riportato un esempio di configurazione per la creazione di un endpoint Private Service Connect con il logging delle richieste e delle risposte abilitato:
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" \
} \
} \
}'
Sostituisci quanto segue:
ALLOWED_PROJECTS
: un elenco separato da virgole di Google Cloud ID progetto, ciascuno racchiuso tra virgolette. Ad esempio,["PROJECTID1", "PROJECTID2"]
. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di previsione all'endpoint Vertex AI da questo progetto. Assicurati di includereVERTEX_AI_PROJECT_ID in questo elenco in modo da poter chiamare l'endpoint dallo stesso progetto in cui si trova.
Monitoraggio dei modelli e logging delle richieste e delle risposte versione 1
La registrazione delle richieste e delle risposte e il monitoraggio dei modelli 1.0 utilizzano la stessa tabella BigQuery sul backend per registrare le richieste in arrivo. Per evitare modifiche impreviste a questa tabella BigQuery, quando utilizzi entrambe le funzionalità contemporaneamente vengono applicati i seguenti limiti:
Se per un endpoint è abilitato il monitoraggio dei modelli, non puoi attivare il logging delle richieste e delle risposte per lo stesso endpoint.
Se attivi il logging delle richieste e delle risposte e poi il monitoraggio dei modelli nello stesso endpoint, non potrai modificare la configurazione del logging delle richieste e delle risposte.
Passaggi successivi
- Stima dei prezzi per il logging della previsione online.
- Esegui il deployment di un modello utilizzando la console Google Cloud o utilizzando l'API Vertex AI.
- Scopri come creare una tabella BigQuery.