Seite 3: Deep-Learning- / Machine-Learning-Benchmark

Bildanalyse

In einem letzten Vergleich haben wir uns die Leistung für das Training eines kleines Deep-Learning-Netzwerkes angeschaut. Zuvor sei aber gesagt, dass ein Training eines solchen Netzwerkes keine echte Domäne der Workstation-Karten (und hiermit sind die Quadro-Modelle von NVIDIA und Radeon-Pro-Modelle von AMD gemeint) ist. AMD sieht dazu die Radeon-Instinct-Karten vor und bei NVIDIA sind es die Tesla-Beschleuniger. Die Titan V aber soll genau hier ihre Lücken finden – zwischen den Profi-Beschleunigern für teilweise einen fast fünstelligen Betrag und den teuren Consumer-Karten.

Wir haben uns eine Beispielbibliothek für das Training einer Fotobibliothek von TensorFlow genommen und diese auf einem Ubuntu 14.04 zusammen mit den dazugehörigen Deep-Learning-Schnittstellen für AMD und NVIDIA installiert. Die von uns gewählte Beispielbibliothek umfasst 200 GB an Bilddaten (ungefähr 40.000 Fotos). Die Beispielbibliothek wird daraufhin komplett durchlaufen, jedes Bild in Kacheln mit einer Größe von 32 x 32 Pixel aufgeteilt und entsprechend der abgebildeten Gegenstände mit den dazugehörigen Metainformationen versehen. Dazu gehören beispielsweise Flugzeug, Auto, Katze, Gesicht, Schiff und vieles mehr.

Aufgrund der geringen Größe der Beispielbibliothek haben wir nicht die Gesamtdauer für die Fertigstellung aufgenommen, sondern die Anzahl der Bilder pro Sekunde. Dies wäre für größere Datenmengen der entscheidende Faktor.

Deep Learning / Machine Learning

Bilderkennung auf 200 GB Bilddatenbank

Bilder pro Sekunde
Mehr ist besser

Natural Language Processing

Im zweiten Benchmark geht es um das Inferencing eines Deep-Learning-Netzwerkes, welches Natural Language Processing jedem Smartphone-Nutzer bekannt sein sollte. Zumindest Apple verwendet unter iOS einen Machine-Learning-Prozess, der Sätze oder Phrasen automatisch vervollständigen soll. Fragt der Gegenüber beispielsweise "Wann kommst du nach Hause?", schlägt das System nach der Eingabe von "Ich bin ..." automatisch auch das "gleich da" vor. Ein solches Netzwerk wird durch das Schreiben des Nutzers trainiert, lernt dessen Ausdrucksweise und macht basierend darauf Vorschläge. Dazu werden zu den einzelnen Wörtern und Phrasen Relationen beschrieben. Diese geben die Wahrscheinlichkeiten für das nächste Wort oder einen kompletten Satz an und machen daraus Vorschläge für den Nutzer.

Nun werden diese Netzwerke nicht auf den einzelnen Geräten trainiert, sondern per Differential Privicy, also ohne das es möglich ist, den einzelnen Nutzer bzw. dessen Eingaben zu zurückzuverfolgen, auf einer Serverinfrastruktur. Beim Inferencing wird aus dem Deep-Learning-Netzwerk eine entsprechende Ausgabe ausgelesen. Bei der Eingabe will der Nutzer natürlich nicht sekundenlang warten, bis diese Vorschläge auftauchen. Die Latenz, also Dauer der Auswertung der Relationen zueinander ist hier entscheidend.

Deep Learning / Machine Learning

Natural Language Processing

Latenz in ms
Weniger ist besser

Neural Machine Translation

Das dritte Anwendungsfeld ist die automatische Übersetzung – die Neural Machine Translation. Hier sind Deep-Learning-Netzwerke inzwischen genauer und machen weniger Fehler. Vor Jahren noch funktionierte eine maschinelle Übersetzung per Recurrent Neural Network (RNN). Dabei wurden die Wörter einfach 1:1 von einer Sprache in die andere übersetzt – mit den entsprechend schlechten Ergebnissen. Eine erste Verbesserung wurde mit der Phrase-Based Machine Translation (PBMT) erreicht. Dabei wird der Input in einzelne Wörter und Phrasen aufgeteilt. Es gewisser Weise findet damit eine inhaltliche Bewertung statt und dementsprechend erfolgt auch die Übersetzung. Die PBMT stellte eine deutliche Verbesserung dar, kann aber noch immer nicht in allen Fällen überzeugen und eignet sich allenfalls für ein inhaltliches Verständnis der Übersetzung.

Methodik der Neural Machine Translation
Methodik der Neural Machine Translation

Seit einigen Jahren ist nun die Neural Machine Translation (NMT) im Einsatz. Dabei wird keine Aufteilung des Inputs mehr vorgenommen, sondern der Input wird als Ganzes verarbeitet. Die NMT war vom Start weg auf Niveau der PBMT, hatte aber deutliches Potenzial zur Verbesserung vorzuweisen, da der Algorithmus über ein Machine Learning bzw. Deep-Learning-Netzwerke trainiert werden kann. Dieses Lernen findet mit jeder Eingabe durch Nutzer statt, von denen Google beispielsweise alleine vom Englischen ins Chinesische 18 Millionen pro Tag verzeichnet. Auch hier geht es für die Hardware wieder darum so viele Sätze wie möglich verarbeiten zu können. Wir haben das entsprechende Netzwerk von Google verwendet und ein Inferencing daraus erstellt.

Deep Learning / Machine Learning

Neural Machine Translation

Sätze pro Sekunde
Mehr ist besser