AutoML beschreibt die Automatisierung maschinellen Lernens. Die Anwendung des Machine Learnings war bislang auf die Expertise spezialisierter Data Scientists angewiesen. Automatisierte ML-Prozesse vereinfachen zahlreiche Schritte und ermöglichen auch weniger erfahrenen Nutzern den Einsatz. Einige Beobachter sehen in der Verbreitung des AutoML ein ähnlich starkes Potential wie einst in der Einführung der automobilen Massenproduktion durch Fließband-Technik. 

AutoML im Überblick

AutoML beschreibt die Automatisierung der Schritte des maschinellen Lernens in der Anwendung auf reale Problemstellungen. AutoML basiert auf künstlicher Intelligenz und bietet eine Lösung für die wachsenden Herausforderungen des Machine Learnings. Eine typische Anwendung des maschinellen Lernens ist auf zahlreiche Prozesse angewiesen. Diese reichen von der Datenvorverarbeitung über das Feature Engineering und die Auswahl des Algorithmus bis zur Optimierung der Parameter. Diese Schritte sind erforderlich, damit die Daten überhaupt für das Machine Learning nutzbar sind. Dies erforderte bislang den Einsatz von Experten, damit das maschinelle Lernmodell die gewünschte prädiktive Leistung erbringt. 

Mit AutoML entwickelt sich ein wichtiger Trend auf KI-Basis, der zu einer einfacheren und schnelleren Lösung für ML-Anforderungen beiträgt. Die Entwicklungen weisen darauf hin, dass AutoML Modelle erstellen kann, die über die Leistung der manuell entworfenen Modelle hinausgeht. Das automatische Machine Learning gilt als Schlüssel zur Vereinfachung des Aufbaus von komplexen KI-Architekturen. Einige Anbieter und Hersteller bieten bereits nutzbare Lösungen aus der Schnittmenge von KI und Machine Learning an. Diese reichen von Anwendungsbereichen wie Spracherkennung und Bilderkennung über Marketing und Verkaufsvorhersagen bis zu Predictive Maintenance (vorausschauende Instandhaltung).

Funktionsweise und Workflow im Machine Learning

Der typische Workflow des Machine Learnings ist ein iterativer Prozess aus Einzelschritten. Dies beginnt mit dem Verständnis sowie der Formulierung der Problemstellung. Anschließend sind relevante Trainings-Daten für das Machine Learning festzulegen und zu erheben. Es folgt die Aufbereitung dieser Daten. Dazu gehören die Daten-Zusammenfassung, ihre Formatierung sowie gegebenenfalls ihre Bereinigung. Auf die Vorbereitung der Daten folgt das Feature Engineering Anschließend sind die Attribute zur Erstellung des Lernmodells zu ermitteln. Infolgedessen kommt es zum Training des Modells. Die Parameter der Algorithmen für das Machine-Learning sind immer weiter zu optimieren. Beim Vergleich verschiedener Lernmodelle ist schließlich das am besten geeignete Modell auszuwählen. Ergebnisse sind zu analysieren und zu visualisieren. Es folgt das Deployment des Modells durch die Generierung von APIs und seine Einbindung in eine Anwendung. Bei der anschließenden Nutzung des Modells in produktiver Umgebung ist es fortlaufend zu kontrollieren und zu überwachen. 

Automatisierbare Prozesse im Workflow

Diese genannten Schritte laufen in vielen Workflows separat und voneinander getrennt ab. Sie sind an entscheidenden Stellen auf das manuelle Eingreifen qualifizierter ML-Experten angewiesen. Das Ziel im AutoML ist es, diese Prozesse automatisiert auszuführen und den manuellen Eingriff zu reduzieren und im Idealfall zu ersetzen. Als Anwender bleibt für dich die Aufgabe, die Daten bereitzustellen und die Vorhersagen am Ende der Learning-Prozesse zu bewerten beziehungsweise sie für konkrete Geschäftsprozesse anwendbar zu machen. 

Viele dieser Prozessschritte im Machine Learning sind für die Automatisierung geeignet. Typischerweise lassen sich die Datenaufbereitung sowie das Feature-Engineering automatisieren. Auch die Auswahl der ML-Algorithmen sowie die Modellauswahl sind automatisierbar. Die schrittweise Optimierung der Parameter und Hyperparameter ist ebenfalls via AutoML realisierbar. Die Analyse und Visualisierung der Ergebnisse sind lassen sich auch automatisieren. Auch das Deployment des entworfenen Modells eignet sich für die Automatisierung. In diesem Zusammenhang ist neben der Bereitstellung von Schnittstellen (APIs) auch die Generierung einer Runtime-Umgebung zu nennen. 

Von besonderem Anspruch ist die Aufgabe des Feature-Engineering. Features stellen messbare Eigenschaften der Datensätze dar. Für diese Eigenschaften existiert zu jeder Beobachtung (Observation) in den Daten ein Wert. Die Generierung neuer Features durch Kombination oder Transformation bereits vorhandener Features nennt sich Feature-Engineering. Hierbei besteht das Ziel darin, die Daten derart zu modifizieren, dass die Algorithmen des Machine Learnings immer mehr Muster identifizieren können. Der Aufwand besteht darin, dass hierbei zahlreiche Alternativen durchgespielt und bewerten werden. Dieser Schritt lässt sich durch automatisierte Deep-Learning-Prozesse und Best Practices deutlich beschleunigen. 

Jede Fragestellung in einem Lernprozess lässt sich grundsätzlich mit verschiedenartigen Algorithmen angehen. Es existieren immer mehr Frameworks für Machine-Learning, die gleiche Algorithmen beinhalten. Die Optimierung der Algorithmen sowie deren Hyperparameter ist bei manueller Handhabung mit viel repetitivem Aufwand verbunden. Mit einer AutoML-Engine lässt sich diese Arbeit parallelisiert und deutlich schneller bewältigen. 

AutoML-Lösungen im Überblick

Der Markt bietet eine Reihe verfügbarer Lösungen für das automatisierte maschinelle Lernen. Dazu gehören Tools und Erleichterungen für die Automatisierung unterschiedlicher Prozessschritte. Einige dieser Tools sind für die lokale Nutzung vorgesehen, während andere auf Cloud-Plattformen laufen. Einige dieser Lösungen bieten dir als Anwender graphische Nutzeroberflächen. Auf diesen kannst Du benutzerdefinierte Modelle für das maschinelle Lernen visuell unterstützt erstellen und trainieren. 

H2O AutoML ist eine Lösung, die eine automatisierte Modellauswahl sowie Modellzusammenstellung ermöglicht. Sie funktioniert auf der H2O-Plattform, einer KI-Plattform für das maschinelle Lernen und die Datenanalyse.

AutoKeras stellt eine Open-Source-Bibliothek auf Python-Basis dar. Auch hier steht das automatisierte maschinelle Lernen im Fokus. 

Google bietet mit dem Konzept Google Cloud AutoML eine vollständige Produkt-Suite für das Machine-Learning. Diese ist in die Cloud-Dienste Googles vollständig eingebunden. Das Angebot richtet sich an Entwickler mit geringen Kenntnissen und will auch diesen die Möglichkeit bieten, anforderungsgerechte Modelle zu trainieren. 

Ebenso Cloud-basiert ist Azure Automated ML. Dieses Angebot basiert auf der Cloud-Plattform von Microsoft Azure. 

AutoWEKA ist eine Lösung, die dir eine gleichzeitige Auswahl des Machine-Learning-Algorithmus und seiner Hyperparameter ermöglicht. Eine Erweiterung AutoWEKAs ist das Konzept Auto-sklearn. Dieses erweitert das Angebot um die Python-Bibliothek scikit-learn. Hierbei handelt es sich um einen Drop-in-Ersatz für scikit-learn Regressoren und Klassifikatoren. 

Das Angebot MLBoX stellt eine Bibliothek für das maschinelle Lernen dar, die über die drei Bestandteile Vorverarbeitung, Optimierung und Vorhersage verfügt. 

Paraboost hat mit seiner Lösung Parapipe ebenfalls eine eigene AutoML entwickelt. Dabei sind eine Vielzahl von Use-Cases im CRM direkt umsetzbar. Die Parapipe geht dabei sogar noch einen Schritt weiter als andere AutoML-Lösungen. Aus rohen Transaktionsdaten werden unmittelbare Prognose-Ergebnisse erzeugt. Kunden können diese Ergebnisse dann direkt in ihre CRM-Systeme einbinden. Dazu bietet es die Möglichkeit die Ergebnisse der AutoML mit eigenen Daten in einem Vorab-Test unverbindlich zu testen.

AutoML Anwendungen und Einsatzbereiche

Die Anwendungsbereiche des AutoML sind vergleichbar vielseitig wie die des herkömmlichen Machine-Learnings. Durch die Einsparung von Zeit und Expertise ist die automatisierte Variante jedoch deutlich schneller und flexibler einsetzbar und damit für mehr potentielle Nutzer interessant.

Typische Anwendungsfelder sind Klassifizierungen aller Art, die sich mit via AutoML generierten Modellen ausführen lassen. Einsatz findet AutoML in der Erstellung, dem Training und in der Optimierung von Modellen des Machine-Learnings zur Lösung verschiedener Probleme. Dabei werden oftmals eine Vielzahl von Modellen als Experimentier-Reihe gerechnet, für die sich der Einsatz von Grafik-Karten eignet. Diese können um bis zu Faktor 5 schneller sein!

