Kommentar von Kai Wähner, Confluent Diese Vorteile bietet Machine Learning mit Apache Kafka

Autor / Redakteur: Kai Wähner / Nico Litzel |

Machine Learning sowie das zugehörige Deep Learning nehmen Fahrt auf, da Machine Learning es Computern ermöglicht, versteckte Erkenntnisse zu gewinnen, ohne dass diese explizit programmiert sein müssen, worauf sie schauen sollen. Diese Fähigkeit wird für die Analyse unstrukturierter Daten, Bilderkennung, Spracherkennung und intelligente Entscheidungsfindung benötigt. Das macht einen großen Unterschied zur traditionellen Programmierung mit Java, .NET oder Python.

Anbieter zum Thema

Der Autor: Kai Wähner ist Technology Evangelist bei ‎Confluent
Der Autor: Kai Wähner ist Technology Evangelist bei ‎Confluent
(Bild: Confluent)

Die Konzepte des Machine Learning sind zwar nicht neu, aber die Verfügbarkeit großer Datensätze und Rechenleistung ermöglichen es nun jedem Unternehmen, leistungsfähige analytische Modelle zu erstellen. In jeder Branche gibt es eine Vielzahl von Anwendungsfällen, um durch die Anwendung analytischer Modelle in Unternehmensanwendungen und Microservices den Umsatz zu steigern, Kosten zu senken oder die Kundenzufriedenheit zu verbessern.

In diesem Beitrag werden mögliche Anwendungsfälle für Machine Learning in unternehmenskritischen Echtzeitanwendungen diskutiert, bei denen Apache Kafka als zentrales, skalierbares, unternehmenskritisches Nervensystem genutzt wird sowie Apache Kafkas Streams API zur Erstellung intelligenter Streaming-Anwendungen.

Skalierbare, geschäftskritische Echtzeitanwendungen

Das Aufkommen des Internets, der Smartphones und die damit einhergehende ständige Verfügbarkeit hat die Art und Weise verändert, wie sich Menschen verhalten. Dazu gehört auch die Erwartungshaltung, wie Geräte, Produkte und Dienstleistungen mit Personen interagieren: Man erwartet Informationen in Echtzeit. Die Herausforderung für Unternehmen besteht darin, auf kritische Momente zu reagieren, bevor es zu spät ist. Batch Processing reicht nicht mehr aus. Sie müssen sofort handeln, oder noch besser: proaktiv.

Traditionelle Unternehmen können sehr leistungsfähige Echtzeitverarbeitung für ihr Tagesgeschäft implementieren. Häufig wird Domänenwissen benötigt, um das Szenario zu verstehen und neue Streaming-Analysen zu erstellen, die den Geschäftswert steigern können. Anwendungsfälle für die Stream-Verarbeitung gibt es jeder Branche, wie zum Beispiel:

Betrugserkennung: Verknüpfen Sie Zahlungsinformationen mit anderen historischen Daten oder bekannten Mustern, um Betrug zu erkennen, bevor er auftritt. Das erfordert in der Regel eine sehr schnelle Bearbeitung, da Sie eine Transaktion ablehnen müssen, bevor Sie die Lagerbewegung abrechnen, Informationen austauschen oder den Artikel versenden können.

Cross Selling: Stimmen Sie Kundendaten aufeinander ab, um kontextspezifische, persönliche, maßgeschneiderte Angebote oder Rabatte zu erstellen, bevor der Kunde die Filiale verlässt. Sie nutzen Echtzeitinformationen (z. B. standortbezogene Daten, Zahlungsdaten), aber auch historische Daten (z. B. Informationen aus Ihrer CRM- oder Loyalty-Plattform), um jedem einzelnen Kunden das beste Angebot zu unterbreiten.

Vorausschauende Wartung: Verbinden Sie Maschinendaten, um Ausfälle vorherzusagen, bevor sie auftreten. Das ermöglicht es, Teile auszutauschen, bevor sie kaputt gehen. Abhängig von der Branche und dem Anwendungsfall kann das eine Menge Geld sparen (z. B. in der Fertigung), den Umsatz steigern (z. B. an Verkaufsautomaten) oder die Kundenzufriedenheit erhöhen (z. B. Vorhersage von Telko-Netzwerkausfällen).

Der Schlüssel zu all diesen Anwendungsfällen liegt darin, dass Sie Daten verarbeiten, wenn diese noch in Bewegung sind. Sie müssen das Ereignis bearbeiten, bevor es zu spät ist, zu handeln. Seien Sie proaktiv, nicht reaktiv! Ihr System sollte Entscheidungen treffen, bevor eine betrügerische Transaktion stattfindet, bevor der Kunde das Geschäft verlässt, bevor eine Maschine kaputtgeht.

