Usa i checkpoint in Amazon SageMaker - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa i checkpoint in Amazon SageMaker

Usa i checkpoint in Amazon SageMaker per salvare lo stato dei modelli di machine learning (ML) durante la formazione. I checkpoint sono istantanee del modello e possono essere configurati tramite le funzioni di callback dei framework ML. È possibile utilizzare i checkpoint salvati per riavviare un processo di addestramento dall'ultimo checkpoint salvato.

Utilizzando i checkpoint, puoi eseguire le seguenti operazioni:

  • Salvare le istantanee del modello durante l'addestramento a causa di un'interruzione imprevista del processo o dell'istanza di addestramento.

  • Riprendere ad addestrare il modello in futuro da un checkpoint.

  • Analizzare il modello nelle fasi intermedie dell’addestramento.

  • Usa i checkpoint con S3 Express One Zone per aumentare la velocità di accesso.

  • Utilizza i checkpoint con formazione in loco SageMaker gestita per risparmiare sui costi di formazione.

Il meccanismo di SageMaker formazione utilizza contenitori di formazione su istanze Amazon EC2 e i file dei checkpoint vengono salvati in una directory locale dei contenitori (l'impostazione predefinita è). /opt/ml/checkpoints SageMaker fornisce la funzionalità per copiare i checkpoint dal percorso locale ad Amazon S3 e sincronizza automaticamente i checkpoint in quella directory con S3. I checkpoint esistenti in S3 vengono scritti nel SageMaker contenitore all'inizio del processo, consentendo la ripresa dei processi da un checkpoint. I checkpoint aggiunti alla cartella S3 dopo l'avvio del processo non vengono copiati nel contenitore di formazione. SageMaker scrive anche nuovi checkpoint dal contenitore a S3 durante l'addestramento. Se un checkpoint viene eliminato nel SageMaker contenitore, verrà eliminato anche nella cartella S3.

Puoi utilizzare i checkpoint in Amazon SageMaker con la classe di storage Amazon S3 Express One Zone (S3 Express One Zone) per un accesso più rapido ai checkpoint. Quando abiliti il checkpoint e specifichi l'URI S3 per la destinazione di archiviazione del checkpoint, puoi fornire un URI S3 per una cartella in un bucket S3 generico o in un bucket di directory S3. Per ulteriori informazioni sui bucket di directory S3 Express One Zone e S3, consulta Cos'è S3 Express One Zone.

Se utilizzi checkpoint con formazione in loco SageMaker gestita, SageMaker gestisce il checkpoint dell'addestramento del modello su un'istanza locale e la ripresa del processo di formazione sull'istanza spot successiva. Con la formazione in loco SageMaker gestita, puoi ridurre in modo significativo il tempo fatturabile per l'addestramento dei modelli di machine learning. Per ulteriori informazioni, consulta Usa la formazione Spot gestita su Amazon SageMaker.

Punti di controllo per framework e algoritmi in SageMaker

Usa i checkpoint per salvare istantanee di modelli ML basati sui tuoi framework preferiti all'interno. SageMaker

SageMaker framework e algoritmi che supportano il checkpoint

SageMaker supporta il checkpoint per AWS Deep Learning Containers e un sottoinsieme di algoritmi integrati senza richiedere modifiche agli script di addestramento. SageMaker salva i checkpoint nel percorso locale predefinito '/opt/ml/checkpoints' e li copia su Amazon S3.

Se un algoritmo predefinito che non supporta il checkpoint viene utilizzato in un processo di formazione in loco gestito, SageMaker non consente un tempo massimo di attesa per il lavoro superiore a un'ora per limitare il tempo di formazione sprecato a causa delle interruzioni.

Per i container di addestramento personalizzati e altri framework

Se si utilizzano contenitori di formazione, script di formazione o altri framework non elencati nella sezione precedente, è necessario configurare correttamente lo script di formazione utilizzando callback o API di formazione per salvare i checkpoint nel percorso locale ('/opt/ml/checkpoints') e caricarlo dal percorso locale nello script di formazione. SageMaker gli estimatori possono sincronizzarsi con il percorso locale e salvare i checkpoint su Amazon S3.

Abilita il checkpoint

Dopo aver abilitato il checkpoint, SageMaker salva i checkpoint su Amazon S3 e sincronizza il processo di formazione con il bucket checkpoint S3. Puoi utilizzare i bucket di directory S3 generici o i bucket di directory S3 per il tuo bucket S3 di checkpoint.

Diagramma architettonico della scrittura dei checkpoint durante l’addestramento.

L'esempio seguente mostra come configurare i percorsi dei checkpoint quando si costruisce uno stimatore. SageMaker Per abilitare il checkpoint, aggiungi i parametri checkpoint_s3_uri e checkpoint_local_path allo strumento di valutazione.

Il seguente modello di esempio mostra come creare uno SageMaker stimatore generico e abilitare il checkpoint. È possibile utilizzare questo modello per gli algoritmi supportati specificando il parametro image_uri. Per trovare gli URI delle immagini Docker per gli algoritmi con checkpoint supportato da SageMaker, vedi Docker Registry Paths and Example Code. Puoi anche sostituire estimator e utilizzare le classi principali e Estimator le classi estimator SageMaker di altri framework, come,, e. TensorFlow PyTorch MXNet HuggingFace XGBoost

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 )

