zuruck zur Themenseite

Artikel und Hintergründe zum Thema

Machine Learning

Armin Erich | Günter Herkommer,

Künstliche Intelligenz erfordert Rechenpower

Durch die Integration von KI in industriellen Anwendungen steigt der Bedarf an Computing-Lösungen, die der Komplexität der gestellten Aufgaben gewachsen sind. Neben der CPU gewinnen auf KI-Algorithmen und große Datenmengen spezialisierte Prozessoren an Stellenwert.

© iStockphoto

Industrielle Anwendungen im Bereich der Künstlichen Intelligenz haben wesentlich höheren Leistungsanforderungen als bisherige ‚Standard‘-Applikationen. Zudem werden diese zunehmend in die Nähe der Sensorik beziehungsweise direkt an die Maschine verlagert. Grund hierfür ist, dass sich die anfallenden Datenmengen mit ihrer hohen Bandbreite kaum unter Einhaltung der im industriellen Umfeld geltenden Echtzeit-Anforderungen über ein schlecht kontrollierbares öffentliches Datennetz transportieren lassen – ganz zu schweigen vom Thema Datensicherheit.

KI an der Maschine erfordert allerdings eine leistungsfähige und gleichzeitig robuste Hardware. Wie muss diese ‚gestrickt‘ sein beziehungsweise wie unterscheiden sich die am Markt verfügbaren Technologien in ihrer Funktionsweise voneinander, und in welchen Szenarien lassen sie sich jeweils sinnvoll einsetzen? Zur Beantwortung dieser Frage sei zunächst ein Blick auf die im Rahmen von KI gängigen Begriffen erlaubt.

Definitionen und Abgrenzung der Begriffe

Bei Künstlicher Intelligenz handelt es sich generell um die Durchführung von Aufgaben mittels Strategien menschlicher Intelligenz und menschlichen Verhaltens, wie zum Beispiel das Bewerten, Schlussfolgern, lösungsorientiertes Denken und anschließende Optimierung auf Basis von positiven oder negativen Ergebnissen (sogenanntes erfahrungsbasiertes Lernen).

Machine Learning ist ein Ansatz, um Künstliche Intelligenz mittels Rechnertechnik zu implementieren. Durch den Einsatz selbstoptimierender Methoden wird erreicht, dass eine Maschine eine Aufgabenstellung mit der Zeit durch eine Feedbackschleife in Form einer Rückmeldung des Ergebnisses immer besser und schneller löst. Dabei führen mehr Daten zu besseren Ergebnissen, da es mehr zugrunde liegende Informationen für die Entscheidungsfindung gibt.

Anzeige

Oft werden die Begrifflichkeiten verwechselt. Deep Learning ist ein Teilbereich des Machine Learning, welches wiederum ein Teilbereich der künstlichen Intelligenz ist.

© Inonet

Deep Learning beschreibt den Ansatz, die Funktionsweise des menschlichen Gehirns mit seinen komplexen neuronalen Netzwerken rechnertechnisch nachzubilden. Deep Learning ist damit ein Teilbereich des Machine Learning, der sich zur automatisierten Lösung von Aufgaben einer neuronalen Netzwerk-Struktur bedient. Die Basis für Deep Learning ist derzeit ‚Big Data‘, also die Auswertung von riesigen Datenmengen. Eine Maschine lernt dabei innerhalb einer Trainingsphase, durch Abstraktion Eigenschaften zu bewerten und (richtige) Entscheidungen beziehungsweise Einordnungen zu treffen – etwa anhand von Bilddatenauswertung, Körperschall-Erfassung oder Sprachanalyse. Die für den Trainingsvorgang notwendigen Daten werden von Sensoren für unterschiedliche physikalische Größen erfasst.

Im Rahmen eines Lernvorganges gilt es zunächst, auf Basis sehr vieler Daten ein Modell zu generieren, welches speziell auf die Erledigung dieser Aufgabe zu trainieren ist. Um die Optimierung – sprich den Lernvorgang – durchführen zu können, muss immer eine externe Rückmeldung erfolgen. Am Ende dieses Performance-intensiven Prozesses steht ein (Software-)Modell, welches sich anschließend auf eine deutlich weniger performante Maschine zur Bearbeitung genau dieser Aufgabe übertragen lässt. Dieser Vorgang nennt sich Inferenz, die entsprechenden Geräte werden als Inferenzrechner bezeichnet.

