Aller au contenu
MLOps medium

Kubeflow : orchestrer des pipelines ML sur Kubernetes

6 min de lecture

Kubeflow est une plateforme open source qui orchestre le cycle de vie du machine learning sur Kubernetes : pipelines, entraînement distribué, tuning d'hyperparamètres et déploiement de modèles. Là où MLflow suit les expériences, Kubeflow industrialise les workflows à grande échelle.

Ce guide définit Kubeflow, présente ses composants, montre comment définir et compiler un pipeline avec le SDK kfp (code testé), et indique quand le choisir. Il s'inscrit dans une démarche MLOps. Public : avancé, à l'aise avec Kubernetes.

  • Définir Kubeflow et son rôle dans le MLOps.
  • Distinguer ses composants (Pipelines, Katib, KServe).
  • Définir et compiler un pipeline avec le SDK kfp.
  • Savoir quand préférer Kubeflow à un outil plus léger.

Kubeflow rend le machine learning natif à Kubernetes. Il s'appuie sur les primitives de Kubernetes (pods, jobs, namespaces) pour exécuter des workflows ML reproductibles et scalables, de l'expérimentation au déploiement. Développé à l'origine par Google et rattaché à la Cloud Native Computing Foundation, il cible les organisations qui ont déjà Kubernetes et veulent y industrialiser leur ML.

Sa contrepartie : c'est une plateforme lourde à installer et à opérer. Pour un usage individuel ou une petite équipe, un outil comme MLflow suffit souvent.

Kubeflow est modulaire : on installe seulement ce dont on a besoin.

ComposantRôle
Central DashboardInterface web unifiée pour tous les services
Kubeflow PipelinesOrchestrer les workflows ML (le coeur de Kubeflow)
KatibOptimisation d'hyperparamètres distribuée
NotebooksEnvironnements Jupyter intégrés au cluster
Training OperatorsEntraînement distribué (TensorFlow, PyTorch, XGBoost)
KServeServing de modèles avec scaling et versioning

Le coeur de Kubeflow, ce sont les pipelines : des enchaînements d'étapes (composants) exécutés sur le cluster. On les décrit en Python avec le SDK kfp, puis on les compile en un fichier de déploiement. Installez le SDK dans un environnement isolé :

Fenêtre de terminal
pip install kfp==2.16.1

Un pipeline se compose de composants (@dsl.component) reliés dans une fonction de pipeline (@dsl.pipeline) :

from kfp import dsl, compiler
@dsl.component
def prepare(n: int) -> int:
return n * 2
@dsl.component
def train(size: int) -> str:
return f"modele entraine sur {size} echantillons"
@dsl.pipeline(name="demo-ml-pipeline", description="Pipeline ML minimal")
def ml_pipeline(samples: int = 100):
p = prepare(n=samples)
train(size=p.output)
compiler.Compiler().compile(ml_pipeline, "pipeline.yaml")

La compilation produit un fichier pipeline.yaml décrivant le workflow :

pipelineInfo:
description: Pipeline ML minimal
name: demo-ml-pipeline

Ce fichier s'importe ensuite dans l'interface Kubeflow Pipelines pour être exécuté sur le cluster, avec suivi des runs et des artefacts. La sortie d'un composant (p.output) devient l'entrée du suivant : Kubeflow gère l'ordre d'exécution et le passage des données.

Deux composants complètent les pipelines. Katib automatise la recherche d'hyperparamètres : il lance de nombreux entraînements en parallèle sur le cluster et retient la meilleure combinaison selon une métrique. KServe standardise le serving : il expose un modèle en API, avec mise à l'échelle automatique, versioning et déploiements progressifs (canary).

Les deux servent le MLOps à des échelles différentes. MLflow se concentre sur le suivi des expériences et la gestion des modèles ; il s'installe en une commande. Kubeflow orchestre des pipelines complets sur Kubernetes : bien plus puissant, mais lourd à opérer. On les combine souvent, MLflow pour le tracking à l'intérieur de pipelines Kubeflow.

Kubeflow est une plateforme MLOps open source pour Kubernetes : elle orchestre pipelines, entraînement distribué, tuning et déploiement de modèles à l'échelle du cluster.

Le composant qui orchestre les workflows ML : on décrit les étapes en Python avec le SDK kfp, on compile un fichier de déploiement, puis on l'exécute sur le cluster avec suivi des runs.

MLflow est léger, centré sur le suivi des expériences ; Kubeflow est une plateforme complète sur Kubernetes, adaptée aux gros besoins d'orchestration. On les utilise souvent ensemble.

  1. Kubeflow rend le ML natif à Kubernetes : pipelines, entraînement, tuning, serving.
  2. Les pipelines sont son coeur : décrits en Python avec kfp, compilés puis exécutés sur le cluster.
  3. La compilation se fait en local ; seule l'exécution requiert un cluster.
  4. Katib tune les hyperparamètres, KServe sert les modèles.
  5. C'est une plateforme lourde : MLflow suffit pour un usage plus modeste.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn