(Lecture 6 min)
Source Image: 123RF (avec modifications)
Cet article fait partie de la série des dernières nouvelles Recherche en IA de TechTalks
Malgré l’intérêt croissant pour l’apprentissage automatique appliqué, les organisations continuent de faire face à d’énormes défis pour intégrer le ML dans des applications réelles. Un pourcentage considérable de projet en apprentissage automatique sont abandonnés avant d’être terminés ou ne tiennent pas leurs promesses.
Le ML appliqué est un domaine récent et en pleine évolution. MLOps, un domaine émergent de bonnes pratiques pour le déploiement et la maintenance de modèles d’apprentissage automatique, a inspiré de nombreux outils et plateformes pour les flots de traitements de donnée utilisé en ML. Toutefois, il reste encore beaucoup à faire.
Une étude récente par des scientifiques de l’Université de Californie à Berkeley, met en lumière les meilleures pratiques pour opérationnaliser l’apprentissage automatique de différentes organisations. Le document, qui est basé sur une enquête menée auprès d’ingénieurs en apprentissage automatique dans divers secteurs, contient des leçons essentielles pour le déploiement et la maintenance réussis des modèles ML, ainsi que des conseils pour le développement de futurs outils MLOps.
Le processus MLOps
Le processus MLOps est un cycle récurrent composé de quatre tâches. Tout d’abord, l’équipe ML doit collecter, nettoyer et stocker les données pour entrainer les modèles. Dans le cas où l’organisation construit un modèles d’apprentissage automatique supervisé, Ils doivent étiqueter les données, soit manuellement, soit à l’aide d’outils semi automatisés.
L’équipe doit ensuite faire de l’ingénierie des caractéristiques de données (featurizing) et de l’expérimentation de modèles. À ce stade, les ingénieurs ML essaient différents algorithmes d’apprentissage automatique et créent des transformations de données adaptées pour ces modèles. Par exemple, les réseaux de neurones profond peuvent nécessiter peu ou pas d’ingénierie de transformation, mais les modèles ML classiques tels que la régression linéaire ou machines à vecteurs de support (SVM) peuvent nécessiter des efforts d’ingénierie supplémentaires, tels que l’utilisation de réduction de dimensions pour sélectionner un ensemble minimal de transformations pertinentes.
L’étape suivante est l’évaluation et le déploiement. Les ingénieurs en apprentissage automatique comparent différents modèles ML en fonction de leurs performances sur un jeu de données mis de côté pour la validation. Dans les pipelines d’apprentissage automatique appliqués, le déploiement est généralement effectué de manière intermédiaire : Le modèle est d’abord déployé auprès d’un sous-ensemble d’utilisateurs et évalué par rapport aux modèles de production actuels. S’il fonctionne bien, il est ensuite étendu à plus d’utilisateurs, testé à nouveau, etc.
Enfin, le processus ML nécessite une surveillance et une réponse constante. L’équipe ML doit surveiller en permanence les performances du modèle sur différents sous-ensembles d’utilisateurs et de données et rechercher des signes de dérive, de dégradation et d’autres problèmes. Dans le même temps, les ingénieurs ont besoin d’outils pour collecter de nouvelles données à partir des interactions des utilisateurs avec le modèle. Une fois que les performances du modèle ML tombent en dessous d’un certain niveau, ils doivent relancer le processus et rassembler leur jeu de données pour entrainer, valider et déployer des versions plus récentes du modèle.
Les “3 Vs” du MLOps
Sur la base de leurs entretiens avec des ingénieurs en apprentissage automatique, les chercheurs de l’UC Berkeley définissent trois critères de succès du processus itératif MLOps : vélocité, validation et versionnage. Ils appellent cela le “3 Vs” du MLOps.
La vélocité est la vitesse à laquelle l’équipe ML peut itérer. Le développement de modèles d’apprentissage automatique est un processus scientifique. Cela nécessite de réaliser régulièrement des observations, des hypothèses, des développements et des tests. Plus vite une équipe ML peut développer, entrainer et tester de nouveaux prototypes de modèles de ML, plus vite elle peut atteindre la solution optimale. “Les ingénieurs ML ont attribué leur productivité aux environnements de développement qui privilégiaient une vitesse d’expérimentation élevée et aux environnements de débogage qui leur permettaient de tester rapidement des hypothèses. », selon l’article.
La validation mesure la vitesse à laquelle les équipes ML peuvent trouver des erreurs dans leurs modèles. Lorsqu’elles utilisent l’apprentissage automatique dans des applications réelles, les organisations souhaitent de préférence trouver et corriger les erreurs le plus tôt possible et avant que les utilisateurs n’y soient exposés.
Enfin, le contrôle de version ou versionnage est la possibilité de conserver plusieurs versions de modèles ML. Parfois, un nouveau modèle ML qui fonctionne bien sur les jeux de données de validation peut être beaucoup moins performant en production. Dans de tels cas, les équipes ML doivent être en mesure de revenir rapidement à l’ancienne version du modèle jusqu’à ce qu’elles puissent déboguer et mettre à jour leur nouveau modèle.
Sur la base de ces principes clés et de leurs entretiens avec des ingénieurs en apprentissage automatique, les auteurs de l’article fournissent des informations pratiques pour la réussite de votre processus MLOps.
Itération rapide
Source Image: 123RF
Par rapport au développement logiciel traditionnel, l’ingénierie de l’apprentissage automatique est beaucoup plus expérimentale. Par conséquent, il est naturel qu’un pourcentage considérable de modèles ML ne soient pas livré en production.
“Ce qui compte, c’est de s’assurer que les idées peuvent être prototypées et validées rapidement—afin que les mauvaises idée puissent être oubliées rapidement », écrivent les auteurs de l’article.
Dans leur étude, ils documentent certaines stratégies intéressantes qui peuvent aider à établir des processus ML à itération rapide. Un exemple est la collaboration entre les équipes ML, ou les scientifiques des données et les experts du domaine travaillent ensemble pour choisir les meilleures hypothèses, fonctionnalités et modèles. Cela permet d’écarter les hypothèses irréalisables au stade de l’idéation, avant même d’allouer des ressources de développement et de calcul.
Dans certains cas, l’itération sur les données fournit des résultats plus rapides que de tester les différents algorithmes d’apprentissage automatique et configurations de modèle.
Certaines équipes configurent leurs flux de tâches d’apprentissage automatique pour “éviter les idées qui n’ont qu’un gain minime dès les premiers étapes afin d’éviter de perdre du temps par la suite” et mettre l’accent sur “les idées présentant les gains de performances les plus importants dès le début du processus.” Pour ce faire, ils mettent en place des techniques dites de bacs à sable (généralement un bloc-notes Jupyter) où ils peuvent rapidement tester leurs idées.
Une autre approche intéressante consiste à minimiser les modifications de code. Pour ce faire, les ingénieurs développent leurs modules d’apprentissage automatique pour changer de modèle en modifiant les fichiers de configuration au lieu du code source. De cette façon, ils peuvent créer plusieurs versions de fichiers de configuration et les faire valider rapidement par le même code.
“Parce que l’expérimentation ML nécessite de nombreuses considérations pour obtenir des résultats corrects—par exemple, initialisation de valeurs pseudo aléatoires, accéder aux mêmes versions de bibliothèques de code et de données—contraindre les ingénieurs uniquement à des modifications de fichiers de configuration peut réduire le nombre de bogues,” écrivent les chercheurs.
Validation dynamique
Les modèles d’apprentissage automatique doivent être constamment mis à jour pour rester en phase avec les changements des données dans leur environnement, les exigences des clients et les évolutions de l’entreprise. Pour atteindre cet objectif, les organisations ont besoin de procédures d’évaluation capables de s’adapter à l’évolution du monde, d’éviter des échecs répétés et d’empêcher de mauvais modèles de ML d’être livré en production.
L’un des points importants à retenir des entretiens avec des ingénieurs en apprentissage automatique est de mettre régulièrement à jour les ensembles de données de validation. Il s’agit d’un changement par rapport à la pratique habituelle dans le milieu universitaire, qui consiste à tester les modèles par rapport à des ensembles de données de validation figés. “Les jeux de validation dynamique ont deux objectifs,” écrivent les chercheurs. « (1) l’objectif évident de s’assurer que l’ensemble de validation reflète autant que possible les données réelles, compte tenu des nouvelles connaissances sur le problème et des changements dans la distribution des données agrégées, et (2) l’objectif plus subtil de traiter les changements localisés que les sous-populations peuvent subir (p. ex., faible précision pour une étiquette spécifique).
Une stratégie intéressante consiste à utiliser un “modèle fantôme,” où un nouveau modèle d’apprentissage automatique est intégré dans le système de production, mais ses prédictions ne sont pas présentées aux utilisateurs. Cela permet aux ingénieurs ML de valider dynamiquement leurs modèles par rapport à des données actives sans causer de risques pour l’entreprise. Notez que les applications avec une boucle de rétroaction de l’utilisateur (par exemple, un système de recommandations) n’est pas adapté à ce type de déploiement « fantôme ».
Enfin, une partie importante d’une validation MLOps réussie consiste à mettre à jour les métriques de validation adaptés aux objectifs commerciaux. À mesure que les produits évoluent, leurs indicateurs de performance clés et leurs indicateurs de croissance changent. Par exemple, à un moment donné, l’objectif de l’entreprise pourrait être d’augmenter le nombre d’utilisateurs actifs, quels que soient les revenus qu’ils génèrent. À un stade ultérieur, la même entreprise pourrait vouloir augmenter la part des utilisateurs payants. Les modèles ML déployés doivent être évalués en fonction de leur contribution à ces indicateurs clés. Cela nécessite une coordination étroite entre les équipes ML, produit et métier.
Bonne ingénierie logicielle
Un MLOps robuste nécessite une ingénierie logicielle et des pratiques DevOps solides, selon l’expérience des ingénieurs ML interrogés par l’équipe UC Berkeley.
Par exemple, l’entrainement récurrent et fréquent des modèles ML aide les équipes à maintenir leurs modèles ML à jour et à éviter la dérive. Cela oblige les équipes d’ingénierie logicielle et d’ingénierie des données à mettre en place les bons processus pour collecter et étiqueter en permanence de nouvelles données. Un complément à cette pratique consiste à disposer d’un système de gestion des versions robuste qui suivait les différentes versions des modèles ML et leurs mesures de performance. Cela permet aux ingénieurs de mettre en place des processus automatisés ou semi-automatisés pour revenir aux anciennes versions lorsque les performances du modèle de production tombent en dessous d’un certain seuil.
Dans certaines applications, les ingénieurs logiciels ont délibérément ajouté une couche d’heuristiques classiques basées sur des règles pour stabiliser le comportement ou les modèles ML. Cela peut être important dans de nombreuses applications où les modèles d’apprentissage automatique peuvent apprendre et se comportent sur la base de corrélations erronées dans les caractéristiques de leurs vecteurs d’entrée. “Cette combinaison de ML moderne pilotée par modèle et d’IA basée sur des règles à l’ancienne indique un besoin de gestion des filtres (et des versions de filtres) en plus de la gestion des modèles appris,” écrivent les chercheurs.
Enfin, un thème commun aux projets d’apprentissage automatique réussis est la préférence pour la simplicité. Alors que la recherche universitaire se concentre souvent à repousser les limites de l’état de l’art, en apprentissage automatique appliqué, l’utilisation du modèle le plus simple possible est une stratégie gagnante. Les modèles plus simples coûtent moins cher à entraîner et à exécuter, et ils sont souvent plus interprétables. Dans un cas intéressant, les ingénieurs ML ont rapporté qu’ils avaient développé une approche hybride, dans laquelle ils utilisaient un réseau neuronal pour créer une couche d’encodage des caractéristiques qui était ensuite utilisée comme entrée pour plusieurs modèles de classificateur simples.
Créer de meilleurs outils MLOps (bonnes pratiques par défaut)
Le document est une étude intéressante sur les défis et les leçons de la mise en œuvre de l’apprentissage automatique dans des applications réelles. Les chercheurs concluent que les pratiques MLOps réussies sont centrées sur « une vitesse élevée, la validation le plus tôt possible et la maintenance de plusieurs versions de modèles pour un temps d’arrêt minimal de la production ».
Par conséquent, les suites logicielles MLOps doivent être construites dans le but de traiter les 3 Vs.
« Les constructeurs d’outils MLOps voudront peut-être donner la priorité à améliorer d’un facteur 10x tout ce qui favorise la vélocité, la validation précoce ou la gestion des versions dans leurs produits », écrivent les chercheurs.
Remerciements
Cet article "Les bonnes pratiques pour réussir MLOps" est la traduction française la plus fidèle possible de "The common traits of successful MLOps" avec l'aimable permission de son auteur Ben Dickson
Comments