Spark-modellen batchgewijs scoren in Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob Storage

Deze referentiearchitectuur laat zien hoe u een schaalbare oplossing bouwt voor batchgewijs scoren van een Apache Spark-classificatiemodel volgens een schema met behulp van Azure Databricks. Azure Databricks is een op Apache Spark gebaseerd analyseplatform dat is geoptimaliseerd voor Azure. Azure Databricks biedt drie omgevingen voor het ontwikkelen van gegevensintensieve toepassingen: Databricks SQL, Databricks Datawetenschap & Engineering en Databricks Machine Learning. Databricks Machine Learning is een geïntegreerde end-to-end machine learning-omgeving met beheerde services voor het bijhouden van experimenten, het trainen van modellen, het ontwikkelen en beheren van functies en het leveren van functies en modellen. U kunt deze referentiearchitectuur gebruiken als sjabloon die kan worden gegeneraliseerd naar andere scenario's. Een referentie-implementatie voor deze architectuur is beschikbaar op GitHub.

Apache en Apache® Spark® zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.

Architectuur

Diagram met batchgewijs scoren van Apache Spark-classificatiemodellen in Azure Databricks.

Een Visio-bestand van deze architectuur downloaden.

Workflow

De architectuur definieert een gegevensstroom die volledig is opgenomen in Azure Databricks op basis van een set opeenvolgend uitgevoerde notebooks. Het bestaat uit de volgende onderdelen:

Gegevensbestanden. De referentie-implementatie maakt gebruik van een gesimuleerde gegevensset in vijf statische gegevensbestanden.

Opname. Met het notebook voor gegevensopname worden de invoergegevensbestanden gedownload naar een verzameling Databricks-gegevenssets. In een praktijkscenario worden gegevens van IoT-apparaten gestreamd naar databricks-toegankelijke opslag, zoals Azure SQL of Azure Blob Storage. Databricks ondersteunt meerdere gegevensbronnen.

Trainingspijplijn. Met dit notebook wordt het notebook voor functie-engineering uitgevoerd om een analysegegevensset te maken op basis van de opgenomen gegevens. Vervolgens wordt een notebook voor het bouwen van modellen uitgevoerd waarmee het machine learning-model wordt getraind met behulp van de schaalbare machine learning-bibliotheek van Apache Spark MLlib .

Scorepijplijn. Met dit notebook wordt het notebook voor functie-engineering uitgevoerd om scoregegevensset te maken op basis van de opgenomen gegevens en het scorenotitieblok uit te voeren. Het scorenotebook maakt gebruik van het getrainde Spark MLlib-model om voorspellingen te genereren voor de waarnemingen in de scoregegevensset. De voorspellingen worden opgeslagen in het resultatenarchief, een nieuwe gegevensset in het Databricks-gegevensarchief.

Planner. Een geplande Databricks-taak verwerkt batchgewijs scoren met het Spark-model. De taak voert het notebook scorepijplijn uit, waarbij variabele argumenten worden doorgegeven via notebookparameters om de details op te geven voor het samenstellen van de scoregegevensset en waar de resultatengegevensset moet worden opgeslagen.

Details oplossing

Het scenario wordt samengesteld als een pijplijnstroom. Elk notebook is geoptimaliseerd voor uitvoering in een batch-instelling voor elk van de bewerkingen: opname, functie-engineering, modelbouw en modelscores. Het notebook voor functie-engineering is ontworpen om een algemene gegevensset te genereren voor alle trainings-, kalibratie-, test- of scorebewerkingen. In dit scenario gebruiken we een tijdelijke splitsstrategie voor deze bewerkingen, zodat de notebookparameters worden gebruikt voor het instellen van datumbereikfiltering.

Omdat in het scenario een batchpijplijn wordt gemaakt, bieden we een set optionele onderzoeksnotebooks om de uitvoer van de pijplijnnotebooks te verkennen. U vindt deze notebooks in de map Notebooks van de GitHub-opslagplaats:

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

Potentiële gebruikscases

Een bedrijf in een asset-zware industrie wil de kosten en downtime bij onverwachte mechanische storingen minimaliseren. Met Behulp van IoT-gegevens die van hun machines zijn verzameld, kunnen ze een voorspellend onderhoudsmodel maken. Met dit model kan het bedrijf onderdelen proactief onderhouden en herstellen voordat ze mislukken. Door het gebruik van mechanische onderdelen te maximaliseren, kunnen ze kosten beheren en downtime verminderen.

Een voorspellend onderhoudsmodel verzamelt gegevens van de machines en behoudt historische voorbeelden van onderdeelfouten. Het model kan vervolgens worden gebruikt om de huidige status van de onderdelen te bewaken en te voorspellen of een bepaald onderdeel binnenkort mislukt. Zie de Azure AI-handleiding voor predictive maintenance-oplossingen voor veelvoorkomende use cases en modelleringsmethoden.

Deze referentiearchitectuur is ontworpen voor workloads die worden geactiveerd door de aanwezigheid van nieuwe gegevens van de onderdeelmachines. Verwerking omvat de volgende stappen:

  1. De gegevens uit het externe gegevensarchief opnemen in een Azure Databricks-gegevensarchief.

  2. Train een machine learning-model door de gegevens te transformeren in een trainingsgegevensset en vervolgens een Spark MLlib-model te bouwen. MLlib bestaat uit de meest voorkomende machine learning-algoritmen en hulpprogramma's die zijn geoptimaliseerd om te profiteren van de schaalbaarheidsmogelijkheden van Spark-gegevens.

  3. Pas het getrainde model toe om fouten in onderdelen te voorspellen (classificeren) door de gegevens om te zetten in een scoregegevensset. Score de gegevens met het Spark MLLib-model.

  4. Sla resultaten op in het Databricks-gegevensarchief voor verbruik na verwerking.

Notebooks worden op GitHub geleverd om elk van deze taken uit te voeren.

Aanbevelingen

Databricks is zo ingesteld dat u uw getrainde modellen kunt laden en implementeren om voorspellingen te doen met nieuwe gegevens. Databricks biedt ook andere voordelen:

  • Ondersteuning voor eenmalige aanmelding met behulp van Microsoft Entra-referenties.
  • Taakplanner voor het uitvoeren van taken voor productiepijplijnen.
  • Volledig interactief notebook met samenwerking, dashboards, REST API's.
  • Onbeperkte clusters die naar elke grootte kunnen worden geschaald.
  • Geavanceerde beveiliging, op rollen gebaseerd toegangsbeheer en auditlogboeken.

Als u wilt communiceren met de Azure Databricks-service, gebruikt u de Databricks Workspace-interface in een webbrowser of de opdrachtregelinterface (CLI). Open de Databricks CLI vanaf elk platform dat Ondersteuning biedt voor Python 2.7.9 tot en met 3.6.

De referentie-implementatie maakt gebruik van notebooks om taken op volgorde uit te voeren. Elk notebook slaat tussenliggende gegevensartefacten (trainings-, test-, score- of resultatengegevenssets) op in hetzelfde gegevensarchief als de invoergegevens. Het doel is om het eenvoudig te maken voor u om het naar behoefte te gebruiken in uw specifieke use case. In de praktijk verbindt u uw gegevensbron met uw Azure Databricks-exemplaar, zodat de notebooks rechtstreeks naar uw opslag kunnen lezen en schrijven.

Bewaak de taakuitvoering via de Gebruikersinterface van Databricks, het gegevensarchief of de Databricks CLI , indien nodig. Bewaak het cluster met behulp van het gebeurtenislogboek en andere metrische gegevens die Databricks biedt.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Prestaties

Een Azure Databricks-cluster maakt automatisch schalen standaard mogelijk, zodat Databricks tijdens runtime dynamisch werkrollen herplaatst om rekening te houden met de kenmerken van uw taak. Bepaalde onderdelen van uw pijplijn zijn mogelijk rekenkundig veeleisender dan andere onderdelen. Databricks voegt extra werkrollen toe tijdens deze fasen van uw taak (en verwijdert ze wanneer ze niet meer nodig zijn). Automatisch schalen maakt het eenvoudiger om een hoog clustergebruik te bereiken, omdat u het cluster niet hoeft in te richten om overeen te komen met een workload.

Ontwikkel complexere geplande pijplijnen met behulp van Azure Data Factory met Azure Databricks.

Storage

In deze referentie-implementatie worden de gegevens rechtstreeks in Databricks-opslag opgeslagen om het eenvoudig te maken. In een productie-instelling kunt u de gegevens echter opslaan in cloudgegevensopslag, zoals Azure Blob Storage. Databricks ondersteunt ook Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka en Apache Hadoop.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Gebruik in ieder geval de prijscalculator om een schatting van de kosten te maken. Andere overwegingen worden beschreven in de sectie Kosten in Microsoft Azure Well-Architected Framework.

Azure Databricks is een premium Spark-aanbieding met een bijbehorende kosten. Daarnaast zijn er standard- en premium Databricks-prijscategorieën.

Voor dit scenario is de prijscategorie Standard voldoende. Als voor uw specifieke toepassing echter automatisch clusters moeten worden geschaald om grotere workloads of interactieve Databricks-dashboards af te handelen, kan het Premium-niveau de kosten verder verhogen.

De oplossingsnotebooks kunnen worden uitgevoerd op elk Spark-platform met minimale bewerkingen om de Databricks-specifieke pakketten te verwijderen. Zie de volgende vergelijkbare oplossingen voor verschillende Azure-platforms:

Dit scenario implementeren

Als u deze referentiearchitectuur wilt implementeren, volgt u de stappen die worden beschreven in de GitHub-opslagplaats om een schaalbare oplossing te bouwen voor het beoordelen van Spark-modellen in batch op Azure Databricks.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen