Databricks veut améliorer le suivi des pipelines de Machine Learning avec MLflow
Lors de l’événement Spark+AI Summit à Amsterdam, Databricks a présenté les nouvelles fonctionnalités de sa plateforme open source MLflow. Model registry permet d’organiser plus facilement les pipelines ML et de partager les informations entre Data Engineers et Data Scientists.
MLflow est une plateforme, sous licence Apache 2.0, composée de trois modules. Le premier enregistre les expériences et les ressources associées : le code, les données, les configurations, ainsi que les résultats. Aussi, l’on peut comparer les résultats de plusieurs modèles appliqués à un ensemble de données et visionner les résultats depuis une UI. Un deuxième, nommé Models sert à sauvegarder les modèles les plus pertinents dans un format standard. L’on peut spécifier des « saveurs », par exemple comment lancer un modèle en tant qu’une fonction Python. Enfin, Projects est un format texte YAML associé à un algorithme qui facilite le partage d’informations afin de reproduire des modèles. Cela permet de préparer les données, entraîner les modèles et les déployer à l’échelle.
Dans sa forme actuelle, MLflow rassemble 140 contributeurs après un an d’existence. La plateforme est téléchargée près de 800 000 fois par mois et a bénéficié de trois mises à jour importantes en 6 mois. Lors du Spark+AI Summit, Databricks, le créateur de l’outil a annoncé l’arrivée d’une fonctionnalité pour gérer plus facilement la gestion des modèles.
Model Registry : Asana pour les Data Scientists
Matei Zaharia, l’un des créateurs d’Apache Spark et le responsable technologique du projet MLflow, assure qu’habituellement les entreprises qui développent des algorithmes ont déjà « rassembler des outils » ou ont construit leur propre plateforme. « Les plus connues sont Google TFX et ce que Facebook appelle FB Learning. MLflow est une sorte de version open source de ce concept ».
Pendant la conférence, le responsable a présenté MLflow Model Registry. Il s’agit en fait d’un entrepôt de versions d’algorithmes nommées, commentées et étiquetées, accessibles depuis une interface visuelle. Le système de labélisation permet de savoir si un modèle est en cours d’expérimentation, de développement, en production ou archivé. Ainsi, il est possible de charger une ressource spécifique sans en perdre la trace dans un dépôt contenant plusieurs centaines de fichiers.
« C’est un nouveau composant qui permet de garder la trace de nombreuses versions d’un modèle, de le réviser, de le documenter et aussi de savoir qui y a accès, quelles applications l’utilisent afin de pouvoir toujours en faire fonctionner la dernière version », nous résume M. Zaharia.
Cette fonctionnalité était apparemment très attendue par la communauté. « En février 2019, nous avons réalisé un sondage auprès de nos clients et des utilisateurs open source, c’était la fonctionnalité qu’ils réclamaient en priorité », assure-t-il.
Model Registry fonctionne comme une application web basée sur Python afin d’y connecter la plupart des bases de données à disposition. Pendant la conférence, un développeur a réalisé une démonstration. L’occasion de montrer la fonction autolog. Celle-ci permet d’automatiser le suivi des modèles, puis examiner leurs efficacités, ainsi que leurs identifiants. Avec la fonction Registry, l’on peut les classer et les fusionner dans un modèle. Une fois enregistré, il est possible de consulter les activités (modifications, utilisations), les commentaires, et même d’accéder à un snapshot du notebook qui a été utilisé pour mettre au point le code. Par ailleurs, le système de comparaison de modèles peut choisir automatiquement celui qui obtient les meilleurs résultats pour le pousser en production et ainsi éviter les mauvaises versions. L’audience dans la salle était enthousiaste.
Ordonner la jungle des pipelines dans les grands groupes
Le fabricant Electrolux, présent dans plus de 60 pays cherchent à transformer ses processus internes via le machine learning. À cet effet, l’équipe de science des données d’Electrolux entraîne plus de 1 000 modèles toutes les nuits et dispose de 16 cas d’usage en production. Johan Vallin, Responsable mondial Data Science chez Electrolux utilise depuis 1 an MLflow à partir d’Azure DataBricks « comme un outil de test et de versioning » pour les éléments en développement, spécialement pour un cas d’usage.
Le groupe veut prédire les ventes en se basant sur le prix des produits, les avis clients et en corrélant ces informations aux stocks disponibles dans ses entrepôts. Le grand nombre de modèles est égal au nombre de références de la marque, ce qui entraîne la multiplication des itérations durant la phase de simulation en cours. « Après les expériences menées, nous avons de grands espoirs que Mlflow va nous aider à pousser ce cas d’usage en production d’ici à la fin de l’année. L’outil nous permettra de conserver l’ordre nécessaire pour y parvenir », déclare Johan Vallin.
Parmi les utilisateurs de MLflow, Databricks mentionne également la Société Générale et HSBC. Microsoft le rend disponible à ses clients, mais préfère utiliser ML Ops en interne, un autre outil de Model Management marqué du sceau « code de conduite open source de Microsoft ».
De nouvelles synergies possibles grâce à MLflow
Ali GhodsiPDG Databricks
En parlant d’open source, Databricks veut lancer le projet dans la même direction que Spark et Delta Lake. Matei Zaheria affirme que la société envisage de confier MLflow à une fondation. Oui, mais laquelle ? « Je pense que nous voulons rester proches de différents projets, cela pourrait être la fondation Linux (comme Delta Lake N.D.L.R.), mais nous n’avons pas encore décidé », précise-t-il.
Dix ans après l’influence d’Apache Spark, se fait sentir : « Avec le lancement de Spark, je pense que nous avons appris beaucoup en créant des choses qui sont ouvertes à notre communauté, faciles à mettre en œuvre et à apprendre. […] Quand vous menez un projet open source, vous devez être sûr qu’il soit bien documenté afin que les utilisateurs l’adoptent et que les contributeurs y ajoutent leur touche. »
Avec MLflow Model Registry, Databricks combine la philosophie de l’open source et du « Code-friendly » en réduisant le nombre de commandes nécessaires pour effectuer une tâche. Il faut tout de même rédiger les modèles depuis un bon vieux notebook et donc avoir des Data Scientists sous la main.
De son côté, Alteryx a présenté le module Assisted Modeling (en bêta), un outil de l’Alteryx Designer qui permet de générer des pipelines ML sans rédiger une ligne de code en R ou en Python. Ici aussi, l’on peut comparer les résultats des différents processus. La simplicité apparente de l’outil le destinerait aux Data Analysts. Cependant, Carsten Bange, président du cabinet BARC, considère que cet outil s’adresse aux Data Scientists, parce que sans compréhension du fonctionnement des logiques mathématiques derrière les modèles, les risques d’erreurs sont trop importants.
Cela ne veut pas dire pour autant que Designer fasse de l’ombre à MLflow ou à sa version distribuée dans Unified Analytics Platform par Databricks. « Nous ne sommes pas en concurrence avec Alteryx. En fait, nous sommes partenaires », affirme Ali Ghodsi, PDG de Databricks. « Avec nos solutions, nous nous adressons aux Data Engineers et aux Data Scientists, eux visent les Data Analysts », ajoute-t-il.
Un algorithme développé à l’aide de la plateforme d’intégration continue pourrait en toute logique nourrir l’outil d’Alteryx afin de fournir des méthodes supplémentaires pour tirer des prévisions d’un jeu de données. D’ailleurs, Designer peut appeler le Data Streaming depuis Spark avec Azure Databricks. Il n’y aurait rien de surprenant que ces acteurs joignent leurs efforts une nouvelle fois dans le secteur de l’apprentissage statistique.
D’ores et déjà, l’approche de l’analytique et du machine learning de Databricks lui est profitable. « Nous sommes passés d’un revenu quasi nul à plus de 100 millions de dollars en recettes annuelles récurrentes en seulement trois ans, ce qui nous place parmi les éditeurs de logiciels d’entreprise à la croissance la plus rapide », a déclaré Ali Ghodsi en février dernier.
MLflow Model registry est disponible depuis le 16 octobre sur GitHub et depuis la plateforme Unified Analytics Platform.
Lire aussi :
Sans surprise, le projet Delta Lake de Databricks va rejoindre la fondation Linux