Künstliche Intelligenz: Wie wertet man Big Data aus?

Rechnen ohne Formeln

Das Charmante am maschinellen „deep learning“ – so bezeichnet Intel das Trainieren von neuronalen Netzen – ist, dass es keine Formeln und keine Algorithmen gibt. Die Daten sprechen für sich selbst und das Lernen geschieht in Iterationen aus Datenakquise, -verarbeitung und Korrektur. Am Beispiel der Sprachverarbeitung lässt sich das gut veranschaulichen: Zum Training liest ein Sprecher einen Text vor. Die Software analysiert das Schallsignal und versucht, daraus den Text zu extrahieren. Der vorgegebene Text, den der Sprecher vorgelesen hat, ist in Wirklichkeit die Korrektur, mit der das Rechenergebnis abgeglichen wird. Anhand der Abweichungen kann das neuronale Netz mit dem nächsten Satz nun einen neuen Erkennungsdurchlauf starten, der vielleicht schon besser gelingen wird usw.

4 Tage lernen, um ein Gesicht zu erkennen

Die Spracherkennung zeigt recht gut, wie weit neuronale Netze die künstliche Intelligenz voranbringen: seit die Technik angewandt wird, hat sich die Fehlerrate von 23 Prozent (vor fünf Jahren) auf heute ca. 5 Prozent verbessert – und das macht den Unterschied aus zwischen nutzlos und anwendbar. Der Haken an der Sache ist allerdings die hohe Rechenleistung, die erforderlich ist. Deshalb funktioniert die Spracherkennung auf Smartphones derzeit nur in der Cloud, d.h. das Sprachsignal wird in ein Rechenzentrum geschickt, dort analysiert und der Text wird an den Nutzer zurückgeschickt. Andere Anwendungen sind noch wesentlich anspruchsvoller. Um z.B. ein Gesicht einigermaßen zuverlässig zu erkennen muss das System 1,2 Millionen Bilder für das Training einlesen und gegen einen Satz von Musterbildern abgleichen. Dieses Training dauert auf handelsüblichen Servern ca. drei Wochen und auf den schnellsten und leistungsfähigsten Maschinen, die es gibt, immer noch vier ganze Tage. Die erforderliche Rechenleistung beträgt etwa 10 ExaFLOPS.

Lake Crest: Koprozessor für KI-Beschleunigung

Für Intel ist der hohe Bedarf an Rechenleistung ein Glücksfall und eine Gelegenheit der Innovation und des Erschließens neuer Erlösquellen. Neben den Xeon- und Xeon-Phi-Prozessoren, die heute bereits für das maschinelle Lernen eingesetzt werden, lässt sich Machine Learning mit einer Kombination aus Xeon und Altera Arria-10-FPGA beschleunigen. Sobald man ein Modell trainiert hat, lässt es sich mittels FPGA in Hardware programmieren. Noch für das erste Halbjahr 2017 kündigt Intel erste Samples für einen diskreten Koprozessor namens Lake Crest an, der das KI-typische Berechnen neuronaler Netze weiter beschleunigt (Bild). Lake Crest enthält 32 GB internen Speicher, der in einem gestapelten Multi-Chip-Modul untergebracht und zwölfmal schneller angebunden ist als heutiger DDR4-Arbeitsspeicher. Intel bezeichnet Lake Crest als „tensor based architecture“, ein Rechenwerk, das also auf das Rechnen mit Vektoren und Matrizen optimiert ist. Der nächste Entwicklungsschritt sieht so aus, dass Xeon und Lake Crest bis 2020 zu einem einzigen Chip zusammengeführt werden sollen, der den Codenamen Knights Crest trägt. Damit will Intel das Training neuronaler Netze gegenüber heute um den Faktor 100 beschleunigen.

Software-Frameworks erschließen KI

Die enorme Rechenleistung ist für Entwickler nur nutzbar, wenn es auch sinnvolle Software-Werkzeuge gibt, um maschinelles Lernen für praktische Anwendungen zu nutzen. Hier hat es sich Intel zur Aufgabe gemacht, die künstliche Intelligenz für Entwickler besser zugänglich zu machen, indem auch die passenden Software-Tools entwickelt werden. Ein Schlüsselelement hierfür sind die Bibliotheken MKL-DNN (Math Kernel Library for Deep Neural Networks) und MLSL (Machine Learning Scaling Library), eine Bibliothek, die die Kommunikationsvorgänge optimiert, damit der Vorteil des parallelen Rechnens nicht durch den Kommunikationsoverhead wieder aufgefressen wird. Anwendungsentwickler werden mit diesen Bibliotheken allerdings kaum in Berührung kommen, sondern eher auf Machine-Learning-Frameworks zurückgreifen, die diese Bibliotheken enthalten. Solche Frameworks sind z.B. TensorFlow, Caffe, Neon, Torch oder Theano.