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.
Verwenden Sie Checkpoints in Amazon SageMaker
Verwenden Sie Checkpoints in Amazon SageMaker , um den Status von Modellen für maschinelles Lernen (ML) während des Trainings zu speichern. Checkpoints sind Schnappschüsse des Modells und können mit den Callback-Funktionen von ML-Frameworks konfiguriert werden. Sie können die gespeicherten Checkpoints verwenden, um einen Trainingsjob vom zuletzt gespeicherten Checkpoint aus neu zu starten.
Mit Checkpoints können Sie folgende Aktionen ausführen:
-
Speichern Sie Ihre Modellschnappschüsse während des Trainings aufgrund einer unerwarteten Unterbrechung des Trainingsjobs oder der Trainings-Instance.
-
Setzen Sie das Training des Modells in der Zukunft an einem Checkpoint fort.
-
Analysieren Sie das Modell in den Zwischenphasen des Trainings.
-
Verwenden Sie Checkpoints mit S3 Express One Zone für höhere Zugriffsgeschwindigkeiten.
-
Verwenden Sie Checkpoints mit SageMaker verwaltetem Spot-Training, um Schulungskosten zu sparen.
Der SageMaker Trainingsmechanismus verwendet Trainingscontainer auf EC2 Amazon-Instances, und die Checkpoint-Dateien werden in einem lokalen Verzeichnis der Container gespeichert (die Standardeinstellung ist/opt/ml/checkpoints
). SageMaker bietet die Funktionalität zum Kopieren der Checkpoints aus dem lokalen Pfad nach Amazon S3 und synchronisiert die Checkpoints in diesem Verzeichnis automatisch mit S3. Bestehende Checkpoints in S3 werden zu Beginn des Jobs in den SageMaker Container geschrieben, sodass Jobs von einem Checkpoint aus wieder aufgenommen werden können. Checkpoints, die dem S3-Ordner nach dem Start des Jobs hinzugefügt wurden, werden nicht in den Trainingscontainer kopiert. SageMaker schreibt während des Trainings auch neue Checkpoints aus dem Container in S3. Wenn ein Checkpoint im SageMaker Container gelöscht wird, wird er auch im S3-Ordner gelöscht.
Sie können Checkpoints in Amazon SageMaker mit der Amazon S3 Express One Zone-Speicherklasse (S3 Express One Zone) für einen schnelleren Zugriff auf Checkpoints verwenden. Wenn Sie Checkpointing aktivieren und S3 URI für Ihr Checkpoint-Speicherziel angeben, können Sie ein S3 URI für einen Ordner entweder in einem S3-Allzweck-Bucket oder einem S3-Verzeichnis-Bucket angeben. Weitere Informationen zu S3 Express One Zone und S3 Directory-Buckets finden Sie unter Was ist S3 Express One Zone.
Wenn Sie Checkpoints mit SageMaker verwaltetem Spot-Training verwenden, SageMaker verwaltet es das Checkpoint-Training Ihres Modells auf einer Spot-Instance und die Wiederaufnahme des Trainingsjobs auf der nächsten Spot-Instance. Mit SageMaker verwaltetem Spot-Training können Sie die abrechnungsfähige Zeit für das Training von ML-Modellen erheblich reduzieren. Weitere Informationen finden Sie unter Verwenden von Managed Spot Training in Amazon SageMaker.
Themen
Checkpoints für Frameworks und Algorithmen in SageMaker
Verwenden Sie Checkpoints, um Schnappschüsse von ML-Modellen zu speichern, die auf Ihren bevorzugten Frameworks basieren. SageMaker
SageMaker Frameworks und Algorithmen, die Checkpointing unterstützen
SageMaker unterstützt Checkpointing für AWS Deep Learning Containers und eine Untergruppe integrierter Algorithmen, ohne dass Änderungen am Trainingsskript erforderlich sind. SageMaker speichert die Checkpoints im lokalen Standardpfad '/opt/ml/checkpoints'
und kopiert sie nach Amazon S3.
-
Deep Learning Containers: TensorFlowPyTorch
, MXNet , und HuggingFace Anmerkung
Wenn Sie den HuggingFace Framework-Estimator verwenden, müssen Sie mithilfe von Hyperparametern einen Checkpoint-Ausgabepfad angeben. Weitere Informationen finden Sie in der HuggingFaceDokumentation unter Schulung SageMaker bei Amazon durchführen
. -
Integrierte Algorithmen: Bildklassifizierung, Objekterkennung, Semantische Segmentierung und XGBoost(0.90-1 oder höher)
Anmerkung
Wenn Sie den XGBoost Algorithmus im Framework-Modus (Skriptmodus) verwenden, müssen Sie ein manuell konfiguriertes XGBoost Trainingsskript mit Checkpointing mitbringen. Weitere Informationen zu den XGBoost Trainingsmethoden zum Speichern von Modellschnappschüssen finden Sie XGBoost in der XGBoost SDK Python-Dokumentation unter Training
.
Wenn in einem verwalteten Spot-Trainingsjob ein vorgefertigter Algorithmus verwendet wird, der Checkpointing SageMaker nicht unterstützt, ist eine maximale Wartezeit von mehr als einer Stunde für den Job nicht zulässig, um die durch Interrupts verschwendete Trainingszeit zu begrenzen.
Für benutzerdefinierte Trainingscontainer und andere Frameworks
Wenn Sie Ihre eigenen Trainingscontainer, Trainingsskripte oder andere Frameworks verwenden, die nicht im vorherigen Abschnitt aufgeführt sind, müssen Sie Ihr Trainingsskript mithilfe von Callbacks oder Training ordnungsgemäß einrichten, APIs um Checkpoints im lokalen Pfad ('/opt/ml/checkpoints'
) zu speichern und aus dem lokalen Pfad in Ihrem Trainingsskript zu laden. SageMaker Schätzer können sich mit dem lokalen Pfad synchronisieren und die Checkpoints in Amazon S3 speichern.
Checkpointing aktivieren
Nachdem Sie Checkpointing aktiviert haben, werden Checkpoints in Amazon S3 SageMaker gespeichert und Ihr Trainingsjob mit dem Checkpoint S3-Bucket synchronisiert. Sie können entweder S3-Allzweck-Buckets oder S3-Verzeichnis-Buckets für Ihren Checkpoint S3-Bucket verwenden.
Das folgende Beispiel zeigt, wie Sie Checkpoint-Pfade konfigurieren, wenn Sie einen Schätzer erstellen. SageMaker Um Checkpointing zu aktivieren, fügen Sie Ihrem Schätzer die Parameter checkpoint_s3_uri
und checkpoint_local_path
hinzu.
Die folgende Beispielvorlage zeigt, wie Sie einen generischen SageMaker Schätzer erstellen und Checkpointing aktivieren. Sie können diese Vorlage für die unterstützten Algorithmen verwenden, indem Sie den image_uri
-Parameter angeben. Das Docker-Image URIs für Algorithmen mit Checkpointing, die von unterstützt werden SageMaker, finden Sie unter Docker-Registrierungspfade und Beispielcode. Sie können estimator
und Estimator
auch durch die übergeordneten Schätzerklassen und SageMaker Schätzerklassen anderer Frameworks ersetzen, z. B.,, und. TensorFlow
PyTorch
MXNet
HuggingFace
XGBoost
import sagemaker from sagemaker.
estimator
importEstimator
bucket=sagemaker.Session().default_bucket() base_job_name="sagemaker-checkpoint-test
" checkpoint_in_bucket="checkpoints
" # The S3 URI to store the checkpoints checkpoint_s3_bucket="s3://{}/{}/{}".format(bucket, base_job_name, checkpoint_in_bucket) # The local path where the model will save its checkpoints in the training container checkpoint_local_path="/opt/ml/checkpoints" estimator =Estimator
( ... image_uri="<ecr_path>
/<algorithm-name>
:<tag>
" # Specify to use built-in algorithms output_path=bucket, base_job_name=base_job_name, # Parameters required to enable checkpointing checkpoint_s3_uri=checkpoint_s3_bucket, checkpoint_local_path=checkpoint_local_path )
Die folgenden beiden Parameter spezifizieren Pfade für Checkpoints:
-
checkpoint_local_path
– Geben Sie den lokalen Pfad an, unter dem das Modell die Checkpoints regelmäßig in einem Trainingscontainer speichert. Der Standardpfad ist auf'/opt/ml/checkpoints'
gesetzt. Wenn Sie andere Frameworks verwenden oder Ihren eigenen Trainingscontainer mitbringen, stellen Sie sicher, dass die Checkpoint-Konfiguration Ihres Trainingsskripts den Pfad zu'/opt/ml/checkpoints'
angibt.Anmerkung
Wir empfehlen, die lokalen Pfade anzugeben, damit sie mit den
'/opt/ml/checkpoints'
standardmäßigen Checkpoint-Einstellungen konsistent sind. SageMaker Wenn Sie es vorziehen, Ihren eigenen lokalen Pfad anzugeben, stellen Sie sicher, dass Sie den Checkpoint-Speicherpfad in Ihrem Trainingsskript mit dencheckpoint_local_path
Parametern der SageMaker Schätzer übereinstimmen. -
checkpoint_s3_uri
— Der URI zu einem S3-Bucket, in dem die Checkpoints in Echtzeit gespeichert werden. Sie können entweder einen S3-Bucket für allgemeine Zwecke oder einen S3-Verzeichnis-Bucket zum Speichern Ihrer Checkpoints angeben. Weitere Informationen zu S3-Verzeichnis-Buckets finden Sie unter Directory-Buckets im Amazon Simple Storage Service-Benutzerhandbuch.
Eine vollständige Liste der SageMaker Schätzparameter finden Sie unter Estimator API
Durchsuchen Sie die Checkpoint-Dateien
Suchen Sie mit SageMaker Python SDK und der Amazon S3 S3-Konsole nach Checkpoint-Dateien.
Um die Checkpoint-Dateien programmgesteuert zu finden
Um den S3-Bucket abzurufenURI, in dem die Checkpoints gespeichert sind, überprüfen Sie das folgende Estimator-Attribut:
estimator.checkpoint_s3_uri
Dadurch wird der S3-Ausgabepfad für Checkpoints zurückgegeben, die bei der Anforderung konfiguriert wurden. CreateTrainingJob
Gehen Sie wie folgt vor, um die gespeicherten Checkpoint-Dateien mithilfe der S3-Konsole zu finden.
Um die Checkpoint-Dateien von der S3-Konsole aus zu finden
-
Melden Sie sich bei der an AWS Management Console und öffnen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/
. -
Wählen Sie im linken Navigationsbereich die Option Trainingsaufträge.
-
Wählen Sie den Link zu dem Trainingsjob mit aktiviertem Checkpointing, um die Jobeinstellungen zu öffnen.
-
Suchen Sie auf der Seite mit den Jobeinstellungen des Trainingsjobs den Abschnitt Checkpoint-Konfiguration.
-
Verwenden Sie den Link zum S3-Bucket, um auf die Checkpoint-Dateien zuzugreifen.
Setzen Sie das Training von einem Checkpoint aus fort
Um einen Trainingsauftrag von einem Kontrollpunkt aus wieder aufzunehmen, führen Sie einen neuen Kalkulator mit denselben checkpoint_s3_uri
aus, die Sie im Abschnitt Checkpointing aktivieren erstellt haben. Sobald das Training wieder aufgenommen wurde, werden die Checkpoints aus diesem S3-Bucket in jeder Instance des neuen Trainingsauftrags in checkpoint_local_path
wiederhergestellt. Stellen Sie sicher, dass sich der S3-Bucket in derselben Region wie der der aktuellen SageMaker Sitzung befindet.
Cluster-Reparaturen bei GPU Fehlern
Wenn Sie einen Trainingsjob ausführen, der bei einem fehlschlägtGPU, SageMaker wird eine GPU Integritätsprüfung durchgeführt, um festzustellen, ob der Fehler mit einem GPU Problem zusammenhängt. SageMaker ergreift auf der Grundlage der Ergebnisse der Integritätsprüfung die folgenden Aktionen:
Wenn der Fehler behebbar ist und durch einen Neustart der Instanz oder das Zurücksetzen der behoben werden kann, wird die Instanz neu gestartet. GPU SageMaker
Wenn der Fehler nicht behebbar ist und durch eine verursacht wird, die ersetzt werden mussGPU, wird die Instanz ersetzt. SageMaker
Die Instanz wird im Rahmen einer SageMaker Cluster-Reparatur entweder ersetzt oder neu gestartet. Während dieses Vorgangs wird in Ihrem Trainingsjobstatus die folgende Meldung angezeigt:
Repairing training cluster due to hardware failure
SageMaker versucht bis zu 10
mehrmals, den Cluster zu reparieren. Wenn die Clusterreparatur erfolgreich ist, SageMaker wird der Trainingsjob automatisch vom vorherigen Checkpoint aus neu gestartet. Wenn die Clusterreparatur fehlschlägt, schlägt auch der Trainingsjob fehl. Der Clusterreparaturprozess wird Ihnen nicht in Rechnung gestellt. Clusterreparaturen werden erst eingeleitet, wenn Ihr Schulungsjob fehlschlägt. Wenn bei einem Warmpool-Cluster ein GPU Problem festgestellt wird, wechselt der Cluster in den Reparaturmodus, um entweder neu zu starten oder die fehlerhafte Instanz zu ersetzen. Nach der Reparatur kann der Cluster weiterhin als Warmpool-Cluster verwendet werden.
Der zuvor beschriebene Prozess zur Reparatur von Clustern und Instanzen ist in der folgenden Abbildung dargestellt:
Überlegungen zum Checkpointing
Beachten Sie Folgendes, wenn Sie Checkpoints in verwenden. SageMaker
-
Um Überschreibungen beim verteilten Training mit mehreren Instances zu vermeiden, müssen Sie die Namen und Pfade der Checkpoint-Dateien in Ihrem Trainingsskript manuell konfigurieren. Die SageMaker Checkpoint-Konfiguration auf hoher Ebene spezifiziert einen einzelnen Amazon S3 S3-Standort ohne zusätzliche Suffixe oder Präfixe, um Checkpoints von mehreren Instances zu kennzeichnen.
-
SageMaker Python unterstützt SDK keine High-Level-Konfiguration für die Checkpoint-Frequenz. Um die Checkpoint-Frequenz zu steuern, modifizieren Sie Ihr Trainingsskript mithilfe der Modellspeicherfunktionen oder Checkpoint-Callbacks des Frameworks.
-
Wenn Sie SageMaker Checkpoints zusammen mit SageMaker Debugger und SageMaker verteiltem Debugger verwenden und dabei Probleme haben, finden Sie auf den folgenden Seiten Informationen zur Problembehandlung und Überlegungen.