Qu'est-ce que Azure Machine Learning ?

Azure Machine Learning est un service cloud permettant d’accélérer et de gérer le cycle de vie du projet Machine Learning (ML). Les professionnels du ML, les scientifiques des données et les ingénieurs peuvent l’utiliser dans leurs flux de travail quotidiens pour effectuer l’apprentissage et déployer des modèles et gérer des opérations d’apprentissage automatique (MLOps).

Vous pouvez créer un modèle dans Machine Learning ou utiliser un modèle créé à partir d’une plateforme open source, telle que PyTorch, TensorFlow ou scikit-learn. Les outils MLOps vous permettent d’effectuer un monitoring des modèles, de les recycler et de les redéployer.

Conseil

Version d’évaluation gratuite ! Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer. Essayez la version gratuite ou payante d’Azure Machine Learning. Vous obtenez des crédits à dépenser en services Azure. Une fois ceux-ci épuisés, vous pouvez conserver le compte et utiliser les services Azure gratuits. Votre carte de crédit n’est pas débitée tant que vous n’avez pas explicitement modifié vos paramètres pour demander à l’être.

La fonction d’Azure Machine Learning

Le Machine Learning est destiné aux individus et aux équipes qui implémentent des opérations d’apprentissage automatique au sein de leur organisation pour mettre en production des modèles de ML dans un environnement de production sécurisé et auditable.

Les scientifiques des données et les ingénieurs ML peuvent utiliser des outils pour accélérer et automatiser leurs flux de travail quotidiens. Les développeurs d’applications peuvent utiliser des outils pour intégrer des modèles dans des applications ou des services. Les développeurs de plateforme peuvent utiliser un ensemble robuste d’outils, soutenus par des API Azure Resource Manager durables, pour créer des outils de ML avancés.

Les entreprises travaillant dans le cloud Microsoft Azure peuvent utiliser le contrôle d’accès en fonction du rôle et de la sécurité familière pour l’infrastructure. Il est possible de configurer un projet de façon à refuser l’accès aux données protégées et à certaines opérations.

Productivité pour tous les membres de l’équipe

Les projets de ML nécessitent souvent une équipe disposant d’un ensemble de compétences varié pour générer et conserver. Le Machine Learning dispose d’outils qui vous permettent de :

  • Collaborer avec votre équipe via des notebooks partagés, des ressources de calcul, des calculs serverless, des données et des environnements

  • Développer des modèles pour l’impartialité, l’explicabilité, le suivi et l’auditabilité afin de répondre aux exigences de conformité de traçabilité et d’audit

  • Déployer rapidement et facilement des modèles ML à grande échelle, et les gérer efficacement avec MLOps

  • Exécuter des charges de travail Machine Learning n’importe où avec une gouvernance, une sécurité et une conformité intégrées

Outils de plateforme inter-compatibles répondant à vos besoins

Tout membre d’une équipe ML peut utiliser ses outils préférés pour accomplir le travail. Si vous exécutez des expériences rapides, réglez des hyperparamètres, créez des pipelines ou gérez des inférences, vous pouvez utiliser des interfaces familières, à savoir :

Lorsque vous affinez le modèle et que vous collaborez avec d’autres personnes tout au long du cycle de développement du Machine Learning, vous pouvez partager et rechercher des composants, des ressources et des mesures pour vos projets sur l’interface utilisateur du Machine Learning studio.

Studio

Le Machine Learning studio offre plusieurs expériences de création en fonction du type de projet et du niveau de votre expérience ML passée, sans avoir à installer quoi que ce soit.

  • Notebooks : écrivez et exécutez votre propre code dans des serveurs Jupyter Notebook managés qui sont directement intégrés dans le studio.

  • Visualiser les métriques d’exécution : analysez et optimisez vos expériences avec la visualisation.

    Screenshot that shows metrics for a training run.

  • Concepteur d’Azure Machine Learning : utilisez le concepteur pour effectuer l’apprentissage et déployer des modèles ML sans écrire de code. Faites un glisser-déplacer des jeux de données et des composants pour créer des pipelines ML.

  • Interface utilisateur de Machine Learning automatisé : découvrez comment créer des expériences ML automatisées avec une interface facile à utiliser.

  • Étiquetage des données : utilisez l’étiquetage des données Machine Learning pour coordonner efficacement l’étiquetage d’images ou les projets d’étiquetage de texte.

