Partager 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 d’opérations d’apprentissage automatique (MLOps) dans Azure Machine Learning pour gérer le cycle de vie de vos modèles. Les pratiques d’opérations d’apprentissage automatique 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. Cette préversion est fournie sans contrat de niveau de service. Nous vous déconseillons d’utiliser les fonctionnalités en préversion pour les charges de travail de 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 les opérations de Machine Learning ?

En fonction des principes et des pratiques DevOps, les opérations d’apprentissage automatique (MLOps) augmentent l’efficacité des flux de travail. Par exemple, l’intégration, la livraison et le déploiement continus. Les opérations d’apprentissage automatique appliquent ces principes au processus de 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 fournit les fonctionnalités d’opérations d’apprentissage automatique suivantes :

  • Créez des pipelines Machine Learning 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 Machine Learning 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 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.
  • Surveiller les applications de Machine Learning 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 du modèle, et fournir une surveillance et des alertes pour votre infrastructure d’apprentissage automatique.
  • Automatiser le cycle de vie de Machine Learning 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 de Machine Learning en même temps que vos autres applications et services.

Pour plus d’informations sur les opérations d’apprentissage automatique, consultez Opérations d’apprentissage automatique.

Créer des pipelines Machine Learning reproductibles

Utilisez des pipelines Machine Learning d’Azure Machine Learning pour réunir toutes les étapes impliquées dans votre processus de formation 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 d’Azure Machine Learning.

Si vous utilisez le Designer pour créer vos pipelines Machine Learning, sélectionnez les points de suspension (...) en haut à droite de la page Designer, puis sélectionnez 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 pour vos projets. Les environnements 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

Vous pouvez inscrire, empaqueter et déployer des modèles à partir de n’importe quel emplacement.

Inscrire et suivre des modèles Machine Learning

L’inscription de modèle vous permet de stocker et gérer les versions de vos modèles dans votre espace de travail dans le cloud Azure. 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.

Le nom et la version identifient les modèles inscrits. Chaque fois que vous inscrivez un modèle portant le même nom qu’un modèle existant, le registre incrémente la version. Vous pouvez spécifier d’autres balises de métadonnées pendant 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 Inscrire le modèle.

Important

Lorsque vous utilisez le filtre avec l’option Tags sur la page Modèles d’Azure Machine Learning Studio, au lieu d’utiliser TagName : TagValue vous devez utiliser 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 Machine Learning sur Azure et Résolution des problèmes de modèle de déploiement distant.

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, consultez ONNX et Azure Machine Learning.

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 ou un processeur graphique pour l’inférence. Vous pouvez également utiliser des modèles de Power BI.

Lorsque vous utilisez un modèle comme service web, 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 Azure Machine Learning qui décrit les dépendances Pip et Conda requises par les modèles et le script d’entrée.
  • Toutes les autres ressources, telles que le texte ou les données, requises par les modèles et le script d’entrée.

Vous devez également fournir 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 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 Machine Learning. Pour plus d’informations, consultez Tutoriel : créer un pipeline Azure Machine Learning pour la classification d’images.

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 requêtes et appelle le modèle ou 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 des modèles Machine Learning sur Azure.

Analytics

Microsoft Power BI prend en charge l’utilisation de modèles Machine Learning pour l’analytique données. Pour plus d’informations, consultez IA avec des flux de données.

Capturer les données de gouvernance nécessaires pour les opérations d’apprentissage automatique

Azure 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.

  • Azure Machine Learning s’intègre à Git pour le suivi des informations sur le référentiel, la branche et la validation d’où provient 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 Machine Learning capture toutes les métadonnées associées à votre modèle. Ces métadonnées incluent l’expérience qui l’a formé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 (exécution).

Conseil

Certaines informations sur les modèles et les jeux de données sont capturées automatiquement. Vous pouvez ajouter d’autres informations à 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 de modèle.

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

Azure 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 de l’apprentissage automatique. Pour plus d’informations, consultez Déclenchement des applications, des processus ou des flux de travail CI/CD en fonction d’événements Azure Machine Learning.

Surveiller les problèmes opérationnels et de 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 la formation des futures versions du modèle.

Pour plus d’informations, consultez Collecter des données à partir de modèles en production.

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

Vous souhaitez souvent valider votre modèle, le mettre à jour, ou même le recycler 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. D’autres fois, le niveau de performance du modèle peut se dégrader en raison des modifications apportées à un capteur particulier, des changements de données naturelles tels que des effets saisonniers ou des fonctionnalités qui changent dans leur rapport à d’autres fonctionnalités. Pour plus d’informations, consultez Détecter la dérive des données (préversion) sur les jeux de données.

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 décidez de recycler, 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 aux sorties 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 recyclage doit être automatisé et non improvisé. 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 Utiliser des paramètres de pipeline pour recycler vos modèles dans le concepteur 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 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 référentiel Git pour un projet, Azure Pipelines démarre une exécution de formation. Vous pouvez examiner les résultats de l’exécution 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 ressources suivantes :

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 DevOps pour un pipeline d’ingestion des données.

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