> ## 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.

> Exécutez les algorithmes de recherche et d’arrêt localement plutôt que d’utiliser le service hébergé dans le cloud de W&B.

# Gérer les algorithmes localement

Cette page explique comment exécuter localement les algorithmes de recherche et d’arrêt d’un sweep plutôt que d’utiliser le contrôleur hébergé dans le cloud de W\&B. Utilisez le contrôleur local pour inspecter et instrumenter le code afin de déboguer des problèmes ou de développer de nouveaux algorithmes que vous pourrez ensuite intégrer au contrôleur hébergé dans le cloud.

Par défaut, W\&B héberge le contrôleur d’hyperparamètres en tant que service cloud. Les agents W\&B communiquent avec le contrôleur pour déterminer le prochain jeu de paramètres à utiliser pour l’entraînement. Le contrôleur exécute également des algorithmes d’arrêt anticipé pour déterminer les runs à arrêter.

La fonctionnalité de contrôleur local vous permet d’exécuter localement les algorithmes de recherche et d’arrêt.

<Warning>
  Cette fonctionnalité permet de développer et de déboguer plus rapidement de nouveaux algorithmes pour l’outil Sweeps. Elle n’est pas adaptée aux charges de travail d’optimisation d’hyperparamètres.
</Warning>

<h2 id="prerequisites">
  Prérequis
</h2>

Installez le SDK W\&B (`wandb`) pour disposer des commandes du contrôleur local :

```bash theme={"system"}
pip install wandb sweeps
```

Les exemples suivants partent du principe que vous disposez déjà d'un fichier de configuration et d'une boucle d'entraînement définis dans un script Python ou un notebook Jupyter. Pour plus d'informations, voir [Définir la configuration de sweep](/fr/products/wandb/sweeps/define-sweep-configuration).

<h2 id="run-a-local-controller-from-the-command-line">
  Exécuter un contrôleur local depuis la ligne de commande
</h2>

Initialisez un sweep comme vous le feriez avec les contrôleurs d’hyperparamètres hébergés par W\&B en tant que service cloud, mais ajoutez l’option `--controller` pour utiliser le contrôleur local :

1. Initialisez le sweep avec l’option `--controller` :

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

2. Notez l’ID de sweep généré par `wandb sweep`, puis démarrez le contrôleur. Remplacez `[SWEEP-ID]` par l’ID du sweep. Vous pouvez indiquer uniquement l’ID court du sweep ou inclure l’entity et le projet sous forme de chemin (`[ENTITY]/[PROJECT]/[SWEEP-ID]`) :

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

3. Démarrez un ou plusieurs agents de sweep pour exécuter le sweep. Remplacez `[SWEEP-ID]` par l’ID du sweep :

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

   Pour plus d’informations, voir [Démarrer des agents de sweep](/fr/products/wandb/sweeps/start-sweep-agents).

Vous pouvez également ajouter le contrôleur à votre fichier de configuration pour ne pas avoir à passer `--controller` à chaque initialisation du sweep :

```yaml theme={"system"}
controller:
  type: local
```

Initialisez ensuite le sweep sans l’option, puis passez aux étapes 2 et 3 :

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

<h2 id="run-a-local-controller-with-wb-python-sdk">
  Exécuter un contrôleur local avec le SDK Python W\&B
</h2>

Les extraits de code suivants montrent comment spécifier et utiliser un contrôleur local avec le SDK Python W\&B. Chaque exemple offre un contrôle de plus en plus fin : vous pouvez ainsi choisir l’approche adaptée au degré de personnalisation dont vous avez besoin pour la recherche et la planification.

Pour utiliser un contrôleur avec le SDK Python, transmettez l’ID du sweep à la méthode [`wandb.controller()`](/fr/products/wandb/ref/python/functions/controller), puis appelez la méthode `run` de l'objet renvoyé pour lancer le job de sweep :

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

Pour un contrôle plus fin de la boucle du contrôleur, exécutez-la vous-même étape par étape :

```python theme={"system"}
import wandb

sweep = wandb.controller(sweep_id)
while not sweep.done():
    sweep.print_status()
    sweep.step()
    time.sleep(5)
```

Pour contrôler encore plus finement les paramètres fournis, appelez directement `search` et `schedule` :

```python theme={"system"}
import wandb

sweep = wandb.controller(sweep_id)
while not sweep.done():
    params = sweep.search()
    sweep.schedule(params)
    sweep.print_status()
```

Pour définir votre sweep entièrement dans le code plutôt que dans un fichier de configuration YAML, configurez la recherche, le programme, le contrôleur et les paramètres en Python :

```python theme={"system"}
import wandb

sweep = wandb.controller()
sweep.configure_search("grid")
sweep.configure_program("train-dummy.py")
sweep.configure_controller(type="local")
sweep.configure_parameter("param1", value=3)
sweep.create()
sweep.run()
```
