Bearbeiten

Freigeben über


Batchbewertung von Spark-Modellen in Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob Storage

Diese Referenzarchitektur veranschaulicht die Erstellung einer skalierbarer Lösung für die Batchbewertung eines Apache Spark-Klassifizierungsmodells nach einem Zeitplan mithilfe von Azure Databricks. Azure Databricks ist eine Apache Spark-basierte Analyseplattform, die für Azure optimiert ist. Azure Databricks bietet drei Umgebungen für die Entwicklung datenintensiver Anwendungen: Databricks SQL, Databricks Data Science & Engineering und Databricks Machine Learning. Databricks Machine Learning ist eine integrierte End-to-End-Machine Learning-Umgebung mit verwalteten Diensten für Experimentnachverfolgung, Modelltraining, Featureentwicklung und -verwaltung sowie für die Bereitstellung von Features und Modellen. Diese Referenzarchitektur kann als Vorlage verwendet und für andere Szenarien generalisiert werden.

Apache® und Apache Spark® sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.

Architektur

Diagramm der Batchbewertung von Apache Spark-Klassifizierungsmodellen in Azure Databricks.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

Die Architektur definiert einen Datenfluss, der vollständig in Azure Databricks- basierend auf einer Reihe von sequenziellen Notizbüchern enthalten ist. Die Architektur umfasst die folgenden Komponenten:

Datendateien . Bei der Referenzimplementierung wird ein simuliertes Dataset verwendet, das in fünf statischen Datendateien enthalten ist.

Erfassung . Das Datenerfassungsnotebook lädt die Eingabedatendateien in eine Sammlung von Databricks-Datasets herunter. In einem realen Szenario würden Daten von IoT-Geräten in einen für Databricks zugänglichen Speicher wie Azure SQL oder Azure Blob Storage streamen. Databricks unterstützt mehrere Datenquellen.

Zu den jüngsten Verbesserungen bei der Datenaufnahme gehören die Echtzeitdatenreplikation aus verschiedenen Datenbanken und SaaS-Anwendungen, die durch Features wie Lake House Federationermöglicht werden.

Trainingspipeline: Dieses Notebook führt das Featureentwicklungsnotebook aus, um ein Analysedataset aus den erfassten Daten zu erstellen. Anschließend führt die Pipeline ein Modellbaunotizbuch aus, das das Machine Learning-Modell mit dem Apache Spark MLlib skalierbare Machine Learning-Bibliothek trainiert.

Zu den erweiterten ML-Features in Databricks gehören experimentgestützte Tracking- und Modellschulungen, die diese Pipeline weiter optimieren.

Bewertungspipeline: Dieses Notebook führt das Featureentwicklungsnotebook aus, um ein Bewertungsdataset aus den erfassten Daten zu erstellen, und dann führt es das Bewertungsnotebook aus. Das Bewertungsnotebook verwendet das trainierte Spark MLlib-Modell, um Vorhersagen für die Beobachtungen im Bewertungsdataset zu generieren. Die Vorhersagen werden im Ergebnisspeicher gespeichert. Dabei handelt es sich um ein neues Dataset für den Databricks-Datenspeicher.

Die Bewertungspipeline kann die ai_query-Funktion für die Batch-Ableitung verwenden, um große Datasets effizient mit Bestimmungen zur Skalierbarkeit und Leistungsoptimierung zu verarbeiten.

Scheduler: Ein geplanter Databricks-Auftrag verarbeitet die Batchbewertung mit dem Spark-Modell. Der Auftrag führt das Bewertungspipelinenotebook aus, wobei variable Argumente durch Notebookparameter übergeben werden, um die Details für das Erstellen des Bewertungsdatasets und den Speicherort für das Ergebnisdataset anzugeben.

Details zur Lösung

Das Szenario ist als Pipelineflow konzipiert. Jedes Notebook ist für die Ausführung in einer Batcheinstellung für jeden der folgenden Vorgänge optimiert: Erfassung, Featureentwicklung, Modellerstellung und Modellbewertung. Das Featureentwicklungsnotebook ist so konzipiert, dass es ein allgemeines Dataset für alle Trainings-, Kalibrierungs-, Test- oder Bewertungsvorgänge generiert. In diesem Szenario verwenden wir für diese Vorgänge eine temporale Aufteilungsstrategie, sodass die Notebookparameter zum Festlegen der Datumsbereichsfilterung verwendet werden.

Mögliche Anwendungsfälle

Ein Unternehmen in einer ressourcenlastigen Branche möchte die mit unerwarteten mechanischen Fehlern verbundenen Kosten und Ausfallzeiten minimieren. Mithilfe der von den Maschinen gesammelten IoT-Daten kann das Unternehmen ein Predictive Maintenance-Modell (Modell für die vorbeugende Wartung) erstellen. Dieses Modell ermöglicht es dem Unternehmen, Komponenten proaktiv zu warten und zu reparieren, bevor sie ausfallen. Durch Maximieren der Verwendung der mechanischen Komponenten können Kosten kontrolliert und Ausfallzeiten reduziert werden.

Ein Predictive Maintenance-Modell sammelt Daten von den Maschinen und speichert historische Beispiele von Komponentenausfällen. Das Modell kann dann verwendet werden, um den aktuellen Zustand der Komponenten zu überwachen und vorherzusagen, ob eine bestimmte Komponente bald ausfällt.

