> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-2626.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Démarrer ou arrêter un agent de balayage sur une ou plusieurs machines.

# Démarrer un agent de balayage

Cette page explique comment démarrer un agent de balayage sur une ou plusieurs machines afin que W\&B puisse exécuter votre recherche d'hyperparamètres. Les agents de balayage utilisent la configuration de balayage que vous définissez lorsque vous [initialisez un balayage](/fr/models/sweeps/initialize-sweeps) pour explorer différentes combinaisons d'hyperparamètres. W\&B crée une nouvelle exécution pour chaque combinaison d'hyperparamètres lancée par l'agent de balayage.

Voir [Gérer les balayages](/fr/models/sweeps/pause-resume-and-cancel-sweeps) pour savoir comment mettre en pause, reprendre, arrêter ou annuler un agent de balayage actif.

Avant de continuer :

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

Ces exemples montrent comment démarrer un agent de balayage avec la CLI W\&B ou depuis Python. Vous avez besoin de l'ID du balayage que W\&B renvoie lorsque vous initialisez le balayage. Vous pouvez utiliser l'ID court du balayage seul (par exemple, `dtzl1o7u`) ou inclure l'entité et le projet sous forme de chemin :

```bash theme={null}
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 vous voulez que W\&B stocke les résultats du run. Si vous ne spécifiez pas de projet, W\&B place le run dans un projet appelé "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 balayage. Fournissez l’ID du balayage renvoyé par W\&B lorsque vous initialisez le balayage.

    Remplacez `[SWEEP-ID]` par votre ID du balayage dans la commande suivante :

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

    Pour un arrêt propre lorsque vous interrompez l’agent (par exemple avec `Ctrl+C`), utilisez `wandb agent --forward-signals [SWEEP-ID]` afin que le run en cours reçoive le signal et puisse s’arrêter correctement. Voir [Signal handling and sweep runs](/fr/models/sweeps/signal-handling-sweep-runs) pour plus de détails.
  </Tab>

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

    Remplacez `[SWEEP-ID]` par votre ID du balayage et `[FUNCTION-NAME]` par le nom de votre fonction d’entraînement dans le code suivant :

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

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

    Voir l’onglet [Script Python ou notebook](/fr/models/sweeps/add-w-and-b-to-your-code#python-script-or-notebook) dans Add W\&B to your code pour obtenir un exemple de configuration de votre script d’entraînement si vous utilisez cette méthode.

    <Warning>
      **Multiprocessing**

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

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

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

      Pour plus d’informations sur multiprocessing, voir [Python standard library `multiprocessing`](https://docs.python.org/3/library/multiprocessing.html#the-spawn-and-forkserver-start-methods) ou [PyTorch `multiprocessing`](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__':`, voir [Defining main functions in Python](https://realpython.com/if-name-main-python/).
    </Warning>
  </Tab>
</Tabs>

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

Par défaut, les recherches aléatoires et bayésiennes s'exécutent indéfiniment. Définissez donc un plafond pour le nombre de runs qu'un agent tente. Spécifiez le nombre de runs qu'un agent de balayage doit essayer afin de limiter son travail. Les extraits de code suivants montrent comment définir un nombre maximal de [runs](/fr/models/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, dans votre script Python ou depuis l'[interface utilisateur Sweeps](/fr/models/sweeps/visualize-sweep-results).
</Warning>

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

    ```bash theme={null}
    wandb sweep config.yaml
    ```

    Ensuite, passez une valeur entière à l'indicateur `count` pour définir le nombre maximal de runs à essayer.

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

  <Tab title="Script Python ou notebook">
    Commencez par initialiser votre balayage. Pour plus d'informations, voir [Initialize sweeps](/fr/models/sweeps/initialize-sweeps).

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

    Ensuite, démarrez la tâche de balayage. Fournissez l'ID du balayage généré lors de l'initialisation du balayage. Passez une valeur entière au paramètre `count` pour définir le nombre maximal de runs à essayer.

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

    <Warning>
      Si vous démarrez un nouveau run après la fin de l'agent de balayage, dans le même script ou notebook, appelez `wandb.teardown()` avant de démarrer ce nouveau run.
    </Warning>
  </Tab>
</Tabs>
