Panoramica
Prima di pubblicare l'inferenza online con endpoint privati, devi configurare l'accesso privato ai servizi per creare connessioni di peering tra la rete e Agent Platform. Se hai già configurato questa opzione, puoi utilizzare le connessioni di peering esistenti.
Questa guida illustra le seguenti attività:
- Verificare lo stato delle connessioni di peering esistenti.
- Verificare che le API necessarie siano abilitate.
- Creare un endpoint privato.
- Eseguire il deployment di un modello in un endpoint privato.
- Supporta un solo modello per endpoint privato. Questo è diverso da un endpoint pubblico di Agent Platform in cui puoi suddividere il traffico tra più modelli sottoposti a deployment in un unico endpoint.
- L'endpoint privato supporta i modelli tabulari AutoML e quelli addestrati personalizzati.
- Inviare un'inferenza a un endpoint privato.
- Pulire le risorse
Controllare lo stato delle connessioni di peering esistenti
Se hai connessioni di peering esistenti che utilizzi con Agent Platform, 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.
Abilitare le API necessarie
gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com
Creare 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 di rete completo:
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
Se crei l'endpoint senza specificare una rete, crei un endpoint pubblico.
Limitazioni degli endpoint privati
Tieni presente 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 modello in più endpoint privati e suddividendo il traffico tra gli URL di inferenza risultanti per ogni endpoint privato.
- Gli endpoint privati non supportano SSL/TLS.
- Per abilitare la registrazione 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 rete, contatta
vertex-ai-feedback@google.com. - È vivamente consigliato di riprovare lato client in caso di errori recuperabili. Questi possono includere i seguenti errori:
- Risposta vuota (codice di errore HTTP
0), probabilmente a causa di una connessione interrotta temporanea. - Codici di errore HTTP
5xxche indicano che il servizio potrebbe non essere disponibile temporaneamente.
- Risposta vuota (codice di errore HTTP
- Per il codice di errore HTTP
429che indica che il sistema è sovraccarico, valuta la possibilità di rallentare il traffico per mitigare il problema anziché riprovare. - Le richieste di inferenza dai servizi di previsione (come
PredictionServiceClientePredictionServiceClient) non sono supportate. - L'endpoint di accesso privato ai servizi non supporta i modelli di base ottimizzati. Per un foundation model ottimizzato, esegui il deployment utilizzando un endpoint Private Service Connect.
Monitorare 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 una query sulle seguenti metriche in Cloud Monitoring:
aiplatform.googleapis.com/prediction/online/private/response_countIl numero di risposte di inferenza. Puoi filtrare questa metrica in base a
deployed_model_ido al codice di risposta HTTP.aiplatform.googleapis.com/prediction/online/private/prediction_latenciesLa latenza della richiesta di inferenza in millisecondi. Puoi filtrare questa metrica in base a
deployed_model_id, solo per le richieste riuscite.
Scopri come selezionare, eseguire query e visualizzare queste metriche in Esplora metriche.
Eseguire 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, vedi
Importare modelli in Agent Platform.
Per eseguire il deployment di un modello in un endpoint privato, consulta la guida al deployment dei modelli. Oltre alla suddivisione del traffico e all'abilitazione manuale della registrazione degli accessi, puoi utilizzare una qualsiasi delle altre opzioni disponibili per il deployment di modelli addestrati personalizzati. Consulta le limitazioni degli endpoint privati per scoprire di più sulle differenze rispetto agli endpoint pubblici.
Dopo aver eseguito il deployment dell'endpoint, puoi recuperare l'URI di inferenza dai metadati dell'endpoint privato.
Se hai il nome visualizzato dell'endpoint privato, esegui questo comando per recuperare l'ID endpoint:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=REGION \ --filter=displayName:ENDPOINT_DISPLAY_NAME \ --format="value(ENDPOINT_ID.scope())")In caso contrario, per visualizzare l'ID endpoint e il nome visualizzato di tutti gli endpoint, esegui il seguente comando:
gcloud ai endpoints list --region=REGIONInfine, per recuperare l'URI di inferenza, esegui il seguente comando:
gcloud beta ai endpoints describe ENDPOINT_ID \ --region=REGION \ --format="value(deployedModels.privateEndpoints.predictHttpUri)"
Formato dell'URI di inferenza privato
L'URI di inferenza è diverso per gli endpoint privati rispetto agli endpoint pubblici di Agent Platform:
http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
Se scegli di annullare il deployment del modello attuale e di rieseguirne il deployment con un nuovo modello, il nome di dominio viene riutilizzato, ma il percorso include un ID modello sottoposto a deployment diverso.
Inviare un'inferenza a un endpoint privato
Crea un'istanza Compute Engine nella rete VPC. Assicurati di creare l' istanza nella stessa rete VPC di cui hai eseguito il peering con Agent Platform.
Accedi all'istanza Compute Engine tramite SSH e installa il client di inferenza, se applicabile. In caso contrario, puoi utilizzare curl.
Quando esegui la previsione, utilizza l'URL di inferenza ottenuto dal deployment del modello. In questo esempio, invii la richiesta dal client di inferenza 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:predictIn questa richiesta di esempio, PATH_TO_JSON_FILE è il percorso della richiesta di inferenza, salvata come file JSON. Ad esempio,
example-request.json.
Liberare spazio
Puoi annullare il deployment dei modelli ed eliminare gli endpoint privati nello stesso modo in cui esegui queste operazioni per i modelli e gli endpoint pubblici.
Esempio: testare gli endpoint privati in un VPC condiviso
Questo esempio utilizza due Google Cloud progetti con una rete VPC condiviso:
- Il progetto host ospita la rete VPC condiviso.
- Il progetto client ospita un'istanza Compute Engine in cui esegui un client di inferenza, ad esempio curl, o il tuo client REST nell'istanza Compute Engine, per inviare richieste di inferenza.
Quando crei l'istanza Compute Engine nel progetto client, questa deve trovarsi all'interno della subnet personalizzata nella rete VPC condiviso del progetto host e nella stessa regione in cui viene eseguito il deployment del modello.
Crea le connessioni di peering per l'accesso privato ai servizi nel progetto host. 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_IDCrea l'endpoint nel progetto client utilizzando il nome di 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_IDInvia richieste di inferenza utilizzando il client di inferenza all'interno del progetto client.