Gestion des modèles MLOps avec Azure Machine Learning

S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)

Cet article explique comment Azure Machine Learning utilise les pratiques MLOps (opérations d’apprentissage automatique) pour 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.

Les pratiques MLOps sont basées sur les principes et pratiques DevOps qui augmentent l’efficacité des workflows, par exemple l’intégration continue, le déploiement continu et la livraison continue. L’application de ces principes au cycle de vie du Machine Learning entraîne les résultats suivants :

  • Expérimentation et développement de modèles plus rapides.
  • Déploiement plus rapide de modèles en production.
  • Amélioration du suivi de l’assurance qualité et de la traçabilité de bout en bout.

Fonctionnalités de MLOps

MLOps fournit les fonctionnalités suivantes au processus d’apprentissage automatique :

  • Créer des pipelines Machine Learning reproductibles afin de définir des étapes répétables et réutilisables pour les 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.
  • Effectuer l’inscription, la création de package et le déploiement de modèles à partir de n’importe quel emplacement, et suivre les métadonnées associées nécessaires à l’utilisation d’un modèle.
  • Journaliser les données de traçabilité pour la gouvernance du cycle de vie du Machine Learning, par exemple qui a publié les modèles, pourquoi des changements ont été apportés, et quand les modèles ont été déployés ou utilisés en production.
  • Envoyer des notifications et des alertes sur les événements du cycle de vie du Machine Learning, par exemple l’achèvement réussi d’expériences, l’inscription de modèles, le déploiement de modèles et la détection de dérive de données.
  • Effectuer le monitoring des problèmes opérationnels et liés au Machine Learning en comparant les entrées de modèle, en explorant les métriques spécifiques aux modèles ainsi qu’en visualisant le monitoring et les alertes de l’infrastructure Machine Learning.
  • Automatiser le cycle de vie du Machine Learning de bout en bout en utilisant des pipelines Machine Learning et Azure Pipelines pour tester, mettre à jour et déployer en continu de nouveaux modèles Machine Learning.

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

Pipelines Machine Learning reproductibles

Utilisez des pipelines Azure Machine Learning pour assembler toutes les étapes de votre processus d’entraînement de modèle. Les étapes du pipeline Machine Learning peuvent inclure la préparation des données, l’extraction de caractéristiques, le réglage des hyperparamètres et l’évaluation du modèle.

Dans le Concepteur Azure Machine Learning studio, vous pouvez cloner un pipeline pour itérer sur sa conception sans perdre vos anciennes versions. Pour cloner un pipeline à tout moment dans le Concepteur, sélectionnez Cloner dans la barre de menus supérieure.

Pour plus d’informations sur les pipelines Azure Machine Learning, consultez Pipelines d’apprentissage automatique.

Environnements logiciels réutilisables

Les environnements Azure Machine Learning permettent de vérifier la reproductibilité des builds sans avoir à utiliser de configurations logicielles manuelles. Les environnements peuvent suivre et reproduire les dépendances logicielles pip et conda pour vos projets.

Vous pouvez utiliser des environnements pour l’entraînement et le déploiement de modèles. Pour plus d’informations sur les environnements, consultez Environnements Azure Machine Learning.

Inscription, création de package et déploiement de modèles

Azure Machine Learning peut utiliser des pratiques MLOps à partir de n’importe quel emplacement pour l’inscription, la création de package et le déploiement de modèles.

Inscrire et suivre des modèles

L’inscription de modèle permet le stockage et le contrôle de version de vos modèles dans votre espace de travail Azure Machine Learning au sein du cloud Azure. Le registre de modèle facilite l’organisation et le suivi de vos modèles entraînés.

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 stocké dans plusieurs fichiers, vous pouvez inscrire les fichiers en tant que modèle unique dans votre espace de travail Azure Machine Learning. Après l’inscription, vous pouvez télécharger ou déployer le modèle inscrit, et recevoir tous les fichiers de composant.

Vous pouvez également inscrire des modèles formés en dehors d’Azure Machine Learning. Azure Machine Learning prend en charge tous les modèles pouvant être chargés avec Python 3.5.2 ou version ultérieure.

Vous identifiez les modèles inscrits par leur nom et leur version. Chaque fois que vous inscrivez un modèle portant le même nom qu’un modèle existant, le registre incrémente le numéro de version.

Vous pouvez fournir des balises de métadonnées durant l’inscription, et les utiliser pour rechercher un modèle.

Important

Vous ne pouvez pas supprimer un modèle inscrit qui est utilisé dans un déploiement actif.

Pour plus d’informations sur l’utilisation de modèles dans Azure Machine Learning, consultez Utiliser des modèles dans Azure Machine Learning.

Empaqueter et déboguer des modèles

Pour déployer un modèle en production, vous devez d’abord créer un package de celui-ci, et le placer dans une image Docker. Dans la plupart des cas, la création d’images s’effectue automatiquement en arrière-plan durant le déploiement. Toutefois, vous pouvez spécifier manuellement l’image.

Il est utile d’effectuer d’abord le déploiement sur votre environnement de développement local pour pouvoir résoudre les problèmes et déboguer le code avant d’effectuer le déploiement sur le cloud. Cette approche vous permet d'éviter de rencontrer des problèmes lors du déploiement d'Azure Machine Learning. Pour plus d’informations sur la résolution des problèmes de déploiement courants, consultez Comment résoudre les problèmes de point de terminaison en ligne.

Convertir et optimiser les modèles

Vous pouvez convertir votre modèle en Open Neural Network Exchange (ONNX) pour essayer d’améliorer les performances. En règle générale, la conversion en ONNX peut doubler les performances.

Pour plus d’informations sur ONNX avec Azure Machine Learning, consultez Créer et accélérer des modèles Machine Learning.

Déployer des modèles en tant que points de terminaison

Vous pouvez déployer des modèles Machine Learning formés en tant que points de terminaison localement ou dans le cloud. Les déploiements utilisent des processeurs et des GPU pour l’inférence.

Pour déployer un modèle en tant que point de terminaison, vous devez fournir les informations suivantes :

  • Le modèle utilisé pour établir le score des données envoyées au service ou à l’appareil.
  • Un script d’entrée, également appelé script de scoring, qui accepte les requêtes, utilise les modèles pour établir un score des données, et retourne une réponse.
  • Un environnement qui décrit les dépendances pip et conda nécessaires aux modèles et au script d’entrée.
  • Toute autre ressource, par exemple du texte et des données, nécessaire au modèle et au script d’entrée.

Important

Quand vous déployez un modèle MLflow, vous n’avez pas besoin de fournir de script d’entrée ni d’environnement pour le déploiement. Pour plus d’informations sur le déploiement de modèles MLflow, consultez Recommandations pour le déploiement de modèles MLflow.

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. Quand Azure Machine Learning crée l’image, il ajoute également les composants dont il a besoin, par exemple les ressources nécessaires à l’exécution du service web.

Scoring par lots avec des points de terminaison de traitement de lots

Le scoring par lot est pris en charge par le biais de points de terminaison de traitement par lot. Pour plus d’informations sur le scoring par lots, consultez Points de terminaison de Batch.

Scoring en temps réel avec des points de terminaison en ligne

Vous pouvez utiliser vos modèles avec des points de terminaison en ligne pour un scoring en temps réel. Les cibles de calcul des points de terminaison en ligne peuvent être des environnements de développement locaux, des points de terminaison en ligne gérés ou AKS (Azure Kubernetes Service).

Pour déployer un modèle sur un point de terminaison en ligne, vous devez fournir les informations suivantes :

  • Modèle ou ensemble de modèles.
  • Dépendances nécessaires à l’utilisation du modèle, par exemple un script qui accepte les requêtes, et appelle les dépendances de modèle et conda.
  • Configuration de déploiement qui décrit comment et où déployer le modèle.

Pour plus d’informations sur le déploiement pour le scoring en temps réel, consultez Déployer des points de terminaison en ligne.

Lancement contrôlé pour les points de terminaison en ligne

Quand vous effectuez un déploiement sur un point de terminaison en ligne, vous pouvez utiliser le déploiement 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.
  • Basculez entre les déploiements de points de terminaison en mettant à jour le pourcentage de trafic dans la configuration du point de terminaison.

Pour plus d’informations sur le déploiement à l’aide d’un déploiement contrôlé, consultez Effectuer un lancement sécurisé des nouveaux déploiements pour l’inférence en temps réel.

Métadonnées pour la gouvernance du cycle de vie du Machine Learning

Azure Machine Learning vous donne la possibilité d’effectuer le suivi de la piste d’audit de bout en bout de toutes vos ressources d’apprentissage automatique à l’aide de métadonnées. Par exemple :

  • Les ressources de données Azure Machine Learning vous aident à suivre, profiler et obtenir des données de version.
  • L’interprétabilité des modèles 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 travaux Azure Machine Learning stocke une capture instantanée du code, des données et des calculs utilisés pour former un modèle.
  • L’inscription de modèle Azure Machine Learning capture toutes les métadonnées associées à votre modèle. Par exemple, quelle expérience a formé le modèle, où le modèle est déployé, et si les déploiements du modèle sont sains.
  • L’intégration à Azure vous permet d’agir sur les événements du cycle de vie du Machine Learning, par exemple l’inscription de modèle, le déploiement, la dérive de données ainsi que le travail de formation.

Bien que certaines informations sur les modèles et les ressources de données soient automatiquement capturées, vous pouvez ajouter plus d’informations en utilisant des balises. Quand vous recherchez des modèles inscrits et des ressources de données dans votre espace de travail, vous pouvez utiliser les balises en tant que filtres.

Remarque

Quand vous utilisez les Balises dans l’option Filtrer par de la page Modèles d’Azure Machine Learning studio, veillez à utiliser TagName=TagValue sans espaces au lieu de TagName : TagValue.

Notification d’événements et alertes relatives au cycle de vie du 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 sur la configuration des processus pilotés par les événements basés sur des événements Azure Machine Learning, consultez Flux de travail personnalisés CI/CD et pilotés par les événements.

Automatisation du cycle de vie du Machine Learning

Vous pouvez utiliser Git et Azure Pipelines pour créer un processus d’intégration continue qui forme un modèle Machine Learning. Dans un scénario classique, quand un scientifique des données archive un changement dans le dépôt Git d’un projet, Azure Pipelines démarre le travail de formation.

Vous pouvez examiner les résultats du travail pour voir les caractéristiques de performances du modèle formé. 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. L’extension fournit les améliorations suivantes à Azure Pipelines :

  • Active la sélection de l’espace de travail Azure Machine Learning quand vous définissez une connexion de service.
  • Permet la création de modèles formés dans un pipeline de formation pour déclencher un déploiement dans Azure Pipelines.

Pour plus d’informations sur l’utilisation d’Azure Pipelines avec Azure Machine Learning, consultez Utiliser Azure Pipelines avec Azure 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 IA avec des flux de données.