Skip to main content
Kubeflow Pipelines (kfp) est une plateforme permettant de créer et de déployer des flux de travail de machine learning (ML) portables et évolutifs basés sur des conteneurs Docker. Ce guide vous montre comment intégrer W&B à Kubeflow Pipelines afin que les paramètres et les Artifacts de vos composants de pipeline soient automatiquement suivis dans W&B. À la fin, vous pourrez appliquer un décorateur aux composants fonctionnels Python de kfp pour journaliser les entrées, les sorties et les Artifacts dans W&B sans modifier le corps de chaque composant. Cette fonctionnalité est disponible à partir de wandb==0.12.11 et nécessite kfp<2.0.0.

Inscrivez-vous et créez une clé API

Une clé API permet d’authentifier votre machine auprès de W&B. Vous pouvez générer une clé API à partir de votre profil utilisateur.
Pour une méthode plus directe, accédez aux Paramètres utilisateur et créez une clé API. Copiez immédiatement la clé API et conservez-la dans un endroit sûr, par exemple dans un gestionnaire de mots de passe.
  1. Cliquez sur l’icône de votre profil utilisateur dans l’angle supérieur droit.
  2. Sélectionnez Paramètres utilisateur, puis faites défiler jusqu’à la section Clés API.

Installez la bibliothèque wandb et connectez-vous

Pour installer la bibliothèque wandb localement et vous connecter :
  1. Définissez la variable d’environnement WANDB_API_KEY avec votre clé API. Remplacez les valeurs entre <> par les vôtres :
  2. Installez la bibliothèque wandb et connectez-vous.

Décorez vos composants

Avec la bibliothèque wandb installée, vous pouvez désormais activer le suivi W&B sur des composants de pipeline individuels. Ajoutez le décorateur @wandb_log et créez vos composants comme d’habitude. Cela journalise automatiquement dans W&B les paramètres d’entrée et de sortie ainsi que les artifacts chaque fois que vous exécutez votre pipeline.

Transmettre des variables d’environnement aux conteneurs

Chaque composant du pipeline s’exécute dans son propre conteneur. Les identifiants d’authentification W&B disponibles sur votre machine locale ne sont donc pas automatiquement transmis au composant. Vous devrez peut-être transmettre explicitement des variables d’environnement à vos conteneurs afin que chaque composant puisse s’authentifier auprès de W&B. Pour une liaison bidirectionnelle, vous devez également définir la variable d’environnement WANDB_KUBEFLOW_URL avec l’URL de base de votre instance Kubeflow Pipelines. Par exemple, https://kubeflow.mysite.com.

Accédez à vos données de façon programmatique

Une fois que les exécutions de votre pipeline effectuent la journalisation vers W&B, vous pouvez consulter et récupérer les données suivies de plusieurs façons. Les sections suivantes expliquent comment accéder à vos runs depuis l’interface utilisateur de Kubeflow Pipelines, l’application web W&B et l’API publique de W&B.

interface utilisateur de Kubeflow Pipelines

Cliquez sur n’importe quel run dans l’interface utilisateur de Kubeflow Pipelines qui a été enregistré avec W&B, puis :
  • Consultez les détails des entrées et des sorties dans les onglets Input/Output et ML Metadata.
  • Consultez l’application web W&B depuis l’onglet Visualizations.
W&B dans l’interface utilisateur de Kubeflow

Interface utilisateur de l’application web W&B

L’interface utilisateur de l’application web affiche le même contenu que l’onglet Visualizations dans Kubeflow Pipelines, mais avec davantage d’espace. Pour plus de détails, voir la documentation de l’application web W&B.
Détails du run
DAG du pipeline

API publique

Pour un accès programmatique, voir l’API publique.

Correspondance des concepts entre Kubeflow Pipelines et W&B

Le tableau suivant présente la correspondance entre les concepts de Kubeflow Pipelines et W&B.

Journalisation granulaire

Le décorateur @wandb_log gère automatiquement les entrées et les sorties, mais il ne capture pas les valeurs intermédiaires, comme les métriques d’entraînement au fil des époques. Si vous voulez un contrôle plus fin de la journalisation, vous pouvez ajouter des appels à wandb.log() et wandb.log_artifact() dans le composant.

Avec des appels explicites à wandb.log_artifact()

Dans l’exemple suivant, vous entraînez un modèle. Le décorateur @wandb_log suit automatiquement les entrées et sorties pertinentes. Si vous souhaitez journaliser le processus d’entraînement, vous pouvez l’ajouter explicitement comme suit :

Avec les intégrations implicites de wandb

Si vous utilisez une intégration de framework prise en charge, vous pouvez également transmettre directement le callback :