Modifier

Scoring par lots de modèles Spark sur Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Stockage Blob Azure

Cette architecture de référence montre comment créer une solution évolutive pour le scoring par lots d’un modèle de classification Apache Spark basé sur une planification à l’aide d’Azure Databricks. Azure Databricks est une plateforme d’analyse basée sur Apache Spark et optimisée pour Azure. Azure Databricks offre trois environnements pour développer des applications gourmandes en données : Databricks SQL, Databricks Data Science & Engineering et Databricks Machine Learning. Databricks Machine Learning est un environnement de machine learning de bout en bout intégré qui incorpore des services managés pour le suivi des expériences, l’entraînement des modèles, le développement et la gestion des caractéristiques ainsi que la fourniture de fonctionnalités et de modèles. Vous pouvez utiliser cette architecture de référence comme modèle généralisé à d’autres scénarios. Une implémentation de référence pour cette architecture est disponible sur GitHub.

Apache® et Apache Spark® sont soit des marques déposées, soit des marques commerciales d’Apache Software Foundation aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de l’Apache Software Foundation.

Architecture

Diagramme montrant le scoring par lots des modèles de classification Apache Spark sur Azure Databricks.

Téléchargez un fichier Visio de cette architecture.

Workflow

L’architecture définit un flux de données qui est entièrement contenu dans Azure Databricks basé sur un ensemble de notebooks exécutés de manière séquentielle. Elle se compose des éléments suivants :

Fichiers de données . L’implémentation de référence utilise un jeu de données simulées contenues dans cinq fichiers de données statiques.

Ingestion . Le notebook d’ingestion de données télécharge les fichiers de données d’entrée dans une collection de jeux de données Databricks. Dans un cas réel, les données des appareils IoT seraient diffusées en continu sur un stockage accessible par Databricks, comme Azure SQL ou Azure Blob. Databricks supporte plusieurs sources de données.

Pipeline de formation. Ce notebook exécute le notebook technique de fonctionnalités pour créer un jeu de données d’analyse à partir des données ingérées. Il exécute ensuite un notebook de construction de modèle qui forme le modèle de Machine Learning à l’aide de la bibliothèque de Machine Learning évolutive Apache Spark MLlib.

Pipeline de scoring. Ce notebook exécute le notebook technique de fonctionnalités pour créer un jeu de données de scoring, puis exécute le notebook de scoring. Le notebook s’appuie sur le modèle Spark MLlib formé pour produire des prédictions pour les observations dans le jeu de données de scoring. Les prédictions sont stockées dans le magasin de données des résultats, nouveau jeu de données du magasin de données Databricks.

Planificateur. Un travail Databricks planifié gère le scoring par lots avec le modèle Spark. Le travail exécute le notebook du pipeline de scoring en transmettant des arguments variables par le biais des paramètres du notebook, ce qui spécifie les détails de construction du jeu de données de scoring et l’emplacement de stockage du jeu de données de résultats.

Détails de la solution

Le scénario est construit comme un flux de pipeline. Chaque notebook est optimisé pour fonctionner en mode par lots pour chacune des opérations : ingestion, ingénierie des fonctionnalités, construction de modèles et scorings de modèles. Le notebook d’ingénierie des fonctionnalités est conçu pour générer un jeu de données général pour toutes les opérations de formation, d’étalonnage, de test ou de scoring. Dans ce scénario, nous utilisons une stratégie de fractionnement temporel pour ces opérations de sorte que les paramètres du notebook sont utilisés pour définir le filtrage de la plage de dates.

Du fait que le scénario crée un pipeline par lots, nous fournissons un ensemble de notebooks d’examen en option pour explorer la sotie des notebooks de pipeline. Cous pouvez trouver ces notebooks dans le dossier des notebooks du dépôt GitHub :

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Cas d’usage potentiels

Une entreprise de l’industrie lourde veut minimiser les coûts et les temps d’arrêt associés à des défaillances mécaniques imprévues. En utilisant les données IoT collectées sur les machines, elle peut créer un modèle de maintenance prédictive. Ce modèle permet à l’entreprise de gérer les composants de manière proactive et de les réparer avant qu’ils ne tombent en panne. En maximisant l’utilisation des composants mécaniques, elle peut contrôler les coûts et réduire les temps d’arrêt.

Un modèle de maintenance prédictive recueille les données des machines et conserve les exemples historiques de défaillances des composants. Vous pouvez utiliser le modèle peut ensuite pour surveiller l’état actuel des composants, et prédire si un composant spécifique connaîtra bientôt une défaillance. Pour les cas d’usage courants et les approches de modélisation, voir le Guide Azure AI pour les solutions de maintenance prédictive.

