Das Elastic-AI-Ökosystem
Jeder kann mit KI experimentieren
Zugegeben, künstliche Intelligenz (KI) ist kein besonders einfaches Thema. Aber mit etwas Übung gelingt es, das erste KI-Modell z.B. in pyTorch zu erstellen und zu trainieren. Aber was nun? Wie bindet man diese KI in das eigene System ein? Wie führt man sie auf einem kleinen eingebetteten System aus? Wie verknüpft man sie mit eingehenden Daten und schickt die Ergebnisse an Konsumenten? Wer entwirft die notwendige eingebettete Hardware? Und wie programmiert man eine intelligente Anwendung, die dynamisch zwischen KI in der Cloud und lokaler KI auf dem Gerät umschalten kann?
Für all dies entwickeln wir ein Open-Source-KI-Ökosystem, das wir elastic AI nennen. Es besteht aus drei Teilen:
- elastic AI.creator, zur automatischen Generierung von optimierten KI-Beschleunigern für eingebettete FPGAs;
- elastic AI.runtime, zur Ausführung verteilter KI-Systeme und als Verbindung der eingebetteten zur Cloud- und Edge-KI; und
- elastic AI.hardware, zur Entwicklung eigener intelligenter Endgeräte.
Das elastic-AI-Ökosystem
Eine Open-Source-Lösung für adaptive und verteilte KI
Creator
Mit dem elastic AI.creator ist es möglich, speziell für FPGAs optimierte KI-Modelle zu entwerfen, zu trainieren und in eine Hardwarebeschreibung zu übersetzen.
Er stellt zuerst speziell optimierte Schichten bereit, aus denen ein geeignetes Modell aufgebaut wird.
Das fertige Modell durchläuft anschließend sein Training und wird danach in eine VHDL-Darstellung der entsprechenden Zielkonfiguration des FPGAs übersetzt.
Diese VHDL-Dateien können mit einer Drittanbieter-Software wie Vivado Xilinx für den Elastic Node oder andere Systeme kompiliert werden.
Der Creator basiert auf den Arbeiten im LUTNet-Projekt. Den Quellcode und Informationen zur Verwendung finden Sie auf der dazugehörigen Github-Seite.
Verantwortlich: Lukas Einhaus
Runtime
Die elastic AI.runtime ist eine Weiterentwicklung der Elastic IoT Platform und stellt gewissermaßen die Infrastruktur des Ökosystems dar. Es handelt sich dabei um eine Plattform zur Steuerung, Verwaltung und Überwachung von verteilten KI-Systemen. Sie gliedert sich in eine Embedded Runtime, eine Cloud Runtime und den Monitor, eine Cloud-Anwendung zur Überwachung.
Die Embedded Runtime kommt auf den jeweiligen Endgeräten der verteilten, eingebetten Systeme zum Einsatz und agiert als Schnittstelle zwischen dem Cloud Server und den jeweiligen Geräten. Sie kümmert sich um die allgemeine Steuerung und Kommunikation, die Ressourcenverwaltung sowie um die Auswahl von FPGA-Konfigurationen und – mittels der Elastic Node Middleware – deren Deployment wie auch deren Bedienung.
Die einzelnen Endgeräte haben serverseitig ihre Gegenstücke in Form von Digitalen Zwillingen. Diese dienen gleichzeitig als modellhafte Repräsentation der physischen Netzwerkelemente, als Lastabfänger und als Vermittler zu ihnen. Die Digitalen Zwillinge bieten außerdem Abstraktionen, die größere Flexibilität im Umgang mit konkreter, von bestimmten Protokollen und Strukturen abhängiger Hardware ermöglichen.
Der Monitor wurde schließlich zur Überwachung des gesamten Hardwaregefüges entwickelt und schafft mithilfe der Digitalen Zwillinge eine Übersicht über das verteilte System und den Status seiner Elemente.
Gesamter Quellcode und technische Einzelheiten auf Github:
- Serversegment der elastic AI.runtime
- Implementierung für den Elastic Node v5
- C-Implementierung des speziellen Runtime-Protokolls
Verantwortlich: Gregor Schiele
Hardware
Die dazugehörige Hardware ist die mittlerweile fünfte Iteration unseres einzigartigen Elastic Node.
Es handelt sich um ein kleines, sehr energieeffizientes Endgerät für verteilte Sensornetzwerke, das wahlweise durch sein Wireless-Modul mit Cloud- oder Edge-KI in Verbindung steht oder aber auf On-device-KI setzt.
Seit der ersten Version wurde die Hardware stetig verfeinert. Der Elastic Node v5 ist nunmehr weniger als 5,8 cm hoch und nur 3,4 cm breit und eignet sich damit auch für sehr platzbeschränkte Einsatzorte.
Sein heterogenes Design vereint im Wesentlichen einen stromsparenden Mikrocontroller (MCU), einen Zwischenspeicher für Daten sowie einen primär für KI-Anwendungen gedachten eingebetteten FPGA nebst Speicher für weitere KI-Modelle.
Der Mikrocontroller übernimmt vergleichsweise einfache Aufgaben wie die allgemeine Steuerung und das Auslesen von Sensordaten, während der FPGA spezifischere Aufgaben erledigt, für die zuvor mittels des Creators passende Neuronale Netzwerke zusammengestellt wurden.
Dank seines Modellspeichers kann sich der Elastic Node in situ dynamisch umkonfigurieren und hat somit für wechselnde Anforderungen immer das geeignete Neuronale Netzwerk parat.
Zu den weiteren Merkmalen zählen eine Verbrauchsüberwachung und die Möglichkeit zusätzliche Funktionen durch Erweiterungsboards hinzuzufügen.
Verantwortlich: Chao Qian.
Publikationen rund um das Ökosystem
-
Towards the optimal orchestration of service function chains to enable ultra-reliable low latency communication in an NFV-enabled networkDuisburg, Essen (2024) xviii, 164 SeitenOnline Volltext: dx.doi.org/ Online Volltext (Open Access)
-
FPGA-Augmented Intelligent Devices for the Internet of ThingsDuisburg, Essen (2023) xv, 223 SeitenOnline Volltext: dx.doi.org/ Online Volltext (Open Access)
-
Elastic AI : System support for adaptive machine learning in pervasive computing systemsIn: CCF Transactions on Pervasive Computing and Interaction Jg. 3 (2021) Nr. 3, S. 300 - 328Online Volltext: dx.doi.org/ (Open Access)
-
In-Situ Artificial Intelligence for Self-∗ Devices : The Elastic AI Ecosystem (Tutorial)In: 2nd IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion, ACSOS-C 2021: Proceedings / 2nd IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion, ACSOS-C 2021, Virtual, Washington, 27 September - 1 October 2021 2021, S. 320 - 321Online Volltext: dx.doi.org/
-
The Elastic Internet of Things - A Platform for Self-Integrating and Self-Adaptive IoT-Systems with Support for Embedded Adaptive HardwareIn: Future Generation Computer Systems Jg. 113 (2020) S. 607 - 619Online Volltext: dx.doi.org/
-
The Elastic Node: An Experimentation Platform for Hardware Accelerator Research in the Internet of ThingsIn: Proceedings of the IEEE International Conference on Autonomic Computing / ICAC 2019; Umea; Sweden; 16 - 20 June 2019 2019, S. 84 - 94Online Volltext: dx.doi.org/
-
Demo Abstract : Deep Learning on an Elastic Node for the Internet of ThingsIn: IEEE International Conference on Pervasive Computing and Communications Workshops / PerCom Workshops 2018; Athens; Greece; 19-23 March 2018 2018, S. 424 - 426Online Volltext: dx.doi.org/
-
Elastic Nodes for the Internet of Things : A Middleware-Based ApproachIn: Proceedings - 2017 IEEE International Conference on Autonomic Computing, ICAC 2017 / 14th IEEE International Conference on Autonomic Computing, ICAC 2017; The Ohio State University Columbus; United States; 17 July 2017 through 21 July 2017 / Wang, Xiaorui (Hrsg.) 2017, S. 73 - 74Online Volltext: dx.doi.org/