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.
PyTorch Trainingsjobs mit SageMaker Training Compiler ausführen
Wichtig
Hinweis zur Veralterung: Der SageMaker Training Compiler wird in SageMaker Python SDK v3 nicht unterstützt. Wenn Sie derzeit den Training Compiler verwenden, verwenden SageMaker Sie weiterhin Python SDK v2. Für neue Projekte sollten Sie erwägen, die einheitliche ModelTrainer Klasse mit unterstützten Frameworks zu verwenden. Eine Anleitung zur Migration finden Sie in der
Sie können jede der SageMaker KI-Schnittstellen verwenden, um einen Trainingsjob mit SageMaker Training Compiler auszuführen: Amazon SageMaker Studio Classic, Amazon SageMaker Notebook-Instances und AWS Command Line Interface. AWS SDK for Python (Boto3)
Verwenden des SageMaker Python-SDK
SageMaker Training Compiler für PyTorch ist in den Klassen SageMaker AI PyTorchHuggingFacecompiler_config Parameter zu den SageMaker AI-Schätzern hinzu. Importieren Sie die TrainingCompilerConfig-Klasse und übergeben Sie eine Instance davon an den compiler_config-Parameter. Die folgenden Codebeispiele zeigen die Struktur von SageMaker KI-Schätzerklassen bei aktiviertem SageMaker Training Compiler.
Tipp
Um mit den von PyTorch oder Transformers bereitgestellten vorgefertigten Modellen zu beginnen, versuchen Sie, die in der Referenztabelle unter angegebenen Chargengrößen zu verwenden. Getestete Modelle
Anmerkung
Die native PyTorch Unterstützung ist im SageMaker Python SDK v2.121.0 und höher verfügbar. Stellen Sie sicher, dass Sie das SageMaker Python-SDK entsprechend aktualisieren.
Anmerkung
Ab PyTorch Version 1.12.0 sind SageMaker Training Compiler-Container für PyTorch verfügbar. Beachten Sie, dass die SageMaker Training Compiler-Container für nicht im Lieferumfang von Hugging Face Transformers enthalten PyTorch sind. Wenn Sie die Bibliothek im Container installieren müssen, stellen Sie sicher, dass Sie die requirements.txt Datei im Quellverzeichnis hinzufügen, wenn Sie einen Trainingsjob einreichen.
Verwenden Sie für PyTorch Version 1.11.0 und früher die vorherigen Versionen der SageMaker Training Compiler-Container für Hugging Face und. PyTorch
Eine vollständige Liste der Framework-Versionen und der entsprechenden Container-Informationen finden Sie unter Unterstützte Frameworks.
Weitere Informationen, die zu Ihrem Anwendungsfall passen, finden Sie unter einer der folgenden Optionen.
Die folgende Liste enthält den Mindestsatz an Parametern, der für die Ausführung eines SageMaker Trainingsauftrags mit dem Compiler erforderlich ist.
Anmerkung
Wenn Sie den SageMaker AI Hugging Face Estimator verwenden, müssen Sie die compiler_config Parameter,, und angeben transformers_version pytorch_versionhyperparameters, um den Training Compiler zu aktivieren. SageMaker Sie können image_uri nicht verwenden, um die unter Unterstützte Frameworks aufgelisteten integrierten Deep-Learning-Container für den Trainingscompiler manuell anzugeben.
-
entry_point(str) – Erforderlich. Geben Sie den Dateinamen Ihres Trainingsskripts an.Anmerkung
Um ein verteiltes Training mit SageMaker Training Compiler und PyTorch Version 1.10.2 und früher durchzuführen, geben Sie den Dateinamen eines Launcher-Skripts für diesen Parameter an. Das Launcher-Skript sollte so vorbereitet sein, dass es Ihr Trainingsskript umschließt und die verteilte Trainingsumgebung konfiguriert. Weitere Informationen finden Sie in den folgenden Notebook-Beispielen:
-
source_dir(str) – Optional. Fügen Sie dies hinzu, wenn Sie zusätzliche Pakete installieren müssen. Um Pakete zu installieren, müssen Sie einerequirements.txtDatei in diesem Verzeichnis vorbereiten. -
instance_count(int) – Erforderlich. Geben Sie die Anzahl der Instances an. -
instance_type(str) – Erforderlich. Geben Sie den Instance-Typ an. -
transformers_version(str) — Nur erforderlich, wenn der SageMaker AI Hugging Face Estimator verwendet wird. Geben Sie die vom Training Compiler unterstützte Hugging Face Transformers-Bibliotheksversion an. SageMaker Die verfügbaren Versionen finden Sie unter Unterstützte Frameworks. -
framework_versionoderpytorch_version(str) – Erforderlich. Geben Sie die vom Training PyTorch Compiler unterstützte SageMaker Version an. Die verfügbaren Versionen finden Sie unter Unterstützte Frameworks.Anmerkung
Wenn Sie den SageMaker AI Hugging Face Estimator verwenden, müssen Sie sowohl als auch angeben.
transformers_versionpytorch_version -
hyperparameters(dict) – Optional. Geben Sie Hyperparameter für den Trainingsjob an, z. B.n_gpusbatch_size, undlearning_rate. Wenn Sie den SageMaker Training Compiler aktivieren, probieren Sie größere Chargen aus und passen Sie die Lernrate entsprechend an. Fallstudien zur Verwendung des Compilers und zur Anpassung der Batchgrößen zur Verbesserung der Trainingsgeschwindigkeit finden Sie unter Getestete Modelle und SageMaker Notizbücher und Blogs zum Beispiel für den Training Compiler.Anmerkung
Um ein verteiltes Training mit SageMaker Training Compiler und PyTorch Version 1.10.2 und früher auszuführen, müssen Sie einen zusätzlichen Parameter hinzufügen
"training_script", um Ihr Trainingsskript zu spezifizieren, wie im vorherigen Codebeispiel gezeigt. -
compiler_config(TrainingCompilerConfig Objekt) — Erforderlich, um den SageMaker Training Compiler zu aktivieren. Schließen Sie diesen Parameter ein, um den SageMaker Training Compiler einzuschalten. Nachfolgend sind die Parameter für die KlasseTrainingCompilerConfigaufgeführt.-
enabled(bool) – Optional. Geben Sie anTrueFalse, ob der SageMaker Training Compiler ein- oder ausgeschaltet werden soll. Der Standardwert istTrue. -
debug(bool) – Optional. Um detailliertere Trainingsprotokolle von Ihren Compiler-beschleunigten Trainingsaufträgen zu erhalten, ändern Sie es zuTrue. Die zusätzliche Protokollierung kann jedoch den Aufwand erhöhen und den kompilierten Trainingsjob verlangsamen. Der Standardwert istFalse.
-
-
distribution(dict) – Fakultativ. Um einen verteilten Trainingsjob mit dem SageMaker Training Compiler auszuführen, fügen Sie Folgendes hinzu.distribution = { 'pytorchxla' : { 'enabled': True }}
Warnung
Wenn Sie den SageMaker Debugger einschalten, kann sich dies auf die Leistung des SageMaker Training Compilers auswirken. Wir empfehlen, den Debugger auszuschalten, wenn Sie den SageMaker Training Compiler ausführen, um sicherzustellen, dass dies keine Auswirkungen auf die Leistung hat. Weitere Informationen finden Sie unter Überlegungen. Um die Debugger-Funktionen auszuschalten, fügen Sie dem Schätzer die folgenden beiden Argumente hinzu:
disable_profiler=True, debugger_hook_config=False
Wenn der Trainingsjob mit dem Compiler erfolgreich gestartet wurde, erhalten Sie während der Job-Initialisierungsphase die folgenden Protokolle:
-
Mit
TrainingCompilerConfig(debug=False)Found configuration for Training Compiler Configuring SM Training Compiler... -
Mit
TrainingCompilerConfig(debug=True)Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode
Verwendung der SageMaker AI-API-Operation CreateTrainingJob
SageMaker Die Konfigurationsoptionen für den Training Compiler müssen in der Anforderungssyntax für den CreateTrainingJob API-Vorgang über das HyperParameters Feld AlgorithmSpecification und angegeben werden.
"AlgorithmSpecification": { "TrainingImage": "<sagemaker-training-compiler-enabled-dlc-image>" }, "HyperParameters": { "sagemaker_training_compiler_enabled": "true", "sagemaker_training_compiler_debug_mode": "false", "sagemaker_pytorch_xla_multi_worker_enabled": "false" // set to "true" for distributed training }
Eine vollständige Liste der Deep-Learning-Container-Image-URIs, für die der SageMaker Training Compiler implementiert ist, finden Sie unter. Unterstützte Frameworks