Passer au contenu principal

Essayer dans Colab

Créez un job d’optimisation d’hyperparamètres (sweeps) avec W&B Launch. Avec les balayages dans Launch, un ordonnanceur de balayage est envoyé vers une Launch Queue avec les hyperparamètres spécifiés à explorer. L’ordonnanceur de balayage démarre dès qu’il est pris en charge par l’agent, en lançant des runs de balayage dans la même file d’attente avec les hyperparamètres sélectionnés. Ce processus se poursuit jusqu’à la fin du balayage ou jusqu’à son arrêt. Vous pouvez utiliser le moteur de planification W&B Sweep par défaut ou implémenter votre propre ordonnanceur personnalisé :
  1. Ordonnanceur de balayage standard : utilisez le moteur de planification W&B Sweep par défaut qui contrôle W&B Sweeps. Les méthodes habituelles bayes, grid et random sont disponibles.
  2. Ordonnanceur de balayage personnalisé : configurez l’ordonnanceur de balayage pour qu’il s’exécute en tant que job. Cette option permet une personnalisation complète. Vous trouverez dans la section ci-dessous un exemple montrant comment étendre l’ordonnanceur de balayage standard pour inclure davantage de logging.
Ce guide suppose que W&B Launch a déjà été configuré. Si W&B Launch n’est pas configuré, consultez la section pour bien démarrer de la documentation Launch.
Nous vous recommandons de créer un balayage dans Launch avec la méthode ‘basic’ si vous utilisez les balayages dans Launch pour la première fois. Utilisez un ordonnanceur personnalisé pour les balayages dans Launch lorsque le moteur de planification W&B standard ne répond pas à vos besoins.

Créer un balayage avec un ordonnanceur standard W&B

Créez des W&B Sweeps avec Launch. Vous pouvez créer un balayage de manière interactive dans la W&B App ou par programmation avec la W&B CLI. Pour les configurations avancées des balayages Launch, notamment pour personnaliser l’ordonnanceur, utilisez la CLI.
Avant de créer un balayage avec W&B Launch, assurez-vous d’avoir d’abord créé un job sur lequel effectuer le balayage. Voir la page Create a Job pour plus d’informations.
Créez un balayage de manière interactive dans la W&B App.
  1. Accédez à votre projet W&B dans la W&B App.
  2. Sélectionnez l’icône des Sweeps dans la barre latérale du projet (icône de balai).
  3. Ensuite, sélectionnez le bouton Create Sweep.
  4. Cliquez sur le bouton Configure Launch.
  5. Dans le menu déroulant Job, sélectionnez le nom de votre job et la version du job à partir desquels vous souhaitez créer un balayage.
  6. Sélectionnez la file d’attente sur laquelle exécuter le balayage à l’aide du menu déroulant Queue.
  7. Utilisez le menu déroulant Job Priority pour définir la priorité de votre launch job. La priorité d’un launch job est définie sur “Medium” si la Launch queue ne prend pas en charge la priorisation.
  8. (Facultatif) Configurez les arguments d’override pour le run ou l’ordonnanceur du balayage. Par exemple, à l’aide des overrides de l’ordonnanceur, configurez le nombre de runs simultanés gérés par l’ordonnanceur avec num_workers.
  9. (Facultatif) Sélectionnez le projet dans lequel enregistrer le balayage à l’aide du menu déroulant Destination Project.
  10. Cliquez sur Save
  11. Sélectionnez Launch Sweep.
Configuration d’un balayage Launch

Créer un ordonnanceur de balayage personnalisé

Créez un ordonnanceur de balayage personnalisé avec l’ordonnanceur W&B ou un ordonnanceur personnalisé.
L’utilisation des jobs d’ordonnanceur nécessite la version 0.15.4 ou ultérieure de wandb CLI.
Créez un balayage Launch en utilisant la logique de planification des balayages de W&B sous forme de job.
  1. Identifiez le job du planificateur wandb dans le projet public wandb/sweep-jobs, ou utilisez le nom de job suivant : 'wandb/sweep-jobs/job-wandb-sweep-scheduler:latest'
  2. Créez une configuration yaml avec un bloc scheduler supplémentaire incluant une clé job qui pointe vers ce nom, comme dans l’exemple ci-dessous.
  3. Utilisez la commande wandb launch-sweep avec la nouvelle configuration.
Exemple de configuration :
# launch-sweep-config.yaml  
description: Configuration de balayage Launch utilisant un job planificateur
scheduler:
  job: wandb/sweep-jobs/job-wandb-sweep-scheduler:latest
  num_workers: 8  # autorise 8 runs de balayage simultanés

# job d'entraînement/réglage que les runs de balayage exécuteront
job: wandb/sweep-jobs/job-fashion-MNIST-train:latest
method: grid
parameters:
  learning_rate:
    min: 0.0001
    max: 0.1
Des exemples de ce qu’il est possible de faire avec des jobs personnalisés d’ordonnancement de balayage sont disponibles dans le dépôt wandb/launch-jobs, sous jobs/sweep_schedulers. Ce guide montre comment utiliser le Wandb Scheduler Job accessible au public et présente également un processus de création de jobs personnalisés d’ordonnancement de balayage.

Comment reprendre des balayages dans Launch

Il est également possible de reprendre un balayage Launch à partir d’un balayage lancé précédemment. Bien que les hyperparamètres et la tâche d’entraînement ne puissent pas être modifiés, les paramètres propres à l’ordonnanceur peuvent l’être, ainsi que la file d’attente à laquelle il est envoyé.
Si le balayage initial utilisait une tâche d’entraînement avec un alias comme ‘latest’, la reprise peut produire des résultats différents si la dernière version du job a été modifiée depuis la dernière exécution.
  1. Identifiez le nom ou l’ID d’un balayage Launch exécuté précédemment. L’ID du balayage est une chaîne de huit caractères (par exemple, hhd16935) que vous pouvez trouver dans votre projet dans la W&B App.
  2. Si vous modifiez les paramètres de l’ordonnanceur, créez un fichier de configuration mis à jour.
  3. Dans votre terminal, exécutez la commande suivante. Remplacez le contenu entouré de < et > par vos informations :
wandb launch-sweep <optional config.yaml> --resume_id <sweep id> --queue <queue_name>