Questa pagina mostra come effettuare una richiesta di previsione batch al di classificazione o regressione tramite la console Google Cloud oppure l'API Vertex AI.
Una richiesta di previsione batch è una richiesta asincrona (al contrario di previsione online, che è una richiesta sincrona). Le previsioni batch vengono richieste direttamente senza la necessità di eseguire il deployment del modello su un endpoint. Per i dati tabulari i dati, usa le previsioni batch quando non hai bisogno di una risposta immediata vuoi elaborare i dati accumulati attraverso un'unica richiesta.
Per effettuare una richiesta di previsione batch, devi specificare un'origine di input e un formato di output in cui Vertex AI archivia le previsioni che consentono di analizzare i dati e visualizzare i risultati.
Prima di iniziare
Prima di poter effettuare una richiesta di previsione batch, è necessario addestrare un modello.
Dati di input
I dati di input per le richieste di previsione batch sono quelli che il modello utilizza per per fare previsioni. Per i modelli di classificazione o regressione, puoi fornire input in uno dei due formati:
- tabelle BigQuery
- Oggetti CSV in Cloud Storage
Ti consigliamo di utilizzare per i dati di input lo stesso formato utilizzato per durante l'addestramento del modello. Ad esempio, se hai addestrato il modello utilizzando i dati BigQuery, è meglio utilizzare una tabella BigQuery come input per la tua previsione batch. Poiché Vertex AI tratta tutti i campi di input CSV come le stringhe, la combinazione dei formati dei dati di addestramento e di input può causare errori.
L'origine dati deve contenere dati tabulari che includono tutte le colonne, in qualsiasi ordine, che è stato usato per addestrare il modello. Puoi includere colonne che vengono non presenti nei dati di addestramento o che erano nei dati di addestramento, ma esclusi per l'addestramento. Queste colonne aggiuntive sono incluse nell'output ma non i risultati della previsione.
Requisiti dei dati di input
Tabella BigQuery
Se scegli una tabella BigQuery come input, devi assicurarti che seguenti:
- Le tabelle BigQuery che fungono da origine dati non devono essere più grandi di 100 GB.
- Se la tabella si trova in un progetto diverso, devi concedere alla classe
il ruolo
BigQuery Data Editor
all'account di servizio Vertex AI in quel progetto.
File CSV
Se scegli un oggetto CSV in Cloud Storage come input, devi assicurarti che seguenti:
- L'origine dati deve iniziare con una riga di intestazione con i nomi delle colonne.
- Ogni oggetto dell'origine dati non deve essere più grande di 10 GB. Puoi includere più file, fino a una dimensione massima di 100 GB.
- Se il bucket Cloud Storage si trova in un progetto diverso, devi concedere la classe
il ruolo
Storage Object Creator
all'account di servizio Vertex AI in quel progetto. - È necessario racchiudere tutte le stringhe tra virgolette doppie (").
Formato di output
Il formato di output della richiesta di previsione batch non deve essere necessariamente lo stesso come formato che hai utilizzato per l'input. Ad esempio, se utilizzavi come input, puoi inviare i risultati in un oggetto CSV in Cloud Storage.
Effettua una richiesta di previsione batch al tuo modello
Per effettuare richieste di previsione batch, puoi utilizzare la console Google Cloud o l'API Vertex AI. L'origine dati di input può essere costituita da oggetti CSV archiviati in nel bucket Cloud Storage o nelle tabelle BigQuery. In base una quantità di dati inviati come input, un'attività di previsione batch per completare l'operazione.
Console Google Cloud
Utilizza la console Google Cloud per richiedere una previsione batch.
- Nella console Google Cloud, nella sezione Vertex AI, vai a alla pagina Previsioni batch.
- Fai clic su Crea per aprire la finestra Nuova previsione batch.
- Per Definire la previsione batch, completa i seguenti passaggi:
- .
- Inserisci un nome per la previsione batch.
- In Nome modello, seleziona il nome del modello da utilizzare la previsione batch.
- In Versione, seleziona la versione del modello da utilizzare la previsione batch.
- Per Seleziona origine, scegli se i dati di input dell'origine sono in formato CSV.
su Cloud Storage o una tabella in BigQuery.
- Per i file CSV, specifica il percorso di Cloud Storage in cui il file CSV in cui si trova il file di input.
- Per le tabelle BigQuery, specifica l'ID progetto in cui automaticamente la posizione della tabella, l'ID del set di dati BigQuery ID tabella o vista BigQuery.
- Per Output, seleziona CSV o BigQuery.
- Per CSV, specifica il bucket Cloud Storage in cui Vertex AI archivia l'output.
- Per BigQuery, puoi specificare un ID progetto o un
set di dati:
- Per specificare l'ID progetto, inserisci l'ID progetto nella casella ID progetto Cloud. Vertex AI crea un nuovo output per te.
- Per specificare un set di dati esistente, inserisci il relativo percorso BigQuery
Nel campo ID progetto Google Cloud, ad esempio
bq://projectid.datasetid
.
- (Facoltativo) Monitoraggio del modello
l'analisi delle previsioni batch è disponibile in Anteprima. Consulta le
Prerequisiti
per aggiungere la configurazione del rilevamento del disallineamento al tuo batch
un job di previsione.
- Fai clic per attivare Abilita il monitoraggio del modello per questa previsione batch.
- Seleziona un'Origine dati di addestramento. Inserisci il percorso dei dati o la posizione per l'origine dati di addestramento che hai selezionato.
- (Facoltativo) In Soglie di avviso, specifica le soglie rispetto alle quali attivare gli avvisi.
- Per Email di notifica, inserisci uno o più indirizzi email separati da virgole per ricevere avvisi quando un modello supera una soglia di avviso.
- (Facoltativo) Per Canali di notifica, aggiungi Cloud Monitoring per ricevere avvisi quando un modello supera una soglia di avviso. Puoi selezionare i canali Cloud Monitoring esistenti o crearne uno nuovo uno facendo clic su Gestisci canali di notifica. La console supporta le notifiche PagerDuty, Slack e Pub/Sub canali.
- Fai clic su Crea.
API: BigQuery
REST
Puoi utilizzare batchPredictionJobs.create per richiedere una previsione batch.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui è archiviato il modello e viene eseguito il job di previsione batch. Per
ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato del job batch
- MODEL_ID: l'ID del modello da utilizzare per fare previsioni
-
INPUT_URI: riferimento all'origine dati BigQuery. Nel modulo:
bq://bqprojectId.bqDatasetId.bqTableId
-
OUTPUT_URI: riferimento alla destinazione BigQuery (dove il valore
vengono scritte le previsioni). Specifica l'ID progetto e, facoltativamente,
e un ID set di dati esistente. Se specifichi solo l'ID progetto,
Vertex AI crea un nuovo set di dati di output per te. Utilizza la
modulo seguente:
bq://bqprojectId.bqDatasetId
- MACHINE_TYPE: le risorse della macchina da utilizzare per questo job di previsione batch. Scopri di più.
- STARTING_REPLICA_COUNT: il numero iniziale di nodi per questo job di previsione batch. Il conteggio dei nodi può essere aumentato o diminuito in base al carico, fino al numero massimo di nodi, ma non scenderanno mai al di sotto di questo numero.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo job di previsione batch. La il numero di nodi può essere aumentato o diminuito in base al carico, ma non supererà mai massimo. (Facoltativo) Il valore predefinito è 10.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "MODEL_ID", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "OUTPUT_URI" } }, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorCount": "0" }, "startingReplicaCount": STARTING_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": bq://12345 } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 }, "manualBatchTuningParameters": { "batchSize": 4 }, "generateExplanation": false, "outputInfo": { "bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04 } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Java Vertex AI documentazione di riferimento.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nel seguente esempio, sostituisci INSTANCES_FORMAT e PREDICTIONS_FORMAT con "bigquery". Per sapere come sostituire l'altro segnaposto, vedi la sezione "REST e Scheda CMD LINE" di questa sezione.Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Nell'esempio seguente, imposta "instances_format" e "predictions_format" in "bigquery". Per scoprire come impostare gli altri parametri, consulta REST e Scheda CMD LINE" di questa sezione.API: Cloud Storage
REST
Puoi utilizzare batchPredictionJobs.create per richiedere una previsione batch.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui è archiviato il modello e viene eseguito il job di previsione batch. Per
ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato del job batch
- MODEL_ID: l'ID del modello da utilizzare per fare previsioni
-
URI: percorsi (URI) dei bucket Cloud Storage contenenti i dati di addestramento.
Può essercene più di uno. Ogni URI ha il seguente formato:
gs://bucketName/pathToFileName
-
OUTPUT_URI_PREFIX: percorso di una destinazione Cloud Storage in cui
vengono scritte le previsioni. Vertex AI scrive le previsioni batch in un campo
sottodirectory di questo percorso. Imposta questo valore su una stringa con il formato seguente:
gs://bucketName/pathToOutputDirectory
- MACHINE_TYPE: le risorse della macchina da utilizzare per questo job di previsione batch. Scopri di più.
- STARTING_REPLICA_COUNT: il numero iniziale di nodi per questo job di previsione batch. Il conteggio dei nodi può essere aumentato o diminuito in base al carico, fino al numero massimo di nodi, ma non scenderanno mai al di sotto di questo numero.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo job di previsione batch. La il numero di nodi può essere aumentato o diminuito in base al carico, ma non supererà mai massimo. (Facoltativo) Il valore predefinito è 10.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "MODEL_ID", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ URI1,... ] }, }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorCount": "0" }, "startingReplicaCount": STARTING_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT__ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ "gs://bp_bucket/reg_mode_test" ] } }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 }, "manualBatchTuningParameters": { "batchSize": 4 } "outputInfo": { "gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z" } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Recuperare i risultati delle previsioni batch
Vertex AI invia l'output delle previsioni batch alla destinazione specificato, che può essere BigQuery o Cloud Storage.
BigQuery
Set di dati di output
Se utilizzi BigQuery, l'output della previsione batch viene archiviato in un set di dati di output. Se avessi fornito su Vertex AI, il nome del set di dati (BQ_DATASET_NAME) è il nome che hai fornito in precedenza. Se non hai fornito un set di dati di output, Vertex AI ne ha creato uno per te. Puoi trovare il nome (BQ_DATASET_NAME) con i seguenti passaggi:
- Nella console Google Cloud, vai alla pagina Previsioni batch di Vertex AI.
- Seleziona la previsione che hai creato.
-
Il set di dati di output si trova in Località esportazione. Il nome del set di dati è
formattato come segue:
prediction_MODEL_NAME_TIMESTAMP
Il set di dati di output contiene una o più delle seguenti tre tabelle di output:
-
Tabella delle previsioni
Questa tabella contiene una riga per ogni riga dei dati di input in cui è stata richiesta la previsione (ovvero, dove TARGET_COLUMN_NAME = null).
-
Tabella degli errori
Questa tabella contiene una riga per ogni errore non critico riscontrato durante la previsione batch. Ogni errore non critico corrisponde a una riga nei dati di input per i quali Vertex AI non ha potuto restituire una previsione.
Tabella delle previsioni
Il nome della tabella (BQ_PREDICTIONS_TABLE_NAME) è formato da
aggiungendo "predictions_" con il timestamp della previsione batch
job avviato: predictions_TIMESTAMP
Per recuperare le previsioni, vai alla pagina BigQuery.
Il formato della query dipende dal tipo di modello:Classificazione:
SELECT predicted_TARGET_COLUMN_NAME.classes AS classes, predicted_TARGET_COLUMN_NAME.scores AS scores FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
classes
è l'elenco delle potenziali classi, mentre scores
è l'elenco
i punteggi di confidenza corrispondenti.
Regressione:
SELECT predicted_TARGET_COLUMN_NAME.value FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
Se il modello utilizza l'inferenza probabilistica,
predicted_TARGET_COLUMN_NAME.value
contiene il ridotto a icona del
obiettivo di ottimizzazione. Ad esempio, se il tuo obiettivo di ottimizzazione è minimize-rmse
,
predicted_TARGET_COLUMN_NAME.value
contiene il valore medio. Se è
minimize-mae
, predicted_TARGET_COLUMN_NAME.value
contiene il valore mediano.
Se il tuo modello utilizza l'inferenza probabilistica con i quantili, Vertex AI fornisce valori dei quantili e previsioni oltre al minimo obiettivo di ottimizzazione. I valori quantili vengono impostati durante l'addestramento del modello. Quantile sono i valori di previsione associati ai valori dei quantili.
Puoi trovare l'importanza delle caratteristiche nelle previsioni . Per accedere all'importanza di una caratteristica BQ_FEATURE_NAME, esegui questa query:
SELECT predicted_TARGET_COLUMN_NAME.feature_importance.BQ_FEATURE_NAME FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
Tabella degli errori
Il nome della tabella (BQ_ERRORS_TABLE_NAME) è formato da aggiungendoerrors_
con il timestamp corrispondente alla data del job di previsione batch
data di inizio: errors_TIMESTAMP
Per recuperare la tabella di convalida degli errori:
-
Nella console, vai alla pagina BigQuery.
-
Esegui questa query:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
- errors_TARGET_COLUMN_NAME.code
- errors_TARGET_COLUMN_NAME.message
Cloud Storage
Se hai specificato Cloud Storage come destinazione di output, i risultati della richiesta di previsione batch vengono restituiti come oggetti CSV in un nel bucket specificato. Il nome della cartella è il nome del tuo modello, preceduto da "previsione-" con il timestamp che indica quando il job di previsione batch è stato avviato. Puoi trovare l'API Cloud Storage nome cartella nella scheda Previsioni batch del tuo modello.
La cartella Cloud Storage contiene due tipi di oggetti:-
Oggetti di previsione
Gli oggetti della previsione sono denominati "predictions_1.csv", "predictions_2.csv", e così via. Contengono una riga di intestazione con i nomi delle colonne e una riga per per ogni previsione. Negli oggetti di previsione, Vertex AI restituisce i dati di previsione e crea uno altre nuove colonne per i risultati delle previsioni in base al tipo di modello:
-
Classificazione: per ogni valore potenziale della colonna target, un valore
colonna denominata
TARGET_COLUMN_NAME_VALUE_score
viene aggiunto ai risultati. Questa colonna contiene il punteggio, o la confidenza per quel valore. -
Regressione: il valore previsto per la riga viene restituito in una colonna.
denominato
predicted_TARGET_COLUMN_NAME
. La previsione non viene restituito per l'output CSV.
-
Classificazione: per ogni valore potenziale della colonna target, un valore
colonna denominata
-
Oggetti di errore
Gli oggetti di errore sono denominati "errors_1.csv", "errors_2.csv" e così via. Contengono una riga di intestazione e una riga per ogni riga nei dati di input che Vertex AI non ha potuto restituire una previsione (ad esempio, se un caratteristica non nullo era nullo) per.
Nota: se i risultati sono grandi, vengono suddivisi in più oggetti.
L'importanza delle caratteristiche non è disponibile per i risultati delle previsioni batch restituiti in Cloud Storage.
Interpretare i risultati delle previsioni
Classificazione
I modelli di classificazione restituiscono un punteggio di confidenza.
Il punteggio di confidenza indica il livello di associazione di ogni modello una classe o un'etichetta con un elemento di test. Più alto è il numero, più alto è il valore con la certezza che l'etichetta deve essere applicata all'elemento. Sei tu a decidere quanto in alto il punteggio di confidenza deve consentire l'accettazione dei risultati del modello.
Regressione
I modelli di regressione restituiscono un valore di previsione.
Se il tuo modello utilizza l'inferenza probabilistica, il campo value
contiene il parametro
minimizzando l'obiettivo di ottimizzazione. Ad esempio, se la tua ottimizzazione
l'obiettivo è minimize-rmse
, il campo value
contiene il valore medio.
Se è minimize-mae
, il campo value
contiene il valore mediano.
Se il tuo modello utilizza l'inferenza probabilistica con i quantili, Vertex AI fornisce valori dei quantili e previsioni oltre al minimo obiettivo di ottimizzazione. I valori quantili vengono impostati durante l'addestramento del modello. Quantile sono i valori di previsione associati ai valori dei quantili.
Per i risultati delle previsioni batch archiviati in BigQuery, TabNet fornisce l'interpretabilità intrinseca del modello fornendo agli utenti insight le funzionalità che ha usato per prendere una decisione. L'algoritmo utilizza attenzione, che impara a migliorare selettivamente l'influenza alcune caratteristiche, riducendo al tempo stesso l'influenza di altre attraverso un media. Per una determinata decisione, TabNet decide in modo graduale come molta importanza da attribuire a ciascuna caratteristica. Combina poi tutti i passaggi per creare una previsione finale. L'attenzione è moltiplicativa, in cui i valori più grandi indicano che la caratteristica ha svolto un ruolo più ampio nella previsione e un valore 0 indica che la caratteristica non ha avuto alcun ruolo in quella decisione. Poiché TabNet utilizza più passaggi decisionali, l'attenzione rivolta alle caratteristiche in tutti i passaggi vengono combinati linearmente dopo una scalabilità appropriata. Questo modello lineare combinazione in tutti i passaggi decisionali di TabNet è la caratteristica totale l'importanza offerta da TabNet.
Passaggi successivi
- Scopri come esportare il modello.
- Scopri di più sui prezzi per le previsioni batch.