

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.

# Utilisation d’un algorithme pour exécuter une tâche de réglage d’hyperparamètre
<a name="sagemaker-mkt-algo-tune"></a>

La section suivante explique comment utiliser une ressource d'algorithme pour exécuter une tâche de réglage d'hyperparamètres dans Amazon SageMaker AI. Une tâche de réglage d’hyperparamètre détecte la meilleure version d’un modèle en exécutant plusieurs tâches d’entraînement sur votre jeu de données à l’aide de l’algorithme et des plages d’hyperparamètres que vous spécifiez. Elle choisit ensuite les valeurs d’hyperparamètres qui génèrent un modèle avec des performances optimales, telles qu’elles sont mesurées par une métrique que vous choisissez. Pour de plus amples informations, veuillez consulter [Réglage automatique du modèle grâce à l' SageMaker IA](automatic-model-tuning.md).

Vous pouvez créer une ressource d'algorithme pour créer une tâche de réglage d'hyperparamètres à l'aide de la console Amazon SageMaker AI, de l' SageMaker API Amazon de bas niveau ou du SDK Amazon [ SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

**Topics**
+ [Utilisation d’un algorithme pour exécuter une tâche de réglage d’hyperparamètre (console)](#sagemaker-mkt-algo-tune-console)
+ [Utilisation d’un algorithme pour exécuter une tâche de réglage d’hyperparamètre (API)](#sagemaker-mkt-algo-tune-api)
+ [Utiliser un algorithme pour exécuter une tâche de réglage d'hyperparamètres ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))](#sagemaker-mkt-algo-tune-sdk)

## Utilisation d’un algorithme pour exécuter une tâche de réglage d’hyperparamètre (console)
<a name="sagemaker-mkt-algo-tune-console"></a>

**Pour utiliser un algorithme afin d’exécuter une tâche de réglage d’hyperparamètre (console)**

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

1. Choisissez **Algorithmes**.

1. Choisissez un algorithme que vous avez créé dans la liste de l’onglet **Mes algorithmes** ou choisissez un algorithme auquel vous vous êtes abonné sur l’onglet des **abonnements AWS Marketplace **.

1. Choisissez **Créer une tâche de réglage d’hyperparamètre**.

   L’algorithme que vous avez choisi sera automatiquement sélectionné.

1. Sur la page **Créer une tâche de réglage d’hyperparamètre**, fournissez les informations suivantes :

   1. Sous **Démarrage à chaud**, choisissez **Activer le démarrage à chaud** afin d’utiliser les informations issues des tâches de réglage d’hyperparamètre précédentes comme point de départ pour cette tâche de réglage d’hyperparamètre. Pour de plus amples informations, veuillez consulter [Exécution d'une tâche de réglage des hyperparamètres avec démarrage à chaud](automatic-model-tuning-warm-start.md).

      1. Choisissez **Algorithme et données identiques** si les données d’entrée sont identiques aux données d’entrée des tâches parentes de cette tâche de réglage d’hyperparamètre ou choisissez **Apprentissage par transfert** afin d’utiliser des données d’entrée supplémentaires ou différentes pour cette tâche de réglage d’hyperparamètre.

      1. Sous **Tâche(s) de réglage d’hyperparamètre parente(s)**, choisissez jusqu’à cinq tâches de réglage d’hyperparamètre à utiliser comme parentes de cette tâche de réglage d’hyperparamètre.

   1. Sous **Nom de tâche de réglage d’hyperparamètre**, saisissez un nom pour la tâche de réglage.

   1. Pour le **rôle IAM**, choisissez un rôle IAM disposant des autorisations requises pour exécuter des tâches de réglage d'hyperparamètres dans SageMaker AI, ou choisissez **Create a new role** pour permettre à SageMaker AI de créer un rôle auquel la politique `AmazonSageMakerFullAccess` gérée est attachée. Pour plus d'informations, consultez [Comment utiliser les rôles d'exécution de l' SageMaker IA](sagemaker-roles.md).

   1. Sous **VPC**, choisissez un Amazon VPC auquel les tâches d’entraînement lancées par la tâche de réglage pourront accéder. Pour de plus amples informations, veuillez consulter [Donnez aux SageMaker professionnels de formation en IA l'accès aux ressources de votre Amazon VPC](train-vpc.md).

   1. Choisissez **Suivant**.

   1. Sous **Métrique d’objectif**, choisissez la métrique que la tâche de réglage d’hyperparamètre utilise pour déterminer la meilleure combinaison des hyperparamètres, puis choisissez de réduire ou d’agrandir cette métrique. Pour de plus amples informations, veuillez consulter [Affichage de la meilleure tâche d'entraînement](automatic-model-tuning-ex-tuning-job.md#automatic-model-tuning-best-training-job).

   1. Sous **Configuration d’hyperparamètre**, choisissez les plages correspondant aux hyperparamètres réglables que la tâche de réglage doit rechercher, puis définissez les valeurs statiques des hyperparamètres qui doivent rester constantes dans toutes les tâches d’entraînement lancées par la tâche de réglage d’hyperparamètre. Pour de plus amples informations, veuillez consulter [Définition des plages d'hyperparamètres](automatic-model-tuning-define-ranges.md).

   1. Choisissez **Suivant**.

   1. Sous **Configuration des données d’entrée**, spécifiez les valeurs suivantes pour chaque canal de données d’entrée à utiliser pour la tâche de réglage d’hyperparamètre. Les canaux pris en charge par l’algorithme que vous utilisez pour le réglage des hyperparamètres, le type de contenu, le type de compression pris en charge et les modes d’entrée pris en charge pour chaque canal sont visibles sous la section **Spécification de canal** de la page **Récapitulatif d’algorithme** de l’algorithme.

      1. Dans le champ **Nom du canal**, saisissez le nom du canal d’entrée.

      1. Sous **Type de contenu**, saisissez le type de contenu des données attendu par l’algorithme pour le canal.

      1. Sous **Type de compression**, choisissez le type de compression des données à utiliser, le cas échéant.

      1. Sous **Habillage des enregistrements**, choisissez `RecordIO` si l’algorithme attend des données au format `RecordIO`.

      1. Sous **Type de données S3**, **Type de distribution de données S3** et **Emplacement S3**, spécifiez les valeurs appropriées. Pour obtenir des informations sur la signification de ces valeurs, consultez [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html).

      1. Sous **Mode d’entrée**, choisissez **Fichier** afin de télécharger les données depuis le volume de stockage ML alloué et montez le répertoire dans un volume Docker. Choisissez **Tube** pour diffuser directement les données d’Amazon S3 vers le conteneur.

      1. Pour ajouter un autre canal d’entrée, choisissez **Ajouter canal**. Si vous avez terminé d’ajouter des canaux d’entrée, choisissez **Terminé**.

   1. Sous l’emplacement **Sortie**, spécifiez les valeurs suivantes :

      1. Sous **Chemin de sortie S3**, choisissez l’emplacement S3 où est stockée la sortie (les artefacts de modèles, par exemple) générée par les tâches d’entraînement lancées par cette tâche de réglage d’hyperparamètre.
**Note**  
Vous utilisez les artefacts de modèles stockés à cet emplacement pour créer un modèle ou un package de modèle à partir de cette tâche de réglage d’hyperparamètre.

      1. Pour la **clé de chiffrement**, si vous souhaitez que l' SageMaker IA utilise une AWS KMS clé pour chiffrer les données de sortie au repos dans l'emplacement S3.

   1. Sous **Configuration des ressources**, fournissez les informations suivantes :

      1. Sous **Type d’instance**, choisissez le type d’instance à utiliser pour chaque tâche d’entraînement lancée par la tâche de réglage d’hyperparamètre.

      1. Sous **Nombre d’instances**, saisissez le nombre d’instances ML à utiliser pour chaque tâche d’entraînement lancée par la tâche de réglage d’hyperparamètre.

      1. Sous **Taille du volume par instance (Go)**, saisissez la taille du volume de stockage ML que vous souhaitez allouer à chaque tâche d’entraînement lancée par la tâche de réglage d’hyperparamètre. Les volumes de stockage ML stockent les artefacts de modèles et les états incrémentiels.

      1. Pour la **clé de chiffrement**, si vous souhaitez qu'Amazon SageMaker AI utilise une AWS clé du service de gestion des clés pour chiffrer les données du volume de stockage ML attaché aux instances de formation, spécifiez la clé.

   1. Sous **Limites des ressources**, fournissez les informations suivantes :

      1. Sous **Nombre total de tâches d’entraînement**, spécifiez le nombre maximum de tâches d’entraînement que peut lancer la tâche de réglage d’hyperparamètre. Une tâche de réglage d’hyperparamètre peut lancer 500 tâches d’entraînement au maximum.

      1. Sous **Nombre maximal de tâches d’entraînement parallèles**, spécifiez le nombre maximum de tâches d’entraînement simultanées que peut lancer la tâche de réglage d’hyperparamètre. Une tâche de réglage d’hyperparamètre peut lancer 10 tâches d’entraînement simultanées au maximum.

      1. Sous **Condition d’arrêt**, spécifiez la durée maximale, en secondes, en minutes, en heures ou en jours, pendant laquelle doit s’exécuter chaque tâche d’entraînement lancée par la tâche de réglage d’hyperparamètre.

   1. Sous **Balises**, spécifiez une ou plusieurs balises permettant de gérer la tâche de réglage d’hyperparamètre. Chaque balise est constituée d'une clé et d'une valeur facultative. Les clés de balise doivent être uniques à chaque ressource.

   1. Choisissez **Créer des tâches** afin d’exécuter la tâche de réglage d’hyperparamètre.

## Utilisation d’un algorithme pour exécuter une tâche de réglage d’hyperparamètre (API)
<a name="sagemaker-mkt-algo-tune-api"></a>

Pour utiliser un algorithme afin d'exécuter une tâche de réglage d'hyperparamètres à l'aide de l' SageMaker API, spécifiez le nom ou l'Amazon Resource Name (ARN) de l'algorithme comme `AlgorithmName` champ de l'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html)objet à [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)passer. Pour plus d'informations sur le réglage des hyperparamètres dans l' SageMaker IA, consultez[Réglage automatique du modèle grâce à l' SageMaker IA](automatic-model-tuning.md).

## Utiliser un algorithme pour exécuter une tâche de réglage d'hyperparamètres ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))
<a name="sagemaker-mkt-algo-tune-sdk"></a>

Utilisez un algorithme que vous avez créé ou auquel vous êtes abonné AWS Marketplace pour créer une tâche de réglage d'hyperparamètres, créer un `AlgorithmEstimator` objet et spécifier le nom de la ressource Amazon (ARN) ou le nom de l'algorithme comme valeur de l'`algorithm_arn`argument. Ensuite, initialisez un objet `HyperparameterTuner` avec la valeur `AlgorithmEstimator` que vous avez créée comme valeur de l’argument `estimator`. Enfin, appelez la méthode `fit` de l’instance `AlgorithmEstimator`. Par exemple : 

```
from sagemaker import AlgorithmEstimator
from sagemaker.tuner import HyperparameterTuner

data_path = os.path.join(DATA_DIR, 'marketplace', 'training')

algo = AlgorithmEstimator(
            algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022',
            role='SageMakerRole',
            instance_count=1,
            instance_type='ml.c4.xlarge',
            sagemaker_session=sagemaker_session,
            base_job_name='test-marketplace')

train_input = algo.sagemaker_session.upload_data(
    path=data_path, key_prefix='integ-test-data/marketplace/train')

algo.set_hyperparameters(max_leaf_nodes=10)
tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name',
                                objective_metric_name='validation:accuracy',
                                hyperparameter_ranges=hyperparameter_ranges,
                                max_jobs=2, max_parallel_jobs=2)

tuner.fit({'training': train_input}, include_cls_metadata=False)
tuner.wait()
```