Technologies du machine
learning
Séance 5 : KubeFlow
Année Universitaire : 2022-2023 Prof. ERRAJI Zakarya
1
--
Aperçu : Contenu
ü10 heures de cours, 12 heures TP/TD et 2 heures d’évaluation
• MLOps Fundamentals : Why and When do we need MLOps
In this chapter, we take a look at machine learning from an operations
perspective. This means taking a whole-system view: from defining the
problem to the solution.
• Understanding the Main Kubernetes Components
-> Understanding the Main Mlflow Components
-> Understanding the Main Tensorflow Components
2
Aperçu : Contenu
• Training, Tuning and Serving on AI Platform
ü Kubeflow
ü MlFlow
ü Tensorflow
=> In this chapter, we will learn how to train, tune, and serve a model manually from the Jupyter notebook on AI Platform.
• Pipelines on AI Platform
ÞIn this module, we will automate the training and tuning process we described before using a ML
pipeline. Instead of having to trigger every single step of the process manually from the Jupyterlab
notebook, we can trigger the entire process with a single click after we have expressed the various
steps as a ML pipeline.
ü Kubeflow
ü MlFlow
ü Tensorflow
3
Aperçu : Contenu
• CI/CD on AI Pla,orm:
üKubeflow
üMLFlow
üTensorFlow
=> In this module, we will be talking about CI/CD for ML pipelines. We know
how to build an automated ML pipeline, but how can we integrate this pipeline
in a conLnuous integraLon stack? The goal is to rebuild pipeline assets
immediately when new training code is pushed to the corresponding repository.
4
5
Artificial Intelligence vs Machine Learning vs
Deep Learning
Artificial Intelligence (AI)
“Human Intelligence Exhibited by Machines”
• General AI: Machine Learning (ML)
Machines that have all senses, all our
reasons and think just like humans do “An Approach to Achieve Narrow AI” Deep Learning (DL)
- Example: Spam Filtering “An Approach to Achieve Machine
Learning using Deep Neural Network”
• Narrow AI:
Machines that perform specific tasks as well - Example: Image/Video/Speech
as, or better than, humans can Recognition, Translation etc.
MlOps : Collaboration
Cycle de vie : Software Vs Machine Learning
Time series Data
• l'algorithme linaire régression ne prend pas le temps en considéra1on (du tout);
• Data Mono variée : simple à prédire mais la prédic4on n'est pas fiable
• Data Mul1 variée : Difficile à prédire mais la prédic4on est fiable (il faut dans ce cas-là faire réduc4on la
dimensia4té.., la rela4on entre les variables...)
• (Pas d'impacte sur le choix du modèle)
• Data saisonnalité : prophète, ARIMA (mono variée)
• Dans le cas inverse il faut RNN ou LSTM GRU
9
Cycle de vie : Software Vs Machine Learning
Cycle de vie : Software Vs Machine Learning
Cycle de vie : SoCware Vs Machine Learning
Cycle de vie : Software Vs Machine Learning
14
15
Environnements multiples :
Laptop : Un environnement local pour expérimenter ou tester des modèles.
K8s?
Training Rig : Une infrastructure dédiée à l’entraînement de modèles, souvent dotée de GPU.
Cloud : Une plateforme cloud pour des besoins d’entraînement ou d’inférence à grande échelle.
Centralisation avec Kubernetes :
Kubernetes agit comme un orchestrateur central pour gérer les ressources dans tous ces environnements (local, entraînement dédié, et cloud).
Chaque environnement utilise Kubeflow pour exécuter les tâches spécifiques au machine learning.
16
KubeFlow
C’est comme si Kubeflow t’aidait à préparer et déplacer ton modèle, et Kubernetes t’assurait qu’il reste stable et
performant une fois déployé.
17
Plan de la séance
• Présenta4on de Kubeflow
• Aperçu conceptuel
• Présenta4on du workflow ML sur Kubeflow
• Exemple de workflow ML spécifique
• Composants
18
Présentation de Kubeflow
• Kubeflow est une plate-forme pour les scientifiques des données qui
souhaitent créer et expérimenter des pipelines de ML. Kubeflow est
également destiné aux ingénieurs ML et aux équipes opérationnelles
qui souhaitent déployer des systèmes ML dans divers environnements
à des fins de développement, de tester et de servir le modèle au
niveau de la production.
19
Aperçu conceptuel
• Kubeflow est la boîte à outils de ML pour Kubernetes. Le schéma
suivant montre Kubeflow en tant que plate-forme pour organiser les
composants de votre système de ML au-dessus de Kubernetes
20
Aperçu conceptuel
21
Aperçu conceptuel
• Kubeflow s'appuie sur Kubernetes en tant que système de
déploiement, de mise à l'échelle et de gestion de systèmes
complexes.
• À l'aide des interfaces de configuration Kubeflow (slides suivants),
vous pouvez spécifier les outils de ML requis pour votre workflow.
Ensuite, vous pouvez déployer le flux de travail sur diverses plates-
formes cloud, locales et sur site (on promise) à des fins
d'expérimentation et de production.
22
PrésentaJon du workflow ML
• Lorsque vous développez et déployez un système ML, le workflow ML
se compose généralement de plusieurs étapes. Le développement
d'un système de ML est un processus itératif. Vous devez évaluer la
sortie des différentes étapes du flux de travail ML et appliquer des
modifications au modèle et aux paramètres si nécessaire pour vous
assurer que le modèle continue de produire les résultats dont vous
avez besoin.
• Par souci de simplicité, le schéma dans le slide suivant montre les
étapes du workflow dans l'ordre. La flèche à la fin du workflow
renvoie dans le flux pour indiquer la nature itérative du processus
23
PrésentaJon du workflow ML
24
Composants Kubeflow dans le workflow ML
25
Composants Kubeflow dans le workflow ML
26
Composants Kubeflow dans le workflow ML
• Kubeflow inclut des services de génération et de gestion des notebooks
Jupyter. Utilisez des blocs-notes pour la science des données interactive et
l'expérimentation des workflows de ML.
• Kubeflow Pipelines est une plate-forme pour créer, déployer et gérer des
workflows de ML en plusieurs étapes basés sur des conteneurs Docker.
• Kubeflow propose plusieurs composants que vous pouvez utiliser pour
créer votre traning ML, régler/tuning les hyperparamètres et servir des
charges de travail/workloads sur plusieurs plates-formes.
27
Exemple de workflow ML spécifique
• Le diagramme dans le slide suivant montre un exemple simple d'un
workflow ML spécifique que vous pouvez utiliser pour faire le traning
et servir un modèle entrainé sur la dataset MNIST
28
Exemple de workflow ML spécifique
29
Kubeflow interfaces (plus de détails dans le
TP2)
30
Components
31
Central Dashboard
• Home: Home, the central hub to access recent resources, active experiments, and useful documentation.
• Notebook Servers: To manage Notebook servers.
• TensorBoards: To manage TensorBoard servers.
• Models: To manage deployed KFServing models.
• Volumes: To manage the cluster’s Volumes.
• Experiments (AutoML): To manage Katib experiments.
• Experiments (KFP): To manage Kubeflow Pipelines (KFP) experiments.
• Pipelines: To manage KFP pipelines.
• Runs: To manage KFP runs.
• Recurring Runs: To manage KFP recurring runs.
• Artifacts: To track ML Metadata (MLMD) artifacts.
• Executions: To track various component executions in MLMD.
• Manage Contributors: To configure user access sharing across namespaces in the Kubeflow deployment.
32
Central Dashboard
33
Notebook Servers
• Avantages:
• Bonne intégraLon avec le reste de l'infrastructure en ce qui concerne
l'authenLficaLon et le contrôle d'accès.
• PermeVre un partage plus facile des notebooks dans toute l'organisaLon. Les
uLlisateurs peuvent créer des conteneurs ou des pods de notebooks
directement dans le cluster, plutôt que localement sur leurs postes de travail.
Les administrateurs peuvent fournir des images de notebooks standard pour
leur organisaLon et configurer le contrôle d'accès basé sur les rôles (RBAC),
les secrets et les informaLons d'idenLficaLon pour gérer les équipes et les
individus qui peuvent accéder aux notebooks.
34
Kubeflow Pipelines
• Le Kubeflow Pipelines se compose de :
• Une interface utilisateur (UI) pour gérer et suivre les expériences, les tâches
et les exécutions.
• Un moteur de planification de workflows de ML à plusieurs étapes.
• Un SDK pour définir et manipuler des pipelines et des composants.
• Notebooks pour interagir avec le système à l'aide du SDK.
35
Kubeflow Pipelines
• Les objectifs de Kubeflow Pipelines sont les suivants :
• Orchestration de bout en bout : activer et simplifier l'orchestration des
pipelines de machine learning.
• Expérimentation facile : vous permet d'essayer facilement de nombreuses
idées et techniques et de gérer vos différents essais/expériences.
• Réutilisation facile : vous permet de réutiliser des composants et des
pipelines pour créer rapidement des solutions de bout en bout sans avoir à
reconstruire à chaque fois.
36
KFServing
• KFServing permet l'inférence serverless sur Kubernetes et fournit des
interfaces performantes et à haute abstraction pour les frameworks
d'apprentissage automatique (ML) courants comme TensorFlow,
XGBoost, scikit-learn, PyTorch et ONNX pour résoudre les cas
d'utilisation des modèles de production.
37
KFServing
• Vous pouvez uOliser KFServing pour effectuer les opéraOons suivantes :
• Encapsule la complexité de l'autoscaling, de la mise en réseau, de la
vérificaOon de l'état et de la configuraOon du serveur pour apporter des
foncOonnalités de pointe telles que l'autoscaling GPU, la mise à l'échelle à
zéro et les déploiements Canary dans vos déploiements de machine
learning.
• Fournit une définiOon de ressource personnalisée Kubernetes pour servir
des modèles de ML sur des frameworks arbitraires.
• Crée une histoire simple, enfichable et complète pour votre serveur
d'inférence ML de producOon en fournissant une prédicOon, un pré-
traitement, un post-traitement et une explicabilité prêts à l'emploi.
38
Katib
• Ka4b est le projet qui est indépendant des frameworks
d'appren4ssage automa4que (ML). Il peut régler les hyperparamètres
des applica4ons écrites dans n'importe quel langage au choix des
u4lisateurs et prend en charge na4vement de nombreux frameworks
ML, tels que TensorFlow, MXNet, PyTorch, XGBoost et autres.
39
Katib
• Katib prend en charge de nombreux algorithmes AutoML, tels que
l'optimisation bayésienne, les estimateurs de l'arbre de Parzen, la
recherche aléatoire, la stratégie d'évolution de l'adaptation de la
matrice de covariance, l'hyperbande, la recherche d'architecture
neuronale efficace, la recherche d'architecture différentiable et bien
d'autres.
• Le projet Katib est open source. Le guide du développeur est un bon
point de départ pour les développeurs qui souhaitent contribuer au
projet.
40
Training Operators
TensorFlow Training (TFJob)
Using TFJob to train a model with TensorFlow
PyTorch Training (PyTorchJob)
Using PyTorchJob to train a model with PyTorch
MXNet Training (MXJob)
Using MXJob to train a model with Apache MXNet
XGBoost Training (XGBoostJob)
Using XGBoostJob to train a model with XGBoost
MPI Training (MPIJob)
Instructions for using MPI for training
Job Scheduling
How to schedule a job with gang-scheduling
41
MulJ-Tenancy
Introduc)on to Mul)-user Isola)on
Why do Kubeflow administrators need mul4-user isola4on?
Design for Mul)-user Isola)on
In-depth design for suppor4ng mul4-user isola4on
Ge6ng Started with Mul)-user Isola)on
How to use mul4-user isola4on with profiles
42
Fin de la séance
Séance suivante: TP
43