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.
Utilisez des piscines chaudes gérées par SageMaker IA
Vous pouvez utiliser des pools chauds gérés par l' SageMaker IA via le SDK SageMaker Python, la console Amazon SageMaker AI ou les API de bas niveau. Les administrateurs peuvent éventuellement utiliser la clé de condition sagemaker:KeepAlivePeriod pour restreindre davantage les limites KeepAlivePeriodInSeconds pour certains utilisateurs ou groupes.
Rubriques
Utilisation du SDK SageMaker AI Python
Créez, mettez à jour ou mettez fin à des pools chauds à l'aide du SDK SageMaker Python.
Note
Cette fonctionnalité est disponible dans le SDK SageMaker AI Python
Rubriques
Créer un groupe d'instances pré-initialisées
Pour créer un pool chaud, utilisez le SDK SageMaker Python pour créer une tâche d'entraînement avec une keep_alive_period_in_seconds valeur supérieure à 0 et démarrer l'entraînement. Une fois la tâche d'entraînement terminée, un groupe d'instances pré-initialisées est retenu. Si votre script ne crée pas de groupe d'instances pré-initialisées, consultez Création d'un groupe d'instances pré-initialisées pour obtenir les explications possibles.
Utilisez le SDK SageMaker Python pour créer un ModelTrainer avec une keep_alive_period_in_seconds valeur supérieure à 0 dans la Compute configuration et appeleztrain(). Pour plus d'informations sur la formation avec le SDK SageMaker Python, voir Entraîner un modèle avec le SDK SageMaker
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, SourceCode from sagemaker.core.helper.session_helper import Session, get_execution_role from sagemaker.core import image_uris from sagemaker.train.configs import InputData # Creates a SageMaker AI session and gets execution role session = Session() role = get_execution_role() # Retrieve the TensorFlow training image training_image = image_uris.retrieve( framework="tensorflow", region=session.boto_region_name, version="2.2", py_version="py37", instance_type="ml.g4dn.xlarge", image_scope="training" ) # Creates an example ModelTrainer with warm pool enabled model_trainer = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "1", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer.train(input_data_config=[train_data])
Ensuite, créez une deuxième tâche d'entraînement correspondante. Dans cet exemple, nous créons my-training-job-2, qui possède tous les attributs nécessaires pour correspondre à my-training-job-1, mais qui possède un hyperparamètre différent pour l'expérimentation. La deuxième tâche d'entraînement réutilise le groupe d'instances pré-initialisées et démarre plus rapidement que la première. L'exemple de code suivant utilise un estimateur Tensorflow. La fonction Warm Pool peut être utilisée avec n'importe quel algorithme d'entraînement exécuté sur Amazon SageMaker AI. Pour plus d'informations sur les attributs qui doivent correspondre, consultez Tâches d'entraînement correspondantes.
# Creates a second ModelTrainer that reuses the warm pool model_trainer_2 = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "2", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer_2.train(input_data_config=[train_data])
Consultez l'état du groupe d'instances pré-initialisées des deux tâches d'entraînement pour veiller à ce qu'il soit Reused pour my-training-job-1 et InUse pour my-training-job-2.
Note
Les noms des métiers de formation comportent des date/time suffixes. Les exemples de noms des tâches d'entraînement my-training-job-1 et my-training-job-2 doivent être remplacés par les noms réels des tâches d'entraînement. Vous pouvez utiliser la commande estimator.latest_training_job.job_name pour récupérer le nom réel de la tâche d'entraînement.
session.describe_training_job('my-training-job-1') session.describe_training_job('my-training-job-2')
Le résultat de describe_training_job fournit tous les détails relatifs à une tâche d'entraînement donnée. Recherchez l'attribut WarmPoolStatus pour consulter les informations relatives au groupe d'instances pré-initialisées d'une tâche d'entraînement. Votre sortie doit ressembler à l'exemple suivant :
# Warm pool status for training-job-1 ... 'WarmPoolStatus': {'Status': 'Reused', 'ResourceRetainedBillableTimeInSeconds': 1000, 'ReusedByName': my-training-job-2} ... # Warm pool status for training-job-2 ... 'WarmPoolStatus': {'Status': 'InUse'} ...
Mettre à jour un groupe d'instances pré-initialisées
Lorsque la tâche d'entraînement est terminée et que l'état du groupe d'instances pré-initialisées est Available, mettez à jour la valeur KeepAlivePeriodInSeconds.
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":3600})
Terminer un groupe d'instances pré-initialisées
Pour résilier manuellement un groupe d'instances pré-initialisées, définissez la valeur KeepAlivePeriodInSeconds
sur 0.
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})
Le groupe d'instances pré-initialisées se résilie automatiquement en cas de dépassement de la valeur KeepAlivePeriodInSeconds spécifiée ou de mise à jour du correctif pour le cluster.
Utilisation de la console Amazon SageMaker AI
Via la console, vous pouvez créer un groupe d'instances pré-initialisées ou vérifier le statut du groupe d'instances pré-initialisées et la durée facturable des tâches d'entraînement spécifiques. Vous pouvez également voir quelles tâches d'entraînement correspondantes ont réutilisé un groupe d'instances pré-initialisées.
-
Ouvrez la console Amazon SageMaker AI
et choisissez Training jobs dans le volet de navigation. Le cas échéant, le statut du groupe d'instances pré-initialisées de chaque tâche d'entraînement est visible dans la colonne Statut du groupe d'instances pré-initialisées et le temps restant pour un groupe d'instances pré-initialisée actif est visible dans la colonne Temps restant. -
Pour créer une tâche d'entraînement utilisant un groupe d'instances pré-initialisées depuis la console, choisissez Créer une tâche d'entraînement. Assurez-vous ensuite de spécifier une valeur pour le champ Période toujours active lorsque vous configurez les ressources de vos tâches d'entraînement. Cette valeur doit être un entier compris entre 1 et 3 600, ce qui représente la durée en secondes.
-
Pour libérer un groupe d'instances pré-initialisées depuis la console, sélectionnez une tâche d'entraînement spécifique et choisissez Libérer le cluster dans le menu déroulant Actions.
-
Pour voir plus d'informations sur un groupe d'instances pré-initialisées, choisissez un nom de tâche d'entraînement. Dans la page des détails de la tâche, faites défiler la page jusqu'à la section Statut du groupe d'instances pré-initialisées pour connaître le statut du groupe d'instances pré-initialisées, la durée restante si le statut du groupe d'instances pré-initialisées est
Available, le nombre de secondes facturables du groupe d'instances pré-initialisées et le nom de la tâche d'entraînement ayant réutilisé le groupe d'instances pré-initialisées si l'état du groupe d'instances pré-initialisées estReused.
Utilisation des API de bas niveau SageMaker
Utilisez des pools chauds gérés par SageMaker IA avec l' SageMaker API ou l' AWS interface de ligne de commande.
SageMaker API d'IA
Configurez des pools chauds gérés par SageMaker IA à l'aide de l' SageMaker API à l'aide des commandes suivantes :
AWS INTERFACE DE LIGNE DE COMMANDE (CLI)
Configurez des pools chauds gérés par SageMaker IA à l'aide de la AWS CLI à l'aide des commandes suivantes :
Clé de condition IAM
Les administrateurs peuvent éventuellement utiliser la clé de sagemaker:KeepAlivePeriod condition pour restreindre davantage les KeepAlivePeriodInSeconds limites pour certains utilisateurs ou groupes. SageMaker Les piscines chaudes gérées par IA sont limitées à une KeepAlivePeriodInSeconds valeur de 3 600 secondes (60 minutes), mais les administrateurs peuvent abaisser cette limite si nécessaire.
Pour plus d'informations, consultez la section Clés de condition pour Amazon SageMaker AI dans la référence d'autorisation de service.