Construire un artifact
Construisez un W&B Artifact en trois étapes :- Créer un objet Python d’artifact avec
wandb.Artifact() - Ajouter un ou plusieurs fichiers à l’artifact
- Enregistrer votre artifact sur le serveur W&B
Créez un objet artifact Python 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 mémorable.
- Type : le type de l’artifact. Il doit être simple, descriptif et correspondre à une seule étape de votre pipeline de machine learning. Parmi les types d’artifact courants, on trouve
'dataset'ou'model'.
W&B utilise le “nom” et le “type” que vous fournissez pour créer un graphe orienté acyclique dans l’application W&B. Voir Explore and traverse artifact graphs pour plus d’informations.
"artifact-name" et "artifact-type" par vos propres valeurs :
Les Artifacts ne peuvent pas porter le même nom, même s’ils ont des 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. Avec le SDK Python W&B 0.29.0 ou une version ultérieure, définissez
digest_algorithm="XXH128" pour activer un hachage plus rapide pour les nouveaux artifacts. Les artifact collections existantes qui utilisent MD5 continuent d’utiliser MD5. Les versions du SDK antérieures à 0.29.0 ne peuvent pas vérifier les artifacts contenant des entrées XXH128 avec Artifact.verify().wandb.Artifact dans le guide de Référence du SDK Python.
Ajoutez 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() :
Enregistrez votre artifact sur le serveur W&B
Enregistrez votre artifact sur le serveur W&B. Utilisez la méthodewandb.Run.log_artifact() de l’objet run pour enregistrer l’artifact.
Ajouter des fichiers à un artifact
Les sections suivantes montrent comment ajouter différents types d’objets à un artifact. Supposons que vous disposiez d’un répertoire présentant la structure suivante à mesure que vous parcourez les exemples :Ajouter un seul fichier
Utilisezwandb.Artifact.add_file() pour ajouter un 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 au sein de l’objet artifact lui-même. En reprenant l’exemple précédent :
Ajouter plusieurs fichiers
Utilisez la méthodewandb.Artifact.add_dir() pour ajouter plusieurs fichiers d’un répertoire local à un artifact. Spécifiez le chemin local du répertoire à l’aide du paramètre local_path.
Ajouter une référence URI
Artifacts suivent les sommes de contrôle et d’autres informations pour assurer la 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, pour le paramètre nom, le chemin souhaité dans l’artifact.
http(s)://: chemin d’accès vers un fichier accessible via HTTP. L’artifact suit les sommes de contrôle sous forme d’ETags et les métadonnées de taille si le serveur HTTP prend en charge les en-têtes de réponseETagetContent-Length.s3://: chemin d’accès 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 pour le bucket) des objets référencés. Les préfixes d’objet sont étendus pour inclure les objets qu’ils contiennent, dans la limite de 10 000 objets.gs://: chemin d’accès 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 pour le bucket) des objets référencés. Les préfixes d’objet sont étendus pour inclure les objets qu’ils contiennent, dans la limite de 10 000 objets.
Ajouter des fichiers à des artefacts depuis des exécutions parallèles
Pour les jeux de données volumineux ou l’entraînement distribué, plusieurs exécutions parallèles peuvent devoir alimenter un même artefact.Trouver le chemin d’accès des Artifacts enregistré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, y compris leur nom et leur URL. Remplacez l’espace réservé<entity/project/run-id> par vos propres valeurs :