TensorFlow, Kubernetes et Kubeflow : La conteneurisation de l’apprentissage machine

05-09-2018 / Syed Ahmed

L’apprentissage machine (AM) est une méthode d’analyse des données qui identifie les motifs répétitifs et prédit les probabilités futures. Cela fait partie de la recherche sur l’intelligence artificielle (IA). En entrant des données, dont les réponses sont prédéterminées, dans des modèles mathématiques, les ordinateurs s’entraînent à prédire les ensembles d’entrées inconnus qui suivront.

Bien que jusqu’à maintenant, l’AM réussisse à bien résoudre les tâches spécifiques, l’analyse de données selon des paramètres plus complexes nécessite des modèles pouvant être déployés à l’échelle avec des opérations simplifiées. Un tel apprentissage machine permettrait aux ordinateurs de trouver et d’automatiser des solutions issues de plus grandes quantités d’information. Pour ces raisons, on estime que d’ici l’an 2020, l’IA et l’AM seront les catalyseurs principaux de l’adoption infonuagique. Afin de traiter l’étendue de l’information contenue dans le nuage, l’AM devra apprendre à l’échelle et de façon efficace, elle devra aussi bien s’intégrer aux technologies infonuagiques existantes, particulièrement à la conteneurisation.

À cette fin, Google a récemment annoncé la création de Kubeflow, une pile d’apprentissage machine composable, portative et évolutive, bâtie sur Kubernetes. Kubeflow offre une plateforme de logiciel libre pour que les modèles d’AM s’attachent aux conteneurs et effectuent des calculs à proximité des données plutôt que de l’intérieur d’une couche superposée.

Kubeflow aide à résoudre les difficultés inhérentes à la mise en place d’une pile d’AM. La création d’AM de qualité de production nécessite l’importation, la transformation et la visualisation des données pour ensuite créer, valider, former et déployer les modèles à l’échelle. Ces piles ont souvent été créées avec différents outils, ce qui rend difficile la gestion des algorithmes et donc, les résultats ne sont pas concluants. Les ensembles fournis par Kubeflow 1.0 assimilent une gamme d’outils d’AM, notamment TensorFlow et JupyterHub, en une seule pile qui peut être facilement transportée dans des environnements multinuages avec Kubernetes.

TensorFlow

Pour créer des modèles d’apprentissage machine, Kubeflow s’appuie sur TensorFlow, un système de programmation de logiciel libre. Sa bibliothèque de logiciel utilise des tenseurs de structures géométriques pour exprimer les relations linéaires entre les données sous forme de graphiques à états démontrant le flux des données. Il soustrait la plateforme matérielle, permettant aux modèles de fonctionner soit sur une UCT (unité centrale de traitement), une UGT (unité graphique de traitement) ou des UTT (unités de tenseurs de traitement). Somme toute, elles forment la base pour un haut débit de calculs arithmétiques de faible précision. Cette architecture flexible lui permet de rassembler de l’information provenant de différents objets, allant de postes de travail aux grappes ou de serveurs aux appareils mobiles et aux périphériques. Bien qu’il soit difficile et complexe à utiliser, TensorFlow est idéal pour créer des modèles d’AM ayant un niveau de sophistication qui demande une gestion des données portative et évolutive.

JupyterHub

Kubeflow exécute les graphiques informatiques de TensorFlow directement des blocs-notes de Jupyter. Les blocs-notes de Jupyter sont compatibles aux conteneurs et peuvent être exploités sur Kubernetes ou sur toute autre infrastructure de logiciel libre. Ils offrent aux utilisateurs des environnements et des ressources pour les modèles d’AM pouvant facilement être mis en œuvre sans les coûts supplémentaires liés à l’installation et à l’entretien. Leur format de style document englobe tant le code que le markdown dans les mêmes fichiers, rendant les calculs informatiques visibles. JupyterHub permet aux ingénieurs d’exécuter immédiatement les graphiques TensorFlow ou de les stocker pour une utilisation future, accordant un plus grand contrôle sur la configuration des modèles TensorFlow. Kubeflow s’appuie sur JupyterHub pour une formation collaborative et interactive.

La pile Kubeflow incorpore de nombreuses autres solutions complémentaires à l’exécution des modèles TensorFlow. Argo est utilisé pour planifier les flux de travail ; SeldonCore, pour les inférences complexes et pour les modèles non -TensorFlow Python ; et enfin, Ambassador est utilisé comme mandataire inversé. Intégré à Kubernetes, cette pile permet aux ingénieurs de développer, former et déployer efficacement des modèles d’AM à l’échelle.

Kubernetes

Kubernetes est un outil d’orchestration de conteneur fiable et de logiciel libre. Cet outil normalise la conception d’applications en microservices modulaires, portatifs et évolutifs qui peuvent déployer de complexes charges de travail dans divers environnements. Il emploie de riches API qui automatisent de nombreuses fonctions opérationnelles. La plateforme Kubeflow s’appuie sur Kubernetes afin de simplifier les opérations des modèles TensorFlow et rendre leur exécution infonuagique.

Portabilité et évolutivité – Kubernetes permet la gestion modulaire des modèles TensorFlow comme microservices, les rendant hautement portatifs et évolutifs. Ils peuvent facilement être déplacés entre les différents environnements, plateformes et fournisseurs infonuagiques. Traditionnellement, les piles d’AM étaient immobiles, le processus de déplacement des modèles et de leurs dépendances associées à partir d’ordinateurs portables vers des grappes infonuagiques nécessitait une reconception significative de l’architecture. Kubeflow permet à ces algorithmes d’accéder aux données dès qu’elles sont exécutées.

Automatisation et facilité d’opération – Kubernetes aide les applications à adopter l’automatisation bout à bout en offrant une bibliothèque garnie d’API déclaratives pour la gestion des microservices. Kubernetes s’occupe de la gestion des ressources, de l’attribution de postes et autres problèmes opérationnels qui traditionnellement, prenaient beaucoup de temps. Kubeflow permet aux ingénieurs de se concentrer sur l’écriture d’algorithmes d’AM sans se préoccuper de la gestion des opérations.

Il y a un énorme bassin d’information disponible dans le nuage, mais son étendue n’est pas encore complètement accessible à l’apprentissage machine. Kubeflow 1.0 promet que l’AM aura la capacité de garder la cadence de la croissance constante des données dans le nuage. L’AM est intégré dans la couche d’orchestration de conteneurs, ce qui rend les modèles plus évolutifs, portatifs et plus faciles à opérer. Kubeflow 1.0 offre une pile complète et conteneurisée pouvant être déployée rapidement et simplement. Il permet aux ordinateurs de s’entraîner avec de nombreux autres ensembles de données en utilisant une pile fiable et complète. Comprendre Kubernetes est la première étape vers un déploiement de modèles d’AM fluides avec KubeFlow. Pour en apprendre plus, inscrivez-vous à l’un de nos ateliers.

 

Syed Mushtaq Ahmed

Syed Ahmed est un développeur de logiciels chez CloudOps. Il est axé sur les intégrations et les problèmes qui sont difficiles à résoudre. Grâce à son expertise tant dans les piles de matériel que de logiciels, il ajoute une perspective unique dans la résolution de problèmes relatifs à l’intégration et à l’orchestration. Syed est un avide collaborateur du logiciel libre, il est aussi « Committer » et « PMC » pour le projet Apache CloudStack.

New call-to-action