Redigera

Dela via


Batchbedömning av Spark-modeller på Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob Storage

Den här referensarkitekturen visar hur du skapar en skalbar lösning för batchbedömning av en Apache Spark-klassificeringsmodell enligt ett schema med Hjälp av Azure Databricks. Azure Databricks är en Apache Spark-baserad analysplattform som är optimerad för Azure. Azure Databricks erbjuder tre miljöer för att utveckla dataintensiva program: Databricks SQL, Databricks Datavetenskap & Engineering och Databricks Machine Learning. Databricks Machine Learning är en integrerad maskininlärningsmiljö från slutpunkt till slutpunkt som innehåller hanterade tjänster för experimentspårning, modellträning, funktionsutveckling och hantering samt funktions- och modellhantering. Du kan använda den här referensarkitekturen som en mall som kan generaliseras till andra scenarier.

Apache® och Apache Spark® är antingen registrerade varumärken eller varumärken som tillhör Apache Software Foundation i USA och/eller andra länder. Inget godkännande från Apache Software Foundation underförstås av användningen av dessa märken.

Arkitektur

Diagram som visar batchbedömning av Apache Spark-klassificeringsmodeller i Azure Databricks.

Ladda ned en Visio-fil med den här arkitekturen.

Arbetsflöde

Arkitekturen definierar ett dataflöde som helt finns i Azure Databricks baserat på en uppsättning sekventiellt utförda notebook-filer. Den består av följande komponenter:

Datafiler. Referensimplementeringen använder en simulerad datauppsättning som finns i fem statiska datafiler.

Inmatning. Notebook-filen för datainmatning laddar ned indatafilerna till en samling Databricks-datauppsättningar. I ett verkligt scenario strömmas data från IoT-enheter till Databricks-tillgänglig lagring, till exempel Azure SQL eller Azure Blob Storage. Databricks stöder flera datakällor.

De senaste förbättringarna av datainmatning är datareplikering i realtid från olika databaser och SaaS-program, som möjliggörs av funktioner som Lake House Federation.

Träningspipeline. Den här notebook-filen kör notebook-filen för funktionstekniker för att skapa en analysdatauppsättning från inmatade data. Pipelinen kör sedan en modellbyggnadsanteckningsbok som tränar maskininlärningsmodellen med hjälp av Apache Spark MLlib skalbart maskininlärningsbibliotek.

Förbättrade ML-funktioner i Databricks omfattar experimentspårning och modellträning, vilket ytterligare optimerar den här pipelinen.

Bedömningspipeline. Den här notebook-filen kör notebook-filen för funktionsutveckling för att skapa bedömningsdatauppsättningen från inmatade data och kör bedömningsanteckningsboken. Notebook-filen för bedömning använder den tränade Spark MLlib-modellen för att generera förutsägelser för observationerna i bedömningsdatauppsättningen. Förutsägelserna lagras i resultatlagret, en ny datauppsättning i Databricks-datalagret.

Bedömningspipelinen kan använda funktionen ai_query för batchinferens och effektivt bearbeta stora datauppsättningar med bestämmelser för skalbarhet och prestandaoptimering.

Schemaläggare. Ett schemalagt Databricks-jobb hanterar batchbedömning med Spark-modellen. Jobbet kör notebook-filen för bedömningspipelinen och skickar variabelargument via notebook-parametrar för att ange information för att konstruera bedömningsdatauppsättningen och var resultatdatauppsättningen ska lagras.

Lösningsdetaljer

Scenariot konstrueras som ett pipelineflöde. Varje notebook-fil är optimerad för att utföras i en batchinställning för var och en av åtgärderna: inmatning, funktionsutveckling, modellbyggnad och modellpoäng. Notebook-filen för funktionstekniker är utformad för att generera en allmän datamängd för någon av tränings-, kalibrerings-, testnings- eller bedömningsåtgärderna. I det här scenariot använder vi en strategi för tidsdelning för dessa åtgärder, så notebook-parametrarna används för att ange datumintervallfiltrering.

Potentiella användningsfall

Ett företag i en tillgångsintensiv bransch vill minimera kostnaderna och stilleståndstiden i samband med oväntade mekaniska fel. Med hjälp av IoT-data som samlas in från deras datorer kan de skapa en modell för förutsägande underhåll. Den här modellen gör det möjligt för företaget att underhålla komponenter proaktivt och reparera dem innan de misslyckas. Genom att maximera användningen av mekaniska komponenter kan de styra kostnaderna och minska stilleståndstiden.

En förutsägande underhållsmodell samlar in data från datorerna och behåller historiska exempel på komponentfel. Modellen kan sedan användas för att övervaka komponenternas aktuella tillstånd och förutsäga om en viss komponent kommer att misslyckas snart.

Den här referensarkitekturen är utformad för arbetsbelastningar som utlöses av förekomsten av nya data från komponentdatorerna. Bearbetningen omfattar följande steg:

  1. Mata in data från det externa datalagret till ett Azure Databricks-datalager.

  2. Träna en maskininlärningsmodell genom att omvandla data till en träningsdatauppsättning och sedan skapa en Spark MLlib-modell. MLlib består av de vanligaste maskininlärningsalgoritmerna och verktygen som är optimerade för att dra nytta av Spark-dataskalbarhetsfunktioner.

  3. Använd den tränade modellen för att förutsäga (klassificera) komponentfel genom att omvandla data till en bedömningsdatauppsättning. Poängsätta data med Spark MLLib-modellen.

  4. Lagra resultat på Databricks-datalagret för förbrukning efter bearbetning.

Alternativ

Den här arkitekturen kan använda Mosaic AI-modell som betjänar för att distribuera modeller för batch- och realtidsinferens med hjälp av Azure Databricks serverlösa beräkning. Det ger ett gränssnitt för att skala resurser dynamiskt, vilket förbättrar både prestanda och kostnadseffektivitet vid bearbetning av stora datamängder.

Utveckla mer komplexa schemalagda pipelines med hjälp av Microsoft Fabric- med Azure Databricks.

Rekommendationer

Databricks har konfigurerats så att du kan läsa in och distribuera dina tränade modeller för att göra förutsägelser med nya data. Databricks ger också andra fördelar:

  • Stöd för enkel inloggning med Microsoft Entra-autentiseringsuppgifter.
  • Jobbschemaläggare för att köra jobb för produktionspipelines.
  • Helt interaktiv notebook-fil med samarbete, instrumentpaneler, REST-API:er.
  • Obegränsade kluster som kan skalas till valfri storlek.
  • Avancerad säkerhet, rollbaserade åtkomstkontroller och granskningsloggar.

Om du vill interagera med Azure Databricks-tjänsten använder du Databricks-arbetsytans gränssnitt i en webbläsare eller kommandoradsgränssnittet (CLI).

Den här arkitekturen använder notebook-filer för att utföra uppgifter i följd. Varje notebook-fil lagrar mellanliggande dataartefakter (tränings-, test-, bedömnings- eller resultatdatauppsättningar) till samma datalager som indata. Målet är att göra det enkelt för dig att använda det efter behov i ditt specifika användningsfall. I praktiken skulle du ansluta datakällan till din Azure Databricks-instans så att notebook-filerna kan läsa och skriva direkt tillbaka till lagringen.

Övervaka jobbkörningen via Databricks-användargränssnittet, datalagret eller Databricks CLI efter behov. Övervaka klustret med hjälp av händelseloggen och andra mått som Databricks tillhandahåller.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Tillförlitlighet

Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i checklistan för Designgranskning för tillförlitlighet.

I den här arkitekturen lagras data direkt i Databricks-lagring för enkelhetens skull. I en produktionsinställning bör du dock lagra data på molndatalagring, till exempel Azure Blob Storage-. Databricks stöder även Azure Data Lake Store, Microsoft Fabric, Azure Cosmos DB, Apache Kafkaoch Apache Hadoop.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i checklistan Designgranskning för kostnadsoptimering.

Azure Databricks är ett Premium Spark-erbjudande med en tillhörande kostnad. Dessutom finns det prisnivåer för Standard och Premium Databricks.

I det här scenariot räcker prisnivån Standard. Men om ditt specifika program kräver automatisk skalning av kluster för att hantera större arbetsbelastningar eller interaktiva Databricks-instrumentpaneler kan Premium-nivån öka kostnaderna ytterligare.

Prestandaeffektivitet

Prestandaeffektivitet är arbetsbelastningens förmåga att uppfylla användarnas krav på det på ett effektivt sätt. Mer information finns i checklistan för Designgranskning för prestandaeffektivitet.

Ett Azure Databricks-kluster möjliggör automatisk skalning som standard så att Databricks dynamiskt omallokerar arbetare för att ta hänsyn till egenskaperna för ditt jobb under körningen. Vissa delar av pipelinen kan vara mer beräkningsmässigt krävande än andra. Databricks lägger till extra arbetare under dessa faser av jobbet (och tar bort dem när de inte längre behövs). Autoskalning gör det enklare att uppnå hög klusteranvändning eftersom du inte behöver etablera klustret för att matcha en arbetsbelastning.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg