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.
Configuration et lancement de la tâche de réglage des hyperparamètres
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.
AWS politiques gérées pour Amazon SageMaker AIqui 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.
Paramètres de tâche de réglage des hyperparamètres
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 CreateHyperParameterTuningJob
.
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 plus d’informations, consultez Définition des plages d'hyperparamètres. -
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é à 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.
L'exemple de code suivant montre comment configurer une tâche de réglage d'hyperparamètres à l'aide de l'XGBoostalgorithme 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
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
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'CreateHyperParameterTuningJob
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 (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é dans un conteneur Dockerou un algorithme intégré à l'SageMaker IA (obligatoire). -
InputDataConfig
: la configuration d'entrée, y comprisChannelName
,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 comprisChannelName
,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 (ARN) d'un rôle AWS Identity and Access Management (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. -
TrainingImage
: l'image du conteneur Dockerqui 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.
Nommer et lancer la tâche de réglage des hyperparamètres
Après avoir configuré la tâche de réglage des hyperparamètres, vous pouvez la lancer en appelant l'API CreateHyperParameterTuningJob
. 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)
Affichage de l'état des tâches d'entraînement
Pour afficher l'état des tâches d'entraînement lancées par la tâche de réglage des hyper-paramètres
-
Dans la liste des tâches de réglage des hyperparamètres, choisissez la tâche que vous avez lancée.
-
Choisissez Training jobs (Tâches d'entraînement).
-
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, mais les tâches elles-mêmes ne peuvent pas être supprimées.
-
Affichage de la meilleure tâche d'entraînement
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.

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.