Une plateforme de gestion de cycle de vie de modèle de machine learning inventé par le créateur de spark.
Globalement MLflow c'est une techno qui va nous permettre de pouvoir bien collaborer au sein de notre team data. Mais aussi à titre personnel sur nos machines, MLflow nous permettra d'organiser toutes nos modèles que nous avons entrainé afin de pouvoir choisir l'un de ces modèles plus facilement.
Donc c'est une techno qui va nous permettre de travailler avec plusieurs librairies de machine learning et d'utiliser nos modèles via une api ou une interface graphique. MLflow facilite le partage entre collaborateur au sein d'une équipe et s'installe assez facilement.
Aujourd'hui Sur le github de MLflow ici on a plus de 8000 étoiles et il y a pas mal de contributeur sur ce projet.
MLflow répond à un problème de management des modèles. Exple: Vous bossez dans une grande boite avec 3, 4 data scientists mais chacun va entrainer plusieurs modèles qui vont avoir des performences differentes, avec des hyper-paramètres différents. Comment garder une trace de toutes ces expériences ?
Ceci est le premier composant de MLflow. Il nous aidera a sauvegarder, requéter tous nos modèles de machine learning que nous avons entrainé. On peut accéder a ce composant soit via une API en ligne de commande ou une interface graphique. Dans cette interface graphique on trouvera les infos sur nos modèles entrainés (date, utilisateurs,métriques , hyperparamètres, nom du modèle, taille des données,...)
En cliquant sur un run, on obtient plus d'info. Notamment pour les modèles de deep learning on peut avoir l'évolution des métriques à travers le temps. Et sur un modèle on peut voir les Artifacts, qui sont des fichiers qui vont permettre de sauvegarder par exemple des images, des modèles, des fichiers de données
C'est une convention pour pouvoir organiser et décrire le code afin de pouvoir le rendre reproductible.
L'idée est de pouvoir partager le code aux autres data scientist au sein de l'équipe, le rendre réutilisable soit via un dossier comportant tous les fichiers ou via un repo git.
Dans le fichier yaml qui represente le projet on trouvera:
- le nom du projet
- l'environnement ( soit une image docker)
- les entry_points
Cette composante nous permet de packager les modèles de machine learning pour pouvoir les utiliser via des services API ou sur les clusters pour faire des prédictions.
C'est un endroit ou on va stocker des modèles pour manager leur cycle de vie.
- Cela permet une gestion centralisée de tous les modèles en production au sein de l'entreprise.
- On a une meilleure gestion du versionning
- On peut faire un staging qui nous permet de connaitre l'étape actuelle du modèle