Im Marketing kann das automatisierte maschinelle Lernen eingesetzt werden, um Aufgaben des CRM (Customer Relationship Management) rationeller zu bewältigen. Die prädiktive Leistung eignet sich weiterhin, um beispielsweise Verkaufsvorhersagen zu treffen. 

Auch Identifikationsaufgaben, beispielsweise zur Bilderkennung oder zur Spracherkennung gehören zu den Anwendungsfeldern. Auch Textanalyse ist auf AutoML-Basis möglich. 

Robotik und Predictive Maintenance sind weitere Anwendungsfelder. Ein zusätzliches Anwendungsfeld ist die Betrugserkennung.

Fazit und Ausblick VON AUTOML

AutoML birgt großes Potential für unterschiedliche Anwendungsbereiche, die von allgemeinen Klassifizierungen über Marketing bis zur Robotik reichen. AutoML ist ein Beitrag zur Zeit- und Kostenersparnis, da es immer besser ohne KI- oder ML-Experten auskommt. Die große Stärke des AutoML besteht darin, die Einstiegshürden in die KI-Welt zu senken. Auch ohne ausgewiesene Kenntnisse im Bereich Machine-Learning wird es immer einfacher, wertvolle Modelle je nach Anforderung zu trainieren. In Anbetracht dieses Potentials ist AutoML nicht als bloßer Hype zu verstehen, sondern als ein Beitrag, künstliche Intelligenz auch in der Breite nutzbar zu machen. Ebenso wissen auch ML-Fachleute das Potential des AutoML zu schätzen, da der automatisierte Ansatz ihre eigene Arbeit deutlich beschleunigt.

Jeder Data Scientist kennt das Problem: Man hat einige Machine Learning Modelle auf einer Stichprobe der Daten entwickelt und möchte die Trainingspipeline nun auf dem Gesamtdatenbestand anwenden. Was bis eben noch ein paar Minuten gedauert hat, dauert auf einmal Stunden oder gar Tage.

„Ich brauch mehr Power“ – Schnell wird der Weckruf nach besserer Hardware und höherer Leistung laut. Doch was genau benötige ich eigentlich um meine Modelle zu verschnellern und die Laufzeit des Machine Learning Tainings zu minimieren?

In diesem Artikel wird Dir aufgezeigt wo die Unterschiede zwischen GPU vs. CPU liegen und führt einen Performance-Vergleich zwischen GPU und CPU basierter Ausführung eines XGBoost Algorithmus durch.

GPU vs CPU – Das Bierzelt Beispiel

Du sitzt in einem Bierzelt und möchtest eine Maß Bier bestellen. Du hast die Auswahl zwischen zwei Typen von Kellnern.

Typ Flitzer (CPU): Dieser holt immer genau ein Bier von der Theke und bringt die Maß dem Gast. Dann geht er wieder zurück zur Theke und holt das nächste Bier.

Typ Schlepper (GPU): Diese Kellnerin nimmt sich gleich fünf Maß in jede Hand von der Theke und bringt sie den Gästen. Sobald sie am Tisch ankommt kann sie gleich mehreren Gästen ihr Bier austeilen.

Wenn Du alleine das Bierzelt besuchst ist der Typ Flitzer deine präferierte Wahl. Du bestellst Dein Bier und kriegst es auch recht schnell an Deinen Tisch gebracht. Solltest Du das Bierzelt in einer größeren Gruppe in das Bierzelt gehen, stellt der Typ Schlepper als die geeignete Wahl heraus. Es dauert zwar länger bis die Gesamtbestellung geliefert wird, aber dann werden bis zu 10 Bier parallel verteilt. Und ihr könnt alle gemeinsam Anstoßen. Vereinfacht dargestellt kann man sich den Typ Flitzer als CPU bezeichnen und den Typ Schlepper als GPU.

[cp_modal display=“inline“ id=“cp_id_e7a0b“][/cp_modal]

Diese Eigenschaften haben CPU und GPU.

CPUs (Central Processing Units) haben nur wenige Kerne, die ihre Prozesse nacheinander mit wenigen Threads gleichzeitig ausführen. Die CPU ist der Hauptprozessor eines PC kann optimierte und lange komplexe Aufgaben ausführen und sind latenzoptimiert.

GPUs (Graphics Processing Unit) weisen eine große Anzahl einfacher Kerne auf, die paralleles Rechnen durch Tausende von Threads gleichzeitig ermöglichen. Die GPU ist die Grafikkarte eines PC kann einfache Aufgaben parallelisiert durchführen und sind bandbreitenoptimiert. Es können auch mehrere GPUs gleichzeitig in Betrieb genommen werden.

Die Rolle von GPU bei künstlicher Intelligenz

