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

# Journaliser des modèles

> Journalisez des artifacts de modèle dans un run W&B et récupérez-les par la suite à l’aide des méthodes log_model et use_model du SDK.

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Try in Colab
  </a>;

<ColabLink url="https://colab.research.google.com/github/wandb/examples/blob/ken-add-new-model-reg-api/colabs/wandb-model-registry/New_Model_Logging_in_W&B.ipynb" />

<h1 id="log-models">
  Journaliser des modèles
</h1>

Ce guide explique comment journaliser des modèles dans un run W\&B et comment interagir avec eux.

<Note>
  Les API suivantes sont utiles pour suivre des modèles dans le cadre de votre flux de travail de suivi des expériences. Utilisez les API présentées sur cette page pour journaliser des modèles dans un run et pour accéder aux métriques, aux tableaux, aux médias et à d’autres objets.

  W\&B vous recommande d’utiliser [W\&B Artifacts](/fr/products/wandb/artifacts) si vous souhaitez :

  * Créer et suivre différentes versions de données sérialisées autres que des modèles, comme des jeux de données, des prompts, etc.
  * Explorer les [graphes de traçabilité](/fr/products/wandb/artifacts/explore-and-traverse-an-artifact-graph) d’un modèle ou de tout autre objet suivi dans W\&B.
  * Interagir avec les artifacts de modèle créés par ces méthodes, par exemple en [mettant à jour leurs propriétés](/fr/products/wandb/artifacts/update-an-artifact) (métadonnées, alias et descriptions)

  Pour plus d’informations sur W\&B Artifacts et sur les cas d’usage avancés de gestion des versions, consultez la documentation [Artifacts](/fr/products/wandb/artifacts).
</Note>

<h2 id="log-a-model-to-a-run">
  Journaliser un modèle dans un run
</h2>

Utilisez [`log_model`](/fr/products/wandb/ref/python/experiments/run#log_model) pour journaliser un artifact de modèle contenant les fichiers d’un répertoire que vous spécifiez. La méthode [`log_model`](/fr/products/wandb/ref/python/experiments/run#log_model) marque également l’artifact de modèle obtenu comme sortie du run W\&B.

Si vous marquez un modèle comme entrée ou sortie d’un run W\&B, vous pouvez suivre ses dépendances et ses associations. Consultez la traçabilité du modèle dans l’interface de l’application W\&B. Pour plus d’informations, voir la page [Explorer et parcourir les graphes d’artifacts](/fr/products/wandb/artifacts/explore-and-traverse-an-artifact-graph) du chapitre [Artifacts](/fr/products/wandb/artifacts).

Transmettez au paramètre `path` le chemin où vos fichiers de modèle sont enregistrés. Ce chemin peut désigner un fichier local, un répertoire ou un [URI de référence](/fr/products/wandb/artifacts/track-external-files#amazon-s3--gcs--azure-blob-storage-references) vers un bucket externe, par exemple `s3://bucket/path`.

Veillez à remplacer les valeurs entre `<>` par les vôtres.

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

# Initialiser un run W&B
with wandb.init(project="<your-project>", entity="<your-entity>") as run:

    # Journaliser le modèle
    run.log_model(path="<path-to-model>", name="<name>")
```

Vous pouvez, si vous le souhaitez, fournir un nom pour l’artifact de modèle via le paramètre `name`. Si `name` n’est pas spécifié, W\&B utilise comme nom le nom de base (basename) du chemin d’entrée, précédé de l’ID du run.

<Note>
  Notez le `name` que vous attribuez au modèle, ou que W\&B lui attribue. Vous en aurez besoin pour récupérer le chemin du modèle avec la méthode [`wandb.Run.use_model()`](/fr/products/wandb/ref/python/experiments/run#use_model).
</Note>

Consultez [`log_model`](/fr/products/wandb/ref/python/experiments/run#log_model) dans la Référence de l’API pour connaître les paramètres.

<details>
  <summary>Exemple : journaliser un modèle dans un run</summary>

  ```python theme={"system"}
  import os
  import wandb
  from tensorflow import keras
  from tensorflow.keras import layers

  config = {"optimizer": "adam", "loss": "categorical_crossentropy"}

  # Initialiser un run W&B
  with wandb.init(entity="charlie", project="mnist-experiments", config=config) as run:

      # Hyperparamètres
      loss = run.config["loss"]
      optimizer = run.config["optimizer"]
      metrics = ["accuracy"]
      num_classes = 10
      input_shape = (28, 28, 1)

      # Algorithme d’entraînement
      model = keras.Sequential(
          [
              layers.Input(shape=input_shape),
              layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
              layers.MaxPooling2D(pool_size=(2, 2)),
              layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
              layers.MaxPooling2D(pool_size=(2, 2)),
              layers.Flatten(),
              layers.Dropout(0.5),
              layers.Dense(num_classes, activation="softmax"),
          ]
      )

      # Configurer le modèle pour l’entraînement
      model.compile(loss=loss, optimizer=optimizer, metrics=metrics)

      # Enregistrer le modèle
      model_filename = "model.h5"
      local_filepath = "./"
      full_path = os.path.join(local_filepath, model_filename)
      model.save(filepath=full_path)

      # Journaliser le modèle dans le run W&B
      run.log_model(path=full_path, name="MNIST")
  ```

  Lorsque vous appelez `wandb.Run.log_model()`, un artifact de modèle nommé `MNIST` est créé et le fichier `model.h5` y est ajouté. Votre terminal ou votre notebook indique ensuite où trouver des informations sur le run dans lequel le modèle a été journalisé.

  ```python theme={"system"}
  View run different-surf-5 at: https://wandb.ai/charlie/mnist-experiments/runs/wlby6fuw
  Synced 5 W&B file(s), 0 media file(s), 1 artifact file(s) and 0 other file(s)
  Find logs at: ./wandb/run-20231206_103511-wlby6fuw/logs
  ```
</details>

<h2 id="download-and-use-a-logged-model">
  Télécharger et utiliser un modèle journalisé
</h2>

Utilisez la fonction [`use_model`](/fr/products/wandb/ref/python/experiments/run#use_model) pour accéder aux fichiers de modèle précédemment journalisés dans un run W\&B et les télécharger.

Indiquez le nom de l’artifact de modèle dans lequel sont stockés les fichiers de modèle à récupérer. Ce nom doit correspondre à celui d’un artifact de modèle journalisé existant.

Si vous n’avez pas défini `name` lors de la journalisation initiale des fichiers avec `log_model`, le nom attribué par défaut est le nom de base du chemin d’entrée, précédé de l’ID du run.

Veillez à remplacer les valeurs entre `<>` par les vôtres :

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

# Initialiser un run
with wandb.init(project="<your-project>", entity="<your-entity>") as run:

    # Accéder au modèle et le télécharger. Renvoie le chemin de l’artifact téléchargé
    downloaded_model_path = run.use_model(name="<your-model-name>")
```

La fonction [use\_model](/fr/products/wandb/ref/python/experiments/run#use_model) renvoie le chemin des fichiers du modèle téléchargé. Conservez ce chemin si vous souhaitez lier ce modèle ultérieurement. Dans l’extrait de code précédent, le chemin renvoyé est stocké dans une variable nommée `downloaded_model_path`.

<details>
  <summary>Exemple : télécharger et utiliser un modèle journalisé</summary>

  Dans l’extrait de code suivant, par exemple, un utilisateur appelle l’API `use_model`. Il indique le nom de l’artifact de modèle à récupérer, ainsi qu’une version ou un alias. Il stocke ensuite le chemin renvoyé par l’API dans la variable `downloaded_model_path`.

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

  entity = "luka"
  project = "NLP_Experiments"
  alias = "latest"  # surnom sémantique ou identifiant de la version du modèle
  model_artifact_name = "fine-tuned-model"

  # Initialiser un run
  with wandb.init(project=project, entity=entity) as run:
      # Accéder au modèle et le télécharger. Renvoie le chemin de l’artifact téléchargé
      downloaded_model_path = run.use_model(name = f"{model_artifact_name}:{alias}") 
  ```
</details>

Pour connaître les paramètres et le type de retour, consultez [`use_model`](/fr/products/wandb/ref/python/experiments/run#use_model) dans la référence de l’API.
