Utiliser les points de contrôle sur Amazon SageMaker - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser les points de contrôle sur Amazon SageMaker

Utilisez les points de contrôle sur Amazon SageMaker pour enregistrer l'état des modèles de machine learning (ML) pendant la formation. Les points de contrôle sont des instantanés du modèle et peuvent être configurés par les fonctions de rappel de cadres ML. Vous pouvez utiliser les points de contrôle enregistrés pour redémarrer une tâche d'entraînement à partir du dernier point de contrôle enregistré.

À l'aide des points de contrôle, vous pouvez exécuter les actions suivantes :

  • Enregistrer vos instantanés de modèle en cours d'entraînement en cas d'interruption inattendue de la tâche ou de l'instance d'entraînement.

  • Reprendre l'entraînement du modèle à l'avenir à partir d'un point de contrôle.

  • Analyser le modèle aux étapes intermédiaires de l'entraînement.

  • Utilisez les points de contrôle avec S3 Express One Zone pour augmenter les vitesses d'accès.

  • Utilisez les points de contrôle avec une formation ponctuelle SageMaker gérée pour économiser sur les coûts de formation.

Le mécanisme de SageMaker formation utilise des conteneurs de formation sur les instances Amazon EC2, et les fichiers de points de contrôle sont enregistrés dans un répertoire local des conteneurs (la valeur par défaut est). /opt/ml/checkpoints SageMaker fournit la fonctionnalité permettant de copier les points de contrôle depuis le chemin local vers Amazon S3 et de synchroniser automatiquement les points de contrôle de ce répertoire avec S3. Les points de contrôle existants dans S3 sont écrits dans le SageMaker conteneur au début de la tâche, ce qui permet aux tâches de reprendre à partir d'un point de contrôle. Les points de contrôle ajoutés au dossier S3 après le début de la tâche ne sont pas copiés dans le conteneur de formation. SageMaker écrit également de nouveaux points de contrôle du conteneur vers S3 pendant l'entraînement. Si un point de contrôle est supprimé dans le SageMaker conteneur, il sera également supprimé dans le dossier S3.

Vous pouvez utiliser les points de contrôle sur Amazon SageMaker avec la classe de stockage Amazon S3 Express One Zone (S3 Express One Zone) pour accéder plus rapidement aux points de contrôle. Lorsque vous activez le point de contrôle et que vous spécifiez l'URI S3 pour votre destination de stockage de point de contrôle, vous pouvez fournir une URI S3 pour un dossier dans un compartiment S3 à usage général ou un compartiment de répertoire S3. Pour plus d'informations sur S3 Express One Zone et les compartiments de répertoire S3, consultez Qu'est-ce que S3 Express One Zone ?

Si vous utilisez des points de contrôle avec une formation ponctuelle SageMaker gérée, SageMaker gère le point de contrôle de votre modèle d'entraînement sur une instance ponctuelle et la reprise de la tâche de formation sur l'instance ponctuelle suivante. Grâce SageMaker à l'entraînement ponctuel géré, vous pouvez réduire considérablement le temps facturable consacré à la formation des modèles de machine learning. Pour plus d’informations, consultez Utilisez Managed Spot Training sur Amazon SageMaker.

Points de contrôle pour les frameworks et les algorithmes dans SageMaker

Utilisez les points de contrôle pour enregistrer des instantanés des modèles de machine learning créés à partir de vos frameworks préférés. SageMaker

SageMaker cadres et algorithmes qui prennent en charge le point de contrôle

SageMaker prend en charge le point de contrôle pour les AWS Deep Learning Containers et un sous-ensemble d'algorithmes intégrés sans qu'il soit nécessaire de modifier les scripts d'entraînement. SageMaker enregistre les points de contrôle sur le chemin local par défaut '/opt/ml/checkpoints' et les copie sur Amazon S3.

Si un algorithme prédéfini qui ne prend pas en charge le point de contrôle est utilisé dans le cadre d'une tâche de formation ponctuelle gérée, SageMaker il n'autorise pas un temps d'attente maximal supérieur à une heure pour le travail afin de limiter le temps de formation perdu en raison des interruptions.

Pour les conteneurs d'entraînement personnalisés et autres cadres

Si vous utilisez vos propres conteneurs de formation, scripts de formation ou autres frameworks non répertoriés dans la section précédente, vous devez configurer correctement votre script d'entraînement à l'aide de rappels ou d'API d'entraînement pour enregistrer les points de contrôle sur le chemin local ('/opt/ml/checkpoints') et le charger à partir du chemin local dans votre script d'entraînement. SageMaker les estimateurs peuvent se synchroniser avec le chemin local et enregistrer les points de contrôle sur Amazon S3.

Activer le point de contrôle

Après avoir activé le point de contrôle, enregistré SageMaker les points de contrôle sur Amazon S3 et synchronisé votre tâche de formation avec le compartiment de point de contrôle S3. Vous pouvez utiliser des compartiments S3 à usage général ou des compartiments de répertoire S3 pour votre compartiment S3 de point de contrôle.

Diagramme d'architecture de l'écriture des points de contrôle pendant l'entraînement.

L'exemple suivant montre comment configurer les chemins des points de contrôle lorsque vous créez un SageMaker estimateur. Pour activer la création de points de reprise, ajoutez les paramètres checkpoint_s3_uri et checkpoint_local_path à votre estimateur.

L'exemple de modèle suivant montre comment créer un SageMaker estimateur générique et activer le point de contrôle. Vous pouvez utiliser ce modèle pour les algorithmes pris en charge en spécifiant le paramètre image_uri. Pour trouver les URI d'image Docker pour les algorithmes dont le point de contrôle est pris en charge par SageMaker, voir Chemins de registre Docker et exemple de code. Vous pouvez également remplacer estimator et par les classes Estimator parentes d' SageMaker estimateurs et les classes d'estimateurs d'autres frameworks, telles que,, et. 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 )

Les deux paramètres suivants spécifient les chemins d'accès pour la création de points de reprise :

  • checkpoint_local_path : spécifiez le chemin d'accès local où le modèle enregistre les points de contrôle périodiquement dans un conteneur d'entraînement. Le chemin d'accès par défaut est défini sur '/opt/ml/checkpoints'. Si vous utilisez d'autres cadres ou que vous importez votre propre conteneur d'entraînement, veillez à ce que la configuration de point de contrôle de votre script d'entraînement spécifie le chemin d'accès à '/opt/ml/checkpoints'.

    Note

    Nous vous recommandons de spécifier les chemins locaux de manière '/opt/ml/checkpoints' à ce qu'ils soient cohérents avec les paramètres de SageMaker point de contrôle par défaut. Si vous préférez spécifier votre propre chemin local, assurez-vous de faire correspondre le chemin de sauvegarde des points de contrôle dans votre script d'apprentissage et les checkpoint_local_path paramètres des SageMaker estimateurs.

  • checkpoint_s3_uri : l'URI vers un compartiment S3 où les points de contrôle sont stockés en temps réel. Vous pouvez spécifier un compartiment S3 à usage général ou un compartiment de répertoire S3 pour stocker vos points de contrôle. Pour plus d'informations sur les compartiments d'annuaire S3, consultez la section Buckets de répertoire dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Pour obtenir la liste complète des paramètres de l' SageMaker estimateur, consultez l'API Estimator dans la documentation du SDK Amazon Python SageMaker .

Parcourir les fichiers de points de contrôle

Localisez les fichiers de points de contrôle à l'aide du SDK SageMaker Python et de la console Amazon S3.

Pour rechercher les fichiers de points de contrôle par programmation

Pour récupérer l'URI du compartiment S3 où les points de contrôle sont enregistrés, vérifiez l'attribut d'estimateur suivant :

estimator.checkpoint_s3_uri

Cela renvoie le chemin de sortie S3 pour les points de contrôle configurés lors de la CreateTrainingJob demande. Pour rechercher les fichiers de point de contrôle enregistrés à l'aide de la console S3, procédez comme suit.

Pour rechercher les fichiers de point de contrôle depuis la console S3
  1. Connectez-vous à la SageMaker console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Dans le panneau de navigation de gauche, choisissez Training jobs (Tâches d'entraînement).

  3. Choisissez le lien vers la tâche d'entraînement avec la création de points de reprise activée pour ouvrir Job settings (Paramètres de la tâche).

  4. Sur la page Job settings (Paramètres de la tâche) de la tâche d'entraînement, localisez la section Checkpoint configuration (Configuration des points de contrôle).

    Section Configuration des points de contrôle sur la page Paramètres de la tâche d'une tâche d'entraînement.
  5. Utilisez le lien vers le compartiment S3 pour accéder aux fichiers de points de contrôle.

Reprendre l'entraînement depuis un poste de contrôle

Pour reprendre une tâche d'entraînement à partir d'un point de contrôle, exécutez un nouvel estimateur avec le même checkpoint_s3_uri que celui créé dans la section Activer le point de contrôle. Une fois que l'entraînement a repris, les points de contrôle de ce compartiment S3 sont restaurés au checkpoint_local_path dans chaque instance de la nouvelle tâche d'entraînement. Assurez-vous que le compartiment S3 se trouve dans la même région que celui de la SageMaker session en cours.

Diagramme d'architecture de synchronisation des points de contrôle pour reprendre l'entraînement.

Réparations de clusters en cas d'erreurs de GPU

Si vous exécutez une tâche de formation qui échoue sur un processeur graphique, vous SageMaker effectuerez une vérification de l'état du processeur afin de déterminer si l'échec est lié à un problème de processeur graphique. SageMaker prend les mesures suivantes en fonction des résultats du bilan de santé :

  • Si l'erreur est récupérable et peut être corrigée en redémarrant l'instance ou en réinitialisant le GPU, SageMaker elle redémarrera l'instance.

  • Si l'erreur n'est pas réparable et qu'elle est causée par un GPU qui doit être remplacé, l'instance SageMaker sera remplacée.

L'instance est remplacée ou redémarrée dans le cadre d'un processus de réparation du SageMaker cluster. Au cours de ce processus, le message suivant s'affichera dans le statut de votre poste de formation :

Repairing training cluster due to hardware failure

SageMaker tentera de réparer le cluster 10 plusieurs fois. Si la réparation du cluster est réussie, la tâche de formation SageMaker redémarrera automatiquement à partir du point de contrôle précédent. Si la réparation du cluster échoue, la tâche de formation échouera également. Le processus de réparation du cluster ne vous est pas facturé. Les réparations de clusters ne débuteront que si votre formation échoue. Si un problème de GPU est détecté pour un cluster Warmpool, celui-ci passe en mode réparation pour redémarrer ou remplacer l'instance défectueuse. Après réparation, le cluster peut toujours être utilisé comme cluster Warmpool.

Le processus de réparation des clusters et des instances décrit précédemment est illustré dans le schéma suivant :

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

Considérations relatives au point de contrôle

Tenez compte des points suivants lorsque vous utilisez des points de contrôle dans. SageMaker

  • Pour éviter les écrasements dans l'entraînement distribué à plusieurs instances, vous devez configurer manuellement les noms et les chemins d'accès des fichiers de points de contrôle dans votre script d'entraînement. La configuration de haut niveau des SageMaker points de contrôle spécifie un seul emplacement Amazon S3 sans suffixes ni préfixes supplémentaires pour baliser les points de contrôle provenant de plusieurs instances.

  • Le SDK SageMaker Python ne prend pas en charge la configuration de haut niveau pour la fréquence des points de contrôle. Pour contrôler la fréquence de création de points de reprise, modifiez votre script d'entraînement à l'aide des fonctions d'enregistrement du modèle du cadre ou des rappels de points de contrôle.

  • Si vous utilisez des SageMaker points de contrôle avec SageMaker Debugger et SageMaker distribuez et que vous rencontrez des problèmes, consultez les pages suivantes pour connaître les problèmes et les considérations à prendre en compte.