Interview mit Kai Wähner

„Die Technologie ist für das Lernen von Machine Learning nicht entscheidend“

Melanie Feldmann

Kai Wähner

Auf der W-JAX 2017 in München dreht sich diese Woche alles um neue Trends und Technologien in der weiten Java-Welt. Dabei darf das Thema Maschinelles Lernen natürlich nicht fehlen. Wir haben mit Kai Wähner, Technology Evangelist bei Confluent, darüber gesprochen wie man den Einstieg in Maschinelles Lernen am besten meistert und was besser die waschechten Data Scientists machen sollten.

JAXenter: In dem Beispiel, das du in deinem Talk beschrieben hast, geht es darum die ML-Modelle der Kollegen Data Scientist in Produktion zu bringen. Auch das Hard-Core-ML-Wissen bei liegt bei denen. Welche Basics sollten Entwickler trotzdem auf jeden Fall zum Thema Maschinelles Lernen wissen?

Kai Wähner: Es kommt darauf an, wie man die analytischen Modelle aufbaut und trainiert. Es gibt zwei Möglichkeiten, analytische Modelle zu entwickeln. Eine Möglichkeit ist, Modelle mit historischen Daten zu trainieren (Batch-Training) und anschließend in einem Produktivsystem einzusetzen. Die Modelle werden immer wieder trainiert und verbessert. Und die aktualisierten Modelle ersetzen die alten Modelle in der Produktion. Das machen die meisten Unternehmen heute so. Dies kann auch automatisierte Schritte wie CI/CD oder DevOps-Konzepte umfassen und reicht in den meisten Szenarien aus. Hier nutzen die Date Scientists ihre eigenen Technologien und Werkzeuge, um ein Modell mit ihren ML-Kenntnissen zu entwickeln, und die Entwickler bringen es ohne das Wissen von Hardcore-ML in die Produktion.

Alternativ kann man eingesetzten Modelle kontinuierlich trainieren und verbessern (Online-Training). Die Modelle werden mit jedem neuen Event in Echtzeit verbessert. Hier müssen die Data Scientists und Entwickler enger zusammenarbeiten. Daher müssen Entwickler ein tieferes Verständnis von ML erlangen. Data Scientists und Entwickler erstellen hierfür maßgeschneiderte Modelle. Diese Alternative ist komplexer und wird nur in speziellen Anwendungsfällen benötigt.

JAXenter: Was würdest du Entwicklern bei den ersten Schritten mit Frameworks und Tools rund um Maschinelles Lernen raten?

Für Erfolge im Bereich des Maschinellen Lernens ist es wichtig, nicht zu viel Zeit mit Theorie zu verbringen.

Kai Wähner: Zwei wichtige Aspekte sind für den schnellen Erfolg von Bedeutung. Erstens: Verbringe nicht zu viel Zeit mit der Theorie! Hand anlegen! Die meisten Bücher und Videos gehen zu sehr ins Detail der theoretischen Konzepte. Such lieber einige praktische Online-Kurse, die die Theorie auf hohem Niveau erklären und sich dann auf praktische Beispiele konzentrieren. Benutzerrezensionen helfen dabei, die richtigen Bücher und Kurse zu finden. Es ist wichtig, einige Anwendungsfälle selbst zu realisieren. Am Anfang ist es nicht so wichtig zu verstehen, wie die ML-Algorithmen und -Modelle unter der Haube funktionieren. Zweitens: Die Technologie ist für das Erlernen von ML nicht entscheidend! Wähle die Programmiersprache, die du gut kennst. Das kann Python, Java, Scala oder etwas anderes sein. Viele ML-Frameworks bieten eine Schnittstelle zu verschiedenen Programmiersprachen und oft auch intuitive Benutzeroberflächen für den Einstieg in die schnelle Entwicklung. Wähle etwas, das einfach einzurichten und zu verwenden ist, zum Beispiel Keras als Wrapper anstelle von TensorFlow oder MXNet APIs. Man benötigt kein großes Daten-Cluster, um mit ML zu beginnen. Man wird ohnehin nur kleine Datensätze zum Lernen verwenden. Und auch in vielen realen Szenarien sind die Datensätze nur Megabytes oder Gigabytes groß und nicht Tera- oder Petabytes.

JAXenter: Du nennst als Beispiele für Open Source Frameworks TensorFlow, Deeplearning4j und H20. Hast du einen Favoriten und wenn ja warum?

