Utilizzare le prenotazioni con la previsione

Per assicurarti che le risorse VM siano disponibili quando i job di previsione ne hanno bisogno, puoi utilizzare le prenotazioni Compute Engine. Le prenotazioni offrono un elevato livello di garanzia per l'ottenimento della capacità per le risorse Compute Engine. Per saperne di più, consulta Prenotazioni di Compute Engine risorse di zona.

Panoramica

I job di addestramento e previsione personalizzati di Vertex AI possono consumare prenotazioni Compute Engine. La prenotazione deve specificare un tipo di macchina A2 o A3. Se le risorse di queste prenotazioni sono idonee agli sconti per impegno di utilizzo (CUD), quando le VM consumano queste prenotazioni, riceverai le risorse a prezzi scontati. Consulta i CUD per le risorse riservate.

Limitazioni e requisiti

Tieni presente le limitazioni e i requisiti che seguono quando utilizzi Prenotazioni Compute Engine con Vertex AI:

  • Vertex AI può utilizzare solo prenotazioni con i seguenti di macchine:

    • A2
    • A3
  • L'utilizzo delle prenotazioni Compute Engine con Vertex AI è supportato solo per addestramento e previsione personalizzati.
  • Assicurati che sia disponibile una quota sufficiente per i tuoi job Vertex AI. Consulta Requisiti aggiuntivi per le prenotazioni condivise.
  • Per supportare gli aggiornamenti regolari dei deployment Vertex AI, ti consigliamo aumentando il conteggio delle VM di almeno una VM aggiuntiva per ogni deployment simultaneo.
  • Assicurati che i vincoli dei criteri dell'organizzazione consentano le prenotazioni condivise. Consulta Consentire e limitare la creazione e la modifica delle prenotazioni condivise da parte dei progetti.
  • Per poter utilizzare la prenotazione, le proprietà delle istanze VM devono corrispondere esattamente al tuo workload Vertex AI. Ad esempio, se un Il carico di lavoro Vertex AI ha un tipo di macchina a2-megagpu-16g, il tipo di macchina della prenotazione deve corrispondere. Consulta: Requisiti.
  • I seguenti servizi e funzionalità non sono supportati quando si utilizzano le prenotazioni di Compute Engine con la previsione di Vertex AI:

    • Chiavi di crittografia gestite dal cliente (CMEK)
    • Conformità al Federal Risk and Authorization Management Program (FedRAMP)

Fatturazione

Quando utilizzi le prenotazioni Compute Engine, ti viene addebitato quanto segue:

  • Prezzi di Compute Engine per le risorse di Compute Engine, inclusi eventuali sconti per impegno di utilizzo (CUD) applicabili. Consulta: Prezzi di Compute Engine.
  • Le tariffe per la gestione delle previsioni di Vertex AI, oltre alle all'utilizzo dell'infrastruttura. Consulta la pagina Prezzi della previsione.

Prima di iniziare

Consentire l'utilizzo di una prenotazione

Prima di utilizzare una prenotazione di VM A2 o A3, devi impostarne le criteri di condivisione per consentire a Vertex AI di utilizzare la prenotazione. A questo scopo, utilizza una delle seguenti metodi:

Consentire il consumo durante la creazione di una prenotazione

Durante la creazione di un progetto singolo oppure prenotazione condivisa di A2 o VM A3, puoi specificare di consentire a Vertex AI di utilizzare la prenotazione come segue:

  • Se utilizzi la console Google Cloud, nella sezione Servizi Google Cloud, seleziona Condividi prenotazione.
  • Se utilizzi Google Cloud CLI, includi Flag --reservation-sharing-policy impostato su ALLOW_ALL.
  • Se utilizzi l'API REST, includi serviceShareType impostato su ALLOW_ALL.

Consentire il consumo in una prenotazione esistente

Per consentire a Vertex AI di utilizzare una prenotazione esistente di VM A2 o A3, consulta Modificare il criterio di condivisione di una prenotazione.

Ottenere le previsioni utilizzando una prenotazione

