Skip to main content
Utilisez le SDK Python W&B pour créer des artifacts à partir de runs W&B. Vous pouvez ajouter aux artifacts des fichiers, des répertoires, des URI et des fichiers issus de runs parallèles. Une fois un fichier ajouté à un artifact, enregistrez l’artifact sur le serveur W&B ou sur votre propre serveur privé. Chaque artifact est associé à un run. Pour savoir comment suivre des fichiers externes, comme des fichiers stockés dans Amazon S3, consultez la page Suivre des fichiers externes.

Construire un artifact

Construisez un artifact W&B en trois étapes :
  1. Créer un objet Python artifact avec wandb.Artifact()
  2. Ajouter un ou plusieurs fichiers à l’artifact
  3. Enregistrer votre artifact sur le serveur W&B

Créer un objet Python artifact avec wandb.Artifact()

Initialisez la classe wandb.Artifact() pour créer un objet artifact. Spécifiez les paramètres suivants :
  • Nom : le nom de votre artifact. Il doit être unique, descriptif et facile à retenir.
  • Type : le type d’artifact. Il doit être simple, descriptif et correspondre à une seule étape de votre pipeline de machine learning. Parmi les types d’artifacts courants figurent 'dataset' et 'model'.
W&B utilise le « nom » et le « type » que vous fournissez pour créer un graphe orienté acyclique dans la W&B App. Pour plus d’informations, consultez Explorer et parcourir les graphes d’artifacts.
Copiez-collez l’extrait de code suivant pour créer un objet artifact. Remplacez les espaces réservés "artifact-name" et "artifact-type" par vos propres valeurs :
Deux artifacts ne peuvent pas porter le même nom, même s’ils sont de types différents. Par exemple, vous ne pouvez pas créer un artifact nommé cats de type dataset et un autre artifact nommé cats de type model.
Lorsque vous initialisez un objet artifact, vous pouvez également fournir une description, des métadonnées, un algorithme de digest et d’autres paramètres facultatifs. Par exemple, l’extrait de code suivant crée un objet artifact avec un nom, un type, une description, des métadonnées et un algorithme de digest :
MD5 reste l’algorithme de digest par défaut. À partir du SDK Python W&B 0.29.0, définissez digest_algorithm="XXH128" pour bénéficier d’un hachage plus rapide sur les nouveaux artifacts. Les collections d’artifacts existantes qui utilisent MD5 continuent d’utiliser MD5. Les versions du SDK antérieures à 0.29.0 ne peuvent pas vérifier avec Artifact.verify() les artifacts contenant des entrées XXH128.
Pour plus d’informations sur les attributs et paramètres disponibles, consultez la définition de la classe wandb.Artifact dans le guide de référence du SDK Python.

Ajouter un ou plusieurs fichiers à l’artifact

Ajoutez des fichiers, des répertoires, des références URI externes (comme Amazon S3), etc. à votre objet artifact. Pour ajouter un seul fichier, utilisez la méthode Artifact.add_file() de l’objet artifact :
Pour ajouter un répertoire, utilisez la méthode Artifact.add_dir() :
Pour plus d’informations sur l’ajout de différents types de fichiers à un artifact, consultez la section suivante, Ajouter des fichiers à un artifact.

Enregistrer votre artifact sur le serveur W&B

Enregistrez votre artifact sur le serveur W&B. Pour ce faire, utilisez la méthode wandb.Run.log_artifact() de l’objet run.
Quand utiliser wandb.Run.log_artifact() ou Artifact.save()
  • Utilisez wandb.Run.log_artifact() pour créer un nouvel artifact et l’associer à un run spécifique.
  • Utilisez Artifact.save() pour mettre à jour un artifact existant sans créer de nouveau run.
