Share via


MLOps : gestion des modèles, déploiement, traçabilité et surveillance avec Azure Machine Learning v1

S’APPLIQUE À :extension Azure CLI ml v1Kit de développement logiciel (SDK) Python azureml v1

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.

Important

Les éléments marqués « préversion » dans cet article sont actuellement en préversion publique. La préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail en production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Qu’est-ce que MLOps ?

Les opérations de Machine Learning (MLOps) sont basées 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 Azure Machine Learning

Azure Machine Learning propose les fonctionnalités MLOps suivantes :

  • Créer des pipelines ML reproductibles. Les pipelines Machine Learning vous permettent de 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 pour la formation 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 ML de bout en bout. Les informations de traçabilité journalisées peuvent inclure qui publie des modèles, pourquoi des modifications ont été apportées et quand les modèles ont été déployés ou utilisés en production.
  • Notifier et alerter sur des événements du cycle de vie ML. 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 ML pour détecter des problèmes de fonctionnement et liés à ML. Comparez les entrées de modèle entre l’entraînement et l’inférence, explorez les métriques spécifiques du modèle et fournissez des alertes et une supervision pour votre infrastructure ML.
  • Automatiser le cycle de vie ML de bout en bout avec Azure Machine Learning et Azure Pipelines. L’utilisation de pipelines vous permet de mettre fréquemment à jour les modèles, tester de nouveaux modèles et déployer en permanence de nouveaux modèles ML en même temps que vos autres applications et services.

Pour plus d’informations sur MLOps, consultez Machine Learning DevOps (MLOps).

Créer des pipelines ML reproductibles

Utilisez des pipelines ML d’Azure Machine Learning pour réunir toutes les étapes impliquées dans votre processus d’entraînement de modèle.

Un pipeline ML 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 ML.

Si vous utilisez le Concepteur pour créer vos pipelines ML, vous pouvez à tout moment cliquer sur « ... » en haut à droite de la page du Concepteur, puis sélectionner Cloner. Le clonage de votre pipeline vous permet d’itérer votre conception de pipeline sans perdre vos anciennes versions.

Créer des environnements logiciels réutilisables

Les environnements Azure Machine Learning vous permettent de suivre et de reproduire les dépendances logicielles de vos projets au fil de leur évolution. Ils vous permettent de vous assurer que les builds sont reproductibles sans configuration manuelle des logiciels.

Les environnements décrivent les dépendances pip et Conda de vos projets et peuvent être utilisés à la fois pour la formation et le déploiement de modèles. Pour plus d’informations, consultez Présentation des environnements Azure Machine Learning.

Inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacement

Inscrire et suivre des modèles ML

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 Azure 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. Azure 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 d'Azure Machine Learning.

Vous ne pouvez pas supprimer un modèle inscrit qui est utilisé dans un déploiement actif. Pour plus d’informations, consultez la section consacrée à l’inscription d’un modèle dans l’article Déployer des modèles.

Important

Lors de l’utilisation de l’option Filtrer par Tags sur la page Modèles d’Azure Machine Learning Studio au lieu de TagName : TagValue, les clients doivent indiquer TagName=TagValue (sans espace)

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 Déployer des modèles et Résolution des problèmes liés aux déploiements.

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 Azure Machine Learning, consultez l’article Créer et accélérer des modèles ML.

Utiliser des modèles

Les modèles Machine Learning entraînés sont déployés en tant que services web dans le cloud ou localement. Les déploiements utilisent un processeur, un processeur graphique ou des tableaux FPGA (Field-Programmable Gate Array) pour l’inférence. Vous pouvez également utiliser des modèles de Power BI.

Lorsque vous utilisez un modèle comme service web, vous fournissez les éléments suivants :

  • Modèles utilisés pour noter les données envoyées vers le service/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 Azure 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, entre autres, 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 nombre de cœurs lors du déploiement sur Azure Kubernetes Service.

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

La notation par lots est prise en charge via des pipelines ML. Pour plus d’informations, consultez Prédictions par lots sur le Big Data.

Services web en temps réel

Vous pouvez utiliser vos modèles dans les services web avec les cibles de calcul suivantes :

  • Azure Container Instance
  • Azure Kubernetes Service
  • Environnement de développement local

