AutoML dans le service Azure Machine Learning et SQL Server – Bien choisir son serveur d impression

introduction

Prenons un exemple typique de la façon dont nous construisons un modèle ML aujourd'hui: nous regroupons différentes sources de données, nous les préparons, nous formons un modèle et, lorsque nous sommes satisfaits de la sortie du modèle, nous le déployons.

Ces différentes étapes impliquent de multiples processus de décision, de transformation et d'enrichissement de données interconnectés, une formation de modèle basée sur des métriques d'optimisation sélectionnées, le réglage et l'optimisation d'hyperparamètres pour les transformateurs de données et les algorithmes ML. , …

Le service Azure Machine Learning et ses fonctionnalités d'AutoML répondent exactement à ce problème, évitent ces étapes itératives et optimisent la qualité du modèle final à partir des objectifs et des contraintes que vous définissez.

Mais quel est le lien avec SQL Server?

– Dans SQL Server 2016, il est possible d'installer R Services, un complément à une instance de moteur de base de données utilisée pour l'exécution du code R et des fonctions sur SQL Server.

– Dans SQL Server 2017, les services R ont été renommés en services d'apprentissage de SQL Server, reflétant l'ajout du langage Python.

– Dans SQL Server 2019 (actuellement en version préliminaire), le langage Java est ajouté aux langages R et Python, ainsi que la prise en charge sous Linux et la haute disponibilité (FCI), la prise en charge des données partitionnées …

C’est bien, la fonctionnalité AutoML du service Azure Machine Learning est disponible en Python! Nous pourrons donc demander à SQL Server une formation au modèle ML et sauvegarder le meilleur d’entre eux dans une base de données pour une utilisation locale.

AutoML

Dans cette section, nous présentons un aperçu de l’approche proposée par AutoML qui a été publiée dans cette étude et que nous vous invitons à étudier pour plus de détails.

Comme nous l'avons mentionné précédemment, Auto-ML vise à automatiser la sélection et l'ajustement du meilleur pipeline ML combinant prétraitement, sélection d'algorithme et optimisation. L'objectif à minimiser est:

Voici un résumé intuitif des étapes suivies par AutoML:

  1. AutoML instancie les pipelines à l'avance et effectue un échantillonnage, ce qui permet une discrétisation de l'espace hyperparamètre du pipeline, un espace qui forme une combinaison de variables discrète et continue.

3. Vous l'aurez compris, l'objectif est de compléter la matrice, l'idée qui sous-tend l'approche, si deux ensembles de données produisent un résultat similaire pour certains pipelines, il est probable que le reste des pipelines produira des résultats similaires. C'est le rôle de cette étape, d'apprendre un modèle latent basé sur la factorisation matricielle probabiliste (PMF). Le PMF est essentiellement un processus gaussien basé sur un modèle latent (GP-LVM).

GP-LVM est une méthode non supervisée d’apprentissage d’un espace latent de taille réduite et de non-linéarité à partir d’un espace d’observation. Il peut également être décrit comme un ACP intégré dans un processus gaussien (PG).

Il est donc supposé que les éléments de Y sont les valeurs d'une fonction variable latente non linéaire avec bruit gaussien additif et moyenne nulle.

La probabilité suivante est donc la suivante:

Puis un avant PG est placé sur F donc pour tout vecteur F, on obtient la densité articulaire suivante:

4. Enfin, les paramètres du GP-LVM sont estimés en maximisant la vraisemblance via la descente de gradient stochastique:

Une fois l'apprentissage terminé, l'espace latent capture la structure des pipelines "type de modèle, hyperparamètres …".

Nous pouvons le voir dans une représentation en 2 dimensions ou dans 5000 pipelines formés sur 576 jeux de données de référence. OpenML, avec la couleur représentant la performance de la métrique AURC:

Dotés des paramètres déduits par le GP-LVM, ils sont ensuite utilisés pour estimer les performances d'un pipeline sur un nouvel ensemble de données avec les formules de prédiction standard d'une régression par PG, produisant ainsi l'estimation et la distribution. a postériori qui caractérise son incertitude.

Enfin, la dernière étape consiste à choisir intelligemment le prochain pipeline à évaluer.

Équipé de l'incertitude produite par la distribution a postériori une fonction utilitaire dite d'amélioration attendue (EI) dirige l'échantillonnage du prochain pipeline dans des zones où une amélioration par rapport à la meilleure performance réalisée jusqu'à présent est plausible.

Une fois que le SI est calculé pour chaque pipeline, le prochain pipeline à évaluer sera le point où le IS atteint son maximum.

Démo

Pour illustrer l'utilisation de la fonctionnalité AutoML dans le service Azure Machine Learning, prenons le même jeu de données dans un article rédigé par Romain sur le service Azure Machine Learning: "Prédire la qualité du vin avec Azure ML" http: / /www.pulsweb.fr/predict-wine-quality-azureml/.

Contrairement à Azure ML qui propose un outil visuel dans le Cloud pour former, créer et déployer un modèle, nous allons travailler dans cet article On Premise de SQL Server et en mode "Code First", mais simplifié, car les différents modèles seront formés et comparés. moi .

