> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Démarrez ou arrêtez un agent de sweep sur une ou plusieurs machines.

# Démarrer un agent de sweep

Cette page explique comment démarrer un agent de sweep sur une ou plusieurs machines afin que W\&B puisse exécuter votre recherche d'hyperparamètres. Les agents de sweep s'appuient sur la configuration de sweep que vous définissez lors de l'[initialisation d'un sweep](/fr/products/wandb/sweeps/initialize-sweeps) pour explorer différentes combinaisons d'hyperparamètres. W\&B crée un nouveau run pour chaque combinaison d'hyperparamètres exécutée par l'agent de sweep.

Consultez [Gérer les sweeps](/fr/products/wandb/sweeps/pause-resume-and-cancel-sweeps) pour savoir comment mettre en pause, reprendre, arrêter ou annuler un agent de sweep en cours d'exécution.

Avant de continuer :

* Configurez votre script d'entraînement pour qu'il crée et suive des combinaisons d'hyperparamètres avec W\&B. Consultez [Ajouter W\&B à votre code](/fr/products/wandb/sweeps/add-w-and-b-to-your-code#python-script-or-notebook) pour voir des exemples.
* Définissez un [fichier de configuration](/fr/products/wandb/sweeps/define-sweep-configuration) pour votre sweep.

Les exemples suivants montrent comment démarrer un agent de sweep avec la CLI W\&B ou depuis Python. Vous aurez besoin de l'ID de sweep que W\&B renvoie lors de l'initialisation du sweep. Vous pouvez utiliser l'ID de sweep court seul (par exemple, `dtzl1o7u`) ou le préfixer de l'entity et du projet sous forme de chemin :

```bash theme={"system"}
entity/project/sweep_ID
```

Où :

* `entity` : votre nom d'utilisateur W\&B ou le nom de votre équipe.
* `project` : le nom du projet dans lequel W\&B doit stocker la sortie du run. Si vous ne spécifiez pas de projet, W\&B place le run dans un projet nommé « Uncategorized ».
* `sweep_ID` : l'ID unique pseudo-aléatoire généré par W\&B.

