Produktivsetzung von Predictive-Analytics-Modellen| Prädiktiv und produktiv

Predictive AnalyticsGar nicht so selten scheitert die Nutzung von Predictive Analytics ganz kurz vor dem Ziel. Doch es fehlt der entscheidende Schritt, auf den nur in einigen Sonderfällen verzichtet werden kann: die Produktivsetzung, auch Deployment genannt. 

Unerwartete Schwierigkeiten

Die ganze harte Arbeit scheint getan: Datenquellen wurden ausfindig gemacht, Daten zusammengeführt und aufbereitet, analysiert, verschiedene vorhersagende Modelle miteinander verglichen, verbessert und nochmals verglichen, bis am Ende ein Modell stand, das die Zukunft (also die Ausfallwahrscheinlichkeit einer Maschine, die Kündigungsneigung eines Kunden, oder was auch immer im jeweiligen Fall von Interesse ist) mit hinreichender Genauigkeit vorhersagte. Großartig – und nutzlos. Denn es fehlt der entscheidende Schritt, auf den nur in einigen Sonderfällen verzichtet werden kann: die Produktivsetzung, auch Deployment genannt. Darunter versteht man den Transfer aus der Entwicklungs- in die Produktivumgebung, wo das Modell regelmäßig genutzt werden kann. In der Softwareentwicklung ist das eigentlich ein Routineproblem. Warum macht dieser Prozess im Predictive-Analytics-Umfeld oft Probleme?

Anzeige

Predictive-Analytics-Modelle haben gewisse technische Eigenheiten, die sie zu schwierigen Deploymentkandidaten machen, insbesondere die Nutzung einer Vielzahl heterogener Datenquellen und die Abhängigkeit von diversen Erweiterungen und Packages. Diese schwierige Deploymentaufgabe trifft typischerweise auf einen Data Scientist, der kein reiner Softwareentwickler oder DevOps-Experte ist. Für den Data Scientist ist die Produktivsetzung nur ein kleiner Teil eines sehr, sehr breiten Aufgaben- und Fähigkeitenspektrums. In größeren Data-Science-Teams lohnt es sich deshalb darauf zu achten, dass einige Mitarbeiter in diesem Spezialthema für sich einen Entwicklungsschwerpunkt setzen oder entsprechende Erfahrung idealerweise bereits mitbringen.

Opfer des eigenen Erfolges

Erschwerend kommt hinzu, dass es oft Situationen gibt, in denen zunächst ein Modell für eine Analyse gebaut wurde, dann aber doch so intensiv genutzt werden soll, dass es nicht reicht, es nur in der Entwicklungsumgebung einzusetzen. Ein typisches Beispiel wäre ein Modell zur Kundensegmentierung, das entwickelt wurde, um einen strategischen Überblick über die verschiedenen Kundengruppen zu geben. Dafür reicht im Prinzip eine einmalige Berechnung eines solchen Modells, mit Updates alle paar Monate, das ausschließlich in der Entwicklungsumgebung läuft. Wenn man dann feststellt, dass das Modell wichtige Einsichten bietet, kommt eventuell der Wunsch auf, es nicht nur strategisch zu nutzen, sondern auch für das Tagesgeschäft. Dazu muss man laufend neue Kunden immer in eines der Kundensegmente einordnen – und läuft Gefahr, Opfer des eigenen Erfolges zu werden, denn nun muss man ein Modell deployen, das dafür nicht unbedingt von vornherein gedacht war.

Deployment von Anfang an mit einbeziehen

