

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.

# Exemple : tâche de réglage d'hyperparamètres
<a name="automatic-model-tuning-ex"></a>

Cet exemple montre comment créer un bloc-notes pour configurer et lancer une tâche de réglage d'hyperparamètres. La tâche de réglage utilise [XGBoost algorithme avec Amazon SageMaker AI](xgboost.md) pour entraîner un modèle afin de prédire si un client va s'inscrire pour un dépôt bancaire à terme après avoir été contacté par téléphone.

Vous utilisez le SDK de bas niveau pour Python (Boto3) pour configurer et lancer la tâche de réglage des hyperparamètres, ainsi que pour surveiller l'état des tâches de réglage AWS Management Console des hyperparamètres. Vous pouvez également utiliser le [SDK Amazon SageMaker Python de haut niveau d'Amazon SageMaker ](https://sagemaker.readthedocs.io/en/stable) AI pour configurer, exécuter, surveiller et analyser les tâches de réglage des hyperparamètres. Pour de plus amples informations, veuillez consulter [https://github.com/aws/sagemaker-python-sdk](https://github.com/aws/sagemaker-python-sdk).

## Prérequis
<a name="automatic-model-tuning-ex-prereq"></a>

Pour exécuter le code de cet exemple, vous avez besoin de :
+ [Un AWS compte et un utilisateur administrateur](gs-set-up.md)
+ Un compartiment Amazon S3 pour stocker votre jeu de données d'entraînement et les artefacts du modèle créés pendant l'entraînement
+ [Une instance de bloc-notes SageMaker AI en cours d'exécution](gs-setup-working-env.md)

**Topics**
+ [Prérequis](#automatic-model-tuning-ex-prereq)
+ [Création d'une instance de bloc-notes](automatic-model-tuning-ex-notebook.md)
+ [Obtenez le client Amazon SageMaker AI Boto 3](automatic-model-tuning-ex-client.md)
+ [Obtenez le rôle d'exécution de l' SageMaker IA](automatic-model-tuning-ex-role.md)
+ [Utilisation d'un compartiment Amazon S3 pour les entrées et les sorties](automatic-model-tuning-ex-bucket.md)
+ [Téléchargement, préparation et chargement des données d'entraînement](automatic-model-tuning-ex-data.md)
+ [Configuration et lancement de la tâche de réglage des hyperparamètres](automatic-model-tuning-ex-tuning-job.md)
+ [Nettoyage](automatic-model-tuning-ex-cleanup.md)

# Création d'une instance de bloc-notes
<a name="automatic-model-tuning-ex-notebook"></a>

**Important**  
Les politiques IAM personnalisées qui permettent à Amazon SageMaker Studio ou Amazon SageMaker Studio Classic de créer des SageMaker ressources Amazon doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n'autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour de plus amples informations, veuillez consulter [Fournir des autorisations pour le balisage des ressources d' SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiques gérées pour Amazon SageMaker AI](security-iam-awsmanpol.md)qui donnent des autorisations pour créer des SageMaker ressources incluent déjà des autorisations pour ajouter des balises lors de la création de ces ressources.

Créez un bloc-notes Jupyter qui contient un environnement préinstallé avec l'installation Anaconda par défaut et Python3. 

**Pour créer un bloc-notes Jupyter**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Ouvrez une instance de bloc-notes en cours d'exécution en sélectionnant **Ouvrir** en regard de son nom. La page du serveur de blocs-notes Jupyter s'affiche :

     
![\[Exemple de page de serveur de bloc-notes Jupyter.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/notebook-dashboard.png)

1. Pour créer un bloc-notes, choisissez **Files (Fichiers)**, **New (Nouveau)** et **conda\$1python3**.

1. Nommez le bloc-notes.

## Étape suivante
<a name="automatic-model-tuning-ex-next-client"></a>

[Obtenez le client Amazon SageMaker AI Boto 3](automatic-model-tuning-ex-client.md)

# Obtenez le client Amazon SageMaker AI Boto 3
<a name="automatic-model-tuning-ex-client"></a>

Importez le SDK Amazon SageMaker Python et AWS SDK pour Python (Boto3) d'autres bibliothèques Python. Dans un nouveau bloc-notes Jupyter, collez le code suivant dans la première cellule :

```
import sagemaker
import boto3

import numpy as np                                # For performing matrix operations and numerical processing
import pandas as pd                               # For manipulating tabular data
from time import gmtime, strftime
import os

region = boto3.Session().region_name
smclient = boto3.Session().client('sagemaker')
```

La cellule de code précédente définit `region` les `smclient` objets que vous utiliserez pour appeler l' XGBoost algorithme intégré et définir la tâche de réglage des hyperparamètres de l' SageMaker IA.

## Étape suivante
<a name="automatic-model-tuning-ex-next-role"></a>

[Obtenez le rôle d'exécution de l' SageMaker IA](automatic-model-tuning-ex-role.md)

# Obtenez le rôle d'exécution de l' SageMaker IA
<a name="automatic-model-tuning-ex-role"></a>

Obtenez le rôle d'exécution pour l'instance de bloc-notes. Il s'agit du rôle IAM que vous avez créé pour votre instance de bloc-notes.

Pour rechercher l'ARN du rôle d'exécution IAM attaché à une instance de bloc-notes :

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation de gauche, choisissez **Bloc-notes** puis **Instances de blocs-notes**.

1. Dans la liste des blocs-notes, sélectionnez le bloc-notes que vous souhaitez consulter.

1. L'ARN se trouve dans la section **Autorisations et chiffrement**.

Les utilisateurs du [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) peuvent également récupérer l'ARN du rôle d'exécution associé à leur profil utilisateur ou à une instance de bloc-notes en exécutant le code suivant :

```
from sagemaker import get_execution_role

role = get_execution_role()
print(role)
```

Pour plus d'informations sur l'utilisation `get_execution_role` dans le [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), consultez [Session](https://sagemaker.readthedocs.io/en/stable/api/utility/session.html). Pour plus d'informations sur les rôles , consultez [Comment utiliser les rôles d'exécution de l' SageMaker IA](sagemaker-roles.md).

## Étape suivante
<a name="automatic-model-tuning-ex-next-bucket"></a>

[Utilisation d'un compartiment Amazon S3 pour les entrées et les sorties](automatic-model-tuning-ex-bucket.md)

# Utilisation d'un compartiment Amazon S3 pour les entrées et les sorties
<a name="automatic-model-tuning-ex-bucket"></a>

Configurez un compartiment S3 pour télécharger des jeux de données d'entraînement et enregistrer les données de sortie d'entraînement pour votre tâche de réglage des hyperparamètres.

**Pour utiliser un compartiment S3 par défaut**

Utilisez le code suivant pour spécifier le compartiment S3 par défaut alloué à votre session SageMaker AI. `prefix`est le chemin dans le compartiment où l' SageMaker IA stocke les données relatives à la tâche de formation en cours.

```
sess = sagemaker.Session()
bucket = sess.default_bucket() # Set a default S3 bucket
prefix = 'DEMO-automatic-model-tuning-xgboost-dm'
```

**(Facultatif) Pour utiliser un compartiment S3 spécifique**

Si vous souhaitez utiliser un compartiment S3 spécifique, utilisez le code suivant et remplacez les chaînes par le nom exact du compartiment S3. Le nom du compartiment doit contenir **sagemaker** et être globalement unique. Le compartiment doit se trouver dans la même région AWS que l'instance de bloc-notes utilisée pour cet exemple.

```
bucket = "sagemaker-your-preferred-s3-bucket"

sess = sagemaker.Session(
    default_bucket = bucket
)
```

**Note**  
Le nom du compartiment n'a pas besoin de contenir **sagemaker** si le rôle IAM que vous utilisez pour exécuter la tâche de réglage d'hyperparamètres possède une politique qui accorde l'autorisation `S3FullAccess`.

## Étape suivante
<a name="automatic-model-tuning-ex-next-data"></a>

[Téléchargement, préparation et chargement des données d'entraînement](automatic-model-tuning-ex-data.md)

# Téléchargement, préparation et chargement des données d'entraînement
<a name="automatic-model-tuning-ex-data"></a>

Pour cet exemple, vous utilisez un jeu de données de formation contenant des informations sur les clients de la banque (emploi, statut marital et mode de contact lors de la campagne de marketing direct de la banque). Pour utiliser un jeu de données pour une tâche de réglage d'hyperparamètres, commencez par le télécharger, transformez ensuite les données, puis téléchargez-les dans un compartiment Amazon S3.

****Pour plus d'informations sur l'ensemble de données et la transformation des données effectuée dans l'exemple, consultez le bloc-notes *hpo\$1xgboost\$1direct\$1marketing\$1sagemaker\$1 dans la section Réglage APIs* des hyperparamètres de l'onglet Exemples d'IA de votre instance de bloc-notes. SageMaker ****

## Téléchargement et exploration du jeu de données d'entraînement
<a name="automatic-model-tuning-ex-data-download"></a>

Pour télécharger et explorer le jeu de données, exécutez le code suivant dans votre bloc-notes :

```
!wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip
!unzip -o bank-additional.zip
data = pd.read_csv('./bank-additional/bank-additional-full.csv', sep=';')
pd.set_option('display.max_columns', 500)     # Make sure we can see all of the columns
pd.set_option('display.max_rows', 5)         # Keep the output on one page
data
```

## Préparation et chargement des données
<a name="automatic-model-tuning-ex-data-transform"></a>

Avant de créer la tâche de réglage des hyperparamètres, préparez les données et chargez-les dans un compartiment S3 dans lequel la tâche de réglage des hyperparamètres pourra y accéder.

Exécutez le code suivant dans votre bloc-notes :

```
data['no_previous_contact'] = np.where(data['pdays'] == 999, 1, 0)                                 # Indicator variable to capture when pdays takes a value of 999
data['not_working'] = np.where(np.in1d(data['job'], ['student', 'retired', 'unemployed']), 1, 0)   # Indicator for individuals not actively employed
model_data = pd.get_dummies(data)                                                                  # Convert categorical variables to sets of indicators
model_data
model_data = model_data.drop(['duration', 'emp.var.rate', 'cons.price.idx', 'cons.conf.idx', 'euribor3m', 'nr.employed'], axis=1)

train_data, validation_data, test_data = np.split(model_data.sample(frac=1, random_state=1729), [int(0.7 * len(model_data)), int(0.9*len(model_data))])

pd.concat([train_data['y_yes'], train_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('train.csv', index=False, header=False)
pd.concat([validation_data['y_yes'], validation_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('validation.csv', index=False, header=False)
pd.concat([test_data['y_yes'], test_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('test.csv', index=False, header=False)

boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train/train.csv')).upload_file('train.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'validation/validation.csv')).upload_file('validation.csv')
```

## Étape suivante
<a name="automatic-model-tuning-ex-next-tuning-job"></a>

[Configuration et lancement de la tâche de réglage des hyperparamètres](automatic-model-tuning-ex-tuning-job.md)

# Configuration et lancement de la tâche de réglage des hyperparamètres
<a name="automatic-model-tuning-ex-tuning-job"></a>

**Important**  
Les politiques IAM personnalisées qui permettent à Amazon SageMaker Studio ou Amazon SageMaker Studio Classic de créer des SageMaker ressources Amazon doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n'autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour de plus amples informations, veuillez consulter [Fournir des autorisations pour le balisage des ressources d' SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiques gérées pour Amazon SageMaker AI](security-iam-awsmanpol.md)qui donnent des autorisations pour créer des SageMaker ressources incluent déjà des autorisations pour ajouter des balises lors de la création de ces ressources.

Un hyperparamètre est un paramètre de haut niveau qui influence le processus d'apprentissage lors de l'entraînement du modèle. Pour obtenir les meilleures prédictions de modèles, vous pouvez optimiser la configuration d'un hyperparamètre ou définir des valeurs d'hyperparamètres. Le processus de recherche d'une configuration optimale est appelé réglage des hyperparamètres. Pour configurer et lancer une tâche de réglage des hyperparamètres, suivez les étapes de ces guides.

**Topics**
+ [Paramètres de tâche de réglage des hyperparamètres](#automatic-model-tuning-ex-low-tuning-config)
+ [Configurer des tâches d'entraînement](#automatic-model-tuning-ex-low-training-def)
+ [Nommer et lancer la tâche de réglage des hyperparamètres](#automatic-model-tuning-ex-low-launch)
+ [Surveillance de la progression d'une tâche de réglage des hyperparamètres](automatic-model-tuning-monitor.md)
+ [Affichage de l'état des tâches d'entraînement](#automatic-model-tuning-monitor-training)
+ [Affichage de la meilleure tâche d'entraînement](#automatic-model-tuning-best-training-job)

## Paramètres de tâche de réglage des hyperparamètres
<a name="automatic-model-tuning-ex-low-tuning-config"></a>

Pour spécifier les paramètres de la tâche de réglage des hyperparamètres, vous devez définir un objet JSON quand vous créez la tâche de réglage. Transmettez cet objet JSON en tant que valeur du paramètre `HyperParameterTuningJobConfig` à l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html).

Dans cet objet JSON, spécifiez ce qui suit :

Dans cet objet JSON, vous spécifiez :
+ `HyperParameterTuningJobObjective` : la métrique objective utilisée pour évaluer les performances de la tâche d'entraînement lancée par la tâche de réglage des hyperparamètres.
+ `ParameterRanges` : la plage de valeurs qu'un hyperparamètre réglable peut utiliser lors de l'optimisation. Pour de plus amples informations, consultez [Définition des plages d'hyperparamètres](automatic-model-tuning-define-ranges.md).
+ `RandomSeed` : une valeur utilisée pour initialiser un générateur de nombres pseudo-aléatoires. La définition d'une valeur de départ aléatoire permettra aux stratégies de recherche de réglage des hyperparamètres de produire des configurations plus cohérentes pour la même tâche de réglage (facultatif).
+ `ResourceLimits` : le nombre maximum de tâches d'entraînement et d'entraînement parallèle que la tâche de réglage des hyperparamètres peut utiliser.

**Note**  
Si vous utilisez votre propre algorithme pour le réglage des hyperparamètres, plutôt qu'un [algorithme intégré](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) à l' SageMaker IA, vous devez définir des métriques pour votre algorithme. Pour de plus amples informations, veuillez consulter [Définition de métriques](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).

L'exemple de code suivant montre comment configurer une tâche de réglage d'hyperparamètres à l'aide de l'[XGBoostalgorithme](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) intégré. L'exemple de code montre comment définir des plages pour les hyperparamètres `eta`, `alpha`, `min_child_weight` et `max_depth`. Pour plus d'informations sur ces hyperparamètres et sur d'autres, consultez la section [XGBoostParamètres](https://xgboost.readthedocs.io/en/release_1.2.0/parameter.html). 

Dans cet exemple de code, la métrique objective de la tâche de réglage des hyperparamètres trouve la configuration des hyperparamètres qui maximise. `validation:auc` SageMaker Les algorithmes intégrés à l'IA écrivent automatiquement la métrique objective dans les CloudWatch journaux. L'exemple de code suivant illustre comment définir une `RandomSeed`. 

```
tuning_job_config = {
    "ParameterRanges": {
      "CategoricalParameterRanges": [],
      "ContinuousParameterRanges": [
        {
          "MaxValue": "1",
          "MinValue": "0",
          "Name": "eta"
        },
        {
          "MaxValue": "2",
          "MinValue": "0",
          "Name": "alpha"
        },
        {
          "MaxValue": "10",
          "MinValue": "1",
          "Name": "min_child_weight"
        }
      ],
      "IntegerParameterRanges": [
        {
          "MaxValue": "10",
          "MinValue": "1",
          "Name": "max_depth"
        }
      ]
    },
    "ResourceLimits": {
      "MaxNumberOfTrainingJobs": 20,
      "MaxParallelTrainingJobs": 3
    },
    "Strategy": "Bayesian",
    "HyperParameterTuningJobObjective": {
      "MetricName": "validation:auc",
      "Type": "Maximize"
    },
    "RandomSeed" : 123
  }
```

## Configurer des tâches d'entraînement
<a name="automatic-model-tuning-ex-low-training-def"></a>

La tâche de réglage des hyperparamètres lancera des tâches d'entraînement pour trouver une configuration optimale des hyperparamètres. Ces tâches de formation doivent être configurées à l'aide de l'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)API SageMaker AI. 

Pour configurer les tâches d'entraînement, définissez un objet JSON et transmettez-le comme valeur du paramètre `TrainingJobDefinition` dans `CreateHyperParameterTuningJob`.

Dans cet objet JSON, vous pouvez spécifier ce qui suit : 
+ `AlgorithmSpecification` : le [registry path](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html) (chemin de registre) de l'image Docker contenant l'algorithme d'entraînement et les métadonnées associées. Pour spécifier un algorithme, vous pouvez utiliser votre propre [algorithme personnalisé](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) dans un conteneur [Docker](https://docs.docker.com/get-started/overview/) ou un [algorithme intégré à l'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) (obligatoire).
+ `InputDataConfig` : la configuration d'entrée, y compris `ChannelName`, `ContentType` et la source de données pour vos données d'entraînement et de test (obligatoire).
+ `InputDataConfig` : la configuration d'entrée, y compris `ChannelName`, `ContentType` et la source de données pour vos données d'entraînement et de test (obligatoire).
+ L'emplacement de stockage pour la sortie de l'algorithme. Spécifiez le compartiment S3 où vous souhaitez stocker la sortie des tâches d'entraînement.
+ `RoleArn`— Le [nom de ressource Amazon](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) (ARN) d'un rôle Gestion des identités et des accès AWS (IAM) utilisé par l' SageMaker IA pour effectuer des tâches. Les tâches incluent la lecture des données d'entrée, le téléchargement d'une image Docker, l'écriture d'artefacts du modèle dans un compartiment S3, l'écriture de journaux dans Amazon CloudWatch Logs et l'écriture de métriques sur Amazon CloudWatch (obligatoire).
+ `StoppingCondition` : la durée maximale en secondes pendant laquelle une tâche d'entraînement peut être exécutée avant d'être arrêtée. Cette valeur doit être supérieure au temps nécessaire pour entraîner votre modèle (obligatoire).
+ `MetricDefinitions` : le nom et l'expression régulière qui définissent toutes les métriques émises par les tâches d'entraînement. Ne définissez des métriques que lorsque vous utilisez un algorithme d'entraînement personnalisé. L'exemple du code suivant utilise un algorithme intégré, qui a déjà des métriques définies. Pour plus d'informations sur la définition des métriques (facultatif), consultez [Définition de métriques](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).
+ `TrainingImage` : l'image du conteneur [Docker](https://docs.docker.com/get-started/overview/) qui spécifie l'algorithme d'entraînement (facultatif).
+ `StaticHyperParameters` : le nom et les valeurs des hyperparamètres qui ne sont pas réglés dans la tâche de réglage (facultatif).

Dans cet exemple de code, nous avons défini des valeurs statiques pour les paramètres `eval_metric`, `num_round`, `objective`, `rate_drop` et `tweedie_variance_power` de l'algorithme intégré [XGBoost algorithme avec Amazon SageMaker AI](xgboost.md).

------
#### [ SageMaker Python SDK v1 ]

```
from sagemaker.amazon.amazon_estimator import get_image_uri
training_image = get_image_uri(region, 'xgboost', repo_version='1.0-1')

s3_input_train = 's3://{}/{}/train'.format(bucket, prefix)
s3_input_validation ='s3://{}/{}/validation/'.format(bucket, prefix)

training_job_definition = {
    "AlgorithmSpecification": {
      "TrainingImage": training_image,
      "TrainingInputMode": "File"
    },
    "InputDataConfig": [
      {
        "ChannelName": "train",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_train
          }
        }
      },
      {
        "ChannelName": "validation",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_validation
          }
        }
      }
    ],
    "OutputDataConfig": {
      "S3OutputPath": "s3://{}/{}/output".format(bucket,prefix)
    },
    "ResourceConfig": {
      "InstanceCount": 2,
      "InstanceType": "ml.c4.2xlarge",
      "VolumeSizeInGB": 10
    },
    "RoleArn": role,
    "StaticHyperParameters": {
      "eval_metric": "auc",
      "num_round": "100",
      "objective": "binary:logistic",
      "rate_drop": "0.3",
      "tweedie_variance_power": "1.4"
    },
    "StoppingCondition": {
      "MaxRuntimeInSeconds": 43200
    }
}
```

------
#### [ SageMaker Python SDK v2 ]

```
training_image = sagemaker.image_uris.retrieve('xgboost', region, '1.0-1')

s3_input_train = 's3://{}/{}/train'.format(bucket, prefix)
s3_input_validation ='s3://{}/{}/validation/'.format(bucket, prefix)

training_job_definition = {
    "AlgorithmSpecification": {
      "TrainingImage": training_image,
      "TrainingInputMode": "File"
    },
    "InputDataConfig": [
      {
        "ChannelName": "train",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_train
          }
        }
      },
      {
        "ChannelName": "validation",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_validation
          }
        }
      }
    ],
    "OutputDataConfig": {
      "S3OutputPath": "s3://{}/{}/output".format(bucket,prefix)
    },
    "ResourceConfig": {
      "InstanceCount": 2,
      "InstanceType": "ml.c4.2xlarge",
      "VolumeSizeInGB": 10
    },
    "RoleArn": role,
    "StaticHyperParameters": {
      "eval_metric": "auc",
      "num_round": "100",
      "objective": "binary:logistic",
      "rate_drop": "0.3",
      "tweedie_variance_power": "1.4"
    },
    "StoppingCondition": {
      "MaxRuntimeInSeconds": 43200
    }
}
```

------

## Nommer et lancer la tâche de réglage des hyperparamètres
<a name="automatic-model-tuning-ex-low-launch"></a>

Après avoir configuré la tâche de réglage des hyperparamètres, vous pouvez la lancer en appelant l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html). L'exemple de code suivant utilise `tuning_job_config` et `training_job_definition`. Ils ont été définis dans les deux exemples de code précédents pour créer une tâche de réglage des hyperparamètres.

```
tuning_job_name = "MyTuningJob"
smclient.create_hyper_parameter_tuning_job(HyperParameterTuningJobName = tuning_job_name,
                                           HyperParameterTuningJobConfig = tuning_job_config,
                                           TrainingJobDefinition = training_job_definition)
```

# Surveillance de la progression d'une tâche de réglage des hyperparamètres
<a name="automatic-model-tuning-monitor"></a>

Pour suivre la progression d'une tâche de réglage d'hyperparamètres et les tâches de formation qu'elle lance, utilisez la console Amazon SageMaker AI.

**Topics**
+ [Affichage de l'état de la tâche de réglage des hyperparamètres](#automatic-model-tuning-monitor-tuning)

## Affichage de l'état de la tâche de réglage des hyperparamètres
<a name="automatic-model-tuning-monitor-tuning"></a>

**Pour afficher l'état de la tâche de réglage des hyperparamètres**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Choisissez **Tâches de réglage d’hyper-paramètre** .  
![\[Console Tâches de réglage d’hyper-paramètre.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/console-tuning-jobs.png)

1. Dans la liste des tâches de réglage des hyper-paramètres, vérifiez l'état de la tâche que vous avez lancée. Une tâche de réglage peut être :
   + `Completed` : la tâche de réglage des hyperparamètres s'est terminée avec succès.
   + `InProgress` : la tâche de réglage des hyperparamètres est en cours. Une ou plusieurs tâches d'entraînement sont toujours en cours d'exécution.
   + `Failed` : la tâche de réglage de l'hyperparamètre a échoué.
   + `Stopped` : la tâche de réglage des hyperparamètres a été arrêtée manuellement avant la fin. Toutes les tâches d'entraînement lancées par la tâche de réglage des hyperparamètres ont été arrêtées.
   + `Stopping` : la tâche de réglage des hyperparamètres est en cours d'arrêt.

## Affichage de l'état des tâches d'entraînement
<a name="automatic-model-tuning-monitor-training"></a>

**Pour afficher l'état des tâches d'entraînement lancées par la tâche de réglage des hyper-paramètres**

1. Dans la liste des tâches de réglage des hyperparamètres, choisissez la tâche que vous avez lancée.

1. Choisissez **Training jobs (Tâches d'entraînement)**.  
![\[Emplacement des tâches d’entraînement dans la .\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/hyperparameter-training-jobs.png)

1. Affichez l'état de chaque tâche d'entraînement. Pour obtenir davantage de détails sur une tâche, choisissez-la dans la liste des tâches d'entraînement. Pour afficher un résumé de l'état de toutes les tâches d'entraînement lancées par la tâche de réglage des hyperparamètres, consultez **Compteur de statut de tâche d'entraînement**.

   Une tâche d'entraînement peut être :
   + `Completed` : la tâche d'entraînement s'est terminée avec succès.
   + `InProgress` : la tâche d'entraînement est en cours.
   + `Stopped` : la tâche d'entraînement a été arrêtée manuellement avant la fin.
   + `Failed (Retryable)` : la tâche d'entraînement a échoué, mais peut être réessayée. Une tâche d'entraînement qui a échoué peut être relancée uniquement si le problème vient d'une erreur de service interne.
   + `Failed (Non-retryable)` : la tâche d'entraînement a échoué et ne peut pas être réessayée. Une tâche d'entraînement qui a échoué ne peut pas être relancé en cas d'erreur au niveau du client.
**Note**  
Les tâches de réglage des hyperparamètres peuvent être arrêtées et les ressources sous-jacentes [supprimées](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-cleanup.html), mais les tâches elles-mêmes ne peuvent pas être supprimées.

## Affichage de la meilleure tâche d'entraînement
<a name="automatic-model-tuning-best-training-job"></a>

Une tâche de réglage des hyperparamètres utilise la métrique d'objectif renvoyée par chaque tâche d'entraînement pour évaluer les tâches d'entraînement. Pendant le déroulement de la tâche de réglage des hyperparamètres, la meilleure tâche d'entraînement est celle qui a renvoyé la meilleure métrique d'objectif jusqu'au moment actuel. Une fois la tâche de réglage des hyperparamètres terminée, la meilleure tâche d'entraînement est celle qui a renvoyé la meilleure métrique d'objectif.

Pour afficher la meilleure tâche d'entraînement, choisissez **Meilleure tâche d'entraînement**.

![\[Emplacement de la meilleure tâche d’entraînement dans la console des tâches de réglage d’hyperparamètres.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/best-training-job.png)


Pour déployer la meilleure tâche de formation sous forme de modèle que vous pouvez héberger sur un point de terminaison d' SageMaker IA, choisissez **Create model**.

### Étape suivante
<a name="automatic-model-tuning-ex-next-cleanup"></a>

[Nettoyage](automatic-model-tuning-ex-cleanup.md)

# Nettoyage
<a name="automatic-model-tuning-ex-cleanup"></a>

Pour éviter des frais inutiles, après avoir terminé cet exemple, utilisez AWS Management Console pour supprimer les ressources que vous avez créées dans le cadre de cet exercice. 

**Note**  
Si vous prévoyez d'explorer d'autres exemples, il se peut que vous souhaitiez conserver certaines de ces ressources, telles que votre instance de bloc-notes, votre compartiment S3 et le rôle IAM.

1. Ouvrez la console SageMaker AI [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et supprimez l'instance du bloc-notes. Arrêtez l'instance avant de la supprimer.

1. Ouvrez la console Amazon S3 sur [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)et supprimez le compartiment que vous avez créé pour stocker les artefacts du modèle et le jeu de données d'entraînement. 

1. Ouvrez la console IAM à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)et supprimez le rôle IAM. Si vous avez créé des politiques d’autorisation, vous pouvez également les supprimer.

1. Ouvrez la CloudWatch console Amazon sur [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)et supprimez tous les groupes de journaux dont le nom commence par`/aws/sagemaker/`.