In einer Zeit, in der künstliche Intelligenz und automatisiertem Machine Learning (AutoML) immer mehr Anwendung findet, ändert sich auch der Stellenwert von CPU und GPU. Manuell erzeugte Machine Learning Modelle rücken immer mehr in den Hintergrund und dem Thema experimentellen Machine Learning kommt eine zunehmende Bedeutung zu. Hierbei werden hunderte Modelle automatisiert trainiert und nach Ende der Experimentreihe das Beste Modell ausgewählt. Die GPU gilt als Herzstück des AutoML, einem wichtigen Teilgebiet der künstlichen Intelligenz.

CUDA: Was ist das?

Cuda steht für „Compute Unified Device Architecture“ und ist eine Technologie und Programmierschnittstelle die vom Grafikkarten-Hersteller NVidia entwickelt wurde. Es beschleunigt die Durchführung von Programmen in dem gewisse Programmteile von einer oder mehreren GPUs gelichzeitig berechnet werden. Mehr und mehr Projekte wie zum Beispiel rapids.ai beschäftigen sich mit Entwicklung von Anwendungen von GPU Data Science. Um das nachfolgende Code-Bespiel durchführen zu können, musst Du vorab die passende Cuda-Version installieren.

XGBoost- Du hast die Wahl: CPU oder GPU

Beim Trainieren von Machine-Learning oder anderen Deep Learning Modellen gibt es verschiedene Möglichkeiten wo der Code Deines Programms ausgeführt wird. Entweder wird der Quell-Code auf dem CPU-Chip ausgeführt, oder aber wird das Programm als Cuda-Code auf der GPU ausgeführt. Die Entwickler des XGboost-Packages haben ihr Paket bereits auf der Basis von CUDA entwickelt, so dass die Anwendung auf der Grafikkarte sehr einfach ist.

Praktisches Beispiel: XGBoost CPU vs. GPU

Datenbasis:

  • Higgs Datensatz 
  • Training 1 Millionen Beobachtungen mit 30 Features
  • Test 500.000 Beobachtungen mit 30 Features

Machine Learning Modell:

  • XGBoost in Python
  • Binäre Zielvariable (Objective: binary:logitraw)
  • 500 Runden für das Boosting

GPU Ausführung

  • Verwendete Grafikkarte: Nvidia RTX 2080ti
  • Die Ausführung auf der GPU wird festgelegt durch „tree_method“=gpu_exact..
  • Zur Auswahl stehen entweder gpu_hist oder gpu_exact.
  • Die Zeit der Ausführung wird in der Variablen gpu_time gemessen.

CPU Ausführung

  • Verwendete Prozessor: Intel (R) i9-9900 mit 8 physischen und 16 virtuellen Kernen
  • Die Ausführung auf der CPU wird festgelegt durch „tree_method“=hist.
  • Die Ausführung auf der CPU wird ebenfalls parallelisiert (über n_jobs=16) so dass alle Threads voll ausgelastet sind und wir die Ergebnisse nicht mit einer Single-Thread Ausführung vergleichen.
  • Die Zeit der Ausführung wird in der Variablen cpu_time gemessen.

Performance Vergleich: XGBoost CPU vs. GPU

GPU: Nvidia RTX 2080tiCPU: Intel (R) i9-9000
Laufzeit: 26.53 Sekunden Laufzeit: 145.68 Sekunden
  • Die Durchführung des Trainings mit GPU war um den Faktor 5,4 schneller, als auf der CPU. Das entspricht einer Reduktion des Trainings von knapp 2,5 Minuten auf unter eine halbe Minute.
  • Bei dem verwendeten CPU handelt es sich ebenfalls um einen leistungsstarken Intel-Prozessor der neunten Generation, der ebenfalls parallelisiert ausgeführt wurde.
  • Beim Einsatz mehrerer Grafikkarten oder einem Benchmark-Vergleich zu einem schwächeren CPU würde der Faktor sogar auf über 20 ansteigen.
  • Die Ergebnisse und das resultierende XGBoost-Modell ist inhaltlich identisch und zu 99,99% deckungsgleich.
Laufzeitvergleich XGBoost 500 Runden, GPU vs VPU

Fazit und Ausblick von AUTOML

Durch die Ausführung von Machine-Learning Anwendungen auf GPU statt CPU Basis, lässt sich die Performance von Machine Learning Modellen signifikant verbessern!Entweder lassen sich die Laufzeiten reduzieren, oder es können einfach mehr Modelle in gleicher Zeit berechnet werden.

GPU-basiertes Machine Learning empfiehlt sich insbesondere bei AutoML Anwendungen oder überall wo viele oder intensive Trainings durchgeführt werden müssen. In Zukunft wird es deutlich mehr Open-Source Entwicklungen im Bereich von GPU-unterstützter Data Science geben und wir können daher zusammenfassen:

GPU ist das neue CPU für maschinelles Lernen!

Philipp Göller

[cp_modal display=“inline“ id=“cp_id_f28f3″][/cp_modal]