> ## 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écouvrez l’élément de base de W&B, les runs.

# Aperçu

Un *run* est une unité de calcul unique journalisée par W\&B. Vous pouvez considérer un run W\&B comme l’élément atomique de votre projet. Autrement dit, chaque run est l’enregistrement d’un calcul précis, comme l’entraînement d’un modèle et la journalisation de ses résultats, un sweep d’hyperparamètres, etc.

Voici des cas d’utilisation courants de l’initialisation d’un run et de la journalisation dans celui-ci :

* Entraîner un modèle et [enregistrer des métriques](/fr/products/wandb/ref/python/experiments/run#method-run-log) comme la précision et la perte
* Effectuer une [optimisation des hyperparamètres](/fr/products/wandb/sweeps) et lancer de nouvelles expériences
* Mener une nouvelle expérience de machine learning avec un autre modèle
* Suivre et enregistrer des jeux de données et des modèles sous forme de [W\&B Artifacts](/fr/products/wandb/artifacts)
* [Télécharger et utiliser](/fr/products/wandb/artifacts/download-and-use-an-artifact) des jeux de données ou des modèles utilisés par d’autres membres de votre équipe sous forme de W\&B Artifacts

Pour initialiser un run W\&B, appelez la méthode [`wandb.init()`](/fr/products/wandb/ref/python/functions/init) du SDK Python W\&B. Celle-ci démarre un nouveau run et renvoie un objet `wandb.Run` qui vous permet de journaliser des métriques, des artifacts et d’autres informations dans le run. Pour en savoir plus sur l’initialisation d’un run, consultez [Initialiser des runs](/fr/products/wandb/runs/initialize-run).

Chaque objet run possède un [identifiant unique appelé *ID du run*](/fr/products/wandb/runs/run-identifiers#unique-run-identifiers). [Vous pouvez spécifier un ID unique](/fr/products/wandb/runs/run-identifiers#unique-run-identifiers) ou laisser [W\&B en générer un aléatoirement](/fr/products/wandb/runs/run-identifiers#autogenerated-run-ids). Chaque objet run possède également un [nom de run](/fr/products/wandb/runs/run-identifiers#run-name) lisible et non unique. Vous pouvez spécifier un nom pour votre run ou laisser W\&B en générer un aléatoirement. Vous pouvez renommer un run après son initialisation.

W\&B journalise votre run dans un [*projet*](/fr/products/wandb/track/project-page). Vous indiquez le projet lors de l’initialisation du run avec `wandb.init(project="")`. Si le projet n’existe pas, W\&B le crée. S’il existe, W\&B y journalise le run.

<Note>
  Si vous ne spécifiez pas de nom de projet, W\&B stocke le run dans un projet appelé `Uncategorized`.
</Note>

`wandb.init()` renvoie un objet `wandb.Run` qui contient les propriétés du run, comme son ID, son nom, sa configuration et son état. Utilisez l’objet run pour journaliser des métriques, des artifacts et d’autres informations dans le run à l’aide de méthodes telles que `wandb.Run.log()`, `wandb.Run.log_code()` et `wandb.Run.use_artifact()`.

Chaque run possède un état qui décrit son statut actuel. Consultez [États des runs](/fr/products/wandb/runs/run-states) pour obtenir la liste complète des états possibles.

[Affichez les runs et leurs propriétés](/fr/products/wandb/runs/view-logged-runs) dans le workspace du projet du run, dans la W\&B App. Vous pouvez également accéder aux propriétés d’un run par programmation avec l’objet [`wandb.Api.Run`](/fr/products/wandb/ref/python/experiments/run).

Par exemple, l’extrait de code suivant initialise un run W\&B et y journalise quelques métriques :

<Note>
  Si vous souhaitez suivre cet exemple, transmettez votre entity W\&B à la variable `entity` dans les extraits de code ci-dessous. Votre entity correspond à votre nom d’utilisateur ou au nom de votre équipe W\&B. Vous la trouverez dans l’URL de votre workspace de la W\&B App. Par exemple, si l’URL de votre workspace est `https://wandb.ai/nico/awesome-project`, votre entity est `nico`.
</Note>

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

entity = "nico"  # Remplacez par votre entity W&B
project = "awesome-project"

with wandb.init(entity=entity, project=project) as run:
    run.log({"accuracy": 0.9, "loss": 0.1})
```

La première ligne importe le SDK Python W\&B. La deuxième ligne initialise un run dans le projet `awesome-project` de l’entity `nico`. La troisième ligne journalise la précision et la perte du modèle dans ce run.

Dans le terminal, W\&B renvoie :

```bash theme={"system"}
wandb: Syncing run earnest-sunset-1
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb:                                                                                
wandb: 
wandb: Run history:
wandb: accuracy ▁
wandb:     loss ▁
wandb: 
wandb: Run summary:
wandb: accuracy 0.9
wandb:     loss 0.5
wandb: 
wandb: 🚀 View run earnest-sunset-1 at: https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb: ⭐️ View project at: https://wandb.ai/nico/awesome-project
wandb: Synced 6 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)
wandb: Find logs at: ./wandb/run-20241105_111006-1jx1ud12/logs
```

W\&B renvoie deux URL dans la sortie du terminal. La première vous redirige vers le [workspace du run concerné](/fr/products/wandb/runs/view-logged-runs), et la seconde vers la page du [projet](/fr/products/wandb/track/project-page).

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/single-run-call.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=d94af51d31bb488f294d4ed90647f4b8" alt="Workspace d’un run unique" width="2268" height="1178" data-path="products/wandb/_media/single-run-call.png" />
</Frame>

Journaliser une métrique à un seul instant n’est pas forcément très utile. Lors de l’entraînement de modèles discriminatifs, il est plus réaliste de journaliser des métriques à intervalles réguliers. Prenons par exemple l’extrait de code suivant :

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

config = {
    "epochs": 10,
    "learning_rate": 0.01,
}

with wandb.init(project="awesome-project", config=config) as run:
    print(f"lr: {config['learning_rate']}")
      
    # Simuler un run d’entraînement
    for epoch in range(config['epochs']):
      offset = random.random() / 5
      acc = 1 - 2**-epoch - random.random() / (epoch + 1) - offset
      loss = 2**-epoch + random.random() / (epoch + 1) + offset
      print(f"epoch={epoch}, accuracy={acc}, loss={loss}")
      run.log({"accuracy": acc, "loss": loss})
```

Le script d’entraînement appelle `wandb.Run.log()` 10 fois. À chaque appel de `wandb.Run.log()`, W\&B journalise la précision et la perte de l’époque correspondante.

Dans votre terminal, vous devriez obtenir une sortie semblable à celle-ci :

```bash theme={"system"}
wandb: Syncing run jolly-haze-4
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/pdo5110r
lr: 0.01
epoch=0, accuracy=-0.10070974957523078, loss=1.985328507123956
epoch=1, accuracy=0.2884687745057535, loss=0.7374362314407752
epoch=2, accuracy=0.7347387967382066, loss=0.4402409835486663
epoch=3, accuracy=0.7667969248039795, loss=0.26176963846423457
epoch=4, accuracy=0.7446848791003173, loss=0.24808611724405083
epoch=5, accuracy=0.8035095836268268, loss=0.16169791827329466
epoch=6, accuracy=0.861349032371624, loss=0.03432578493587426
epoch=7, accuracy=0.8794926436276016, loss=0.10331872172219471
epoch=8, accuracy=0.9424839917077272, loss=0.07767793473500445
epoch=9, accuracy=0.9584880427028566, loss=0.10531971149250456
wandb: 🚀 View run jolly-haze-4 at: https://wandb.ai/nico/awesome-project/runs/pdo5110r
wandb: Find logs at: wandb/run-20241105_111816-pdo5110r/logs
```

W\&B capture la boucle d’entraînement simulée dans un seul run, nommé `jolly-haze-4`, car le script n’appelle la méthode `wandb.init()` qu’une seule fois.

Copiez-collez dans votre navigateur l’URL que W\&B affiche dans la sortie précédente. Cette URL vous redirige vers le workspace du run dans l’interface de l’application W\&B. Par exemple, l’image suivante montre le workspace du run `jolly-haze-4` :

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/run_log_example_2.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=a09a32b95940ac8be3745091a9b42b5a" alt="Run d’entraînement avec des métriques journalisées" width="2467" height="1446" data-path="products/wandb/_media/run_log_example_2.png" />
</Frame>

<h2 id="run-summary">
  Synthèse du run
</h2>

Utilisez l’attribut [`summary`](/fr/products/wandb/ref/python/experiments/run#attributes) d’un run pour stocker des valeurs qui résument un modèle, un processus d’entraînement ou une étape de prétraitement. Contrairement aux métriques, qui évoluent au fil du temps, les valeurs de synthèse représentent généralement un résultat final ou agrégé.

Vous pouvez journaliser des valeurs de synthèse pendant qu’un run est actif ou les mettre à jour une fois le run terminé. Accédez-y par programmation avec le SDK Python W\&B ou consultez-les dans la W\&B App.

Pour plus d’informations, voir [Journaliser des métriques de synthèse](/fr/products/wandb/track/log/log-summary).

<h2 id="run-configuration">
  Configuration de run
</h2>

Utilisez la configuration d’un run pour stocker les valeurs d’entrée et les paramètres d’une expérience, comme les hyperparamètres, l’architecture du modèle ou le nom du jeu de données. Les valeurs de configuration vous permettent de suivre les conditions dans lesquelles les résultats d’un run ont été obtenus.

Vous pouvez journaliser des valeurs de configuration pendant qu’un run est actif, ou les mettre à jour une fois le run terminé. Accédez-y par programmation avec le SDK Python W\&B ou consultez-les dans la W\&B App.

Pour plus d’informations, voir [Configurer des expériences](/fr/products/wandb/track/config).
