Machine Learning: SynapseML automatisiert .NET-Anbindung an Apache Spark

Mit dem neuen API-Satz ermöglicht Microsofts ML-Bibliothek den Sprachen der .NET-Familie wie C# und F# verteiltes Machine Learning mit Apache Spark.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: sdecoret/Shutterstock.com)

Von
  • Silke Hahn

Microsoft hat das Release 0.10 von SynapseML herausgebracht. Die Neuerungen des Tools binden laut Herausgeber die auf Scala basierenden Apache-Spark-APIs durch das automatische Generieren von Code besser in das .NET-Ökosystem ein: Mit den neuen Language Bindings für Apache Spark soll die Bibliothek zum Erstellen von Machine-Learning-Modellen ab sofort allen Sprachen der .NET-Familie – wie C# und F# – das Erstellen, Trainieren und Verwenden großer ML-Modelle ermöglichen.

Die Integration durch SynapseML automatisiert die Sprachanbindung an Apache Spark und übernimmt somit einen Prozess, der zuvor deutlich zeitaufwendiger (und fehleranfälliger) war. Wie die Autoren des Blogeintrags mit Verwunderung anmerken, wurden die SparkML-APIs für die Sprachen Python, R und die .NET-Familie (PySpark, SparklyR und Projekt .NET for Apache Spark) bislang von Hand geschrieben und ließen sich schwer warten. SynapseML soll nun APIs automatisch in Python, R und die .NET-Sprachen übersetzen.

Perspektivisch plant das SynapseML-Team laut Blogeintrag, die Fähigkeit zum Autogenerieren der APIs in das Repository von .NET for Apache Spark einzubringen, damit alle SparkML-Klassen in der Core-Library Unterstützung finden. Um das zu erreichen, hat das Team die grundlegenden Klassen überarbeitet, damit sie in Einklang mit der Klassenhierarchie von Scala stehen (Apache Spark ist in Scala geschrieben).

SynapseML koordiniert für die .NET-Familie verteiltes Machine Learning über mehrere Frameworks, Cluster und Knotenpunkte. Es unterstützt eine Vielzahl an Datebanken und -quellen, Programmiersprachen wie C# und F# aus dem .NET-Spektrum, aber unter anderem auch Python, R und Java sowie Scala und Techniken wie Reinforcement Learning und Deep Learning. Die SynapseML-API gilt als skalierbar, daten- und sprachagnostisch. Sie führt laut Beschreibung des dahinter stehenden Teams verschiedene ML-Frameworks, Tools sowie gebräuchliche Algorithmen zusammen und erlaubt das Batchen, Streamen und Ausliefern in Anwendungen.

Verteiltes Machine Learning mit SynapseML: eine API vereint zahlreiche Frameworks, Datenquellen und Sprachen (Abb. 1)

(Bild: Microsoft)

Entwicklungsteams sollen damit Anwendungsfälle lösen können, die das Zusammenführen unterschiedlicher ML-Frameworks erfordern, wie beispielsweise beim Web-überwachten Lernen oder beim Erstellen von Suchmaschinen. Die API von SynapseML vermag offenbar über unterschiedliche Datenbanken, Dateisysteme und Cloud-Speicherorte zu abstrahieren. Das Tool fußt auf dem Framework für verteiltes Rechnen Apache Spark, und die neuen .NET-Bindings haben das Projekt .NET for Apache Spark als Grundlage.

Mit SynapseML sollen Entwicklerinnen und Entwickler KI-Systeme für zahlreiche Einsatzzwecke erstellen können: Das Interpretieren von Modellen, das Suchen und Finden von Informationen, Sprachverarbeitung, Textanalyse, Übersetzungen, das Orchestrieren von Microservices, Form- und Gesichtserkennung, das Aufspüren von Anomalien, Computervision und Deep Learning listet der Blogeintrag auf. Die Herausgeber betonen darin die Skalierbarkeit zum Erstellen und Einsatz großer Modelle.

Microsoft hatte SynapseML im November 2021 veröffentlicht: Es war damals der Nachfolger von MMLSpark (was für Microsoft Machine Learning for Apache Spark steht) und soll seither sowie mit Blick auf die Zukunft dem Erstellen "massiv skalierbarer ML-Pipelines" dienen. Erstmals angekündigt hatte Microsoft die Vorgängerin der Machine-Learning-Bibliothek im Sommer 2017.

Alle weiteren Hinweise zum aktuellen Release finden sich im Blogeintrag bei Microsoft. Der Blogpost bietet zahlreiche Code- und Anwendungsbeispiele für die Praxis sowie weiterführende Hintergrundinformationen.

(sih)