cover mlops

Qu’est-ce que le MLOps ?

Le récent engouement autour de la data science, et du Big Data, a permis le développement d’un écosystème extrêmement riche et dynamique autour de l’analyse des données collectées. Des outils open source, et toujours plus faciles à utiliser, permettent ainsi à de nombreuses organisations de se lancer dans l’analyse de leurs données. Cependant, la multiplication des projets data, et des algorithmes, a aussi mis en lumière de nouvelles problématiques spécifiques à ce type de projet, que tout data scientist doit résoudre. Des projets pour lesquels les outils et les méthodes ne sont pas encore très matures. En l’occurrence, parmi ces problématiques, on retrouve, pour un modèle de machine learning : la mise en production, le contrôle continu, l’intégration, les procédures de tests… Pour répondre à ces problématiques, des nouvelles méthodes, regroupées sous le nom de MLOps, ont vu le jour.

Le Concept du MLOps

En entreprise, il est encore courant d’appliquer à un projet data les mêmes méthodes de travail et de collaboration que celles d’un projet d’application informatique classique. C’est ce qu’on appelle couramment le DevOps, contraction des mots anglais development (Dev) et operations (Ops). Le DevOps vise à donner un cadre de travail avec différentes étapes clés lors du développement, du déploiement et du monitoring d’une application.

Cependant, de plus en plus d’experts pointent du doigt les lacunes de cette approche lorsque qu’on l’applique à un projet data. C’est ainsi que l’on a récemment vu apparaître les termes DataOps et MLOps, contraction cette fois de Machine Learning et Operations. Le MLOps se veut être une adaptation du DevOps aux problématiques spécifiques du Machine Learning.

Le développement de ces méthodes MLOps répond aux besoins croissants des entreprises pour mener des projets data, en adoptant des méthodes efficaces pour le développement, le déploiement et le contrôle d’un système de Machine Learning.

Ajouter une couche de complexité à laquelle le DevOps n’est pas adapté

Considérons un système de machine learning (comme un moteur de recommandations par exemple) dans son ensemble : cela inclut tous les éléments nécessaires au bon fonctionnement du système. Le modèle mathématique utilisé dans ce système est un élément clé. Il est l’un des deux principaux éléments créateurs de valeurs (avec les données elles-mêmes).

Cela justifie, par ailleurs, qu’une équipe de data scientists s’y penche pendant plusieurs semaines, mois ou même années. Par conséquent, en phase de prototypage, cette partie est au centre des enjeux (car, bien souvent, la marge de manœuvre sur les données est plus faible).

Cependant, la mise en production de ce modèle demande d’intégrer quantité d’autres éléments que l’on retrouve en DevOps, mais qu’il faut adapter à un système de machine learning. Ces éléments sont ceux nécessaires au bon fonctionnement du système, parmi lesquels on retrouve :

  •   Une infrastructure (serveur + base de données),
  •   Une application dédiée pour faire fonctionner le modèle (sous forme d’API assez souvent),
  •   Des pipelines de données automatisés,
  •   Des mécanismes de supervision et d’alertes,
  •   Etc…

Ces éléments sont généralement présents en DevOps. Cependant il y a plusieurs raisons pour expliquer qu’un simple copier-coller DevOps vers MLOps ne suffit pas.

Tout d’abord, il faut impliquer plusieurs équipes. Le premier défi est donc humain et managérial : réussir à faire collaborer des équipes n’étant pas forcément habituées à travailler ensemble, d’où la nécessité de développer des méthodes de travail dédiées.

Ensuite et surtout, la supervision d’un système de machine learning est particulièrement complexe. Parmi les éléments à contrôler il y a :

  •       L’état du système : ce point est relativement proche du DevOps classique, en surveillant le niveau de charge et de disponibilité du système.
  •       Les données entrantes : si vous réutilisez en direct (online) les données que vous récupérez à chaque jour, il est essentiel de s’assurer de leur cohérence dans le temps. En effet, il est courant qu’une mise à jour d’un élément du système influence la manière dont une donnée est récupérée, ou bien qu’une donnée utilisée dans votre modèle évolue dans le temps, comme c’est le cas des données démographiques par exemple. Dans ce cas, votre système peut commencer à dysfonctionner.
  •       Les prédictions réalisées : si vos données changent, alors automatiquement vos prédictions changeront et les résultats peuvent devenir très différents de ceux obtenus lors des tests. De plus, il est possible que les prédictions influencent les données récupérées, comme c’est le cas pour un système de recommandations qui se base sur les comportements des utilisateurs tout en influençant ces mêmes comportements. Dans ce cas, le monitoring des prédictions est essentiel pour éviter une réaction en chaîne.

Les outils pour répondre à ces besoins spécifiques

Des outils sont développés spécialement pour répondre aux besoins du MLOps. Encore une fois, le MLOps est récent. Par conséquent il n’existe pas encore de standard bien défini, et les outils changent vite.

Il y a par exemple des outils comme Metaflow, développé en interne chez Netflix, puis ouvert en open source depuis 2019. Le but est de donner aux data scientists un cadre de travail fixé pour faciliter l’intégration de leur travail, sans pour autant limiter leurs capacités à créer des modèles complexes. La lecture de cet article (en anglais) peut vous donner quelques idées d’outils à tester si vous faites actuellement face à des problèmes de MLOps.

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Leave a Comment

Read our latest blog posts