Wenn man Schwierigkeiten vermeiden will, muss man idealerweise bereits vor Entwicklung eines Modells entscheiden, in welchem Zielsystem dieses später produktiv eingesetzt werden soll. Alle Aspekte der Modellierung müssen so gestaltet werden, dass sie zum geplanten Zielsystem passen. Diese Entscheidung hat weitreichende Konsequenzen. Sie betrifft die dem Modell zur Verfügung stehenden Daten und den Aufwand ihrer Beschaffung ebenso wie für die Vielseitigkeit der Anwendungsmöglichkeiten und die Aktualität der Modellergebnisse. Ein Modell beispielsweise, das in die Ladeprozesse eines Data Warehouses integriert wird, kann vielseitig verwendet werden, aber bei der Aktualität muss man Abstriche machen. Ein Modell wiederum, das in einem operativen System eingebunden wird, kann sehr aktuell sein, eventuell können aber bestimmte Datengrundlagen nur mit hohem Aufwand verfügbar gemacht werden. Nicht zuletzt sind die Performanceanforderungen in operativen Systemen meist höher.

Auch bei der Wahl des prädiktiven Algorithmus muss das Deployment bereits mit einbezogen werden. Ensemblemethoden wie Random Forest oder Gradient Boosting haben sich wegen ihrer Robustheit und Präzision zu einem Standard entwickelt, auf den man für viele unterschiedliche Modellierungsprobleme vertraut. Das Deployment solcher Modelle braucht jedoch eine deutlich aufwendigere Softwareinfrastruktur als klassische lineare, logistische oder Poisson-Regressionsmodelle. Es lohnt sich daher oft, beide Varianten in der Modellbildung parallel zu testen. Oft stellt man dann fest, dass moderne, regularisierte Varianten der klassischen Regression ähnlich gute Ergebnisse liefern wie die Ensemblemethoden, oft allerdings um den Preis einer aufwändigeren Datenaufbereitung. Es kann sinnvoll sein, diesen Preis zu zahlen, weil damit das Deployment oft wesentlich einfacher oder in manchen Zielsystemen überhaupt erst realistisch wird.

Effizientes Deployment: Tools und Frameworks helfen

Deployment ist also ein anspruchsvolles Thema, das den Data Scientist während des gesamten Prozesses der Modellbildung einige Arbeit kosten kann. Glücklicherweise ist in vielen Unternehmen das Spektrum der möglichen Zielsysteme sehr beschränkt. Im Webumfeld beispielsweise wird oft der eigene Webshop das wichtigste und manchmal sogar das einzige Zielsystem sein. In solchen Fällen lohnt es sich, den gesamten Entwicklungsprozess zu standardisieren und mit spezialisierten Tools zu unterstützen. Damit werden Aufwand und Fehlerquellen verringert und die Wartbarkeit verbessert.

Die Anbieter proprietärer Data-Science-Software haben da oft jeweils eigene Lösungen. Wer mit Open-Source-Software und vor allem mit Python arbeitet, wird sich für Palladium interessieren. Das Framework ist in Python 3 geschrieben und selbst Open Source. Es hilft dabei, den gesamten Entwicklungsprozess so zu strukturieren, dass es beim Deployment nicht knirscht. Palladium wurde in der otto group entwickelt und wird dort eingesetzt, bewährt sich also in einem sehr professionellen Umfeld mit hohen Anforderungen.
Palladium bietet prinzipiell auch Unterstützung für die Entwicklung in Julia und R, ist aber vor allem auf Python ausgerichtet. Wer R benutzt, sollte einen Blick auf die brandneue Software von 5Analytics werfen. Das Tool unterstützt nicht nur das Handling der Datenquellen, sondern bietet auch Unterstützung für die Sicherstellung ausreichender Performance. Um die Antwortzeiten auch in Hochlastsituationen stabil zu halten, bietet 5Analytics eine Art Load Balancer für R, der die Arbeit auf mehrere parallel laufende R-Instanzen verteilt.

Planung, Standardisierung, Toolunterstützung

Wenn also die Produktivsetzung problemlos gelingt, dann deswegen, weil während der gesamten Modellierung darauf hingearbeitet wurde. Und wenn sie nicht nur problemlos, sondern auch hocheffizient gelingt, dann waren standardisierte Prozesse und eine leistungsfähige Toolunterstützung im Spiel.

Michael AllgöwerDr. Michael Allgöwer ist Leiter Competence Center Data Science bei b.telligent

www.btelligent.com

 

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.