

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 d'eau chaude gérées par l' SageMaker IA
<a name="train-warm-pools-how-to-use"></a>

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.

**Topics**
+ [Utilisation du SDK SageMaker AI Python](#train-warm-pools-how-to-use-python-sdk)
+ [Utilisation de la console Amazon SageMaker AI](#train-warm-pools-how-to-use-sagemaker-console)
+ [Utilisation du bas niveau SageMaker APIs](#train-warm-pools-how-to-use-low-level-apis)
+ [Clé de condition IAM](#train-warm-pools-how-to-use-iam-condition-key)

## Utilisation du SDK SageMaker AI Python
<a name="train-warm-pools-how-to-use-python-sdk"></a>

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](https://pypi.org/project/sagemaker/2.110.0/) et versions ultérieures.

**Topics**
+ [Créer un groupe d'instances pré-initialisées](#train-warm-pools-how-to-use-python-sdk-create)
+ [Mettre à jour un groupe d'instances pré-initialisées](#train-warm-pools-how-to-use-python-sdk-update)
+ [Terminer un groupe d'instances pré-initialisées](#train-warm-pools-how-to-use-python-sdk-terminate)

### Créer un groupe d'instances pré-initialisées
<a name="train-warm-pools-how-to-use-python-sdk-create"></a>

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](https://sagemaker.readthedocs.io/en/stable/overview.html#train-a-model-with-the-sagemaker-python-sdk). 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](train-warm-pools.md#train-warm-pools-creation) pour obtenir les explications possibles.

```
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](train-warm-pools.md#train-warm-pools-matching-criteria).

```
# 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 postes 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
<a name="train-warm-pools-how-to-use-python-sdk-update"></a>

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
<a name="train-warm-pools-how-to-use-python-sdk-terminate"></a>

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
<a name="train-warm-pools-how-to-use-sagemaker-console"></a>

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.

1. Ouvrez la [console Amazon SageMaker AI](https://console.aws.amazon.com/ec2/) 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**.

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

1. 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**.

1. 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 est `Reused`.

## Utilisation du bas niveau SageMaker APIs
<a name="train-warm-pools-how-to-use-low-level-apis"></a>

Utilisez des pools de chaleur gérés par l' SageMaker IA avec l' SageMaker API ou la AWS CLI.

### SageMaker API d'IA
<a name="train-warm-pools-how-to-use-low-level-apis-sagemaker"></a>

Configurez des pools de chaleur gérés par l' SageMaker IA à l'aide de l' SageMaker API à l'aide des commandes suivantes :
+ [ CreateTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
+ [ UpdateTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)
+ [ ListTrainingJobs ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html)
+ [ DescribeTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)

### AWS CLI
<a name="train-warm-pools-how-to-use-low-level-apis-cli"></a>

Configurez des pools de chaleur gérés par l' SageMaker IA à l'aide de la AWS CLI avec les commandes suivantes :
+ [create-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-training-job.html)
+ [update-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-training-job.html)
+ [list-training-jobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/list-training-jobs.html)
+ [describe-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-training-job.html)

## Clé de condition IAM
<a name="train-warm-pools-how-to-use-iam-condition-key"></a>

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. 

------
#### [ JSON ]

****  

```
{
    "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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys) dans la *référence d'autorisation de service*.