MLflow : la future plateforme standard du machine learning

MLflow : la future plateforme standard du machine learning Initié par Databricks, le projet open source gère le cycle de vie d'un projet d'IA, de l'expérimentation au déploiement. Soutenue par Microsoft, cette technologie est, par exemple, utilisée par la Société Générale.

Comme tout apprentissage, l'apprentissage automatique est affaire de tâtonnements. Entre la sélection du jeu de données, le choix de l'algorithme, de son paramétrage et des modalités d'entrainement, un grand nombre de décisions sont prises. Une des difficultés rencontrées par les équipes de data science consiste à garder une trace des expérimentations menées, de les centraliser en un point unique, afin d'assurer le suivi et la reproductibilité des modèles de machine learning. Initié par Databricks, la société fondée par les créateurs de Spark, et hébergé par la fondation Apache, le projet open source MLflow (contraction de machine learning et workflow) entend répondre à cette promesse en proposant un standard visant à faciliter la gestion et la réutilisation des modèles d'IA. Avec un succès certain.

Depuis l'annonce de cette initiative en juin 2018, Databricks revendique plus de 800 000 téléchargements mensuels sur PyPI (ou Python Package Index), sur lequel le projet est hébergé, et 135 contributeurs sur GitHub. "Nous avons réussi à atteindre en huit mois un élan qui a pris plus de trois ans à prendre avec Apache Spark", se réjouit Clemens Mewald, responsable de la gestion des produits chez Databricks.

MLflow entend éviter l'effet "boîte noire" du machine learning en rendant possible la formation et la réutilisation de modèles. Ainsi au sein d'une même équipe, des data scientists peuvent les reprendre et les déployer. Pour gérer ce flux de travail, MLflow fournit trois composants. L'interface utilisateur, MLflow Tracking, consigne le jeu de données, les paramètres, les versions de code et les résultats obtenus en sortie lors de l'exécution du modèle d'apprentissage automatique. MLflow Projects vise, lui, à rendre ces expérimentations reproductibles en enregistrant automatiquement les versions d'un projet, sur GitHub par exemple, et en packageant le code et ses dépendances. Enfin, MLflow Models propose de nombreux outils de déploiement mais aussi un format générique pour encapsuler le modèle. En décrivant comment ce dernier doit être invoqué, il permet de le déployer sur différents environnements qu'il s'agisse d'un serveur REST basé sur Docker, d'un cluster distribué adossé à Apache Spark, ou de services de cloud public de machine learning comme Microsoft Azure ML ou AWS SageMaker.

Depuis la sortie de sa version 1.0 en juin dernier, MLFlow prend en charge le format de modèle de machine learning ONNX (pour Open Neural Network eXchange), initialement soutenu par Microsoft, Amazon et Facebook et le projet open source HDFS (le système de fichiers distribués d'Hadoop). Conçu pour être modulaire, MLflow permet d'utiliser indépendamment ces différents composants. Selon Databricks, la solution peut être aussi bien utilisée par un informaticien en local sur sa machine que par une équipe de data scientists qui, travaillant sur le même chantier, souhaitent comparer leurs résultats.

Ouverte, extensible, agnostique, multicloud

A l'intention des grandes organisations, Databricks distribue une version as a service de MLflow intégrée à sa plateforme. Baptisée Managed MLflow, elle permet de suivre, partager, visualiser et gérer les expérimentations de machine learning depuis les notebooks de Databricks en profitant de fonctionnalités de sécurisation et de contrôle d'accès.

"La gestion du cycle de vie des modèles de machine learning pose de nombreux problèmes en raison de la pléthore d'outils utilisés et d'experts impliqués dans ce type de projet, mais aussi compte tenu de la nature itérative de la construction d'une IA", observe Clemens Mewald. "De grandes entreprises digitales ont déjà commencé à résoudre ces problèmes en interne avec leurs propres plateformes d'apprentissage automatique et outils de gestion du cycle de vie." Selon lui, ces projets internes montrent leurs limites. "Premièrement, ils se cantonnent à quelques algorithmes ou frameworks. L'adoption de nouveaux outils ou de nouvelles bibliothèques peut entraîner d'importants goulots d'étranglement", souligne Clemens Mewald. Deuxième frein évoqué par l'expert : chaque plateforme étant liée à l'infrastructure d'une entreprise donnée, cela contribue à entraver le partage de modèles entre data scientists.

"Des centaines de clients utilisent déjà MLflow en production à grande échelle"

Aux yeux de Clemens Mewald, MLflow a tous les atouts pour devenir un standard qui viendrait in fine lever tous ces obstacles. Ouverte, extensible et techniquement agnostique, la plateforme a été conçue dès le départ pour évoluer en environnement multicloud avec une API lui permettant de fonctionner avec les frameworks et bibliothèques de machine learning les plus populaires.

Selon l'éditeur, "des centaines de clients" utilisent déjà MLflow en production à grande échelle. Mi-octobre, la Société Générale a témoigné sur le sujet lors de l'événement Spark + AI Summit Europe qui s'est tenu en octobre 2019 à Amsterdam. La banque française a industrialisé le déploiement de modèles de machine learning en associant MLflow et Apache Spark. Toujours en France, l'Institut des Systèmes Complexes de Paris Île-de-France (ISC-PIF) du CNRS est aussi un contributeur-utilisateur mis en avant par Databricks.

L'éditeur américain peut aussi compter sur le soutien d'un acteur de poids : Microsoft. Le géant du logiciel a rejoint le projet MLflow en avril dernier en vue d'intégrer la technologie open source avec ses propres services cloud de machine learning. De son côté, RStudio a développé une API R afin d'élargir la portée de la communauté de MLflow.

Un concurrent : Kubeflow

Côté concurrence, Databricks trouve sur son chemin Kubeflow, l'initiative open source portée par Google dans le domaine de la gestion de modèles d'apprentissage automatique. D'ailleurs, Databricks et Google participaient récemment à une table ronde où il était question des avantages comparés des deux projets.

Pour accélérer la diffusion de MLflow, Databricks a enrichi le framework d'une nouvelle fonctionnalité conçue pour tracer et optimiser tout le cycle de développement des modèles de machine learning, de leur création à la mise en œuvre au sein d'un répertoire collaboratif. Baptisée Model Registry, elle a été dévoilée à l'occasion du dernier Spark + AI Summit Europe. "Elle a pour but de répondre à la problématique de gouvernance des grands comptes qui, rappelle l'éditeur, peuvent disposer de milliers de modèles dans les phases d'expérimentation." Model Registry rejoint par ailleurs la mouvance de l'intégration et du déploiement continus (CI/CD) en gérant automatiquement la mise en production d'un modèle une fois les phases d'essais validées. Pour l'heure, seule une bêta privée de l'outil est disponible.