Définissez les valeurs souhaitées pour mettre à jour la description, les metadata et l’alias d’un artifact. Mettez à jour un run précédemment consigné dans W&B avec l’API publique W&B (wandb.Api). Utilisez wandb.Run.save() pour mettre à jour un artifact lorsqu’il est initialisé pour la première fois et qu’il est toujours actif.
Quand utiliser wandb.Artifact.save() ou wandb.Run.log_artifact()
- Utilisez
Artifact.save() pour mettre à jour un artifact existant sans démarrer un nouveau run.
- Utilisez
wandb.Run.log_artifact() pour créer un nouvel artifact et l’associer à un run spécifique.
Utilisez l’API publique W&B (wandb.Api) pour mettre à jour un artifact. Utilisez la classe wandb.Artifact (wandb.Artifact) pendant qu’un run est actif.
Vous ne pouvez pas mettre à jour l’alias d’un artifact lié à un modèle dans le Model Registry.
Pendant un run
API publique W&B
Avec des collections
L’exemple de code suivant montre comment mettre à jour la description d’un artifact à l’aide de l’API wandb.Artifact :import wandb
with wandb.init(project="<example>") as run:
artifact = run.use_artifact("<artifact-name>:<alias>")
artifact.description = "<description>"
artifact.save()
L’exemple suivant met à jour un artifact avec wandb.Api :import wandb
api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
# Mettre à jour la description
artifact.description = "My new description"
# Mettre à jour sélectivement des clés de métadonnées
artifact.metadata["oldKey"] = "new value"
# Remplacer entièrement les métadonnées
artifact.metadata = {"newKey": "new value"}
# Ajouter un alias
artifact.aliases.append("best")
# Supprimer un alias
artifact.aliases.remove("latest")
# Remplacer complètement les alias
artifact.aliases = ["replaced"]
# Enregistrer toutes les modifications de l'artifact
artifact.save()
Pour plus d’informations, voir l’API Artifact de Weights and Biases. Vous pouvez également mettre à jour une collection d’Artifacts de la même manière qu’un artifact individuel :import wandb
with wandb.init(project="<example>") as run:
api = wandb.Api()
artifact = api.artifact_collection(type="<type-name>", collection="<collection-name>")
artifact.name = "<new-collection-name>"
artifact.description = "<This is where you'd describe the purpose of your collection.>"
artifact.save()
Pour plus d’informations, voir la référence Artifacts Collection.