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
stdoutestderrdai 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
v1chev1beta1, 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 suTrueper 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 su1per registrare tutte le richieste o su0.1per 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_NAMEsegue 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à endpointSTRING NULLABLE deployed_model_idSTRING NULLABLE logging_timeTIMESTAMP NULLABLE request_idNUMERIC NULLABLE request_payloadSTRING REPEATED response_payloadSTRING 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 suTrueper 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 su1per registrare tutte le richieste o su0.1per 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.