Bonnes pratiques pour le réglage des hyper-paramètres - 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.

Bonnes pratiques pour le réglage des hyper-paramètres

L'optimisation des hyperparamètres (HPO) n'est pas un processus entièrement automatisé. Pour améliorer l'optimisation, suivez ces bonnes pratiques pour le réglage des hyperparamètres.

Choix d'une stratégie de réglage

Pour les tâches volumineuses, l'utilisation de la stratégie de réglage Hyperband peut réduire le temps de calcul. Hyperband dispose d'un mécanisme d'arrêt précoce pour arrêter les tâches peu performantes. Hyperband peut également réaffecter des ressources vers des configurations d'hyperparamètres bien utilisées et exécuter des tâches parallèles. Pour les tâches d'entraînement de moindre envergure nécessitant moins de temps d'exécution, utilisez random search (recherche aléatoire) ou Bayesian optimization (optimisation bayésienne).

Utilisez l'optimisation bayésienne pour prendre des décisions de plus en plus éclairées concernant l'amélioration des configurations des hyperparamètres lors de la prochaine exécution. L'optimisation bayésienne utilise les informations collectées au cours des exécutions précédentes pour améliorer les exécutions suivantes. En raison de sa nature séquentielle, l'optimisation bayésienne ne peut pas être mise à l'échelle massivement.

Utilisez la recherche aléatoire pour exécuter un grand nombre de tâches parallèles. Dans une recherche aléatoire, les tâches suivantes ne dépendent pas des résultats des tâches précédentes et peuvent être exécutées indépendamment. Par rapport à d'autres stratégies, la recherche aléatoire est capable d'exécuter le plus grand nombre de tâches parallèles.

Utilisez grid search (recherche par quadrillage) pour reproduire les résultats d'une tâche de réglage, ou si la simplicité et la transparence de l'algorithme d'optimisation sont importantes. Vous pouvez également utiliser la recherche par quadrillage pour explorer l'ensemble de l'espace de recherche des hyperparamètres de manière uniforme. La recherche par quadrillage effectue une recherche méthodique dans chaque combinaison d'hyperparamètres pour trouver les valeurs optimales des hyperparamètres. Contrairement à la recherche par quadrillage, l'optimisation bayésienne, la recherche aléatoire et Hyperband extraient des hyperparamètres de manière aléatoire dans l'espace de recherche. Comme la recherche par quadrillage analyse chaque combinaison d'hyperparamètres, les valeurs optimales des hyperparamètres seront identiques entre les tâches de réglage utilisant les mêmes hyperparamètres.

Choix du nombre d'hyperparamètres

Au cours de l'optimisation, la complexité de calcul d'une tâche de réglage des hyperparamètres dépend des éléments suivants :

  • Le nombre d'hyperparamètres

  • La plage de valeurs qu'Amazon SageMaker doit rechercher

Même si vous pouvez spécifier simultanément jusqu'à 30 hyperparamètres, vous pouvez réduire le temps de calcul en limitant votre recherche à un plus petit nombre. La réduction du temps de calcul permet SageMaker de converger plus rapidement vers une configuration d'hyperparamètres optimale.

Choix des plages d'hyperparamètres

La plage de valeurs que vous choisissez de rechercher peut avoir une incidence négative sur l'optimisation des hyperparamètres. Par exemple, une plage qui couvre toutes les valeurs d'hyperparamètre possibles peut entraîner des temps de calcul importants et un modèle qui ne se généralise pas bien à des données invisibles. Si vous savez que l'utilisation d'un sous-ensemble de la plus grande plage possible convient à votre cas d'utilisation, envisagez de limiter la plage à ce sous-ensemble.

Utiliser les échelles appropriées pour les hyperparamètres

Lors du réglage des hyperparamètres, SageMaker tente de déduire si vos hyperparamètres sont à échelle logarithmique ou linéaire. Dans un premier temps, SageMaker suppose une mise à l'échelle linéaire pour les hyperparamètres. Si les hyperparamètres sont mis à l'échelle logarithmique, le choix de la bonne échelle améliorera l'efficacité de votre recherche. Vous pouvez également sélectionner Auto pour ScalingType dans le CreateHyperParameterTuningJobAPIsi vous SageMaker souhaitez détecter la balance pour vous.

Choix du meilleur nombre de tâches d'entraînement parallèles

Vous pouvez utiliser les résultats des essais précédents pour améliorer les performances des essais suivants. Choisissez le plus grand nombre de tâches parallèles susceptibles de fournir un résultat incrémentiel significatif, dans votre région et en tenant compte des contraintes de calcul. Utilisez le champ MaxParallelTrainingJobs pour limiter le nombre de tâches d'entraînement qu'une tâche de réglage des hyperparamètres peut lancer en paralèle. Pour plus d'informations, consultez Exécuter plusieurs HPO tâches en parallèle sur Amazon SageMaker.

Exécution de tâches d'entraînement sur plusieurs instances

Lorsqu'une tâche d'entraînement s'exécute sur plusieurs machines en mode distribué, chaque machine émet une métrique objective. HPOne peut utiliser qu'une de ces métriques objectives émises pour évaluer les performances du modèle. En mode distribué, HPO utilise la métrique objective signalée par le dernier job en cours d'exécution sur toutes les instances.

Utilisation d'une valeur de départ aléatoire pour reproduire des configurations d'hyperparamètres

Vous pouvez spécifier un nombre entier comme valeur de départ aléatoire pour le réglage des hyperparamètres et utiliser cette valeur initiale lors de la génération des hyperparamètres. Vous pourrez ensuite utiliser la même valeur de départ pour reproduire des configurations d'hyperparamètres cohérentes avec vos résultats précédents. Pour les stratégies de recherche aléatoire et Hyperband, l'utilisation de la même valeur de départ aléatoire peut fournir une reproductibilité allant jusqu'à 100 % de la configuration d'hyperparamètres précédente pour la même tâche de réglage. Pour la stratégie bayésienne, l'utilisation de la même valeur de départ aléatoire améliorera la reproductibilité pour la même tâche de réglage.