Pour déployer le modèle comme un service web, 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, les dépendances conda, etc.
  • Configuration de déploiement qui décrit comment et où déployer le modèle.

Pour plus d’informations, consultez Déployer des modèles.

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 d’Azure Machine Learning dans Power BI (préversion).

Capturer les données de gouvernance requises pour MLOps

Azure Machine Learning vous donne la possibilité d’effectuer le suivi de journal d’audit de bout en bout de toutes vos ressources ML à l’aide de métadonnées.

  • Azure Machine Learning s’intègre à l’aide de Git pour le suivi des informations sur le dépôt / la branche / la validation d’origine de votre code.
  • Les Jeux de données Azure Machine Learning vous permettent de 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 exécutions Azure 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 Azure Machine Learning capture toutes les métadonnées associées à votre modèle (l’expérience qui l’a entraîné, où il est déployé, si ses déploiements sont sains).
  • L’intégration à Azure vous permet d’agir sur les événements du cycle de vie de Machine Learning. Par exemple, l’inscription du modèle, le déploiement, la dérive des données et les événements d’apprentissage (exécution).

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.

L’association d’un jeu de données à un modèle inscrit est une étape facultative. Pour plus d’informations sur le référencement d’un jeu de données lors de l’inscription d’un modèle, consultez la référence de classe Modèle.

Notifier, automatiser et alerter sur des événements du cycle de vie ML

Azure Machine Learning publie des événements clés dans Azure Event Grid qui peuvent être utilisés pour avertir et automatiser des événements du cycle de vie de ML. Pour plus d’informations, consultez ce document.

Superviser les problèmes opérationnels et Machine Learning

La supervision vous permet de comprendre les données envoyées à votre modèle et les prédictions qu’il retourne.

Ces informations vous aident à comprendre l’utilisation de votre modèle. Les données d’entrée collectées peuvent également être utiles dans l’entraînement des futures versions du modèle.

Pour plus d’informations, consultez Guide pratique pour activer la collecte des données de modèle.

Réentraîner votre modèle sur de nouvelles données

Vous souhaiterez souvent valider votre modèle, le mettre à jour, ou même le réentraîner depuis le début, à mesure que vous recevrez de nouvelles informations. Parfois, la réception de nouvelles données est une partie attendue du domaine. Dans d’autres cas, comme indiqué dans Détecter une dérive de données (préversion) sur des jeux de données, les performances du modèle peuvent se dégrader en fonction de modifications apportées à un capteur particulier, de modifications de données naturelles telles que l’impact des saisons, ou de fonctionnalités qui évoluent dans leur relation avec d’autres fonctionnalités.

Il n’existe aucune réponse universelle à la question « Comment faire pour savoir si je dois effectuer à nouveau l’apprentissage ? », mais les outils de surveillance et l’événement Azure Machine Learning précédemment étudiés constituent de bons points de départ pour l’automatisation. Une fois que vous avez décidé de réentraîner, vous devez :

  • Prétraiter vos données à l’aide d’un processus reproductible et automatisé
  • Entraîner votre nouveau modèle
  • Comparer les sorties de votre nouveau modèle à celles de votre ancien modèle
  • Utiliser des critères prédéfinis pour choisir de remplacer ou non votre ancien modèle

Un thème des étapes ci-dessus est que votre nouvel entraînement doit être automatisé et non ad hoc. Les pipelines Azure Machine Learning sont une bonne réponse pour créer des workflows relatifs à la préparation des données, à l’entraînement, à la validation et au déploiement. Lisez Reformer des modèles à l’aide du concepteur Azure Machine Learning pour voir comment les pipelines et le concepteur Azure Machine Learning s’intègrent dans un scénario de nouvelle formation.

Automatiser le cycle de vie ML

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 exécution d’entraînement. Les résultats de l’exécution 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 Azure 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 Azure Machine Learning, consultez les liens suivants :

Vous pouvez également utiliser Azure Data Factory pour créer un pipeline d’ingestion des données qui prépare les données à utiliser dans le cadre de la formation. Pour plus d’informations, consultez Pipeline d’ingestion des données.

Étapes suivantes

Découvrez plus d’informations en lisant et en explorant les ressources suivantes :