Das bedeutet jedoch nicht immer, dass Sie innerhalb von Millisekunden reagieren müssen. Sogar Batch Processing von Ereignissen ist in mehreren Anwendungsfällen in Ordnung. Beispielsweise überwachen Sie in den meisten Fällen, in denen das Internet der Dinge (Internet of Things, IoT) für die vorbeugende Instandhaltung eingesetzt wird, Zeitfenster von mehreren Stunden oder sogar Tagen, um Probleme in der Infrastruktur oder bei Geräten zu erkennen. Der Austausch defekter Teile ist innerhalb eines Tages oder einer Woche ausreichend. Hier kann ein echter Mehrwert geschaffen und gleichzeitig Geld gespart werden, denn Sie können Probleme erkennen und beheben, bevor sie auftreten, oder diese die Umgebung negativ beeinflussen.

Intelligente Echtzeitanwendungen, die Machine Learning nutzen

Unternehmenskritische Echtzeitanwendungen wie die oben genannten wurden jahrelang entwickelt – ohne Machine Learning. Warum ändert sich das nun? Wenn Sie über maschinelle oder tiefes Lernen, lesen, sehen Sie oft Beispiele wie diese:

Bilderkennung. Laden Sie ein Bild auf Ihre Facebook-Timeline hoch und Objekte wie Ihre Freunde, der Hintergrund oder das Bier in Ihrer Hand werden analysiert.

Sprachübersetzung. Dies ermöglicht Chat-Bots, die mit Menschen über generierten Text oder Sprache kommunizieren.

Menschliches Verhalten. IBM Watson hat die besten Jeopardy-Spieler geschlagen; Googles AlphaGo hat professionelle Go-Spieler geschlagen.

Diese Beispiele werden immer relevanter für Unternehmen, die innovative neue Anwendungen entwickeln und sich vom Mitbewerbe abheben wollen. Auf die gleiche Weise kann Machine Learning auf „traditionelle Szenarien“ wie Betrugserkennung, Cross Selling oder präventive Wartung angewandt werden, um bestehenden Geschäftsprozesse zu verbessern und bessere datengesteuerte Entscheidungen zu treffen. Der bestehende Geschäftsprozess kann so bleiben, wie er ist. Man ersetzt lediglich die einfachere benutzerdefinierte Geschäftslogik und -regeln durch analytische Modelle, um die automatisierte Entscheidungsfindung zu verbessern.

Die folgenden Abschnitte zeigen, wie analytische Modelle auf skalierbare, unternehmenskritische Weise erstellt, betrieben und überwacht werden können, indem Apache Kafka als Streaming-Plattform genutzt wird.

Schritte zur Erstellung von analytischen Modellen

Denken wir zunächst an die nötigen Schritte, um ein analytisches Modell zu erstellen:

Erstellung von Modellen: Verwenden Sie Machine-Learning-Algorithmen wie GLM, Naive Bayes, Random Forest, Gradient Boosting, Neuronale Netze oder andere, um historische Daten zu analysieren und Erkenntnisse zu gewinnen. Dieser Schritt umfasst Aufgaben wie das Sammeln, Aufbereiten oder Transformieren von Daten.

Validierung: Verwenden Sie Techniken wie Cross-Validierung, um zu überprüfen, ob das erstellte analytische Modell mit neuen Eingabedaten arbeitet.

Inbetriebnahme: Stellen Sie das erstellte analytische Modell in einer Produktionsumgebung bereit, um es auf neue eingehende Ereignisse in Echtzeit anzuwenden.

Überwachung: Beobachten Sie die Ergebnisse des angewandten Modells. Dieser besteht aus zwei Teilen: Dem Versand von Alarmen, wenn ein Schwellenwert erreicht wird (Business Monitoring) und der Gewährleistung, dass die Genauigkeit und andere Metriken gut genug sind (analytische Modellüberwachung).

Kontinuierliche Optimierung: Verbessern Sie das analytische Modell, indem Sie alle oben genannten Schritte immer wieder durchlaufen. Das kann im manuellen Batch-Modus (z. B. einmal pro Woche) oder online geschehen, wobei das Modell für jedes eingehende Ereignis aktualisiert wird.

Hier muss das gesamte Projektteam von Anfang an zusammenarbeiten, um Fragen wie diese zu diskutieren:

  • Wie muss es in Produktion funktionieren?
  • Welche Technologie nutzt oder unterstützt das Produktivsystem?
  • Wie werden wir die Inferenz und Performance des Modells überwachen?
  • Bauen wir eine komplette Infrastruktur für Machine Learning auf, die den gesamten Lebenszyklus abdeckt, oder nutzen wir vorhandene Frameworks, um Modelltraining und Modellinferenz voneinander zu trennen?

