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 Machine Learning (ML) -Modellen während des Trainings zu speichern. Checkpoints sind Momentaufnahmen des Modells und können durch die 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.
Die SageMaker Der Trainingsmechanismus verwendet Trainingscontainer auf Amazon EC2 EC2-Instances, und die Checkpoint-Dateien werden in einem lokalen Verzeichnis der Container gespeichert (die Standardeinstellung ist/opt/ml/checkpoints
) enthalten. SageMaker bietet die Funktionalität zum Kopieren der Prüfpunkte aus dem lokalen Pfad nach Amazon S3 und synchronisiert die Prüfpunkte in diesem Verzeichnis automatisch mit Amazon S3. Bestehende Checkpoints in S3 werden in die SageMaker Container zu Beginn des Auftrags, wodurch Jobs von einem Checkpoint aus fortgesetzt werden können. Prüfpunkte, die dem S3-Ordner hinzugefügt wurden, nachdem der Job gestartet wurde, werden nicht in den Trainingscontainer kopiert. SageMaker schreibt während des Trainings auch neue Checkpoints aus dem Container in S3. Wenn ein Checkpoint gelöscht wird SageMaker Container, es wird auch im S3-Ordner gelöscht.
Mit Checkpoints können Sie folgende Aktionen ausführen:
-
Speichern Sie Ihre Modell-Snapshots im Training aufgrund einer unerwarteten Unterbrechung des Trainingsauftrags oder der Trainingsinstanz.
-
Setzen Sie das Training des Modells in future von einem Checkpoint aus fort.
-
Analysieren Sie das Modell in Zwischenphasen des Trainings.
-
Verwenden Sie Prüfpunkte mit SageMaker verwaltetes Training vor Ort, um Schulungskosten zu sparen.
Wenn Sie Checkpoints verwenden mit SageMaker verwaltetes Training vor Ort, SageMaker verwaltet das Checkpoints Ihres Modelltrainings auf einer Spot-Instanz und das Wiederaufnehmen des Trainingsjobs an der nächsten Spot-Instanz. mit SageMaker Managed Spot Training können Sie die abrechenbare Zeit für das Training von ML-Modellen erheblich reduzieren. Weitere Informationen finden Sie unter Verwaltetes Spot-Training in Amazon SageMaker.
Themen
Checkpoints für Frameworks und Algorithmen in SageMaker
Verwenden Sie Checkpoints, um Snapshots von ML-Modellen zu speichern, die auf Ihren bevorzugten Frameworks basieren SageMaker.
SageMaker Frameworks und Algorithmen, die Checkpoints unterstützen
SageMaker unterstützt Checkpointing fürAWSDeep Learning Containers und eine Teilmenge integrierter Algorithmen, ohne dass Änderungen am Trainingsskript erforderlich sind. SageMaker speichert die Checkpoints im lokalen Standardpfad'/opt/ml/checkpoints'
und kopiert sie in Amazon S3.
-
Deep Learning Containers TensorFlow
,PyTorch ,MXNet , undHuggingFace Anmerkung
Wenn Sie die HuggingFace Framework-Schätzer müssen Sie einen Checkpoint-Ausgabepfad über Hyperparameter angeben. Weitere Informationen finden Sie unterFühren Sie Schulungen bei Amazon durch SageMaker
in derHuggingFaceDokumentation. -
Integrierte Algorithmen Bild-Klassifizierung,Objekterkennung,Semantische Segmentierung, undXG-Boost(0.90-1 oder höher)
Anmerkung
Wenn Sie den XGBoost-Algorithmus im Framework-Modus (Skriptmodus) verwenden, müssen Sie ein XGBoost-Trainingsskript mit Checkpoints verwenden, das manuell konfiguriert wurde. Weitere Informationen zu den XGBoost-Trainingsmethoden zum Speichern von Modell-Snapshots finden Sie unterSchulung XGBoost
indie XGBoost Python SDK-Dokumentation.
Wenn ein vorgefertigter Algorithmus, der Checkpoints nicht unterstützt, in einem Managed Spot Training Job verwendet wird, SageMaker erlaubt keine maximale Wartezeit von mehr als einer Stunde für den Auftrag, um die durch Interrupts verschwendete Trainingszeit zu begrenzen.
Für individuelle Trainingscontainer und andere Frameworks
Wenn Sie Ihre eigenen Trainingscontainer, Trainingsskripte oder andere Frameworks verwenden, die im vorherigen Abschnitt nicht aufgeführt sind, müssen Sie Ihr Trainingsskript mithilfe von Callbacks oder Trainings-APIs ordnungsgemäß einrichten, um Prüfpunkte im lokalen Pfad zu speichern ('/opt/ml/checkpoints'
) und laden Sie vom lokalen Pfad in Ihr Trainingsskript. SageMaker Schätzer können sich mit dem lokalen Pfad synchronisieren und die Checkpoints in Amazon S3 speichern.
Aktivieren von Checkpointing
Nachdem Sie Checkpointing aktiviert haben, SageMaker speichert Checkpoints in Amazon S3 und synchronisiert Ihren Trainingsjob mit dem Checkpoint S3-Bucket.

Im folgenden Beispiel wird gezeigt, wie Prüfpunktpfade konfiguriert werden, wenn Sie eine SageMaker Schätzer. Um Checkpointing zu aktivieren, fügen Siecheckpoint_s3_uri
undcheckpoint_local_path
Parameter für Ihren Schätzer.
In der folgenden Beispielvorlage wird gezeigt, wie eine generische Vorlage erstellt wird SageMaker estimator und Checkpointing aktivieren. Sie können diese Vorlage für die unterstützten Algorithmen verwenden, indem Sieimage_uri
Parameter. So finden Sie Docker-Image-URIs für Algorithmen mit Checkpointing, die unterstützt werden von SageMakersieheDocker-Registrierungspfade und Beispielcode. Sie können auch ersetzenestimator
undEstimator
mit anderen SageMaker übergeordnete Schätzerklassen und Schätzerklassen von Frameworks, wieTensorFlow
,PyTorch
,MXNet
,HuggingFace
undXGBoost
.
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 zwei Parameter geben Pfade für Checkpoints an:
-
checkpoint_local_path
— Geben Sie den lokalen Pfad an, in dem das Modell die Checkpoints regelmäßig in einem Trainingscontainer speichert. Der Standardpfad ist auf'/opt/ml/checkpoints'
. 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'
.Anmerkung
Wir empfehlen die Angabe der lokalen Pfade als
'/opt/ml/checkpoints'
um mit dem Standard konsistent zu sein SageMaker Checkpoint-Einstellungen. Wenn Sie lieber Ihren eigenen lokalen Pfad angeben möchten, stellen Sie sicher, dass Sie mit dem Checkpoint-Speicherpfad in Ihrem Trainingsskript übereinstimmen undcheckpoint_local_path
Parameter der SageMakerSchätzer. -
checkpoint_s3_uri
— Die URI zu einem S3-Bucket, in dem die Checkpoints in Echtzeit gespeichert werden.
Finden Sie eine vollständige Liste der SageMaker Schätzerparameter, siehe dieSchätz-API
Checkpoint Dateien durchsuchen
Suchen Sie Checkpoint-Dateien mit dem SageMaker Python SDK und die Amazon S3 S3-Konsole.
So finden Sie die Checkpoint-Dateien programmgesteuert
Um den S3-Bucket-URI abzurufen, in dem die Checkpoints gespeichert sind, überprüfen Sie das folgende Schätzattribut:
estimator.checkpoint_s3_uri
Dies gibt den Amazon S3 S3-Ausgabepfad für Prüfpunkte zurück, die beim Anfordern derCreateTrainingJob
anfragen. Gehen Sie wie folgt vor, um die gespeicherten Prüfpunktdateien über die Amazon-S3-Konsole zu finden.
Suchen Sie Prüfpunkte über die Amazon-S3-Konsole
-
Melden Sie sich bei der anAWS Management Consoleund öffnen Sie SageMaker -Konsolehttps://console.aws.amazon.com/sagemaker/
. -
Klicken Sie im linken Navigationsbereich aufTrainingsaufträge.
-
Wählen Sie den Link zum Trainingsjob mit aktiviertem Checkpointing zum ÖffnenJob-Einstellungen.
-
Auf derJob-EinstellungenSeite des Ausbildungsjobs, suchen Sie dieCheckpoint-KonfigurationAbschnitt.
-
Verwenden Sie den Link zum S3-Bucket, um auf die Prüfpunktdateien zuzugreifen.
Training von einem Checkpoint aus fortsetzen
Um einen Schulungsjob von einem Checkpoint aus wieder aufzunehmen, führen Sie einen neuen Schätzer mit demselben auscheckpoint_s3_uri
die du erstellt hast in derAktivieren von CheckpointingAbschnitt. Sobald das Training wieder aufgenommen wurde, werden die Checkpoints aus diesem S3-Bucket wiederhergestelltcheckpoint_local_path
in jedem Fall des neuen Ausbildungsjobs. Stellen Sie sicher, dass sich der S3-Bucket in derselben Region wie der aktuelle befindet SageMaker sitzung.

Überlegungen zu Checkpointing
Beachten Sie Folgendes, wenn Sie Prüfpunkte in SageMaker.
-
Um Überschreibungen im verteilten Training mit mehreren Instanzen zu vermeiden, müssen Sie die Checkpoint-Dateinamen und -Pfade in Ihrem Trainingsskript manuell konfigurieren. Der hochrangige SageMaker checkpoint-konfiguration gibt einen einzelnen Amazon S3 S3-Standort ohne zusätzliche Suffixe oder Präfixe an, um Prüfpunkte aus mehreren Instanzen zu kennzeichnen.
-
Die SageMaker Das Python-SDK unterstützt keine Konfiguration auf hoher Ebene für die Häufigkeit von Checkpoints. Um die Checkpoint-Häufigkeit zu steuern, modifizieren Sie Ihr Trainingsskript mithilfe der Modellspeicherfunktionen des Frameworks oder Checkpoint-Callbacks.
-
Wenn Sie verwenden SageMaker Prüfpunkte mit SageMaker Debugger und SageMaker verteilt und mit Problemen konfrontiert sind, finden Sie auf den folgenden Seiten Informationen zur Fehlerbehebung und Überlegungen.