MLOps : Gestion, déploiement et surveillance des modèles avec Azure Machine Learning
S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)
Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)
Dans cet article, découvrez comment appliquer des pratiques MLOps (Machine Learning Operations) dans Azure Machine Learning afin de gérer le cycle de vie de vos modèles. Les pratiques MLOps permettent d’améliorer la qualité et la cohérence de vos solutions de Machine Learning.
Qu’est-ce que MLOps ?
MLOps est basé sur les principes et pratiques de DevOps, qui augmentent l’efficacité des workflows. Par exemple, l’intégration, la livraison et le déploiement continus. MLOps applique ces principes au processus Machine Learning avec l’objectif suivant :
- Expérimentation et développement plus rapides de modèles.
- Déploiement plus rapide de modèles en production.
- Suivi de l’assurance qualité et de la traçabilité de bout en bout.
MLOps dans Machine Learning
Machine Learning propose les fonctionnalités MLOps suivantes :
- Créez des pipelines Machine Learning reproductibles. Utilisez les pipelines Machine Learning pour définir des étapes reproductibles et réutilisables pour vos processus de préparation des données, de formation et de scoring.
- Créer des environnements logiciels réutilisables. Utiliser ces environnements pour l’entraînement et le déploiement de modèles.
- Inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacement. Vous pouvez également suivre les métadonnées associées requises pour utiliser le modèle.
- Capturer les données de gouvernance nécessaires pour le cycle de vie Machine Learning de bout en bout. Les informations de traçabilité journalisées peuvent inclure qui publie des modèles et pourquoi des modifications ont été apportées. Cela peut également inclure des modèles ayant été déployés ou utilisés en production.
- Notifier et alerter sur des événements du cycle de vie Machine Learning. Par exemple, la fin d’une expérience, l’inscription de modèles, le déploiement de modèles et la détection d’une dérive de données.
- Superviser les applications de Machine Learning en lien avec des problèmes opérationnels et liés au Machine Learning. Comparer les entrées de modèle entre l’apprentissage et l’inférence. Explorer les métriques spécifiques au modèle. Fournir la surveillance et les alertes sur votre infrastructure Machine Learning.
- Automatiser le cycle de vie de Machine Learning de bout en bout avec Machine Learning et Azure Pipelines. À l’aide de pipelines, vous pouvez fréquemment mettre à jour des modèles. Vous pouvez également tester de nouveaux modèles. Vous pouvez continuellement déployer de nouveaux modèles Machine Learning parallèlement à vos autres applications et services.
Pour plus d’informations sur MLOps, consultez Machine Learning DevOps.
Créer des pipelines Machine Learning reproductibles
Utilisez des pipelines Machine Learning pour réunir toutes les étapes dans votre processus d’entraînement de modèle.
Un pipeline Machine Learning peut contenir des étapes allant de la préparation des données à l’extraction de fonctionnalité, pour le réglage d’hyperparamètre sur l’évaluation du modèle. Pour plus d’informations, consultez Pipelines Machine Learning.
Si vous utilisez le concepteur pour créer vos pipelines Machine Learning, vous pouvez à tout moment sélectionner l’icône ... dans le coin supérieur droit de la page du concepteur. Sélectionnez ensuite Cloner. Lorsque vous clonez votre pipeline, vous itérez votre conception de pipeline sans perdre vos anciennes versions.
Créer des environnements logiciels réutilisables
Les environnements Machine Learning vous permettent de suivre et de reproduire les dépendances logicielles de vos projets au fil de leur évolution. Ainsi, vous pouvez vous assurer que les builds sont reproductibles sans configuration manuelle des logiciels.
Les environnements décrivent les dépendances pip et conda pour vos projets. Vous pouvez les utiliser pour l’entraînement et le déploiement de modèles. Pour plus d’informations, consultez Présentation des environnements Machine Learning.
Inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacement
Les sections suivantes expliquent comment inscrire, empaqueter et déployer des modèles.
Inscrire et suivre des modèles Machine Learning
L’inscription de modèle vous permet de stocker vos modèles dans le cloud Azure, au sein de votre espace de travail et d’en gérer les versions. Le registre de modèle facilite l’organisation et le suivi de vos modèles entraînés.
Conseil
Un modèle inscrit est un conteneur logique pour un ou plusieurs fichiers qui composent votre modèle. Par exemple, si vous avez un modèle qui est stocké dans plusieurs fichiers, vous pouvez inscrire ces derniers en tant que modèle unique dans votre espace de travail Machine Learning. Après l’inscription, vous pouvez ensuite télécharger ou déployer le modèle inscrit et recevoir tous les fichiers qui ont été inscrits.
Les modèles inscrits sont identifiés par leur nom et par leur version. Chaque fois que vous inscrivez un modèle portant le même nom qu’un modèle existant, le registre incrémente la version. Des balises de métadonnées supplémentaires peuvent être fournies lors de l’inscription. Ces balises sont ensuite utilisées lors de la recherche d’un modèle. Machine Learning prend en charge tous les modèles pouvant être chargés avec Python 3.5.2 ou version ultérieure.
Conseil
Vous pouvez également inscrire des modèles formés en dehors de Machine Learning.
Important
- Lorsque vous utilisez l’option Filtrer par
Tags
sur la page Modèles d’Azure Machine Learning Studio au lieu deTagName : TagValue
, utilisezTagName=TagValue
(sans espace) - Vous ne pouvez pas supprimer un modèle inscrit qui est utilisé dans un déploiement actif.
Pour plus d’informations, consultez Utiliser des modèles dans Azure Machine Learning.
Empaqueter et déboguer des modèles
Avant de déployer un modèle en production, il est empaqueté dans une image Docker. Dans la plupart des cas, la création d’image a lieu automatiquement en arrière-plan pendant le déploiement. Vous pouvez spécifier l’image manuellement.
Si vous rencontrez des problèmes avec le déploiement, vous pouvez déployer sur votre environnement de développement local pour la résolution des problèmes et le débogage.
Pour plus d’informations, consultez Comment dépanner un point de terminaison en ligne.
Convertir et optimiser les modèles
La conversion de votre modèle en ONNX (Open Neural Network Exchange) peut améliorer les performances. En moyenne, la conversion en ONNX peut doubler les performances.
Pour plus d’informations sur ONNX avec Machine Learning, consultez l’article Créer et accélérer les modèles Machine Learning.
Utiliser des modèles
Les modèles Machine Learning entraînés sont déployés en tant que points de terminaison dans le cloud ou localement. Les déploiements utilisent un processeur ou un processeur graphique (GPU) pour l’inférence.
Lors du déploiement d’un modèle en tant que point de terminaison, vous fournissez les éléments suivants :
- Modèles utilisés pour noter les données envoyées vers le service ou l’appareil.
- Script d’entrée. Ce script accepte les demandes, utilise les modèles pour noter les données et renvoie une réponse.
- Environnement Machine Learning qui décrit les dépendances pip et conda requises par les modèles et le script d’entrée.
- Autres ressources, telles que le texte ou les données, qui sont requises par les modèles et le script d’entrée.
Vous fournissez également la configuration de la plateforme de déploiement cible, Par exemple le type de famille de machines virtuelles, la mémoire disponible et le nombre de cœurs. Lorsque l’image est créée, les composants requis par Azure Machine Learning sont également ajoutés, par exemple, les ressources nécessaires pour exécuter le service web.
Scoring par lot
Le scoring par lot est pris en charge par le biais de points de terminaison de traitement par lot. Pour plus d’informations, consultez Point de terminaison.
Points de terminaison en ligne
Vous pouvez utiliser vos modèles avec un point de terminaison en ligne. Les points de terminaison en ligne peuvent utiliser les cibles de calcul suivantes :
- Points de terminaison en ligne managés
- Azure Kubernetes Service
- Environnement de développement local
Pour déployer le modèle sur un point de terminaison, vous devez fournir les éléments suivants :
- Modèle ou ensemble de modèles.
- Dépendances requises pour utiliser le modèle, par exemple un script qui accepte les demandes et appelle le modèle et les dépendances conda.
- Configuration de déploiement qui décrit comment et où déployer le modèle.
Pour plus d’informations, consultez Déployer les points de terminaison en ligne.
Lancement contrôlé
Lors du déploiement sur un point de terminaison en ligne, vous pouvez utiliser le lancement contrôlé pour activer les scénarios suivants :
- Créer plusieurs versions d’un point de terminaison pour un déploiement
- Effectuer des tests A/B en routant le trafic vers différents déploiements sur le point de terminaison.
- Basculer entre différents déploiements d’un point de terminaison en mettant à jour le pourcentage de trafic dans la configuration du point de terminaison.
Pour plus d’informations, consultez Lancement contrôlé des modèles Machine Learning.
Analytics
Microsoft Power BI prend en charge l’utilisation de modèles Machine Learning pour l’analytique données. Pour plus d’informations, consultez Intégration de Machine Learning dans Power BI (préversion).
Capturer les données de gouvernance requises pour MLOps
Machine Learning vous donne la possibilité d’effectuer le suivi de la piste d’audit de bout en bout de toutes vos ressources Machine Learning à l’aide de métadonnées. Par exemple :
- Les jeux de données Machine Learning vous aident à suivre, à profiler et à gérer la version des données.
- L’interprétabilité vous permet d’expliquer vos modèles, de respecter la conformité réglementaire, et de comprendre comment les modèles arrivent à un résultat pour une entrée donnée.
- L’historique des tâches Machine Learning stocke une capture instantanée du code, des données et des calculs utilisés pour effectuer l’apprentissage d’un modèle.
- Le registre de modèles Machine Learning capture toutes les métadonnées associées à votre modèle. Par exemple, les métadonnées incluent l’expérience qui l’a entraînée, où elle est déployée et si ses déploiements sont sains.
- L’intégration à Azure vous permet d’agir sur les événements du cycle de vie Machine Learning. Par exemple, l’inscription du modèle, le déploiement, la dérive des données et les événements d’apprentissage (tâche).
Conseil
Bien que certaines informations sur les modèles et les jeux de données soient capturées automatiquement, vous pouvez ajouter des informations supplémentaires à l’aide de balises. Lorsque vous recherchez des modèles inscrits et des jeux de données dans votre espace de travail, vous pouvez utiliser des balises comme filtre.
Notifier, automatiser et alerter sur des événements du cycle de vie Machine Learning
Machine Learning publie des événements clés dans Azure Event Grid, qui peuvent être utilisés pour notifier et automatiser des événements du cycle de vie Machine Learning. Pour plus d'informations, consultez Utiliser Event Grid.
Automatiser le cycle de vie du Machine Learning
Vous pouvez utiliser GitHub et Azure Pipelines pour créer un processus d’intégration continue qui entraîne un modèle. Dans un scénario classique, quand un scientifique des données vérifie une modification dans le dépôt Git pour un projet, Azure Pipelines démarre une tâche d’entraînement. Les résultats de la tâche peuvent ensuite être examinés pour afficher les caractéristiques de performances du modèle entraîné. Vous pouvez également créer un pipeline qui déploie le modèle comme un service web.
L’extension Machine Learning facilite l’utilisation d’Azure Pipelines. Elle offre les améliorations suivantes à Azure Pipelines :
- Permet la sélection de l’espace de travail lors de la définition d’une connexion de service.
- Permet le déclenchement des pipelines de mise en production par les modèles entraînés créés dans un pipeline d’entraînement.
Pour plus d’informations sur l’utilisation d’Azure Pipelines avec Machine Learning, consultez :
- Intégration et déploiement continus de modèles Machine Learning avec Azure Pipelines
- Référentiel MLOps Machine Learning
Étapes suivantes
Découvrez plus d’informations en lisant et en explorant les ressources suivantes :
- Configurer MLOps avec Azure DevOps
- Parcours d’apprentissage : MLOps de bout en bout avec Azure Machine Learning
- Comment déployer un modèle sur un point de terminaison en ligne avec Machine Learning
- Tutoriel : Entraîner et déployer un modèle
- CI/CD de modèles Machine Learning avec Azure Pipelines
- Machine Learning à l’échelle
- Référentiel des architectures de référence et des bonnes pratiques d’Azure AI