Construire un artifact
Construisez un artifact W&B en trois étapes :- Créer un objet Python artifact avec
wandb.Artifact() - Ajouter un ou plusieurs fichiers à l’artifact
- 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.
"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.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.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éthodeArtifact.add_file() de l’objet artifact :
Artifact.add_dir() :
Enregistrer votre artifact sur le serveur W&B
Enregistrez votre artifact sur le serveur W&B. Pour ce faire, utilisez la méthodewandb.Run.log_artifact() de l’objet run.
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
Utilisezwandb.Artifact.add_file() pour ajouter un seul fichier local à un artifact. Indiquez le chemin local du fichier dans le paramètre local_path :
'hello.txt' dans votre répertoire de travail local.
name pour renommer le fichier dans l’objet artifact lui-même. Pour reprendre l’exemple précédent :
Ajouter plusieurs fichiers
Utilisez la méthodewandb.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.
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éthodewandb.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.
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éponseETagetContent-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.
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 :