Rappel du jeu de données:

Modélisation des préférences viticoles par extraction de données à partir de propriétés physicochimiques. Citation d'utilisation: P. Cortez, A. Cerdeira, F. Almeida, T. Matos et J. Reis. Modélisation des préférences viticoles par extraction de données à partir de propriétés physicochimiques. Dans Decision Support Systems, Elsevier, 47 (4): 547-553, 2009.

– Les échantillons proviennent de vins blancs et rouges du Portugal: Vinho Verde.

– Les données sont publiques, vous pouvez donc reproduire cette expérience.

Le résultat dans notre exemple sera la qualité. Ce dernier est basé sur les données sensorielles médianes d'au moins 3 évaluations effectuées par des experts en vin. Chaque expert a évalué la qualité du vin entre 0 (très mauvais) et 10 (excellent). Le nombre de vins testés est de 1599 pour les rouges et de 4898 pour les blancs.

Avant de commencer, revenons à ce que nous voulons réaliser:

SQL Server 2017 et 2019 peuvent appeler Azure ML Automated Machine Learning pour créer des modèles à partir de données SQL Server. Pour cela, nous allons utiliser la procédure stockée sp_execute_external_script pour appeler des scripts Python.

Remarque: SQL Server 2017 et SQL Server 2019 peuvent être exécutés sous Windows ou Linux. Toutefois, cette intégration n'est pas disponible pour SQL Server 2017 sous Linux.

1. Après avoir installé SQL Server 2017 dans notre cas, nous avons exécuté les scripts:

2. L'étape suivante consiste à installer les bibliothèques d'apprentissage machine à l'aide des commandes suivantes à partir de l'invite de commande en tant qu'administrateur après l'arrêt du service SQL Server:

Remarque: En raison des dépendances et des versions installées sur votre ordinateur, des erreurs peuvent survenir lors de l'installation. Pour corriger la plupart d'entre elles, exécutez la commande suivante à partir du répertoire "PYTHON_SERVICES": "python.exe -m pip install azureml-sdk[AutoML] – ignore-installed ". Ceci installera le SDK AzureML dont le module AutoML fait partie. Nous en profitons pour mettre à jour les modules numpy et Scikit-learn.

3. Pour vérifier l'installation, exécutez en tant qu'administrateur la commande suivante à partir du répertoire "PYTHON_SERVICES": "python -m pip freeze"

4. Démarrez SQL Server et le service "SQL Server Launchpad Service".

5. Dans le Pare-feu Windows, cliquez sur Paramètres avancés et dans Règles sortantes, désactivez "Bloquer l'accès réseau pour les comptes d'utilisateur R locaux dans l'instance SQL Server xxxx".

6. Créez un espace de travail pour le service Azure Machine Learning. Vous pouvez utiliser les instructions décrites dans la documentation.

7. Créer un fichier fichier config.json à l'aide de l'ID d'abonnement, du nom du groupe de ressources et du nom de l'espace de travail utilisé pour créer l'espace de travail. Le fichier est décrit ici

8. Créez un principal de service Azure. Depuis Azure CLI (outil de ligne de commande pour la gestion des ressources Azure). Vous pouvez le faire avec les commandes:

9. Créez la base de données de test "automl", puis exécutez les scripts TSQL "aml_model.sql", "aml_connection.sql", "AutoMLGetMetrics.sql", "AutoMLPredict.sql" et "AutoMLTrain.sql" disponibles sur le compte officiel Azure Apprentissage machine

10. Insérer les valeurs , et ci-dessus dans la table aml_connection et indiquez le chemin absolu de votre fichier config.json. Définissez le nom sur "Par défaut":

L'ensemble de données que nous voulons prédire est disponible dans la sauvegarde de la base de données WineQuality.

Nous allons former le modèle ML à partir du tableau "White_Train" de la base de données "WineQuality". Sur les 4898 lignes "blanches", la table "White_Train" en a 3675 (environ 75%) et la table "White_Test" en a 1223 (environ 25%):

La requête suivante insérera dans la table "aml_model", le modèle maximisant la métrique AUC_weighted:

Remarque: L'ASC pondérée ou l'ASC pondérée en français est utilisée ici compte tenu de la modalité de la variable prédictive non équilibrée. On résout ce problème en choisissant l'ASC pondérée. Contrairement à la AUC qui est la zone sous la courbe avec des poids égaux, nous voulons donner plus d'importance à la zone située près du haut du graphique. L'ASC pondérée crée donc un vecteur de pondération asymétrique en répartissant davantage le poids à la hausse de la courbe ROC. Mais voici la liste des mesures prises en charge: https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-automated-ml#training-metric-output

Le nombre maximum d'itérations d'entraînement est ici fixé à 20 et chacune d'elles ne doit pas dépasser 10 minutes.

La requête suivante vous permet d’avoir les métriques sur les modèles:

Les modèles ont été sauvegardés pour chaque passage dans la table aml_model:

Du côté du service Azure Machine Learning, il est possible de suivre l'exécution des formations, les détails des exécutions, une liste complète des modèles créés et des informations sur leur pertinence:

