Passer au contenu principal
Ce tutoriel explique comment définir, initialiser et exécuter un balayage afin d’automatiser la recherche d’hyperparamètres et de trouver la configuration qui produit le meilleur modèle. Il s’adresse aux utilisateurs qui savent déjà journaliser des runs dans W&B et souhaitent commencer à ajuster les hyperparamètres à grande échelle. Le tutoriel comporte quatre étapes principales :
  1. Configurer votre code d’entraînement
  2. Définir l’espace de recherche à l’aide d’une configuration de balayage
  3. Initialiser le balayage
  4. Démarrer l’agent de balayage
Pour commencer, copiez-collez le code suivant dans un notebook Jupyter ou un script Python. Les sections suivantes détaillent chaque partie de cet exemple.

Configurez votre code d’entraînement

L’agent de balayage appelle votre fonction d’entraînement avec chaque combinaison de valeurs d’hyperparamètres à essayer ; la première étape consiste donc à écrire une fonction qui accepte ces valeurs et consigne une métrique dans W&B. Définissez une fonction d’entraînement qui récupère les valeurs des hyperparamètres depuis wandb.Run.config, les utilise pour entraîner un modèle, puis renvoie les métriques. Vous pouvez facultativement indiquer le nom du projet dans lequel vous souhaitez stocker la sortie du run (paramètre project dans wandb.init()). Si aucun projet n’est spécifié, le run est placé dans un projet “Uncategorized”.
Le balayage et le run doivent tous deux se trouver dans le même projet. Par conséquent, le nom fourni lors de l’initialisation de W&B doit correspondre au nom du projet fourni lors de l’initialisation d’un balayage.

Définissez l’espace de recherche avec une configuration de balayage

Une fois la fonction d’entraînement en place, l’étape suivante consiste à indiquer à W&B quels hyperparamètres faire varier et comment effectuer la recherche parmi eux. Spécifiez les hyperparamètres à balayer dans un dictionnaire. Pour les options de configuration, voir Définir la configuration d’un balayage. L’exemple suivant présente une configuration de balayage qui utilise une recherche aléatoire ('method':'random'). Le balayage sélectionnera aléatoirement des valeurs parmi celles indiquées dans la configuration pour les paramètres x et y. W&B minimise la métrique spécifiée dans la clé metric lorsque "goal": "minimize" y est associé. Dans ce cas, W&B cherchera à minimiser la métrique score ("name": "score").

Initialiser le balayage

L’initialisation du balayage enregistre votre espace de recherche dans W&B et renvoie un identifiant que l’agent utilise pour demander des combinaisons d’hyperparamètres. W&B utilise un contrôleur de balayage pour gérer les balayages dans le cloud (standard) ou localement (local), sur une ou plusieurs machines. Pour plus d’informations sur les contrôleurs de balayage, voir Algorithmes de recherche et d’arrêt en local. L’initialisation d’un balayage renvoie un identifiant de balayage :
Pour plus d’informations, voir Initialiser les balayages.

Démarrer le balayage

Une fois le balayage enregistré, démarrez un agent pour exécuter les runs et explorer l’espace de recherche. Pour démarrer un balayage, utilisez l’appel d’API wandb.agent().
Une fois l’agent démarré, il demande à W&B des combinaisons d’hyperparamètres, appelle votre fonction d’entraînement pour chacune d’elles et journalise les métriques obtenues dans votre projet.
MultiprocessingSi vous utilisez le package multiprocessing de la bibliothèque standard Python ou le package pytorch.multiprocessing de PyTorch, vous devez placer vos appels à wandb.agent() et wandb.sweep() dans un bloc if __name__ == '__main__':. Par exemple :
Cette convention garantit que le code s’exécute uniquement lorsque le script est lancé directement, et non lorsqu’il est importé comme module dans un processus de travail.Pour plus d’informations sur le multiprocessing, voir la bibliothèque standard Python multiprocessing ou le multiprocessing de PyTorch. Pour plus d’informations sur la convention if __name__ == '__main__':, voir le guide de Real Python sur __main__.

Facultatif : visualiser les résultats

Une fois le balayage lancé, vous pouvez explorer l’effet de différentes combinaisons d’hyperparamètres sur votre métrique dans la W&B App. Ouvrez votre projet pour voir vos résultats en direct dans le tableau de bord de la W&B App. En quelques clics, créez des graphiques interactifs comme des graphiques de coordonnées parallèles, des analyses d’importance des paramètres et d’autres types de graphiques.
Exemple de tableau de bord Sweeps
Pour plus d’informations, voir Visualiser les résultats d’un balayage. Pour voir un exemple de tableau de bord, consultez ce projet Sweeps.

Facultatif : arrêter l’agent

Dans le terminal, appuyez sur Ctrl+C pour interrompre le run en cours. Appuyez de nouveau sur Ctrl+C pour arrêter l’agent.