• Apache Spark

    In Deutschland ist das Thema Big Data, also die Verarbeitung von großen Datenmengen, zunehmend interessanter geworden. Durch die zunehmende Einführung der Industrie 4.0 und der damit verbundenen Digitalisierung generieren Unternehmen zunehmend mehr Informationen als noch vor zehn Jahren.

    Auch die E-Commerce Plattform Amazon nutzt generierte Informationen um das Kaufverhalten von Kunden analysieren zu können. Amazon verwendet unter anderem Apache Spark zur Analyse dieser Informationen.

    Apache Spark ist eine Open-Source-Lösung der Apache-Foundation. Ursprünglich an der kalifornischen Universität Berkeley entwickelt, wurde das Cluster-Computing-Framework 2010 von Apache übernommen und stetig weiterentwickelt. 

    Spark ist eine modular aufgebaute Plattform für schnelle Datenanalysen. Es gibt Module für die Arbeit mit SQL, Streamingdaten, Graphen und Maschinlearning Algorithmen. Das Framework bringt zahlreiche Schnittstellen für Programmiersprachen mit. So können Sparkprogramme in den Programmiersprachen Python, R, Scala und Java programmiert und anschließend in Spark-Cluster verteilt und ausgeführt werden.

    Nachfolgende Abbildung verdeutlicht den Aufbau von Apache Spark grafisch.

     

    Spark Stack
    Spark Stack

     

    Wir nutzen Apache Spark unter anderem für die Berechnung unseres Recommender Systems in unserem Produkt croGoDeal.

  • Im Rahmen eines Kundenprojektes besuchte Tobias vergangene Woche die Scaladays in Kopenhagen. Zusätzlich besuchte er ein Meet-Up von Lightbend zum Thema Fast Data Plattform und die Typelevel Summits, die unmittelbar nach den Scaladays stattgefunden haben. In Zahlen konnte Tobias 25 verschiedene Talks von Speakern aus der ganzen Welt sehen. Insgesamt also sehr viel neuer Input in den Bereichen Scala, akka, play und co. 

    Neben vielen Themen in den Bereichen von Streaming Data (akka streaming, fast data plattform) und Microservices (CQRS, Datenvalidation mit Cats) war auch der neue Scala Compiler Dotty ein großes Thema der Konferenz. Die angesprochenen Verbesserungen sind alle sehr vielversprechend. Neben mehr Geschwindigkeit bei der Compilezeit wird die Sprache Scala an sich klarer und in unseren Augen weiter stark verbessert. 

    Ein für unser noch eher neues, aber dennoch sehr interessantes Framework ist scala meta. Das scala meta Livecoding in Form einer Erweiterung für REST APIs, war ein tolles Beispiel von Pathikrit Bhowmick. Der beste Talk der Konferenz kam in unseren Augen von Gabriele Petronella („Monad transformers down to earth“). Eine ähnlich gute Erklärung zu Monaden ist uns in Scala bisher nicht bekannt gewesen. 

    Für unser Projekt croGoDeal von großem Interesse waren auch die Talks von IBM zu Spark, sowie von Salesforce zu deren Plattform Einstein und der Spark Erweiterung namens Optimus Prime. Wir hoffen, dass diese typsichere Erweiterung von Spark in absehbarer Zeit als Open-Source Projekt veröffentlicht wird, sodass man dieses hervorragende Tool auch außerhalb von Salesforce benutzen kann.

    Alle Talks der Konferenz findet man auf dem YouTube Channel der ScalaDays.

     

     

     

     

  • Heute fand das AWS Artificial Intelligence Bootcamp in den VW:Datalab in München statt. Wir waren selbstverständlich vor Ort und haben viel Neues über Deep Learning bei Amazon Web Services gelernt. Neben den AWS AI Diensten Polly, Lex, Recognition und der Machine Learning Plattform selbst, wurde viel über die Technik hinter den Diensten erzählt. Auch das Recommendation System von Amazon basiert auf modernen Deep Learning Algorithmen. Ähnlich wie die anderen großen Hersteller hat auch Amazon ein Open Source Framework für diese Aufgabe.

    MXNet als KI Treiber von Amazon

    Amazon ist der größer Contributor von Apache MXNet. MXNet ist ein skalierbares Deep Learning Framework, das stark an TensorFlow, Caffe, und co. erinnert. Ein Deep Learning Framework zeichnet sich meist dadurch aus, dass es besonders gut mit Matrizen bzw. "Tensoren" umgehen und rechnen kann. MXNet optimiert ähnlich wie Spark auch den Computationgraph und verbessert so die Laufzeit um ein vielfaches.

    Künstliche Intelligenz ersetzt Maschinen 

    Insgesamt war der Tag in München ein voller Erfolg für uns. Teile des neu erworbenen Wissens können wir direkt in unserer Plattform croGoDeal verwenden, auch wenn diese in Scala und nicht in Python programmiert ist/wird. 

    Abschießend zum Event hat einer der Speaker von Amazon Web Services noch interessante Rechenexempel zur künstlichen Intelligenz bzw. zur Singularität gezeigt:

    Ein Mensch kann ca. 10^15 Operationen/s ausführen. Wollte man diese Kapazität mit einem Deep-Learning Netz bei AWS buchen, würde dies knapp 105.000$/h kosten. Alleine für das Training für ein gutes Deep-Learning Model wären schon 3 Wochen nötig. Dieses Beispiel zeigt sehr gut, dass der Mensch wohl doch noch nicht von Maschinen ersetzt wird. Man sollte aber dennoch nicht die „Moorschen Gesetze“ vergessen.

     

  • Wir haben auf github eine erste Alpha Version unseres Machine Learning Tools "akka-lift-ml" unter der Apache 2.0 Lizenz veröffentlicht. Das Tool setzt nach der Arbeit eines Data Scientist an und übernimmt einen Großteil der Aufgaben im Betrieb von ML Systemen. Häufig spricht man auch von Data Engineering. akka-lift-ml ist in Scala geschrieben und erweitert eine lokale Spark Instanz für die Trainingsresultate. Das Training selbst kann auf jedem über das Netzwerk erreichbare Spark Cluster durchgeführt werden.

    Damit das Tool die Machine Learning Aufgaben erfolgreich umsetzten kann, müssen die Daten vollständig bereinigt worden sein. Dies lässt sich beispielsweise mit Spark Streaming oder akka Streaming in nahezu Echtzeit erledigen (FastData Processing). Wenn die Daten im richtigen Format, zum Beispiel csv auf HDFS oder S3, abgelegt worden sind, kann das Training direkt beginnen. Das gesamte Tool wird im Betrieb über REST Schnittstellen oder Aktoren gesteuert und als Docker Container ausgeliefert. So können beispielsweise über HTTP POST neue Trainingsläufe gestartet werden, neue beste Parameter gefunden werden und auch mit HTTP GET auf die Ergebnisse der vergangenen Trainingsdurchläufe zugegriffen werden. Sollte der Microservice abstürzen, wird automatisch das letzte trainierte Model von einer Quelle wie S3 oder HDFS geladen. 

    Derzeit unterstützt das Tool lediglich den ALS (Alternating Least Squares) Algorithmus für Collaborative-Filtering. Dieser wird sehr häufig im Bereich Recommendersysteme eingesetzt. Weiter Algorithmen wie für lineare Regression sollen ergänzt werden. 

    Wünsche, Anregungen und Verbesserungsvorschläge können Sie uns gerne über github zukommen lassen.

    Weitere Informationen und eine QuickStart Guide finden sie in der Beschreibung oder im Wiki System auf github:

    https://github.com/innFactory/akka-lift-ml

     

  • innFactory ist seit Anfang 2018 offizieller Partner von Lightbend. Wir haben entsprechendes Know-How in Form von Zertifikaten und Projekten vorgewiesen und freuen uns als einer der wenigen Partner in Deutschland agieren zu können. 

    Tobias ist beispielsweise ein Lightbend Certified Expert für akka, Scala und das Play2 Framework. Die Produkte und Frameworks von Lightbend sind für uns im Backend zu einer Schlüsseltechnologie bei reaktiven Cloudsystemen geworden. Meist in Verbindung mit der AWS Cloud und einer UI/UX Oberfläche mit react oder react-native.

    Wer ist Lightbend überhaupt?

    Ligthbend wurde von Martin Odersky (dem Erfinder von Scala), Jonas Bonér (dem Erfinder der Middleware akka) und Paul Phillips 2011 als Typesafe gegründet. In 3 Finanzierungsrunden konnte Lightbend über 40 Millionen Kapital einsammeln. Der Hauptsitz befindet sich in San Francisco.

    Lightbend bietet seinen Kunden und Partnern eine Vielzahl von Open-Source Tools für die Entwicklung von reaktiven Applikationen. Dazu zählt auch deren Enterprise Support. Meist kommen die Tools auf Clouds wie AWS, GCE oder Azure zum Einsatz. 

    2016 wurde das Unternehmen dann in Ligthbend umbenannt. Mitte 2017 wurde bekannt, dass Lightbend zusammen mit IBM an Lösungen für Cognitive Computing im Enterprise Bereich arbeitet. 

    Kann ich die Technologie eines Startups in meinem Unternehmen einsetzen?

    Wir sagen eindeutig Ja!

    Denn, viele große Unternehmen vertrauen bereits auf die Technologie von Ligthbend. Dazu zählen Unternehmen wie Zalando, Amazon, IBM, Verizon, Twitter, Intel, DHL, SAP, LinkedIn, Walmart, weightwatchers, UniCredit, HP, ING, EA Games, credit karma, Capital One, Juniper Networks, Huawei, Starbucks und noch sehr viele mehr. Viele interessante Use-Cases dazu gibt es auf der Webseite von Lightbend.

    Zusätzlich sind eine Vielzahl von defacto Cloud- und Machine Learning Frameworks bereits auf Basis von Scala, akka oder Play programmiert. Dazu zählen beispielsweise das Cluster Computing Framework Apache Spark, das Load Testing Tool gatling oder die verteilte Streaming Plattform Apache Kafka.