6/10/2023

Penser “one-shot” pour l’industrialisation du Machine Learning

Partager l'article

Réussir à mettre en production un modèle de Machine Learning, et toute la chaîne de traitement qu’il y a derrière, est déjà un accomplissement en soi. Mais ce n’est en réalité que le début de l’histoire.

Rentre alors en considération la gestion de l’ensemble du cycle de vie du modèle, fait de ré-entraînements et de dégradations de performances dans le temps. A cela s’ajoute la capacité de passer d’un seul modèle en production à plusieurs dizaines voire centaines. S’il peut sembler possible de suivre dans le temps un ou quelques modèles mis en production, devoir gérer toute une flotte de modèles sans aucune automatisation pourrait vite devenir une mission très dangereuse, voire impossible.

Gagner en impact dans l’utilisation de l’Intelligence Artificielle en entreprise passe donc par une professionnalisation dans la gestion de la vie des modèles en production.

C’est dans ce cadre que le MLOps (Machine Learning Operations) est rapidement devenu un concept central pour la bonne gestion de la mise en production et le passage à l’échelle de projets à base de Machine Learning.

La question à vous poser : Avez-vous mis en place une gestion de vos modèles de Machine Learning en production ?

Les grands principes du DevOps peuvent classiquement se résumer via l’acronyme CALMS :

  • Culture : Les pratiques DevOps impliquent un changement culturel et organisationnel, notamment au travers de la collaboration, la communication et l’agilité ;
  • Automatisation : Automatiser tout ce qui doit l’être (notamment via de la Continuous Integration & Continuous Delivery) ;
  • Lean : Rationalisation des processus, afin d’optimiser et fluidifier l’ensemble de la chaîne de livraison ;
  • Measurement : Afin de suivre un principe d’amélioration continue, tout doit être mesurable afin de prendre des décisions, et pivoter si besoin ;
  • Sharing : Aligner toutes les parties prenantes sur les mêmes objectifs afin de pousser dans la même direction.

Comme on peut le constater, la méthodologie DevOps permet sur de nombreux aspects d’aider à lever les barrières à l’industrialisation et au déploiement à l’échelle de projets de Machine Learning.

Cependant, l’ensemble des principes ne sont pas immédiatement transposables aux équipes Data Science, car il existe quelques différences fondamentales entre le déploiement de code et le déploiement de modèles de Machine Learning en production.

La première d’entre elles est que lorsqu’il s’agit de Machine Learning, le code n’est pas la seule composante qui change et qui doit être versionné : les données, les hyperparamètres, les métadonnées, ainsi que le modèle en lui-même doivent l’être aussi afin d’assurer une reproductibilité des résultats.

La seconde différence d’application concerne le monitoring. En effet, si un logiciel n’est pas censé se dégrader dans le temps (bien que cela puisse être sujet à débat), ce sera très probablement le cas concernant les performances d’un modèle de Machine Learning. Un modèle déployé en production a été entraîné sur un set spécifique de données. Ces données continuent d’évoluer dans le temps (reflet des comportements des utilisateurs qui peuvent changer), ce qui résulte en une dégradation des performances du modèle qui continuera d’effectuer des prédictions basées sur les anciens patterns qu’il a appris. C’est ce que l’on appelle le data drift et le prediction drift.

C’est donc là que le terme MLOps entre en jeu et prend toute son importance. Basé sur tout ce que l’on vient de se dire, on peut alors définir le MLOps comme le processus d’automatisation du Machine Learning en utilisant les méthodologies DevOps.

L’objectif du MLOps est donc de faire en sorte que le déploiement et la gestion en production des modèles de Machine Learning se fassent de la manière la plus simple, efficace, fiable et automatisée possible.

Via le MLOps, ce sont en réalité deux murs qu’il faut savoir briser : celui entre Data Scientists et Développeurs ET celui entre Développeurs et équipes Ops. La tâche s’avère donc encore plus ardue, car il devient nécessaire de faire communiquer beaucoup plus d’interlocuteurs aux backgrounds différents.

Nous pouvons référencer 5 piliers fondamentaux associés au MLOps : reproductibilité, déploiement, monitoring, gestion du cycle de vie et gouvernance

Pilier #1 : Développement de modèles et reproductibilité

Les Data Scientists doivent être capables de reproduire leurs expérimentations, que ce soit pour itérer dessus, ou bien pour qu’un environnement de production soit capable de les refaire automatiquement. Tout ceci passe donc par un versionning adapté, qui va au-delà du versionning du code : versionning de la donnée d’entraînement, des hyperparamètres du modèle et autres métadonnées.

Pilier #2 : Mise en production et déploiement de modèles

Être capable de reproduire les conditions d’entraînement d’un modèle est une chose, mais être capable de créer les bonnes conditions de son déploiement et utilisation en production en est une autre. En effet, beaucoup de questions sont à considérer et à débattre sur la bonne manière d’utiliser un modèle en production, entre autres :

  • Quelles sont les restrictions nécessaires afin de s’assurer qu’il soit utilisé à bon escient ?
  • Sera-t-il utilisé en batch ou en streaming ?
  • Faut-il l’envisager sous forme de Model-As-A-Service (via une API notamment) ou bien directement incorporé dans un produit ?
  • Faut-il le convertir dans un format interopérable entre plusieurs environnements ?

Autant de questions qui nécessitent une vraie entente et collaboration en amont entre les différents acteurs.

Pilier #3 : Monitoring

Le monitoring et l’observabilité ne sont pas spécifiques au MLOps, et toutes les métriques habituellement monitorées dans le développement logiciel classique (entendre: sans ML) doivent aussi l’être dans un contexte MLOps.

Mais d’autres informations doivent aussi être monitorées en continu. La performance du modèle est bien entendu un élément essentiel à mesurer afin de vérifier toute éventuelle détérioration des performances visées et agir dessus. Mais ce n’est pas la seule spécificité. Il est en effet primordial de monitorer chaque étape de transformation des données, à commencer par les données d’entrées elles-même, afin d’être alerté de toutes déviances dans les distributions de données par rapport aux conditions d’entraînement du modèle. Ces déviances peuvent être dues à des erreurs (mauvaises conversions d’unités par exemple), ou bien tout simplement être le reflet de changement de comportements des utilisateurs.

Pilier #4 : Gestion du cycle de vie des modèles

Déployer un modèle en production est une belle étape de franchie, mais ce n’est certainement pas la dernière. Le cycle de vie d’un modèle est fortement itératif. Les Data Scientists vont notamment vouloir déployer de nouvelles versions de ce modèle régulièrement, soit parce qu’ils y ont apporté des modifications qui pourraient améliorer ses performances, soit parce qu’il a été nécessaire de ré-entraîner ce même modèle sur des données plus récentes.

Ce dernier point peut d’ailleurs être géré automatiquement, mais doit être soumis à une forte rigueur. On ne peut en effet pas simplement remplacer un ancien modèle par un plus récent sans prendre quelques précautions. Des pratiques de blue-green deployment ou de canary deployment pourront alors aider. Ré-entraîner et déployer automatiquement une nouvelle version d’un modèle de Machine learning doit donc pouvoir se faire avec le moins d’effort possible.

Pilier #5 : Gouvernance

La gouvernance autour de l’IA est souvent un aspect négligé, mais est pourtant un élément fondamental pour une entreprise souhaitant gérer du Machine Learning à l’échelle, et a un impact fort sur la manière dont la mise en production des modèles sera dimensionnée et gérée.

On l’aura compris, un projet incorporant du Machine Learning est un projet impliquant énormément de rôles différents, bien au-delà du Data Scientist. Et il est nécessaire de s’organiser et d’avoir une réelle gouvernance d’entreprise afin de gérer les aspects business, légaux et éthiques autour de la gestion de l’Intelligence Artificielle. La gestion des risques et des responsabilités en cas de problème causé par un produit incorporant de l’IA doit être pensée en amont avant que l’un d’eux n’arrive afin de ne pas être dans la gestion de l’urgence. Comment gérer un rollback en cas de défaillance d’un modèle ? Que faire si l’on se rend compte a posteriori que certains résultats d’un modèle sont discriminants envers une population ? Quels sont les risques financiers associés à ce projet en cas de mauvaises prédictions ? Autant de questions qu’il est important de se poser au plus tôt.

Notre recommendation : Pour pérenniser la Data Science, appréhender les principes du MLOps, l’application des méthodologies DevOps au Machine Learning.

Experts métier, Data Scientists, Data Engineers, Développeurs, Architectes, équipes d’Opérations, Product Managers : tout le monde est concerné par une démarche MLOps.

L’un des piliers du DevOps est de garantir une meilleure collaboration entre les différents acteurs dans le développement logiciel et il en est de même pour le MLOps, peut-être avec encore plus d’interlocuteurs aux intérêts et backgrounds différents.

Le MLOps est donc avant tout un ensemble de comportements et une réelle stratégie d’entreprise afin de gérer de manière fiable et sécurisée les projets de Machine Learning à l’échelle.

Retrouvez l’ensemble des écueils limitant l’impact de la Data sur les produits et organisations dans notre eBook dédié.

Les prochains événements Hymaïa

LUN 25 NOV.
en savoir plus
Fondation Biermans-Lapôtre, Paris

Forward Data Conference

Our mission is to build a conference that serves as a dynamic knowledge-sharing hub, where every participant can find their place and thrive.

Appuyez-vous sur les bonnes compétences Data

Nous vous apporterons une réponse sur mesure en vous délivrant notre savoir technologique et méthodologique.