Diese Referenzarchitektur ist für Workloads konzipiert, die durch das Vorhandensein neuer Daten der Komponentenmaschinen ausgelöst werden. Die Verarbeitung umfasst die folgenden Schritte:

  1. Erfassen Sie die Daten aus dem externen Datenspeicher in einem Azure Databricks-Datenspeicher.

  2. Trainieren Sie ein Machine Learning-Modell, indem Sie die Daten in ein Trainingsdataset transformieren, und erstellen Sie dann ein Spark MLlib-Modell. MLlib besteht aus den am häufigsten verwendeten Machine Learning-Algorithmen und -Dienstprogrammen, die für die Nutzung von Spark-Datenskalierbarkeitsfunktionen optimiert sind.

  3. Wenden Sie das trainierte Modell an, um Komponentenausfälle vorherzusagen (zu klassifizieren), indem Sie die Daten in ein Bewertungsdataset transformieren. Bewerten Sie die Daten mit dem Spark MLLib-Modell.

  4. Speichern Sie die Ergebnisse im Databricks-Datenspeicher zur Nachbearbeitung.

Alternativen

Diese Architektur kann Mosaik AI Model Serving verwenden, um Modelle für Batch- und Echtzeitableitungen mithilfe der serverlosen Berechnung von Azure Databricks bereitzustellen. Es bietet eine Schnittstelle zum dynamischen Skalieren von Ressourcen und verbessert sowohl die Leistung als auch die Kosteneffizienz bei der Verarbeitung großer Datasets.

Entwickeln Sie komplexere geplante Pipelines mithilfe von Microsoft Fabric mit Azure Databricks.

Empfehlungen

Databricks ist so eingerichtet, dass Sie Ihre trainierten Modelle laden und bereitstellen können, um Vorhersagen mit neuen Daten zu treffen. Aber Databricks bietet noch weitere Vorteile:

  • Unterstützung für einmaliges Anmelden mit Microsoft Entra-Anmeldeinformationen.
  • Auftragsplaner zum Ausführen von Aufträgen für Produktionspipelines
  • Vollständig interaktives Notebook mit Zusammenarbeitsfunktionen, Dashboards und REST-APIs
  • Unbegrenzte Cluster, die auf eine beliebige Größe skaliert werden können
  • Erweiterte Sicherheit, rollenbasierte Zugriffssteuerungen und Überwachungsprotokolle

Verwenden Sie für die Interaktion mit dem Azure Databricks-Dienst die Benutzeroberfläche des Databricks-Arbeitsbereichs in einem Webbrowser oder die Databricks-Befehlszeilenschnittstelle (Command-Line Interface, CLI).

Diese Architektur verwendet Notizbücher zum Ausführen von Aufgaben in Sequenz. Jedes Notebook speichert Zwischendatenartefakte (Trainings-, Test-, Bewertungs- oder Ergebnisdatasets) im gleichen Datenspeicher wie die Eingabedaten. Ziel ist es, Ihnen die Verwendung nach Bedarf in Ihrem bestimmten Anwendungsfall zu erleichtern. In der Praxis würden Sie Ihre Datenquelle mit Ihrer Azure Databricks-Instanz verbinden, damit die Notebooks direkt in Ihren Speicher lesen und schreiben können.

Überwachen Sie die Auftragsausführung je nach Bedarf über die Databricks-Benutzeroberfläche, den Datenspeicher oder die Databricks-CLI. Überwachen Sie den Cluster mithilfe des Ereignisprotokolls und anderer Metriken, die Databricks bereitstellt.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

In dieser Architektur werden die Daten aus Gründen der Einfachheit direkt im Databricks-Speicher gespeichert. In einer Produktionseinstellung sollten Sie die Daten jedoch im Clouddatenspeicher speichern, z. B. Azure Blob Storage. Databricks unterstützt auch Azure Data Lake Store, Microsoft Fabric, Azure Cosmos DB, Apache Kafkaund Apache Hadoop.

Kostenoptimierung

Bei der Kostenoptimierung geht es um Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Prüfliste für die Überprüfung der Kostenoptimierung.

Azure Databricks ist ein Spark-Premiumangebot, das mit Kosten verbunden ist. Darüber hinaus gibt es Tarife für Databricks Standard und Databricks Premium.

In diesem Szenario ist der Tarif „Standard“ ausreichend. Wenn Ihre spezielle Anwendung jedoch eine automatische Skalierung von Clustern zur Bewältigung größerer Workloads oder für interaktive Databricks-Dashboards erfordert, könnten sich die Kosten durch die Stufe „Premium“ weiter erhöhen.

Leistungseffizienz

Die Leistungseffizienz ist die Fähigkeit Ihrer Arbeitsauslastung, um die Anforderungen zu erfüllen, die die Benutzer auf effiziente Weise an sie stellen. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für die Leistungseffizienz.

Für einen Azure Databricks-Cluster ist die automatische Skalierung standardmäßig aktiviert, sodass Databricks während der Laufzeit Worker dynamisch neu zuordnen kann, um die Eigenschaften Ihres Auftrags zu berücksichtigen. Bestimmte Teile der Pipeline sind möglicherweise anspruchsvoller und rechenintensiver als andere. Databricks fügt während dieser Phasen Ihres Auftrags zusätzliche Worker hinzu (und entfernt sie wieder, wenn sie nicht mehr benötigt werden). Durch die automatische Skalierung kann eine hohe Clusterauslastung einfacher erreicht werden, weil Sie den Cluster nicht gemäß einer Workload bereitstellen müssen.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte