Per i modelli tabulari AutoML, i modelli di immagini AutoML e i modelli con addestramento personalizzato, puoi attivare o disattivare i log di inferenza durante il deployment del modello o la creazione dell'endpoint. Questa pagina spiega i diversi tipi di log di inferenza disponibili e come attivarli o disattivarli.
Tipi di log di inferenza
Esistono diversi tipi di log di inferenza che puoi utilizzare per ottenere informazioni dai nodi di inferenza:
Logging dei container, che registra i flussi
stdout
estderr
dai nodi di inferenza in Cloud Logging. Questi log sono necessari per il debug.Nell'endpoint di servizio
v1
, il logging dei container è attivato per impostazione predefinita. Puoi disattivarla quando esegui il deployment di un modello. Puoi anche disattivare o attivare la registrazione quando modifiche il modello di cui è stato eseguito il deployment.Nell'endpoint di servizio
v1beta1
, il logging dei container è disattivato per impostazione predefinita. Puoi abilitarlo quando esegui il deployment di un modello. Puoi anche disattivare o attivare la registrazione quando modifiche il modello di cui è stato eseguito il deployment.
Logging degli accessi, che registra informazioni come timestamp e latenza per ogni richiesta a Cloud Logging.
Sia sugli endpoint di servizio
v1
chev1beta1
, la registrazione degli accessi è disattivata per impostazione predefinita. Puoi abilitare la registrazione degli accessi quando esegui il deployment di un modello in un endpoint.Registrazione di richieste e risposte, che registra un campione di richieste e risposte di inferenza online in una tabella BigQuery.
Puoi attivare la registrazione delle richieste e delle risposte creando o applicando una patch all'endpoint di inferenza.
Puoi attivare o disattivare ogni tipo di log in modo indipendente.
Impostazioni dei log di inferenza
Puoi attivare o disattivare i log di inferenza online quando crei un endpoint, esegui il deployment di un modello nell'endpoint o modifichi un modello di cui è stato eseguito il deployment.
Per aggiornare le impostazioni dei log di accesso, devi ritirare il deployment del modello e poi eseguirne di nuovo il deployment con le nuove impostazioni. Puoi aggiornare le impostazioni per i log dei container senza eseguire nuovamente il deployment del modello.
L'inferenza online a una velocità elevata di query al secondo (QPS) può produrre un numero elevato di log, soggetti ai prezzi di Cloud Logging. Per stimare i prezzi dei log di inferenza online, consulta la sezione Stima delle fatture per la registrazione. Per ridurre questo costo, puoi disattivare la registrazione delle inferenze.
Attivare e disattivare i log di inferenza
I seguenti esempi mostrano dove modificare le impostazioni di log predefinite:
Console
Quando esegui il deployment di un modello in un endpoint o crei un nuovo endpoint nella consoleGoogle Cloud , puoi specificare i tipi di log di inferenza da attivare nel passaggio Logging. Seleziona le caselle di controllo per attivare Access Logging o Container Logging oppure deseleziona le caselle di controllo per disattivare questi log.
Utilizza l'API REST per aggiornare le impostazioni per i log dei container.
Utilizza l'API REST per abilitare la registrazione delle richieste e delle risposte. La consoleGoogle Cloud e gcloud CLI non supportano la configurazione della registrazione di richiesta-risposta.
Per saperne di più su come eseguire il deployment dei modelli, leggi 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
Corsa 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
Corsa 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 per i log dei container.
Utilizza l'API REST per abilitare la registrazione delle richieste e delle risposte. La consoleGoogle Cloud e gcloud CLI non supportano la configurazione della registrazione di richiesta-risposta.
Per saperne di più su come eseguire il deployment dei modelli, leggi Eseguire il deployment di un modello utilizzando l'API Vertex AI.
REST
Per modificare il comportamento predefinito per cui i log sono attivati 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 abilitare il logging degli accessi, imposta enableAccessLogging
su True
quando esegui il deployment del modello con
projects.locations.endpoints.deployModel
.
Endpoint di servizio v1beta1
Per attivare il logging dei container, imposta il campo enableContainerLogging
su
True
quando chiami projects.locations.endpoints.deployModel
o projects.locations.endpoints.mutateDeployedModel
.
Per abilitare il logging degli accessi, imposta enableAccessLogging
su True
quando esegui il deployment del modello con
projects.locations.endpoints.deployModel
.
Per saperne di più su come eseguire il deployment dei modelli, leggi Eseguire il deployment di un modello utilizzando l'API Vertex AI.
Registrazione di richieste e risposte
Puoi attivare la registrazione delle richieste e delle risposte solo quando crei un
endpoint utilizzando
projects.locations.endpoints.create
o quando modifichi un
endpoint esistente utilizzando projects.locations.endpoints.patch
.
Il logging di richiesta-risposta viene eseguito a livello di endpoint, quindi le richieste inviate a tutti i modelli di cui è stato eseguito il deployment nello stesso endpoint vengono registrate.
Quando crei o applichi una patch a un endpoint, compila il campo
predictRequestResponseLoggingConfig
della risorsa Endpoint
con le seguenti voci:
enabled
: impostato suTrue
per abilitare la registrazione di richieste e 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 un nome di 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 essere simile al seguente:
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" } } }
Registrazione di richieste e risposte di inferenza per endpoint dedicati ed endpoint Private Service Connect
Per gli endpoint dedicati e gli endpoint Private Service Connect, puoi utilizzare la registrazione delle richieste e delle risposte per registrare i payload delle richieste e delle risposte inferiori a 10 MB (i payload più grandi vengono ignorati automaticamente) per i modelli TensorFlow, PyTorch, sklearn e XGBoost.
La registrazione di richieste e risposte è disponibile solo per i metodi
predict
e rawPredict
.
Per attivare la registrazione di richieste e risposte, compila il campo
predictRequestResponseLoggingConfig
della risorsa Endpoint con le seguenti voci:
enabled
: impostato suTrue
per abilitare la registrazione di richieste e 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 è riportata una configurazione di esempio per la creazione di un endpoint dedicato con il logging richiesta-risposta 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 di progetto del tuo progetto Google Cloud.
- ENDPOINT_NAME: Il nome visualizzato per l'endpoint.
- PROJECT_ID: l'ID progetto del tuo Google Cloud progetto.
Di seguito è riportata una configurazione di esempio per la creazione di un endpoint Private Service Connect con la registrazione di richiesta-risposta abilitata:
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 ID progetto Google Cloud, ognuno racchiuso tra virgolette. Ad esempio["PROJECTID1", "PROJECTID2"]
. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di inferenza all'endpoint Vertex AI. Assicurati di includere VERTEX_AI_PROJECT_ID in questo elenco in modo da poter chiamare l'endpoint dallo stesso progetto in cui si trova.
Registrazione di richieste e risposte e Model Monitoring v1
La registrazione di richieste e risposte e Model Monitoring v1 utilizzano la stessa tabella BigQuery nel backend per registrare le richieste in entrata. Per evitare modifiche impreviste a questa tabella BigQuery, vengono applicate le seguenti limitazioni quando utilizzi entrambe le funzionalità contemporaneamente:
Se per un endpoint è abilitato il monitoraggio dei modelli, non puoi abilitare la registrazione di richieste e risposte per lo stesso endpoint.
Se abiliti la registrazione di richieste e risposte e poi il monitoraggio dei modelli sullo stesso endpoint, non potrai modificare la configurazione della registrazione di richieste e risposte.
Passaggi successivi
- Stima dei prezzi per la registrazione dell'inferenza online.
- Esegui il deployment di un modello utilizzando la Google Cloud console o utilizzando l'API Vertex AI.
- Scopri come creare una tabella BigQuery.