Wie bereits erwähnt, arbeitet Deep Learning mit einer Nachbildung neuronaler Netze. Dabei sind die Neuronen in einer unterschiedlichen Anzahl einzelner Schichten (Tiefe) angeordnet, und die Neuronen einer Schicht sind jeweils mit den Neuronen der vorhergehenden und nachfolgenden Schicht vermascht. Jedes Neuron führt mathematisch gesehen mehrere Operationen durch: Jeder Eingang x wird mit einem Gewichtungswert y multipliziert, ein Offsetwert n wird addiert und dann kumuliert an das nachfolgende Neuron weitergegeben. Handelt es sich bei den Input-Werten um eine Matrix statt um einen Vektor, so spricht man von einem ‚gefalteten neuronalen Netzwerk‘ (engl. Convolutional Neural Network). Mathematisch gesehen handelt es ich hierbei um sogenannte ‚Multiply-Accumulate‘-Operationen (Multiplikation zweier Werte mit anschließender Addition eines weiteren Wertes) sowie Matrizen-Multiplikationen, die ebenfalls aus einer großen Zahl von Multiplikationen zweier Werte mit anschließender Aufaddierung bestehen. Für diese Operationen ist extrem viel Rechenleistung nötig, die in Form unterschiedlicher Spezialhardware bereitgestellt werden kann (Coprozessor-Konzept).

Um den Unterschied von Training und Inferenz zu verdeutlichen: Im Rahmen der Trainingsphase werden für alle ‚Neuronen‘ und deren Verbindungen die genannten Parameter y und n solange auf Basis der jeweiligen Ergebnisse verändert (optimiert), bis das Netzwerk die Aufgabenstellung mit einer vorher festgelegten Treffsicherheit richtig durchführt. Am Ende ist die Optimierung des Netzwerkes im Hinblick auf die jeweilige Aufgabenstellung abgeschlossen, also alle x- und n-Werte sind festgelegt, sodass das Modell anschließend auf einen Inferenzrechner transferierbar ist. Auf letzterem findet dann kein weiterer Lernvorgang statt.
 

Spezialhardware für Trainingsvorgänge und Inferenzen?

Angesichts der beschriebenen mathematischen Besonderheiten hinsichtlich der IT-technischen Umsetzung von neuronalen Netzwerk-Strukturen, gibt es verschiedene hardwaretechnische Ansätze, die sich aufgrund ihrer Architektur besonders für eine schnelle und effiziente Umsetzung dieser Operationen eignen.Die CPU ist das Herzstück eines jeden Computers und zeichnet sich durch eine komplexe Hardware-Architektur und einen universellen Befehlssatz aus. Das prädestiniert die CPU für eine sehr flexible Ab­arbeitung unterschiedlichster Algorithmen mit verschiedenen Zielsetzungen. Die Universalität wird dabei aber mit nicht optimaler Performance für dezidierte Aufgaben erkauft, sodass hier zunächst von einer eingeschränkten Eignung für den KI-Einsatz gesprochen werden muss. Allerdings können moderne Hochleistungs-Server-CPUs mit vielen Cores und Multi­threading auch bei KI-Aufgaben sehr gute Leistungen erzielen und sind in Rechenzentren durchaus auch für die Modellgenerierung verwendbar. Für ein Inferenz-Szenario, also der Anwendung eines bereits trainierten Modells mit geringem bis mittlerem Leistungsbedarf, sind in der Regel auch weniger performante CPUs problemlos einsetzbar.

Gehirnzellen sind mittels Synapsen vermascht und kommunizieren bidirektional. Die Umsetzung von Information in Aktion erfolgt an sogenannten Motoneuronen. Das Ganze nennt sich in der Biologie neuronales Netzwerk.

© Inonet