Plus d'informations sur les graphiques disponibles: https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-track-experiments#understanding-automated-ml-charts

Pour faire des prédictions à partir de mon modèle, rien n'est plus facile:

Conclusion

Dans la démonstration précédente, nous avons constaté la simplicité d’accès au service Auto-ML à partir de scripts Python pour former et enregistrer un modèle dans une table, le tout sans quitter SSMS!

La fonctionnalité AutoML du service Azure Machine Learning facilite grandement la création et l'optimisation du modèle ML. De plus, il s’intègre parfaitement dans l’approche DevOps:

Le service est en constante évolution (nouvelle interface dans Preview, prévision de série chronologique, exportation de modèle au format ONNX, …): https://azure.microsoft.com/fr-en/blog/a-look-at-azure – Apprentissage automatique des capacités /

Nous prévoyons d’écrire une deuxième partie de cet article qui portera sur l’interprétabilité et l’opérationnalisation de ce même modèle.

L'article suivant a été co-écrit par Yassine Khelifi, Ingénieur grimpeur sur Azure Machine Learning et Romain Casteres, Premier ingénieur de terrain – Données et intelligence artificielle chez Microsoft.

  • Distribain Baignoire îlot Piave
    Baignoire îlotPiaveEnveloppez-vous de bien-être dans cette baignoire îlot aux belles courbes.Son style très cocooning vous invite à la détente.Équipée d'un trop plein, d'un siphon adapté et d'une bonde push&up,; vous n'aurez plus qu'à choisir une robinetterie sur pied à y associer.Sa cuve en acrylique est une
  • Ma Chambre d'Enfant Lit enfant évolutif Spoom Blanc 90x140 à 90x190 cm
    Plus que les adultes, les tout petits passent beaucoup de temps dans leurs lits. Voilà une bonne raison de bien choisir le lit de votre petit bout. Les enfants grandissent tous les jours en peu plus, c’est pourquoi un lit évolutif lui assurera un confort optimal au cours de son développement ! Dans ce cas, le
  • NOUVOMEUBLE Petit meuble tv moderne couleur bois clair JACE
    Plein de style et vraiment lumineux, ce joli meuble TV fera beaucoup d'effet dans votre salon en mettant tout son caractère au service de votre décoration. De quoi faire bien des envieux parmi vos invités. La couleur bois clair de ce banc tv donnera à votre salon un aspect chaleureux et cosy où vous allez
  • Ma Chambre d'Enfant Lit enfant évolutif Spoom Brut à peindre 90x140 à 90x190 cm
    Plus que les adultes, les tout petits passent beaucoup de temps dans leurs lits. Voilà une bonne raison de bien choisir le lit de votre petit bout. Les enfants grandissent tous les jours en peu plus, c’est pourquoi un lit évolutif lui assurera un confort optimal au cours de son développement ! Dans ce cas, le
  • Distribain Baignoire îlot Piave
    Baignoire îlot PiaveEnveloppez-vous de bien-être dans cette baignoire îlot aux belles courbes. Son style très cocooning vous invite à la détente. Équipée d'un trop plein, d'un siphon adapté et d'une bonde push&up, vous n'aurez plus qu'à choisir une robinetterie sur pied à y associer. Sa cuve en acrylique est
  • NOUVOMEUBLE Petit meuble tv moderne couleur bois clair JACE
    Plein de style et vraiment lumineux, ce joli meuble TV fera beaucoup d'effet dans votre salon en mettant tout son caractère au service de votre décoration. De quoi faire bien des envieux parmi vos invités. La couleur bois clair de ce banc tv donnera à votre salon un aspect chaleureux et cosy où vous allez
  • Cook - Herbier de France Moulin à muscade - Moulin
    Cook vous propose un moulin à muscade de qualité, fabriqué en France, dans une tournerie du Jura.Elaboré en bois de hêtre, il est esthétique et solide. Son mécanisme en inox est spécialement conçu pour la noix de muscade.Simple d'utilisation, il vous rendra bien service pour moudre facilement vos noix de
  • CELIANN Conseils vestimentaires et morphologiques d'1h30 ou relooking de 3h pour 1 personne avec Celiann
    Une séance dans le but d’acquérir les techniques pour bien choisir sa coiffure, son maquillage, ses vêtements et ses accessoires
  • Promod Blouse unie Femme Ecru - taille: 36,40,42
    36,40,42 - Ecru - Avoir une blouse unie et oversize dans son dressing est hautement recommandé cette saison ! Pourquoi ? Parce qu'elle est facile à coordonner et qu'elle adore sortir avec quelques bijoux ou accessoires bien choisis ! On dit oui ! Décolleté V. ...
  • EBAC LITERIE Matelas 80x200 Storm Latex
    Mobilier d'intérieur Meuble de chambre Lit et matelas Matelas EBAC LITERIE, EN QUELQUES MOTS Il est important de bien choisir son matelas pour mieux se retrouver dans les bras de Morphée. Le matelas en latex 80x200 permet d'atteindre cet objectif. Sa couleur blanche convient parfaitement à

Laisser un commentaire