vLLM-Inferenz auf TPUs der Version v6e
In dieser Anleitung erfahren Sie, wie Sie die vLLM-Inferenz auf v6e-TPUs ausführen. Außerdem wird gezeigt, wie Sie das Benchmark-Script für das Meta Llama-3.1 8B-Modell ausführen.
Informationen zu den ersten Schritten mit vLLM auf v6e-TPUs finden Sie in der Kurzanleitung für vLLM.
Wenn Sie GKE verwenden, lesen Sie auch den GKE-Leitfaden.
Hinweise
Sie müssen die Einwilligungsvereinbarung unterzeichnen, um die Llama3-Modellfamilie im HuggingFace-Repository verwenden zu können. Rufen Sie meta-llama/Llama-3.1-8B auf, füllen Sie die Einwilligungserklärung aus und warten Sie, bis Sie genehmigt wurden.
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.
TPU v6e bereitstellen
gcloud alpha compute tpus queued-resources create QUEUED_RESOURCE_ID \ --node-id TPU_NAME \ --project PROJECT_ID \ --zone ZONE \ --accelerator-type v6e-4 \ --runtime-version v2-alpha-tpuv6e \ --service-account SERVICE_ACCOUNT
Beschreibung der Befehls-Flags
Variable | Beschreibung |
NODE_ID | Die vom Nutzer zugewiesene ID der TPU, die erstellt wird, wenn die anstehende Ressourcenanfrage zugewiesen wird. |
PROJECT_ID | Google Cloud ist der Projektname. Verwenden Sie ein vorhandenes Projekt oder erstellen Sie ein neues. |
ZONE | Welche Zonen unterstützt werden, erfahren Sie im Dokument TPU-Regionen und ‑Zonen. |
ACCELERATOR_TYPE | Informationen zu den unterstützten Beschleunigertypen finden Sie in der Dokumentation unter Beschleunigertypen. |
RUNTIME_VERSION | v2-alpha-tpuv6e
|
SERVICE_ACCOUNT | Das ist die E-Mail-Adresse Ihres Dienstkontos. Sie finden sie in der Google Cloud Console unter „IAM“ -> „Dienstkonten“.
Beispiel: tpu-service-account@<your_project_ID>.iam.gserviceaccount.com.com |
Verwenden Sie die Befehle list
oder describe
, um den Status der Ressourcen in der Warteschlange 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
Abhängigkeiten installieren
Erstellen Sie ein Verzeichnis für Miniconda:
mkdir -p ~/miniconda3
Laden Sie das Miniconda-Installationsskript herunter:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
Installieren Sie Miniconda:
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
Entfernen Sie das Miniconda-Installationsskript:
rm -rf ~/miniconda3/miniconda.sh
Fügen Sie Miniconda der Variablen
PATH
hinzu:export PATH="$HOME/miniconda3/bin:$PATH"
Laden Sie
~/.bashrc
neu, um die Änderungen auf die VariablePATH
anzuwenden:source ~/.bashrc
Conda-Umgebung erstellen:
conda create -n vllm python=3.11 -y conda activate vllm
Klonen Sie das vLLM-Repository und wechseln Sie zum Verzeichnis
vllm
:git clone https://github.com/vllm-project/vllm.git && cd vllm
Bereinigen Sie die vorhandenen Pakete „torch“ und „torch-xla“:
pip uninstall torch torch-xla -y
Installieren Sie andere Build-Abhängigkeiten:
pip install -r requirements/tpu.txt VLLM_TARGET_DEVICE="tpu" python -m pip install --editable . sudo apt-get install libopenblas-base libopenmpi-dev libomp-dev
Zugriff auf das Modell erhalten
Generieren Sie ein neues Hugging Face-Token, falls Sie noch keines haben:
Klicken Sie auf Profil > Einstellungen > Zugriffstokens.
Wählen Sie Neues Token aus.
Geben Sie einen Namen Ihrer Wahl und eine Rolle mit mindestens
Read
Berechtigungen an.Wählen Sie Token generieren aus.
Kopieren Sie das generierte Token in die Zwischenablage, legen Sie es als Umgebungsvariable fest und authentifizieren Sie sich mit der huggingface-cli:
export TOKEN=YOUR_TOKEN git config --global credential.helper store huggingface-cli login --token $TOKEN
vLLM-Server starten
Mit dem folgenden Befehl werden die Modellgewichte aus dem Hugging Face Model Hub in das Verzeichnis /tmp
der TPU-VM heruntergeladen, eine Reihe von Eingabeformen vorab kompiliert und die Modellkompilierung in ~/.cache/vllm/xla_cache
geschrieben.
Weitere Informationen finden Sie in der vLLM-Dokumentation.
cd ~/vllm
vllm serve "meta-llama/Llama-3.1-8B" --download_dir /tmp --num-scheduler-steps 4 --swap-space 16 --disable-log-requests --tensor_parallel_size=4 --max-model-len=2048 &> serve.log &
vLLM-Benchmarks ausführen
Führen Sie das vLLM-Benchmarking-Script aus:
export MODEL = <var>your-model</var>
pip install pandas
pip install datasets
python benchmarks/benchmark_serving.py \
--backend vllm \
--model $MODEL \
--dataset-name random \
--random-input-len 1820 \
--random-output-len 128 \
--random-prefix-len 0
Bereinigen
Löschen Sie die TPU:
gcloud compute tpus queued-resources delete QUEUED_RESOURCE_ID \ --project PROJECT_ID \ --zone ZONE \ --force \ --async