Ungeachtet dessen gibt es jedoch deutlich besser geeignete Hardware für Deep-Learning-Szenarien, wie zum Beispiel Grafikprozessoren oder kurz GPUs (Graphic Processing Units). Die GPU kann Bestandteil der CPU sein, sich als eigener Chip auf dem Mainboard befinden oder in Form einer Steckkarte (meist über PCIe) mit dem Mainboard verbunden werden. Die Rechenleistung wird hier durch Parallelisierung von Rechenaufgaben über eine Vielzahl von zur Verfügung stehenden Recheneinheiten im Vergleich zu einer CPU immens gesteigert. Dafür lassen sich sowohl Consumer-Grafikkarten als auch professionelle Grafikkarten einsetzen, wobei erstere in der initialen Anschaffung günstiger sind, während zweitere über eine deutlich höhere Lebensdauer verfügen.

VPUs (Vision Processing Units) sind im Inferenz-Umfeld in jüngster Vergangenheit immer beliebter, wenn es um Deep-Learning-Szenarien auf Basis von Bild- und Bewegtbilddaten geht. Diese für den industriellen Einsatz ausgelegte Hardware ist langlebiger und hält erweiterten Umgebungstemperaturen stand. Hersteller von VPU-Modulen sind unter anderem Nvidia etwa mit dem Jetson-TX2-Modul, oder auch Intel beziehungsweise Movidius mit dem Myriad X. In Ergänzung zu industrieller Hardware ermöglichen die VPU-Module mittlere bis hohe Performance für Inferenz-Maschinen, etwa für die einfache Analyse von Bilddaten mit bis zu 9 FPS (Frames per Second), bei verhältnismäßig geringer Leistungsaufnahme von lediglich 4 W im Fall einer Myriad2 VPU. Meistens werden VPUs auf Steckmodulen angeboten, deren Leistung von einer bis aktuell acht VPUs skaliert und die über Standard-Schnittstellen wie PCIe, mPCIe, m.2 oder USB verfügen. Aufgrund ihrer Kompaktheit – die USB-Einheiten sind lediglich so groß wie gewöhnliche USB-Sticks – sind diese Module einfach in Industrie-PCs integrierbar und können so beim Edge Computing ihren Dienst verrichten.

FPGAs (Field Programmable Gate Array) sind programmierbare digitale Bausteine, bei denen auch die Hardwarestruktur (logische Schaltungen) programmierbar ist. FPGA-Karten weisen eine sehr dynamische Leistungsaufnahme auf, da sie sich durch die individuellen Konfigurationsmöglichkeiten der Hardware direkt auf den Anwendungsfall abstimmen lassen und so maximale Effizienz und Performance für die jeweilige (KI-)Anwendung liefern können. Durch Implementierung parallel arbeitender Hardwarestrukturen ist die Leistung noch weiter ausreizbar. Demgegenüber steht jedoch ein hoher individueller Entwicklungsaufwand, der sich in der Regel erst bei Anwendungen mit größeren Stückzahlen rechnet.  
 

Vor Ort oder in der Cloud?

Generell besteht die Möglichkeit, sowohl die Modellgenerierung (Training) als auch die anschließende Bearbeitung einer Aufgabe (Inferenz) vor Ort, zum Beispiel in der Werkshalle (Edge Intelligence), oder remote – etwa in einem Datenzentrum (Cloud)  –durchzuführen. Während sich beim Edge Computing die Rechenleistung lokal befindet und dadurch meist Echtzeit-Fähigkeit ohne nennenswerte Verzögerungen gewährleistet ist, besteht beim Cloud-Ansatz in der Regel keine Echtzeit-Fähigkeit und es wird eine hohe Bandbreite zur Übertragung der einzelnen Datenpakete benötigt. Cloud Computing bietet jedoch im Gegensatz zum Edge Computing leicht skalierbare Rechenleistung – zum Beispiel durch Virtualisierung – mit weltweitem Zugriff. Zudem muss die genutzte Hardware im Gegensatz zur Hardware, die im Shop Floor zur Verwendung kommt, keine industriellen Anforderungen erfüllen und ist somit deutlich günstiger in der Anschaffung.

