MLOps : Gestion, déploiement et surveillance des modèles avec Azure Machine LearningMLOps: Model management, deployment, and monitoring with Azure Machine Learning

Dans cet article, découvrez comment utiliser Azure Machine Learning pour gérer le cycle de vie de vos modèles.In this article, learn about how to use Azure Machine Learning to manage the lifecycle of your models. Azure Machine Learning utilise une approche d’Opérations de Machine Learning (MLOps).Azure Machine Learning uses a Machine Learning Operations (MLOps) approach. MLOps améliore la qualité et la cohérence de vos solutions de Machine Learning.MLOps improves the quality and consistency of your machine learning solutions.

Qu’est-ce que MLOps ?What is MLOps?

Les opérations de Machine Learning (MLOps) sont basées sur les principes et pratiques de DevOps, qui augmentent l’efficacité des workflows.Machine Learning Operations (MLOps) is based on DevOps principles and practices that increase the efficiency of workflows. Par exemple, l’intégration, la livraison et le déploiement continus.For example, continuous integration, delivery, and deployment. MLOps applique ces principes au processus Machine Learning avec l’objectif suivant :MLOps applies these principles to the machine learning process, with the goal of:

  • Expérimentation et développement plus rapides de modèlesFaster experimentation and development of models
  • Déploiement plus rapide de modèles en productionFaster deployment of models into production
  • Assurance qualitéQuality assurance

Azure Machine Learning propose les fonctionnalités MLOps suivantes :Azure Machine Learning provides the following MLOps capabilities:

  • Créer des pipelines ML reproductibles.Create reproducible ML pipelines. 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.Machine Learning pipelines allow you to define repeatable and reusable steps for your data preparation, training, and scoring processes.
  • Créer des environnements logiciels réutilisables pour la formation et le déploiement de modèles.Create reusable software environments for training and deploying models.
  • Inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacement.Register, package, and deploy models from anywhere. Vous pouvez également suivre les métadonnées associées requises pour utiliser le modèle.You can also track associated metadata required to use the model.
  • Capturer les données de gouvernance nécessaires pour le cycle de vie ML de bout en bout.Capture the governance data for the end-to-end ML lifecycle. Les informations 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.The logged information can include who is publishing models, why changes were made, and when models were deployed or used in production.
  • Notifier et alerter sur des événements du cycle de vie ML.Notify and alert on events in the ML lifecycle. 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.For example, experiment completion, model registration, model deployment, and data drift detection.
  • Superviser les applications ML pour détecter des problèmes de fonctionnement et liés à ML.Monitor ML applications for operational and ML-related issues. 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.Compare model inputs between training and inference, explore model-specific metrics, and provide monitoring and alerts on your ML infrastructure.
  • Automatiser le cycle de vie ML de bout en bout avec Azure Machine Learning et Azure Pipelines.Automate the end-to-end ML lifecycle with Azure Machine Learning and 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.Using pipelines allows you to frequently update models, test new models, and continuously roll out new ML models alongside your other applications and services.

Créer des pipelines ML reproductiblesCreate reproducible ML pipelines

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.Use ML pipelines from Azure Machine Learning to stitch together all of the steps involved in your model training process.

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.An ML pipeline can contain steps from data preparation to feature extraction to hyperparameter tuning to model evaluation. Pour plus d’informations, consultez Pipelines ML.For more information, see ML pipelines.

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.If you use the Designer to create your ML pipelines, you may at any time click the "..." at the top-right of the Designer page and then select Clone. Le clonage de votre pipeline vous permet d’itérer votre conception de pipeline sans perdre vos anciennes versions.Cloning your pipeline allows you to iterate your pipeline design without losing your old versions.

Créer des environnements logiciels réutilisablesCreate reusable software environments

Les environnements Azure Machine Learning vous permettent de suivre et de reproduire les dépendances logicielles de vos projets au fil de leur évolution.Azure Machine Learning environments allow you to track and reproduce your projects' software dependencies as they evolve. Ils vous permettent de vous assurer que les builds sont reproductibles sans configuration manuelle des logiciels.Environments allow you to ensure that builds are reproducible without manual software configurations.

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.Environments describe the pip and Conda dependencies for your projects, and can be used for both training and deployment of models. Pour plus d’informations, consultez Présentation des environnements Azure Machine Learning.For more information, see What are Azure Machine Learning environments.

Inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacementRegister, package, and deploy models from anywhere

Inscrire et suivre des modèles MLRegister and track ML models

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.Model registration allows you to store and version your models in the Azure cloud, in your workspace. Le registre de modèle facilite l’organisation et le suivi de vos modèles entraînés.The model registry makes it easy to organize and keep track of your trained models.

Conseil

Un modèle inscrit est un conteneur logique pour un ou plusieurs fichiers qui composent votre modèle.A registered model is a logical container for one or more files that make up your model. 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.For example, if you have a model that is stored in multiple files, you can register them as a single model in your Azure Machine Learning workspace. 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.After registration, you can then download or deploy the registered model and receive all the files that were registered.

Les modèles inscrits sont identifiés par leur nom et par leur version.Registered models are identified by name and 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.Each time you register a model with the same name as an existing one, the registry increments the version. Des balises de métadonnées supplémentaires peuvent être fournies lors de l’inscription.Additional metadata tags can be provided during registration. Ces balises sont ensuite utilisées lors de la recherche d’un modèle.These tags are then used when searching for a model. Azure Machine Learning prend en charge tous les modèles pouvant être chargés avec Python 3.5.2 ou version ultérieure.Azure Machine Learning supports any model that can be loaded using Python 3.5.2 or higher.

Conseil

Vous pouvez également inscrire des modèles formés en dehors d'Azure Machine Learning.You can also register models trained outside Azure Machine Learning.

Vous ne pouvez pas supprimer un modèle inscrit qui est utilisé dans un déploiement actif.You can't delete a registered model that is being used in an active deployment. Pour plus d’informations, consultez la section consacrée à l’inscription d’un modèle dans l’article Déployer des modèles.For more information, see the register model section of Deploy models.

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)When using Filter by Tags option on the Models page of Azure Machine Learning Studio, instead of using TagName : TagValue customers should use TagName=TagValue (without space)

Modèles de profilProfile models

Azure Machine Learning peut vous aider à comprendre les besoins en processeur et en mémoire du service qui sera créé lors du déploiement de votre modèle.Azure Machine Learning can help you understand the CPU and memory requirements of the service that will be created when you deploy your model. Le profilage teste le service qui exécute votre modèle et retourne des informations telles que l’utilisation de l’UC, l’utilisation de la mémoire et la latence de la réponse.Profiling tests the service that runs your model and returns information such as the CPU usage, memory usage, and response latency. Il fournit également une recommandation pour l’UC et la mémoire en fonction de l’utilisation des ressources.It also provides a CPU and memory recommendation based on the resource usage. Pour plus d’informations, voir la section consacrée au déploiement dans Déployer des modèles.For more information, see the profiling section of Deploy models.

Empaqueter et déboguer des modèlesPackage and debug models

Avant de déployer un modèle en production, il est empaqueté dans une image Docker.Before deploying a model into production, it is packaged into a Docker image. Dans la plupart des cas, la création d’image a lieu automatiquement en arrière-plan pendant le déploiement.In most cases, image creation happens automatically in the background during deployment. Vous pouvez spécifier l’image manuellement.You can manually specify the image.

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.If you run into problems with the deployment, you can deploy on your local development environment for troubleshooting and debugging.

Pour plus d’informations, consultez Déployer des modèles et Résolution des problèmes liés aux déploiements.For more information, see Deploy models and Troubleshooting deployments.

Convertir et optimiser les modèlesConvert and optimize models