Per utilizzare una prenotazione Compute Engine quando esegui il deployment di un modello. per ottenere previsioni, puoi usare l'API REST o l'SDK Vertex AI per Python.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto.
  • ENDPOINT_ID: l'ID dell'endpoint.
  • MODEL_ID: l'ID del modello da implementare.
  • DEPLOYED_MODEL_NAME: un nome per il DeployedModel. Puoi utilizzare il nome visualizzato del Model anche per DeployedModel.
  • MACHINE_TYPE: facoltativo. Le risorse macchina utilizzate per ogni nodo e deployment continuo. L'impostazione predefinita è n1-standard-2. Scopri di più sui tipi di macchine.
  • RESERVATION_AFFINITY_TYPE: deve essere ANY, SPECIFIC_RESERVATION o NONE.
    • ANY significa che le VM di customJob vengono automaticamente può utilizzare qualsiasi prenotazione con proprietà corrispondenti.
    • SPECIFIC_RESERVATION significa che le VM dei tuoi customJob può consumare solo una prenotazione che le VM target specificatamente per nome.
    • NONE significa che le VM di customJob non possono utilizzare su qualsiasi prenotazione. Specificare NONE ha lo stesso effetto dell'omissione di un la specifica dell'affinità di prenotazione.
  • RESERVATION_NAME: il nome della prenotazione.
  • MIN_REPLICA_COUNT: numero minimo di nodi per questo deployment. Il conteggio dei nodi può essere aumentato o diminuito in base al carico della previsione. fino al numero massimo di nodi e mai meno di questo numero. Questo valore deve essere maggiore o uguale a 1.
  • MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino a questo numero di nodi e mai inferiore al numero minimo di nodi.
  • TRAFFIC_SPLIT_THIS_MODEL: la percentuale del traffico di previsione verso questo endpoint da indirizzare al modello di cui viene eseguito il deployment con questa operazione. Il valore predefinito è 100. Tutto il traffico la somma delle percentuali deve essere 100. Scopri di più sulle suddivisioni del traffico.
  • DEPLOYED_MODEL_ID_N: facoltativo. Se in questo endpoint sono di cui è stato eseguito il deployment di altri modelli, devi aggiornare le relative percentuali di suddivisione del traffico in modo che tutte le percentuali sommate diano 100.
  • TRAFFIC_SPLIT_MODEL_N: il valore percentuale di suddivisione del traffico per l'ID del modello di cui è stato eseguito il deployment chiave.
  • PROJECT_NUMBER: il numero di progetto generato automaticamente del progetto

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel

Corpo JSON della richiesta:

{
  "deployedModel": {
    "model": "projects/PROJECT/locations/LOCATION_ID/models/MODEL_ID",
    "displayName": "DEPLOYED_MODEL_NAME",
    "dedicatedResources": {
      "machineSpec": {
        "machineType": "MACHINE_TYPE",
        "reservationAffinity": {
          "reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
          "key": "compute.googleapis.com/reservation-name",
          "values": [
            "projects/PROJECT_ID/reservations/RESERVATION_NAME"
          ]
        }
      },
      "minReplicaCount": MIN_REPLICA_COUNT,
      "maxReplicaCount": MAX_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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeployModelOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-19T17:53:16.502088Z",
      "updateTime": "2020-10-19T17:53:16.502088Z"
    }
  }
}

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.

Per utilizzare una prenotazione specifica:

endpoint5.deploy(
    model = model,
    deployed_model_display_name=DEPLOYED_NAME,
    traffic_split=TRAFFIC_SPLIT,
    machine_type="MACHINE_TYPE",
    accelerator_type="ACCELERATOR_TYPE",
    accelerator_count=ACCELERATOR_COUNT,
    reservation_affinity_type="SPECIFIC_RESERVATION",
    reservation_affinity_key="compute.googleapis.com/reservation-name",
    reservation_affinity_values=["projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"],
    min_replica_count=MIN_REPLICA_COUNT,
    max_replica_count=MAX_REPLICA_COUNT,
    sync=True
)

Per utilizzare qualsiasi prenotazione:

endpoint5.deploy(
    model = model,
    deployed_model_display_name=DEPLOYED_NAME,
    traffic_split=TRAFFIC_SPLIT,
    machine_type="MACHINE_TYPE",
    accelerator_type="ACCELERATOR_TYPE",
    accelerator_count=ACCELERATOR_COUNT,
    reservation_affinity_type="ANY_RESERVATION",
    min_replica_count=MIN_REPLICA_COUNT,
    max_replica_count=MAX_REPLICA_COUNT,
    sync=True
)

Passaggi successivi