Hinweise
Führen Sie die Schritte unter Cloud TPU-Umgebung einrichten aus, um ein Google Cloud-Projekt zu erstellen, die TPU API zu aktivieren, die TPU CLI zu installieren und ein TPU-Kontingent anzufordern.
Folgen Sie der Anleitung unter Cloud TPU mit der CreateNode API erstellen, um eine TPU-VM mit der Einstellung --accelerator-type
zu v5litepod-8
zu erstellen.
JetStream-Repository klonen und Abhängigkeiten installieren
Über SSH eine Verbindung zur TPU-VM herstellen
- Legen Sie ${TPU_NAME} auf den Namen Ihrer TPU fest.
- ${PROJECT} für Ihr Google Cloud-Projekt festlegen
- Legen Sie ${ZONE} auf die Google Cloud-Zone fest, in der die TPUs erstellt werden sollen
gcloud compute config-ssh gcloud compute tpus tpu-vm ssh ${TPU_NAME} --project ${PROJECT} --zone ${ZONE}
JetStream-Repository klonen
git clone https://github.com/google/jetstream-pytorch.git
Optional: Erstellen Sie mit
venv
oderconda
eine virtuelle Python-Umgebung und aktivieren Sie sie.Installationsskript ausführen
cd jetstream-pytorch source install_everything.sh
Gewichte herunterladen und konvertieren
Laden Sie die offiziellen Llama-Gewichte von GitHub herunter.
Rechne die Gewichtungen um.
- Legen Sie ${IN_CKPOINT} auf den Speicherort fest, der die Lama-Gewichte enthält.
- Legen Sie ${OUT_CKPOINT} auf einen Speicherort für Schreib-Prüfpunkte fest.
export input_ckpt_dir=${IN_CKPOINT} export output_ckpt_dir=${OUT_CKPOINT} export quantize=True python -m convert_checkpoints --input_checkpoint_dir=$input_ckpt_dir --output_checkpoint_dir=$output_ckpt_dir --quantize=$quantize
JetStream PyTorch-Engine lokal ausführen
Legen Sie den Tokenizer-Pfad fest, um die JetStream PyTorch-Engine lokal auszuführen:
export tokenizer_path=${TOKENIZER_PATH} # tokenizer model file path from meta-llama
JetStream-PyTorch-Engine mit Llama 7B ausführen
python run_interactive.py --size=7b --batch_size=128 --max_cache_length=2048 --quantize_weights=$quantize --quantize_kv_cache=$quantize --checkpoint_path=$output_ckpt_dir --tokenizer_path=$tokenizer_path
JetStream PyTorch-Engine mit Llama 13b ausführen
python run_interactive.py --size=13b --batch_size=64 --max_cache_length=2048 --quantize_weights=$quantize --quantize_kv_cache=$quantize --checkpoint_path=$output_ckpt_dir --tokenizer_path=$tokenizer_path
JetStream-Server ausführen
python run_server.py --param_size=7b --batch_size=128 --max_cache_length=2048 --quantize_weights=$quantize --quantize_kv_cache=$quantize --checkpoint_path=$output_ckpt_dir --tokenizer_path=$tokenizer_path --platform=tpu=8
HINWEIS: Der Parameter --platform=tpu=
muss die Anzahl der TPU-Geräte angeben (4 für v4-8
und 8 für v5lite-8
). Beispiel: --platform=tpu=8
.
Nach dem Ausführen von run_server.py
ist die JetStream PyTorch-Engine bereit, gRPC-Aufrufe zu empfangen.
Benchmarks ausführen
Wechseln Sie zum Ordner deps/JetStream
, der bei der Ausführung heruntergeladen wurde.
install_everything.sh
.
cd deps/JetStream
wget https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
export dataset_path=ShareGPT_V3_unfiltered_cleaned_split.json
python benchmarks/benchmark_serving.py --tokenizer $tokenizer_path --num-prompts 2000 --dataset-path $dataset_path --dataset sharegpt --save-request-outputs
Weitere Informationen finden Sie unter deps/JetStream/benchmarks/README.md
.
Typische Fehler
Wenn der Fehler Unexpected keyword argument 'device'
angezeigt wird, versuchen Sie Folgendes:
- Abhängigkeiten von
jax
undjaxlib
deinstallieren - Mit
source install_everything.sh
neu installieren
Wenn der Fehler Out of memory
angezeigt wird, versuchen Sie Folgendes:
- Kleinere Batchgröße verwenden
- Quantisierung verwenden
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.
GitHub-Repositories bereinigen
# Clean up the JetStream repository rm -rf JetStream # Clean up the xla repository rm -rf xla
Virtuelle Python-Umgebung bereinigen
rm -rf .env
TPU-Ressourcen löschen
Weitere Informationen finden Sie unter TPU-Ressourcen löschen.