Warum Sie Spark für maschinelles Lernen verwenden sollten

Da Unternehmen vielfältigere und benutzerorientiertere Datenprodukte und -dienste entwickeln, besteht ein wachsender Bedarf an maschinellem Lernen, mit dem Personalisierungen, Empfehlungen und prädiktive Erkenntnisse entwickelt werden können. Traditionell können Datenwissenschaftler diese Probleme mit bekannten und beliebten Tools wie R und Python lösen. Da Unternehmen jedoch größere Datenmengen und Datenvielfalt ansammeln, verbringen Datenwissenschaftler einen Großteil ihrer Zeit damit, ihre Infrastruktur zu unterstützen, anstatt Modelle zur Lösung ihrer Datenprobleme zu erstellen.

Um dieses Problem zu lösen, bietet Spark eine allgemeine Bibliothek für maschinelles Lernen - MLlib - an, die auf Einfachheit, Skalierbarkeit und einfache Integration mit anderen Tools ausgelegt ist. Mit der Skalierbarkeit, Sprachkompatibilität und Geschwindigkeit von Spark können Datenwissenschaftler ihre Datenprobleme schneller lösen und durchlaufen. Wie sowohl die wachsende Vielfalt der Anwendungsfälle als auch die große Anzahl von Entwicklerbeiträgen zeigt, nimmt die Akzeptanz von MLlib schnell zu.

Wie Spark das maschinelle Lernen verbessert

Python und R sind aufgrund der großen Anzahl von Modulen oder Paketen, die zur Lösung ihrer Datenprobleme zur Verfügung stehen, beliebte Sprachen für Datenwissenschaftler. Die traditionellen Anwendungen dieser Tools sind jedoch häufig einschränkend, da sie Daten auf einer einzelnen Maschine verarbeiten, auf der das Verschieben von Daten zeitaufwändig wird, die Analyse Stichproben erfordert (die die Daten häufig nicht genau wiedergeben) und der Übergang von der Entwicklung in Produktionsumgebungen erforderlich ist umfangreiches Re-Engineering. 

Um diese Probleme zu lösen, bietet Spark Dateningenieuren und Datenwissenschaftlern eine leistungsstarke, einheitliche Engine, die sowohl schnell (100-mal schneller als Hadoop für die Verarbeitung großer Datenmengen) als auch benutzerfreundlich ist. Auf diese Weise können Datenpraktiker ihre Probleme des maschinellen Lernens (sowie die Berechnung von Grafiken, das Streaming und die interaktive Abfrageverarbeitung in Echtzeit) interaktiv und in viel größerem Umfang lösen.

Spark bietet auch viele Sprachoptionen, einschließlich Scala, Java, Python und R. Die Spark-Umfrage von 2015, in der die Spark-Community befragt wurde, zeigt ein besonders schnelles Wachstum von Python und R. Insbesondere verwendeten 58 Prozent der Befragten Python (ein Anstieg von 49 Prozent gegenüber 2014) und 18 Prozent nutzten bereits die R-API (die erst drei Monate vor der Umfrage veröffentlicht wurde).

Mit mehr als 1.000 Code-Mitwirkenden im Jahr 2015 ist Apache Spark das am aktivsten entwickelte Open-Source-Projekt unter den großen und kleinen Datentools. Ein Großteil des Fokus liegt auf der maschinellen Lernbibliothek von Spark, MLlib, mit mehr als 200 Personen aus 75 Organisationen, die allein MLlib über 2.000 Patches zur Verfügung stellen.

Die Bedeutung des maschinellen Lernens ist nicht unbemerkt geblieben. 64 Prozent der Befragten der Spark-Umfrage 2015 verwenden Spark für erweiterte Analysen und 44 Prozent erstellen Empfehlungssysteme. Dies sind eindeutig anspruchsvolle Benutzer. Tatsächlich identifizierten sich 41 Prozent der Befragten als Dateningenieure, während 22 Prozent sich als Datenwissenschaftler identifizierten.

Spark's Design für maschinelles Lernen

Von Beginn des Apache Spark-Projekts an galt MLlib als Grundlage für den Erfolg von Spark. Der Hauptvorteil von MLlib besteht darin, dass sich Datenwissenschaftler auf ihre Datenprobleme und -modelle konzentrieren können, anstatt die Komplexität verteilter Daten (wie Infrastruktur, Konfigurationen usw.) zu lösen. Die Dateningenieure können sich mithilfe der benutzerfreundlichen APIs von Spark auf das verteilte System-Engineering konzentrieren, während die Datenwissenschaftler die Größe und Geschwindigkeit des Spark-Kerns nutzen können. Ebenso wichtig ist, dass Spark MLlib eine Allzweckbibliothek ist, die Algorithmen für die meisten Anwendungsfälle bereitstellt und gleichzeitig der Community ermöglicht, darauf aufzubauen und sie für spezielle Anwendungsfälle zu erweitern.

Zu den Vorteilen des MLlib-Designs gehören:

  • Einfachheit: Einfache APIs, die Datenwissenschaftlern aus Tools wie R und Python bekannt sind. Anfänger können Algorithmen sofort ausführen, während Experten das System einfach einstellen können, indem sie wichtige Knöpfe und Schalter (Parameter) einstellen.
  • Skalierbarkeit: Die Möglichkeit, denselben ML-Code nahtlos auf Ihrem Laptop und in einem großen Cluster auszuführen, ohne dass ein Ausfall auftritt. Auf diese Weise können Unternehmen dieselben Workflows verwenden, wenn ihre Benutzerbasis und ihre Datensätze wachsen.
  • Optimiertes Ende-zu-Ende: Die Entwicklung von Modellen für maschinelles Lernen ist ein mehrstufiger Weg von der Datenaufnahme über Versuch und Irrtum bis zur Produktion. Wenn Sie MLlib auf Spark aufbauen, können Sie diese unterschiedlichen Anforderungen mit einem einzigen Tool anstelle vieler nicht zusammenhängender Tools erfüllen. Die Vorteile sind geringere Lernkurven, weniger komplexe Entwicklungs- und Produktionsumgebungen und letztendlich kürzere Zeiten für die Bereitstellung leistungsstarker Modelle.
  • Kompatibilität: Datenwissenschaftler verfügen häufig über Workflows, die in gängigen datenwissenschaftlichen Tools wie R, Python-Pandas und Scikit-Learn aufgebaut sind. Spark DataFrames und MLlib bieten Tools, die die Integration dieser vorhandenen Workflows in Spark erleichtern. Mit SparkR können Benutzer beispielsweise MLlib-Algorithmen mit der bekannten R-Syntax aufrufen, und Databricks schreibt Spark-Pakete in Python, damit Benutzer Teile von Scikit-Learn-Workflows verteilen können.

Gleichzeitig ermöglicht Spark Datenwissenschaftlern, zusätzlich zu ihren Problemen beim maschinellen Lernen mehrere Datenprobleme zu lösen. Das Spark-Ökosystem kann auch Graphberechnungen (über GraphX), Streaming (Echtzeitberechnungen) und interaktive Abfrageverarbeitung in Echtzeit mit Spark SQL und DataFrames lösen. Die Fähigkeit, dasselbe Framework zur Lösung vieler verschiedener Probleme und Anwendungsfälle zu verwenden, ermöglicht es Datenfachleuten, sich auf die Lösung ihrer Datenprobleme zu konzentrieren, anstatt für jedes Szenario ein anderes Tool zu lernen und zu warten.

Spark MLlib-Anwendungsfälle

Im Zusammenhang mit Spark MLlib gibt es eine Reihe gängiger Anwendungsfälle für Unternehmen. Die Beispiele umfassen, ohne darauf beschränkt zu sein, Folgendes:

  • Marketing- und Werbeoptimierung
    • Welche Produkte sollten wir jedem Benutzer empfehlen, um das Engagement oder den Umsatz zu maximieren?
    • Wie hoch ist die Wahrscheinlichkeit, dass der Nutzer basierend auf dem Verhalten der Nutzer auf die verfügbaren Anzeigen klickt?
  • Sicherheitsüberwachung / Betrugserkennung, einschließlich Risikobewertung und Netzwerküberwachung
    • Welche Benutzer zeigen anomales Verhalten und welche sind möglicherweise böswillig?
  • Betriebsoptimierung wie Lieferkettenoptimierung und vorbeugende Wartung
    • Wo in unserem System treten wahrscheinlich Fehler auf, die vorbeugende Überprüfungen erfordern?

Mit Spark MLlib werden heute viele überzeugende Geschäftsszenarien und technische Lösungen gelöst, darunter Huawei für Frequent Pattern Mining, OpenTables Speiseempfehlungen und Verizons Spark MLlibs ALS-basierte Matrix Factorization. Einige zusätzliche Beispiele:

  • NBC Universal speichert Hunderte von Terabyte Medien für internationales Kabelfernsehen. Um Kosten zu sparen, werden die Medien offline geschaltet, wenn es unwahrscheinlich ist, dass sie bald verwendet werden. Das Unternehmen verwendet Spark MLlib Support Vector Machines, um vorherzusagen, welche Dateien nicht verwendet werden.
  • Die Toyota Customer 360 Insights-Plattform und das Social Media Intelligence Center werden von Spark MLlib unterstützt. Toyota verwendet MLlib, um Social-Media-Interaktionen in Echtzeit zu kategorisieren und zu priorisieren.
  • Radius Intelligence verwendet Spark MLlib, um Milliarden von Datenpunkten von Kunden und externen Datenquellen zu verarbeiten, darunter 25 Millionen kanonische Unternehmen und Hunderte Millionen Brancheneinträge aus verschiedenen Quellen.
  • ING verwendet Spark in seiner Datenanalyse-Pipeline zur Erkennung von Anomalien. Die Pipeline für maschinelles Lernen des Unternehmens verwendet Spark-Entscheidungsbaum-Ensembles und k-means-Clustering.

Spark ist nicht nur eine schnellere und einfachere Möglichkeit, unsere Daten zu verstehen. Grundsätzlich ändert Spark die Art und Weise, wie wir Data Engineering und Data Sciences betreiben können, indem es uns ermöglicht, eine Vielzahl von Datenproblemen - vom maschinellen Lernen über Streaming, strukturierte Abfragen bis hin zur Grafikberechnung - in der Sprache unserer Wahl zu lösen.

Mit Spark MLlib können unerfahrene Datenpraktiker problemlos mit ihren Algorithmen arbeiten, während Experten die gewünschten Einstellungen vornehmen können. Dateningenieure können sich auf verteilte Systeme konzentrieren, und Datenwissenschaftler können sich auf ihre Algorithmen und Modelle für maschinelles Lernen konzentrieren. Spark verbessert das maschinelle Lernen, da sich Datenwissenschaftler auf die Datenprobleme konzentrieren können, die ihnen wirklich am Herzen liegen, und gleichzeitig die Geschwindigkeit, Leichtigkeit und Integration der einheitlichen Plattform von Spark transparent nutzen können.

Joseph Bradley ist Softwareentwickler und Spark-Committer und arbeitet bei Databricks an MLlib. Zuvor war er Postdoc an der UC Berkeley, nachdem er 2013 an der Carnegie Mellon University in maschinellem Lernen promoviert hatte. Seine Forschung umfasste probabilistische grafische Modelle, parallele spärliche Regression und Aggregationsmechanismen für Peer-Grading in MOOCs.

Xiangrui Meng ist Apache Spark PMC-Mitglied und Softwareentwickler bei Databricks. Seit seinem Eintritt bei Databricks war er aktiv an der Entwicklung und Wartung von Spark MLlib beteiligt.

Denny Lee ist Technologie-Evangelist bei Databricks. Er ist ein praktischer Ingenieur für Datenwissenschaften mit mehr als 15 Jahren Erfahrung in der Entwicklung von Internet-Infrastrukturen, Datenplattformen und verteilten Systemen für lokale und Cloud-Anwendungen. 

Das New Tech Forum bietet einen Ort, an dem Sie neue Unternehmenstechnologien in beispielloser Tiefe und Breite erkunden und diskutieren können. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an [email protected]