Dieses Repository enthält Referenzarchitekturen und Testfälle für verteiltes Modelltraining mit Amazon SageMaker Hyperpod, AWS ParallelCluster, AWS Batch und Amazon EKS. Die Testfälle decken verschiedene Arten und Größen von Modellen sowie verschiedene Frameworks und parallele Optimierungen ab (Pytorch DDP/FSDP, MegatronLM, NemoMegatron...).
Die Hauptbestandteile dieses Verzeichnisses sind:
reference-architectures/
| -- 1.architectures/ # CloudFormation templates for reference arch
| -- 2.ami_and_containers/ # Scripts to create AMIs and container images
| -- 3.test_cases/ # Reference test cases and/or benchmark scripts
| -- 4.validation_observability/ # Tools to measure performance or troubleshoot
` -- ...
HINWEIS : Die Architekturen sind für die Verwendung mit dem S3-Bucket und der VPC konzipiert, die mithilfe der Referenzvorlagen 1.architectures/0.s3/
und 1.architectures/1.vpc_network/
erstellt wurden. Es wird dringend empfohlen, diese beiden Vorlagen bereitzustellen , bevor Sie eine der Referenzarchitekturen bereitstellen.
Sie können dem folgenden Workshop folgen, um Modelle auf AWS zu trainieren. Jedes enthält Beispiele für mehrere Testfälle sowie jede Menge Informationen zum Betrieb eines Clusters für die LLM-Ausbildung.
Name | Kommentare |
---|---|
Amazon SageMaker HyperPod | Workshop für SageMaker HyperPod, zeigt, wie es bereitgestellt und überwacht wird |
AWS ParallelCluster | Ähnlicher Workshop wie HyperPod, jedoch auf ParallelCluster |
Amazon SageMaker HyperPod EKS | Workshop für SageMaker HyperPod EKS, zeigt, wie es bereitgestellt und überwacht wird |
Architekturen befinden sich in 1.architectures
und bestehen aus Versorgungs- und dienstbezogenen Architekturen.
Name | Kategorie | Verwendung |
---|---|---|
0.s3 | Lagerung | Erstellen Sie einen S3-Bucket |
1.vpc_network | Netzwerk | Erstellen Sie eine VPC mit den für die Subnetze erforderlichen Ressourcen |
2.aws-parallelcluster | Berechnen | Cluster-Vorlagen für GPU- und benutzerdefiniertes Silizium-Training |
3.aws-batch | Berechnen | AWS Batch-Vorlage für verteiltes Training |
4.amazon-eks | Berechnen | Manifestdateien zum Trainieren mit Amazon EKS |
5.sagemaker-hyperpod | Berechnen | SageMaker HyperPod-Vorlage für verteiltes Training |
Es werden noch mehr kommen, Sie können gerne neue hinzufügen (z. B. Ray?). Außerdem finden Sie Dokumentation zu EFA und den empfohlenen Umgebungsvariablen.
Benutzerdefinierte Maschinen-Images können mit Packer für AWS ParallelCluster, Amazon EKS und einfachem EC2 erstellt werden. Diese Bilder basieren auf Ansible-Rollen und Playbooks.
Alle Testfälle befinden sich unter 3.test_cases/
. Sie können in jedes Testfallverzeichnis gehen, um zu erfahren, wie es ausgeführt wird.
Testfälle | Slurm | Kubernetes | AWS Batch |
---|---|---|---|
1.megatron-lm | ✅ | ✅ | ❓ |
2.nemo-launcher | ✅ | ✅ | |
3.MPT | ✅ | ❓ | ❓ |
4.DDP | ✅ | ❓ | ❓ |
5.param-benchmark | ✅ | ❓ | ❓ |
6.stable-diffusion | ✅ | ✅ | ❓ |
7.tensorflow-distributed | ✅ | ❓ | ❓ |
10.FSDP | ✅ | ✅ | ❓ |
11.modelparallel | ✅ | ❓ | ❓ |
12.SM-dataparallel-FSDP | ✅ | ❓ | ❓ |
13.SM-dataparallel-deepspeed | ✅ | ❓ | ❓ |
14.bionemo | ✅ | ❓ | ❓ |
15.gpt-neox | ✅ | ❓ | ❓ |
16.pytorch-cpu-ddp | ✅ | ✅ | ❓ |
17.SM-modelparallelv2 | ✅ | ❓ | ❓ |
18.deepspeed | ✅ | ❓ | ❓ |
jax | ✅ | ❓ | ❓ |
Dienstprogrammskripte und Beispiele für Mikrobenchmarks werden unter 4.validation_scripts/
festgelegt. Der EFA Prometheus-Exporter finden Sie in diesem Verzeichnis
Name | Kommentare |
---|---|
1.pytorch-env-validation | Validiert Ihre PyTorch-Umgebung |
3.efa-node-exporter | Knotenexporter mit Amazon EFA-Überwachungsmodulen |
4.prometheus-grafana | Bereitstellungsressourcen zur Überwachung von SageMaker Hyperpod-Clustern |
5.nsight | Zeigt, wie Sie Nvidia Nsight Systems ausführen, um ein Profil Ihrer Arbeitslast zu erstellen |
efa-versions.py | Holen Sie sich die Versionen der Nvidia-Bibliotheken, Treiber und EFA-Treiber |
Integrationstests werden in Pytest geschrieben. Führen Sie einfach Folgendes aus:
pytest .
Alternativ können Sie Tests ausführen, ohne Standardausgabe zu erfassen und alle Docker-Images und anderen Artefakte beizubehalten.
pytest -s --keep-artifacts=t
Vielen Dank an alle Mitwirkenden für das Erstellen, Überprüfen und Testen.