La conversion de votre modèle en ONNX (Open Neural Network Exchange) peut améliorer les performances.Converting your model to Open Neural Network Exchange (ONNX) may improve performance. En moyenne, la conversion en ONNX peut doubler les performances.On average, converting to ONNX can yield a 2x performance increase.

Pour plus d’informations sur ONNX avec Azure Machine Learning, consultez l’article Créer et accélérer des modèles ML.For more information on ONNX with Azure Machine Learning, see the Create and accelerate ML models article.

Utiliser des modèlesUse models

Les modèles Machine Learning entraînés sont déployés en tant que services web dans le cloud ou localement.Trained machine learning models are deployed as web services in the cloud or locally. Vous pouvez également déployer les modèles sur des appareils Azure IoT Edge.You can also deploy models to Azure IoT Edge devices. Les déploiements utilisent un processeur, un processeur graphique ou des tableaux FPGA (Field-Programmable Gate Array) pour l’inférence.Deployments use CPU, GPU, or field-programmable gate arrays (FPGA) for inferencing. Vous pouvez également utiliser des modèles de Power BI.You can also use models from Power BI.

Lorsque vous utilisez un modèle comme un service web ou un appareil IoT Edge, vous fournissez les éléments suivants :When using a model as a web service or IoT Edge device, you provide the following items:

  • Modèles utilisés pour noter les données envoyées vers le service/l’appareil.The model(s) that are used to score data submitted to the service/device.
  • Script d’entrée.An entry script. Ce script accepte les demandes, utilise les modèles pour noter les données et renvoie une réponse.This script accepts requests, uses the model(s) to score the data, and return a response.
  • Environnement Azure Machine Learning qui décrit les dépendances pip et Conda requises par les modèles et le script d’entrée.An Azure Machine Learning environment that describes the pip and Conda dependencies required by the model(s) and entry script.
  • 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.Any additional assets such as text, data, etc. that are required by the model(s) and entry script.

Vous fournissez également la configuration de la plateforme de déploiement cible,You also provide the configuration of the target deployment platform. 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.For example, the VM family type, available memory, and number of cores when deploying to Azure Kubernetes Service.

Lorsque l’image est créée, les composants requis par Azure Machine Learning sont également ajoutés,When the image is created, components required by Azure Machine Learning are also added. par exemple les ressources nécessaires pour exécuter le service web et interagir avec IoT Edge.For example, assets needed to run the web service and interact with IoT Edge.

Scoring par lotBatch scoring

La notation par lots est prise en charge via des pipelines ML.Batch scoring is supported through ML pipelines. Pour plus d’informations, consultez Prédictions par lots sur le Big Data.For more information, see Batch predictions on big data.

Services web en temps réelReal-time web services

Vous pouvez utiliser vos modèles dans les services web avec les cibles de calcul suivantes :You can use your models in web services with the following compute targets:

  • Azure Container InstanceAzure Container Instance
  • Azure Kubernetes ServiceAzure Kubernetes Service
  • Environnement de développement localLocal development environment

Pour déployer le modèle comme un service web, vous devez fournir les éléments suivants :To deploy the model as a web service, you must provide the following items:

  • Modèle ou ensemble de modèles.The model or ensemble of models.
  • Dépendances requises pour utiliser le modèle,Dependencies required to use the model. par exemple un script qui accepte les demandes et appelle le modèle, les dépendances conda, etc.For example, a script that accepts requests and invokes the model, conda dependencies, etc.
  • Configuration de déploiement qui décrit comment et où déployer le modèle.Deployment configuration that describes how and where to deploy the model.

Pour plus d’informations, consultez Déployer des modèles.For more information, see Deploy models.

Lancement contrôléControlled rollout

Lors d'un déploiement sur Azure Kubernetes Service, vous pouvez utiliser le lancement contrôlé pour activer les scénarios suivants :When deploying to Azure Kubernetes Service, you can use controlled rollout to enable the following scenarios:

  • Créer plusieurs versions d’un point de terminaison pour un déploiementCreate multiple versions of an endpoint for a deployment
  • Effectuer des tests A/B en acheminant le trafic vers différentes versions du point de terminaison.Perform A/B testing by routing traffic to different versions of the endpoint.
  • Basculer entre différentes versions d’un point de terminaison en mettant à jour le pourcentage de trafic dans la configuration du point de terminaison.Switch between endpoint versions by updating the traffic percentage in endpoint configuration.

Pour plus d’informations, consultez Lancement contrôlé des modèles ML.For more information, see Controlled rollout of ML models.

Appareils IoT EdgeIoT Edge devices

Vous pouvez utiliser des modèles avec les appareils IoT via des modules Azure IoT Edge.You can use models with IoT devices through Azure IoT Edge modules. Les modules IoT Edge sont déployés sur un périphérique matériel, ce qui permet l’inférence, ou le scoring de modèles, sur l’appareil.IoT Edge modules are deployed to a hardware device, which enables inference, or model scoring, on the device.

Pour plus d’informations, consultez Déployer des modèles.For more information, see Deploy models.

AnalyticsAnalytics

Microsoft Power BI prend en charge l’utilisation de modèles Machine Learning pour l’analytique données.Microsoft Power BI supports using machine learning models for data analytics. Pour plus d’informations, consultez Intégration d’Azure Machine Learning dans Power BI (préversion).For more information, see Azure Machine Learning integration in Power BI (preview).

Capturer les données de gouvernance nécessaires pour la capture du cycle de vie ML de bout en boutCapture the governance data required for capturing the end-to-end ML lifecycle

Azure ML vous donne la possibilité d’effectuer le suivi de la piste d’audit de bout en bout de toutes vos ressources ML à l’aide de métadonnées.Azure ML gives you the capability to track the end-to-end audit trail of all of your ML assets by using metadata.

  • Azure ML s’intègre à Git pour le suivi des informations sur le dépôt / la branche / la validation d’où provient votre code.Azure ML integrates with Git to track information on which repository / branch / commit your code came from.
  • Les jeux de données Azure ML vous aident à suivre, à profiler et à gérer la version des données.Azure ML Datasets help you track, profile, and version data.
  • 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.Interpretability allows you to explain your models, meet regulatory compliance, and understand how models arrive at a result for given input.
  • L’historique des exécutions Azure ML stocke une capture instantanée du code, des données et des calculs utilisés pour effectuer l’apprentissage d’un modèle.Azure ML Run history stores a snapshot of the code, data, and computes used to train a model.
  • Le registre de modèles Azure ML 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).The Azure ML Model Registry captures all of the metadata associated with your model (which experiment trained it, where it is being deployed, if its deployments are healthy).
  • L’intégration à Azure vous permet d’agir sur les événements du cycle de vie ML.Integration with Azure allows you to act on events in the ML lifecycle. Par exemple, l’inscription du modèle, le déploiement, la dérive des données et les événements d’apprentissage (exécution).For example, model registration, deployment, data drift, and training (run) events.

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.While some information on models and datasets is automatically captured, you can add additional information by using tags. 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.When looking for registered models and datasets in your workspace, you can use tags as a filter.

L’association d’un jeu de données à un modèle inscrit est une étape facultative.Associating a dataset with a registered model is an optional step. 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.For information on referencing a dataset when registering a model, see the Model class reference.

Notifier, automatiser et alerter sur des événements du cycle de vie MLNotify, automate, and alert on events in the ML lifecycle

Azure ML publie des événements clés dans Azure EventGrid, qui peuvent être utilisés pour notifier et automatiser des événements du cycle de vie ML.Azure ML publishes key events to Azure EventGrid, which can be used to notify and automate on events in the ML lifecycle. Pour plus d’informations, consultez ce document.For more information, please see this document.

Superviser les problèmes opérationnels et Machine LearningMonitor for operational & ML issues

La supervision vous permet de comprendre les données envoyées à votre modèle et les prédictions qu’il retourne.Monitoring enables you to understand what data is being sent to your model, and the predictions that it returns.

Ces informations vous aident à comprendre l’utilisation de votre modèle.This information helps you understand how your model is being used. Les données d’entrée collectées peuvent également être utiles dans l’entraînement des futures versions du modèle.The collected input data may also be useful in training future versions of the model.

Pour plus d’informations, consultez Guide pratique pour activer la collecte des données de modèle.For more information, see How to enable model data collection.

Réentraîner votre modèle sur de nouvelles donnéesRetrain your model on new data

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.Often, you'll want to validate your model, update it, or even retrain it from scratch, as you receive new information. Parfois, la réception de nouvelles données est une partie attendue du domaine.Sometimes, receiving new data is an expected part of the domain. 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.Other times, as discussed in Detect data drift (preview) on datasets, model performance can degrade in the face of such things as changes to a particular sensor, natural data changes such as seasonal effects, or features shifting in their relation to other features.

Il n’y a aucune réponse universelle à la question « Comment savoir si je dois réentraîner ? »There is no universal answer to "How do I know if I should retrain?" mais les outils de supervision et d’événements Azure ML étudiés précédemment constituent de bons points de départ pour l’automatisation.but Azure ML event and monitoring tools previously discussed are good starting points for automation. Une fois que vous avez décidé de réentraîner, vous devez :Once you have decided to retrain, you should:

  • Prétraiter vos données à l’aide d’un processus reproductible et automatiséPreprocess your data using a repeatable, automated process
  • Entraîner votre nouveau modèleTrain your new model
  • Comparer les sorties de votre nouveau modèle à celles de votre ancien modèleCompare the outputs of your new model to those of your old model
  • Utiliser des critères prédéfinis pour choisir de remplacer ou non votre ancien modèleUse predefined criteria to choose whether to replace your old model

Un thème des étapes ci-dessus est que votre nouvel entraînement doit être automatisé et non ad hoc.A theme of the above steps is that your retraining should be automated, not 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.Azure Machine Learning pipelines are a good answer for creating workflows relating to data preparation, training, validation, and deployment. 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.Read Retrain models with Azure Machine Learning designer to see how pipelines and the Azure Machine Learning designer fit into a retraining scenario.

Automatiser le cycle de vie MLAutomate the ML lifecycle

Vous pouvez utiliser GitHub et Azure Pipelines pour créer un processus d’intégration continue qui entraîne un modèle.You can use GitHub and Azure Pipelines to create a continuous integration process that trains a model. 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.In a typical scenario, when a Data Scientist checks a change into the Git repo for a project, the Azure Pipeline will start a training run. Les résultats de l’exécution peuvent ensuite être examinés pour afficher les caractéristiques de performances du modèle entraîné.The results of the run can then be inspected to see the performance characteristics of the trained model. Vous pouvez également créer un pipeline qui déploie le modèle comme un service web.You can also create a pipeline that deploys the model as a web service.

L’extension Azure Machine Learning facilite l’utilisation d’Azure Pipelines.The Azure Machine Learning extension makes it easier to work with Azure Pipelines. Elle offre les améliorations suivantes à Azure Pipelines :It provides the following enhancements to Azure Pipelines:

  • Permet la sélection de l’espace de travail lors de la définition d’une connexion de service.Enables workspace selection when defining a service connection.
  • 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.Enables release pipelines to be triggered by trained models created in a training pipeline.

Pour plus d’informations sur l’utilisation d’Azure Pipelines avec Azure Machine Learning, consultez les liens suivants :For more information on using Azure Pipelines with Azure Machine Learning, see the following links:

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.You can also use Azure Data Factory to create a data ingestion pipeline that prepares data for use with training. Pour plus d’informations, consultez Pipeline d’ingestion des données.For more information, see Data ingestion pipeline.

Étapes suivantesNext steps

Découvrez plus d’informations en lisant et en explorant les ressources suivantes :Learn more by reading and exploring the following resources: