Azure Machine Learning Service se refait une beauté !

Microsoft a récemment apporté d’importants changements d’architecture du Azure Service Machine Learning, notamment la façon dont vous créez vos modèles, les versionner et les déployer. L’objectif de ce changement étant de faciliter la tuyauterie aux développeurs, de limiter l’apprentissage de nouveaux outils mais aussi de simplifier l’intégration des composants existants dans l’écosystème Azure.
Ce service est récemment passé en GA et peut donc être utilisé pour vos futurs mises en production. Je vous propose à travers cet article, un aperçu des nouvelles fonctionnalités d’Azure Machine Learning Service.
Les fonctionnalités supprimées d’Azure Machine Learning Service
Plusieurs composants ont déjà disparu ou vont être progressivement supprimés. Je pense notamment à l’ancienne architecture qui avait un système de gestion des worskpaces, des expériences et des déploiements pas très clairs ou plutôt difficile à prendre en main. Microsoft a donc décidé d’unifier l’ensemble de ses services et de l’exposer sous forme d’un tout. Nous le verrons plus en détail dans la suite de cet article.
Workbench is dead : rest in peace
L’application, telle que vous la connaissiez, ne sera plus maintenue dans quelques mois. Une nouvelle interface graphique qui se rapproche fortement de ce qui existait déjà est disponible depuis le portail Azure ou dans Vs Code. Cela met donc fin à tous les problèmes d’installation ou de configuration que vous avez pu rencontrer ces derniers mois.
Model Management, Workspace et Experimentation Account
Pour ceux qui s’en rappellent, pour configurer workbench , il fallait avoir créé séparément ces trois principaux composants depuis le portail Azure. Franchement, en termes d’expérience utilisateur on pouvait faire mieux. Et d’ailleurs, grâce aux différents feedbacks des utilisateurs, les équipes de Microsoft en charge du produit ont décidé de faire plus simple en les regroupant en un seul composant que nous verrons plus en détail par la suite.
Euh, du coup je fais quoi de mon code ?
Pas de panique, vous avez la possibilité de migrer vos anciens artifacts très rapidement dans le nouveau service. Vous pourrez également visualiser toutes vos anciennes expériences dans la nouvelle interface (en tout cas pour l’instant).
Si vous souhaitez procéder à la migration de vos données vers la dernière version d’Azure Machine Learning service, je vous recommande de suivre la procédure décrite sur cette page.
Les nouvelles fonctionnalités d’Azure Machine Learning Service
Voyons maintenant plus en détail à quoi ressemble cette nouvelle architecture et quelles sont les nouvelles fonctionnalités qui ont été intégrées et qui pourront vous simplifier la vie.
(From Azure Documentation)
On constate une séparation nette entre la phase d’expérimentation du data scientist (training, feature tuning, parameter tuning , etc.) et la phase d’industrialisation. Ce qui fait le lien entre ces deux phases, c’est votre espace de travail. Le Datastore vous permet de partager des fichiers entre vos différentes cibles de calculs sans vous préoccuper de la tuyauterie. Cela peut être un blob storage ou un file share par exemple.
Pour faire simple, pour créer un projet Machine Learning dans Azure, il vous suffit de créer un espace de travail depuis le portail Azure ou via Azure Cli. Cela vous donne automatiquement accès aux composants suivants :
-
Cible de calcul
Vous pouvez décider d’exécuter vos différentes tâches sur des ordinateurs distants. Par exemple, distribuer vos calculs sur un cluster AKS ou utiliser Azure Batch pour optimiser vos temps d’entraînements.
-
Experiences
Contient l’ensemble des entraînements réalisés dans cette espace de travail. Vous pouvez suivre différentes métriques au cours du temps ainsi que les paramètres associés.
-
Models
Contient l’ensemble des models enregistrés et versionnés au cours des différentes expériences. Un model est simplement un objet serialisé et persisté sur disque en local ou à distance. En python, cela se fait grâce au package Pickle.
-
Images
Contient une version d’un model ainsi que toutes les dépendances nécessaires à son exécution. Par exemple, un script python peut dépendre d’autres scripts python non installables via Pip ou Conda. Il sera donc packagé dans l’image finale. Actuellement, seuls les images Docker sont supportées.
-
Déploiements
Une fois votre image prête, vous pouvez décider de la déployer dans un ACI ou un IoT Edge par exemple. Cette section vous permet de lister l’ensemble des déploiements liés à votre espace de travail.

Auto ML : l’apprentissage automatique
Disponible avec le sdk python, cette fonctionnalité vous permet d’entraîner des modèles sans explicitement choisir un algorithme.
Le sdk se charge de choisir le meilleur modèle possible selon la tâche que vous souhaitez effectuer. Par exemple, si ce qui vous intéresse est de prédire le nombre de lecteurs de cet article ou de les classer par profil, il suffit de préciser que vous souhaitez effectuer une régression ou une classification et c’est tout. Le framework se charge de sélectionner le modèle le plus optimal parmi l’ensemble des algorithmes possibles.
Efficace lorsqu’on débute en Machine Learning et qu’on veut avoir des résultats très rapidement sans pour autant se pencher sur les différents algorithmes et le tuning des paramètres. Ce qui peut s’avérer perturbant au tout début.
(Auto ML Process From Azure Documentation)
Vous pouvez aller encore plus loin en black listant des algorithmes ou en indiquant quels aspects du modèle vous intéresse le plus. Par exemple la précision au recall pour des actions de classification.
Machine Learning Pipeline
Théoriquement semblable aux Pipelines classiques de Machine Learning mais saupoudré d’une couche de simplicité dans son utilisation, il permet, néanmoins, de faire de belles choses.

On peut par exemple définir ces différentes étapes de manière séquentielle et les exécuter chacune sur des cibles de calcul distinctes. Par exemple, booster uniquement la phase de training en sélectionnant une machine plus puissante.
Application Insight
Vous pouvez désormais superviser les applications de Machine Learning déployées sur les différentes cibles. L’activation de ce composant est très simple et s’effectue au déploiement du service.
Field-programmable gate array
Il est possible d’accélérer la création de vos modèles de Machine Learning en les déployant sur des circuits intégrés de type FPGA. Vous pouvez lire la doc à ce sujet pour vous faire une idée.
Aller plus loin
Les projets de Machine Learning sont très itératifs et nécessitent de déployer de manière continue des mises à jour dans vos différents environnements tout en garantissant une disponibilité de l’application. Il y a donc matière à réflexion sur les questions de DevOps en Machine Learning et en Intelligence Artificielle de manière générale.