In Inferenz-Anwendungen können deutlich kompaktere Geräte­klassen als in ­Trainings-Anwendungen eingesetzt werden, um die zuvor angelernten Vorgänge umzusetzen.

© Inonet

Moderne KI-Systeme werden bereits durch ausgebildete Spezialisten in dedizierten Rechenzentren definiert, erstellt und trainiert. Diese Fachleute sind häufig auf ein bestimmtes KI-Framework spezialisiert. MXNet, Tensorflow und Caffe2 sind in diesem Kontext nur drei Beispiele von vielen. Bei einigen Applikationen ist während des KI-Systementwurfs und Trainings auch bereits die potenzielle Inferenzhardware vorgegeben. 

Man kann allerdings auch einen Trend beobachten, bereits fertig trainierte Inferenzsysteme als Bausteine zu einer eigenen KI-Anwendung hinzuzufügen. Dies ist immer dann möglich, wenn sich die KI-Applikation auf standardisierte Aufgaben festlegen lässt. Beispiele hierfür wären die optische Erkennung von Verkehrsschildern oder das Erkennen und Lesen von Texten auf Fotos. Hier kann das Inferenz-System als Software-Baustein aus einer Anzahl von Anbietern ausgewählt, qualifiziert und in das eigene Produkt integriert werden. Dabei ist es notwendig, dass das KI-System nicht bereits während des Systemdesigns zu stark auf ein spezifisches Zielsystem ausgerichtet worden ist und der Anwender noch genug Flexibilität vorfindet, um die Anforderungen seiner Applikation umzusetzen. 

Dieser flexible Ansatz wird zum Beispiel von Toolkits wie Intels OpenVino unterstützt. Dieses nimmt für sich in Anspruch, bereits fertig definierte Inferenzsysteme anderer Frameworks einlesen, optimieren und ohne großen Programmieraufwand auf unterschiedliche Zielhardware aufsetzen zu können. Auf der Eingabeseite wird bereits eine Vielzahl bekannter KI-Frameworks unterstützt und Intel wirbt damit, monatlich diese Auswahl zu erweitern. Auf der Ausgabeseite werden die bereits angeführten Zielsysteme in Form von CPUs, GPUs, VPUs und FPGAs unterstützt. Somit ist in diesem Rahmen das Zielsystem, auf welchem die Inferenzapplikation zum Einsatz kommen soll, flexibel skalierbar, ohne die Applikation neu zu konfigurieren. Alle diese Hardwareplattformen sind, im Gegensatz zu den KI-Trainingsplattformen in den Rechenzentren, industrietauglich und somit für die Integration in Edge-Computing-Applikationen geeignet.

Autor: Armin Erich ist Entwicklungsleiter bei Inonet Computer.

  • Xing Icon
  • LinkedIn Icon
Anzeige
zurück zur Themenseite
Anzeige

Das könnte Sie auch interessieren

Anzeige

Bildverarbeitung

Autonom dank Künstlicher Intelligenz

Maschinelle Bildverarbeitung zur zuverlässigen Qualitätssicherung per Plug & Play und ohne eine gehörige Portion Fachwissen – von dieser Idealvorstellung sind gängige Bildverarbeitungssysteme in der Regel weit entfernt. Ein deutsch-israelisches...

mehr...
Anzeige
Anzeige
Anzeige

Leichtbaurobotik

Welcher Greifer für welche Anwendung?

Fortschritte im Bereich des End-of-Arm-Tooling (EoAT) machen es möglich: Greifer und Sensoren werden zunehmend intelligent und lassen sich immer leichter bedienen. Somit erweitern sie das Einsatzspektrum ­kollaborierender Roboter und rentieren sich...

mehr...

Cloud-Lösung

Mehr Usability durch KI?

Zeitweise benötigte Ressourcen flexibel und kostentransparent buchen – ein Versprechen, das die Cloud-Provider oft nicht halten: Die Angebote sind zwar umfassend und leistungsstark, aber ebenso unübersichtlich und preislich intransparent. Ein...

mehr...
Anzeige
Anzeige
Anzeige
Jetzt Newsletter abonnieren