Suche
Wie Deeplearning4j zum DL-Tool Nr. 1 für Java wurde

Machine Learning für Java: Deeplearning4j landet bei der Eclipse Foundation

Chris Nicholson

© Shutterstock / Jens Goepfert

Machine Learning ist eines der Trendthemen schlechthin. Während viele ML-Projekte die Programmiersprache Python nutzen, ist eine Unterstützung für Java bislang eher rar gesät. Doch das könnte sich bald ändern: Das Projekt Deeplearning4j stellt weitreichende Deep-Learning-Funktionalitäten für Java zur Verfügung und hat das Potenzial, sich unter dem Dach der Eclipse Foundation zu einem Magneten für angegliederte ML-Libraries und Tools zu entwickeln. Chris Nicholson, CEO von Skymind und Schöpfer von Deeplearning4j, stellt in diesem Artikel das Deeplearning4j-Ökosystem vor.

Wie Deeplearning4j zum Deep-Learning-Tool Nr. 1 für Java wurde

Timing hat einen großen Teil unseres Wachstums und der Entwicklung unserer Community ausgemacht. Das heißt, wir haben zur rechten Zeit mit der Arbeit an Deeplearning4j begonnen. Maschine Learning und insbesondere Deep Learning haben sich in den letzten zehn Jahren stark verändert. Es wurden einige wichtige neue Technologien entwickelt, die Deep Learning unterstützen, und es haben sich Entwicklungen ergeben, die es noch leistungsfähiger machen. Big Data, GPUs und eine Menge großartiger Forschung über Machine Learning sind notwendig gewesen, um die leistungsfähigen Algorithmen von heute zu entwickeln. Nichts davon hat in den 1990er Jahren existiert, und auch Anfang der 2000er Jahre noch nicht.

Deeplearning4j wurde Ende 2013 konzipiert, als Adam Gibson und ich in einem Hackerhaus in San Francisco lebten. Ich glaube, die erste Pull-Anfrage kam dann im Frühjahr 2014. Unser Projekt wurde für die Arbeit an GPUs entwickelt und wurde für die neuesten Forschungsarbeiten gebaut, da die neuen Algorithmen ein sehr hohes Maß an Präzision hervorbringen. Es wurde auch deshalb entwickelt, um in das Big-Data-Ökosystem integriert werden zu können, das in den letzten 10 Jahren aus der JVM heraus entstanden ist, siehe Hadoop, Spark, Kafka, ElasticSearch, Cassandra. Deep Learning benötigt Big Data, um weiter zu trainieren. Doch viele Datenwissenschaften scheitern an dem Punkt, an dem sie in Big Data integriert werden müssen. Wir wollten sichergehen, dass unser Ansatz mit Big Data funktioniert.

Adam ist 27. In den 2000ern lernte er Software-Engineering, indem er mit diesen Communities und Open-Source-Software arbeitete, z. B. an Projekten wie Spring. Und Josh Patterson, unser VP of Field, der von Anfang an dabei war, ist ein früher Mitarbeiter bei Cloudera gewesen und hat an Hadoop gearbeitet. Von Anfang an hatten wir ziemlich gute Ideen, was ein Open-Source-Projekt zum Erfolg führen würde: einen Kernel von Hardcore-Ingenieuren, die etwas Mächtiges erschaffen und auf die Community reagieren. Kluge Menschen ziehen andere kluge Leute an. Sobald du eine kleine, aber hingebungsvolle Gemeinschaft zusammen hast, vergrößert sie sich nach dem Schneeballsystem, und alle helfen sich gegenseitig. Ziemlich bald fängt sie an, coole Projekte aus ihrem Code zu bauen und darüber zu bloggen.

Ich habe Deeplearning4j wie verrückt gefördert. Von meinem Hintergrund her bin ich Journalist. Als Adam und ich über Skymind sprachen, arbeitete ich als Head of Comms bei einem Sequoia-gestützten Startup namens FutureAdvisor. Also erzählte ich Reportern, die ich kannte: Schauen Sie, da ist dieses kleine Genie, das die coole Technologie, von der wir bei Google hören, nutzt und sie in Java implementiert. Das war 2014 und die meisten Menschen fingen gerade erst an zu ahnen, wie mächtig Deep Learning ist. Das hat uns am Anfang Schwung gegeben. Es reicht nicht immer aus, etwas Großartiges zu erschaffen, man muss auch sicherstellen, dass die Leute davon erfahren. Und daran haben wir hart gearbeitet.

Was wir jetzt sehen, ist eine Menge an Werkzeugen, die für die Forschung entwickelt wurden, aber nur sehr wenige, die zur Lösung von Unternehmensproblemen und zum Einsatz in der Produktion geeignet sind. Dafür haben wir Deeplearning4j entwickelt. Denn viele Leute, die in Python ein tiefes neuronales Netz als Prototyp entwickelt haben, kommen nicht weiter, wenn sie es in der Produktion einsetzen wollen. Ihre Tools lassen sich nicht mit dem Rest von Big Data integrieren. Also ist dieser Weg eine Sackgasse. Der DevOps-Ansatz will keinen Python- und C-Code, da dieser unsicher und schwer zu debuggen ist. Also wird um Hilfe gefragt, wenn es um die Bereitstellung von Modellen in einer JVM-Computing-Umgebung geht. Eine Möglichkeit, Deeplearning4j einzusetzen, ist also ein komplettes Deep-Learning-Toolkit für die JVM, und eine andere ist, es als Brücke zwischen Python und der JVM zu verwenden, die viele Unternehmen jetzt brauchen.

Es ist interessant zu beobachten, wie sich das Feld der Datenforschung entwickelt. Python scheint R als Hauptsprache überholt zu haben. Viele Forschungsprojekte kämpfen darum, Wert für die Unternehmen zu schaffen, die sie finanzieren. Gleichzeitig gibt es aber auch eine Menge interessanter Arbeiten in Java, Scala und Clojure. Wählen Sie Ihre Werkzeuge nicht strategisch aus, kann es zu einer Diskrepanz zwischen der Welt der Datenwissenschaft und derjenigen der Unternehmenssoftware kommen, und das hat dann reale Konsequenzen, denn es bedeutet, dass die von Ihnen beschäftigten Datenwissenschaftler nicht in der Lage sind, ihre Modelle zur Anwendung zu bringen. Wir hingegen haben eine Menge Arbeit geleistet, um sicherzustellen, dass wir den Schritt vom Rechner zur Produktion auch gehen können.

Neben Deeplearning4j selbst haben wir eine Reihe weiterer Libraries, die dazu beitragen, dass Deep Learning auf der JVM möglich ist. Hier eine Auflistung:

  • Deeplearning4j: neural network DSL (ermöglicht den Aufbau neuronaler Netze, die mit Datenleitungen und Sparks verbunden sind)
  • ND4J: N-dimensionale Arrays für Java, eine Tensor-Bibliothek. Ziel ist es, Tensoroperationen und optimierten Support für verschiedene Hardwareplattformen bereitzustellen. Numpy für Java.
  • DataVec: Eine ETL-Bibliothek, die Daten vektorisiert und „tensorisiert“. Extrahieren/Transformieren/Laden mit Unterstützung für die Verbindung zu verschiedenen Datenquellen und Ausgabe von n-dimensionalen Arrays über eine Reihe von Datentransformationen
  • libnd4j: Reine C++-Bibliothek für Tensor-Operationen, die eng mit der Open-Source-Bibliothek JavaCPP zusammenarbeitet (JavaCPP wurde erstellt und wird von einem Skymind Engineer gepflegt, ist aber nicht Teil dieses Projektes).
  • RL4J: Reinforcement learning auf der JVM, integriert mit Deeplearning4j. Umfasst Deep-Q-Lernen, das in AlphaGo und A3C verwendet wird.
  • Jumpy: Eine Python-Schnittstelle zur ND4J-Bibliothek, die mit Numpy integriert ist
  • Arbiter: Automatische Abstimmung von neuronalen Netzen über Hyperparametersuche. Hyperparameter-Optimierung durch Rastersuche, Zufallssuche und bayessche Statistik-Methoden.

Die leise Wirkung von ND4J

Die Gesamtheit dieser Bibliotheken ist größer als die Summe der Teile, denn jede löst Probleme, die auch die anderen besser funktionieren lässt. Zusammen bilden sie die Grundlage eines universell einsetzbaren Ökosystems für das wissenschaftliche Rechnen und Machine Learning in Unternehmen.

Insbesondere die numerische Rechenoperationen von ND4J und seine Verbindung zu schnellem C++-Code durch JavaCPP machen Machine Learning in JVM Big Data performant. DataVec erleichtert den Aufbau von Datenpipelines, denn wie jeder weiß, der bereits an AI gearbeitet hat, machen Datenpipelines 80% der Arbeit aus. Die Fähigkeit von Java und Scala, Multi-Threading und Concurrency zu handhaben, machen sie für die großen Aufgaben des Machine Learnings, mit denen Unternehmen konfrontiert sind, zu überzeugenden Alternativen zu Python und R.

Deeplearning4J und die Eclipse Foundation

Im vergangenen Monat ist Skymind der Eclipse Foundation beigetreten und hat seine Open-Source-Bibliotheken zur Verfügung gestellt. Wir haben das getan, um Entwicklern und ihren Arbeitgebern zu zeigen, dass Deeplearning4j ausgereift, sicher, lizenziert und verantwortungsbewusst gemanagt ist.

Die Eclipse Foundation ist der Ort vieler großer Java-Projekte (wie z. B. JavaEE). Eclipse ist eine Community von Menschen und Unternehmen, die sich zusammenfinden, um sich gemeinsam großen technischen Herausforderungen zu stellen. Die hilfsbereit ist und eine interessante Arbeit leistet, so dass wir ein Teil dieser Community sein wollen.

Schließlich haben wir dort eine Menge Freiraum bekommen, den man bei anderen Stiftungen nicht immer erhält. Wir haben gesehen, dass Projekte bei anderen Stiftungen hochgradig politisiert worden sind, was ihre Entwicklung verlangsamt hat. In technischen Fragen ist es oft so, dass langsamer werden gleichbedeutend mit dem Niedergang ist. Die meisten Technologieunternehmen sterben im Schlaf. Wir konnten es uns also nicht leisten, eine Foundation zu wählen, die das Risiko barg, Deeplearning4j nicht voranzubringen.

MEHR ZUM THEMA:

Machine Learning Experten-Check: 6 Tipps für den Einstieg in das maschinelle Lernen

Geschrieben von
Chris Nicholson
Chris Nicholson
Chris Nicholson is co-founder and CEO of Skymind, the company behind Deeplearning4j, the most popular open-source deep-learning framework for Java. Previously, Chris led communications and recruiting for FutureAdvisor, a Sequoia-backed Y Combinator startup that was acquired by BlackRock in 2015 for $200 million. He also spent a decade as a journalist, reporting on tech and finance for The New York Times, Bloomberg News and Businessweek, among others. Follow him on Twitter @chrisvnicholson.
Kommentare
  1. Roland2017-11-20 09:26:09

    Das hier verwendete Vokabular ist schon sehr liberal, würde ich mal sagen.
    Besser wäre es, sich einen gepflegten deutschen Ausdruck anzueignen.
    Der Text strotzt nur so von für Techniker uninteressantem Füllmaterial.
    Der KI-Wahnsinn, wird auch hier mit mehr Feuer und Öl gefüttert, ohne wirklich
    jemals harte Entwicklerfakten auszubreiten. Die Krawatten-Hälse bei den Kunden
    wissen in der Regel eh nicht viel darüber, was hinter den Schlagworten steckt,
    und schon gar nichts wissen sie über die tatsächlichen Notwendigkeiten, die bemüht
    werden müssen, damit eine Software auch tatsächlich funktioniert. Es ist ihnen auch egal.
    Sie wollen meistens nur minimal Geld für maximal Nutzen bezahlen. Und sie wollen sich gut fühlen, wenn sie bei ihrem Chef vorbeirumpeln und damit protzen können, was für tolle hype Dinge sie jetzt in die Wege geleitet haben.

    Möglicherweise sind die Krawatten-Hälse genau das Zielsystem, das Sie bevorzugen.

  2. Redaktion JAXenter2017-11-20 12:13:44

    Zur Vertiefung in das Thema "Machine Learning" empfehlen wir unser Dossier: Maschinelles Lernen - wie wir Maschinen das Denken lehren.

    Dort finden sich auch technische Fachartikel - kostenlos als PDF zu beziehen hier:

    https://jaxenter.de/dossier-machine-learning-2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.