L’industrialisation du processus de Machine Learning

Les Machine Learning Operations sont un ensemble de pratiques pour permettre à toutes entreprises d’exécuter leur stratégie IA et Machine Learning avec succès.

MLOps est inspiré de DevOps, qui est un ensemble de pratiques pour écrire, déployer et exécuter de manière efficace les applications d’entreprise. Comme DevOps, ML Ops va combiner développement logiciel et les opérations IT, cependant les workflows sont centrés sur les processus spécifiques du machine learning.

Grâce au MLOps les cycles de vie de développement et d’opération de systèmes complexes de machine learning sont réduits et automatisés. Il devient possible d’entraîner, d’évaluer et de livrer en continu des modèles de machine learning de grande qualité. MLOps est complémentaire d’une approche Agile du Machine Learning.

Les principales étapes MLOps

Extraction des données

Les données sont sélectionnées et intégrées à partir de différentes sources. Elles peuvent par exemple provenir d’un datalake, d’un datawarehouse, d’une base de données relationnelles, de fichiers plats CSV, de systèmes de messagerie distribués,…

Analyse des données

La compréhension du schéma et des caractéristiques des données est cruciale pour comprendre quelles données seront utilisées dans la création du modèle de machine learning. Des techniques comme l’analyse exploratoire des données (EDA) sont utilisées pour anticiper les besoins de préparation des données et d’ingénierie des caractéristiques (feature engineering) qui seront nécessaires.

Préparation des données

La préparation des données comprend des tâches comme l’ingénierie des caractéristiques, le nettoyage et la transformation des données (data wrangling). Ces tâches garantissent que les données sont prêtes pour la suite du processus de machine learning comprenant l’entraînement, la validation et le test des modèles.

Dans le cas du deep learning, ou des algorithmes de machine learning travaillant sur de larges ensembles de données, les ensembles données seront souvent scindés en trois jeux de données: d’entraînement, de validation et de test.

Entraînement des modèles

Différents algorithmes de machine learning pourront être implémentés pour pouvoir être comparés. Des techniques d’hyperparameter tuning et d’optimisation black-box sont mises en œuvre pour optimiser les paramètres des algorithmes et produire l’algorithme le plus performant.

Evaluation et validation des modèles

La qualité des modèles est évaluée à travers un ensemble de métriques standardisés (Precision, Recall, ROC AUC, F1 Score, …). La performance des modèles en différentes situations, l’importance des différentes features des données, le comportement des modèles sur des sous-ensembles de données, l’équité et le biais des modèles de machine learning pourront également être évalués.

Les performances des modèles seront également comparées à une référence afin de confirmer que le modèle est adéquat pour être déployé.

Livraison des modèles

La mise en production du modèle dépendra de l’environnement cible dans lequel il sera employé pour fournir les prédictions. Le modèle pourra être déployé sous la forme d’une API REST pour des prédictions online, embarqué au plus proche de l’utilisateur dans un mobile ou un terminal de proximité pour des prédictions locales, ou enfin intégré dans un système de prédiction de type batch.

Supervision des modèles

La performance des modèles est supervisée, idéalement en continu. Une nouvelle itération du processus de machine learning pourra être déclenchée en fonction des résultats de la supervision.

Les niveaux de maturité du processus ML Ops

Niveau de maturité 0

Le processus pour construire, entraîner et déployer les modèles est entièrement manuel. Chaque transition d’une étape à une autre est gérée manuellement et il y a une déconnection entre les data scientists qui construisent et entraînent les modèles et les ingénieurs qui les déploient sur les infrastructures. Cette approche a de nombreux impacts: faible fréquence de livraison et d’intégration de nouvelles versions des modèles, moindre suivi des performances des modèles, risque d’écarts entre les modèles entraînés et ceux mis en production (training-serving skew). Il devient difficile d’adapter les modèles au changement des données et de l’environnement.

Niveau de maturité 1

Le processus d’entraînement est automatisé, ce qui permet de livrer en continu et de manière récurrente les modèles entraînés aux services de déploiement. Il devient plus facile d’expérimenter et les modèles peuvent être mis à jour fréquemment, en phase avec des données fraîches. Le code des composants devient modularisé et l’environnement d’exécution est découplé du code. Il est maintenant possible de reproduire les mêmes résultats entre différents environnements: développement, test, production.

Niveau de maturité 2

Un système CI/CD robuste et automatisé est mis en œuvre. Les nouvelles idées d’architecture, de feature engineering, d’hyperparamètres peuvent maintenant être automatiquement construites, testées et déployées dans des environnements cibles. L’automatisation et la supervision sont implémentées à toutes les étapes du pipeline de machine learning, y compris aux étapes d’intégration, de test, et de déploiement.

Liens Intéressants