Préparation pour l’entreprise et sécurité

Le Machine Learning s’intègre à la plateforme cloud Azure pour ajouter la sécurité aux projets ML.

Les intégrations de sécurité sont les suivantes :

  • Réseaux virtuels Azure avec des groupes de sécurité réseau.
  • Azure Key Vault, où vous pouvez enregistrer des secrets de sécurité, tels que des informations d’accès pour les comptes de stockage.
  • Azure Container Registry est configuré derrière un réseau virtuel.

Pour plus d’informations, consultez le Tutoriel : Configurer un espace de travail sécurisé.

Intégrations Azure pour des solutions complètes

D’autres intégrations avec les services Azure prennent en charge un projet ML de bout en bout. Notamment :

Important

Azure Machine Learning ne stocke pas et ne traite pas vos données en dehors de la région où vous déployez.

Flux de travail des projets de Machine Learning

En règle générale, les modèles sont développés dans le cadre d’un projet avec un objectif et des buts. Les projets impliquent souvent plusieurs personnes. Lorsque vous expérimentez des données, des algorithmes et des modèles, le développement est itératif.

Cycle de vie des projets

Le cycle de vie du projet peut varier selon le projet, mais il ressemble souvent à ce diagramme.

Diagram that shows the machine learning project lifecycle

Un espace de travail organise un projet et permet la collaboration de nombreux utilisateurs vers un objectif commun. Les utilisateurs d’un espace de travail peuvent facilement partager les résultats de leurs exécutions à partir de l’expérimentation dans l’interface utilisateur studio. Ils peuvent également utiliser des ressources avec version pour des travaux tels que des environnements et des références de stockage.

Pour plus d’informations, consultez Gestion des espaces de travail Azure Machine Learning.

Lorsqu’un projet est prêt pour l’opérationnalisation, le travail des utilisateurs peut être automatisé dans un pipeline ML et déclenché selon une planification ou par une requête HTTPS.

Vous pouvez déployer des modèles sur la solution d’inférence managée, à la fois pour les déploiements en temps réel et par lots, en faisant abstraction de la gestion de l’infrastructure généralement requise pour le déploiement de modèles.

Entraîner des modèles

Dans Azure Machine Learning, vous pouvez exécuter votre script d’apprentissage dans le cloud ou créer un modèle à partir de zéro. Les clients apportent souvent des modèles qu’ils ont créés et formés dans des infrastructures open source pour pouvoir les opérationnaliser dans le cloud.

Ouverture et interopérabilité

Les scientifiques des données peuvent utiliser des modèles Azure Machine Learning qu’ils ont créés dans des frameworks Python courants :

  • PyTorch
  • TensorFlow
  • scikit-learn
  • XGBoost
  • LightGBM

D’autres langages et infrastructures sont également pris en charge :

  • R
  • .NET

Pour plus d’informations, consultez Intégration open source à Azure Machine Learning.

Caractérisation automatisée et sélection d’algorithmes

Dans un processus répétitif et fastidieux, dans le ML classique, les scientifiques des données utilisent leur expérience et leur intuition préalables pour sélectionner la caractérisation et l’algorithme de données appropriés pour la formation. Le ML automatisé (AutoML) accélère ce processus. Vous pouvez l’utiliser via l’interface utilisateur de Machine Learning studio ou le Kit de développement logiciel (SDK) Python.

Pour plus d’informations, consultez Qu’est-ce que le Machine Learning automatisé ?.

Optimisation des hyperparamètres

L’optimisation des hyperparamètres, ou réglage des hyperparamètres, peut représenter une tâche fastidieuse. Le Machine Learning peut automatiser cette tâche pour des commandes paramétrables arbitraires avec peu de modification de votre définition de travail. Les résultats sont visualisés dans le studio.

Pour plus d’informations, consultez Régler les hyperparamètres.

Apprentissage distribué multinœud

L’efficacité des tâches d’apprentissage du Deep Learning et parfois du Machine Learning classique peut être considérablement améliorée grâce à l’apprentissage distribué multinœud. Les clusters de calcul Azure Machine Learning et le calcul serverless offrent les dernières options GPU.

Pris en charge via Azure Machine Learning Kubernetes, les clusters de calcul Azure Machine Learning et le calcul serverless :

  • PyTorch
  • TensorFlow
  • MPI

Vous pouvez utiliser la distribution MPI pour Horovod ou une logique multi-nœuds personnalisée. Apache Spark est pris en charge via le calcul Spark serverless et le pool Spark Synapse attaché qui utilise des clusters Spark Azure Synapse Analytics.

Pour plus d’informations, consultez Formation distribuée avec Azure Machine Learning.

Parallélisme embarrassant de l’apprentissage

La mise à l’échelle d’un projet ML peut nécessiter une mise à l’échelle au parallélisme embarrassant de l’entraînement du modèle. Ce modèle est courant pour les scénarios tels que la prévision de la demande, où un modèle peut être formé pour de nombreux magasins.

Déployer des modèles

Pour mettre un modèle en production, vous déployez le modèle. Les points de terminaison gérés d’Azure Machine Learning simplifient la création de l’infrastructure nécessaire au scoring (inférence) des modèles par lots ou en temps réel (en ligne).

Scoring en temps réel et par lots (inférence)

Le scoring par lots, ou inférence par lots, implique d’appeler un point de terminaison avec une référence à des données. Le point de terminaison de traitement par lots exécute les tâches de manière asynchrone pour traiter les données en parallèle sur les clusters de calcul et les stocker en vue d’une analyse plus poussée.

Le scoring en temps réel,ou l’inférence en ligne, impliquent l’appel d’un point de terminaison avec un ou plusieurs modèles de déploiement et la réception d’une réponse en temps quasi réel via HTTPS. Le trafic peut être divisé entre plusieurs déploiements, ce qui permet de tester de nouvelles versions de modèle en détournant une certaine quantité de trafic initialement et en l’augmentant, après l’établissement de la confiance, dans le nouveau modèle.

Pour plus d’informations, consultez l’article suivant :

MLOps : le DevOps pour le Machine Learning

L’outil DevOps pour les modèles ML, souvent appelé opérations d’apprentissage automatique, est un processus de développement de modèles pour la production. Le cycle de vie d’un modèle, de l’apprentissage au déploiement, doit être, sinon reproductible, du moins auditable.

Cycle de vie des modèles ML

Diagram that shows the machine learning model lifecycle * MLOps.

Cf. MLOps dans Azure Machine Learning.

Intégrations permettant le MLOps

Le Machine Learning est conçu avec le cycle de vie du modèle à l’esprit. Vous pouvez auditer ce cycle de vie jusqu’au niveau d’une validation et d’un environnement spécifiques.

Voici quelques-unes des fonctionnalités clés permettant le MLOps :

  • l’intégration de git ;
  • Intégration de MLflow.
  • Planification du pipeline Machine Learning.
  • Intégration d’Azure Event Grid pour les déclencheurs personnalisés.
  • Facilité d’utilisation avec des outils CI/CD tels que GitHub Actions ou Azure DevOps.

Le Machine Learning inclut également des fonctionnalités de supervision et d’audit :

  • Artefacts de travail, tels que les captures instantanées de code, les journaux et d’autres sorties.
  • Traçabilité des données entre les travaux et les ressources, tels que les conteneurs, les données et les ressources de calcul.

Si vous utilisez Apache Airflow, le package airflow-provider-azure-machinelearning est un fournisseur qui vous permet d’envoyer des flux de travail à Azure Machine Learning depuis Apache AirFlow.

Étapes suivantes

Commencez à utiliser Azure Machine Learning :