Utilizzare gli endpoint di accesso ai servizi privati per l'inferenza online

L'utilizzo di endpoint di accesso privato ai servizi per pubblicare inferenze online con Vertex AI fornisce una connessione sicura e a bassa latenza al servizio di inferenza online di Vertex AI. Questa guida mostra come configurare l'accesso privato ai servizi su Vertex AI utilizzando il peering di rete VPC per eseguire il peering della tua rete con il servizio di inferenza online di Vertex AI.

Panoramica

Prima di eseguire l'inferenza online con endpoint privati, devi configurare l'accesso privato ai servizi per creare connessioni di peering tra la tua rete e Vertex AI. Se hai già configurato questa impostazione, puoi utilizzare le connessioni di peering esistenti.

Questa guida illustra le seguenti attività:

  • Verifica dello stato delle connessioni di peering esistenti.
  • Verifica che le API necessarie siano abilitate.
  • Creazione di un endpoint privato.
  • Deployment di un modello in un endpoint privato.
    • Supporta un solo modello per endpoint privato. Questo è 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 AutoML e con addestramento personalizzato.
  • Invio di un'inferenza a un endpoint privato.
  • Pulizia delle risorse

Controllare lo stato delle connessioni di peering esistenti

Se hai connessioni di peering esistenti 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 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 presenti le seguenti limitazioni per gli endpoint privati:

  • Gli endpoint privati non supportano la suddivisione del traffico. Come soluzione alternativa, puoi creare la suddivisione del traffico manualmente 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 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 progetto. Google CloudSe vuoi passare a un altro network, contatta vertex-ai-feedback@google.com.
  • È consigliabile eseguire nuovi tentativi 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 temporaneamente.
    • Codici di errore HTTP 5xx che indicano che il servizio potrebbe non essere temporaneamente disponibile.
  • Per il codice di errore HTTP 429 che indica che il sistema è sovraccarico, valuta la possibilità di rallentare il traffico per risolvere il problema anziché riprovare.
  • Le richieste di inferenza dai servizi di previsione (come PredictionServiceClient e PredictionServiceClient ) non sono supportate.
  • L'endpoint Private Service Access non supporta i foundation model ottimizzati. Per un modello di base ottimizzato, esegui il deployment utilizzando un endpoint di Private Service Connect.

Monitorare gli endpoint privati

Puoi utilizzare la dashboard delle metriche per esaminare 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 di inferenza. Puoi filtrare questa metrica in base a deployed_model_id o al codice di risposta HTTP.

  • aiplatform.googleapis.com/prediction/online/private/prediction_latencies

    La latenza della richiesta di inferenza in millisecondi. Puoi filtrare questa metrica per deployed_model_id, solo per le richieste andate a buon fine.

Scopri come selezionare, interrogare e visualizzare queste metriche in Esplora metriche.

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 saperne di più, consulta Importazione di modelli in Vertex AI.

  1. 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'attivazione manuale della registrazione degli accessi, puoi utilizzare qualsiasi altra opzione disponibile per il deployment di modelli con addestramento personalizzato. Consulta le limitazioni degli endpoint privati per scoprire di più sulle loro differenze rispetto agli endpoint pubblici.

  2. Dopo aver eseguito il deployment dell'endpoint, puoi ottenere l'URI di inferenza dai metadati dell'endpoint privato.

    1. Se hai il nome visualizzato dell'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())")
      

      In caso contrario, per visualizzare l'ID endpoint e il nome visualizzato di tutti gli endpoint, esegui questo comando:

      gcloud ai endpoints list --region=REGION
      
    2. Infine, per ottenere l'URI di inferenza, esegui questo comando:

      gcloud beta ai endpoints describe ENDPOINT_ID \
        --region=REGION \
        --format="value(deployedModels.privateEndpoints.predictHttpUri)"
      

Formato URI di inferenza privata

L'URI di inferenza ha un aspetto diverso per gli endpoint privati rispetto agli endpoint pubblici Vertex AI:

http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict

Se scegli di annullare il deployment del modello attuale ed eseguirne uno nuovo, il nome di dominio viene riutilizzato, ma il percorso include un ID modello di cui è stato eseguito il deployment diverso.

Inviare un'inferenza a un endpoint privato

  1. Crea un'istanza Compute Engine nella tua rete VPC. Assicurati di creare l'istanza nella stessa rete VPC di cui hai eseguito il peering con Vertex AI.

  2. Accedi alla tua istanza di Compute Engine tramite SSH e installa il client di inferenza, se applicabile. In caso contrario, puoi utilizzare curl.

  3. 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:predict
    

    In questa richiesta di esempio, PATH_TO_JSON_FILE è il percorso della richiesta di inferenza, 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 nello stesso modo in cui fai per i modelli e gli endpoint pubblici.

Esempio: testa gli endpoint privati nel 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.

  1. Crea le connessioni di peering per l'accesso privato ai servizi nel progetto host. Corsa 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
    
  2. Crea l'endpoint nel progetto client utilizzando il nome della rete del progetto host. Corsa 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
    
  3. Invia richieste di inferenza utilizzando il client di inferenza all'interno del progetto cliente.