Créer une tâche de réglage d'optimisation d'hyperparamètres pour un ou plusieurs algorithmes (console) - Amazon SageMaker

Créer une tâche de réglage d'optimisation d'hyperparamètres pour un ou plusieurs algorithmes (console)

Pour créer une tâche de réglage HPO (Optimisation d'hyperparamètre) pour un ou plusieurs algorithmes, vous devez définir les paramètres de la tâche de réglage, créer des définitions de tâche d'entraînement pour chaque algorithme à régler et configurer les ressources pour la tâche de réglage.

Définir les paramètres de la tâche

Les paramètres de votre tâche de réglage sont appliqués à tous les algorithmes figurant dans la tâche de réglage HPO. Le démarrage à chaud et l'arrêt anticipé ne sont disponibles que lors du réglage d'un algorithme unique. Après avoir défini les paramètres de la tâche, vous allez créer des définitions d'entraînement individuelles pour chaque algorithme ou variation que vous souhaitez régler.

Démarrage à chaud

Si vous avez cloné cette tâche, vous pouvez choisir d'utiliser les résultats d'une tâche de réglage précédente pour améliorer les performances de cette nouvelle tâche de réglage. Il s'agit de la fonction de démarrage à chaud et elle n'est disponible que lors du réglage d'un algorithme unique. Lorsque vous choisissez cette option, vous pouvez choisir jusqu'à cinq tâches de réglage des hyperparamètres précédentes à utiliser. Vous pouvez également utiliser l'entraînement de transfert pour ajouter des données supplémentaires à la tâche de réglage parent. Lorsque vous sélectionnez cette option, vous choisissez une tâche de réglage précédente comme parent.

Note

Le démarrage à chaud est uniquement compatible avec les tâches de réglage créées après le 1er octobre 2018. Pour de plus amples informations, veuillez consulter Exécution d'une tâche de démarrage à chaud.

Arrêt anticipé

Pour réduire le temps de calcul et éviter un ajustement excessif de votre modèle, les tâches d'entraînement peuvent être arrêtées prématurément lorsqu'il est peu probable qu'elles améliorent la meilleure métrique objective actuelle de la tâche de réglage des hyperparamètres. Comme le démarrage à chaud, cette fonctionnalité n'est disponible que lors du réglage d'un algorithme unique. Il s'agit d'une fonction automatique sans options de configuration et elle est désactivée par défaut. Pour plus d'informations sur le fonctionnement de l'arrêt anticipé, les algorithmes qui le prennent en charge et la manière de l'utiliser avec vos propres algorithmes, veuillez consulter Arrêter des tâches d'entraînement de manière précoce.

Stratégie d'ajustement

La stratégie d'ajustement peut être aléatoire ou bayésienne. Elle spécifie comment le réglage automatique recherche dans des plages d'hyperparamètres spécifiées. Vous spécifiez les plages dans une étape ultérieure. La recherche aléatoire choisit des combinaisons aléatoires de valeurs dans les plages spécifiées et peut être exécutée de façon simultanée. La recherche bayésienne choisit des valeurs en fonction de ce qui est susceptible d'obtenir le meilleur résultat compte tenu de ce qui est connu à propos de l'historique des sélections précédentes. Pour plus de stratégies de recherche d'informations, veuillez consulter Mode de fonctionnement du réglage d'hyperparamètres.

Étiquettes

Vous saisissez des balises en tant que paires clé-valeur pour affecter des métadonnées à des tâches de réglage afin de vous aider à les gérer. Les valeurs ne sont pas obligatoires. Vous pouvez n'utiliser que la clé. Pour afficher les clés associées à une tâche, choisissez l'onglet Tags (Balises) dans la page de détails de la tâche de réglage. Pour plus d'informations sur l'utilisation des balises pour les tâches de réglage, veuillez consulter Gérer les tâches de réglage et d'entraînement des hyperparamètres

Créer des définitions de tâche d'entraînement

Pour créer une définition de tâche d'entraînement, vous devez configurer l'algorithme et les paramètres, définir l'entrée et la sortie des données, puis configurer les ressources. Vous devez fournir au moins une TrainingJobDefinition pour chaque tâche de réglage HPO. Chaque définition d'entraînement spécifie la configuration d'un algorithme. Pour créer plusieurs définitions pour votre tâche d'entraînement, vous pouvez cloner une définition de tâche. Le clonage d'une tâche peut permettre de gagner du temps, car il copie tous les paramètres de tâche, y compris les canaux de données et les emplacements de stockage S3 pour les artefacts de sortie. Vous pouvez ensuite modifier la tâche clonée uniquement pour les modifications nécessaires à la configuration des options d'algorithme.

Configurer l'algorithme et les paramètres

Chaque définition de tâche d'entraînement pour une tâche de réglage nécessite un nom, l'autorisation d'accéder aux services et la spécification des options d'algorithme, une métrique objective et la plage de valeurs, le cas échéant, pour configurer l'ensemble des valeurs d'hyperparamètres pour chaque tâche d'entraînement.

Nom

Fournissez un nom unique pour la définition d'entraînement.

Autorisations

Amazon SageMaker requiert des autorisations pour appeler d'autres services en votre nom. Choisissez un rôle IAM ou laissez AWS créer un rôle auquel la stratégie IAM AmazonSageMakerFullAccess est attachée.

Paramètres de sécurité facultatifs

Le paramètre d'isolation réseau empêche le conteneur d'effectuer des appels réseau sortants. Ceci est requis pour les offres de machine learning d'AWS Marketplace.

Vous pouvez également choisir d'utiliser un VPC privé.

Note

Le chiffrement inter-conteneur n'est disponible que lors de la création de définitions de tâches à partir de l'API.

Options d'algorithme

Vous pouvez choisir l'un des algorithmes intégrés, votre propre algorithme, votre propre conteneur avec un algorithme, ou vous pouvez vous abonner à un algorithme depuis AWS Marketplace.

  • Si vous choisissez un algorithme intégré, les informations d'image ECR sont préremplies.

  • Si vous choisissez votre propre conteneur, vous devez spécifier les informations d'image ECR. Vous pouvez sélectionner le mode d'entrée de l'algorithme en tant que fichier ou canal.

  • Si vous prévoyez de fournir vos données à l'aide d'un fichier .CSV à partir d'Amazon S3, sélectionnez le fichier.

Métriques

Lorsque vous choisissez un algorithme intégré, des métriques vous sont fournies. Si vous choisissez votre propre algorithme, vous devez définir vos métriques. Vous pouvez définir jusqu'à 20 métriques pour votre tâche de réglage à contrôler, dont l'une doit être choisie comme métrique d'objectif. Pour plus d'informations sur la définition d'une métrique pour une tâche de réglage, veuillez consulter Définition des métriques.

Métrique d'objectif

Afin de trouver la meilleure tâche d'entraînement, définissez une métrique d'objectif et s'il faut la maximiser ou la minimiser. Une fois la tâche d'entraînement terminée, vous pouvez afficher la page de détails de la tâche de réglage pour obtenir un résumé de la meilleure tâche d'entraînement trouvée à l'aide de cette métrique d'objectif.

Configuration des hyperparamètres

Lorsque vous choisissez un algorithme intégré, les valeurs par défaut de ses hyperparamètres sont définies pour vous à l'aide de plages optimisées pour l'algorithme à régler. Vous pouvez modifier ces valeurs comme bon vous semble. Par exemple, à la place d'une plage, vous pouvez définir une valeur fixe pour un hyperparamètre en définissant le type du paramètre sur statique. Chaque algorithme a des paramètres obligatoires et facultatifs différents. Pour de plus amples informations, veuillez consulter Bonnes pratiques pour le réglage des hyperparamètres et Définition des plages d'hyperparamètres.

Définir l'entrée et la sortie des données

Chaque définition de tâche d'entraînement pour un travail de réglage doit configurer les canaux pour les entrées de données, les emplacements de sortie de données et éventuellement tous les emplacements de stockage de points de contrôle pour chaque tâche d'entraînement.

Configuration des données d'entrée

Les données d'entrée sont définies par les canaux, chacun avec son propre emplacement source (Amazon S3 ou Amazon Elastic File System), sa compression et ses options de format. Vous pouvez définir jusqu'à 20 canaux de sources d'entrée. Si l'algorithme que vous avez choisi prend en charge plusieurs canaux d'entrée, vous pouvez les spécifier également. Par exemple, lorsque vous utilisez le bloc-notes de prédiction de désabonnement XGBoost, vous pouvez ajouter deux canaux : un d'entraînement et un de validation.

Configuration des points de contrôle

Des points de contrôle sont générés périodiquement pendant l'entraînement. Vous devez choisir un emplacement Amazon S3 pour que les points de contrôle soient enregistrés. Les points de contrôle sont utilisés dans les rapports de métriques et sont également utilisés pour reprendre les tâches d'entraînement Spot géré. Pour plus d'informations, consultez Utilisation des points de contrôle dans Amazon SageMaker.

Configuration des données de sortie

Vous devez définir un emplacement Amazon S3 pour que les artefacts de la tâche d'entraînement soient stockés. Vous avez la possibilité d'ajouter un chiffrement à la sortie à l'aide d'une clé AWS Key Management Service (AWS KMS).

Configurer des ressources de tâche d'entraînement

Chaque définition de tâche d'entraînement pour une tâche de réglage doit configurer les ressources à déployer, y compris les types et le nombre d'instances, l'entraînement Spot géré et les conditions d'arrêt.

Configuration des ressources

Chaque définition d'entraînement peut avoir une configuration de ressources différente. Vous choisissez le type d'instance et le nombre de nœuds.

Entraînement Spot géré

Vous pouvez réduire les coûts informatiques pour les tâches si vous disposez d'une flexibilité en matière d'heure de début et de fin en permettant à SageMaker d'utiliser la capacité de réserve pour exécuter des tâches. Pour plus d'informations, consultez Entraînement d'instances Spot gérées dans Amazon SageMaker.

Condition d'arrêt

La condition d'arrêt spécifie la durée maximale autorisée par tâche d'entraînement.

Ajouter ou cloner une tâche d'entraînement

Une fois que vous avez créé une définition de tâche d'entraînement pour une tâche de réglage, vous revenez au volet Training Job Definition(s) (Définition(s) de tâche d'entraînement) dans lequel vous pouvez créer des définitions de tâches d'entraînement supplémentaires pour entraîner des algorithmes supplémentaires. Vous pouvez sélectionner l'option Add training job definition (Ajouter une définition de tâche d'entraînement) et parcourir les étapes pour définir à nouveau une tâche d'entraînement, ou choisir Clone (Cloner) à partir du menu Action pour répliquer une définition de tâche d'entraînement existante et la modifier pour le nouvel algorithme. L'option de clonage peut vous faire gagner du temps, car elle copie tous les paramètres de la tâche, y compris les canaux de données et les emplacements de stockage S3. Pour plus d'informations sur le clonage, veuillez consulter Gérer les tâches de réglage et d'entraînement des hyperparamètres.

Configurer des ressources de tâche de réglage

Limites des ressources

Vous pouvez spécifier le nombre maximal de tâches d'entraînement simultanées qu'une tâche de réglage d'hyperparamètres peut exécuter simultanément (10 au maximum) et le nombre maximal de tâches d'entraînement que la tâche de réglage d'hyperparamètres peut exécuter (500 au maximum). Le nombre de tâches parallèles ne doit pas dépasser le nombre de nœuds que vous avez demandés sur toutes vos définitions d'entraînement. Le nombre total de tâches ne peut pas dépasser le nombre de tâches que vos définitions sont censées exécuter.

Examiner et créer une tâche de réglage HPO

Passez en revue les paramètres de tâche, les définitions de tâche d'entraînement et les limites de ressources. Choisissez Create hyperparameter tuning job (Créer une tâche de réglage des hyperparamètres).