Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevFest Paris - Kubeflow Data Scientist ready ?

DevFest Paris - Kubeflow Data Scientist ready ?

Industrialiser de la Data Science est le nouveau sujet à la mode. Ajoutez à cela une pincée de Kubernetes et vous retrouvez une recette de buzzwords. Lors d'une précédente démonstration, je me suis rendu compte de la difficulté de comprendre tout cet écosystème pour un Data Scientist.
Google a depuis mis à disposition un série d'outil afin de permettre la scalabilité de projets de Deep Learning sous le nom de Kubeflow : contraction de Kubernetes et Tensorflow. Nous allons montrer, à travers une démo, l'utilisation de ces outils et essayer de répondre à une simple question : est-il Data Scientist ready ?

Sylvain Lequeux

February 08, 2019
Tweet

Other Decks in Programming

Transcript

  1. 4 Ma mission Travailler proche des Data Scientists pour leur

    fournir un environnement dans lequel ils peuvent innover et être créatifs tout en garantissant une livraison en production
  2. 10 Niveaux de DSAF Le Data Scientist veut l’utiliser parce

    que Cela lui apporte des fonctionnalités utiles sans contrainte.
  3. 11 Niveaux de DSAF Le Data Scientist veut l’utiliser parce

    que Cela lui apporte des fonctionnalités utiles sans contrainte. Si nécessaire, le Data Scientist l’utilisera. Au moins, le Data Ingénieur arrêtera de le harceler à ce sujet.
  4. 12 Niveaux de DSAF Le Data Scientist veut l’utiliser parce

    que Cela lui apporte des fonctionnalités utiles sans contrainte. Si nécessaire, le Data Scientist l’utilisera. Au moins, le Data Ingénieur arrêtera de le harceler à ce sujet. Le Data Scientist se demande pourquoi l’utiliser ? Cela serait plus simple sans. Possible frein à l’adoption.
  5. 13 Niveaux de DSAF Le Data Scientist veut l’utiliser parce

    que Cela lui apporte des fonctionnalités utiles sans contrainte. Si nécessaire, le Data Scientist l’utilisera. Au moins, le Data Ingénieur arrêtera de le harceler à ce sujet. Le Data Scientist se demande pourquoi l’utiliser ? Cela serait plus simple sans. Possible frein à l’adoption. Pas question de l’utiliser, trop compliqué et complexe. Le Data Scientist souhaite se concentrer sur ce qui lui apporte de la valeur et cela sera une perte de temps.
  6. Pour les nuls Kubeflow - Devfest 15 Kubernetes ▼ Gestionnaire

    de cluster ▼ Définition de ressources ▼ Chaque ressource est définie sous forme d’un fichier YAML ▼ Ressources de base : ▽ Deployment ▽ Service ▽ Pod ▼ En local ▽ Fourni par Docker for MacOS et Docker for Windows ▽ Minikube ▼ En Cloud ▽ GKE
  7. Kubernetes KSonnet ▼ Génération de fichiers YAML complexes ▼ Sous

    forme de composant ▼ CLI pour “simplifier” le tout 16 Kubeflow - Devfest
  8. 19 Kubeflow - Devfest Installation #1 Local ▼ Installer Minikube

    ou Docker for Mac ▼ Installer kubectl et ksonnet CLI ▼ Installer Kubeflow ▽ Script bash fournit ▽ Installation manuelle via git clone et KSonnet ▼ Complètement personnalisable ▼ L’installation manuelle est plutôt compliquée.
  9. 20 Kubeflow - Devfest Installation #2 Cloud ▼ https://deploy.kubeflow.cloud/#/deploy ▽

    Fournir l’authentification ▽ Fournir la version à installer ▽ Fournir la région ▽ Clic sur “create” ▽ Et voilà ! ▼ Non personnalisable ▼ Fait pour GCP
  10. Stockage des données Kubeflow - Devfest 23 Exploration : local

    ▼ Données dans GCS : ▽ Attention à la latence ▼ Données stockées dans des Persistent Volumes ▽ Nécessite des manipulations Kubernetes ▽ Nécessite une installation personnalisée pour être inclus dans un volume des jobs et des notebooks Exploration : cloud Stockage des données ▼ Les données sont stockées dans GCS ▽ Interface graphique pour naviguer dedans ▽ CLI pour automatiser
  11. Kubeflow - Devfest 25 JupyterHub - En terre connue ▼

    Options de Spawner ▽ Image (version de TF) ▽ Ressources standards (CPU/Mémoire) ▽ Ressources personnalisées (GPU) ▼ Jupyter dédié à l’utilisateur créé dans un conteneur isolé. ▼ Accès aux données via gsutil ou client S3 (minio) ou volume monté
  12. Etape 1 : le code Kubeflow - Devfest 28 Entraînement

    de modèle ▼ Code Tensorflow classique : ▽ Chargement des données ▽ Définition du graphe d’exécution ▽ Entraînement ▽ Export du résultat ▼ Utilisation de l’API Estimator ▼ Phase non spécifique à Kubeflow Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  13. Etape 2 : l’image Docker Kubeflow - Devfest 29 Entraînement

    de modèle ▼ Image générée : 1.34 GB ! Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  14. Etape 3 : le descripteur YAML Kubeflow - Devfest 30

    Entraînement de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  15. Kubeflow - Devfest Stockage Persistent volume (claim) ▼ Persistent Volume

    ▽ Représentation “physique” du stockage de la donnée ▽ Ici, sera stockée en local sur la VM Minikube ▼ Persistent Volume Claim ▽ Représente une utilisation du PV ▽ Peut être appelé dans les créations de conteneurs 31
  16. Etape 3 : le descripteur YAML Kubeflow - Devfest 32

    Entraînement de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  17. Etape 4 : le déploiement Kubeflow - Devfest 33 Entraînement

    de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement . . .
  18. Etape 1 : le code Kubeflow - Devfest 36 Entraînement

    de modèle ▼ Adaptations : ▽ Le code va recevoir une variable TF_CONFIG avec les URLs : ▪ Du chief ▪ Des PS ▪ Des Workers ▽ Utilisation d’une stratégie de distribution (ParameterServerStrategy) ▼ Le code est globalement le même Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  19. Etape 2 : l’image Docker Kubeflow - Devfest 37 Entraînement

    de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement Rien ne change
  20. Etape 3 : le descripteur YAML Kubeflow - Devfest 38

    Entraînement de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement
  21. Etape 4 : le déploiement Kubeflow - Devfest 39 Entraînement

    de modèle Etape 1 Le code Etape 2 L’image Docker Etape 3 Le descripteur YAML Etape 4 Le déploiement Rien ne change
  22. Kubeflow - Devfest TF Serving 45 Model Client App 1

    Client App 2 Client App 3 gRPC API
  23. Etape 1 : Créer l’application Kubeflow - Devfest 46 Serving

    de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement
  24. Etape 2 : Installer les packages TF-Serving Kubeflow - Devfest

    47 Serving de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement
  25. Etape 3 : Configurer le serving Kubeflow - Devfest 48

    Serving de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement
  26. Etape 3 : Configurer le serving Kubeflow - Devfest 49

    Serving de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement ▼ Paramètres saisis : ▽ name ▽ model_path ▽ modelStorageType ▽ nfsPVC ▽ version (voir plus tard) ▽ deployHttpProxy
  27. Etape 3 : Configurer le serving Kubeflow - Devfest 50

    Serving de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement
  28. Etape 4 : le déploiement Kubeflow - Devfest 51 Serving

    de modèle Etape 1 Créer l’application Etape 2 Installer TF-Serving Etape 3 Configurer le serving Etape 4 Le déploiement
  29. Documentation & Examples Kubeflow - Devfest 55 Des breaking changes

    fréquents Exemples et documentation vite dépassés (souvent spécifiques GCP)