Qu’est-ce que le MLOps ?

Comment déployer en production des modèles de Machine Learning de façon fiable, efficace et stable dans le temps ? C’est à ces problématiques que répond le MLOPs.
mlops definition - Waiter serving up ML
Sommaire

MLOps signifie Machine Learning Operations, que l’on peut traduire en français par “exploitation de l’apprentissage automatique”. Ce terme désigne l’ensemble des pratiques visant à déployer les modèles de machine learning et deep learning dans des environnements de production, afin de servir les modèles aux utilisateurs finaux à l’issue d’une phase d’expérimentation.

Origine du MLOps

Le MLOps combine trois disciplines : 

  • le Data Engineering : la construction d’un environnement dans lequel la donnée est utilisable
  • le Machine Learning : l’apprentissage assisté par ordinateur des informations contenues dans les données
  • le DevOps : automatisation de l’intégration et du déploiement des modifications d’un logiciel

Tandis que Machine Learning et Data Engineering sont toujours naturellement réunis, le MLOps est né par association des deux précédentes disciplines au mouvement DevOps. Dans le contexte du DevOps, on parle souvent de pipeline d’automatisation CI/CD, pour :

  • Continuous Integration (intégration continue) : vérification que chaque nouvelle version du logiciel conserve les fonctionnalités déjà intégrées. 
  • Continuous Delivery/Deployment (livraison continue) : automatisation des mises à jour du logiciel

Lors d’un projet de Machine Learning, il ne suffit plus d’intégrer et de déployer les modifications d’un logiciel pour répondre aux besoins des utilisateurs. Les données et leur modélisation sont au centre des projets de machine learning. Les données sont cependant en constante évolution et il faut par conséquent que le modèle s’adapte à ces changements. 

Pour cette raison le MLOps intègre, en plus de la pipeline CI/CD, une pipeline CT/CM :

  • CT pour Continuous Training (ou entraînement continu) qui permet au modèle de s’adapter aux données et à leurs modifications.
  • CM pour Continuous Monitoring (ou surveillance continue) qui permet de vérifier et alerter lors de l’évolution des données et des performances du modèle.

La modélisation est servie aux utilisateurs au travers d’un logiciel, le plus souvent via une des deux solutions suivantes :

  • une API (pour Interface de Programmation Applicative) qui met à disposition des fonctionnalités via une interface (par exemple web) normalisée. Un exemple d’API est Google Traduction : la fonctionnalité mise à disposition est la traduction de phrases, la traduction est faite sur les serveurs Google avec leur propre algorithme.
  • un modèle embarqué, qui est utilisé lorsque le modèle est déployé sur les appareils individuels. Un tel modèle est souvent utilisé pour des jeux mobiles : pour pouvoir jouer “hors ligne”, les IA du jeu sont directement déployées dans l’application et chaque décision est prise grâce aux calculs faits sur le téléphone.

Par conséquent, les contraintes logicielles (débit, latence et coût) présentes dans le DevOps s’appliquent aussi dans le cadre du MLOps.

Le MLOps dans un projet de Machine Learning

Intéressons-nous à l’intégration du MLOps dans un projet de Machine Learning. Ces projets peuvent être décomposés en 4 phases : Cadrage, Données, Modélisation et Déploiement.

mlops definition - Phases ML project

Figure 1. Différentes phases d’un projet de Machine Learning.

La réalisation d’un projet de machine learning est un processus itératif. Par exemple, on peut se rendre compte lors de la modélisation que le modèle obtenu n’est pas performant sur une catégorie d’âge. Il sera alors possible de revenir à la phase de collecte des données pour augmenter le nombre d’individus dans cette catégorie d’âge et ainsi aider le modèle à apprendre leur comportement.

Naturellement, on pense que le MLOps n’intervient qu’à la phase de déploiement, au moment où le modèle est mis à disposition des utilisateurs. Sauf que la mise en production d’un modèle ne s’arrête pas à son déploiement : le MLOps a des répercussions dans les autres phases aussi :

  • Données : Lors de l’utilisation du modèle, les données évoluent. Par exemple, après avoir mis à jour les sources de données pour intégrer des variables plus prédictives, il peut y avoirr de nouvelles valeurs manquantes à corriger à cause d’une modification du processus d’acquisition des données, …
  • Modélisation : Lors de l’utilisation du modèle, les utilisateurs peuvent faire des retours sur les prédictions faites et permettre de réentraîner un modèle pour corriger les erreurs. Par exemple, en déployant un modèle de détection d’incendie de forêt, les pompiers peuvent faire un retour au modèle pour qu’il apprenne à détecter des incendies qu’il n’avait pas repéré (ou trop tardivement).

Le MLOps s’intègre donc dans les différentes phases du projet puisqu’à l’issue du déploiement on continue généralement à itérer sur la qualité des données et du modèle de façon plus ou moins automatisée.

Pour automatiser ces itérations, il faut adopter un point de vue MLOps lors de :

  • La définition des données : définir les schémas et scénarios pour détecter les évolutions, par exemple : garantir que le nombre de valeurs manquantes ne dépasse pas plus de 5% des individus.
  • La phase de modélisation : définir les métriques à monitorer, par exemple : vérifier que la performance sur la population des +50 ans reste supérieure à 85%, …

Le MLOps est donc une approche des projets de Machine Learning qui dépasse le cadre du déploiement des modèles. Il permet de considérer les différents aspects du projet susceptibles d’avoir un impact sur la qualité des prédictions présentées à l’utilisateur : les performances du logiciel, la qualité des données et la qualité du modèle.

Crédits Image – Butters Draws

Sommaire

Voir aussi

Voir aussi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *