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
La section suivante explique comment utiliser une ressource d’algorithme pour exécuter une tâche de réglage des 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 plus d’informations, consultez Réglage automatique du modèle grâce à l' SageMaker IA.
Vous pouvez utiliser une ressource d’algorithme afin de créer une tâche de réglage d’hyperparamètre à l’aide de la console Amazon SageMaker AI, de l’API Amazon SageMaker de bas niveau ou du kit Amazon SageMaker Python SDK
Rubriques
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)
-
Ouvrez la console Amazon SageMaker AI à l’adresse https://console.aws.amazon.com/sagemaker/
. -
Choisissez Algorithmes.
-
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.
-
Choisissez Créer une tâche de réglage d’hyperparamètre.
L’algorithme que vous avez choisi sera automatiquement sélectionné.
-
Sur la page Créer une tâche de réglage d’hyperparamètre, fournissez les informations suivantes :
-
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 plus d’informations, consultez Exécution d'une tâche de réglage des hyperparamètres avec démarrage à chaud.
-
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.
-
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.
-
-
Sous Nom de tâche de réglage d’hyperparamètre, saisissez un nom pour la tâche de réglage.
-
Sous Rôle IAM, choisissez un rôle IAM qui détient les autorisations requises pour exécuter les tâches de réglage d’hyperparamètre dans SageMaker AI, ou choisissez Créer un rôle afin que SageMaker AI crée un rôle avec la politique gérée
AmazonSageMakerFullAccessattachée. Pour plus d’informations, consultez Comment utiliser les rôles d'exécution de l' SageMaker IA. -
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 aux SageMaker professionnels de formation en IA l'accès aux ressources de votre Amazon VPC.
-
Choisissez Suivant.
-
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.
-
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.
-
Choisissez Suivant.
-
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.
-
Dans le champ Nom du canal, saisissez le nom du canal d’entrée.
-
Sous Type de contenu, saisissez le type de contenu des données attendu par l’algorithme pour le canal.
-
Sous Type de compression, choisissez le type de compression des données à utiliser, le cas échéant.
-
Sous Habillage des enregistrements, choisissez
RecordIOsi l’algorithme attend des données au formatRecordIO. -
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. -
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.
-
Pour ajouter un autre canal d’entrée, choisissez Ajouter canal. Si vous avez terminé d’ajouter des canaux d’entrée, choisissez Terminé.
-
-
Sous l’emplacement Sortie, spécifiez les valeurs suivantes :
-
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.
-
Spécifiez une Clé de chiffrement si vous voulez que SageMaker AI utilise une clé AWS KMS pour chiffrer les données de sortie au repos dans l’emplacement S3.
-
-
Sous Configuration des ressources, fournissez les informations suivantes :
-
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.
-
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.
-
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.
-
Sous Encryption key (Clé de chiffrement), spécifiez la clé si vous voulez qu’Amazon SageMaker AI utilise une clé AWS Key Management Service pour chiffrer les données dans le volume de stockage ML attaché aux instances d’entraînement.
-
-
Sous Limites des ressources, fournissez les informations suivantes :
-
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.
-
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.
-
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.
-
-
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.
-
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ètre à l’aide de l’API SageMaker, spécifiez le nom ou l’Amazon Resource Name (ARN) de l’algorithme dans le champ AlgorithmName de l’objet AlgorithmSpecification que vous transmettez à CreateHyperParameterTuningJob. Pour en savoir plus sur le réglage d’hyperparamètre dans SageMaker AI, consultez Réglage automatique du modèle grâce à l' SageMaker IA.
Utiliser un algorithme pour exécuter une tâche de réglage d’hyperparamètre (kit Amazon SageMaker Python SDK )
Utilisez un algorithme que vous avez créé ou auquel vous êtes abonné sur AWS Marketplace afin de créer une tâche de réglage d’hyperparamètre, de créer un objet AlgorithmEstimator et de spécifier l’ARN (Amazon Resource Name) ou le nom de l’algorithme comme valeur de l’argument algorithm_arn. 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()