Modell auf Cloud TPU-VMs bereitstellen

Google Cloud bietet Zugriff auf speziell entwickelte Machine-Learning-Beschleuniger sogenannte Tensor Processing Units (TPUs). TPUs sind für die Beschleunigung des Trainings und der Inferenz von Machine-Learning-Modellen optimiert und eignen sich daher ideal für eine Vielzahl von Anwendungen, darunter Natural Language Processing, Computer Vision und Spracherkennung.

Auf dieser Seite wird beschrieben, wie Sie Ihre Modelle für die Onlineinferenz in Vertex AI auf einer einzelnen Cloud TPU v5e, v6e oder TPU7x bereitstellen.

Nur die Cloud TPU-Versionen v5e, v6e, und TPU7x (tpu7x-standard-4t Maschinentyp) werden unterstützt. Andere Cloud TPU-Generationen werden nicht unterstützt.

Informationen zu den Standorten, an denen die Cloud TPU-Versionen v5e, v6e und TPU7x verfügbar sind, finden Sie unter Standorte.

Modell importieren

Für die Bereitstellung auf Cloud TPUs müssen Sie Ihr Modell in Vertex AI importieren und so konfigurieren, dass einer der folgenden Container verwendet wird:

Vordefinierter optimierter TensorFlow-Laufzeitcontainer

Wenn Sie ein TensorFlow SavedModel auf einer Cloud TPU importieren und ausführen möchten, muss das Modell für TPUs optimiert sein. Wenn Ihr TensorFlow SavedModel noch nicht für TPUs optimiert ist, können Sie Ihr Modell automatisch optimieren. Importieren Sie dazu Ihr Modell. Vertex AI optimiert es dann mit einem automatischen Partitionierungsalgorithmus. Diese Optimierung funktioniert nicht bei allen Modellen. Wenn die Optimierung fehlschlägt, müssen Sie Ihr Modell manuell optimieren.

Der folgende Beispielcode zeigt, wie Sie die automatische Modelloptimierung mit automatischer Partitionierung verwenden:

  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=[
      ]
  )

Weitere Informationen zum Importieren von Modellen finden Sie unter Modelle in Vertex AI importieren.

Vordefinierter PyTorch-Container

Die Anleitung zum Importieren und Ausführen eines PyTorch-Modells auf einer Cloud TPU ist dieselbe wie die Anleitung zum Importieren und Ausführen eines PyTorch-Modells.

Beispiel: TorchServe für Cloud TPU v5e-Inferenz Laden Sie dann die Modellartefakte in Ihren Cloud Storage-Ordner und laden Sie Ihr Modell wie gezeigt hoch:

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]
)

Weitere Informationen finden Sie unter Modellartefakte für PyTorch exportieren und im Notebook zur Anleitung PyTorch-Modell mit einem vordefinierten Container bereitstellen.

Benutzerdefinierter Container

Bei benutzerdefinierten Containern muss Ihr Modell kein TensorFlow-Modell sein, aber es muss für TPUs optimiert sein. Informationen zum Erstellen eines für TPUs optimierten Modells finden Sie in den folgenden Anleitungen für gängige ML-Frameworks:

Informationen zum Bereitstellen von Modellen, die mit JAX, TensorFlow oder PyTorch auf Cloud TPU v5e trainiert wurden, finden Sie unter Cloud TPU v5e-Inferenz.

Achten Sie darauf, dass Ihr benutzerdefinierter Container die Anforderungen für benutzerdefinierte Container erfüllt.

Sie müssen das Limit für gesperrten Arbeitsspeicher erhöhen, damit der Treiber mit den TPU-Chips über DMA (Direct Memory Access) kommunizieren kann. Beispiel:

Befehlszeile

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
    ),
  )

Informationen zum Importieren eines Modells mit einem benutzerdefinierten Container finden Sie unter Benutzerdefinierten Container für die Inferenz verwenden. Wenn Sie Logik für die Vor- oder Nachverarbeitung implementieren möchten, sollten Sie benutzerdefinierte Inferenzroutinenverwenden.

Endpunkt erstellen

Die Anleitung zum Erstellen eines Endpunkts für Cloud TPUs ist dieselbe wie die Anleitung zum Erstellen eines beliebigen Endpunkts.

Mit dem folgenden Befehl wird beispielsweise eine endpoint Ressource erstellt:

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

Die Antwort enthält die ID des neuen Endpunkts, die Sie in den folgenden Schritten verwenden.

Weitere Informationen zum Erstellen eines Endpunkts finden Sie unter Modell auf einem Endpunkt bereitstellen.

Modell bereitstellen

Die Anleitung zum Bereitstellen eines Modells auf Cloud TPUs ist dieselbe wie die Anleitung zum Bereitstellen eines beliebigen Modells. Sie müssen jedoch einen der folgenden unterstützten Cloud TPU-Maschinentypen angeben:

Maschinentyp Anzahl der TPU-Chips
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

TPU-Beschleuniger sind im Maschinentyp integriert. Sie müssen keinen Beschleunigertyp oder keine Beschleunigeranzahl angeben.

Mit dem folgenden Befehl wird beispielsweise ein Modell durch Aufrufen von deployModel bereitgestellt:

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,
)

Weitere Informationen finden Sie unter Modell auf einem Endpunkt bereitstellen.

Onlineinferenzen abrufen

Die Anleitung zum Abrufen von Onlineinferenzen von einer Cloud TPU ist dieselbe wie die Anleitung zum Abrufen von Onlineinferenzen.

Mit dem folgenden Befehl wird beispielsweise eine Onlineinferenzanfrage durch Aufrufen von predict gesendet:

deployed_model.predict(...)

Informationen zu benutzerdefinierten Containern finden Sie unter den Anforderungen an Inferenzanfragen und -antworten für benutzerdefinierte Container.

Kapazität sichern

In den meisten Regionen ist das TPU v5e, v6e, and TPU7x cores per region Kontingent für die Bereitstellung benutzerdefinierter Modelle 0. In einigen Regionen ist es begrenzt.

Informationen zum Anfordern einer Kontingenterhöhung finden Sie unter Kontingentanpassung anfordern.

Preise

TPU-Maschinentypen werden wie alle anderen Maschinentypen in Vertex Prediction pro Stunde abgerechnet. Weitere Informationen finden Sie unter Preise für Vorhersagen.

Nächste Schritte