L’écosystème d’Azure ML
Après une première introduction sur Azure ML, nous vous proposons d’aborder plus en détail son fonctionnement d’Azure ML et ses interactions avec son environnement.
Les données
Nous avons vu précédemment que pour entraîner un algorithme d’apprentissage automatique, il nous faut un certain nombre d’échantillons mathématiquement modélisés par des vecteurs, où chaque composante représente un attribut. Ces échantillons peuvent être représentés sous forme de tableau, où chaque ligne correspond à un échantillon, et chaque colonne correspond à un attribut.
Le formats de données
Plusieurs structures de données sont adaptées pour le stockage des tableaux, entre autres les fichiers utilisant des formats comme CSV ou XLSX, et les bases de données SQL.
Attardons-nous un instant sur le format CSV (Comma-Separated Values). Le format CSV permet de stocker des éléments dans un fichier texte, où chaque échantillon est stocké en ligne, et où chaque attribut est séparé par un séparateur virgule. Il est aussi possible de séparer les éléments par des tabulations, on parle alors de TSV.
Les fichiers XLSX conformes à la norme ISO/IEC 29500 reprennent cette philosophie avec des fonctionnalités supplémentaires.
Il est possible de générer tous ces types de fichier directement avec Excel.
La norme ISO/IEC 9075 SQL (Structured Query Language) désigne une manière de structurer le stockage d’un grand volume de données afin d’y accéder rapidement. Il existe plusieurs façons de stocker les données sous forme de base de données SQL. Nous les détaillerons un peu plus loin.
Remarque importante : Bien que les fichiers texte portent une extension (TXT, CSV, …), ces derniers ne sont que des fichiers remplis de 0 et de 1 : c’est leur interprétation qui donne du texte. La transformation d’un fichier de bits en texte est appelée décodage, la transformation inverse est appelée encodage. Il existe de nombreuses méthodes d’encodage (plus de précisions ici), celle retenue dans Azure ML est appelée UTF-8 car elle est compatible avec la plupart des systèmes. Donc si un texte ne s’affiche pas correctement, convertissez-le en UTF-8 ;)
L’emplacement des données
Les données destinées à être utilisées dans Azure ML peuvent aussi bien être stockées en local que dans le cloud avec la plateforme Microsoft Azure.
En local, les données peuvent être stockées sous forme de fichiers plats, XLSX (Office Open XML) ou dans une base de données SQL (dans ce cas il est aisé d’obtenir un fichier CSV). Pour importer des données locales dans Azure ML, il est possible de charger un fichier directement.
Il est aussi possible d’importer des données depuis l’environnement Azure. Plusieurs options sont à considérer :
- Stockage Azure : une solution de stockage de fichiers plats (CSV, HDFS…) dans des objets BLOB ou de tables offrant des fonctionnalités NoSQL (Not only SQL).
- Base de données SQL Azure : un service de base de données relationnelle intégralement géré dans Azure.
- Machine virtuelle SQL Server dans Azure : des images prêtes à l’emploi qui permettent de profiter de fonctions particulières seulement disponibles dans SQL Server.
Il est possible d’écrire des requêtes directement depuis Azure ML en utilisant Azure HDInsight (Hadoop), et plus particulièrement, des requêtes PIG ou HIVE portant sur des fichiers dans un compte de stockage Azure.
Le cœur d’Azure ML, Azure ML Studio
La composante principale d’Azure ML est Azure ML Studio. Il s’agit de l’outil de conception de modèles d’apprentissage automatique pour le scientifique de données.
Azure ML Studio permet d’importer des données, de les mettre en forme, de les utiliser pour entraîner un modèles, évaluer les performances de ce modèle et mettre ce modèle en production, rien que ça !
Les prochains billets seront consacrés à la découverte de l’environnement Azure ML Studio.
La mise en production des modèles sous forme de service Web
Comme nous l’avons évoqué dans un précédent billet, une fois les modèles conçus, ces derniers peuvent être publiés sous forme de service Web REST et donc d’une API REST hébergée dans le cloud et prête à être invoquée.
Les services Web REST sont commodes et proposent une approche souple pour le partage. Identifiables par une URI / URL, il est possible de les appeler depuis n’importe quelle application Web, application mobiles ou encore depuis l’environnement Power BI pour Office 365. Nous verrons dans un prochain billet un exemple d’utilisation des services Web depuis la plateforme .NET. Des exemples de code sont proposés pour invoquer le service Web REST en C#, R et Python.
Il est également possible d’exécuter le service Web REST sur un fichier. Vous trouverez toute la documentation nécessaire sur Azure ML dans la section service Web au niveau du Centre de documentation Azure ML.