Passer la navigation

Série de billets de blog sur MLOps (partie 1) : L’art de tester les systèmes d’apprentissage automatique à l’aide de MLOps

Publié le 14 juin, 2022

Product Marketing Manager, Data and AI Marketing

Les tests sont un exercice important dans le cycle de vie du développement d’un système d'apprentissage automatique pour garantir des opérations de haute qualité. Nous utilisons des tests pour confirmer que quelque chose fonctionne comme il se doit. Une fois les tests créés, nous pouvons les exécuter automatiquement chaque fois que nous apportons une modification à notre système, et continuer à les améliorer au fil du temps. C’est une bonne pratique de récompenser la mise en œuvre des tests et d’identifier les sources d’erreurs le plus tôt possible dans le cycle de développement pour éviter l’augmentation des dépenses en aval et la perte de temps.

Dans ce billet de blog, nous examinerons le test des systèmes Machine Learning à partir d’une perspective Machine Learning Operations (MLOps) et nous étudierons les bonnes pratiques et une infrastructure de test que vous pouvez utiliser pour créer des systèmes Machine Learning robustes, évolutifs et sécurisés. Avant de plonger dans les tests, voyons ce qu’est MLOps et sa valeur pour le développement de systèmes Machine learning.

 

Modèle graphique définissant et illustrant MLOPs, le processus incluant des activités de Machine learning et DevOps, qui montre les composants, les étapes, les tâches et le flux de fonctionnement du processus.

Figure 1 : MLOps = DevOps + Machine Learning.

 

Le développement de logiciels est interdisciplinaire et évolue pour faciliter l’apprentissage automatique. MLOps est un processus de fusion du Machine Learning avec le développement de logiciels en couplant Machine Learning et DevOps. MLOps vise à créer, déployer et maintenir des modèles d’apprentissage automatique en production de manière fiable et efficace. DevOps booste les opérations de Machine learning. Voyons comment cela fonctionne en pratique. Vous trouverez ci-dessous une illustration du flux de travail MLOps de la façon dont l’apprentissage automatique est activé par DevOps pour orchestrer des solutions d’apprentissage automatique robustes, évolutives et sécurisées.

 

Graphique illustrant les trois principales étapes du flux de travail MLOPs, en commençant par le pipeline d’apprentissage automatique, puis le déploiement, puis la surveillance.

Figure 2 : Flux de travail MLOps.

 

Le flux de travail MLOps est modulaire, flexible et peut être utilisé pour créer des preuves de concept ou opérationnaliser des solutions d’apprentissage automatique dans n’importe quelle entreprise ou industrie. Ce workflow est segmenté en trois modules : Créer, Déployer et Superviser. Le module Créer est utilisé pour développer des modèles Machine Learning à l’aide d’un pipeline Machine learning. Le module Déployer est utilisé pour déployer des modèles dans des environnements de développement, de test et de production. Le module Surveiller est utilisé pour surveiller, analyser et gouverner le système d’apprentissage automatique afin d’obtenir une valeur commerciale maximale. Les tests sont effectués principalement dans deux modules : Créer et Déployer. Dans le module Créer, les données sont ingérées pour l’apprentissage, le modèle entraîné à l’aide des données ingérées, puis il est testé à l’étape de test du modèle.

1. Test du modèle : Dans cette étape, nous évaluons les performances du modèle entraîné sur un ensemble séparé de points de données nommés données de test (qui ont été divisés et versionnés lors de l’étape d’ingestion des données). L’inférence du modèle entraîné est évaluée en fonction de métriques sélectionnées selon le cas d’utilisation. Le résultat de cette étape est un rapport sur les performances du modèle entraîné. Dans le module Déployer, nous déployons les modèles entraînés dans les environnements de développement, de test et de production, respectivement. Tout d’abord, nous commençons par les tests d’application (effectués dans des environnements de développement et de test).

2. Test de l’application : Avant de déployer un modèle Machine Learning en production, il est essentiel de tester la robustesse, l’évolutivité et la sécurité du modèle. Par conséquent, nous avons la phase de « test d’application », où nous testons rigoureusement tous les modèles entraînés et l’application dans un environnement de type production appelé environnement de test ou intermédiaire. Dans cette phase, nous pouvons effectuer des tests tels que des tests A/B, des tests d’intégration, des tests d’acceptation utilisateur (UAT), des tests fantômes ou des tests de charge.

Vous trouverez ci-dessous l’infrastructure de test qui reflète la hiérarchie des besoins pour tester les systèmes d’apprentissage automatique.

 

Graphique pyramidal montrant la hiérarchie des besoins d’apprentissage automatique, en commençant par le bas avec les tâches qui relèvent de la robustesse, suivi par les tâches qui relèvent de l’évolutivité et enfin en haut avec les tâches qui relèvent de la sécurité.

Figure 3 : Hiérarchie des besoins pour tester les systèmes d’apprentissage automatique.

 

Une façon d’imaginer les systèmes d’apprentissage automatique consiste à considérer la hiérarchie des besoins de Maslow. Les niveaux inférieurs d’une pyramide reflètent la « survie » et le véritable potentiel humain n’est libéré qu’après que les besoins fondamentaux de survie et émotionnels sont satisfaits. De même, les tests qui inspectent la robustesse, l’évolutivité et la sécurité garantissent que le système fonctionne non seulement au niveau de base, mais atteint son véritable potentiel. Une chose à noter est qu’il existe de nombreuses formes supplémentaires de tests fonctionnels et non fonctionnels, y compris les tests de fumée (bilans de santé rapides) et les tests de performance (stress), mais ils peuvent tous être classés comme des tests de système.

Au cours des trois prochains articles, nous couvrirons chacun des trois grands niveaux de test, en commençant par la robustesse, puis en passant à l’évolutivité et enfin à la sécurité.

Pour plus de détails et pour en savoir plus sur l’implémentation pratique, consultez le livre Engineering MLOps, ou découvrez comment créer et déployer un modèle dans Microsoft Azure Machine Learning à l’aide de MLOps dans le webinaire à la demande Get Time to Value with MLOps Best Practices. Consultez également notre blog récemment annoncé sur les accélérateurs de solutions (MLOps v2) pour simplifier votre flux de travail MLOps dans Azure Machine Learning.


Source des images : Livre Engineering MLOps