parameters) et la méthode de recherche dans l’espace des paramètres (clé method).
Le tableau suivant répertorie les clés de configuration de balayage de premier niveau, avec une brève description. Pour plus d’informations sur chaque clé, voir les sections correspondantes.
Pour plus d’informations, voir Définir une configuration de balayage.
metric
Utilisez la clé de configuration de premier niveau metric du balayage pour spécifier le nom, l’objectif et la métrique cible à optimiser.
parameters
Dans votre fichier YAML ou votre script Python, spécifiez parameters comme clé de premier niveau. Dans la clé parameters, indiquez le nom d’un hyperparamètre que vous souhaitez optimiser. Les hyperparamètres courants incluent le taux d’apprentissage, la taille de lot, les époques et les optimiseurs. Pour chaque hyperparamètre que vous définissez dans votre configuration de balayage, spécifiez une ou plusieurs contraintes de recherche.
Le tableau suivant présente les contraintes de recherche d’hyperparamètres prises en charge. En fonction de votre hyperparamètre et de votre cas d’utilisation, utilisez l’une des contraintes de recherche suivantes pour indiquer à votre agent de balayage où rechercher (dans le cas d’une distribution) ou quoi rechercher/utiliser (comme value ou values).
Si vous ne spécifiez pas de distribution, W&B définit les distributions suivantes selon ces conditions :
categoricalsi vous spécifiezvaluesint_uniformsi vous spécifiezmaxetmincomme entiersuniformsi vous spécifiezmaxetmincomme nombres à virgule flottanteconstantsi vous spécifiezvalue
method
Spécifiez la stratégie de recherche d’hyperparamètres à l’aide de la clé method. Choisissez parmi trois stratégies de recherche d’hyperparamètres : recherche sur grille, aléatoire et recherche bayésienne.
Recherche sur grille
La recherche sur grille parcourt chaque combinaison possible de valeurs d’hyperparamètre. La recherche sur grille choisit, à chaque itération, parmi un ensemble prédéfini de valeurs d’hyperparamètre, sans information préalable. La recherche sur grille peut être coûteuse en ressources de calcul. La recherche sur grille s’exécute indéfiniment si elle explore un espace de recherche continu.Recherche aléatoire
La recherche aléatoire choisit, à chaque itération, un ensemble aléatoire de valeurs d’hyperparamètres, sans information préalable, selon une distribution. La recherche aléatoire s’exécute indéfiniment, sauf si vous arrêtez le processus depuis la ligne de commande, dans votre script Python ou depuis W&B App. Si vous choisissez la recherche aléatoire (method: random), spécifiez la distribution pour chaque hyperparamètre dans la clé parameters.
Recherche bayésienne
Contrairement à la recherche aléatoire et à la recherche sur grille, les modèles bayésiens prennent des décisions éclairées. L’optimisation bayésienne s’appuie sur un modèle probabiliste pour déterminer quelles valeurs utiliser. Le processus teste itérativement des valeurs sur une fonction de substitution avant d’évaluer la fonction objectif. La recherche bayésienne est efficace pour un petit nombre de paramètres continus, mais elle passe mal à l’échelle. Pour en savoir plus sur la recherche bayésienne, voir le Bayesian Optimization Primer. La recherche bayésienne se poursuit indéfiniment, à moins que vous n’arrêtiez le processus depuis la ligne de commande, dans votre script Python ou depuis W&B App.Options de distribution pour la recherche aléatoire et la recherche bayésienne
Dans la cléparameters, imbriquez le nom de l’hyperparamètre. Ensuite, spécifiez la clé distribution et indiquez une distribution pour la valeur.
Le tableau suivant répertorie les distributions prises en charge par W&B.
early_terminate
Utilisez l’arrêt anticipé (early_terminate) pour interrompre les runs peu performants. En cas d’arrêt anticipé, W&B arrête le run en cours avant d’en créer un nouveau avec un nouvel ensemble de valeurs d’hyperparamètres.
Vous devez spécifier un algorithme d’arrêt si vous utilisez
early_terminate. Imbriquez la clé type dans early_terminate au sein de votre configuration de balayage.Algorithme d’arrêt
W&B prend en charge l’algorithme d’arrêt Hyperband.
Spécifiez
min_iter ou max_iter pour créer une planification de brackets.Hyperband vérifie quels runs arrêter toutes les quelques minutes. L’horodatage de fin du run peut différer des brackets spécifiés si votre run ou votre itération est de courte durée.
command
Utilisez la clé command de premier niveau pour contrôler la façon dont l’agent de balayage invoque votre script d’entraînement et lui transmet des arguments. Modifiez le format et le contenu à l’aide de valeurs imbriquées dans la clé command. Vous pouvez inclure directement des composants fixes, comme des noms de fichiers.
Sur les systèmes Unix,
/usr/bin/env garantit que le système d’exploitation choisit le bon interpréteur Python en fonction de l’environnement.