Nach ein paar Jahren Arbeit an unterschiedlichen IT Projekten habe ich bemerkt, dass außer bestimmten unveränderlichen Regeln oft der Zauber auftritt, etwas Altes wieder zum Leben zu erwecken und mit einer neuen Bezeichnung zu versehen. Etwas, was die Aufmerksamkeit der Liefaranten und der Kunden auf sich zieht. Der Träger dieser Trends stammt aus den Marketingabteilungen großer Unternehmen, oder wird von ehrgeizigen Akademikern ausgelöst. Bei jetzigen Modebezeichnungen maschinelles Lernen (ML) und künstliche Intelligenz (KI) ist es höchstwahrscheinlich ähnlich. Es gibt Gelegenheit. Es gibt mehr Leistung als je zuvor, endlich sind einfach umsetzbare und „billige“ Datenzentren verfügbar und vor allem – es gibt viele Daten.
Oberflächlich gesagt verstehen wir unter ML und KI Implementierung von Algorithmen, die seit Jahrzehnten bekannt sind. An den Universitäten kommen die Studenten mit deren Implementierungen in Kontakt und zwar in Umgebungen wie R, Mathlab usw. Viele Applikationen wie neurale Netzwerke und fuzzy matching sind seit Jahren Bestandteile vieler Geräte, Programme und Apps, die wir tagtäglich nutzen. Etwas hat aber den Raketenstart von ML und KI ausgelöst und große Unternehmen rennen dem Schwanz des Trends nach.
Einerseits entstehen wirkliche Big Data aus einer Vielzahl an Datenquellen, andererseits ist hohe Leistung immer zugänglicher. Die Datenzentren liefern den Notebooks ein enormes Prozessorpotential und im Prinzip unbeschränkte Speicherkapazitäten. Alleine das wäre nicht ausreichend ohne radikalen Fortschritt in der eigentlichen Implementierung bekannter Algorithmen und im Bereich der Bedienungsplattformen, die neue Implementierungen in einer parallelisierten Umgebung auslösen können. Historisch gesehen sind mehrere große Technologielieferanten tätig, der Gamechanger ist aber etwas anderes.
Die Schlüsselrolle spielt meiner Meinung nach die Open Source Community und große Spieler, die aus der korporaten Sicht diesen neuen Trend erkannt haben. Werden viele kommerzielle Plattformen und seit Jahren bewährte Produkte, die in letzten Monaten zauberhafte Mathe- und Statistikmöglichkeiten anbieten unter die Lupe genommen, stoßen wir auf die gleichen Open Source Algorithmuslibraries und gleiche Berechnugsumgebungen. Es gibt zwar Spieler auf dem Markt, die seit Jahren ihre eigenen ML und KI Algorithmen entwickeln, aber die Dominanz der Projekte aus der Apache Familie ist offensichtlich.
Das Ziel dieses Blogeintrags ist es, unter die Oberfäche zu gehen und eine reale Erfahrung mit der Implementierung einer Kundenanforderung im Bereich der Corporate Data zu schildern. Diese Geschichte hat ganz trocken angefangen. Die Salesabteilung eines marktführenden Großunternehmens hat auf der EEA Webseite Information über unsere Kompetenz im Bereich der Open Source Plattformen gefunden und hat uns eine Anforderung bezüglich potentieller Implementierung statistischer Algorithmen mit Hilfe der Open Source Plattformen geschickt.
Der Kunde möchte etwas, aber Sie wissen, er möchte etwas anderes
Nach dem ersten Meinungsaustausch und Erwartungsklärung ist die Situation gekommen, in der sich der Vertrieb und der Liefarantberater sehr oft befinden. Der Kunde möchte etwas, aber Sie wissen, er möchte etwas anderes.
Der Kunde möchte „nur“ eine spezifische Familie der statistischen Algorithmen ausprobieren und an einem kleinen Datenmuster erkennen, ob die Ergebnisse Raum für Wachstum und Investitionen im Bereich der Voraussagung neuer Geschäftsgelegenheiten bietet oder ob es sich um eine Sackgasse handelt. Die Berechnungen können tagelang laufen, wichtig ist das Ergebnis. Das programmierte Ergebnis muss Open Source sein oder im Fall von fertigen Komponenten kann nur Open Source verwendet werden.
Die Erfahrungen aus unterschiedlichen Projekten zeigen, dass dieses „Nur“ eine reale Kundenanforderung ist, dass es nicht teuer sein soll und es soll nicht lange dauern. Für den Lieferanten bedeutet es, dass aus der Forschungs- und Know-Howsicht 90% davon investiert werden müssen, was in einem großen (tausende von Tagen) Projekt investiert würde.
Die zweite Anforderung, dass Zeit keine Rolle spielt, bedeutete, dass der Kunde keine robuste Infrastruktur hat und seine Vorstellung ist, dass die Lösung auf herkömmlichen Computern funktionieren würde. Für den Lieferanten bedeutet es, dass es im Projekt kein Budget für Infrastruktur gibt.
Die Anforderung an Open Source ist heutzutage Standard. Die Unternehmen haben bereits gelernt, das Open Source nicht „kostenlos“ bedeutet. Es bedeutet die Risikominimierung der vendor lock-in https://en.wikipedia.org/wiki/Vendor_lock-in – Abhängigkeit von einem Lieferanten. Open Source minimiert gleichzeitig die rechtlichen Risiken, die in unterschiedlichen finsteren Ecken des Urheber- und Patentgesetzes lauern.
Suche nach einer Lösung
Zurück zum Vertriebsdilemma. Dies kann man aus mehreren Winkeln betrachten. In unserem Fall habe ich folgende Möglichkeiten ausgewertet:
- Ich kann die Anforderungen des Kunden strikt befolgen und versuchen, das billigste Angebot von allen Anbietern zu stellen. Das vorgesehene Budget steckt irgendwo zwischen den Zeilen und alle Projektressourcen würden sich auf die Algorithmusprogrammierung und den Versuch, das Datenmuster in einer vernünftiger Zeit zu schaffen, konzentrieren.
Diese Option nenne ich persönlich Rennen zum Tief (Tief von Preis und Qualität) und ist meistens auch für den Kunden unvorteilhaft.
Korporationen haben den Vorteil, dass sie das Potential des Lieferanten auch während der Beschaffunf nutzen können und der Preis muss nicht unbedingt der einzige Faktor sein.
Die Entscheidung, diesen Ansatz zu verwerfen, ist nach der internen Prüfung der technologischen Möglichkeiten gefallen. Wir haben das Datenmuster in der statistischen Umgebung von R https://www.r-project.org/ getestet und einen der gefragten Algorithmen – Apriory https://en.wikipedia.org/wiki/Apriori_algorithm benutzt, der beim ersten Versuch den Absturz der Applikation wegen Speichermangel verursacht hat. Der Kunde hatte bei der Eingabe wirkliche Big Data benutzt und der Apriory Algorithmus „vergisst“ während des Laufs die vorherigen Iterationen nicht. Er bedarf vieler Ressourcen.
Die Entscheidung, die Implementierung des bekannten Algorithmus im Rahmen unserer internen EEA Entwicklung, die besser wäre als Implementierung im akademischen R Projekt, wäre kurzfristig amüsant – wir könnten nach Herzenslust programmieren, im Kontext des strategischen geschäftlichen Denkens wäre es ein Pfad zur Hölle. Auf der anderen Seite haben wir gewusst, das die meisten Wettbewerber sich strikt an der Auftragsstellung halten. Wir haben uns entschlossen, dass wir dem Kunden etwas beibringen.
- Eine zweite Option wäre ein Versuch, die Denkensperspektive des Kunden zu verändern und die Auftragsstellung der Beschaffung zu ändern. Beim größeren Kunden ist der fahrende Zug schwer zu stoppen. Wir mussten versuchen, eine funktionsfähige Lösung im existierenden Rahmen vorzuschlagen.
- Die einzige akzeptable Lösung für uns war es, eine von bestehenden Lösungen mit bereits implementierten Algorithmen zu benutzen, die parallel-computing https://en.wikipedia.org/wiki/Parallel_computing ausnutzen. Die Anforderung an Open Source hat uns die Auswahl der Plattform erleichtert. Die Apache Familie und R Lösungen. Die Anforderung an Bearbeitung von realen Big Data hat die R Lösung ausgeschieden. Die Strategie war geboren. Wir benutzen Apache Spark https://spark.apache.org/ und bestehende Implementierungen der MLlib Algorithmen https://spark.apache.org/mllib/. Wir versuchen den Kunden dazu zu überzeugen, dass Nutzung einer robusteren Plattform eine gute Investition in die zukünftige Projektentfaltung ist. Wir sind nicht der billigste Lieferant, wir haben aber die beste Perspektive.
Berechnung für ein paar Minuten?
Ich würde diese Geschichte nicht schildern, hätten wir die Ausschreibung nicht gewonnen. Kurz gefasst: Der Kunde hat im Rahmen der Lösungsvorstellung einen virtuellen Server als Docker bekommen, in dem Quelldatensätze mit dem Ergebnisdatensatz gemappt werden konnten. Sehr interessante Ergebnisse… Die Berechnung hat nicht Tage, sondern Minuten gedauert. Dem Kunden haben wir angeboten, dass wir ihm im Rahmen der Lösung eine virtualisierte Rechenumgebung zur Verfügung stellen, die außer bestehenden implementierten Algorithmen einige Schnittstellen für Implementierung eigener Algorithmen beinhalten wird, hauptsächlich für die Bearbeitung der Eingangsdatensätze und das Mappen der Ausgangsberechnungen mit Quelldaten = Einarbeitung der Berechnungsergebnisse in die Prozesse und Lösungen des Kunden (Blogeinträge zu dem Thema kommen in der Zukunft).
Das Angebot beinhaltete auch die graphische Umgebung Zeppelin https://zeppelin.apache.org/, die es ermöglicht, auf die Plattform via Webbrowser zuzugreifen – und für mehrere Datenanalytiker gleichzeitig. Zeppelin erlaubt Vereinheitlichung vieler Plattformen auf einem Bildschirm und es handelt sich um ein Werkezug mit Zukunft, das die Frontend-Systemintegrierung auch außerhalb von der Spark Rechenplattform sicher stellt.
Wie ist es ausgegangen?
Nach mehr als einem Jahr wurde beim Kunden eine Abteilung aufgebaut, die Geschäftsdaten aus aller Welt bearbeitet. Es stehen Informationen zu Millionen von Transaktionen auf unterschiedlicheen Märkten, unterschiledlichen Segmenten bis zu eigentlichen Produkttransaktionen zur Verfügung.
Die Ausnutzung von ML Algorithmen hilft dem Vertrieb, neue Kunden zu identifizieren. Gegenwärtig liefert das System Informationen darüber, welches Produkt welchem Kunden angeboten werden soll und mit welcher Wahscheinlichkeit er das Produkt kauft. Die Anfangsschätzungen waren, dass die Erfolgsquote der Geschäftsvorschläge unter 50% sein wird und unser Ziel war 40% zu erreichen. Heute bewegen sich die Ergebnisse zwichen 80-98% der Erfolgsquote, was alle Erwartungen übertroffen hat. ML ist aber kein neues Gehirn, das Experten ersetzt. ML kann nur lernen und wiederholen.
Damit Algorithmen in fast realer Zeit benutzt werden können, ist es notwendig, geeignete Eingangsparameter zu wählen. Sind die Parameter „tief“ gesetzt, gibt der Algorithmus keine Ergebnisse. Sind sie „hoch“ gesetzt, nähert sich die Anzahl der Outputs und Kombinationen dem Unendlichen und der Berechnugsapparat wird überfüllt oder gibt bestenfalls kiene Ergebnisse, die man vernünftig interpretieren kann. Hier gibt es genug Raum für die KI. manchmal entscheidet auch ein Tausendstel im Parameterwert darüber, ob der Algorithmus „funktioniert“. In diesem Bereich hat EEA einige unikate Konzepte und Lösungen entwickelt. Wir sind fähig, allgemein zugängliche Algorithmen mit der künstlichen Intelligenz zu „schützen“, die durchgehend lernt, wie Berechnungen an gegebenen Kundendaten verlaufen. Die Effektivität eines solchen optimierten und gesicherten Apparats kann das Hauptargument dafür sein, ob gegebene Algorithmen mit gegebenen Daten und Anforderungen überhaupt benutzt werden können. In dieser Hinsicht ist das Portfolio von EEA einzigartig und gerade dies unterscheidet uns von der Konkurrenz.
Der gesunde Menschenverstand und maschinelles Lernen
ML ist eine pompöse Modebezeichnung, wie ich am Anfang dieses Beitrags erwähnt habe. Es ist eine ordinäre Statistik, die zweckmäßig in Algorithmen implementiert ist. Und ohne eine vernünftige Anforderung und ohne geeignete Daten hat sie für die Benutzer keine Bedeutung. Gibt es aber eine vernünftige Anforderung und Daten, über die der Kunde verfügt, hat ML das Potential wie Golderz. Somit kann ML eine Goldmine sein, die dazu verhelfen kann, das Geschäft des Kunden auf eine höhere Ebene zu bringen. Ob sich der Kunde in einer Situation befindet, in der ihm ML helfen kann, seine Ziele zu erreichen, ist eine Frage für erfahrene Experten in diesem Bereich. Oderes geht um das Verständnis der Statistik selbst und des Potentials im Bereich, in dem der Kunde tätig ist.
Zusammenfassend sind ML und KI nichts Neues.
Sollten sie effizient eingesetzt werden, geht es um ehrliche Arbeit im Bereich von Beratung, Informatik und Mathematik. Ohne die Fähigkeit, gesunden Menschenverstand zu benutzen und ohne Domänenkenntnis geht es um bedeutungslose Begriffe. Unter Umständen ist es aber eine riesige Gelegenheit und heutzutage ist es möglich, sich von der Konkurrenz nur in kleinen Details zu unterscheiden. Der Einsatz von ML und KI kann gerade dieses Detail sein, der für Sie einen Schritt vorwärts bedeuten kann.
Möchten Sie auch eine eigene Goldmine bauen, wenden Sie sich an uns. Wir warten und entwickeln welche weiter.
Gabriel Lachmann