Passer au contenu principal
Pour rendre une version d’artifact accessible à votre organisation, liez-la à une collection dans W&B Registry. La liaison fait passer la version d’une portée privée au niveau du projet à une portée partagée au niveau de l’organisation. Vous pouvez lier une version d’artifact par programmation à l’aide du W&B Python SDK ou de manière interactive dans la W&B App. Lorsque vous liez un artifact, W&B crée une référence entre l’artifact source et l’entrée de collection. La version liée pointe vers la version de l’artifact source qui a été enregistrée dans un run d’un projet. Vous pouvez consulter à la fois la version liée dans la collection et la version source dans le projet où elle a été enregistrée. Selon votre cas d’usage, suivez les instructions figurant dans les onglets ci-dessous pour lier une version d’artifact.
Avant de commencer, vérifiez les points suivants :
  • Les types d’artifacts autorisés par la collection. Pour plus d’informations sur les types de collection, voir “Types de collection” dans Créer une collection.
  • Le registre auquel appartient la collection existe déjà. Pour vérifier que le registre existe, accédez à Registry App et recherchez le nom du registre.
Pour lier par programmation une version d’artifact à une collection, utilisez wandb.Run.link_artifact() ou wandb.Artifact.link().
Utilisez wandb.Run.link_artifact() pour lier une version d’artifact dans le cadre d’un run. Utilisez wandb.Artifact.link() pour lier une version d’artifact existante hors du contexte d’un run.
Pour les deux approches, spécifiez le nom de l’artifact (wandb.Artifact(name="<name>"), le type de l’artifact (wandb.Artifact(type="<type>"), ainsi que le target_path (wandb.Artifact(target_path="<target_path>")) de la collection et du registre auxquels vous souhaitez lier la version de l’artifact.Le chemin cible est composé du préfixe "wandb-registry", du nom du registre et du nom de la collection, séparés par des barres obliques :
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}

Lier une version d’artifact dans le contexte d’un run

Utilisez wandb.Run.link_artifact() pour lier une version d’artifact dans le contexte d’un run. Pour ce faire, initialisez d’abord un run avec wandb.init(). Ensuite, créez un objet artifact et ajoutez-y des fichiers. Enfin, utilisez la méthode wandb.Run.link_artifact() pour lier la version d’artifact à la collection.Lorsque vous utilisez cette approche, un run est créé dans votre projet W&B. La version de l’artifact est liée à la collection et associée à ce run.Copiez-collez l’extrait de code ci-dessous. Remplacez les valeurs entre <> par les vôtres :
import wandb

entity = "<team_entity>"          # Votre entité d'équipe
project = "<project_name>"        # Le nom du projet contenant votre artifact

# Initialiser un run
with wandb.init(entity = entity, project = project) as run:

  # Créer un objet artifact
  # Le paramètre type spécifie à la fois le type de
  # l'objet artifact et le type de la collection
  artifact = wandb.Artifact(name = "<name>", type = "<type>")

  # Ajouter le fichier à l'objet artifact.
  # Indiquez le chemin vers le fichier sur votre machine locale.
  artifact.add_file(local_path = "<local_path_to_artifact>")

  # Spécifier la collection et le registre auxquels lier l'artifact
  REGISTRY_NAME = "<registry_name>"  
  COLLECTION_NAME = "<collection_name>"
  target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"

  # Lier l'artifact à la collection
  run.link_artifact(artifact = artifact, target_path = target_path)

Lier une version d’artifact en dehors du contexte d’un run

Utilisez wandb.Artifact.link() pour lier une version d’artifact existante en dehors du contexte d’un run. Avec cette approche, vous n’avez pas besoin d’initialiser un run avec wandb.init(). Aucun run n’est donc créé dans votre projet W&B. En d’autres termes, la version d’artifact est liée à la collection sans être associée à un run.Commencez par créer un objet artifact et ajoutez-y des fichiers. Utilisez ensuite la méthode wandb.Artifact.link() pour lier la version de l’artifact à la collection.Copiez-collez l’extrait de code ci-dessous. Remplacez les valeurs entre <> par les vôtres :
import wandb

# Créer un objet artifact
# Le paramètre type spécifie à la fois le type de
# l'objet artifact et le type de la collection
artifact = wandb.Artifact(name = "<name>", type = "<type>")

# Ajouter le fichier à l'objet artifact. 
# Indiquez le chemin vers le fichier sur votre machine locale.
artifact.add_file(local_path = "<local_path_to_artifact>")

# Spécifier la collection et le registre auxquels lier l'artifact
REGISTRY_NAME = "<registry_name>"  
COLLECTION_NAME = "<collection_name>"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"

# Lier l'artifact à la collection
artifact.link(target_path = target_path)
Vous pouvez consulter les métadonnées, les informations de version, l’utilisation et les informations de traçabilité d’un artifact lié ainsi que d’autres éléments dans la Registry App.

Afficher les artifacts liés dans un registre

Affichez des informations sur les artifacts liés, comme les métadonnées, la traçabilité et les informations d’utilisation, dans le W&B Registry.
  1. Accédez au W&B Registry.
  2. Sélectionnez le nom du registre auquel vous avez lié l’artifact.
  3. Sélectionnez le nom de la collection.
  4. Si les artifacts de la collection consignent des métriques, comparez les métriques entre les versions en cliquant sur Afficher les métriques.
  5. Dans la liste des versions d’artifact, sélectionnez la version à laquelle vous souhaitez accéder. Les numéros de version sont attribués de façon incrémentielle à chaque version d’artifact liée, à partir de v0.
  6. Pour afficher les détails d’une version d’artifact, cliquez sur la version. Dans les onglets de cette page, vous pouvez consulter les métadonnées de cette version (y compris les métriques enregistrées), sa traçabilité et ses informations d’utilisation.
Notez le champ Nom complet dans l’onglet Version. Le nom complet d’un artifact lié se compose du registre, du nom de la collection, ainsi que de l’alias ou de l’index de la version d’artifact.
Full name of a linked artifact
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{INTEGER}
Vous avez besoin du nom complet d’un artifact lié pour accéder à la version de l’artifact par programmation.

Dépannage

Voici quelques points courants à vérifier si vous ne parvenez pas à lier un artifact.

Enregistrer des Artifacts depuis un compte personnel

Les Artifacts enregistrés dans W&B avec une entité personnelle ne peuvent pas être liés au registre. Veillez à enregistrer les Artifacts à l’aide d’une entité d’équipe au sein de votre organisation. Seuls les Artifacts enregistrés au sein de l’équipe d’une organisation peuvent être liés au registre de l’organisation.
Veillez à enregistrer un artifact avec une entité d’équipe si vous souhaitez le lier à un registre.

Trouvez votre entité d’équipe

W&B utilise le nom de votre équipe comme entité d’équipe. Par exemple, si votre équipe s’appelle team-awesome, votre entité d’équipe est team-awesome. Vous pouvez confirmer le nom de votre équipe en :
  1. Accédez à la page de profil W&B de votre équipe.
  2. Copiez l’URL du site. Elle se présente sous la forme https://wandb.ai/<team>, où <team> correspond à la fois au nom de votre équipe et à son entité.

Journalisation depuis une entité d’équipe

  1. Spécifiez l’équipe comme entité lorsque vous initialisez un run avec wandb.init(). Si vous ne spécifiez pas entity lors de l’initialisation d’un run, le run utilise votre entité par défaut, qui peut être ou non votre entité d’équipe.
    import wandb   
    
    with wandb.init(entity='<team_entity>', project='<project_name>') as run:
        # Journalisez votre artifact ici
    
  2. Journalisez l’artifact dans le run soit avec wandb.Run.log_artifact(), soit en créant un objet Artifact puis en y ajoutant des fichiers avec :
    artifact = wandb.Artifact(name="<artifact_name>", type="<type>")
    
    Pour journaliser des Artifacts, voir Créer des Artifacts.
  3. Si un artifact est enregistré dans votre entité personnelle, vous devrez le journaliser à nouveau dans une entité de votre organisation.

Confirmer le chemin d’un registre dans la W&B App UI

Il existe deux façons de confirmer le chemin d’un registre dans la W&B App UI : créer une collection vide et consulter les détails de la collection, ou copier-coller le code généré automatiquement depuis la page d’accueil de la collection.

Copier-coller le code généré automatiquement

  1. Accédez au W&B Registry à l’adresse https://wandb.ai/registry/.
  2. Cliquez sur le registre auquel vous souhaitez lier un artifact.
  3. En haut de la page, vous verrez un bloc de code généré automatiquement.
  4. Copiez-collez ce code dans le vôtre, en veillant à remplacer la dernière partie du chemin par le nom de votre collection.
Extrait de code généré automatiquement

Créer une collection vide

  1. Accédez au W&B Registry à l’adresse https://wandb.ai/registry/.
  2. Cliquez sur le registre auquel vous souhaitez lier un artifact.
  3. Cliquez sur la collection vide. Si aucune collection vide n’existe, créez-en une.
  4. Dans l’extrait de code qui s’affiche, identifiez le champ target_path dans .link_artifact().
  5. (Facultatif) Supprimez la collection.
Créer une collection vide
Par exemple, une fois ces étapes terminées, vous trouverez le bloc de code contenant le paramètre target_path :
target_path = 
      "smle-registries-bug-bash/wandb-registry-Golden Datasets/raw_images"
En le décomposant en composants, vous pouvez voir ce que vous devrez utiliser pour créer par programmation le chemin permettant de lier votre artifact :
ORG_ENTITY_NAME = "smle-registries-bug-bash"
REGISTRY_NAME = "Golden Datasets"
COLLECTION_NAME = "raw_images"
Assurez-vous de remplacer le nom de la collection temporaire par celui de la collection à laquelle vous souhaitez lier votre artifact.