Comprendre les bases de Azure Machine Learning

azure machine learning

Azure Machine Learning est un outil end-to-end permettant de gérer les pipelines de Machine Learning et de Deep Learning.

Il permet d'automatiser l'apprentissage sur de grands pools de ressources informatiques, aide à déployer des modèles en production et à gérer l'inférence pour les applications en production.

Au fur et à mesure que vous adoptez Azure ML dans votre organisation, il est bon de comprendre sa structure et ses composants de manière plus approfondie.
Après avoir brièvement passé en revue ses capacités, nous décrirons ses principaux composants, notamment les espaces de travail, les calculs et les expériences.

Qu’est-ce que Azure 
Machine Learning ?

Azure Machine Learning (ML) fournit des outils conçus pour aider les ingénieurs de la donnée à construire, déployer et entraîner leurs algorithmes d'apprentissage automatique.

Vous pouvez utiliser Azure ML pour entraîner tout type de modèles de Machine Learning, notamment les algorithmes supervisés et non supervisé.

Azure ML prend en charge un large éventail de langages, notamment Python et R, ainsi qu'une série de SDK (kit de développement logiciel).
Vous pouvez également exploiter le studio d'Azure ML, qui fournit un espace de travail pour les modèles d'apprentissage automatique et d'apprentissage profond (DL) sans code ou à faible code.

Azure ML fournit de nombreux outils pour les opérations d'apprentissage automatique de bout en bout, notamment :

- Azure ML's designer qui fournit des modules de drag and drop pour construire des expériences et déployer des pipelines.
- Jupyter notebooks qui vous permet d'utiliser des notebooks préétablis ou de créer vos propres notebooks.
- R Scripts ou notebooks qui vous permettent d'utiliser le SDK R lors de l'écriture de votre propre codebase, ou d'utiliser des modules R avec le concepteur.
- Many Models Solution Accelerator qui est basé sur Azure ML. Cette solution vous permet de construire, d'entraîner et de gérer des centaines ou des milliers de modèles ML.

Azure ML offre de nombreuses autres fonctionnalités, comme une CLI d'apprentissage automatique et une extension Visual Studio Code.

La plateforme fonctionne avec des frameworks open source tels que TensorFlow, PyTorch, Ray RLlib pour le reinforcement learning, etc.
Elle s'intègre également à une grande variété de bibliothèques externes comme Git et MLFlow.

Machine Learning Microsoft Azure

Les principaux composants de Azure Machine Learning

Passons en revue les composants de base de l'écosystème Azure Machine Learning.

Espace de travail

Un espace de travail est la ressource centrale d'Azure qui contient vos pipelines de Machine Learning et toutes les ressources connexes. Il s'agit d'un point central pour :

- Gérer les ressources utilisées pour entraîner et déployer les modèles d'apprentissage automatique.
- Stocker les ressources utilisées.

Un espace de travail comprend d'autres ressources Azure qui sont utilisées par l'espace de travail : Azure Container Registry (ACR) ; le compte Azure Storage, utilisé comme datastore par défaut pour l'espace de travail ; Azure Application Insights, utilisé pour la surveillance ; et Azure Key Vault, qui stocke les composants utilisés pour exécuter les modèles.

Calculs

Azure Machine Learning ne se contente pas de gérer les modèles, il fournit également des ressources de calcul que vous pouvez utiliser pour les exécuter.

Azure ML propose deux types de ressources de calcul :

Instance de calcul

Une machine virtuelle (VM) Azure préconfigurée qui comprend des outils et des environnements d'apprentissage automatique. Les instances de calcul sont généralement utilisées comme machines de développement - au cours des premières étapes du développement du modèle, vous pouvez faire tourner une instance et commencer immédiatement à exécuter des notebooks.
Elles peuvent également être utilisées pour exécuter l'entraînement et l'inférence des modèles.

Cluster de calcul

Un cluster de VM avec des capacités de mise à l'échelle automatique. Ils sont adaptés aux opérations d'entraînement de grande envergure et à l'exécution de modèles en production. Lorsque vous soumettez une tâche via Azure ML, le cluster s'adapte automatiquement pour fournir les ressources requises par la tâche.

Datasets et Datastores

Les datasets Azure facilitent l'accès à vos données et leur utilisation.
Azure ML crée des références à vos données, ainsi qu'une copie de leurs métadonnées.
Les données ne sont pas copiées dans Azure ML - elles restent là où elles sont, il n'y a donc aucun coût de stockage supplémentaire et aucun risque pour l'intégrité et la sécurité des données.

Modèles

Dans le cas le plus simple, un modèle est un code qui prend une entrée et produit une sortie.
Un modèle d'apprentissage automatique implique généralement un algorithme, un ensemble de données d'entrée et des hyperparamètres qui affectent la façon dont l'algorithme génère des sorties ou des prédictions.
Après un ou plusieurs cycles d'apprentissage, le modèle a "appris" ce qu'il peut de l'ensemble de données d'entrée et peut générer des prédictions.

Vous pouvez importer des modèles précédemment entraînés dans Azure ML ou importer le code d'un nouveau modèle et utiliser Azure ML pour l'entraîner dans le cloud Azure.
Les modèles sont enregistrés comme faisant partie de l'espace de travail.

Pipeline ML Azure Machine learning


Runs et expériences

Un run est une exécution d'un script d'apprentissage. Une expérience est un ensemble d'exécutions. Les deux sont enregistrées dans l'espace de travail.
Azure Machine Learning enregistre les données de chaque exécution et conserve les informations dans l'expérience.

Cela comprend :
- Les métadonnées d'exécution - timestamp, durée.
- Toute métrique générée par votre script d'entraînement
- Tous les fichiers de sortie téléchargés dans le cadre de l'expérience ou générés par les scripts d'apprentissage.
- Un snapshot complet du dossier contenant vos scripts de pré-exécution.

Les exécutions peuvent avoir des "child runs", et vous pouvez imbriquer plusieurs niveaux d'exécution les uns dans les autres. Cela vous permet d'automatiser des procédures d'apprentissage complexes.

Snapshots

Chaque fois que vous effectuez une exécution, Azure ML prend le répertoire contenant les scripts d'entraînement, le compresse et le copie sur la cible de calcul.
Le script est ensuite exécuté sur une ou plusieurs cibles informatiques.
Le même fichier compressé est stocké dans l'enregistrement de l'exécution, en tant que partie de l'expérience.

Cela permet de savoir quelles expériences ont été exécutées et où, et garantit que les cycles d'apprentissage sont effectués de manière cohérente à chaque fois - contrairement aux procédures ad hoc dans lesquelles les scripts sont copiés et exécutés manuellement sur diverses machines, ce qui est source d'erreurs et difficile à suivre.

Training Workflow

Il peut être utile de comprendre comment Azure Machine Learning fonctionne et entraîne les modèles en arrière plan.

Chaque fois que vous exécutez une expérience dans Azure ML, les étapes suivantes
se produisent :

1/ Une exécution est demandée, avec un snapshot ID qui pointe vers un snapshot du répertoire contenant le modèle de code et les scripts d'apprentissage.
2/ Azure ML démarre, crée un ID d'exécution et un jeton de service d'apprentissage automatique, qui peut être utilisé par les cibles de calcul dans les étapes ultérieures.
3/ L'utilisateur sélectionne une cible de calcul pour l'exécution - il peut s'agir d'une cible hébergée (l'un des deux types de ressources de calcul Azure ML), ou d'une cible non hébergée, qui est simplement une VM ordinaire, sur laquelle l'utilisateur a installé un environnement d'apprentissage automatique.

Le flux de données fonctionne comme suit :

1/ La cible de calcul récupère les informations d'identification SSH à partir du coffre-fort de clés, qui fait partie de l'abonnement Azure.
2/ Le code de gestion Azure ML est écrit sur un partage de fichiers sous le compte Azure Files de l'utilisateur.
3/ Azure ML télécharge le snapshot sur l'instance de calcul
4/ Azure ML configure l'environnement requis sur la cible de calcul, généralement à l'aide d'un conteneur Docker, et définit les variables de configuration et d'environnement. Le conteneur est démarré à l'aide du code de gestion d'Azure ML et exécute le script d'entraînement de l'utilisateur. 5/ Une fois l'entraînement terminé, Azure ML stocke les mesures dans Cosmos DB. Vous pouvez ensuite voir les résultats, tirés du data store Cosmos, dans l'interface utilisateur d'Azure ML.

Microsoft Azure pipeline

Conclusion

Azure Machine Learning utilise intelligemment les services et l'infrastructure Azure, pour vous offrir une véritable gestion de bout en bout des flux de Machine Learning.

Nous avons couvert les composants clés de l'infrastructure Azure ML, notamment :

- Espaces de travail - entité centrale comprenant des modèles, des ressources de calcul et des datasets.
- Datasets - références aux datasets d'apprentissage automatique stockés dans Azure.
- Calculs - VMs Azure ou clusters de VMs qui vous permettent d'exécuter un apprentissage distribuée.
- Runs et Experiments - entités utilisées pour gérer et suivre les itérations d'apprentissage.

Il peut y avoir une courbe d'apprentissage pour apprendre à faire fonctionner l'ensemble du processus sur Azure, mais elle sera bénéfique dès lors que votre organisation commencera à former des modèles à l'échelle et à les déployer auprès des utilisateurs.

N'hésitez pas à nous contacter

En savoir plus

Contactez nos équipes pour en savoir plus sur notre expertise Data

NOUS CONTACTER

Adopter Iziday

Trouver une solution à vos enjeux data n'a jamais été aussi simple

TROUVER UN CONSULTANT