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.
Vous pouvez utiliser des pools de chaleur gérés par l' SageMaker IA via le SDK SageMaker Python, la console Amazon SageMaker AI ou via le bas APIs 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 supprimez des pools de chaleur à l'aide du SDK SageMaker Python.
Note
Cette fonctionnalité est disponible dans le SDK SageMaker AI Python v2.110.0
Rubriques
Créer un groupe d'instances pré-initialisées
Pour créer un pool de chaleur, utilisez le SDK SageMaker Python pour créer un estimateur avec une keep_alive_period_in_seconds
valeur supérieure à 0 et appelez. fit()
Une fois la tâche d'entraînement terminée, un groupe d'instances pré-initialisées est retenu. Pour plus d'informations sur les scripts d'entraînement et les estimateurs, voir Entraîner un modèle avec le SDK SageMaker Python
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow
# Creates a SageMaker AI session and gets execution role
session = sagemaker.Session()
role = get_execution_role()
# Creates an example estimator
estimator = TensorFlow(
...
entry_point='my-training-script.py'
,
source_dir='code'
,
role=role
,
model_dir='model_dir'
,
framework_version='2.2'
,
py_version='py37'
,
job_name='my-training-job-1'
,
instance_type='ml.g4dn.xlarge'
,
instance_count=1
,
volume_size=250
,
hyperparameters={
"batch-size": 512
,
"epochs": 1
,
"learning-rate": 1e-3
,
"beta_1": 0.9
,
"beta_2": 0.999
,
},
keep_alive_period_in_seconds=1800
,
)
# Starts a SageMaker training job and waits until completion
estimator.fit('s3://my_bucket/my_training_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 fonctionnalité 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 an example estimator
estimator = TensorFlow(
...
entry_point='my-training-script.py'
,
source_dir='code'
,
role=role
,
model_dir='model_dir'
,
framework_version='py37'
,
py_version='pyxy'
,
job_name='my-training-job-2'
,
instance_type='ml.g4dn.xlarge'
,
instance_count=1
,
volume_size=250
,
hyperparameters={
"batch-size": 512
,
"epochs": 2
,
"learning-rate": 1e-3
,
"beta_1": 0.9
,
"beta_2": 0.999
,
},
keep_alive_period_in_seconds=1800
,
)
# Starts a SageMaker training job and waits until completion
estimator.fit('s3://my_bucket/my_training_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 tâches d'entraînement comportent des suffixes date/heure. 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 du bas niveau SageMaker APIs
Utilisez des pools de chaleur gérés par l' SageMaker IA avec l' SageMaker API ou la AWS CLI.
SageMaker API d'IA
Configurez des pools de chaleur gérés par l' SageMaker IA à l'aide de l' SageMaker API à l'aide des commandes suivantes :
AWS CLI
Configurez des pools de chaleur gérés par l' SageMaker IA à l'aide de la AWS CLI avec les 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 pools de chaleur gérés par l'IA sont limités à une KeepAlivePeriodInSeconds
valeur de 3 600 secondes (60 minutes), mais les administrateurs peuvent abaisser cette limite si nécessaire.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceKeepAlivePeriodLimit",
"Effect": "Allow",
"Action": [
"sagemaker:CreateTrainingJob"
],
"Resource": "*",
"Condition": {
"NumericLessThanIfExists": {
"sagemaker:KeepAlivePeriod": 1800
}
}
}
]
}
Pour plus d'informations, consultez la section Clés de condition pour Amazon SageMaker AI dans la référence d'autorisation de service.