Beispielsweise kann ein Datenwissenschaftler ein Python-Programm schaffen, das ein Modell erstellt, das mit hoher Genauigkeit sehr gut abschneidet. Das hilft aber nicht weiter, da Sie es nicht in der Produktion einsetzen können, weil es nicht skaliert oder bedarfsorientiert arbeitet.

Vermutlich können Sie sich schon jetzt vorstellen, warum Apache Kafka hervorragend für analytischer Modelle in Produktion geeignet ist. Im folgenden Abschnitt wird die Verwendung von Apache Kafka als Streaming-Plattform in Verbindung mit Machine/Deep Learning Frameworks zum Erstellen, Bedienen und Überwachen von analytischen Modellen erläutert.

Nachdem der Entwicklungszyklus von Machine Learning erklärt wurde, schauen wir uns eine Referenzarchitektur für die Erstellung, den Betrieb und die Überwachung analytischer Modelle mit Kafka an:

Das Wesen dieser Architektur besteht darin, dass sie Kafka als Vermittler zwischen folgenden Partien verwendet: den verschiedenen Datenquellen, aus denen Feature-Daten gesammelt werden, der Modellentwicklungsumgebung und der Produktionsanwendung, die Vorhersagen gibt.
Das Wesen dieser Architektur besteht darin, dass sie Kafka als Vermittler zwischen folgenden Partien verwendet: den verschiedenen Datenquellen, aus denen Feature-Daten gesammelt werden, der Modellentwicklungsumgebung und der Produktionsanwendung, die Vorhersagen gibt.
(Bild: Confluent)

Feature-Daten werden aus den verschiedenen Anwendungen und Datenbanken, die Kafka hosten, in Kafka geladen. Aus diesen Daten werden Modelle erstellt. Das Umfeld hierfür variiert je nach den Fähigkeiten und den bevorzugten Tools des Teams. Für die Erstellung von Modellen könnte ein Data Warehouse, eine Big-Data-Umgebung wie Spark oder Hadoop oder ein einfacher Server mit Python-Skripten genutzt werden. Das Modell kann dort veröffentlicht werden, wo die Produktionsanwendung, die die gleichen Modellparameter erhält, es auf eingehende Beispiele anwenden kann (z. B. mithilfe von Kafka Streams, um die Feature-Daten zu indexieren und bei Bedarf einfach zu verwenden). Die Produktionsanwendung kann entweder Daten von Kafka als Pipeline empfangen oder sogar selbst eine Kafka-Streams-Anwendung sein.

Kafka wird zum zentralen Nervensystem in der ML-Architektur, um analytische Modelle zu speisen, zu bauen, anzuwenden und zu überwachen. Das bringt enorme Vorteile mit sich:

  • Datenpipelines werden vereinfacht
  • Der Aufbau von analytischen Modellen ist von der Wartung entkoppelt.
  • Nutzung von Echtzeit oder Batch nach Bedarf
  • Analytische Modelle können in einer performanten, skalierbaren und unternehmenskritischen Umgebung eingesetzt werden.

Zusätzlich zur Nutzung von Kafka als skalierbarer, verteilter Messaging-Broker können auch optionale Open-Source-Komponenten des Kafka-Ökosystems wie Kafka Connect, Kafka Streams, Confluent REST Proxy, Confluent Schema Registry oder KSQL hinzugefügt werden, anstatt sich auf die Kafka Producer und Consumer APIs zu verlassen.
Zusätzlich zur Nutzung von Kafka als skalierbarer, verteilter Messaging-Broker können auch optionale Open-Source-Komponenten des Kafka-Ökosystems wie Kafka Connect, Kafka Streams, Confluent REST Proxy, Confluent Schema Registry oder KSQL hinzugefügt werden, anstatt sich auf die Kafka Producer und Consumer APIs zu verlassen.
(Bild: Confluent)

Implementierung von analytischen Modellen mithilfe einer Streaming-Plattform

Machine Learning kann in jeder Branche einen Mehrwert schaffen. Apache Kafka wird in immer mehr Unternehmen bereits als zentrales Nervensystem genutzt und Machine Learning ist ein fantastischer Anwendungsfall dafür!

Nutzen Sie Kafka zur:

  • Ableitung des analytischen Modells in Echtzeit
  • Überwachung und Alarmierung
  • Online-Schulung von Modellen
  • Aufnahme in den Batch-Layer/Analytik-Cluster, um dort analytische Modelle zu trainieren

Eine Live-Demo, wie Sie Apache Kafka und seine Streams-API nutzen können, um eine skalierbare, performante und unternehmenskritische Infrastruktur für die Anwendung und Überwachung analytischer Modelle zu schaffen finden Sie auf dem YouTube-Kanal von Confluent.

Artikelfiles und Artikellinks

(ID:45113668)