Utilisation d'un algorithme pour exécuter une tâche de réglage d'hyperparamètre - Amazon SageMaker

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

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 ensemble 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 plus d’informations, consultez Effectuez le réglage automatique du modèle avec SageMaker.

Vous pouvez créer une ressource d'algorithme pour créer une tâche de réglage d'hyperparamètres à l'aide de la SageMaker console Amazon, de l' SageMaker API Amazon de bas niveau ou du SDK Amazon SageMaker Python.

Utilisation d'un algorithme pour exécuter une tâche de réglage d'hyperparamètre (console)

Pour utiliser un algorithme afin d'exécuter une tâche de réglage d'hyperparamètre (console)
  1. Ouvrez la SageMaker console à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Choisissez Algorithmes.

  3. Choisissez un algorithme que vous avez créé dans la liste de l'onglet My algorithms (Mes algorithmes) ou choisissez un algorithme auquel vous vous êtes abonné sur l'onglet des abonnements AWS Marketplace .

  4. Choisissez Create hyperparameter tuning job (Créer une tâche de réglage d'hyperparamètre).

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

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

    1. Sous Warm start (Démarrage à chaud), choisissez Enable warm start (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 plus d’informations, consultez Exécution d'une tâche de réglage des hyperparamètres avec démarrage à chaud.

      1. Choisissez Identical data and algorithm (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 Transfer learning (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.

      2. Sous Parent hyperparameter tuning job(s) (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.

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

    3. 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 SageMaker, ou choisissez Créer un nouveau rôle pour autoriser SageMaker la création d'un rôle auquel la politique AmazonSageMakerFullAccess gérée est attachée. Pour plus d’informations, veuillez consulter Comment utiliser les rôles SageMaker d'exécution.

    4. 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 plus d’informations, consultez Donnez à SageMaker Training Jobs l'accès aux ressources de votre Amazon VPC.

    5. Choisissez Suivant.

    6. 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 plus d’informations, consultez Affichage de la meilleure tâche d'entraînement.

    7. 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 plus d’informations, consultez Définition des plages d'hyperparamètres.

    8. Choisissez Suivant.

    9. 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 Channel spécification (Spécification de canal) de la page Algorithm summary (Récapitulatif d'algorithme) de l'algorithme.

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

      2. Sous Type de contenu, saisissez le type de contenu des données attendu par l'algorithme pour le canal.

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

      4. Sous Habillage des enregistrements, choisissez RecordIO si l'algorithme attend des données au format RecordIO.

      5. 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 S3DataSource.

      6. 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 Pipe (Tube) pour diffuser directement les données d'Amazon S3 vers le conteneur.

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

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

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

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

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

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

      4. Pour la clé de chiffrement, si vous souhaitez SageMaker qu'Amazon 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é.

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

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

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

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

    14. 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)

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'AlgorithmSpecificationobjet à CreateHyperParameterTuningJobpasser. Pour plus d'informations sur le réglage des hyperparamètres SageMaker, consultezEffectuez le réglage automatique du modèle avec SageMaker.

Utiliser un algorithme pour exécuter une tâche de réglage d'hyperparamètres (Amazon SageMaker Python SDK)

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_arnargument. 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()