Kubeflow, l'arme open source de Google pour démocratiser l'IA

Kubeflow, l'arme open source de Google pour démocratiser l'IA Taillée pour tourner sur Kubernetes, la plateforme pilote l'entrainement et la mise en production des applications de machine learning. Mais elle permet aussi leur partage.

Sur le front des logiciels d'IA open source, Google s'est d'abord fait connaitre avec Tensorflow. Publié par le groupe américain dès 2015, ce framework s'est depuis imposé parmi les librairies de deep learning de référence. Utilisé à l'origine par Google pour motoriser ses services de recherche d'images ou de reconnaissance vocale, il est notamment réputé pour sa facilité de prise en main et la richesse de sa console de pilotage (le Tensorboard). Dans le sillage de Tensorflow, Google a livré en open source une seconde brique d'IA majeure en 2017 : Kubeflow. Le deuxième étage de la fusée. Sa vocation ? Piloter le développement des modèles de machine learning et leur déploiement sur les architectures cloud.

Comme son nom l'indique, Kubeflow tire parti de Kubernetes, le framework open source d'orchestration de grappe de containers logiciels, lui-aussi issu des laboratoires de Google. "Kubernetes va gérer la phase d'entrainement des modèles en activant les clusters de calcul nécessaires. C'est également un moyen d'assurer la portabilité des applications d'IA, des environnements de développement aux serveurs d'apprentissage puis de production, mais aussi d'un cloud à l'autre... Le tout avec la garantie de résultats équivalents d'un bout à l'autre", commente Pascal Rabier, cloud platform customer engineer chez Google. Grâce à Kubernetes, Kubeflow peut venir se nicher sur n'importe quel cloud d'infrastructure (IaaS), qu'il soit privé ou public.

Orchestré sur GitHub, le projet Kubeflow a depuis fédéré plus d'une centaine de contributeurs au sein de la communauté open source. Parmi les plus actifs, on relève des développeurs de Cisco, Intel ou Red Hat. Du côté des fournisseurs de cloud public, Amazon et Microsoft s'intéressent de près à Kubeflow. En septembre, le premier publiait un post pour expliquer comment le déployer sur son propre service Kubernetes (Amazon EKS). Quant au second, il a donné le coup d'envoi fin 2017 d'un chantier visant à rendre Kubeflow compatible avec son offre de container as a service (Azure Container Service).

Pour l'heure en version 0.3, Kubeflow a été d'abord dessiné pour mettre en musique les algorithmes de deep learning Tensorflow. Mais désormais des travaux sont en cours pour y intégrer d'autres infrastructures d'autoapprentissage. Par exemple PyTorch et MXNet. Mais aussi Scikit-Learn, la célèbre librairie créée par l'INRIA. Vous l'aurez compris, la seconde partie du mot valise Kubeflow ne fait pas référence à Tensorflow. "L'objectif était en effet d'emblée de s'étendre à d'autres frameworks d'IA", insiste Pascal Rabier. Mais alors à quoi peut-elle bien renvoyer ? "Elle fait référence à la notion de workflow, Kubeflow ayant pour vocation d'orchestrer l'ensemble du cycle de vie d'un modèle d'apprentissage, de sa conception à sa mise en production en passant par son entrainement", explique l'expert de Google.

Le défi : partager les modèles et workflows de machine learning

Dans sa dernière itération dévoilée le 8 novembre, Kubeflow pousse plus loin cette logique de workflow en introduisant Kubeflow Pipelines, une console graphique pour concevoir et déployer les process de machine learning de bout en bout (voir la capture ci-dessus). "Kubeflow Pipelines offre la possibilité, au cas par cas de chaque projet, de définir et d'agencer les différentes étapes du processus d'IA de manière personnalisée : data science, data ingénierie et préparation des données d'entrainement, puis learning, benchmark des algorithmes et dataflow pour éviter les biais, en enfin mise en production, supervision et maintenance", détaille Rajen Sheth, directeur du management produit Google Cloud AI.

Google entend ainsi proposer une solution qui non seulement permet de partager des modèles d'apprentissage mais aussi les workflows pour les mettre en œuvre en fonction de la spécificité de chacun. En parallèle, le groupe planche sur un service cloud, baptisé AI Hub, donnant accès à divers outils prêts à l'emploi : modèles de ML prédéfinis, data set, modules TensorFlow, notebooks Jupyter... Sans oublier une bibliothèque de workflows Kubeflow Pipelines pré-paramétrés. Complémentaire du TensorFlow Hub, "l'AI Hub offre en parallèle un espace privé et sécurisé où les entreprises peuvent partager leurs briques d'IA pour en faciliter la réutilisation en interne. Il permet ainsi de rationaliser les développements en capitalisant sur les projets de machine learning déjà réalisés", complète Rajen Sheth. Le AI Hub est pour l'heure en version alpha.