JetStream-PyTorch-Inferenz auf TPU-VMs der Version 6e
In dieser Anleitung erfahren Sie, wie Sie mit JetStream PyTorch-Modelle auf TPU v6e bereitstellen. JetStream ist eine durchsatz- und speicheroptimierte Engine für die LLM-Inferenz (Large Language Model) auf XLA-Geräten (TPUs). In dieser Anleitung führen Sie den Inferenz-Benchmark für das Llama2-7B-Modell aus.
Hinweise
TPU v6e mit 4 Chips vorbereiten:
Folgen Sie der Anleitung Cloud TPU-Umgebung einrichten, um ein Google Cloud -Projekt einzurichten, die Google Cloud CLI zu konfigurieren, die Cloud TPU API zu aktivieren und sicherzustellen, dass Sie Zugriff auf Cloud TPUs haben.
Authentifizieren Sie sich mit Google Cloud und konfigurieren Sie das Standardprojekt und die Standardzone für die Google Cloud CLI.
gcloud auth login gcloud config set project PROJECT_ID gcloud config set compute/zone ZONE
Sichere Kapazität
Wenn Sie bereit sind, TPU-Kapazität zu reservieren, finden Sie unter Cloud TPU-Kontingente weitere Informationen zu den Cloud TPU-Kontingenten. Wenn Sie weitere Fragen zur Kapazitätssicherung haben, wenden Sie sich an Ihr Cloud TPU-Vertriebs- oder Account-Management-Team.
Cloud TPU-Umgebung bereitstellen
Sie können TPU-VMs mit GKE, mit GKE und XPK oder als in der Warteschlange befindliche Ressourcen bereitstellen.
Vorbereitung
- Prüfen Sie, ob Ihr Projekt ein ausreichendes
TPUS_PER_TPU_FAMILY
-Kontingent hat. Dieses gibt die maximale Anzahl von Chips an, auf die Sie in IhremGoogle Cloud -Projekt zugreifen können. - Prüfen Sie, ob Ihr Projekt ein ausreichendes TPU-Kontingent für Folgendes hat:
- TPU-VM-Kontingent
- Kontingent für IP-Adressen
- Hyperdisk Balanced-Kontingent
- Nutzerberechtigungen für Projekte
- Wenn Sie GKE mit XPK verwenden, finden Sie unter Cloud Console-Berechtigungen für das Nutzer- oder Dienstkonto Informationen zu den Berechtigungen, die zum Ausführen von XPK erforderlich sind.
Umgebungsvariablen erstellen
Erstellen Sie in Cloud Shell die folgenden Umgebungsvariablen:export PROJECT_ID=your-project-id export TPU_NAME=your-tpu-name export ZONE=us-central2-b export ACCELERATOR_TYPE=v6e-4 export RUNTIME_VERSION=v2-alpha-tpuv6e export SERVICE_ACCOUNT=your-service-account export QUEUED_RESOURCE_ID=your-queued-resource-id
Beschreibung der Befehls-Flags
Variable | Beschreibung |
PROJECT_ID
|
Google Cloud ist der Projektname. Verwenden Sie ein vorhandenes Projekt oder erstellen Sie ein neues. |
TPU_NAME
|
Der Name der TPU. |
ZONE
|
Welche Zonen unterstützt werden, erfahren Sie im Dokument TPU-Regionen und ‑Zonen. |
ACCELERATOR_TYPE
|
Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für jede TPU-Version finden Sie unter TPU-Versionen. |
RUNTIME_VERSION
|
Die Cloud TPU-Softwareversion. |
SERVICE_ACCOUNT
|
Die E-Mail-Adresse Ihres Dienstkontos . Sie finden ihn in der Google Cloud Console auf der Seite Dienstkonten.
Beispiel: |
QUEUED_RESOURCE_ID
|
Die vom Nutzer zugewiesene Text-ID der anstehenden Ressourcenanfrage. |
TPU v6e bereitstellen
gcloud alpha compute tpus queued-resources create ${QUEUED_RESOURCE_ID} \ --node-id ${TPU_NAME} \ --project ${PROJECT_ID} \ --zone ${ZONE} \ --accelerator-type ${ACCELERATOR_TYPE} \ --runtime-version ${RUNTIME_VERSION} \ --service-account ${SERVICE_ACCOUNT}
Verwenden Sie die Befehle list
oder describe
, um den Status der in der Warteschlange befindlichen Ressource abzufragen.
gcloud alpha compute tpus queued-resources describe ${QUEUED_RESOURCE_ID} \
--project ${PROJECT_ID} --zone ${ZONE}
Eine vollständige Liste der Status von anstehenden Ressourcenanfragen finden Sie in der Dokumentation zu anstehenden Ressourcen.
Über SSH eine Verbindung zur TPU herstellen
gcloud compute tpus tpu-vm ssh ${TPU_NAME}
JetStream PyTorch Llama2-7B-Benchmark ausführen
Folgen Sie der Anleitung im GitHub-Repository, um JetStream-PyTorch einzurichten, die Modell-Checkpunkte zu konvertieren und den Inferenz-Benchmark auszuführen.
Wenn der Inferenz-Benchmark abgeschlossen ist, bereinigen Sie die TPU-Ressourcen.
Bereinigen
Löschen Sie die TPU:
gcloud compute tpus queued-resources delete ${QUEUED_RESOURCE_ID} \
--project ${PROJECT_ID} \
--zone ${ZONE} \
--force \
--async