Kubeflow : définition
Kubeflow est un framework Open Source natif pour Kubernetes destiné au développement, à la gestion et à l'exécution des charges de travail de machine learning (ML). Il rassemble sur une plateforme plusieurs outils pour les principaux cas d'utilisation de l'intelligence artificielle (IA) et du ML, à 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.
Cas d'utilisation
Kubeflow permet de surmonter de nombreuses difficultés liées à l'orchestration des pipelines de machine learning grâce à un ensemble d'outils et d'API qui simplifient le processus d'entraînement des modèles de ML ainsi que leur déploiement à grande échelle. Un « pipeline » renvoie à un workflow de ML, 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 de ML depuis le cloud de leur choix, notamment IBM Cloud, Google Cloud, Amazon AWS et Azure.
Au final, Kubeflow standardise les opérations de machine learning (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.
Ressources Red Hat
Les avantages de l'exécution de charges de travail de ML sur Kubernetes
Les technologies Kubernetes sont essentielles pour accélérer le cycle de vie du ML, 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 de ML.
Évolutivité : avec Kubernetes, il est possible de mettre à l'échelle les charges de travail de ML en fonction de la demande. Les pipelines de machine learning 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 de ML, 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 de ML continuent de s'exécuter en cas de défaillance matérielle ou logicielle.
Les composants de Kubeflow
- 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 de machine learning.
- 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 de ML de manière collaborative et reproductible.
- Avec les pipelines Kubeflow, il est possible de définir et d'exécuter des workflows de ML 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 de ML, 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 de ML avec précision et efficacité.
- L'opérateur Kubeflow Training Operator fournit les outils indispensables pour entraîner des modèles de ML à 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.
- Le composant Kubeflow Serving aide à déployer les modèles de ML 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.
- 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 de ML. Il favorise la reproductibilité, la collaboration et la gouvernance dans le cadre des projets de ML 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 de ML, 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 de ML 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.
Nos solutions
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 de machine learning 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.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.