MLflow : tracker vos tests de machine learning
Suivre vos essais de modèles et mettre en production plus facilement
Hello les loopers ! C’est parti pour une nouvelle édition de vos news sur la data science. On va reprendre des publications régulières. N’hésitez pas à interagir, partager, cela nous motive énormément.
Sans plus attendre, découvrons le sujet focus !
Focus on : MLflow
Lorsque l’on crée un modèle de Machine Learning, il n’est pas toujours facile de suivre proprement tous les tests réalisés. On peut noter dans un tableau les hyperparamètres utilisés ainsi la valeur de la métrique de chaque test. On peut aussi faire plusieurs sections dans un jupyter notebook et afficher à chaque fois la métrique. On peut créer des fichiers de config .txt et sauvegarder les résultats et courbes d’apprentissage dans des dossiers. Cependant, toutes ces méthodes ont beaucoup d’inconvénients. De plus, il faut encore gérer la mise en production du modèle.
MLflow intervient alors pour résoudre ces problèmes. Il s’agit d’un projet open source pour gérer toute la vie d’un projet : l’expérimentation, la reproductibilité, le déploiement ainsi que le stockage des modèles.
Description du package
MLflow est un package open source disponible sur des langages tels que Python et R. Il se compose actuellement de 4 composantes :
MLflow Tracking : API et UI pour sauvegarder les paramètres, la version du code, les métriques ainsi que les fichiers de sortie lors de l’entraînement d’un modèle.
MLflow Projects : sauvegarde le modèle sous forme de package utilisable sur n’importe quelle plateforme.
MLflow Models : permet le déploiement du modèle de ML dans divers environnements
Model Registry : permet la sauvegarde, l’annotation et la gestion de modèles dans un repo centralisé.
Une première utilisation de MLflow Tracking
MLflow Tracking est organisé autour des concepts d’experiments et de runs. L’experiment correspond à un problème de Data Science et est lié à un dashboard. Une run correspond à l’exécution d’un bout de code et enregistre diverses informations comme la version de code, le temps de calcul, la source, les paramètres, les métriques et les artifacts, qui sont des fichiers de sortie.
Ainsi, on peut définir :
Des métriques que l’on souhaite stocker et mesurer
Des paramètres du modèle ou tout autre paramètre que l’on veut sauvegarder
Des tags, le nom de la run, entre autres.
Enfin, un autre élément important est l’artifact : cela correspond à des fichiers que l’on veut attacher à la run.
Ce dashboard permet de retrouver toutes les informations des différents modèles entraînés, les classer par métriques mais également regarder plus en détails chaque modèle avec par exemple les artifacts. De plus, les modèles sont sauvegardés, et il suffit alors de 3 lignes de codes pour recharger un modèle.
MLflow Projects
MLflow Projects est un format qui permet de transformer un projet de data science sous forme de package réutilisable et reproductible, basé sur des conventions. Accompagné d’une API et de commandes pour le terminal pour faire tourner les projets, et les enchaîner au sein d’un workflow.
MLflow Models
MLflow Models est format standard qui permet de transformer un modèle de Machine Learning sous forme de package. Il contient différents fichiers ainsi qu’un fichier MLmodel qui peut définir plusieurs flavors dans lequel le modèle peut être vu.
Flavors est le concept clé qui rend MLflow Models aussi puissant : ce sont des conventions que les outils de développement peuvent utiliser pour comprendre le modèle et l’utiliser. Ainsi, on peut développer aisément des outils qui fonctionnent avec n’importe quelle librairie de machine learning sans avoir besoin d’écrire des outils spécifiques à chaque fois. Par exemple, la librairie mlflow.sklearn permet de reloader un modèle scikit-learn sous forme de Pipeline et pouvoir le réutiliser facilement comme objet Pipeline.
MLflow Model Registry
MLflow model registry est un stockage de modèle centralisé, regroupe des APIs et permet de gérer de manière collaborative le processus complet d’un modèle MLflow. Il permet le versioning des modèles, d’ajouter des tags et des remarques.
Cela permet de suivre tout le processus de mise en production au sein de leur UI.
Conclusion
Ce package offre donc beaucoup d’outils pour faciliter le travail du data scientist. La gestion d’un projet de data science en devient nettement plus simple et plus propre et permet un suivi du modèle mis en production. Nous vous conseillons vivement de tester lors de votre prochain projet ! Et dites nous ce que vous en pensez.
Sources
https://mlflow.org
https://towardsdatascience.com/how-to-use-mlflow-on-aws-to-better-track-machine-learning-experiments-bbcb8acded65
https://docs.databricks.com/applications/mlflow/index.html
Articles et tutos
La guerre des IA génératives continue
De plus en plus d’acteurs développent leur propre IA générative. Meta a sorti LLaMA 2, l’entreprise française Mistral a développé Mixtral et Google Gemini. Mais ce qui nous intéresse aujourd’hui c’est Sora d’OpenAI. Sora est un modèle capable de créer des vidéos réalistes à partir de texte. La qualité des vidéos générées est incroyable. On peut remarquer quelques défauts mais il s’agit d’une prouesse technologique de pouvoir réaliser de telles vidéos photo-réalistes en seulement quelques mots. Qu’en pensez-vous ? Croyez-vous que cet outil est capable de remplacer les vidéastes ?
Source
https://openai.com/sora
Pendulum : la gestion des dates facilitée
Vous savez à quel point il est difficile de gérer les dates en python. Elles ne sont jamais au bon format, difficiles à utiliser, dans le mauvais fuseau horaire. C’est là qu’intervient Pendulum, une librairie python qui facilite la gestion des dates.
Source
https://pendulum.eustace.io
Merci de nous avoir lu et à la prochaine pour d’autres news autour du monde de la Data !