Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Häufig gestellte Fragen zur Amazon SageMaker AI-Bibliothek für verteilte Datenparallelität
Im Folgenden finden Sie Antworten auf häufig gestellte Fragen zur SMDDP-Bibliothek.
F: Wie werden bei der Nutzung der Bibliothek die allreduce CPU-Instances verwaltet, die diese unterstützen? Muss ich heterogene CPU-GPU Cluster erstellen, oder erstellt der SageMaker KI-Dienst zusätzliche C5s für Jobs, die die SMDDP-Bibliothek verwenden?
Die SMDDP-Bibliothek unterstützt nur GPU-Instances, genauer gesagt, P4d- und P4de-Instances mit NVIDIA A100-GPUs und EFA. Es werden keine zusätzlichen C5- oder CPU-Instances gestartet. Wenn sich Ihr SageMaker KI-Trainingsjob auf einem P4d-Cluster mit 8 Knoten befindet, werden nur 8 Instanzen verwendet. ml.p4d.24xlarge Es werden keine zusätzlichen Instances bereitgestellt.
F: Ich habe einen Trainingsjob, der 5 Tage für eine einzelne ml.p3.24xlarge Instance mit einem Satz von Hyperparametern H1 (Lernrate, Batchgröße, Optimizer usw.) dauert. Reicht die Verwendung der Datenparallelitätsbibliothek von SageMaker KI und eines fünfmal größeren Clusters aus, um eine ungefähre fünffache Beschleunigung zu erreichen? Oder muss ich nach der Aktivierung der SMDDP-Bibliothek die Trainings-Hyperparameter erneut aufrufen?
Die Bibliothek ändert die gesamte Batchgröße. Die neue Gesamtstapelgröße wird linear mit der Anzahl der verwendeten Trainings-Instances skaliert. Aus diesem Grund müssen Hyperparameter wie die Lernrate geändert werden, um die Konvergenz sicherzustellen.
F: Unterstützt die SMDDP-Bibliothek Spot?
Ja. So verwenden Sie Managed Spot Training. Sie geben den Pfad zur Checkpoint-Datei im Trainingsjob an. SageMaker Sie speichern und stellen Checkpoints in ihrem Trainingsskript wieder her, wie in den letzten Schritten von Verwenden Sie die SMDDP-Bibliothek in Ihrem TensorFlow Schulungsskript (veraltet) und Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch beschrieben.
F: Ist die SMDDP-Bibliothek für eine Konfiguration mit einem Host und mehreren Geräten relevant?
Die Bibliothek kann für Trainings mit einem Host und mehreren Geräten verwendet werden. Leistungsverbesserungen bietet die Bibliothek jedoch nur bei Trainings mit mehreren Hosts.
F: Wo sollte der Trainingsdatensatz gespeichert werden?
Der Trainingsdatensatz kann in einem Amazon-S3-Bucket oder auf einem Amazon FSx-Laufwerk gespeichert werden. In diesem Dokument finden Sie verschiedene unterstützte Eingabedateisysteme für einen Trainingsjob
F: Ist es bei der Nutzung der SMDDP-Bibliothek zwingend erforderlich, Trainingsdaten in FSx für Lustre zu haben? Können Amazon EFS und Amazon S3 verwendet werden?
Wir empfehlen generell, Amazon FSx zu verwenden, da es eine geringere Latenz und einen höheren Durchsatz bietet. Wenn Sie möchten, können Sie auch Amazon EFS oder Amazon S3 verwenden.
F: Kann die Bibliothek mit CPU-Knoten verwendet werden?
Nein. Informationen zu Instance-Typen, die von der SMDDP-Bibliothek unterstützt werden, finden Sie unter Unterstützte Instance-Typen.
F: Welche Frameworks und Framework-Versionen werden derzeit von der SMDDP-Bibliothek beim Start unterstützt?
Die SMDDP-Bibliothek unterstützt derzeit PyTorch Version 1.6.0 oder höher und TensorFlow Version 2.3.0 oder höher. Sie unterstützt 1.x nicht. TensorFlow Weitere Informationen darüber, welche Version der SMDDP-Bibliothek in AWS Deep Learning Containers verpackt ist, finden Sie unter Versionshinweise für Deep Learning-Container.
F: Unterstützt die Bibliothek AMP?
Ja, die SMDDP-Bibliothek unterstützt Automatic Mixed Precision (AMP) von Haus aus. Für die Verwendung von AMP sind außer den Änderungen an Ihrem Trainingsskript auf Framework-Ebene keine weiteren Maßnahmen erforderlich. Wenn Gradienten in FP16 enthalten sind, führt die SageMaker AI-Bibliothek für Datenparallelität ihren Betrieb in FP16 aus. AllReduce Weitere Informationen zum Implementieren von AMP-APIs in Ihrem Trainingsskript finden Sie in den folgenden Ressourcen:
-
Frameworks — PyTorch
in der NVIDIA Deep Learning Performace-Dokumentation -
Frameworks — TensorFlow
in der NVIDIA Deep Learning Performace-Dokumentation -
Automatic Mixed Precision for Deep Learning
in den NVIDIA-Entwicklerdokumenten -
Vorstellung der systemeigenen PyTorch automatischen Mixed-Precision-Technologie für schnelleres Training auf NVIDIA-GPUs
im Blog PyTorch -
TensorFlow APIs mit gemischter Genauigkeit
in der Dokumentation TensorFlow
F: Wie stelle ich fest, ob mein verteilter Schulungsjob aufgrund von I/O Engpässen verlangsamt wird?
Bei einem größeren Cluster erfordert der Trainingsjob mehr I/O Durchsatz. Daher kann es länger dauern (mehr Epochen), bis der Trainingsdurchsatz die maximale Leistung erreicht. Dies deutet darauf hin, dass I/O es Engpässe gibt und es schwieriger ist, Cache aufzubauen, wenn Sie die Knoten skalieren (höhere Durchsatzanforderungen und komplexere Netzwerktopologie). Weitere Informationen zur Überwachung des Amazon FSx-Durchsatzes finden Sie unter Monitoring FSx for Lustre im FSx for Lustre-Benutzerhandbuch. CloudWatch
F: Wie behebe ich I/O Engpässe bei der Ausführung eines verteilten Trainingsjobs mit Datenparallelität?
Wir empfehlen Ihnen dringend, Amazon FSx als Ihren Datenkanal zu verwenden, wenn Sie Amazon S3 verwenden. Wenn Sie Amazon FSx bereits verwenden, aber immer noch I/O Engpassprobleme haben, haben Sie Ihr Amazon FSx-Dateisystem möglicherweise mit einem niedrigen I/O Durchsatz und einer geringen Speicherkapazität eingerichtet. Weitere Informationen zur Schätzung und Auswahl der richtigen Größe der I/O Durchsatzkapazität finden Sie unter. Verwenden Sie Amazon FSx und richten Sie eine optimale Speicher- und Durchsatzkapazität ein
F: (Für die Bibliothek v1.4.0 oder höher) Wie behebe ich den Invalid backend Fehler beim Initialisieren der Prozessgruppe.
Wenn Sie beim Aufrufen von init_process_group auf die Fehlermeldung ValueError: Invalid backend: 'smddp' stoßen, liegt das an der grundlegenden Änderung in der SMDDP-Bibliothek v1.4.0 und höher. Sie müssen den PyTorch Client der Bibliothek importierensmdistributed.dataparallel.torch.torch_smddp, der sich smddp als Backend für PyTorch registriert. Weitere Informationen hierzu finden Sie unter Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch.
F: (Für die SMDDP-Bibliothek v1.4.0 oder höher) möchte ich die kollektiven Primitiven der torch.distributedsmddp Backend?
In Version 1.4.0 unterstützt die SMDDP-Bibliothek all_reduce, broadcast, reduce, all_gather und barrier aus der torch.distributed-Schnittstelle.
F: (Für die SMDDP-Bibliothek v1.4.0 oder höher) Funktioniert diese neue API mit anderen benutzerdefinierten DDP-Klassen oder -Bibliotheken wie Apex DDP?
Die SMDDP-Bibliothek wurde mit anderen verteilten datenparallelen Bibliotheken und Framework-Implementierungen von Drittanbietern getestet, die die Module torch.distribtued verwenden. Die Verwendung der SMDDP-Bibliothek mit benutzerdefinierten DDP-Klassen funktioniert, solange die von den benutzerdefinierten DDP-Klassen verwendeten kollektiven Operationen von der SMDDP-Bibliothek unterstützt werden. In der vorherigen Frage finden Sie eine Liste der unterstützten Kollektive. Wenn Sie diese Anwendungsfälle haben und weitere Unterstützung benötigen, wenden Sie sich über das SageMaker AWS Support Center
F: Unterstützt die SMDDP-Bibliothek die BYOC-Option (Bring-Your-Own-Container)? Falls ja, wie installiere ich die Bibliothek und führe einen verteilten Trainingsjob aus, indem ich ein benutzerdefiniertes Dockerfile schreibe?
Wenn Sie die SMDDP-Bibliothek und ihre minimalen Abhängigkeiten in Ihren eigenen Docker-Container integrieren möchten, ist BYOC der richtige Ansatz. Sie können Ihren eigenen Container mithilfe der Binärdatei der Bibliothek erstellen. Der empfohlene Prozess besteht darin, ein benutzerdefiniertes Dockerfile mit der Bibliothek und ihren Abhängigkeiten zu schreiben, den Docker-Container zu erstellen, ihn in Amazon ECR zu hosten und den ECR-Image-URI zu verwenden, um einen Trainingsjob mit der SageMaker generischen KI-Schätzerklasse zu starten. Weitere Anweisungen zur Vorbereitung einer benutzerdefinierten Dockerdatei für verteiltes Training in SageMaker KI mit der SMDDP-Bibliothek finden Sie unter. Erstellen Sie Ihren eigenen Docker-Container mit der SageMaker AI Distributed Data Parallel Library