Kubeflow, qu'est-ce que c'est ?

Copier l'URL

Kubeflow est un framework Open Source natif pour Kubernetes destiné au développement, à la gestion et à l'exécution des charges de travail d'apprentissage automatique (AA). Il rassemble sur une plateforme plusieurs outils pour les principaux cas d'utilisation de l'intelligence artificielle (IA) et de l'AA, à savoir l'exploration de données, les pipelines de données, ainsi que l'entraînement et le déploiement des modèles.

Parce que les data scientists accèdent à ces fonctions via un portail qui offre un haut niveau d'abstraction, ils n'ont pas besoin de savoir précisément comment Kubernetes s'intègre à chaque outil. Spécialement conçu pour s'exécuter sur Kubernetes, Kubeflow permet de mettre en œuvre la plupart des concepts clés de ce système d'orchestration, notamment le modèle d'opérateur. 

Kubeflow permet de surmonter de nombreuses difficultés liées à l'orchestration des pipelines d'apprentissage automatique grâce à un ensemble d'outils et d'API qui simplifient le processus d'entraînement des modèles d'AA ainsi que leur déploiement à grande échelle. Un « pipeline » renvoie à un workflow d'AA, y compris à ses composants et leurs interactions. Kubeflow est capable de répondre aux besoins de plusieurs équipes dans un même projet, quelle que soit leur infrastructure de travail. Les data scientists peuvent ainsi entraîner et distribuer des modèles d'AA depuis le cloud de leur choix, notamment IBM Cloud, Google Cloud, Amazon AWS et Azure. 

Au final, Kubeflow standardise les opérations d'apprentissage automatique (MLOps) sous forme de projets, tout en exploitant la puissance du cloud computing. Le framework Kubeflow est principalement utilisé pour la préparation des données, ainsi que l'entraînement, l'évaluation, l'optimisation et le déploiement de modèles.

 

Les technologies Kubernetes sont essentielles pour accélérer le cycle de vie de l'AA, car elles offrent aux data scientists l'agilité, la flexibilité, la portabilité et l'évolutivité dont ils ont tant besoin pour entraîner, tester et déployer des modèles d'AA.

Évolutivité : avec Kubernetes, il est possible de mettre à l'échelle les charges de travail d'AA en fonction de la demande. Les pipelines d'apprentissage automatique prendront en charge le traitement et l'entraînement à grande échelle, sans interférer avec les autres éléments du projet. 

Efficacité : Kubernetes optimise l'allocation des ressources en planifiant les charges de travail sur les nœuds en fonction de leur disponibilité et de leur capacité. L'utilisation optimale des ressources de calcul entraîne une réduction des coûts et une amélioration des performances.

Portabilité : Kubernetes fournit un environnement standardisé et indépendant de toute plateforme qui permet aux data scientists de développer un seul et unique pipeline d'AA, déployable dans plusieurs environnements et sur plusieurs plateformes cloud. Cette approche leur évite tout problème de compatibilité et toute dépendance vis-à-vis d'un fournisseur.

