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

# Options de configuration de sweep

> Référence de toutes les clés de configuration de sweep, notamment method, metric, parameters, l’arrêt anticipé et command.

Une configuration de sweep se compose de paires clé-valeur imbriquées. Utilisez les clés de premier niveau de votre configuration de sweep pour définir les caractéristiques de la recherche effectuée par votre sweep, comme les paramètres à explorer (clé [`parameters`](#parameters)) et la méthode d’exploration de l’espace des paramètres (clé [`method`](#method)).

Le tableau suivant répertorie les clés de premier niveau de la configuration de sweep, accompagnées d’une brève description. Pour plus d’informations sur chaque clé, consultez la section correspondante.

| Clés de premier niveau | Description |
| - | - |
| `program` | (requis) Script d’entraînement à exécuter |
| `entity` | L’entity de ce sweep |
| `project` | Le projet de ce sweep |
| `description` | Description textuelle du sweep |
| `name` | Le nom du sweep, affiché dans l’interface W\&B. |
| [`method`](#method) | (requis) La stratégie de recherche |
| [`metric`](#metric) | La métrique à optimiser (utilisée uniquement par certaines stratégies de recherche et certains critères d’arrêt) |
| [`parameters`](#parameters) | (requis) Bornes des paramètres à explorer |
| [`early_terminate`](#early_terminate) | Critères d’arrêt anticipé éventuels |
| [`command`](#command) | Structure de la commande qui appelle le script d’entraînement et lui transmet des arguments |
| `run_cap` | Nombre maximum de runs pour ce sweep |

Pour plus d’informations, voir [Définir la configuration de sweep](/fr/products/wandb/sweeps/define-sweep-configuration).

<h2 id="metric">
  `metric`
</h2>

Utilisez la clé de premier niveau `metric` de la configuration de sweep pour spécifier le nom, l’objectif et la métrique cible à optimiser.

| Clé | Description |
| - | - |
| `name` | Nom de la métrique à optimiser. |
| `goal` | `minimize` ou `maximize` (par défaut : `minimize`). |
| `target` | Valeur cible de la métrique à optimiser. Le sweep cesse de créer de nouveaux runs dès qu’un run atteint la valeur cible que vous avez spécifiée. Les agents actifs dont un run est en cours d’exécution au moment où celui-ci atteint la cible attendent la fin de ce run avant de cesser de créer de nouveaux runs. |

<h2 id="parameters">
  `parameters`
</h2>

Dans votre fichier YAML ou votre script Python, spécifiez `parameters` comme clé de premier niveau. Sous la clé `parameters`, indiquez le nom de chaque hyperparamètre à optimiser. Parmi les hyperparamètres courants figurent le taux d’apprentissage, la taille de lot, le nombre d’époques et l’optimiseur. Pour chaque hyperparamètre défini dans votre configuration de sweep, spécifiez une ou plusieurs contraintes de recherche.

Le tableau suivant présente les contraintes de recherche d’hyperparamètres prises en charge. Selon votre hyperparamètre et votre cas d’usage, utilisez l’une de ces contraintes pour indiquer à votre agent de sweep où chercher (dans le cas d’une distribution) ou quelles valeurs rechercher ou utiliser (par exemple `value` ou `values`).

| Contrainte de recherche | Description |
| - | - |
| `values` | Spécifie toutes les valeurs valides pour cet hyperparamètre. Compatible avec `grid`. |
| `value` | Spécifie l’unique valeur valide pour cet hyperparamètre. Compatible avec `grid`. |
| `distribution` | Spécifie une [distribution](#distribution-options-for-random-and-bayesian-search) de probabilité. Consultez la note sous ce tableau pour en savoir plus sur les valeurs par défaut. |
| `probabilities` | Spécifie la probabilité de sélectionner chaque élément de `values` avec la méthode `random`. |
| `min`, `max` | (`int` ou `float`) Valeurs minimale et maximale. Avec `int`, pour les hyperparamètres suivant une distribution `int_uniform`. Avec `float`, pour les hyperparamètres suivant une distribution `uniform`. |
| `mu` | (`float`) Paramètre de moyenne pour les hyperparamètres suivant une distribution `normal` ou `lognormal`. |
| `sigma` | (`float`) Paramètre d’écart type pour les hyperparamètres suivant une distribution `normal` ou `lognormal`. |
| `q` | (`float`) Pas de quantification pour les hyperparamètres quantifiés. |
| `parameters` | Imbrique d’autres paramètres dans un paramètre de niveau racine. |

<Note>
  Si vous ne spécifiez pas de [distribution](#distribution-options-for-random-and-bayesian-search), W\&B applique les distributions suivantes selon les cas :

  * `categorical` si vous spécifiez `values`
  * `int_uniform` si vous spécifiez `max` et `min` sous forme d’entiers
  * `uniform` si vous spécifiez `max` et `min` sous forme de nombres à virgule flottante
  * `constant` si vous spécifiez `value`
</Note>

<h2 id="method">
  `method`
</h2>

Définissez la stratégie de recherche d'hyperparamètres avec la clé `method`. Trois stratégies de recherche d'hyperparamètres sont disponibles : la recherche sur grille, la recherche aléatoire et la recherche bayésienne.

<h3 id="grid-search">
  Recherche sur grille
</h3>

La recherche sur grille parcourt toutes les combinaisons de valeurs d’hyperparamètres. Elle choisit les valeurs d’hyperparamètres à utiliser à chaque itération sans s’appuyer sur les résultats précédents. La recherche sur grille peut s’avérer coûteuse en calcul.

La recherche sur grille s’exécute indéfiniment si l’espace de recherche est continu.

<h3 id="random-search">
  Recherche aléatoire
</h3>

La recherche aléatoire choisit, à chaque itération, un ensemble aléatoire et non informé de valeurs d’hyperparamètres en se basant sur une distribution. La recherche aléatoire s’exécute indéfiniment, sauf si vous arrêtez le processus depuis la ligne de commande, dans votre script Python ou depuis [la W\&B App](/fr/products/wandb/sweeps/visualize-sweep-results).

Si vous choisissez la recherche aléatoire (`method: random`), spécifiez la distribution de chaque hyperparamètre dans la clé `parameters`.

<h3 id="bayesian-search">
  Recherche bayésienne
</h3>

Contrairement à la recherche [aléatoire](#random-search) et à la recherche [sur grille](#grid-search), les modèles bayésiens prennent des décisions éclairées. L’optimisation bayésienne s’appuie sur un modèle probabiliste pour choisir les valeurs à utiliser. Le processus teste les valeurs de manière itérative sur une fonction de substitution avant d’évaluer la fonction objectif. La recherche bayésienne convient bien à un petit nombre de paramètres continus, mais passe mal à l’échelle. Pour plus d’informations sur la recherche bayésienne, consultez l’article [Bayesian Optimization Primer](https://web.archive.org/web/20240209053347/https://static.sigopt.com/b/20a144d208ef255d3b981ce419667ec25d8412e2/static/pdf/SigOpt_Bayesian_Optimization_Primer.pdf).

La recherche bayésienne s’exécute indéfiniment, sauf si vous arrêtez le processus depuis la ligne de commande, dans votre script Python ou depuis [W\&B App](/fr/products/wandb/sweeps/visualize-sweep-results).

<h3 id="distribution-options-for-random-and-bayesian-search">
  Options de distribution pour la recherche aléatoire et la recherche bayésienne
</h3>

Dans la clé `parameters`, imbriquez le nom de l’hyperparamètre. Ensuite, définissez la clé `distribution` et indiquez une distribution pour la valeur.

Le tableau suivant répertorie les distributions prises en charge par W\&B.

| Valeur de la clé `distribution` | Description |
| - | - |
| `constant` | Distribution constante. Vous devez indiquer la valeur constante (`value`) à utiliser. |
| `categorical` | Distribution catégorielle. Vous devez indiquer toutes les valeurs valides (`values`) de cet hyperparamètre. |
| `int_uniform` | Distribution uniforme discrète sur les entiers. Vous devez indiquer `max` et `min` sous forme d’entiers. |
| `uniform` | Distribution uniforme continue. Vous devez indiquer `max` et `min` sous forme de nombres à virgule flottante. |
| `q_uniform` | Distribution uniforme quantifiée. Renvoie `round(X / q) * q`, où `X` est uniforme. `q` vaut `1` par défaut. |
| `log_uniform` | Distribution log-uniforme. Renvoie une valeur `X` comprise entre `exp(min)` et `exp(max)` telle que le logarithme naturel soit uniformément distribué entre `min` et `max`. |
| `log_uniform_values` | Distribution log-uniforme. Renvoie une valeur `X` comprise entre `min` et `max` telle que `log(X)` soit uniformément distribué entre `log(min)` et `log(max)`. |
| `q_log_uniform` | Distribution log-uniforme quantifiée. Renvoie `round(X / q) * q`, où `X` est `log_uniform`. `q` vaut `1` par défaut. |
| `q_log_uniform_values` | Distribution log-uniforme quantifiée. Renvoie `round(X / q) * q`, où `X` est `log_uniform_values`. `q` vaut `1` par défaut. |
| `inv_log_uniform` | Distribution log-uniforme inverse. Renvoie `X`, où `log(1/X)` est uniformément distribué entre `min` et `max`. |
| `inv_log_uniform_values` | Distribution log-uniforme inverse. Renvoie `X`, où `log(1/X)` est uniformément distribué entre `log(1/max)` et `log(1/min)`. |
| `normal` | Distribution normale. La valeur de retour suit une loi normale de moyenne `mu` (`0` par défaut) et d’écart type `sigma` (`1` par défaut). |
| `q_normal` | Distribution normale quantifiée. Renvoie `round(X / q) * q`, où `X` est `normal`. `q` vaut `1` par défaut. |
| `log_normal` | Distribution log-normale. Renvoie une valeur `X` telle que le logarithme naturel `log(X)` suive une loi normale de moyenne `mu` (`0` par défaut) et d’écart type `sigma` (`1` par défaut). |
| `q_log_normal` | Distribution log-normale quantifiée. Renvoie `round(X / q) * q`, où `X` est `log_normal`. `q` vaut `1` par défaut. |

<h2 id="early_terminate">
  `early_terminate`
</h2>

Utilisez l’arrêt anticipé (`early_terminate`) pour interrompre les runs peu performants. En cas d’arrêt anticipé, W\&B arrête le run actuel avant de créer un nouveau run avec un nouvel ensemble de valeurs d’hyperparamètres.

<Note>
  Vous devez spécifier un algorithme d’arrêt si vous utilisez `early_terminate`. Dans votre configuration de sweep, imbriquez la clé `type` dans `early_terminate`.
</Note>

<h3 id="stopping-algorithm">
  Algorithme d’arrêt
</h3>

<Note>
  W\&B prend en charge l’algorithme d’arrêt [Hyperband](https://arxiv.org/abs/1603.06560).
</Note>

L’optimisation des hyperparamètres [Hyperband](https://arxiv.org/abs/1603.06560) détermine si un programme doit s’arrêter ou continuer à un ou plusieurs nombres d’itérations prédéfinis, appelés *brackets*.

Lorsqu’un run W\&B atteint un bracket, le sweep compare la métrique de ce run à toutes les valeurs de métrique signalées jusque-là. Le sweep met fin au run si la valeur de sa métrique est trop élevée (lorsque l’objectif est la minimisation) ou trop faible (lorsque l’objectif est la maximisation).

Les brackets sont basés sur le nombre d’itérations journalisées. Le nombre de brackets correspond au nombre de fois où vous journalisez la métrique que vous optimisez. Les itérations peuvent correspondre à des étapes, à des époques ou à une granularité intermédiaire. Le calcul des brackets ne tient pas compte de la valeur numérique du compteur d’étapes.

<Note>
  Spécifiez `min_iter` ou `max_iter` pour créer un calendrier de brackets.
</Note>

| Clé | Description |
| - | - |
| `min_iter` | Spécifie l’itération du premier bracket |
| `max_iter` | Spécifie le nombre maximum d’itérations. |
| `s` | Spécifie le nombre total de brackets (requis pour `max_iter`) |
| `eta` | Spécifie le calendrier du multiplicateur de brackets (par défaut : `3`). |
| `strict` | Active le mode `strict`, qui élague les runs de manière agressive, en suivant plus fidèlement l’article original sur Hyperband. Valeur par défaut : `false`. |

<Note>
  Hyperband vérifie toutes les quelques minutes quels [runs](/fr/products/wandb/ref/python/experiments/run) doivent être arrêtés. L’horodatage de fin du run peut différer des brackets spécifiés si votre run ou votre itération est de courte durée.
</Note>

<h2 id="command">
  `command`
</h2>

Utilisez la clé de premier niveau `command` pour contrôler la manière dont l’agent de sweep appelle votre script d’entraînement et lui transmet des arguments. Modifiez le format et le contenu à l’aide de valeurs imbriquées dans la clé `command`. Vous pouvez inclure directement des composants fixes, tels que des noms de fichiers.

<Note>
  Sur les systèmes Unix, `/usr/bin/env` garantit que le système d’exploitation choisit l’interpréteur Python approprié en fonction de l’environnement.
</Note>

W\&B prend en charge les macros suivantes pour les composants variables de la commande :

| Macro de commande | Description |
| - | - |
| `${env}` | `/usr/bin/env` sur les systèmes Unix, omis sous Windows. |
| `${interpreter}` | Remplacé par `python`. |
| `${program}` | Nom de fichier du script d’entraînement, spécifié par la clé `program` de la configuration de sweep. |
| `${args}` | Hyperparamètres et leurs valeurs, sous la forme `--param1=value1 --param2=value2`. |
| `${args_no_boolean_flags}` | Hyperparamètres et leurs valeurs, sous la forme `--param1=value1`, à l’exception des paramètres booléens, qui prennent la forme `--boolean_flag_param` lorsqu’ils valent `True` et sont omis lorsqu’ils valent `False`. |
| `${args_no_hyphens}` | Hyperparamètres et leurs valeurs, sous la forme `param1=value1 param2=value2`. |
| `${args_json}` | Hyperparamètres et leurs valeurs, encodés en JSON. |
| `${args_json_file}` | Chemin d’un fichier contenant les hyperparamètres et leurs valeurs, encodés en JSON. |
| `${envvar}` | Permet de transmettre des variables d’environnement. `${envvar:MYENVVAR}` est remplacé par la valeur de la variable d’environnement `MYENVVAR`. |
