Passer au contenu principal
L’API publique W&B offre un accès programmatique permettant d’effectuer des requêtes, d’exporter et de mettre à jour les données stockées dans W&B. Utilisez cette API pour l’analyse a posteriori, l’exportation de données et la gestion programmatique des runs, des artifacts et des sweeps. Alors que le SDK principal gère le logging en temps réel pendant l’entraînement, l’API publique vous permet de récupérer des données historiques, de mettre à jour des métadonnées, de gérer des artifacts et d’effectuer des analyses sur des expériences terminées. La classe principale Api constitue le point d’entrée de la plupart des fonctionnalités.
L’entraînement et le Fine-tuning des modèles s’effectuent dans W&B Python SDK. Utilisez l’API publique pour interroger et gérer les données une fois qu’elles ont été consignées dans W&B.

Composants disponibles

ComposantDescription
ApiPoint d’entrée principal de l’API publique. Effectuez des requêtes sur les runs, les projets et les Artifacts à l’échelle de votre organisation.
RunsAccédez aux runs d’entraînement individuels et gérez-les, y compris leur historique, leurs journaux et leurs métriques.
ArtifactsEffectuez des requêtes sur et téléchargez des artifacts de modèle, des Datasets et d’autres fichiers versionnés.
SweepsAccédez aux données de balayage d’hyperparamètres et analysez les résultats d’optimisation.
ProjectsGérez les projets et accédez aux métadonnées et aux paramètres au niveau du projet.
ReportsAccédez aux Reports W&B et gérez-les par programmation.
TeamEffectuez des requêtes sur les informations de l’équipe et gérez les ressources au niveau de l’équipe.
UserAccédez aux profils des utilisateurs et aux données propres à chaque utilisateur.
FilesTéléchargez et gérez les fichiers associés aux runs.
HistoryAccédez aux métriques détaillées de séries temporelles enregistrées pendant l’entraînement (voir Run.history).
AutomationsGérez les flux de travail et les actions automatisés.
IntegrationsConfigurez et gérez les intégrations tierces.

Cas d’usage courants

Export et analyse des données

  • Exportez l’historique des runs sous forme de DataFrames pour les analyser dans des notebooks Jupyter
  • Téléchargez des métriques pour une visualisation ou la création de rapports personnalisés
  • Agrégez les résultats de plusieurs expériences

Mises à jour a posteriori

  • Mettez à jour les métadonnées du run une fois terminé
  • Ajoutez des tags ou des notes aux expériences terminées
  • Modifiez la configuration ou le résumé du run

Gestion des Artifacts

  • Effectuer une requête sur des Artifacts par version ou alias
  • Télécharger des points de contrôle du modèle par programmation
  • Suivre la traçabilité et les dépendances des Artifacts

Analyse du balayage

  • Accédez aux résultats du balayage et aux meilleurs runs
  • Exportez les résultats de la recherche d’hyperparamètres
  • Analysez l’importance des paramètres

Authentification

L’API publique utilise le même mécanisme d’authentification que le SDK Python. Vous pouvez vous authentifier de plusieurs manières : Utilisez la variable d’environnement WANDB_API_KEY pour définir votre clé API :
export WANDB_API_KEY=your_api_key
Passez la clé API directement lors de l’initialisation de la classe Api :
api = Api(api_key="your_api_key")
Ou utilisez wandb.login() pour authentifier la session actuelle :
import wandb

wandb.login()
api = Api()

Exemple d’utilisation

Télécharger un Artifact par son nom et son alias

L’exemple suivant montre comment récupérer un Artifact enregistré dans W&B à partir de son nom et de son alias, puis en télécharger le contenu.
import wandb

api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
artifact.download()

Télécharger un Artifact à partir d’un registre

L’exemple suivant montre comment récupérer un artifact lié à partir d’un registre W&B
import wandb

REGISTRY = "<registry_name>"
COLLECTION = "<collection_name>"
VERSION = "<version>"

api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"

# Récupérer l'artifact
fetched_artifact = api.artifact(name = artifact_name)

# Télécharger l'artifact. Renvoie le chemin vers le contenu téléchargé
downloaded_path = fetched_artifact.download()

requête le registre W&B

Utilisez des filtres de type Mongo pour interroger les registres, les collections et les Artifacts W&B. L’exemple suivant montre comment filtrer les collections par nom à l’aide d’une expression régulière.
import wandb

# Initialiser l'API wandb
api = wandb.Api()

# Filtrer toutes les collections, indépendamment du registre, qui
# contiennent la chaîne `yolo` dans le nom de la collection
collection_filters = {
    "name": {"$regex": "yolo"}
}

# Renvoie un itérable de toutes les collections correspondant aux filtres
collections = api.registries().collections(filter=collection_filters)
Pour plus d’informations sur la requête d’un registre, d’une collection ou d’un artifact, voir Rechercher des éléments du registre.