Tolérance aux pannes : grâce à la tolérance aux pannes et aux capacités d'autoréparation intégrées à Kubernetes, les pipelines d'AA continuent de s'exécuter en cas de défaillance matérielle ou logicielle.

  1. Le tableau de bord Kubeflow est une interface web protégée par un système d'authentification qui donne accès à l'écosystème Kubeflow et à ses composants. Faisant office de hub centralisé, il regroupe les interfaces utilisateur de plusieurs outils et services du cluster, et constitue ainsi un point d'accès unique pour la gestion de la plateforme d'apprentissage automatique.
  2. Kubeflow offre la possibilité d'utiliser des notebooks Jupyter pour ainsi disposer d'un environnement interactif pour l'exploration des données, l'expérimentation et le développement de modèles. Les notebooks prennent en charge différents langages de programmation, dont Python, R et Scala, et permettent de créer et d'exécuter des workflows d'AA de manière collaborative et reproductible.
  3. Avec les pipelines Kubeflow, il est possible de définir et d'exécuter des workflows d'AA complexes sous la forme de graphes orientés acycliques. Les pipelines Kubeflow permettent d'orchestrer et d'automatiser l'ensemble du processus, du prétraitement des données au déploiement des modèles d'AA, en passant par leur entraînement et leur évaluation. Le tout selon une approche reproductible, évolutive et collaborative. Le SDK Kubeflow Pipelines rassemble plusieurs packages Python qui permettent de définir et d'exécuter des workflows d'AA avec précision et efficacité.
  4. L'opérateur Kubeflow Training Operator fournit les outils indispensables pour entraîner des modèles d'AA à grande échelle, et notamment pour distribuer l'entraînement au moyen de divers frameworks tels que TensorFlow, PyTorch et XGBoost. Les capacités d'évolutivité et de gestion des ressources de Kubernetes assurent l'efficacité de l'entraînement des modèles dans l'ensemble des clusters de machines.
  5. Le composant Kubeflow Serving aide à déployer les modèles d'AA entraînés en tant que services évolutifs et prêts pour la production. Il fournit une interface cohérente de déploiement des modèles compatible avec les frameworks couramment utilisés, comme TensorFlow Serving ou Seldon Core, ou des serveurs d'inférence personnalisés. Déployables en temps réel ou de façon groupée, les modèles génèrent des prévisions via des points de terminaison HTTP.
  6. Kubeflow Metadata est un référentiel centralisé qui facilite le suivi et la gestion des métadonnées associées aux expérimentations, exécutions et artéfacts d'AA. Il favorise la reproductibilité, la collaboration et la gouvernance dans le cadre des projets d'AA en offrant une vision homogène des métadonnées dans tout le workflow.

Kubeflow comprend également des interfaces web pour le suivi et la gestion des expérimentations d'AA, des travaux d'entraînement des modèles ainsi que des services d'inférence. Grâce aux outils de visualisation, indicateurs de mesure et journaux accessibles dans ces interfaces, les équipes peuvent suivre l'avancement de leurs workflows et prendre des décisions éclairées, tout en résolvant les problèmes.

Le modèle d'opérateur Kubernetes garantit l'extensibilité de Kubeflow, permettant d'adapter la plateforme en fonction de besoins et d'environnements particuliers. Il est ainsi possible d'optimiser les workflows d'AA en intégrant d'autres composants comme des outils de prétraitement des données, systèmes de stockage de fonctions, solutions de surveillance, sources de données externes, etc.

Red Hat® OpenShift® est une plateforme fiable, cohérente et complète pour le développement, le déploiement et la gestion d'applications dans tous les environnements. Dotée de capacités DevOps (OpenShift Pipelines, OpenShift GitOps et Red Hat Quay, notamment) et compatible avec les accélérateurs matériels, la solution Red Hat OpenShift améliore la collaboration et accélère la distribution des applications basées sur l'IA.

Red Hat OpenShift AI fournit un éditeur visuel qui permet de créer et d'automatiser des pipelines de science des données et des expérimentations à partir de pipelines Kubeflow. Cette plateforme MLOps intégrée prend en charge la création, l'entraînement, le déploiement et la surveillance à grande échelle des applications d'IA et des modèles de fondation et d'analyse prédictive, dans les environnements de cloud hybride. Elle permet d'automatiser et de simplifier l'intégration répétée des modèles d'apprentissage automatique aux processus de développement logiciel, de déploiement en production, de surveillance, de réentraînement et de redéploiement pour assurer la précision des prévisions.

Disponible en mode natif sur IBM Cloud, Google Cloud, AWS et Azure, la solution Red Hat OpenShift permet d'automatiser la gestion des clusters Kubernetes pour créer, déployer et mettre à l'échelle des applications rapidement, grâce à une plateforme d'applications prête pour la production. 

 

Pour aller plus loin

ARTICLE

Conteneurs et machines virtuelles

Les conteneurs Linux et les machines virtuelles sont des environnements informatiques en paquets qui associent divers composants et les isolent du reste du système.

ARTICLE

L'orchestration des conteneurs, qu'est-ce que c'est ?

L'orchestration des conteneurs permet d'automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.

ARTICLE

Un conteneur Linux, qu'est-ce que c'est ?

Un conteneur Linux est un ensemble de processus isolés du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient.

En savoir plus sur les conteneurs

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Cours gratuit

Présentation technique de l'exécution de conteneurs avec Red Hat

Cours gratuit

Présentation technique du déploiement d'applications conteneurisées

Cours gratuit

Développement d'applications cloud-native avec des architectures de microservices