Beiträge

Du möchtest einen PC speziell für Machine-Learning-Anwendungen zusammenbasteln, aber dabei nicht die exorbitanten Preise für spezialisierte Hardware auf den Tisch legen? Mit ein bisschen Glück hast du einen guten PC für Anwendungsfälle dieser Art schon zu Hause stehen – denn hinsichtlich ihrer Hardware sind sie den Gaming-PCs nicht unähnlich.

Wofür brauche ich einen Machine-Learning-PC überhaupt?

Grob gesagt, fütterst du deinen PC mit sehr großen Datensätzen und trainierst Modelle, um in Zukunft bestimmte Aufgaben besser bewältigen zu können. Der Computer entwickelt dadurch selbstständig Algorithmen, die auf den Daten basieren, die du ihm verabreicht hast. Da wir gerade beim Thema Gaming-PCs waren, hilft ein Beispiel, um die Sache zu verstehen: Denkbar sind etwa Lösungen, um die Bildqualität in Spielen deutlich zu verbessern, ohne dass dadurch die Leistung beeinträchtigt wird. NVIDIAs hauseigenes DLSS (Deep Learning Super Sampling) ist ein Beispiel dieser Methode. Zum anderen sind diese Super-PCs auch bei automatisiertem Machine Learning (AutoML) extrem sinnvoll, da sehr viele Experimente durchgeführt werden. Diese können parallelisiert durchgeführt werden, um die Laufzeiten der Programme deutlich zu reduzieren.

Ein Teilgebiet dieser Lösungen sind Aufgaben wie Feature Engineering: Diese sehr CPU-intensive Aufgabe optimiert die Performance bestehender Algorithmen. Mit anderen Worten: Um alle Felder abzudecken, brauchst du viel CPU- und GPU-Leistung in einem Paket.

Der ideale PC für Machine Learning: kaufen oder Eigenbau?

Die Hersteller hochspezialisierter Maschinen für Machine Learning / Deep Learning lassen sich ihre Arbeit natürlich fürstlich bezahlen. Dabei kochen sie am Ende aber auch nur mit Wasser. Das soll heißen: Sie setzen nicht auf Zauberhardware aus einem geheimen Labor, sondern verbauen RAM, GPU, CPU & Co. genauso, wie du es auch machen würdest.

Eventuell kommen bei gekauften PCs dieser Art besonders zertifizierte Komponenten zum Einsatz (Enterprise-HDDs mit besonders langen Garantielaufzeiten, ECC-RAM und ähnliche Bauteile), aber der Grundaufbau bleibt derselbe.

Das heißt: Die Zeichen stehen gut, dass du dir für wenig Geld einen vollkommen ausreichenden PC für die unterschiedlichsten Machine-Learning-Modelle zusammenbauen kannst. Schauen wir uns dazu die wichtigen Komponenten in der Übersicht an:

RAM für ML Computer

Hier gilt: Viel hilft viel. Je mehr RAM, desto besser. Da Applikationen dieser Art nie genug Arbeitsspeicher haben können, solltest du nicht hier kleinlich sein. Du wirst Unmengen von Daten zwischen CPU und RAM und zur GPU schaufeln, wenn du deine Algorithmen lernen lassen möchtest. Die meisten Datensätze sollten dabei unkomprimiert sein, um Zeit zu sparen. Bei 64 GB DDR4-RAM geht es hier los, mehr kann nicht schaden.

CPU Prozessor für ML Computer

Du hast die Wahl zwischen Intel und AMD, wobei AMD hier aufgrund der aktuellen CPU-Landschaft klar die Nase vorn hat. Threadripper-CPUs vereinen dermaßen viele Kerne (und Threads) in einem Package, dass Intel in diesem Segment aktuell nichts entgegenzusetzen hat. Kleines Rechenbeispiel: Für einen Threadripper 2920X mit 12 Kernen und 24 Threads bezahlst du etwas weniger als 400 Euro. Bei Intel bekommst du für denselben Preis 8 Kerne und 16 Threads. Zwar ist dort die Single-Core-Leistung höher, diese spielt bei Machine-Learning-Anwendungen aber eine untergeordnete Rolle. Möchtest du genau jetzt zugreifen, führt an AMD somit kein Weg vorbei.

GPU Grafikkarte für ML Computer

Die nächste große Baustelle ist die GPU: Viel VRAM und eine hohe Geschwindigkeit sind hier wichtig. Bedenken musst du, dass VRAM anders als RAM funktioniert: Hast du nicht genügend VRAM, aber dein Machine-Learning-Modell verlangt danach, wird es einfach nicht starten. Eine aktuelle GeForce Titan RTX mit 24 GB VRAM wird dieses Problem niemals haben, allerdings ist sie auch entsprechend teuer (knapp 3.000 Euro werden fällig). Ein besseres Preis-Leistungs-Verhältnis findest du in allen GPUs ab 8 GB VRAM – also etwa eine RTX 2080 Ti oder auch die ältere Generation ab GTX 1080.

Netzteil für Sicherheit

Laufen die meisten Komponenten permanent unter hoher Last, brauchst du auch eine Stromversorgung, die dieser Auslastung standhält. Spare daher nicht am falschen Ende und investiere in ein Netzteil mit sowohl einem hohem Effizienzgrad als auch genügend Leistung. Spielst du mit dem Gedanken, mehrere GPUs zu verbauen, steigt der Stromverbrauch rasant an. Eine pauschale Empfehlung können wir natürlich nicht geben, da wir nicht wissen, was du am Ende in deinen PC baust. Im Zweifelsfall gilt aber: lieber ein über- als unterdimensioniertes Netzteil kaufen. Außerdem gilt: Finger weg von No-Name-Produkten!

Wasserkühlung zur Leistungssteigerung für Machine Learning

Abwärme muss schnell abtransportiert werden – und von dieser Wärme wird dein PC durch den hohen Stromverbrauch eine Menge produzieren. Wasserkühlungen sind hier eine gute Investition, da Wasser die Wärme schneller leitet als Luft und obendrein auch niedrigere Temperaturen garantiert werden. Auch unter hoher Last müssen Komponenten dann nicht throtteln oder sich abschalten. Je besser die Kühlleistung Deines PC’s desto performanter sind Deine CPU- und GPU Chips. In etwa 30%-45% mehr Leistung lässt sich dadurch erzielen. Außerdem läuft das System dann leiser als mit einer reinen Luftkühlung, was je nach Aufstellungsort für deinen PC wichtig sein kann.

Einen Überblick über die wichtigsten Komponenten und worauf es ankommt, hast du jetzt – aber spart man damit wirklich so viel Geld?

Der Vergleich zu NVIDIAs DGX Station

Mit der Vorstellung der RTX 2000-Serie hat NVIDIA auch die DGX Station vorgestellt. Dabei handelt es sich um eine Workstation, die für die AI-Entwicklung konzipiert wurde, aber generell überall dort zum Einsatz kommen kann, wo Data Science im großen Stil betrieben wird. Ausgestattet ist das Gerät mit 4 Tesla V100-GPUs (einer auf der Volta-Architektur basierenden GPU mit 16 GB VRAM), einer CPU mit 20 Kernen und 128 GB RAM. Für diese Hardware verlangt NVIDIA stolze 49.000 US-Dollar.

An der Performance der DGX Station gibt es nichts auszusetzen: Machine-Learning-Modelle, die trainiert werden müssen, schaffen die Arbeit ungefähr 50 Mal schneller als auf einer einzelnen CPU. Allerdings kannst du dir eine recht ähnliche Leistung schon für den Bruchteil eines Preises ins Haus holen – und wenn du einen Gaming-PC dein Eigen nennst, stehen die Chancen auch gut, dass du sowieso schon eine leistungsstarke Grafikkarte, viel RAM und eine schnelle CPU besitzt.

Auch Angebote aus der Cloud halten dem Vergleich nicht stand: Mietest du etwa über Amazon (in Form von AWS) oder über Microsoft Azure CPU-/GPU-Rechenkapazitäten und nutzt diese für Machine Learning, sparst du ungefähr 90 % der Kosten bei der Nutzung einer einzigen GPU ein. Was bei AWS gute 3 Euro pro Stunde kostet, schlägt zu Hause mit nur 20 Cent zu Buche. Der Vorteil wächst weiter in deine Richtung, wenn du mehr GPUs zuschaltest.

Fazit: Eigenbau ist signifikant günstiger – und fast genauso gut

Spielst du mit dem Gedanken, mit Machine Learning zu experimentieren, kannst du für wenige Tausend Euro eine vergleichbare Leistung erzielen wie die großen Cloud-Lösungen oder spezialisierte Hardware. Für Privatkunden ist die Investition in diese professionellen Lösungen damit praktisch vollkommen unattraktiv – und gewaltige Unterschiede zu Gaming-PCs gibt es, mit Ausnahme der gewaltigen RAM-Bestückung, kaum.

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

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]