I due parametri seguenti specificano i percorsi per il checkpoint:

  • checkpoint_local_path— Specifica il percorso locale in cui il modello salva periodicamente i checkpoint in un container di addestramento. Il percorso predefinito è '/opt/ml/checkpoints'. Se stai utilizzando altri framework o state utilizzando un container di addestramento personale, assicurati che la configurazione del checkpoint dello script di addestramento specifichi il percorso verso '/opt/ml/checkpoints'.

    Nota

    Si consiglia di specificare i percorsi locali in modo che siano coerenti con le impostazioni '/opt/ml/checkpoints' predefinite del checkpoint. SageMaker Se preferisci specificare il tuo percorso locale, assicurati di abbinare il percorso di salvataggio del checkpoint nello script di addestramento e il checkpoint_local_path parametro degli stimatori. SageMaker

  • checkpoint_s3_uri— L'URI di un bucket S3 in cui i checkpoint sono memorizzati in tempo reale. Puoi specificare un bucket di directory S3 generico o un bucket di directory S3 per memorizzare i checkpoint. Per ulteriori informazioni sui bucket di directory S3, consulta i bucket di directory nella Guida per l'utente di Amazon Simple Storage Service.

Per trovare un elenco completo dei parametri dello SageMaker estimatore, consulta l'API Estimator nella documentazione di Amazon SageMaker Python SDK.

Sfoglia i file dei checkpoint

Individua i file dei checkpoint utilizzando l'SDK SageMaker Python e la console Amazon S3.

Per trovare i file dei checkpoint a livello di codice

Per recuperare l'URI del bucket S3 in cui sono salvati i checkpoint, controlla il seguente attributo dello strumento di valutazione:

estimator.checkpoint_s3_uri

Ciò restituisce il percorso di output S3 per i checkpoint configurati durante la richiesta. CreateTrainingJob Per trovare i file dei checkpoint salvati utilizzando la console S3, usa la seguente procedura.

Per trovare i file dei checkpoint dalla console S3
  1. Accedi AWS Management Console e apri la SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/.

  2. Nel pannello di navigazione a sinistra scegli Processi di addestramento.

  3. Scegli il link al processo di addestramento con checkpoint abilitato per aprire le impostazioni del processo.

  4. Nella pagina Impostazioni processo del processo di addestramento, individua la sezione Configurazione Checkpoint.

    Sezione di configurazione del checkpoint nella pagina delle Impostazioni processo di un processo di addestramento.
  5. Usa il link al bucket S3 per accedere ai file del checkpoint.

Riprendi l'allenamento da un checkpoint

Per riprendere un processo di addestramento da un checkpoint, esegui un nuovo strumento di valutazione con lo stesso checkpoint_s3_uri che hai creato nella sezione Abilita il checkpoint. Una volta ripreso l'addestramento, i checkpoint di questo bucket S3 vengono ripristinati in checkpoint_local_path in ogni istanza del nuovo processo di addestramento. Assicurati che il bucket S3 si trovi nella stessa regione di quella della sessione corrente. SageMaker

Diagramma dell'architettura della sincronizzazione dei checkpoint per la ripresa dell'addestramento.

Riparazioni del cluster per errori della GPU

Se stai eseguendo un processo di formazione che non funziona su una GPU, SageMaker eseguirà un controllo dello stato della GPU per vedere se l'errore è correlato a un problema relativo alla GPU. SageMaker esegue le seguenti azioni in base ai risultati del controllo dello stato di salute:

  • Se l'errore è recuperabile e può essere risolto riavviando l'istanza o reimpostando la GPU, riavvierà l'istanza. SageMaker

  • Se l'errore non è recuperabile ed è causato da una GPU che deve essere sostituita, sostituirà l'istanza. SageMaker

L'istanza viene sostituita o riavviata come parte di un processo di riparazione del cluster. SageMaker Durante questo processo, verrà visualizzato il seguente messaggio nello stato del lavoro di formazione:

Repairing training cluster due to hardware failure

SageMaker tenterà di riparare il cluster fino a 10 volte. Se la riparazione del cluster ha esito positivo, SageMaker riavvierà automaticamente il processo di formazione dal checkpoint precedente. Se la riparazione del cluster fallisce, anche il processo di formazione fallirà. Non ti viene addebitato il costo del processo di riparazione del cluster. Le riparazioni dei cluster non verranno avviate a meno che il processo di formazione non fallisca. Se viene rilevato un problema relativo alla GPU per un cluster Warmpool, il cluster entrerà in modalità di riparazione per riavviare o sostituire l'istanza difettosa. Dopo la riparazione, il cluster può ancora essere utilizzato come cluster warmpool.

Il processo di riparazione di cluster e istanze descritto in precedenza è illustrato nel diagramma seguente:

The cluster repair process checks for training errors and attempts to fix them if they are caused by a GPU.

Considerazioni relative al checkpoint

Considerate quanto segue quando utilizzate i checkpoint in. SageMaker

  • Per evitare sovrascritture nell’addestramento distribuito con più istanze, devi configurare manualmente i nomi e i percorsi dei file di checkpoint nello script di addestramento. La configurazione dei SageMaker checkpoint di alto livello specifica una singola posizione Amazon S3 senza suffissi o prefissi aggiuntivi per etichettare i checkpoint da più istanze.

  • L'SDK SageMaker Python non supporta la configurazione di alto livello per la frequenza dei checkpoint. Per controllare la frequenza dei checkpoint, modifica lo script di addestramento utilizzando le funzioni di salvataggio del modello o i callback dei checkpoint del framework.

  • Se utilizzi i SageMaker checkpoint con SageMaker Debugger e SageMaker distributed e riscontri problemi, consulta le pagine seguenti per la risoluzione dei problemi e le considerazioni.