Schema aus drei Säulen: Grün: Elastic AI.creator mit einem Workflow pyTorch>code generator>accelerator builder, Blau: Elastic AI.runtime mit den Elementen cloud, edge und embedded, Blasslila: Elastic AI.hardware mit stilisiertem Elastic Node V5

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: 

  1. elastic AI.creator, zur automatischen Generierung von optimierten KI-Beschleunigern für eingebettete FPGAs;
  2. elastic AI.runtime, zur Ausführung verteilter KI-Systeme und als Verbindung der eingebetteten zur Cloud- und Edge-KI; und
  3. 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



Elastic AI.creator (Schema)

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

Schema elastic AI.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:

Verantwortlich: Gregor Schiele

Hardware

Elastic Node mit Beschreibung

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

    2024

  • Erbati, Sam;
    Towards the optimal orchestration of service function chains to enable ultra-reliable low latency communication in an NFV-enabled network
    Duisburg, Essen (2024) xviii, 164 Seiten
  • 2023

  • Burger, Alwyn;
    FPGA-Augmented Intelligent Devices for the Internet of Things
    Duisburg, Essen (2023) xv, 223 Seiten
  • 2021

  • Cichiwskyj, Christopher; Schmeißer, Stephan; Qian, Chao; Einhaus, Lukas; Ringhofer, Christopher; Schiele, Gregor
    Elastic AI : System support for adaptive machine learning in pervasive computing systems
    In: CCF Transactions on Pervasive Computing and Interaction Jg. 3 (2021) Nr. 3, S. 300 - 328
  • Einhaus, Lukas; Qian, Chao; Ringhofer, Christopher; Schiele, Gregor
    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 - 321
  • 2020

  • Burger, Alwyn Johannes; Cichiwskyj, Christopher; Schmeißer, Stephan; Schiele, Gregor
    The Elastic Internet of Things - A Platform for Self-Integrating and Self-Adaptive IoT-Systems with Support for Embedded Adaptive Hardware
    In: Future Generation Computer Systems Jg. 113 (2020) S. 607 - 619
  • 2019

  • Schiele, Gregor; Burger, Alwyn Johannes; Cichiwskyj, Christopher
    The Elastic Node: An Experimentation Platform for Hardware Accelerator Research in the Internet of Things
    In: Proceedings of the IEEE International Conference on Autonomic Computing / ICAC 2019; Umea; Sweden; 16 - 20 June 2019 2019, S. 84 - 94
  • 2018

  • Burger, Alwyn Johannes; Schiele, Gregor
    Demo Abstract : Deep Learning on an Elastic Node for the Internet of Things
    In: IEEE International Conference on Pervasive Computing and Communications Workshops / PerCom Workshops 2018; Athens; Greece; 19-23 March 2018 2018, S. 424 - 426
  • 2017

  • Burger, Alwyn Johannes; Cichiwskyj, Christopher; Schiele, Gregor
    Elastic Nodes for the Internet of Things : A Middleware-Based Approach
    In: 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 - 74