Verwenden Sie Checkpoints in Amazon SageMaker - Amazon SageMaker

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.

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.

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.


                Architekturdiagramm zum Schreiben von Checkpoints während des Trainings.

Im folgenden Beispiel wird gezeigt, wie Prüfpunktpfade konfiguriert werden, wenn Sie eine SageMaker Schätzer. Um Checkpointing zu aktivieren, fügen Siecheckpoint_s3_uriundcheckpoint_local_pathParameter 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_uriParameter. So finden Sie Docker-Image-URIs für Algorithmen mit Checkpointing, die unterstützt werden von SageMakersieheDocker-Registrierungspfade und Beispielcode. Sie können auch ersetzenestimatorundEstimatormit anderen SageMaker übergeordnete Schätzerklassen und Schätzerklassen von Frameworks, wieTensorFlow,PyTorch,MXNet,HuggingFaceundXGBoost.

import sagemaker from sagemaker.estimator import Estimator 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_pathParameter 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-APIin derAmazon SageMaker Python SDKDokumentation.

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 derCreateTrainingJobanfragen. 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
  1. Melden Sie sich bei der anAWS Management Consoleund öffnen Sie SageMaker -Konsolehttps://console.aws.amazon.com/sagemaker/.

  2. Klicken Sie im linken Navigationsbereich aufTrainingsaufträge.

  3. Wählen Sie den Link zum Trainingsjob mit aktiviertem Checkpointing zum ÖffnenJob-Einstellungen.

  4. Auf derJob-EinstellungenSeite des Ausbildungsjobs, suchen Sie dieCheckpoint-KonfigurationAbschnitt.

    
                        Abschnitt Checkpoint-Konfiguration auf der Seite „Job-Einstellungen“ eines Schulungsjobs.
  5. 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_uridie du erstellt hast in derAktivieren von CheckpointingAbschnitt. Sobald das Training wieder aufgenommen wurde, werden die Checkpoints aus diesem S3-Bucket wiederhergestelltcheckpoint_local_pathin jedem Fall des neuen Ausbildungsjobs. Stellen Sie sicher, dass sich der S3-Bucket in derselben Region wie der aktuelle befindet SageMaker sitzung.


                Architekturdiagramm zum Synchronisieren von Checkpoints zur Wiederaufnahme des Trainings.

Ü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.