Was ist SynapseML?
SynapseML (zuvor als MMLSpark bezeichnet) ist eine Open-Source-Bibliothek, die die Erstellung hochgradig skalierbarer Machine Learning-Pipelines (ML) vereinfacht. SynapseML bietet einfache, zusammensetzbare und verteilte APIs für eine Vielzahl verschiedener Aufgaben für maschinelles Lernen wie Textanalyse, Bildanalyse, Anomalieerkennung und viele andere. SynapseML basiert auf dem verteilten Computing-Framework von Apache Spark und verfügt über die gleiche API wie die SparkML/MLLib-Bibliothek, sodass Sie SynapseML-Modelle nahtlos in bestehende Apache Spark-Workflows einbetten können.
Mit SynapseML können Sie skalierbare und intelligente Systeme erstellen, um Herausforderungen in Domänen wie Anomalieerkennung, maschinelles Sehen, Deep Learning, Textanalyse und anderen zu lösen. SynapseML kann Modelle auf Computern mit einem oder mehreren Knoten und elastisch anpassbaren Clustern trainieren und auswerten. Auf diese Weise können Sie Ihre Arbeit skalieren, ohne Ressourcen zu verschwenden. SynapseML kann in Python, R, Scala, Java und .NET verwendet werden. Darüber hinaus abstrahiert die API über eine Vielzahl von Datenbanken, Dateisystemen und Clouddatenspeichern, um Experimente zu vereinfachen, unabhängig davon, wo sich die Daten befinden.
SynapseML erfordert Scala 2.12, Spark 3.0+ und Python 3.6+.
Wichtige Features von SynapseML
Eine einheitliche API zum Erstellen, Trainieren und Bewerten von Modellen
SynapseML bietet eine einheitliche API, die die Entwicklung fehlertoleranter verteilter Programme vereinfacht. Insbesondere stellt SynapseML viele verschiedene Frameworks für maschinelles Lernen unter einer einzelnen API zur Verfügung, die skalierbar, daten- und sprachunabhängig ist und für Batch-, Streaming- und Bereitstellungsanwendungen funktioniert.
Eine einheitliche API standardisiert viele Tools, Frameworks und Algorithmen und optimiert die Erfahrung beim verteilten maschinellen Lernen. Sie ermöglicht Entwicklern die schnelle Zusammenstellung unterschiedlicher Machine Learning-Frameworks, sorgt für übersichtlichen Code und ermöglicht Workflows, die mehr als ein Framework erfordern. So erfordern z. B. Workflows wie das webgesteuerte Lernen oder die Erstellung von Suchmaschinen mehrere Dienste und Frameworks. SynapseML schirmt die Benutzer vor dieser zusätzlichen Komplexität ab.
Verwenden vorgefertigter intelligenter Modelle
Viele Tools in SynapseML benötigen kein großes beschriftetes Trainingsdataset. Stattdessen bietet SynapseML einfache APIs für vorgefertigte intelligente Dienste, wie Azure KI Services, um schnell große KI-Herausforderungen in Wirtschaft und Forschung zu lösen. Mit SynapseML können Entwickler über 50 verschiedene hochmoderne ML-Dienste direkt in ihre Systeme und Datenbanken einbetten. Diese sofort verwendbaren Algorithmen können eine Vielzahl von Dokumenten analysieren, Unterhaltungen mit mehreren Sprechern in Echtzeit transkribieren und Texte in über 100 verschiedene Sprachen übersetzen. Weitere Beispiele dafür, wie Sie vorgefertigte KI zur schnellen Lösung von Aufgaben einsetzen können, finden Sie in den „kognitiven“ Beispielen von SynapseML.
Um die Integration von SynapseML in Azure KI Services schnell und effizient zu gestalten, führt SynapseML viele Optimierungen für dienstorientierte Workflows ein. Insbesondere analysiert SynapseML automatisch gängige Drosselungsantworten, um sicherzustellen, dass Aufträge die Back-End-Dienste nicht überfordern. Außerdem verwendet es exponentielle Backoffs, um unzuverlässige Netzwerkverbindungen und fehlerhafte Antworten zu behandeln. Schließlich bleiben die Workercomputer von Spark mit den neuen asynchronen Parallelitätsprimitiven für Spark beschäftigt. Die asynchrone Parallelisierung ermöglicht es den Workercomputern, Anforderungen zu senden, während sie auf eine Antwort vom Server warten, und dies kann den Durchsatz um das Zehnfache erhöhen.
Umfassende Ökosystemkompatibilität mit ONNX
SynapseML ermöglicht es Entwicklern, über das ONNX-Framework (Open Neural Network Exchange) Modelle aus vielen verschiedenen ML-Ökosystemen zu verwenden. Mit dieser Integration können Sie eine Vielzahl von klassischen und Deep Learning-Modellen im großen Stil mit nur wenigen Zeilen Code ausführen. SynapseML kümmert sich automatisch um die Verteilung von ONNX-Modellen auf Workerknoten, die Batchverarbeitung und Pufferung von Eingabedaten für einen hohen Durchsatz und die Planung der Arbeit auf Hardwarebeschleunigern.
Die Integration von ONNX in Spark hilft Entwicklern nicht nur bei der Skalierung von Deep Learning-Modellen, sondern ermöglicht auch verteilte Rückschlüsse in einer Vielzahl von ML-Ökosystemen. ONNXMLTools konvertiert insbesondere Modelle aus TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O und PyTorch in ONNX für einen beschleunigten und verteilten Rückschluss mithilfe von SynapseML.
Erstellen verantwortungsvoller KI-Systeme
Nachdem Sie ein Modell erstellt haben, müssen Forscher und Techniker vor der Bereitstellung unbedingt dessen Grenzen und Verhalten verstehen. SynapseML hilft Entwicklern und Forschern bei der Entwicklung verantwortungsvoller KI-Systeme, indem es neue Tools einführt, die aufzeigen, warum Modelle bestimmte Vorhersagen treffen und wie der Trainingsdatensatz verbessert werden kann, um Verzerrungen zu beseitigen. Mit SynapseML wird der Prozess, das trainierten Modell eines Benutzers zu verstehen dramatisch beschleunigt, indem es Entwicklern ermöglicht, die Berechnung auf Hunderte von Computern zu verteilen. Genauer gesagt enthält SynapseML verteilte Implementierungen von Shapley Additive Explanations (SHAP) und Locally Interpretable Model-Agnostic Explanations (LIME), um die Vorhersagen von Bildanalyse-, Text- und Tabellenmodellen zu erläutern. Es enthält auch Tools wie Individual Conditional Expectation (ICE) und die partielle Abhängigkeitsanalyse, um voreingenommene Datasets zu erkennen.
Unternehmensunterstützung für Azure Synapse Analytics
SynapseML ist allgemein unter Azure Synapse Analytics mit Unternehmensunterstützung verfügbar. Sie können mithilfe von Azure KI Services, LightGBM, ONNX und anderen ausgewählten SynapseML-Features umfangreiche Pipelines für maschinelles Lernen erstellen. Es enthält sogar Vorlagen für die schnelle Erstellung von Prototypen verteilter Machine Learning-Systeme, wie visuelle Suchmaschinen, vorausschauende Wartungspipelines, Dokumentübersetzung und mehr.