In dieser Anleitung wird das Modell Qwen/Qwen2-7B-Instruct mit dem vLLM TPU-Bereitstellungs-Framework auf einer v6e TPU-VM bereitgestellt.
Ziele
- die Umgebung einrichten
- vLLM mit Qwen2-7B-Instruct ausführen
- Senden Sie eine Inferenzanfrage.
- Führen Sie eine Benchmark-Arbeitslast aus.
- bereinigen.
Kosten
In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:
Mit dem Preisrechner können Sie eine Kostenschätzung Ihrer voraussichtlichen Nutzung vornehmen.
Hinweis
Bevor Sie diese Anleitung durcharbeiten, folgen Sie der Anleitung auf der Seite Cloud TPU-Umgebung einrichten. In der Anleitung werden die Schritte beschrieben, die zum Erstellen eines Google Cloud-Projekts und zum Konfigurieren für die Verwendung von Cloud TPU erforderlich sind. Sie können auch ein vorhandenesGoogle Cloud -Projekt verwenden. Wenn Sie dies tun, können Sie den Schritt zum Erstellen einesGoogle Cloud -Projekts überspringen und mit Umgebung für Cloud TPU einrichten beginnen.
Für diese Anleitung benötigen Sie ein Hugging Face-Zugriffstoken. Sie können sich bei Hugging Face für ein kostenloses Konto registrieren. Nachdem Sie ein Konto erstellt haben, können Sie ein Zugriffstoken generieren:
- Klicken Sie auf der Seite Welcome to Hugging Face (Willkommen bei Hugging Face) auf Ihren Konto-Avatar und wählen Sie Access tokens (Zugriffstokens) aus.
- Klicken Sie auf der Seite Zugriffstokens auf Neues Token erstellen.
- Wählen Sie den Tokentyp Lesen aus und geben Sie einen Namen für Ihr Token ein.
- Ihr Zugriffstoken wird angezeigt. Speichern Sie das Token an einem sicheren Ort.
Umgebung einrichten
In die Warteschlange gestellte Ressourcen
Cloud TPU v6e-VM mit der API für in die Warteschlange gestellte Ressourcen erstellen Für qwen2-7b-instruct empfehlen wir die Verwendung einer v6e-1-TPU.
Legen Sie die Variablen fest:
- PROJECT: Der Name Ihres Projekts.
- TPU_NAME: Name der TPU-VM-Maschine, die Sie erstellen.
- ZONE: Die Cloud-Zone, in der Sie die neue VM erstellen.
- TPU_TYPE: Der Typ der TPU-VM, die Sie erstellen. Beispiel:
v6e-1oderv6e-4 - QR_ID: Name der in die Warteschlange gestellten Ressource, die Sie erstellen.
Erstellen Sie die Anfrage für in die Warteschlange gestellte Ressourcen:
Prüfen Sie, ob Ihre TPU-VM bereit ist.
Beispiel: Der Status ist ACTIVE:
name: projects/your-project-id/locations/your-zone/queuedResources/your-queued-resource-id
state:
state: ACTIVE
tpu:
nodeSpec:
- node:
acceleratorType: v6e-1
bootDisk: {}
networkConfig:
enableExternalIps: true
queuedResource: projects/your-project-number/locations/your-zone/queuedResources/your-queued-resource-id
runtimeVersion: v2-alpha-tpuv6e
schedulingConfig: {}
serviceAccount: {}
shieldedInstanceConfig: {}
useTpuVm: true
nodeId: your-node-id
parent: projects/your-project-number/locations/your-zone
Reservierung
Cloud TPU v6e-VM mit einer Reservierung erstellen Für qwen2-7b-instruct empfehlen wir die Verwendung einer v6e-1-TPU. Legen Sie zuerst Umgebungsvariablen fest:
Legen Sie die Variablen fest:
- PROJECT: Der Name Ihres Projekts.
- TPU_NAME: Name der TPU-VM-Maschine, die Sie erstellen.
- ZONE: Die Cloud-Zone, in der Sie die neue VM erstellen.
- TPU_TYPE: Der Typ der TPU-VM, die Sie erstellen. Beispiel:
v6e-1oderv6e-4 - RESERVATION: Name der Reservierung mit Ihren TPUs.
Erstellen Sie die TPU-VM mit Ihrer Reservierung:
Stellen Sie eine Verbindung zur TPU-VM her.
vLLM mit Qwen2-7B-Instruct ausführen
Legen Sie die Variablen für Ihr Hugging Face-Token und Ihren Modellnamen fest.
export HF_TOKEN="YOUR_HF_TOKEN" export MODEL_NAME="Qwen/Qwen2-7B-Instruct"Führen Sie in der TPU-VM den vLLM-Docker-Container im getrennten Modus aus und starten Sie den vLLM-Server. Dieser Befehl verwendet eine Größe des gemeinsam genutzten Speichers von 10 GB.
Prüfen Sie in den Serverlogs, ob der Server ausgeführt wird.
Wenn der vLLM-Server ausgeführt wird, sehen Sie eine Ausgabe wie die folgende. Wenn die Ausgabe angezeigt wird, drücken Sie
CTRL+C, um zum Terminal zurückzukehren.(APIServer pid=7) INFO: Started server process [7] (APIServer pid=7) INFO: Waiting for application startup. (APIServer pid=7) INFO: Application startup complete.
Inferenzanfrage senden
Sobald der vLLM-Server ausgeführt wird, können Sie Anfragen an die API senden. Weitere Informationen finden Sie in der vLLM API-Referenzdokumentation.
Senden Sie mit
curleine Testanfrage an den Server.
Die Antwort wird im JSON-Format zurückgegeben.
Benchmark-Arbeitslast ausführen
Sie können Benchmarks für den laufenden Server über Ihr zweites Terminal ausführen.
Installieren Sie die
datasets-Bibliothek im Container.Führen Sie im Container den Befehl
vllm bench serveaus.
Die Benchmark-Ergebnisse sehen so aus:
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 45.35
Total input tokens: 1024000
Total generated tokens: 126848
Request throughput (req/s): 22.05
Output token throughput (tok/s): 2797.15
Peak output token throughput (tok/s): 4258.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 25377.57
---------------Time to First Token----------------
Mean TTFT (ms): 21332.46
Median TTFT (ms): 21330.37
P99 TTFT (ms): 42436.47
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 37.36
Median TPOT (ms): 38.56
P99 TPOT (ms): 38.69
---------------Inter-token Latency----------------
Mean ITL (ms): 37.35
Median ITL (ms): 38.55
P99 ITL (ms): 39.43
==================================================
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
- Geben Sie in Ihrem Terminal exit ein, um die Verbindung zur TPU-VM zu trennen.
Ressourcen löschen
Sie können das Projekt löschen, wodurch alle Ressourcen gelöscht werden, oder das Projekt beibehalten und die Ressourcen löschen.
Projekt löschen
So löschen Sie Ihr Google Cloud -Projekt und alle zugehörigen Ressourcen:
gcloud projects delete $PROJECT_ID
TPU-Ressourcen löschen
In die Warteschlange gestellte Ressourcen
Löschen Sie Ihre Cloud TPU-Ressourcen. Mit dem folgenden Befehl werden sowohl die Anfrage für in die Warteschlange gestellte Ressourcen als auch die TPU-VM mit dem Parameter --force gelöscht.
Reservierung
Löschen Sie Ihre Cloud TPU-VM. Verwenden Sie den folgenden Befehl, um die VM zu beenden und die TPUs wieder für Ihre Reservierung freizugeben.
Nächste Schritte
- Weitere Informationen zu vLLM auf Cloud TPU
- Weitere Informationen zu Cloud TPU