Un'inferenza online è una richiesta sincrona, a differenza di un'inferenza batch, che è una richiesta asincrona. Utilizza le inferenze online quando effettui richieste in risposta all'input dell'applicazione o in altre situazioni in cui è necessaria un'inferenza tempestiva.
Devi eseguire il deployment di un modello in un endpoint prima di poterlo utilizzare per fornire inferenze online. Il deployment di un modello associa risorse fisiche al modello in modo che possa fornire inferenze online a bassa latenza.
Gli argomenti trattati sono:
- Esegui il deployment di un modello in un endpoint.
- Ottieni un'inferenza online utilizzando il modello di cui è stato eseguito il deployment
Prima di iniziare
Prima di poter ottenere inferenze online, devi prima addestrare un modello.
Esegui il deployment di un modello in un endpoint
Puoi eseguire il deployment di più modelli in un endpoint e di un modello in più endpoint. Per saperne di più sulle opzioni e sui casi d'uso per il deployment dei modelli, consulta Informazioni sul deployment dei modelli.
Utilizza uno dei seguenti metodi per eseguire il deployment di un modello:
Console Google Cloud
Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Modelli.
Fai clic sul nome del modello che vuoi eseguire il deployment per aprire la relativa pagina dei dettagli.
Seleziona la scheda Deployment e test.
Se il modello è già stato sottoposto a deployment in uno o più endpoint, questi sono elencati nella sezione Esegui il deployment del modello.
Fai clic su Esegui il deployment su endpoint.
Nella pagina Definisci il tuo endpoint, configura quanto segue:
Puoi scegliere di eseguire il deployment del modello su un endpoint nuovo o esistente.
- Per eseguire il deployment del modello su un nuovo endpoint, seleziona Crea nuovo endpoint e fornisci un nome per il nuovo endpoint.
- Per eseguire il deployment del modello su un endpoint esistente, seleziona Aggiungi a endpoint esistente e seleziona l'endpoint dall'elenco a discesa.
- Puoi aggiungere più di un modello a un endpoint e puoi aggiungere un modello a più di un endpoint. Scopri di più.
Fai clic su Continua.
Nella pagina Impostazioni modello, configura quanto segue:
-
Se stai eseguendo il deployment del modello in un nuovo endpoint, accetta 100 per la suddivisione del traffico. Se esegui il deployment del modello in un endpoint esistente in cui sono stati eseguiti il deployment di uno o più modelli, devi aggiornare la percentuale di Suddivisione traffico per il modello di cui stai eseguendo il deployment e per i modelli di cui è già stato eseguito il deployment, in modo che la somma di tutte le percentuali sia pari al 100%.
-
Inserisci il numero minimo di nodi di computing che vuoi fornire per il tuo modello.
Si tratta del numero di nodi disponibili per questo modello in qualsiasi momento. Ti vengono addebitati i nodi utilizzati, sia per gestire il carico di inferenza sia per i nodi di standby (minimi), anche senza traffico di inferenza. Consulta la pagina dei prezzi.
-
Seleziona il tipo di macchina.
Risorse della macchina più grandi aumenteranno le prestazioni di inferenza e i costi.
-
Scopri come modificare le impostazioni predefinite per la registrazione delle inferenze.
-
Fai clic su Continua.
-
Nella pagina Monitoraggio del modello, fai clic su Continua.
Nella pagina Obiettivi di monitoraggio, configura quanto segue:
- Inserisci la posizione dei dati di addestramento.
- Inserisci il nome della colonna di destinazione.
Fai clic su Esegui il deployment per eseguire il deployment del modello sull'endpoint.
API
Quando esegui il deployment di un modello utilizzando l'API Vertex AI, completi i seguenti passaggi:
- Crea un endpoint, se necessario.
- Recupera l'ID endpoint.
- Esegui il deployment del modello sull'endpoint.
Creazione di un endpoint
Se esegui il deployment di un modello in un endpoint esistente, puoi saltare questo passaggio.
gcloud
L'esempio seguente utilizza il comando gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
ENDPOINT_NAME: Il nome visualizzato dell'endpoint.
La creazione dell'endpoint potrebbe richiedere alcuni secondi.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la tua regione.
- PROJECT_ID: il tuo ID progetto
- ENDPOINT_NAME: Il nome visualizzato dell'endpoint.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Corpo JSON della richiesta:
{ "display_name": "ENDPOINT_NAME" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recupera l'ID endpoint
Per eseguire il deployment del modello, devi disporre dell'ID endpoint.
gcloud
L'esempio seguente utilizza il comando gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
ENDPOINT_NAME: Il nome visualizzato dell'endpoint.
Prendi nota del numero visualizzato nella colonna
ENDPOINT_ID
. Utilizza questo ID nel passaggio successivo.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
- PROJECT_ID: .
- ENDPOINT_NAME: Il nome visualizzato dell'endpoint.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Esegui il deployment del modello
Seleziona la scheda di seguito per la tua lingua o il tuo ambiente:
gcloud
I seguenti esempi utilizzano il comando gcloud ai endpoints deploy-model
.
L'esempio seguente esegue il deployment di un Model
in un Endpoint
senza utilizzare GPU
per accelerare la pubblicazione delle previsioni e senza dividere il traffico tra più risorse
DeployedModel
:
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
- MODEL_ID: L'ID del modello da implementare.
-
DEPLOYED_MODEL_NAME: un nome per
DeployedModel
. Puoi utilizzare il nome visualizzato diModel
anche perDeployedModel
. -
MACHINE_TYPE: (Facoltativo) Le risorse macchina utilizzate per ogni nodo di questo
deployment. L'impostazione predefinita è
n1-standard-2
. Scopri di più sui tipi di macchina. -
MIN_REPLICA_COUNT: Il numero minimo di nodi per questo deployment.
Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza,
fino al numero massimo di nodi e mai al di sotto di questo numero di nodi.
Questo valore deve essere maggiore o uguale a 1. Se il flag
--min-replica-count
viene omesso, il valore predefinito è 1. -
MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment.
Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza,
fino a questo numero di nodi e mai al di sotto del numero minimo di nodi.
Se ometti il flag
--max-replica-count
, il numero massimo di nodi viene impostato sul valore di--min-replica-count
.
Esegui il comando gcloud ai endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Suddivisione del traffico
Il flag --traffic-split=0=100
negli esempi precedenti invia il 100% del traffico di previsione
che Endpoint
riceve al nuovo DeployedModel
, che è
rappresentato dall'ID temporaneo 0
. Se il tuo Endpoint
ha già altre risorse DeployedModel
, puoi dividere il traffico tra le nuove DeployedModel
e quelle precedenti.
Ad esempio, per inviare il 20% del traffico al nuovo DeployedModel
e l'80% a uno precedente,
esegui questo comando.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- OLD_DEPLOYED_MODEL_ID: l'ID dell'
DeployedModel
esistente.
Esegui il comando gcloud ai endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Utilizzi il metodo endpoints.predict per richiedere un'inferenza online.
Esegui il deployment del modello.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
- PROJECT_ID: .
- ENDPOINT_ID: l'ID dell'endpoint.
- MODEL_ID: L'ID del modello da implementare.
-
DEPLOYED_MODEL_NAME: un nome per
DeployedModel
. Puoi utilizzare il nome visualizzato diModel
anche perDeployedModel
. -
MACHINE_TYPE: (Facoltativo) Le risorse macchina utilizzate per ogni nodo di questo
deployment. L'impostazione predefinita è
n1-standard-2
. Scopri di più sui tipi di macchina. - ACCELERATOR_TYPE: Il tipo di acceleratore da collegare alla macchina. Facoltativo se ACCELERATOR_COUNT non è specificato o è zero. Sconsigliato per modelli AutoML o modelli con addestramento personalizzato che utilizzano immagini non GPU. Scopri di più.
- ACCELERATOR_COUNT: il numero di acceleratori da utilizzare per ogni replica. Facoltativo. Deve essere zero o non specificato per i modelli AutoML o i modelli con addestramento personalizzato che utilizzano immagini non GPU.
- MIN_REPLICA_COUNT: Il numero minimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza, fino al numero massimo di nodi e mai al di sotto di questo numero di nodi. Questo valore deve essere maggiore o uguale a 1.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza, fino a questo numero di nodi e mai al di sotto del numero minimo di nodi.
- REQUIRED_REPLICA_COUNT: (Facoltativo) Il numero richiesto di nodi per contrassegnare questo deployment come riuscito. Deve essere maggiore o uguale a 1 e minore o uguale al numero minimo di nodi. Se non è specificato, il valore predefinito è il numero minimo di nodi.
- TRAFFIC_SPLIT_THIS_MODEL: la percentuale di traffico di previsione verso questo endpoint da indirizzare al modello di cui viene eseguito il deployment con questa operazione. Il valore predefinito è 100. La somma di tutte le percentuali di traffico deve essere pari a 100. Scopri di più sulle suddivisioni del traffico.
- DEPLOYED_MODEL_ID_N: (Facoltativo) Se su questo endpoint sono stati implementati altri modelli, devi aggiornare le percentuali di suddivisione del traffico in modo che la somma di tutte le percentuali sia pari a 100.
- TRAFFIC_SPLIT_MODEL_N: Il valore percentuale di suddivisione del traffico per la chiave dell'ID modello di cui è stato eseguito il deployment.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON della richiesta:
{ "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT, "requiredReplicaCount": REQUIRED_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Scopri come modificare le impostazioni predefinite per la registrazione delle inferenze.
Recupero dello stato dell'operazione
Alcune richieste avviano operazioni a lunga esecuzione che richiedono tempo per essere completate. Queste richieste restituiscono un nome dell'operazione, che puoi utilizzare per visualizzare lo stato o annullare l'operazione. Vertex AI fornisce metodi helper per effettuare chiamate alle operazioni di lunga durata. Per ulteriori informazioni, consulta Utilizzo di operazioni a lunga esecuzione.
Ottenere un'inferenza online utilizzando il modello di cui è stato eseguito il deployment
Per eseguire un'inferenza online, invia uno o più elementi di test a un modello per l'analisi e il modello restituisce risultati basati sull'obiettivo del modello. Utilizza la console Google Cloud o l'API Vertex AI per richiedere un'inferenza online.
Console Google Cloud
Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Modelli.
Nell'elenco dei modelli, fai clic sul nome del modello da cui richiedere le inferenze.
Seleziona la scheda Deployment e test.
Nella sezione Testa il tuo modello, aggiungi elementi di test per richiedere un'inferenza. I dati di inferenza di base vengono compilati automaticamente oppure puoi inserire i tuoi dati di inferenza e fare clic su Prevedi.
Al termine dell'inferenza, Vertex AI restituisce i risultati nella console.
API: classificazione
gcloud
-
Crea un file denominato
request.json
con i seguenti contenuti:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Sostituisci quanto segue:
-
PREDICTION_DATA_ROW: un oggetto JSON con le chiavi come nomi delle funzionalità e i valori come i valori delle funzionalità corrispondenti. Ad esempio, per un insieme di dati con un numero, un array di stringhe e una categoria, la riga di dati potrebbe essere simile alla seguente richiesta di esempio:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
È necessario fornire un valore per ogni caratteristica inclusa nell'addestramento. Il formato dei dati utilizzati per la previsione deve corrispondere al formato utilizzato per l'addestramento. Per informazioni dettagliate, consulta Formato dei dati per le previsioni.
-
-
Esegui questo comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Sostituisci quanto segue:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
REST
Utilizzi il metodo endpoints.predict per richiedere un'inferenza online.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
LOCATION_ID: la regione in cui si trova l'endpoint. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto
- ENDPOINT_ID: l'ID dell'endpoint.
-
PREDICTION_DATA_ROW: un oggetto JSON con le chiavi come nomi delle funzionalità e i valori come i valori delle funzionalità corrispondenti. Ad esempio, per un insieme di dati con un numero, un array di stringhe e una categoria, la riga di dati potrebbe essere simile alla seguente richiesta di esempio:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
È necessario fornire un valore per ogni caratteristica inclusa nell'addestramento. Il formato dei dati utilizzati per la previsione deve corrispondere al formato utilizzato per l'addestramento. Per informazioni dettagliate, consulta Formato dei dati per le previsioni.
- DEPLOYED_MODEL_ID: output del metodo
predict
. L'ID del modello utilizzato per generare l'inferenza.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Corpo JSON della richiesta:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Per inviare la richiesta, scegli una di queste 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/endpoints/ENDPOINT_ID:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "predictions": [ { "scores": [ 0.96771615743637085, 0.032283786684274673 ], "classes": [ "0", "1" ] } ] "deployedModelId": "2429510197" }
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
API: Regressione
gcloud
-
Crea un file denominato `request.json` con i seguenti contenuti:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Sostituisci quanto segue:
-
PREDICTION_DATA_ROW: un oggetto JSON con le chiavi come nomi delle funzionalità e i valori come i valori delle funzionalità corrispondenti. Ad esempio, per un set di dati con un numero, un array di numeri e una categoria, la riga di dati potrebbe essere simile alla seguente richiesta di esempio:
"age":3.6, "sq_ft":5392, "code": "90331"
È necessario fornire un valore per ogni caratteristica inclusa nell'addestramento. Il formato dei dati utilizzati per la previsione deve corrispondere al formato utilizzato per l'addestramento. Per informazioni dettagliate, consulta Formato dei dati per le previsioni.
-
-
Esegui questo comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Sostituisci quanto segue:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
REST
Utilizzi il metodo endpoints.predict per richiedere un'inferenza online.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
LOCATION_ID: la regione in cui si trova l'endpoint. Ad esempio,
us-central1
. - PROJECT_ID: .
- ENDPOINT_ID: l'ID dell'endpoint.
-
PREDICTION_DATA_ROW: un oggetto JSON con le chiavi come nomi delle funzionalità e i valori come i valori delle funzionalità corrispondenti. Ad esempio, per un set di dati con un numero, un array di numeri e una categoria, la riga di dati potrebbe essere simile alla seguente richiesta di esempio:
"age":3.6, "sq_ft":5392, "code": "90331"
È necessario fornire un valore per ogni caratteristica inclusa nell'addestramento. Il formato dei dati utilizzati per la previsione deve corrispondere al formato utilizzato per l'addestramento. Per informazioni dettagliate, consulta Formato dei dati per le previsioni.
- DEPLOYED_MODEL_ID: output del metodo
predict
. L'ID del modello utilizzato per generare l'inferenza.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Corpo JSON della richiesta:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Per inviare la richiesta, scegli una di queste 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/endpoints/ENDPOINT_ID:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "predictions": [ [ { "value": 65.14233 } ] ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Interpretare i risultati della previsione
Classificazione
I modelli di classificazione restituiscono un punteggio di affidabilità.
Il punteggio di confidenza indica la forza con cui il modello associa ogni classe o etichetta a un elemento di test. Più alto è il numero, maggiore è la certezza del modello che l'etichetta deve essere applicata a quell'elemento. Decidi tu quanto deve essere alto il punteggio di affidabilità per accettare i risultati del modello.
Regressione
I modelli di regressione restituiscono un valore di inferenza.
Se il modello utilizza l'inferenza probabilistica, il campo value
contiene il
minimizzatore dell'obiettivo di ottimizzazione. Ad esempio, se l'obiettivo di ottimizzazione
è minimize-rmse
, il campo value
contiene il valore medio.
Se è minimize-mae
, il campo value
contiene il valore mediano.
Se il modello utilizza l'inferenza probabilistica con quantili, Vertex AI fornisce valori e inferenze dei quantili, oltre al minimizzatore dell'obiettivo di ottimizzazione. I valori dei quantili vengono impostati durante l'addestramento del modello. Le inferenze quantile sono i valori di inferenza associati ai valori quantile.
TabNet fornisce un'interpretabilità intrinseca del modello, offrendo agli utenti informazioni sulle funzionalità utilizzate per prendere la decisione. L'algoritmo utilizza l'attenzione, che impara a migliorare selettivamente l'influenza di alcune funzionalità, riducendo al contempo l'influenza di altre tramite una media ponderata. Per una determinata decisione, TabNet decide passo dopo passo l'importanza da attribuire a ogni funzionalità. Combina poi ciascuno dei passaggi per creare una previsione finale. L'attenzione è moltiplicativa, dove valori più grandi indicano che la funzionalità ha svolto un ruolo più importante nella previsione e un valore di zero significa che la funzionalità non ha svolto alcun ruolo in questa decisione. Poiché TabNet utilizza più fasi decisionali, l'attenzione posta sulle funzionalità in tutte le fasi viene combinata linearmente dopo un ridimensionamento appropriato. Questa combinazione lineare in tutti i passaggi decisionali di TabNet è l'importanza totale della funzionalità che TabNet ti fornisce.
Output di esempio per le inferenze
Il payload restituito per un'inferenza online con importanza delle caratteristiche da un modello di regressione è simile a questo esempio.
{
"predictions":[
{
"value":0.3723912537097931,
"feature_importance":{
"MSSubClass":0.12,
"MSZoning":0.33,
"LotFrontage":0.27,
"LotArea":0.06,
...
}
}
]
}
Passaggi successivi
- Scopri come esportare il modello.
- Scopri di più sui prezzi per le inferenze online.