L'utilizzo di endpoint privati per pubblicare le previsioni online con Vertex AI fornisce una connessione sicura e a bassa latenza al servizio di previsione online di Vertex AI. Questa guida mostra come configurare endpoint privati Vertex AI mediante il peering di rete VPC per eseguire il peering della tua rete con il servizio di previsione online di Vertex AI.
Panoramica
Prima di pubblicare previsioni online con endpoint privati, devi configurare l'accesso privato ai servizi per creare connessioni in peering tra la tua rete e Vertex AI. Se l'hai già configurata, puoi usare le connessioni in peering esistenti.
Questa guida illustra le seguenti attività:
- Verifica dello stato delle connessioni in peering esistenti.
- Verificare che le API necessarie siano abilitate.
- Creazione di un endpoint privato.
- Eseguire il deployment di un modello in un endpoint privato.
- Supporta un solo modello per endpoint privato. È diverso da un endpoint Vertex AI pubblico in cui puoi suddividere il traffico tra più modelli di cui è stato eseguito il deployment in un endpoint.
- L'endpoint privato supporta i modelli tabulari e con addestramento personalizzato AutoML.
- Invio di una previsione a un endpoint privato.
- Pulizia delle risorse
Controllare lo stato delle connessioni di peering esistenti
Se hai già connessioni di peering che utilizzi con Vertex AI, puoi elencarle per verificarne lo stato:
gcloud compute networks peerings list --network NETWORK_NAME
Dovresti vedere che lo stato delle connessioni di peering è ACTIVE
.
Scopri di più sulle connessioni di peering attive.
Abilita le API necessarie
gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com
Crea un endpoint privato
Per creare un endpoint privato, aggiungi il flag --network
quando crei un
endpoint utilizzando Google Cloud CLI:
gcloud beta ai endpoints create \
--display-name=ENDPOINT_DISPLAY_NAME \
--network=FULLY_QUALIFIED_NETWORK_NAME \
--region=REGION
Sostituisci NETWORK_NAME con il nome completo della rete:
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
Se crei l'endpoint senza specificare una rete, devi creare endpoint pubblico.
Limitazioni degli endpoint privati
Tieni presenti le seguenti limitazioni per gli endpoint privati:
- Gli endpoint privati non supportano la suddivisione del traffico. Come soluzione alternativa, puoi creare manualmente la suddivisione del traffico eseguendo il deployment del tuo modello in più endpoint privati e la suddivisione del traffico tra gli URL di previsione risultanti per ogni endpoint privato.
- Gli endpoint privati non supportano SSL/TLS.
- Per attivare il logging degli accessi su un endpoint privato, contatta vertex-ai-feedback@google.com.
- Puoi utilizzare una sola rete per tutti gli endpoint privati in un Google Cloud
progetto. Se vuoi passare a un'altra emittente,
contatta
vertex-ai-feedback@google.com
. - Ti consigliamo vivamente di eseguire nuovi tentativi lato client in caso di errori recuperabili. Questi possono
includono i seguenti errori:
- Risposta vuota (codice di errore HTTP
0
), probabilmente a causa di una connessione interrotta temporaneamente. - Codici di errore HTTP
5xx
che indicano che il servizio potrebbe non essere temporaneamente disponibile.
- Risposta vuota (codice di errore HTTP
- Per il codice di errore HTTP
429
che indica che il sistema è attualmente sovraccaricato, valuta la possibilità di rallentare il traffico per attenuare il problema anziché riprovare. - Le richieste di previsione da
PredictionServiceClient
nella libreria client Python di Vertex AI non sono supportate. - L'endpoint Private Service Access non supporta i modelli di base ottimizzati. Per un modello di base ottimizzato, esegui il deployment utilizzando un endpoint Private Service Connect.
Monitora gli endpoint privati
Puoi utilizzare la dashboard delle metriche per controllare la disponibilità e la latenza del traffico inviato a un endpoint privato.
Per personalizzare il monitoraggio, esegui query sulle seguenti metriche in Cloud Monitoring:
aiplatform.googleapis.com/prediction/online/private/response_count
Il numero di risposte alla previsione. Puoi filtrare questa metrica per
deployed_model_id
o codice di risposta HTTP.aiplatform.googleapis.com/prediction/online/private/prediction_latencies
Latenza della richiesta di previsione in millisecondi. Puoi filtrare questo metrica per
deployed_model_id
, solo per le richieste andate a buon fine.
Scopri come selezionare, eseguire query e visualizzare queste metriche in Metrics Explorer.
Esegui il deployment di un modello
Puoi importare un nuovo modello o eseguire il deployment di un modello esistente che hai già
caricato. Per caricare un nuovo modello, utilizza
gcloud ai models upload
Per ulteriori informazioni, consulta Importare modelli in Vertex AI.
Per eseguire il deployment di un modello su un endpoint privato, consulta la guida al deployment dei modelli. Oltre alla suddivisione del traffico e all'abilitazione manuale del logging degli accessi, puoi utilizzare qualsiasi altra opzione disponibile per il deployment di modelli con addestramento personalizzato. Per saperne di più, fai riferimento alle limitazioni degli endpoint privati in cosa differiscono dagli endpoint pubblici.
Dopo aver eseguito il deployment dell'endpoint, puoi recuperare l'URI di previsione dai metadati dell'endpoint privato.
Se hai il nome visualizzato del tuo endpoint privato, esegui questo comando per ottenere l'ID endpoint:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=REGION \ --filter=displayName:ENDPOINT_DISPLAY_NAME \ --format="value(ENDPOINT_ID.scope())")
Altrimenti, per vedere l'ID endpoint e il nome visualizzato di tutti i tuoi esegui questo comando:
gcloud ai endpoints list --region=REGION
Infine, per ottenere l'URI della previsione, esegui questo comando:
gcloud beta ai endpoints describe ENDPOINT_ID \ --region=REGION \ --format="value(deployedModels.privateEndpoints.predictHttpUri)"
Formato URI di previsione privato
L'URI di previsione ha un aspetto diverso per gli endpoint privati rispetto agli endpoint pubblici di Vertex AI:
http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
Se scegli di annullare il deployment del modello attuale e di eseguirlo nuovamente con uno nuovo, nome di dominio viene riutilizzato, ma il percorso include un ID modello di cui è stato eseguito il deployment diverso.
Invia una previsione a un endpoint privato
Crea un'istanza Compute Engine per la tua rete VPC. Assicurati di creare nella stessa rete VPC con cui hai eseguito il peering Vertex AI.
Accedi tramite SSH alla tua istanza Compute Engine e installa la tua previsione o cliente, se applicabile. Altrimenti, puoi usare curl.
Per fare una previsione, usa l'URL di previsione ottenuto dal deployment del modello. In questo esempio, invii la richiesta dal client di previsione nell'istanza Compute Engine nella stessa rete VPC:
curl -X POST -d@PATH_TO_JSON_FILE http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
In questa richiesta di esempio, PATH_TO_JSON_FILE è il percorso richiesta di previsione, salvata come file JSON. Ad esempio:
example-request.json
.
Esegui la pulizia delle risorse
Puoi annullare il deployment dei modelli ed eliminare gli endpoint privati come per i modelli e gli endpoint pubblici.
Esempio: testare gli endpoint privati nel VPC condiviso
Questo esempio utilizza due progetti Google Cloud con una rete VPC condivisa:
- Il progetto host ospita la rete VPC condivisa.
- Il progetto client ospita un'istanza di Compute Engine in cui esegui un client di previsione, come curl, o il tuo client REST l'istanza Compute Engine, per inviare richieste di previsione.
Quando crei l'istanza Compute Engine nel progetto client, deve trovarsi all'interno della subnet personalizzata nel VPC condiviso del progetto host e nella stessa regione in cui viene eseguito il deployment del modello.
Crea le connessioni in peering per l'accesso privato ai servizi nell'host progetto. Esegui
gcloud services vpc-peerings connect
:gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=HOST_SHARED_VPC_NAME \ --ranges=PREDICTION_RESERVED_RANGE_NAME \ --project=HOST_PROJECT_ID
Crea l'endpoint nel progetto client utilizzando il nome della rete del progetto host. Esegui
gcloud beta ai endpoints create
:gcloud beta ai endpoints create \ --display-name=ENDPOINT_DISPLAY_NAME \ --network=HOST_SHARED_VPC_NAME \ --region=REGION \ --project=CLIENT_PROJECT_ID
Invia richieste di previsione utilizzando il client di previsione all'interno del progetto del cliente.