Maschinelles Lernen mit Apache Spark

Apache Spark in Azure Synapse Analytics ermöglicht maschinelles Lernen mit Big Data und bietet so die Möglichkeit, wertvolle Erkenntnisse aus großen Mengen strukturierter, unstrukturierter und sich schnell verändernder Daten zu gewinnen.

Dieser Abschnitt enthält eine Übersicht und Tutorials für Machine Learning-Workflows, einschließlich explorativer Datenanalyse, Feature Engineering, Modelltraining, Modellbewertung und Bereitstellung.

Synapse-Runtime

Die Synapse-Runtime ist eine zusammengestellte Umgebung, die für Data Science und maschinelles Lernen optimiert ist. Die Synapse-Runtime bietet eine Reihe von beliebten Open-Source-Bibliotheken und erstellt standardmäßig das Azure Machine Learning SDK. Die Synapse-Runtime enthält auch viele externe Bibliotheken, einschließlich PyTorch, Scikit-Learn, XGBoost und weiteren.

Weitere Informationen zu den verfügbaren Bibliotheken und zugehörigen Versionen finden Sie in der veröffentlichten Azure Synapse Analytics-Runtime.

Explorative Datenanalyse

Bei der Verwendung von Apache Spark in Azure Synapse Analytics gibt es verschiedene integrierte Optionen, die Ihnen bei der Visualisierung Ihrer Daten helfen, einschließlich Diagrammoptionen für Synapse-Notebooks, Zugriff auf beliebte Open-Source-Bibliotheken wie Seaborn und Matplotlib sowie die Integration mit Synapse SQL und Power BI.

Weitere Informationen zu den Optionen für die Datenvisualisierung und Datenanalyse finden Sie im Artikel zum Visualisieren von Daten mithilfe von Azure Synapse-Notebooks.

Featureentwicklung

Standardmäßig enthält die Synapse-Runtime eine Reihe von Bibliotheken, die häufig für das Feature Engineering verwendet werden. Bei großen Datasets können Spark SQL, MLlib und Koalas für das Feature Engineering verwendet werden. Bei kleineren Datasets bieten Bibliotheken von Drittanbietern wie Numpy, Pandas und Scikit-learn ebenfalls nützliche Methoden für diese Szenarien an.

Trainieren von Modellen

Beim Trainieren von Machine Learning-Modellen mithilfe von Azure Spark in Azure Synapse Analytics gibt es mehrere Möglichkeiten: Apache Spark MLlib, Azure Machine Learning und verschiedene andere Open-Source-Bibliotheken.

Weitere Informationen zu den Möglichkeiten des maschinellen Lernens finden Sie im Artikel zum Trainieren von Modellen in Azure Synapse Analytics.

SparkML und MLlib

Dank seiner verteilten In-Memory-Datenverarbeitungsfunktionen eignet sich Spark besonders für iterative Algorithmen beim maschinellen Lernen und für Graphberechnungen. spark.ml bietet einen einheitlichen Satz von allgemeinen APIs, die Benutzer beim Erstellen und Optimieren von Machine Learning-Pipelines unterstützen. Weitere Informationen zu spark.ml finden Sie im Apache Spark ML-Programmierleitfaden.

Automatisiertes maschinelles Lernen in Azure Machine Learning (veraltet)

Azure Machine Learning AutoML (automatisiertes maschinelles Lernen) hilft dabei, den Prozess der Entwicklung von Machine Learning-Modellen zu automatisieren. Es versetzt Data Scientists, Analysten und Entwickler in die Lage, ML-Modelle mit hoher Skalierbarkeit, Effizienz und Produktivität zu erstellen und gleichzeitig die Modellqualität zu erhalten. Die Komponenten zur Ausführung des Azure Machine Learning AutoML SDKs sind direkt in die Synapse-Runtime integriert.

Warnung

  • Ab dem 29. September 2023 wird Azure Synapse die offizielle Unterstützung für Spark 2.4 Runtimes einstellen. Nach dem 29. September 2023 werden wir keine Supporttickets im Zusammenhang mit Spark 2.4 mehr bearbeiten. Für Fehler- oder Sicherheitsfixes für Spark 2.4 ist keine Releasepipeline vorhanden. Die Nutzung von Spark 2.4 nach dem Ende der Unterstützung erfolgt auf eigenes Risiko. Aufgrund potenzieller Sicherheits- und Funktionalitätsbedenken raten wir dringend davon ab.
  • Im Rahmen der Einstellung von Apache Spark 2.4 möchten wir Sie darüber informieren, dass AutoML in Azure Synapse Analytics ebenfalls veraltet sein wird. Dies umfasst sowohl die Low-Code-Schnittstelle als auch die APIs, die zum Erstellen von AutoML-Testversionen über Code verwendet werden.
  • Bitte beachten Sie, dass die AutoML-Funktionalität ausschließlich über die Spark 2.4 Runtime verfügbar war.
  • Kundinnen und Kunden, die weiterhin AutoML-Funktionen nutzen möchten, empfehlen wir, Ihre Daten in Ihrem Azure Data Lake Storage Gen2 (ADLSg2)-Konto zu speichern. Von dort aus können Sie nahtlos über Azure Machine Learning (AzureML) auf die AutoML-Erfahrung zugreifen. Weitere Informationen zu dieser Problemumgehung finden Sie hier.

Open-Source-Bibliotheken

Jeder Apache Spark-Pool in Azure Synapse Analytics wird mit einem Satz vorab geladener und beliebter Machine Learning-Bibliotheken bereitgestellt. Zu den relevanten Machine Learning-Bibliotheken, die standardmäßig enthalten sind, gehören die folgenden:

  • Scikit-learn ist eine der beliebtesten Machine Learning-Bibliotheken für einen Knoten für klassische ML-Algorithmen. Scikit-learn unterstützt die meisten beaufsichtigten und unbeaufsichtigten Lernalgorithmen und kann ebenfalls für Data Mining und Datenanalyse verwendet werden.

  • XGBoost ist eine beliebte Machine Learning-Bibliothek, die optimierte Algorithmen zum Trainieren von Entscheidungsstrukturen und zufälligen Gesamtstrukturen enthält.

  • PyTorch und TensorFlow sind leistungsstarke Deep Learning-Bibliotheken von Python. Innerhalb eines Apache Spark-Pools in Azure Synapse Analytics können Sie diese Bibliotheken verwenden, um Modelle mit einzelnen Computern zu erstellen, indem Sie die Anzahl von Executors in Ihrem Pool auf Null festlegen. Auch wenn Apache Spark in dieser Konfiguration nicht funktionsfähig ist, stellt es eine einfache und kostengünstige Möglichkeit dar, Modelle mit einzelnen Computern zu erstellen.

Nachverfolgen der Modellentwicklung

MLFlow ist eine Open-Source-Bibliothek zum Verwalten des Lebenszyklus Ihrer Machine Learning-Experimente. MLflow Tracking ist eine Komponente von MLflow, die Metriken zu Trainingsausführungen und Modellartefakte protokolliert und nachverfolgt. Weitere Informationen zur Verwendung von MLFlow Tracking über Azure Synapse Analytics und Azure Machine Learning finden Sie in diesem Tutorial zum Verwenden von MLFlow.

Modellbewertung

Die Modellbewertung (oder Rückschließen) ist die Phase, in der ein Modell zum Erstellen von Vorhersagen verwendet wird. Für die Modellbewertung mit SparkML oder MLLib können Sie die nativen Spark-Methoden nutzen, um Rückschlüsse direkt über einen Spark DataFrame zu ziehen. Sie könne für andere Open-Source-Bibliotheken und Modelltypen auch eine Spark-UDF erstellen, um den Rückschluss für große Datasets aufzuskalieren. Für kleinere Datasets können Sie auch die von der Bibliothek bereitgestellten nativen Modellrückschlussmethoden verwenden.

Registrieren und Bereitstellen von Modellen

Die Registrierung eines Modells ermöglicht es Ihnen, Metadaten zu Modellen in Ihrem Arbeitsbereich zu speichern, zu versionieren und zu verfolgen. Nachdem Sie das Training Ihres Modells abgeschlossen haben, können Sie Ihr Modell in der Azure Machine Learning-Modellregistrierung registrieren. Nach der Registrierung können ONNX-Modelle auch zum Erweitern der Daten verwendet werden, die in dedizierten SQL-Pools gespeichert werden.

Nächste Schritte

Für die ersten Schritte mit dem maschinellen Lernen in Azure Synapse Analytics sollten Sie sich unbedingt die folgenden Tutorials ansehen: