Annonce de la mise à disposition générale du service Azure Machine Learning : un coup d'œil sous le capot

Publié le 4 décembre, 2018

Group Program Manager, Microsoft Azure

Nous annonçons aujourd'hui la mise à disposition générale du service Azure Machine Learning.

Le service Azure Machine Learning contient de nombreuses fonctionnalités avancées conçues pour simplifier et accélérer le processus d'élaboration, d'apprentissage et de déploiement de modèles de Machine Learning. Le Machine Learning automatisé permet aux scientifiques des données de tous niveaux d'identifier plus rapidement les algorithmes et les hyperparamètres appropriés. La prise en charge des frameworks open source les plus courants, comme PyTorch, TensorFlow et Scikit-Learn, permet aux scientifiques des données d'utiliser les outils de leur choix. Les fonctionnalités de Machine Learning de DevOps améliorent la productivité en permettant le suivi des essais et la gestion des modèles déployés dans le cloud et à la périphérie. Toutes ces fonctionnalités sont accessibles à partir de n'importe quel environnement Python, y compris des postes de travail des scientifiques des données.

Nous avons conçu le service Azure Machine Learning en collaboration étroite avec nos clients. Des milliers d'entre eux l'utilisent quotidiennement pour améliorer leur service clientèle, élaborer de meilleurs produits et optimiser leurs opérations. Vous trouverez ci-dessous deux exemples de clients.

TAL, première compagnie d'assurance-vie d'Australie fondée il y a 150 ans, adopte l'IA pour améliorer l'assurance qualité et l'expérience client. Jusqu'à présent, l'équipe d'assurance qualité de TAL ne pouvait examiner qu'un échantillon aléatoire de 2 à 3 % des contrats. Grâce au service Azure Machine Learning, elle est désormais en mesure d'examiner 100 % des contrats.

« Azure Machine Learning permet aux scientifiques des données de TAL de déployer des modèles en quelques heures, au lieu d'y passer des semaines ou des mois, avec des résultats plus rapides et la possibilité de déployer beaucoup plus de modèles qu'auparavant. De ce point de vue, il n'existe rien de comparable à Azure Machine Learning sur le marché. »

– Gregor Pacnik, Innovation Delivery Manager, TAL

Elastacloud, société de conseil en science des données implantée à Londres, utilise le service Azure Machine Learning pour élaborer et exécuter le service Elastacloud Energy BSUoS Forecast, une solution basée sur l'IA qui aide les fournisseurs d'énergies alternatives à mieux prévoir la demande et réduire les coûts.

« Avec Azure Machine Learning, nous prenons en charge BSUoS Forecast sans machines virtuelles et sans rien à gérer. Nous avons créé un service hautement automatisé qui dissimule sa complexité dans des box serverless. »

– Andy Cross, directeur des opérations, Elastacloud

Principes de conception du service Azure Machine Learning

Pour simplifier et accélérer le Machine Learning, Azure Machine Learning s'appuie sur les principes de conception suivants, détaillés dans le reste de ce blog.

  • Permettre aux scientifiques des données d'utiliser un large éventail d'outils de science des données familiers
  • Simplifier l'utilisation des frameworks de Machine Learning et de Deep Learning les plus courants
  • Accélérer le retour sur investissement en offrant des fonctionnalités de bout en bout pour le cycle de vie du Machine Learning

Outils de science des données familiers

Les scientifiques des données souhaitent pouvoir utiliser tout l'écosystème Python de bibliothèques et de frameworks et être en mesure de se former localement sur leur ordinateur portable ou sur leur poste de travail. Les outils utilisés dans le secteur sont très divers, mais il s'agit principalement d'interfaces de ligne de commande, d'éditeurs et IDE, et de notebooks. Le service Azure Machine Learning a été conçu pour prendre en charge l'ensemble de ces outils. Son kit de développement logiciel (SDK) Python est accessible à partir de n'importe quel environnement Python, des IDE tels que Visual Studio Code (VS Code) ou PyCharm, ainsi que des notebooks comme Jupyter et Azure Databricks. Examinons plus en détail l'intégration du service Azure Machine Learning à quelques-uns de ces outils.

Un Jupyter Notebook est un environnement de développement prisé des scientifiques des données qui travaillent en Python. Le service Azure Machine Learning offre une prise en charge robuste des notebooks locaux et hébergés (comme Azure Notebooks), et fournit des widgets intégrés permettant aux scientifiques des données de surveiller visuellement et quasiment en temps réel l'avancement des tâches d'apprentissage, comme illustré ci-dessous. Pour les clients qui ont recours au Machine Learning dans Azure Databricks, les notebooks Azure Databricks peuvent également être utilisés.

Jupyter Notebooks

Visual Studio Code est un éditeur de code source léger mais puissant. Il s’exécute sur votre poste de travail et est disponible en version Windows, macOS et Linux. L'extension Python pour Visual Studio Code combine la puissance des Jupyter Notebooks et celle de Visual Studio Code. Ainsi, les scientifiques des données peuvent progressivement effectuer des essais dans un « style notebook » tout en bénéficiant des fonctionnalités de productivité de Visual Studio Code, comme IntelliSense, le débogueur intégré et Live Share (voir l'illustration ci-dessous).

Extension Python pour Visual Studio Code

Prise en charge des frameworks courants

Les frameworks sont les principales bibliothèques utilisées par un scientifique des données pour générer ses modèles. Le service Azure Machine Learning prend en charge tous les frameworks Python. Les plus courants, Scikit-Learn, PyTorch et TensorFlow, ont été transformés en classe Estimator afin de simplifier l'envoi du code d'apprentissage au système de calcul distant, que ce soit sur un seul nœud ou dans le cadre d'un apprentissage réparti sur plusieurs clusters de GPU. En outre, la prise en charge ne se limite pas aux frameworks de Machine Learning. Tous les packages du vaste écosystème Python peuvent être utilisés.

Les clients rencontrent souvent des problèmes lorsqu'ils essaient d'utiliser plusieurs frameworks pour élaborer des modèles et les déployer sur diverses plateformes matérielles et OS. En effet, les frameworks n'ont pas été conçus pour être interchangeables et requièrent donc des optimisations spécifiques pour les plateformes matérielles et OS. Pour remédier à ces problèmes, Microsoft a collaboré avec des leaders du secteur, comme Facebook et AWS, ainsi qu'avec des fabricants de matériel informatique, pour développer la spécification Open Neural Network Exchange (ONNX), qui permet de décrire les modèles de Machine Learning dans un format standard accessible. Le service Azure Machine Learning prend en charge ONNX et permet aux clients de déployer, gérer et surveiller facilement les modèles ONNX. En outre, afin de fournir une plateforme logicielle cohérente pour l'exécution des modèles ONNX dans le cloud et à la périphérie, nous avons aujourd'hui annoncé la publication du runtime ONNX en open source. Nous vous invitons à rejoindre la communauté et à contribuer au projet ONNX.

Cycle de vie du Machine Learning de bout en bout

Azure Machine Learning s'intègre en toute transparence aux services Azure afin de fournir des fonctionnalités de bout en bout pour le cycle de vie du Machine Learning, qui comprend la préparation des données, l'expérimentation, l'apprentissage des modèles, la gestion des modèles, le déploiement et la surveillance.

Préparation des données

Les clients peuvent utiliser les fonctionnalités de la plateforme de données enrichie d’Azure, comme Azure Databricks, pour gérer et préparer leurs données au Machine Learning. Le kit de développement logiciel (SDK) DataPrep est disponible en complément du SDK Azure Machine Learning Python pour simplifier les transformations de données.

Formation

Le service Azure Machine Learning offre des fonctionnalités de calcul distribuées transparentes qui permettent aux scientifiques des données de procéder à la montée en charge de l'apprentissage de leur ordinateur portable ou poste de travail local vers le cloud. Le calcul s'effectue à la demande. Les utilisateurs paient uniquement le temps de calcul utilisé, et n'ont aucun cluster de GPU ou d'UC à gérer et entretenir.

Exemple de code Azure Machine Learning

Les professionnels des données, qui ont déjà investi dans Apache Spark, doivent se former aux clusters Azure Databricks. Le kit de développement logiciel (SDK) du service Azure Machine Learning est intégré à l'environnement Azure Databricks et peut étendre celui-ci de manière transparente pour l'expérimentation, le déploiement de modèles et la gestion.

Expérimentation

Les scientifiques des données élaborent leur modèle en suivant un processus d'expérimentation, en parcourant leurs données et leur code d'apprentissage à plusieurs reprises, jusqu'à ce que le modèle leur fournisse les résultats souhaités. Le service Azure Machine Learning offre de puissantes fonctionnalités qui permettent d'accroître la productivité des scientifiques des données tout en améliorant la gouvernance, la répétabilité et la collaboration pendant le processus de développement du modèle.

1. Grâce au Machine Learning automatisé, les scientifiques des données peuvent pointer vers le jeu de données et un scénario (régression, classification ou prévision), et le Machine Learning automatisé utilise des techniques avancées pour proposer un nouveau modèle en ayant recours à l'ingénierie des fonctionnalités, à la sélection de l'algorithme et au balayage des hyperparamètres.

2. L'optimisation des hyperparamètres des modèles existants permet une exploration rapide et intelligente des hyperparamètres, ainsi que la fin prématurée des tâches d'apprentissage non performantes, ce qui améliore la précision des modèles.

3. Les pipelines de Machine Learning permettent aux scientifiques des données de modulariser l'apprentissage de leur modèle en étapes distinctes telles que le déplacement des données, les transformations de données, l'extraction des fonctionnalités, l'apprentissage et l'évaluation. Les pipelines de Machine Learning constituent un mécanisme d'automatisation, de partage et de reproduction des modèles. Ils génèrent également des gains de performances en mettant en cache les résultats intermédiaires au fil de l'itération menée par le scientifique des données dans la boucle interne de développement du modèle.

Pipelines de Machine Learning

4. Enfin, l'historique des exécutions capture chaque exécution d'apprentissage, les performances du modèle et les mesures associées. Nous conservons une trace du code, des calculs et des jeux de données utilisés lors de l'apprentissage du modèle. Le scientifique des données peut comparer les exécutions, puis sélectionner le « meilleur » modèle. Une fois sélectionné, le modèle est enregistré dans le registre des modèles, ce qui permet de vérifier les modèles en production, notamment leur provenance.

Déploiement, gestion des modèles et surveillance

Lorsque les scientifiques des données ont terminé le développement du modèle, celui-ci doit être mis en production, géré et surveillé. Le registre des modèles du service Azure Machine Learning conserve une trace des modèles, l'historique de leurs versions, leur lignée et leurs artefacts. 

Le service Azure Machine Learning permet un déploiement dans le cloud et à la périphérie, avec un scoring en temps réel et par lots en fonction des besoins du client. Dans le cloud, le service Azure Machine Learning approvisionnera, équilibrera la charge et mettra à l'échelle un cluster Kubernetes via Azure Kubernetes Service (AKS), ou s'attachera au cluster AKS du client. Cela permettra de déployer plusieurs modèles en production. Le cluster sera automatiquement mis à l'échelle en fonction de la charge. Les activités de gestion des modèles peuvent être effectuées à l'aide du kit de développement logiciel (SDK) et de l'expérience utilisateur Python, ou de l'interface de ligne de commande et de l'API REST, qui peuvent être appelés depuis Azure DevOps. Ces fonctionnalités intègrent pleinement le cycle de vie du modèle au reste du cycle de vie des applications de nos clients.

Exemple de code

Les modèles du registre peuvent également être déployés sur des appareils de périmètre avec intégration au service Azure IoT Edge (en préversion).

Une fois le modèle en production, le service recueille les données de télémétrie de l'application et du modèle, ce qui permet de surveiller le modèle en production pour vérifier l'exactitude opérationnelle ainsi que l'exactitude du modèle proprement dit. Les données capturées lors de l'inférence sont renvoyées aux scientifiques des données et peuvent être utilisées pour déterminer les performances du modèle, la dérive des données et la dégradation du modèle.

Pour une inférence extrêmement rapide et peu coûteuse, le service Azure Machine Learning propose des modèles à accélération matérielle (en préversion) qui fournissent une accélération du modèle de vision par le biais des FPGA. Cette fonctionnalité est propre au service Azure Machine Learning et offre des avantages de premier ordre en termes de latence, ainsi que des avantages en termes de coût/transaction pour les travaux de traitement hors connexion.

Participer

La conception, le développement et la mise à disposition du service Azure Machine Learning n'ont été possibles que grâce à l'étroite collaboration que nous avons entretenue avec nos clients et partenaires. Nous sommes impatients de vous aider à simplifier et accélérer vos processus de Machine Learning en vous fournissant la plateforme de Machine Learning en ligne la plus accessible, la plus productive et la plus facile à utiliser.

Pour entamer ce passionnant voyage en notre compagnie, consultez le guide de démarrage.