<Tabs>
  <Tab title="CLI">
    Utilisez la commande `wandb agent` pour démarrer un sweep. Indiquez l'ID du sweep renvoyé par W\&B lors de l'initialisation du sweep.

    Dans la commande suivante, remplacez `[SWEEP-ID]` par l'ID de votre sweep :

    ```bash theme={"system"}
    wandb agent [SWEEP-ID]
    ```

    Pour un arrêt en douceur lorsque vous interrompez l'agent (par exemple avec `Ctrl+C`), utilisez `wandb agent --forward-signals [SWEEP-ID]` : le run actuel reçoit ainsi le signal et peut s'arrêter proprement. Pour plus de détails, consultez [Gestion des signaux et runs de sweep](/fr/products/wandb/sweeps/signal-handling-sweep-runs).
  </Tab>

  <Tab title="Script Python ou notebook">
    Utilisez [`wandb.agent()`](/fr/products/wandb/ref/python/functions/agent) pour démarrer un sweep. Indiquez l'ID du sweep renvoyé par W\&B lors de l'initialisation du sweep, ainsi que le nom de la fonction qui sert de point d'entrée à votre script d'entraînement.

    Dans le code suivant, remplacez `[SWEEP-ID]` par l'ID de votre sweep et `[FUNCTION-NAME]` par le nom de votre fonction d'entraînement :

    ```python theme={"system"}
    wandb.agent(sweep_id="[SWEEP-ID]", function="[FUNCTION-NAME]")
    ```

    W\&B ne prend en charge le transfert des signaux de l'agent vers le run d'entraînement que si vous utilisez la CLI (`wandb agent --forward-signals`). Ce transfert n'est pas pris en charge pour `wandb.agent()` en Python, car la fonction d'entraînement s'exécute dans un thread et non dans un processus enfant.

    Si vous utilisez cette méthode, consultez l'[onglet Script Python ou notebook](/fr/products/wandb/sweeps/add-w-and-b-to-your-code#python-script-or-notebook) de la page Ajouter W\&B à votre code pour un exemple de configuration de votre script d'entraînement.

    <Warning>
      **Multiprocessing**

      Si vous utilisez le package `multiprocessing` de la bibliothèque standard Python ou le package `pytorch.multiprocessing` de PyTorch, vous devez encapsuler vos appels `wandb.agent()` et `wandb.sweep()` dans `if __name__ == '__main__':`. Par exemple :

      ```python theme={"system"}
      if __name__ == '__main__':
          wandb.agent(sweep_id="[SWEEP-ID]", function="[FUNCTION]", count="[COUNT]")
      ```

      Cette convention garantit que Python n'exécute votre code que lorsque vous lancez le script directement, et non lorsqu'un processus worker l'importe en tant que module.

      Pour plus d'informations sur le multiprocessing, consultez [`multiprocessing` de la bibliothèque standard Python](https://docs.python.org/3/library/multiprocessing.html#the-spawn-and-forkserver-start-methods) ou [`multiprocessing` de PyTorch](https://docs.pytorch.org/docs/stable/notes/multiprocessing.html#asynchronous-multiprocess-training-e-g-hogwild). Pour plus d'informations sur la convention `if __name__ == '__main__':`, consultez [Defining main functions in Python](https://realpython.com/if-name-main-python/).
    </Warning>
  </Tab>
</Tabs>

<h2 id="limit-the-number-of-runs-a-sweep-agent-tries">
  Limiter le nombre de runs tentés par un agent de sweep
</h2>

Par défaut, les recherches aléatoires et bayésiennes s'exécutent indéfiniment : il est donc conseillé de plafonner le nombre de runs tentés par un agent. Indiquez le nombre de runs qu'un agent de sweep doit essayer afin de limiter son travail. Les extraits de code suivants montrent comment définir un nombre maximum de [runs](/fr/products/wandb/ref/python/experiments/run) avec la CLI et dans un notebook Jupyter ou un script Python.

<Warning>
  Les recherches aléatoires et bayésiennes s'exécutent indéfiniment. Si vous ne définissez pas de nombre de runs, vous devez arrêter le processus depuis la ligne de commande, depuis votre script Python ou depuis l'[interface Sweeps](/fr/products/wandb/sweeps/visualize-sweep-results).
</Warning>

<Tabs>
  <Tab title="CLI">
    Commencez par initialiser votre sweep avec la commande [`wandb sweep`](/fr/products/wandb/ref/cli/wandb-sweep). Pour plus d'informations, voir [Initialiser des sweeps](/fr/products/wandb/sweeps/initialize-sweeps).

    ```bash theme={"system"}
    wandb sweep config.yaml
    ```

    Ensuite, transmettez une valeur entière à l'option count pour définir le nombre maximum de runs à essayer.

    ```bash theme={"system"}
    NUM=10
    SWEEPID="dtzl1o7u"
    wandb agent --count $NUM $SWEEPID
    ```
  </Tab>

  <Tab title="Script Python ou notebook">
    Commencez par initialiser votre sweep. Pour plus d'informations, voir [Initialiser des sweeps](/fr/products/wandb/sweeps/initialize-sweeps).

    ```python theme={"system"}
    sweep_id = wandb.sweep(sweep_config)
    ```

    Ensuite, lancez la tâche de sweep. Fournissez l'ID de sweep généré lors de l'initialisation. Transmettez une valeur entière au paramètre count pour définir le nombre maximum de runs à essayer.

    ```python theme={"system"}
    sweep_id, count = "dtzl1o7u", 10
    wandb.agent(sweep_id, count=count)
    ```

    <Warning>
      Si vous démarrez un nouveau run dans le même script ou notebook une fois l'agent de sweep terminé, appelez `wandb.teardown()` avant de démarrer ce nouveau run.
    </Warning>
  </Tab>
</Tabs>
