Von der Cloud an den Netzwerkrand Künstliche Intelligenz im Edge-Computing

Die durch das IoT erfolgte Verfügbarkeits- und Leistungssteigerung von Hardware führt zusammen mit einer Kostenverringerung dazu, dass viele Anwendungsszenarien wieder von der Cloud an den Rand des Netzwerks verlegt wird. Worauf muss ein Systemdesigner bei der Arbeit mit KI in Edge-Lösungen achten?

Im Zuge des Paradigmenwechsels hin zu lokaler Rechenleistung werden die Geräte an den Knotenpunkten immer autonomer. Gleichzeitig verschiebt sich die Intelligenz verstärkt aus der Cloud heraus zurück an den Netzwerk-Rand, wo die eigentlichen Ereignisse stattfinden.

Dies ermöglichte bereits die Realisierung sehr interessanter Anwendungen wie autonome Drohnen, ADAS-Systeme im Automobilsektor und intelligente mobile Roboter – und das ist mit Sicherheit erst der Anfang. Der Artikel gibt einen Überblick darüber, was ein Systemdesigner bei der Arbeit mit künstlicher Intelligenz in Edge-Lösungen berücksichtigen muss. Beim typischen Ablauf geht es dabei im Wesentlichen um das Verstehen der zu lösenden Aufgabe, die Wahl des Algorithmus sowie das Trainieren und die Bereitstellung eines Inferenzmodells. Dieses Inferenzmodell ist letztlich das Stück Software, welches, basierend auf den vorhandenen Eingangsdaten, eine Entscheidung trifft bzw. ableitet.

Das Ziel: die Definition des Problems

Bei der Arbeit an einer beliebigen Lösung ist der möglicherweise wichtigste und überraschenderweise oft vernachlässigte Schritt die Identifikation des Problems, welches es zu lösen gilt. Ein echtes Verständnis für die Aufgabenstellung ist unverzichtbar, um den richtigen Lösungsansatz und die geeignete Technologie dafür zu wählen. Versuchen Sie eine komplexe Klassifizierungsaufgabe zu bewältigen, für die ein tiefes neurales Netzwerk mit vielen versteckten Schichten benötigt wird? Machine-Learning ist nicht allein auf Deep Learning und neuronale Netzwerke beschränkt. Es gibt viele sogenannte „klassische“ Algorithmen für maschinelles Lernen, beispielsweise der k-Means-Algorithmus, Support Vector Machines und statistische Modelle, die häufig einen geringeren Ressourcenbedarf haben und unter Umständen eine optimale Lösung darstellen. Ein systematisches Versuchs- und Irrtumsverfahren ist in diesem Zusammenhang sehr wichtig, um einen geeigneten Ansatz zu entwickeln. Vor diesem Hintergrund ist Deep Learning seit Kurzem die maßgeblich treibende Kraft für die Verbreitung künstlicher Intelligenz.

Architektur: die Wahl der korrekten Tools

Die Anwendungsanforderungen und -beschränkungen sind der ausschlaggebende Faktor für die Spezifikation des finalen Produkts, welches mit Algorithmen aus dem Bereich der künstlichen Intelligenz realisiert wird. Diese sind wiederum eng verbunden mit Robustheit, Inferenzzeiten, Hardwareressourcen und Quality of Service, insbesondere im Falle von Edge-Computing-Anwendungen und bei der Auswahl der geeigneten Embedded-Plattform. Die Robustheit bezieht sich auf die Genauigkeit des Outputs des Modells und die Fähigkeit zur Verallgemeinerung, d.h. die Wahrscheinlichkeit der Berechnung korrekter Outputs und der Vermeidung von „Überanpassung“. Typischerweise ist das Modell umso robuster, desto komplexer (bzw. tiefer, mehrschichtiger) es ist und je reichhaltiger die Datengrundlage ist.

Die Festlegung einer gewünschten Inferenzzeit hängt gänzlich von der jeweiligen Anwendung ab. In manchen Fällen, beispielsweise in Automobilanwendungen, ist es aus Sicherheitsgründen wichtig, die Antwort eines Bildverarbeitungssystems in unter einer Millisekunde zu erhalten. Bei Sensorfusions-Systemen mit sich langsam verändernden Messwerten, die eventuell nur minütlich neue Inferenzen hervorbringen, ist dies hingegen nicht notwendig.

Die Inferenzgeschwindigkeit hängt dabei von der Komplexität des Modells ab – mehr Schichten führen zu mehr Berechnungen, was wiederum zu längeren Inferenzzeiten führt. Dies kann durch Auswahl und Einsatz einer leistungsstärkeren Rechenressource ausgeglichen werden, z.B. Embedded-GPUs, DSPs, neuronale Beschleuniger mit OpenCL-Kernel, welche die verfügbaren Ressourcen vollständig nutzen können.

Zusätzlich wächst der Speicherbedarf des Modells mit der Anzahl der Neuronen und Gewichte. Denn jedes Gewicht entspricht einer Zahl, die im Speicher abgelegt werden muss. Um die Größe des Modells zu reduzieren (und oft um Hardwarespezifikationen anzupassen), können die Gewichte von Float- oder Double-Werten in Integer-Werte konvertiert werden.

Quality of Service und Zuverlässigkeit des Systems hängen direkt vom Bereitstellungsmodell ab. Die Tatsache, dass bei einem Cloud-basierten Ansatz eine Onlineverbindung benötigt wird, kann dazu führen, dass das System unzuverlässig ist. Was passiert, wenn der Server nicht erreichbar ist? Es muss letztendlich eine Entscheidung getroffen werden. In solchen Fällen ist eventuell die Edge-Lösung der einzig gangbare Weg, beispielsweise bei autonomen Fahrzeugen oder in isolierten Umgebungen. Man sollte zudem grundsätzlich verstehen, dass Algorithmen, die auf der Grundlage von maschinellem Lernen generiert werden, inhärent probabilistische Systeme sind, deren Output eine Wahrscheinlichkeit mit einem bestimmten Unsicherheitsfaktor abbildet. In vielen Fällen übersteigt die Genauigkeit oder Zuverlässigkeit der Vorhersagen von KI-Systemen jedoch bereits diejenige von menschlichen Prognosen. Ob der Systemdesigner eine 90%-ige oder 99%-ige Wahrscheinlichkeit als ausreichend betrachtet, hängt dabei von der Anwendung und ihren Anforderungen ab.

Abschließend muss der Designer bei den Überlegungen hinsichtlich der geeigneten Hardware und Software zusätzlich berücksichtigen, dass sich die Komplexität der Entwicklung und die Skalierbarkeit verschiedener Lösungen stark unterscheiden können. Beispielsweise ist ein Bereitstellen von Modellen auf einer Nvidia-Jetson-Plattform dank der verfügbaren Software-Tools nahezu reibungslos möglich, was die Softwareentwicklungskosten signifikant senkt.