Mittlerweile begegnen sie uns überall: Die Geräte des Internet of Things (IoT) – Kameras, Drohnen, industrielle Anlagen oder erste Ausläufer autonom fahrender Fahrzeuge. All diese Dinge vereint, dass sie immense Datenmengen erzeugen, die typischerweise automatisiert und zunehmend mit Methoden des Maschinellen Lernens ausgewertet werden. Dabei werden in klassischen KI-Infrastrukturen die Daten zentral, zum Beispiel in einem Rechenzentrum, gesammelt und für datengetriebene Algorithmen zur Verfügung gestellt. Das Ergebnis dieser Algorithmen wird anschließend an den jeweiligen Zielort transferiert. Bei industriellen Anlagen können so beispielsweise Sensordaten genutzt werden, um Auffälligkeiten in Datenmustern zu erkennen und im Falle von erkannten oder bevorstehenden Störungen den Wartungsdienst zu informieren.
Kritisch wird dies allerdings, wenn Datenströme sehr groß sind oder von vielen Geräten stammen, Anforderungen einer Echtzeit-Auswertung bestehen oder die transferierten Daten sensibel sind. Denn große Datenströme von einem Gerät oder Datenströme von vielen Geräten verursachen sehr hohe Bandbreiten an Netzwerkauslastung, der nötige Transfer zum zentralen Rechenzentrum löst schädliche Verzögerung für Echtzeitanwendungen aus und sensible Daten verhindern schlicht die Möglichkeit zur zentralen Speicherung. Eine weitere Herausforderung sind umwelttechnische und soziale Faktoren. So rückt sowohl der Energieverbrauch von KI-Modellen als auch die Macht über zentralgespeicherte Daten und der kostengünstige Zugang zu KI-Technologien zunehmend in den Fokus.
Edge Deployment – eine mögliche Lösung?
Eine Lösung für viele dieser Herausforderungen bietet das sogenannte Edge Deployment von KI-Lösungen an, wodurch die Datenverarbeitung und Auswertung dezentral am Rand des Netzwerks (der sogenannten Kante) bereitgestellt wird. Hierbei wird, im Gegensatz zum zentralen Deployment im Rechenzentrum, der Auswertealgorithmus auf einen oder mehreren dezentralen Rechnern oder Mikroprozessoren implementiert – typischerweise dort, wo auch die Daten entstehen.
Zur Veranschaulichung soll eine typische KI-Anwendung aus der Bildverarbeitung dienen: die Objekterkennung. Im Falle des klassischen zentralen Deployment werden die Videostreams der Kameras zentral gesammelt und durch den Objekterkennungsalgorithmus zwecks Inferenz geleitet. Das Ergebnis sind die Konfidenz, Boxkoordinaten und Klassennamen der erkannten Objekte. Wenn nun die Anforderung an eine Echtzeitverarbeitung besteht, muss der Videostream einer Kamera mit der benötigten Auflösung und Framerate (FPS) übertragen werden. Dieser Datenstrom multipliziert sich mit der gewünschten Anzahl von Geräten und erreicht schnell die benötigten Transfergeschwindigkeiten von mehreren Megabyte beziehungsweise Gigabyte pro Sekunde (je nach Setup), die zum Rechenzentrum transferiert werden müssen. Selbstverständlich werden durch diese dafür erforderliche Bandbreite Kosten anfallen, die nicht zu vernachlässigen sind.
Eine mögliche Edge-Lösung für dieses Problem könnte zum Beispiel ein direkt an die Kamera angeschlossener Rechner sein, auf dem der Objekterkennungsalgorithmus ausgeführt wird. Übermittelt wird hierbei nur noch der Ergebnisstring, der im Vergleich zum Videostream zur Übermittelung nur wenige Kilobyte pro Sekunde an Bandbreite erfordert. Da der benötigte Edge-Rechner in diesem Szenario nur die Aufgabe hat den Videostream auszuwerten und zu übermitteln, kann auf typische kostengünstige Kleinstrechner zurückgegriffen werden, welche bereits für unter 100 Euro erworben werden können. Diese Herangehensweise ist besonders attraktiv, wenn für die Lösung der technischen Aufgabenstellung sehr viele Geräte benötigt werden. Sie erfordert jedoch zusätzlich eine genaue Abstimmung zwischen Edge-Rechner und KI-Modell.
Autonomes Fahren als Vorreiter
Zu einem wesentlichen Fortschritt im Bereich Edge Deployment hat unter anderem die Automobilindustrie mit der Erforschung autonom fahrender Fahrzeuge beigetragen. Hier ist der Bedarf für kleine, ressourceneffiziente Lösungen besonders groß, die auf der einen Seite große Datenströme (zum Beispiel durch Kameraaufnahmen) zuverlässig in Echtzeit verarbeiten können und auf der anderen Seite konkurrenzfähig auf dem Massenmarkt bleiben müssen. Dabei wird insbesondere der ganzheitliche Charakter der benötigten Lösungen wieder ersichtlich: Angefangen von der maßgeschneiderten, ressourcenoptimierten Hardware hin zu speziell entwickelten Netzwerkarchitekturen für neuronale Netze, die gegenüber etablierten Objekterkennungsalgorithmen ein Deployment auf einer ressourcenbeschränkten Hardware begünstigen. Gerade bei neuronalen Netzen, welche besonders den Bereich der Bildverarbeitung in den letzten Jahren stark geprägt haben, ist die Anzahl der Modellparameter besonders kritisch. Das heißt, dass eine Reduktion der Modelparameter zusammen mit den nötigen Operationen wünschenswert ist, um die Inferenzgeschwindigkeit und somit die FPS-Rate zu maximieren. Unglücklicherweise besitzen viele Branchen nicht die finanziellen Mittel der Automobilindustrie. Jedoch lassen sich viele der entwickelten Lösungen mit relativ wenig Aufwand auf andere Bereiche übertragen. Gerade für weit verbreitete Datentypen wie Bild, Text und Audio lassen sich Wissen und ganze Modelle so auch in anderen Praxisfeldern anwenden.
Dezentrales Training und Datenmanagement
Ein neuer Aspekt des Edge Deployment ist die Erweiterung der Modelltrainingsmöglichkeiten. Hierbei ist zwischen dem zentralen Training und anschließenden dezentralen Edge Deployment und dem gänzlich dezentralen Training (federated training) zu unterscheiden. Gerade das gänzlich dezentrale Training besticht durch das Wegfallen der Bedingung, dass Trainingsdaten zentral gespeichert werden müssen und ist besonders im Falle sensibler oder sehr großen Daten eine effiziente Möglichkeit KI-Modelle sicher zu trainieren. Sowohl das verteilte Lernen aber auch die Kompression von Modellen ist meist iterativ und erfordert ein umsichtiges Management der Trainingsläufe. Auch hier ist es empfehlenswert auf die Erkenntnisse aus dem Bereich Machine Learning Operations (MLOps) zurückzugreifen und von der initialen Architekturauslegung hinzu dem operativen Training und der Revisionierung von KI-Modellen sämtliche Aspekte in einem frühen Stadium mit abzubilden. MLOps beschreibt eine Mischung aus klassischen DevOps und Machine Learning Ansätzen und verfolgt die systematische Planung und Implementierung solcher Lösungen.
Weiterhin gestaltet sich das Überwachen, Monitoring und das Updaten solch implementierter Edge-Lösungen schwieriger als das zentrale Deployment im Rechenzentrum und erfordert eine gründliche Planung bei der Auslegung. Viele dieser Herausforderungen sind bereits Gegenstand der Untersuchung im neu entstanden Zweig Machine Learning Operations (MLOps).
Hardware-Modellabstimmung: Auf dem Weg zur TinyML Bewegung
Wie bereits im oberen Abschnitt erwähnt, müssen die Leistung des Edge-Rechners und die Art und Größe des KI-Modells aufeinander abgestimmt werden. So ist es nicht verwunderlich, dass Baugröße, Energieverbrauch und Hardwareleistung stark miteinander korrelieren. Eine besonders ausgeprägte Variante des Edge Deployment ist das Einsetzen (Deployment) beziehungsweise Einbetten (Embedding) von Machine Learning Lösungen auf sehr kleinen Plattformen, wie Mikrokontrollern. Diese haben nur wenige Milliampere und Kilobyte Speicher zur Verfügung und können somit theoretisch mit einer Solarzelle oder kleinen Batterie wochen- oder sogar monatelang betrieben werden. Aus diesen extremen Herausforderungen ist eine eigene Bewegung hervorgegangen, die TinyML Bewegung, welche sich mit der Lösung dieser Probleme beschäftigt. Hier spielen besonders Modellkompression und hochoptimierte und verkleinerte Machine Learning Ansätze eine bedeutende Rolle. Mit Ansätzen des TinyML werden KI-Ansätze wortwörtlich zur Massenware. So sind intelligente Kleidung oder Bauteile durch eingearbeitete Mikroprozessoren denkbar und bereits jetzt längst keine Zukunftsvision mehr.
Zusammenfassend lässt sich sagen, dass das Edge Deployment eine attraktive Möglichkeit darstellt, KI-basierte Anwendungen in die Produktion zu bringen. Dabei müssen die Vor- und Nachteile eines Edge Deployment gegenüber eines zentralen Deployment in Betracht gezogen werden. Vorteile sind unter anderem ein reduzierter Datentransfer, die Möglichkeit zur Analyse in Echtzeit am Gerät, ein sicherer Umgang mit sensiblen Daten und die Möglichkeit für ein dezentrales Datenmanagement und Training. Die Nachteile stellen ein aufwändigeres Flotten- und Softwaremanagement und beschränkte Rechenressourcen der Edge-Rechner dar. Somit muss weiterhin eine genaue Abstimmung des zu implementierenden KI-Algorithmus und der Auswahl des Edge-Rechners durchgeführt werden. Dies wird umso relevanter je kleiner und sparsamer das Zielgerät sein soll. Dabei bildet das TinyML die unterste Ebene, bei der ein Deployment auf Mikrokontrollern und embedded Systems stattfindet. KI-Modelle können hierfür gezielt klein ausgelegt oder bestehende Modelle komprimiert und optimiert werden. Fast alle genannten Aspekte erfordern eine genaue Revisionierung und Auslegung der Prozesse. Der Bereich Machine Learning Operations (MLOps) kann hierbei helfen diese Aspekte in einer sehr frühen Phase abzubilden. In Zukunft wird der Bereich MLOps mit zunehmender Produktisierung in Form von Edge Produkten sowohl in Unternehmen als auch in Forschungseinrichtungen zunehmend wichtiger, um besonders den grundsätzlichen Einsatz des Modells, sowie dessen Überwachung und Aktualisierung bei neu vorliegenden Daten zu gewährleisten.