Nous vous recommandons de créer un artifact incrémentiel lorsque vous devez modifier un sous-ensemble de fichiers d’un artifact dont la taille totale est nettement plus importante.
Créer de nouvelles versions d’artifact à partir de zéro
Il existe deux façons de créer une nouvelle version d’artifact : à partir d’un run unique ou à partir de runs distribués. Elles se définissent comme suit :- Run unique : un seul run fournit toutes les données d’une nouvelle version. Il s’agit du cas le plus courant, particulièrement adapté lorsque le run recrée entièrement les données nécessaires. Par exemple : générer des modèles enregistrés ou des prédictions de modèle dans un tableau à des fins d’analyse.
- Runs distribués : un ensemble de runs fournit collectivement toutes les données d’une nouvelle version. Ce cas convient particulièrement aux jobs distribués dans lesquels plusieurs runs génèrent des données, souvent en parallèle. Par exemple : évaluer un modèle de manière distribuée et générer les prédictions.
wandb.Artifact un nom qui n’existe pas dans votre projet, W&B crée un nouvel artifact et lui attribue l’alias v0. Lorsque vous journalisez à nouveau dans le même artifact, W&B calcule une somme de contrôle de son contenu. Si l’artifact a été modifié, W&B enregistre une nouvelle version v1.
Si vous transmettez à l’API wandb.Artifact un nom et un type d’artifact correspondant à un artifact existant dans votre projet, W&B récupère cet artifact. L’artifact récupéré aura une version supérieure à 1.

Run unique
Journalisez une nouvelle version d’un artifact avec un seul run qui produit tous les fichiers de l’artifact. C’est le cas lorsqu’un seul run génère l’ensemble des fichiers de l’artifact. Selon votre cas d’usage, sélectionnez l’un des onglets ci-dessous pour créer une nouvelle version d’artifact :- Suivre comme sortie de run
- Enregistrer directement
Utilisez
wandb.Run.log_artifact() pour associer explicitement l’artifact à un run :- Créez un run avec
wandb.init(). - Créez un nouvel artifact ou récupérez un artifact existant avec
wandb.Artifact. - Ajoutez des fichiers à l’artifact avec
wandb.Artifact.add_file(). - Journalisez l’artifact dans le run avec
wandb.Run.log_artifact().
Runs distribués
Permettez à un ensemble de runs de collaborer sur une version avant de la valider. Contrairement au mode run unique décrit ci-dessus, où un seul run fournit toutes les données d’une nouvelle version.- Chaque run de l’ensemble doit connaître le même ID unique (appelé
distributed_id) pour collaborer sur la même version. Par défaut, s’il est défini, W&B utilise commedistributed_idlegroupdu run, tel que défini parwandb.init(group=GROUP). - Un run final doit « valider » la version, ce qui verrouille définitivement son état.
- Utilisez
upsert_artifactpour ajouter du contenu à l’artifact collaboratif etfinish_artifactpour finaliser la validation.
upsert_artifact.
Run 1
Run 2
Run 3
Doit être exécuté une fois les runs 1 et 2 terminés. Le run qui appellewandb.Run.finish_artifact() peut ajouter des fichiers à l’artifact, mais ce n’est pas obligatoire.
Créer une nouvelle version d’artifact à partir d’une version existante
Créez une nouvelle version d’artifact en ajoutant, en modifiant ou en supprimant des fichiers dans une version d’artifact existante. W&B ne réindexe que les fichiers modifiés. La version obtenue est appelée artifact incrémentiel.
Artifact.add_file(), Artifact.add_dir() et Artifact.remove(). Pour obtenir la liste complète des méthodes, consultez la documentation de référence de Artifact.
Une fois vos modifications terminées, journalisez ou enregistrez le brouillon pour créer une nouvelle version d’artifact.
Au lieu de créer un artifact incrémentiel, vous pouvez créer un nouvel artifact de zéro. Cette approche exige toutefois que tous les fichiers de l’artifact soient disponibles sur votre disque local. Avec un artifact incrémentiel, vous pouvez ajouter, supprimer ou modifier des fichiers individuellement tout en réutilisant les fichiers inchangés de la version précédente de l’artifact.
Run unique
- Suivre comme entrée du run
- Récupérer directement
Utilisez
wandb.Run.use_artifact() lorsque le run actuel consomme l’artifact. W&B enregistre alors l’artifact comme entrée du run.- Récupérez la version de l’artifact avec
wandb.Run.use_artifact(). - Créez un brouillon avec
Artifact.new_draft(). - Ajoutez, supprimez ou modifiez des entrées dans le brouillon.
- Journalisez le brouillon avec
wandb.Run.log_artifact()pour créer une nouvelle version de l’artifact.
Runs distribués
UtilisezArtifact.upsert_artifact() et Artifact.finish_artifact() lorsque plusieurs runs ajoutent des fichiers à une même version d’artifact.
L’exemple suivant montre comment créer une nouvelle version d’artifact à partir de runs distribués, lorsque l’artifact sert d’entrée aux runs. La même approche s’applique lorsque l’artifact est récupéré directement avec l’API publique.