MLOps (VT)

From air
Revision as of 15:21, 6 January 2025 by Donsez (talk | contribs) (Created page with "== MLflow : DevOps for Machine Learning Projects == == Auteurs == * Asmae El Kanbi, Polytech Grenoble, INFO 5A, 2024-2025 * Laure-Anne Bluteau, Polytech Grenoble, INFO 5A, 2024-2025 == Résumé == MLflow est une plateforme open source qui facilite la gestion du cycle de vie des projets de machine learning. Elle fournit des outils pour le suivi des expériences, le déploiement des modèles, et la gestion des environnements de travail, ce qui permet aux équipes de dat...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

MLflow : DevOps for Machine Learning Projects

Auteurs

  • Asmae El Kanbi, Polytech Grenoble, INFO 5A, 2024-2025
  • Laure-Anne Bluteau, Polytech Grenoble, INFO 5A, 2024-2025

Résumé

MLflow est une plateforme open source qui facilite la gestion du cycle de vie des projets de machine learning. Elle fournit des outils pour le suivi des expériences, le déploiement des modèles, et la gestion des environnements de travail, ce qui permet aux équipes de data science de collaborer plus efficacement.

Mots-clés

Voici des définitions plus concises pour chaque mot-clé :

Mots-clés

  • **DevOps** : Pratiques visant à automatiser et à améliorer la collaboration entre les équipes de développement et d'opérations pour accélérer la mise en production des applications.
  • **ML (Machine Learning)** : Méthode permettant à une machine d'apprendre à partir de données pour faire des prédictions sans programmation explicite.
  • **Monitoring** : Suivi en temps réel des performances et du comportement des modèles ou systèmes en production.
  • **Cycle de vie** : Ensemble des étapes traversées par un modèle de machine learning, du développement à la mise en production.
  • **Déploiement** : Processus de mise en production d'un modèle pour qu'il effectue des prédictions dans un environnement réel.
  • **Versioning de modèles** : Gestion des différentes versions d'un modèle pour suivre son évolution et faciliter son déploiement.

Abstract

MLflow is an open-source platform that simplifies the management of the lifecycle of machine learning projects. It provides tools for experiment tracking, model deployment, and environment management, enabling data science teams to collaborate more effectively.

Keywords

Here is the translation:

  • **DevOps**: Practices aimed at automating and improving collaboration between development and operations teams to accelerate the deployment of applications.
  • **ML (Machine Learning)**: A method that allows a machine to learn from data to make predictions without explicit programming.
  • **Monitoring**: Real-time tracking of the performance and behavior of models or systems in production.
  • **Lifecycle**: The series of stages a machine learning model goes through, from development to production deployment.
  • **Deployment**: The process of putting a model into production so it can make predictions in a real-world environment.
  • **Model Versioning**: Managing different versions of a model to track its evolution and facilitate its deployment.

Synthèse

1. Introduction

MLflow est une plateforme open source développée par Databricks en 2018. Elle est dédiée à la gestion du cycle de vie des projets de machine learning, depuis le développement initial jusqu’à la production. Conçu pour être agnostique, MLflow peut être intégré à n’importe quelle librairie de machine learning (comme TensorFlow ou Scikit-learn) et utilisé avec des langages variés tels que Python, R, Java, ou C++.

2. Public Cible

MLflow est principalement utilisé par les data scientists et les MLOps engineers pour simplifier et standardiser le travail collaboratif autour des projets de machine learning.

3. Pourquoi MLflow ?

Avant MLflow, le déploiement de modèles ML en production était compliqué en raison des divers formats, outils et processus utilisés. Les principaux défis rencontrés incluaient :

  • La difficulté à versionner les modèles et à les gérer par environnement.
  • Le manque de standardisation des processus.
  • Des cycles de livraison longs et inefficaces.

Les contributions majeures de MLflow incluent l'historisation des expériences ML pour conserver un historique complet, le versioning et le stockage des modèles, ainsi que le suivi des métriques et des paramètres pour faciliter la comparaison et l'optimisation des modèles.

4. Composantes principales de MLflow

MLflow se compose de quatre modules principaux :

  • **MLflow Tracking** : Permet de suivre les expériences (paramètres, résultats, métriques) pour analyser et comparer les performances des modèles.
  • **MLflow Projects** : Standardise et encapsule le code, les librairies et les données nécessaires pour exécuter un projet dans un format reproductible.
  • **MLflow Models** : Gère et facilite le déploiement des modèles sur diverses plateformes, comme des serveurs REST.
  • **MLflow Model Registry** : Centralise la gestion des versions des modèles avec des fonctionnalités de tagging :
 * Staging : Modèle en pré-production.  
 * Production : Modèle en environnement de production.  
 * Archived : Modèle obsolète archivé.

5. Cas d’utilisation de MLflow

  • **Environnement local** : Idéal pour travailler seul sur l’optimisation d’un modèle en historisant toutes les expérimentations grâce au composant Tracking.
  • **Serveur partagé** : Simplifie le travail collaboratif en centralisant les expérimentations et les résultats pour chaque utilisateur.

6. Adoption et Impact de MLflow

Depuis sa sortie en juin 2018, MLflow a connu une adoption rapide :

  • En un an : Plus de 140 contributeurs et 800 000 téléchargements mensuels.
  • Avril 2019 : Microsoft a intégré MLflow dans ses services cloud avec Azure Databricks.
  • **Grandes entreprises** : Des organisations comme la Société Générale utilisent MLflow pour industrialiser leurs processus de machine learning.

Les facteurs de succès sont la conception modulaire et agnostique, la réponse aux besoins critiques des équipes de data science, comme la standardisation et la reproductibilité, ainsi que le soutien de grands acteurs technologiques.

7. Avantages de MLflow

  • **Flexibilité** : Compatible avec de nombreux frameworks et langages.
  • **Standardisation** : Simplifie le suivi des expériences et le versioning des modèles.
  • **Collaboratif** : Permet aux équipes de travailler efficacement sur des projets complexes.

8. Limites de MLflow

Comparé à d'autres plateformes MLOps, MLflow se concentre davantage sur le tracking et le versioning des modèles, tout en étant moins performant sur les aspects liés au déploiement et à l’inférence à grande échelle.

9. Conclusion

MLflow est rapidement devenu un standard dans la gestion des projets ML grâce à sa modularité, son agilité et son adoption par des entreprises de premier plan. Bien que des limitations existent, notamment sur le déploiement, son rôle dans la standardisation et la reproductibilité des processus ML en fait un outil incontournable pour les data scientists et les ingénieurs MLOps.

Références commentées

<ref>https://mlflow.org/docs/latest/index.html</ref>