Pour résumer, l’extrait de code suivant montre comment créer un artifact de jeu de données, y ajouter un fichier et l’enregistrer dans W&B :
Chaque fois que vous journalisez un artifact avec le même nom et le même type, W&B crée une nouvelle version de cet artifact. Pour plus d’informations, voir Créer une nouvelle version d’artifact.
W&B exécute les appels à wandb.Run.log_artifact() de manière asynchrone afin d’optimiser les téléversements. Cela peut entraîner un comportement inattendu lorsque vous journalisez des artifacts dans une boucle. Par exemple :
La version d’artifact v0 n’aura pas forcément l’index 0 dans ses métadonnées, car les artifacts peuvent être journalisés dans un ordre arbitraire.

Ajouter des fichiers à un artifact

Les sections suivantes montrent comment ajouter différents types d’objets à un artifact. Pour suivre les exemples, partez du principe que vous disposez d’un répertoire présentant la structure suivante :

Ajouter un seul fichier

Utilisez wandb.Artifact.add_file() pour ajouter un seul fichier local à un artifact. Indiquez le chemin local du fichier dans le paramètre local_path :
Par exemple, supposons que vous ayez un fichier nommé 'hello.txt' dans votre répertoire de travail local.
L’artifact contient désormais les éléments suivants :
Vous pouvez également transmettre un autre nom au paramètre name pour renommer le fichier dans l’objet artifact lui-même. Pour reprendre l’exemple précédent :
L’artifact est stocké comme suit :
Le tableau suivant montre le contenu de l’artifact obtenu selon l’appel d’API utilisé :

Ajouter plusieurs fichiers

Utilisez la méthode wandb.Artifact.add_dir() pour ajouter à un artifact plusieurs fichiers d’un répertoire local. Indiquez le chemin local du répertoire dans le paramètre local_path.
Le tableau suivant montre comment le contenu de l’artifact varie selon l’appel d’API utilisé :

Ajouter une référence URI

Les artifacts enregistrent les sommes de contrôle et d’autres informations à des fins de reproductibilité si l’URI utilise un schéma pris en charge par la bibliothèque W&B. Ajoutez une référence URI externe à un artifact avec la méthode wandb.Artifact.add_reference(). Remplacez la chaîne 'uri' par votre propre URI. Vous pouvez également indiquer, dans le paramètre name, le chemin souhaité au sein de l’artifact.
Les artifacts prennent en charge les schémas d’URI suivants :
  • http(s):// : chemin vers un fichier accessible via HTTP. L’artifact suit les sommes de contrôle sous forme d’ETags ainsi que les métadonnées de taille si le serveur HTTP prend en charge les en-têtes de réponse ETag et Content-Length.
  • s3:// : chemin vers un objet ou un préfixe d’objet dans S3. L’artifact suit les sommes de contrôle et les informations de gestion des versions (si la gestion des versions des objets est activée sur le bucket) des objets référencés. Les préfixes d’objet sont développés de façon à inclure les objets situés sous le préfixe, dans la limite de 10 000 objets.
  • gs:// : chemin vers un objet ou un préfixe d’objet dans GCS. L’artifact suit les sommes de contrôle et les informations de gestion des versions (si la gestion des versions des objets est activée sur le bucket) des objets référencés. Les préfixes d’objet sont développés de façon à inclure les objets situés sous le préfixe, dans la limite de 10 000 objets.
Le tableau suivant montre le contenu de l’artifact obtenu selon l’appel d’API utilisé :

Ajouter des fichiers aux artifacts depuis des runs parallèles

Dans le cas de jeux de données volumineux ou d’un entraînement distribué, plusieurs runs parallèles peuvent devoir contribuer à un même artifact.

Trouver le chemin des artifacts journalisés et d’autres métadonnées

L’extrait de code suivant montre comment utiliser l’API publique W&B pour lister les fichiers d’un run, avec leurs noms et leurs URL. Remplacez l’espace réservé <entity/project/run-id> par vos propres valeurs :
Consultez la classe File pour plus d’informations sur les attributs et les méthodes disponibles.
Dernière modification le 30 septembre 2026