Kai Wähner: Eigentlich habe ich keinen Favoriten. Es hängt von zu vielen Faktoren ab. Zum Lernen empfehle ich Keras, auch die meisten Kurse benutzen es. Es ist ein Wrapper für verschiedene Frameworks wie Theano, TensorFlow oder MXNet. Man beginnt auf  hohem Niveau und kann später mehr Details erfahren. Für Projekte in der realen Welt sind meine Favoriten Werkzeuge, die es Data Scientists und Entwicklern ermöglichen, gut zusammenzuarbeiten, mit jeweils ihren geliebten Technologien, zum Beispiel Python oder R für Data Scientists und Java für Entwickler. Open-Source-Tools wie H2O sind großartig, da sie es ermöglichen, analytische Modelle mit Python oder R zu erstellen, aber auch das Modell als Java-Code zu generieren, sodass es ohne Neuentwicklung problemlos in jede geschäftskritische Anwendung auf der Java-Plattform implementiert werden kann. Zusätzlich kann man Tools wie TensorFlow oder MXNet nutzen und in die H2O-Engine einbetten.

Verpassen Sie nicht Kai Wähners Session zu KSQL – An Open Source Streaming SQL Engine for Apache Kafka, die er auf der W-JAX 2017 in München hält!

In seiner Session spricht Kai Wähner über KSQL, eine quelloffene SQL Stream Engine, die unter der Apache-2.0-Lizenz steht und auf Apache Kafka aufsetzt. Diese soll dafür sorgen, Stream Processing für jeden verfügbar zu machen. Die Session findet am Dienstag, 8. November 2017, von 16.45 bis 17.45 Uhr statt.

 

JAXenter: Welchen Anwendungsfall für Maschinelles Lernen findest du persönlich besonders spannend 

Kai Wähner: Die spannendsten Anwendungsfälle liegen um die echte Künstliche Intelligenz herum. Das heißt dort, wo Computer wirklich autonom lernen. Autonome Autos sind ein gutes Beispiel dafür. Aber das ist in den meisten Fällen nicht das, was wir heute mit ML meinen! Es wird noch ein paar Jahre dauern, bis es in der breite Anwendung findet. Heute freue ich mich, dass ML in allen Industriezweigen in die Produktion geht. Viele traditionelle Anwendungsfälle lassen sich durch analytische Modelle verbessern, um den Umsatz zu steigern, Risiken zu reduzieren oder die Kundenzufriedenheit zu verbessern. Spannende Beispiele für ML bereits heute in der Produktion sind Cross Selling – bevor der Kunde das Lager verlässt –, Betrugserkennung – bevor der Artikel versendet wird – oder Predictive Maintenance – bevor ein Teil einer Maschine kaputt geht.

JAXenter: Nachdem wir viel über ML und seine Frameworks gesprochen haben, was ist der Knackpunkt dabei, analytische Modelle in der Produktion einzusetzen?

Data Scientists erstellen analytische Modelle oft mit R oder Python, die nicht skalierbar und performant sind, – für die Produktion ist das eher nicht zu gebrauchen.

Kai Wähner: Data Scientists erstellen analytische Modelle oft mit R oder Python, die nicht skalierbar und performant sind. Das kann man nicht in der Produktion einsetzen, um Echtzeit-Scoring für viele Events durchzuführen. Das ist aber in vielen Szenarien für Zahlungsverkehr oder Sensoranalyse erforderlich. Daher muss man Modelle erstellen, die sich gut skalieren lassen. Und es muss eine einfache Möglichkeit geben, diese Modelle in einer skalierbaren, unternehmenskritischen Stream Processing Engine zu implementieren. Die zweite Herausforderung ist eine skalierbare Engine für die Prognosen. Ich benutze Kafka Streams als Streaming Engine. Es handelt sich lediglich um eine Java-Bibliothek, die man in jede Anwendung oder jeden Microservice einbetten kann: Stand-alone, Web-Applikation, Docker, Kubernetes, Mesos, etc. Apache Kafka hat alles unter der Motorhaube, um Failover, hohe Skalierbarkeit und gute Leistung out-of-the-box zu ermöglichen. Man kann Modelle mit Kafka Stream schlank und leistungsfähig deployen und überwachen ohne ein zusätzliches großes Datencluster. Oft wird eine komplette ML-Architektur rund um Kafka erstellt, einschließlich Model Training, Deployment, Inferenz und Monitoring. Techgiganten wie Netflix oder Uber sprechen bei öffentlichen Veranstaltungen viel darüber.

JAXenter: Vielen Dank für das Gespräch!

Kai Wähner arbeitet als Technology Evangelist bei Confluent. Seine Kernkompetenzen liegen in den Bereichen Big Data Analytics, Machine Learning, Integration, Microservices, Internet of Things, Streaming Analytics und Blockchain. Er ist regelmäßiger Referent auf internationalen IT-Konferenzen, schreibt Artikel für Fachzeitschriften und berichtet in seinem Blog über seine Erfahrungen mit neuen Technologien. Kontakt: kontakt@kai-waehner.de oder auf Twitter @KaiWaehner.
Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: