Robuste KI-Systeme aufbauen (Teil 1)

IN Machine Learning — 11 July, 2017

Was ist der erste Gedanke, der Ihnen in den Sinn kommt, wenn Sie an künstliche Intelligenz (KI) denken? Vielleicht eine Szene aus einem Science-Fiction-Film? Oder – realistischer – AlphaGo, das Computerprogramm, das von der Google-Firma DeepMind entwickelt wurde und gelernt hat, den weltbesten Go-Spieler zu schlagen? Oder denken Sie an die Sicherheit von Arbeitsplätzen? Der MIT Technology Review hat erst kürzlich einen Artikel veröffentlicht, in dem untersucht wurde, wann künstliche Intelligenz die Leistung des Menschen in verschiedenen Gebieten übertrifft – und man kann heute sogar KI fragen, wann sie den eigenen Job übernehmen wird.

build_robust_ai_systems_v1.0_01-15.png

Diese Entwicklungen unterstreichen das Potenzial von KI, ganze Branchen aufzubrechen und Unternehmen zu veranlassen, darüber nachzudenken, wie sie künftig Wert schaffen. Aber sie vermitteln nicht das ganze Bild, worauf es bei der Nutzung von KI-basierten Systemen im Unternehmensumfeld ankommt. Es werden Daten benötigt – sehr viele Daten und zwar in ausreichender Qualität. KI- und Machine-Learning-Modelle lernen von den Daten, die ihnen geliefert werden. Deshalb sind qualitative hochwertige Daten von zentraler Bedeutung, um sicherzustellen, dass die Modelle die grundlegenden Eigenschaften eines bestimmten Systems lernen und nicht von Abweichungen oder Fehlern „getäuscht“ werden.

Im Unternehmensumfeld sind Prognosen nur dann von Nutzen, wenn sie zuverlässig sind und die daraus resultierenden Entscheidungen optimal ausgeführt werden – kein Kinderspiel, wenn man bedenkt, wie viele Prognosen gebraucht werden.

Betrachten wir zum Beispiel eine typische Supermarktkette. Diese hat Zehntausende Produkte, die in Hunderten Filialen verkauft werden und täglich wieder aufgefüllt werden müssen. Um die langfristige Planung zu erleichtern, werden Prognosen für mehrere Wochen im Voraus benötigt. Die Supermarktkette hat ungefähr 30.000 aktive Produkte in 1.000 Filialen im Sortiment und erhält das ganze Jahr über täglich Lieferungen. Um das Ganze noch komplexer zu machen, werden für die mittelfristige Planung Prognosen 21 Tage im Voraus gebraucht. Es ist also durchaus realistisch, dass täglich 30.000 x 1.000 x 365 x 21 ≈ 230 Milliarden Prognosen für eine einzige Supermarktkette berechnet werden müssen.

Dabei handelt es sich nur um eine grobe Schätzung und wahrscheinlich für die meisten Szenarien um die absolute Obergrenze. Nichtsdestotrotz verdeutlicht diese Zahl, dass die Anzahl der benötigten Prognosen sehr schnell sehr groß werden kann. In vielen Fällen müssen die Vorhersagen und die davon abgeleiteten Bestellmengen in kurzer Zeit berechnet werden, um beispielsweise betrieblichen Anforderungen wie Lieferplänen und -zeiten in der Supply Chain gerecht zu werden.

Die Herausforderungen, ein stabiles KI-System aufzubauen, das fähig ist, diese Milliarden von Entscheidungen täglich zu liefern, lassen sich grob in drei Themen einteilen:

  • Datenverarbeitung und Datenqualität
  • Bereitstellung und operative Exzellenz
  • KI-Entwicklung

In diesem Artikel (Teil 1) konzentrieren ich mich auf die ersten beiden Themen und werden uns im nächsten Blogpost mit KI und Modellentwicklung beschäftigen.

Datenverarbeitung und Datenqualität

Komplexe KI-Modelle können nur mit einer großen Menge an hochwertigen Daten aufgebaut werden. Um auf alle benötigten Daten zugreifen zu können, die nicht selten in einer heterogenen IT-Landschaft aus verschiedenen Systemen verstreut liegen, braucht es technische Möglichkeiten. Die Daten müssen in einem optimierten Storage-System zusammengeführt und dann sorgfältig aufbereitet werden, um die bestmögliche Datenqualität sicherzustellen. Laut einem Bericht von Crowdflower verbringen Data Scientists einen Großteil ihrer Zeit (60 %) mit Datenverarbeitung, Datenqualität sowie damit zusammenhängenden Themen und nur etwa 4 % mit dem eigentlichen Aufbau oder der Verbesserung von KI- oder Machine-Learning-Modellen.

Die Wahl des richtigen Storage-Systems hängt von der Art und Anzahl der Daten sowie der Häufigkeit ab, mit der die Daten erfasst werden und auf sie zugegriffen wird – das sind zwei unterschiedliche Anforderungen. Je nach Anwendungsfall kann die Speicherung der Daten wichtiger sein, als auf sie zuzugreifen. Wenn jedoch ein neues KI-Modell entwickelt und trainiert werden soll, muss irgendwann auf alle Daten zugegriffen werden. Einige Anwendungsfälle benötigen eine schnelle relationale In-Memory-Datenbank, andere eine nicht-relationale Datenbank. Stammdaten brauchen ein spezifisches Setup für die Speicherung und den Zugriff auf die Daten, während Transaktionsdaten, Sensordaten und andere Datenströme möglicherweise ganz andere Anforderungen haben. Obwohl es sicher ein paar Best Practices gibt, hat jeder neue Anwendungsfall und jedes Projekt seine spezifischen Anforderungen und Einschränkungen. Die Wahl der Technologie – oder besser die Kombination verschiedener Technologien – sollte sorgfältig erwogen werden. Meistens können Projektmanager nicht der Versuchung widerstehen, ein großes Computercluster zu kaufen, um das Projekt ans Laufen zu bringen – nur um dann herauszufinden, dass es gar nicht den Anforderungen des Projektes entspricht. Ist die neue und teure Hardware aber erst einmal angeschafft, muss sie auch irgendwie erfolgreich sein.

Da die Datenqualität die Grundlage für jedes KI-System ist, „sollte die Sicherstellung der Datenqualität die Aufgabe jedes Einzelnen sein“, wie Thomas C. Redman im Harvard Business Review schreibt (Data Quality Should Be Everyone’s Job[CM1] ). Die Verbesserung der Datenqualität ist keine einmalige heroische Anstrengung, sondern ein kontinuierlicher Prozess, da jede neue Datenlieferung potenzielle neue Fehler enthält. Kein Unternehmen besitzt ausschließlich Daten von hoher Qualität. Trotz aller Bemühungen, die Daten zu bereinigen, wird es immer auch ein paar „schlechte Daten“ geben. Das „Bad Data Handbook“ von Q. Ethan McCallum gibt ein paar praktische Einblicke in die Fallstricke und Tücken, die eine Reihe von Experten auf dem Gebiet zusammengetragen haben. In manchen Fällen liegen keine historischen Daten vor oder sie sind unzugänglich. Das ist beispielsweise der Fall, wenn IT-Systeme auf ein neues System migriert und nur Teile der historischen Daten übernommen wurden. Andere Informationen wie Wartungsprotokolle, Konstruktionspläne oder Absprachen mit Lieferanten und Logistikpartnern liegen nur als elektronische Dokumente (z. B. PDF) oder sogar nur als Ausdrucke oder Formulare vor. In einem Projekt rief tatsächlich der Projektmanager des Kunden aus: „Unsere Anwender wissen ganz genau, wie sie diese spezifische Situation am besten meistern – sie haben sich eine Haftnotiz an den Monitor geklebt!“

Data Scientists ist dagegen klar, dass keines dieser Formate für die Entwicklung von Machine-Learning-Modellen geeignet ist und alle diese Informationen zuerst in elektronische Datensätze umgewandelt werden müssen, was intensive Bemühungen um die Datenqualität erfordert. Trotz bester Absichten bilden die Daten die Realität jedoch nie ganz perfekt ab. Stammdaten können unvollständig sein, manche Unklarheiten bleiben während der Datenpflege bestehen und Transaktions- oder Sensordaten werden von einer Reihe Faktoren beeinflusst, wenn sie durch die IT-Systeme übertragen werden.

Bei einem Projekt zur Einrichtung eines Finanzsystems bei einem weltweiten Konzern wurde jede Zahl akribisch aufgenommen. Die Datenbank konnte mit allen gespeicherten Details jedoch nicht die Entwicklung des Unternehmens in den vergangenen Jahren erfassen. Teile der Firma wurden umstrukturiert, gekauft oder verkauft, die Verantwortlichkeiten für Märkte und Produkte verschoben. Auch wenn die Daten zu einem bestimmten Zeitpunkt einmal korrekt waren, war es inzwischen unmöglich, die aktuellen Zahlen eines Geschäftsbereichs den Einheiten von vor einem, fünf oder zehn Jahren zuzuordnen. Sobald Unternehmen allerdings anfangen, von der Einführung künstlicher Intelligenz zu profitieren, werden die Bemühungen um Datenqualität nicht nur leichter freigegeben (zuvor werden sie oft als „Kostenstelle“ ohne unmittelbaren Nutzen gesehen), sondern sie sind auch essenziell wichtig, um die Entscheidungen des KI-Systems zu verbessern.

Bereitstellung und operative Exzellenz

Neben selbst entwickelter Software nutzen Data Scientists eine Fülle von Open-Source-Toolkit wie pandas, scikit-learn, Theano, Keras, Torch, TensorFlow, CNTK und andere. KDnuggets hat verschiedene neu erschienene Deep Learning Frameworks verglichen und festgestellt, dass TensorFlow von Google wesentlich populärer ist als andere, gemessen durch „Stars“ und „Forks“ bei GitHub. Das heißt jedoch nicht unbedingt, dass TensorFlow besser ist als andere. Jedes Framework hat seine individuellen Stärken und Schwächen und die jeweiligen Anwendungsfälle sollten bei der Auswahl sorgfältig erwogen werden. Welches Framework auch immer gewählt wird, das sogenannte „two-language problem“ (ein Begriff, der von William Wesley McKinney in seinem Buch „Python for Data Analysis“ geprägt wurde) sollte möglichst vermieden werden:

Data Scientists sollten das gleiche Framework und die gleichen Tools verwenden wie das Produktivsystem, um ein Modell in einer Umgebung zu entwickeln und zu testen, die so nah wie möglich an demjenigen ist, mit dem die Prognosen später im großem Umfang erstellt werden. Sonst kann es passieren, das die Data Scientists ein KI-System in einer Konfiguration oder Sprache entwickeln, die erst die auf dem Produktivsystem verfügbare Sprache übersetzt oder an andere Tools angepasst werden muss. Ein solcher Anschluss ist schwierig, weil unterschiedliche Frameworks möglicherweise nicht die gleichen Features unterstützen oder sich gleich verhalten – und das Übersetzen und Testen eines Modells ist kostspielig.

Letzten Endes ist für den Kunden nicht die schönste oder die komplexeste KI-Konfiguration relevant, sondern die Fähigkeit, jeden einzelnen Tag Milliarden hochwertiger operativer Entscheidungen zu treffen. Zwei Aspekte sind hierbei bedeutend:

  • Widerstandsfähigkeit gegen Ausfälle in der Rechnerinfrastruktur
  • Robustheit gegen Algorithmen, die Ausnahmen und Fehler in den Daten behandeln (Darauf werden wir uns im nächsten Blogartikel konzentrieren.)

Schon der immense Umfang der Prognosen in Kombination mit der Notwendigkeit, strenge Fristen einzuhalten, braucht skalierbare Rechenleistung. Das erhöht die Komplexität der dezentralen Systeme, was wiederum Softwareentwicklung und operative Kompetenz auf hohem Niveau erfordert. Die Systeme müssen fehlertolerant und redundant konzipiert werden, um örtliche Ausfälle zu vermeiden – und sie müssen außerdem mühelos wiederherstellbar sein, sollte es trotz bester Bemühungen einmal zu einem Ausfall kommen.

Dr. Ulrich Kerzel Dr. Ulrich Kerzel

earned his PhD under Professor Dr Feindt at the US Fermi National Laboratory and at that time made a considerable contribution to core technology of NeuroBayes. After his PhD, he went to the University of Cambridge, where he was a Senior Research Fellow at Magdelene College. His research work focused on complex statistical analyses to understand the origin of matter and antimatter using data from the LHCb experiment at the Large Hadron Collider at CERN, the world’s biggest research institute for particle physics. He continued this work as a Research Fellow at CERN before he came to Blue Yonder as a Principal Data Scientist.