Cette architecture de référence a été conçue pour les charges de travail qui sont déclenchées par la présence de nouvelles données recueillies auprès des machines. Le traitement est constitué des étapes suivantes :

  1. Ingérer les données de la base de données externe dans un magasin de données Azure Databricks.

  2. Former un modèle Machine Learning en transformant les données en un ensemble de données d’apprentissage, puis en construisant un modèle MLlib Spark. MLlib se compose des algorithmes Machine Learning les plus courants et des utilitaires optimisés pour tirer parti des capacités d’évolutivité des données Spark.

  3. Appliquer le modèle formé pour prédire (classer) les défaillances des composants en transformant les données en un ensemble de données de scoring. Noter les données avec le modèle Spark MLLib.

  4. Stocker les résultats dans la base de données Databricks en vue de leur exploitation post-traitement.

Des notebooks sont fournis surGitHub pour effectuer chacune de ces tâches.

Recommandations

Databricks est configuré pour que vous puissiez charger et déployer vos modèles formés afin de faire des prédictions avec de nouvelles données. Databricks offre également d’autres avantages :

  • Prise en charge de l’authentification unique en utilisant les informations d’identification Microsoft Entra.
  • Planificateur de tâches permettant l’exécution des travaux pour les pipelines de production.
  • Notebook entièrement interactif avec collaboration, tableaux de bord, API REST.
  • Clusters illimités pouvant s’adapter à n’importe quelle taille.
  • Sécurité avancée, contrôles d’accès en fonction du rôles et journaux d’audit.

Pour interagir avec le service Azure Databricks, utilisez l’interface Databricks Workspace dans un navigateur web ou l’interface de ligne de commande (CLI). Accédez à l’interface de ligne de commande Databricks depuis n’importe quelle plate-forme prenant en charge Python 2.7.9 à 3.6.

L’implémentation de référence utilise des notebooks pour exécuter les tâches séquentiellement. Chaque notebook stocke les artefacts de données intermédiaires (formation, test, scoring ou jeux de données de résultats) dans la même base de données que les données d’entrée. L’objectif est de vous permettre de l’utiliser facilement en fonction de votre cas d’usage particulier. En pratique, vous connecteriez votre source de données à votre instance Azure Databricks pour que les notebooks puissent lire et écrire directement dans votre stockage.

Supervisez l’exécution du travail via l’interface utilisateur de Databricks, le magasin de données ou l’interface de ligne de commande Databricks, si nécessaire. Supervisez le cluster à l’aide du journal des événements et des autres métriques que Databricks fournit.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Performances

Un cluster Azure Databricks permet la mise à l’échelle automatique par défaut de sorte que, pendant l’exécution, Databricks réaffecte dynamiquement les Workers pour tenir compte des caractéristiques de votre travail. Certaine partie de votre pipeline peuvent être plus exigeantes en ressources informatiques que d’autres. Databricks ajoute des Workers pendant ces phases de votre travail (et les supprime quand ils ne sont plus nécessaires). La mise à l’échelle automatique facilite l’optimisation de l’utilisation du cluster, car vous n’avez pas besoin de provisionner le cluster en fonction d’une charge de travail.

Développez des pipelines planifiés plus complexes en utilisant Azure Data Factory avec Azure Databricks.

Stockage

Dans cette implémentation de référence, les données sont stockées directement dans le stockage Databricks pour plus de simplicité. Dans un environnement de production, cependant, vous pouvez stocker les données dans un stockage de données cloud tel que Stockage Blob Azure. Databricks prend également en charge Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka et Apache Hadoop.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

En règle générale, utilisez la calculatrice de prix Azure pour estimer les coûts. D'autres considérations sont décrites dans la section Coûts de Microsoft Azure Well-Architected Framework.

Azure Databricks est une offre Spark premium avec un coût associé. En outre, il existe des niveaux de tarification standard et premium pour Databricks.

Pour ce scénario, le niveau de tarification standard est suffisant. Cependant, si votre application spécifique nécessite la mise à l’échelle automatique des clusters pour traiter des charges de travail plus importantes ou des tableaux de bord interactifs de Databricks, le niveau premium pourrait augmenter encore les coûts.

Les notebooks de la solution peuvent fonctionner sur n’importe quelle plateforme Spark avec un minimum de modifications pour supprimer les packages spécifiques à Databricks. Envisagez d’utiliser les solutions similaires suivantes pour les différentes plateformes Azure :

Déployer ce scénario

Pour déployer cette architecture de référence, suivez les étapes décrites dans le dépôt GitHub afin de construire une solution scalable de scoring de modèles Spark par lots sur Azure Databricks.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes