Azure Machine Learning évolue !
Nous avons consacré de nombreux billets sur ce blog à Azure Machine Learning et nous sommes heureux de partager aujourd'hui une nouvelle concernant ce service : Azure Machine Learning évolue !
Comme annoncé cette semaine lors de la conférence Ignite 2017 qui se déroule actuellement à Orlando aux Etats-Unis du 25 au 27 septembre, de nouveaux services pour Azure Machine Learning ont été annoncés pour gérer vos projets de bout en bout, de la préparation des données au déploiement de vos modèles sur des cibles d'exécution distantes en passant par l'entrainement.
Cette évolution fait écho à un ensemble de tendances que l'on peut observer : scenarii d'entraînement et de scoring hybrides, utilisation d'une diversité de capacité matériel (CPU/GPU/FPGA/ASIC/appareil), déploiement du modèle entrainé à la source de l'évènement (dans le Cloud, en bordure ou en local), etc.
Depuis l'apparition – il y a 3 ans - du service Azure Machine Learning que vous connaissez, une plateforme à destination des scientifiques de la donnée (Data Scientists ) pour construire et déployer des expérimentations graphiquement, vous nous avez dit que vous appréciez la commodité de cet environnement, avec à la clé, des centaines de milliers de modèles entrainés déployés.
Ce service désormais renommé Azure Machine Learning Studio continue donc à vous proposer la création rapide d'une expérimentation, la disponibilité « sur étagère » de plus de 100 modules préconfigurés pour la préparation des données, l'entraînement et l'évaluation, une extensibilité via les modules R et Python, ou encore l'entrainement et le déploiement de type Serverless.
Vous nous avez aussi dit que vous pouviez avoir besoin d'encore plus de contrôle sur les données et l'entrainement, que vous souhaitiez disposer de plus d'options pour le déploiement des modèles, de la possibilité d'utiliser tous les Frameworks, etc.
Pour répondre à ces attentes, de nouveaux services sont désormais disponibles en version préliminaire publique au côté d'Azure Machine Learning Studio avec :
- Le service d'expérimentation (Experimentation Service) pour aider les scientifiques de la donnée à augmenter le rythme de leurs expérimentations avec les mégadonnées et les diverses capacités matérielles à portée de main dont les GPUs,
- Le service de gestion de modèles (Model Management Service) pour héberger, versionner, gérer et monitorer les modèles de Machine Learning.
Ces services s'accompagnent d'un nouvel outillage au travers de :
- L'« établi » (Workbench), un environnement client pour la préparation des données et la gestion des expériences,
- Une nouvelle extension pour l'IA dans Visual Studio Code.
Ces évolutions visent à vous permettre de construire, déployer et
gérer vos modèles à l'échelle, de commencer à construire avec les outils, les Frameworks et les plateformes que vous connaissez déjà, de booster votre productivité avec le développement en Agile, etc.
Voyons ce qu'il en est !
Pourquoi une évolution significative d'Azure Machine Learning ?
Azure Machine Learning a été lancée il y a 3 ans avec pour objectif de permettre aux scientifiques de la donnée et aux débutants – pour répondre à une accélération de l'adoption de l'IA par les développeurs sans formation avancée en Data Science ou IA - de créer et déployer des modèles de Machine Learning en services web à l'aide d'une interface graphique intuitive et ergonomique.
Néanmoins, comme nous l'avons rapidement souligné précédemment, de nouvelles tendances confirmées par vos retours d'utilisateur ont émergé auxquelles Azure Machine Learning ne pouvait répondre sans évolution majeure :
- Des scénarios hybrides d'entraînements et de scoring. De plus en plus de scientifiques de la donnée souhaitent entraîner leur modèle dans un endroit différent de celui où il sera déployé avec les données récoltées pour les prédictions, par exemple, des données sensibles que vous souhaitez conserver en local mais néanmoins la possibilité d'utiliser un modèle qui peut être déployé dans le cloud ou l'inverse.
- Une diversification des capacités matériel et des Frameworks. Ces dernières années, on observe une augmentation des plus significatives de la puissance à disposition avec les CPU, GPU, FPGA, etc. De plus, de nombreux Framework notamment pour le Deep Learning ont pointés le « bout de leur nez » qu'il s'agisse de Microsoft Cognitive Toolkit (CNTK), Google TensorFlow, Kerkeley Caffe, Keras, etc. Il s'avère donc impératif de vous permettre de choisir à la fois le type matériel et le Framework adaptés à votre besoin sans devoir revoir le code en profondeur.
- Le déploiement du modèle entrainé au plus proche de l'événement source. Avec l'avènement de l'Internet de vos objets (IoT), les développeurs ont besoin de consommer des modèles au plus proche de la source de la donnée pour limiter le temps de latence, répondre à une connectivité intermittente, etc. On peut citer l'exemple de l'informatique embarquée pour de la maintenance prédictive.
- L'évolutivité (scalability) de la puissance. Avec le Cloud et les environnements Spark à la demande (dans un cluster Azure HDInsight par exemple), la puissance de calcul peut maintenant être adaptée à la demande. En fonction de votre besoin et de l'architecture choisie, les modèles et les calculs afférents nécessaires doivent être adaptables en conséquence sans modification lourde du code originel.
- L'accessibilité des techniques de Deep Learning : Avec les nouveaux Framework de Deep Learning, de plus en plus de développeurs souhaitent intégrer l'IA dans leurs solutions.
Dans ce contexte, les nouveaux services d'Azure Machine Learning avec l'outillage associé permettent :
- D'accélérer la préparation de vos données pour vos modèles.
- De gérer vos différents modèles sur un même projet en local ou dans le cloud Azure, de la gestion des dépendances à la télémétrie en passant par la gestion de versions collaboratives grâce à Git.
- De faciliter l'opérationnalisation de vos projets en vous permettant de déployer une API REST de votre modèle empaqueté dans un conteneur Docker déployable dans tout contexte supportant la technologie Docker (dans le cloud avec Azure Container Service, en bordure pour l'IoT avec Azure IoT Edge, etc.)
- De faciliter l'explication de vos modèles en fournissant un service performant de télémétrie des performances du modèle (précision, sensibilité, AUC, etc.).
Vous avez dit service d'expérimentation ?
Avec le service d'expérimentation (Experimentation Service), vous pouvez gérer l'ensemble de vos différents travaux qu'ils soient exécutés en local sur votre ordinateur, dans un environnement en bordure ou dans la plateforme cloud de Microsoft Azure par exemple.
Le service vous permet d'utiliser votre environnement de développement intégré (EDI) favori, avec tout Framework.
Vous pouvez reproduire d'une simple commande votre environnement de développement sur une machine virtuelle distante ou sur un cluster Azure HDInsight avec Spark avec les dépendances nécessaires à votre projet.
Grâce à l'utilisation de Git et des repos compatibles pour sa gestion des versions, les résultats et l'historique de vos travaux sont sauvegardées. Vous pouvez ainsi aisément revenir en arrière sur vos travaux ou comparer vos différents modèles.
Vous travaillez en équipe ? Grâce à la puissance d'Azure et à l'intégration Git, vous pouvez partager et visualiser les résultats et l'avancement des personnes avec lesquelles vous collaborez tout en définissant un contrôle d'accès sur vos travaux.
Une nouvelle gestion des modèles ?
Un accent a été particulièrement mis sur l'opérationnalisation de vos projets. Grâce au nouveau service de gestion de modèles (Model Management Service), le déploiement et le suivi de vos modèles d'analyse et prédictions de données n'ont jamais été aussi simples.
Une fois satisfait de votre modèle prédictif, vous pouvez le déployer en tant que service Web dans Azure. Une API REST est automatiquement créée en se basant sur votre fonction de scoring et votre modèle. Vous pourrez ainsi effectuer des appels HTTP depuis vos solutions et profiter de la puissance de vos modèles pour prédire de nouvelles données.
L'étendue des possibilités ne s'arrête pas là ! Ainsi, par exemple, d'une simple commande, votre modèle est empaqueté dans un conteneur Docker. Vous pouvez ainsi profiter de la facilité de déploiement dans les environnements supportant Docker comme vos machines de développement et de test, des clusters Kubernetes dans le Cloud avec Azure Container Service ou encore dans vos environnements en bordure avec Azure IoT Edge pour l'Internet de vos objets.
Un « établi » sur son bureau ?!
Pour compléter la gamme des services précédents, Azure ML Workbench, un logiciel client pour le bureau , est proposé également dans cette redéfinition des services Azure Machine Learning.
Celui-ci offre une interface graphique pour la gestion et le suivi de vos différents travaux soumis à travers le service d'expérimentation, l'exécution et le déploiement de vos modèles dans des environnements distants ou locaux à travers le service de gestion de modèles, l'utilisation des bloc-notes Jupyter embarqués.
Last but not least, celui-ci facilite la préparation de vos données pour vos modèles en utilisant des technologies à la pointe comme PROSE provenant de Microsoft Research pour une préparation intelligente.
Quelques captures d'écran pour vous donner un aperçu quant au bloc-notes Jupyter intégré,
Au suivi des différentes exécutions avec la télémétrie
Ou encore aux métriques associées au jeu de données.
L'« établi » vous permet de configurer votre IDE comme Visual Studio Code qui peut être invoqué directement depuis. Ceci nous amène à l'extension qui est proposée dans ce contexte.
Visual Studio Code Tools for AI
Enfin, grâce à la nouvelle extension Visual Studio Code Tools for AI, vous disposez d'une intégration poussée avec Azure Machine Learning : environnement de développement de bout en bout, du début du projet en passant par l'entraînement du modèle, support des entraînements à distance, gestion des travaux d'exécution, etc., et ce, en complément de toute la puissance de Visual Studio Code (Git, Python, Jupyter, etc.)
Les services d'Azure Machine Learning sont ainsi directement utilisable depuis la palette de commandes.
L'extension vous permet enfin de parcourir les différents exemples d'Azure Machine Learning.
L'installation et les premiers pas avec cette extension sont décrits dans un billet de blog ici.
En guise de conclusion
Ce billet nous a permis de partager avec vous les nouveaux services d'Azure Machine Learning disponibles en version préliminaire publique avec le service d'expérimentation et le service de gestion de modèles ainsi que les nouveaux outils associés avec l'« établi » (Azure ML Workbench) et l'extension VS Code Tools For AI à destination de Visual Studio Code.
L'introduction de ces nouvelles composantes permettent d'étoffer plus que jamais le portefeuille de produits et de services que Microsoft met à votre disposition pour vos projets d'IA et de Machine Learning.
La session d'introduction sur la plateforme d'IA et de Machine Learning de la conférence Ignite 2017 en relation est accessible ici.
Vous voulez en savoir plus sur Azure Machine Learning ? Nous allons prochainement consacrer une série de billets qui sera publiée pour vous aider à prendre en main ces différents services à travers des cas d'usage (la maintenance prédictive par exemple).
En attendant, et au-delà du billet d'annonce Diving deep into what's new with Azure Machine Learning du groupe produit, vous pouvez visionner une (première) présentation d'Azure Machine Learning Workbench ici et retrouver la documentation officielle ici.
Rien n'empêche aussi de vous lancer dès maintenant ! Toutes les informations sont ici pour démarrer.