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

> Rembobinez un run pour corriger ou modifier son historique sans perdre les données d'origine.

# Rembobiner un run

Rembobinez un run pour modifier l'historique d'un run. Lorsque vous rembobinez un run, W\&B réinitialise l'état du run à l'étape spécifiée tout en conservant le même ID du run.

<Note>
  La possibilité de rembobiner un run est en cours de développement actif. Elle est en préversion pour Cloud mutualisé et Cloud dédié, et n'est pas encore disponible en Autogéré.

  En raison de limitations de performances connues avec le rembobinage, W\&B recommande généralement [Forking](./forking) comme solution alternative.
</Note>

<div id="prerequisites">
  ### Prérequis
</div>

Avant de rembobiner un run, assurez-vous de respecter les prérequis suivants :

* Pour rembobiner un run, vous devez disposer du [W\&B Python SDK](https://pypi.org/project/wandb/) en version >= `0.17.1`.
* Vous devez utiliser des étapes à progression monotone croissante. Cela ne fonctionne pas avec des étapes non monotones définies avec [`define_metric()`](/fr/models/ref/python/experiments/run#define_metric), car cela perturbe l’ordre chronologique requis de l’historique du run.

<div id="limitations">
  ### Limites
</div>

Rewind ne prend pas en charge les éléments suivants :

* **Rembobinage des journaux** : les journaux sont réinitialisés dans le nouveau segment du run.
* **Rembobinage des métriques système** : W\&B n'enregistre que les nouvelles métriques système après le point de rembobinage.
* **Association d'Artifacts** : W\&B associe les artifacts au run source qui les produit.

W\&B recalcule les métriques de summary du run que vous rembobinez à partir de l'historique nouvellement enregistré, avec les résultats suivants :

* **Troncature de l'historique** : W\&B tronque l'historique jusqu'au point de rembobinage, ce qui permet d'enregistrer de nouvelles données.
* **Métriques de summary** : recalculées à partir de l'historique nouvellement enregistré.
* **Préservation de la configuration** : W\&B conserve les configurations d'origine et vous pouvez fusionner de nouvelles configurations.

<div id="rewind-and-forking-compatibility">
  ### Compatibilité entre le rembobinage et le fork
</div>

Le fork vient compléter le rembobinage.

Lorsque vous créez un fork à partir d’un run, W\&B crée une nouvelle branche du run à un point précis afin d’essayer différents paramètres ou modèles.

Lorsque vous rembobinez un run, W\&B vous permet de corriger ou de modifier l’historique du run lui-même.

<div id="rewind-a-run">
  ## Rembobiner un run
</div>

Rembobinez un run à partir d’une étape donnée et journalisez de nouvelles données à partir de ce point. Transmettez à la fois l’ID du run et l’étape à partir de laquelle vous souhaitez rembobiner en arguments du paramètre `resume_from` dans [`wandb.init()`](/fr/models/ref/python/functions/init). Le paramètre `resume_from` accepte une chaîne au format `<run ID>?_step=<step>`, où `<run ID>` est l’ID du run du run que vous souhaitez rembobiner et `<step>` est l’étape à partir de laquelle vous souhaitez rembobiner.

Supposons que vous journalisiez une droite linéaire pendant 300 étapes :

```python theme={null}
import wandb

# Initialiser le premier run et journaliser quelques métriques
with wandb.init(project="<project>", entity="wandb") as run:
    for i in range(300):
        # Tracer une droite linéaire
        run.log({"metric": i, "step": i})
```

Dans le Workspace de votre projet, vous voyez un graphique en courbes allant de l’étape 0 à l’étape 300 :

<img src="https://mintcdn.com/wb-21fd5541/6HEMP6mODfnZO59x/images/runs/rewind_run_original.png?fit=max&auto=format&n=6HEMP6mODfnZO59x&q=85&s=46d5d9edd5e64943d5e4dc4d2bda3f78" alt="Graphique en courbes du run original" width="2014" height="1024" data-path="images/runs/rewind_run_original.png" />

Plus tard, vous souhaitez rembobiner le run à partir de l’étape 200 et journaliser une nouvelle métrique appelée `additional_metric`, avec les valeurs `i*1.1` de l’étape 200 à l’étape 300. À partir de l’étape 250, vous souhaitez journaliser à la place un nouveau motif ondulé subtil (`i**2 + 2*sin(i/3)`) plutôt qu’une ligne droite :

```python theme={null}
import math

run_ID = "<run_ID>" # Remplacez par l'ID du run que vous souhaitez rembobiner

# Rembobiner à partir du premier run à une étape donnée et journaliser la métrique à partir de l'étape 200
with wandb.init(project="<project>", entity="wandb", resume_from=f"{run_ID}?_step=200") as run:

    # Pour les premières étapes, journaliser la métrique telle quelle depuis le run
    # Après l'étape 250, commencer à journaliser le motif ondulé
    for i in range(200, 300):
        if i < 250:
            run.log({"metric": i, "step": i})  # Continuer la journalisation depuis le run sans ondulations
        else:
            # Introduire le comportement ondulé à partir de l'étape 250
            subtle_wave = i + (2 * math.sin(i / 3.0))  # Appliquer un motif ondulé subtil
            run.log({"metric": subtle_wave, "step": i})
        # Journaliser également la nouvelle métrique à toutes les étapes
        run.log({"additional_metric": i * 1.1, "step": i})
```

L’image suivante montre le Workspace du projet mis à jour. Notez les modifications suivantes dans le graphique après rembobinage :

* Le graphique en courbes affiche la ligne linéaire d’origine de l’étape 0 à l’étape 200, et un léger motif ondulé apparaît à partir de l’étape 250 (image de gauche).
* W\&B a créé un nouveau graphique (graphique de droite) intitulé `additional_metric`, qui commence à l’étape 200.

<img src="https://mintcdn.com/wb-21fd5541/6HEMP6mODfnZO59x/images/runs/rewind_run_step200_wmetric.png?fit=max&auto=format&n=6HEMP6mODfnZO59x&q=85&s=cff83dd2c97208230980632a16097d22" alt="De gauche à droite : ligne linéaire d’origine et métrique supplémentaire" width="3266" height="1057" data-path="images/runs/rewind_run_step200_wmetric.png" />

<div id="view-an-archived-run">
  ## Afficher un run archivé
</div>

Après avoir rembobiné un run, vous pouvez explorer le run archivé d’origine dans la W\&B App. Suivez ces étapes pour afficher un run archivé :

1. **Accédez à l’onglet Vue d’ensemble :** Accédez à l’[onglet **Vue d’ensemble**](./#overview-tab) de la page du run. Cet onglet offre une vue complète des détails et de l’historique du run.
2. **Repérez le champ Forked From :** Dans l’onglet **Vue d’ensemble**, repérez le champ `Forked From`. Ce champ enregistre l’historique des reprises. Le champ **Forked From** contient un lien vers le run source, ce qui vous permet de remonter jusqu’au run d’origine et de comprendre tout l’historique du rembobinage.

En utilisant le champ `Forked From`, vous pouvez naviguer facilement dans l’arborescence des reprises archivées et mieux comprendre la séquence et l’origine de chaque rembobinage.

<div id="fork-from-a-run-that-you-rewind">
  ## Créer un fork à partir d’un run que vous rembobinez
</div>

Pour créer un fork à partir d’un run rembobiné, utilisez l’argument [`fork_from`](/fr/models/runs/forking/) dans `wandb.init()` et indiquez l’ID du run source ainsi que l’étape du run source à partir de laquelle créer le fork :

```python theme={null}
import wandb

# Créer un fork du run à partir d'une étape spécifique
forked_run = wandb.init(
    project="<project>",
    entity="<entity>",
    fork_from=f"{rewind_run.id}?_step=500",
)

# Continuer la journalisation dans le nouveau run
for i in range(500, 1000):
    forked_run.log({"metric": i*3})
forked_run.finish()
```
