Nous vous recommandons de créer un artefact incrémentiel lorsque vous devez appliquer des modifications à un sous-ensemble de fichiers d’un artefact, en particulier si l’artefact d’origine est nettement plus volumineux.
Créer de nouvelles versions d’artefact à partir de zéro
Il existe deux façons de créer une nouvelle version d’artefact : à partir d’un run unique ou de runs distribués. Elles se définissent comme suit :- Run unique : un seul run fournit toutes les données d’une nouvelle version. C’est le cas le plus courant, et il convient le mieux 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 pour analyse.
- Runs distribués : un ensemble de runs fournit collectivement toutes les données d’une nouvelle version. Ce mode convient le mieux aux jobs distribués comportant plusieurs runs qui génèrent des données, souvent en parallèle. Par exemple : évaluer un modèle de manière distribuée et produire les prédictions.
v0 si vous transmettez à l’API wandb.Artifact un nom qui n’existe pas dans votre projet. W&B calcule une somme de contrôle du contenu lorsque vous journalisez de nouveau dans le même artefact. Si l’artefact a été modifié, W&B enregistre une nouvelle version v1.
W&B récupérera un artefact existant si vous transmettez à l’API wandb.Artifact un nom et un type d’artefact qui correspondent à un artefact existant dans votre projet. L’artefact récupéré aura une version supérieure à 1.

Run unique
Enregistrez une nouvelle version d’un artefact avec une seule exécution qui produit tous les fichiers de l’artefact. Ce cas se présente lorsqu’une seule exécution produit tous les fichiers de l’artefact. Selon votre cas d’usage, sélectionnez l’un des onglets ci-dessous pour créer une nouvelle version d’artefact :- Associer comme sortie d’exécution
- Enregistrer directement
Utilisez
wandb.Run.log_artifact() pour associer explicitement l’artefact à une exécution :- Créez une exécution avec
wandb.init(). - Créez un nouvel artefact ou récupérez-en un existant avec
wandb.Artifact. - Ajoutez des fichiers à l’artefact avec
wandb.Artifact.add_file(). - Enregistrez l’artefact dans l’exécution avec
wandb.Run.log_artifact().
Runs distribués
Autorisez une collection de runs à collaborer sur une version avant de la valider. Cela contraste avec le mode à run unique décrit ci-dessus, dans lequel un seul run fournit toutes les données d’une nouvelle version.- Chaque run de la collection doit connaître le même ID unique (appelé
distributed_id) afin de collaborer sur la même version. Par défaut, s’il est présent, W&B utilise legroupdu run, tel que défini parwandb.init(group=GROUP), commedistributed_id. - Un run final doit « valider » la version, ce qui verrouille définitivement son état.
- Utilisez
upsert_artifactpour ajouter du contenu à l’artefact collaboratif etfinish_artifactpour finaliser la validation.
upsert_artifact.
Run 1
Run 2
Run 3
Doit s’exécuter une fois que Run 1 et Run 2 sont terminés. Le Run qui appellewandb.Run.finish_artifact() peut inclure des fichiers dans l’artefact, mais ce n’est pas obligatoire.
Créer une nouvelle version d’artefact à partir d’une version existante
Créez une nouvelle version d’artefact en ajoutant, en modifiant ou en supprimant des fichiers d’une version d’artefact existante. W&B réindexe uniquement les fichiers qui ont changé. La version obtenue est appelée un artefact incrémentiel.
Artifact.add_file(), Artifact.add_dir() et Artifact.remove(). Pour obtenir la liste complète des méthodes, voir la documentation de référence de Artifact.
Une fois le brouillon modifié, consignez-le ou enregistrez-le pour créer une nouvelle version d’artefact.
Vous pouvez créer un nouvel artefact à partir de zéro au lieu de créer un artefact incrémentiel. Toutefois, cette approche exige que tous les fichiers de l’artefact soient disponibles sur votre disque local. Avec un artefact incrémentiel, vous pouvez ajouter, supprimer ou modifier des fichiers individuels tout en réutilisant les fichiers inchangés de la version précédente de l’artefact.
Run unique
- Suivre comme entrée du run
- Récupérer directement
Utilisez
wandb.Run.use_artifact() lorsque le run en cours consomme l’artefact. W&B enregistre l’artefact comme entrée du run.- Récupérez la version de l’artefact avec
wandb.Run.use_artifact(). - Créez un brouillon avec
Artifact.new_draft(). - Ajoutez, supprimez ou modifiez des entrées dans le brouillon.
- Consignez le brouillon avec
wandb.Run.log_artifact()pour créer une nouvelle version d’artefact.
Runs distribués
UtilisezArtifact.upsert_artifact() et Artifact.finish_artifact() lorsque plusieurs runs ajoutent des fichiers à une même version d’artefact.
L’exemple suivant montre comment créer une nouvelle version d’artefact à partir de runs distribués lorsque l’artefact est utilisé comme entrée pour les runs. La même approche s’applique lorsque l’artefact est récupéré directement avec l’API publique.