Esegui il deployment di un modello sulle VM Cloud TPU

Google Cloud fornisce l'accesso ad acceleratori di machine learning progettati su misura chiamati TPU (Tensor Processing Unit). Le TPU sono ottimizzate per accelerare l'addestramento e l'inferenza dei modelli di machine learning, caratteristica che le rende ideali per numerose applicazioni, tra cui l'elaborazione del linguaggio naturale, la visione artificiale e il riconoscimento vocale.

Questa pagina descrive come eseguire il deployment dei modelli su una singola Cloud TPU v5e, v6e o TPU7x host per l'inferenza online in Gemini Enterprise Agent Platform.

Sono supportati solo i tipo di macchina Cloud TPU versione v5e, v6e, e TPU7x (tpu7x-standard-4t). Le altre generazioni di Cloud TPU non sono supportate.

Per scoprire in quali località sono disponibili le versioni v5e, v6e e TPU7x di Cloud TPU, consulta Località.

Importare il modello

Per il deployment su Cloud TPU, devi importare il modello in Agent Platform e configurarlo in modo che utilizzi uno dei seguenti container:

Container del runtime TensorFlow ottimizzato predefinito

Per importare ed eseguire un TensorFlow SavedModel su una Cloud TPU, il modello deve essere ottimizzato per le TPU. Se il tuo SavedModel TensorFlow non è ancora ottimizzato per le TPU, puoi ottimizzarlo automaticamente. Per farlo, importa il modello e poi Gemini Enterprise Agent Platform lo ottimizza utilizzando un algoritmo di partizionamento automatico. Questa ottimizzazione non funziona su tutti i modelli. Se l'ottimizzazione non riesce, devi ottimizzare manualmente il modello.

Il seguente codice campione mostra come utilizzare l'ottimizzazione automatica dei modelli con il partizionamento automatico:

  model = aiplatform.Model.upload(
      display_name='TPU optimized model with automatic partitioning',
      artifact_uri="gs://model-artifact-uri",
      serving_container_image_uri="us-docker.pkg.dev/vertex-ai-restricted/prediction/tf_opt-tpu.2-15:latest",
      serving_container_args=[
      ]
  )

Per saperne di più sull'importazione dei modelli, consulta Importare modelli in Agent Platform.

Container PyTorch predefinito

Le istruzioni per importare ed eseguire un modello PyTorch su Cloud TPU sono le stesse delle istruzioni per importare ed eseguire un modello PyTorch.

Ad esempio, TorchServe per l'inferenza di Cloud TPU v5e Carica gli artefatti del modello nella cartella Cloud Storage e carica il modello come mostrato di seguito:

model = aiplatform.Model.upload(
    display_name='DenseNet TPU model from SDK PyTorch 2.1',
    artifact_uri="gs://model-artifact-uri",
    serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/pytorch-tpu.2-1:latest",
    serving_container_args=[],
    serving_container_predict_route="/predictions/model",
    serving_container_health_route="/ping",
    serving_container_ports=[8080]
)

Per saperne di più, consulta Esportare gli artefatti del modello per PyTorch e il notebook del tutorial per Erogare un modello PyTorch utilizzando un container predefinito.

Container personalizzato

Per i container personalizzati, il modello non deve essere un modello TensorFlow, ma deve essere ottimizzato per le TPU. Per informazioni sulla produzione di un modello ottimizzato per le TPU, consulta le seguenti guide per i framework di ML comuni:

Per informazioni sull'erogazione di modelli addestrati con JAX, TensorFlow o PyTorch su Cloud TPU v5e, consulta Inferenza di Cloud TPU v5e.

Assicurati che il container personalizzato soddisfi i requisiti dei container personalizzati.

Devi aumentare il limite di memoria bloccata in modo che il driver possa comunicare con i chip TPU tramite l'accesso diretto alla memoria (DMA). Ad esempio:

Riga di comando

ulimit -l 68719476736

Python

import resource

resource.setrlimit(
    resource.RLIMIT_MEMLOCK,
    (
        68_719_476_736_000,  # soft limit
        68_719_476_736_000,  # hard limit
    ),
  )

Per informazioni sull'importazione di un modello con un container personalizzato, consulta Utilizzare un container personalizzato per l'inferenza. Se vuoi implementare la logica di pre-elaborazione o post-elaborazione, valuta la possibilità di utilizzare le routine di inferenza personalizzate.

Creazione di un endpoint

Le istruzioni per creare un endpoint per Cloud TPU sono le stesse delle istruzioni per creare qualsiasi endpoint.

Ad esempio, il seguente comando crea una endpoint risorsa:

endpoint = aiplatform.Endpoint.create(display_name='My endpoint')

La risposta contiene l'ID del nuovo endpoint, che utilizzerai nei passaggi successivi.

Per saperne di più sulla creazione di un endpoint, consulta Eseguire il deployment di un modello su un endpoint.

Eseguire il deployment di un modello

Le istruzioni per eseguire il deployment di un modello su Cloud TPU sono le stesse delle istruzioni per eseguire il deployment di qualsiasi modello, tranne che devi specificare uno dei seguenti tipi di macchine Cloud TPU supportati:

Tipo di macchina Numero di chip TPU
tpu7x-standard-4t 4
ct6e-standard-1t 1
ct6e-standard-4t 4
ct6e-standard-8t 8
ct5lp-hightpu-1t 1
ct5lp-hightpu-4t 4
ct5lp-hightpu-8t 8

Gli acceleratori TPU sono integrati nel tipo di macchina. Non devi specificare il tipo o il numero di acceleratori.

Ad esempio, il seguente comando esegue il deployment di un modello chiamando deployModel:

machine_type = 'ct5lp-hightpu-1t'

deployed_model = model.deploy(
    endpoint=endpoint,
    deployed_model_display_name='My deployed model',
    machine_type=machine_type,
    traffic_percentage=100,
    min_replica_count=1
    sync=True,
)

Per saperne di più, consulta Eseguire il deployment di un modello su un endpoint.

Ottenere inferenze online

L'istruzione per ottenere inferenze online da una Cloud TPU è la stessa dell'istruzione per ottenere inferenze online.

Ad esempio, il seguente comando invia una richiesta di inferenza online chiamando predict:

deployed_model.predict(...)

Per i container personalizzati, consulta i requisiti di richiesta e risposta di inferenza per i container personalizzati.

Garantire la capacità

Per la maggior parte delle regioni, la TPU v5e, v6e, and TPU7x cores per region quota per l'erogazione di modelli personalizzati è 0. In alcune regioni, è limitata.

Per richiedere un aumento della quota, consulta Richiedere un aggiustamento delle quote.

Prezzi

I tipi di macchine TPU vengono fatturati all'ora, proprio come tutti gli altri tipo di macchina in Vertex Prediction. Per saperne di più, consulta Prezzi di Prediction.

Passaggi successivi