Wie reif ist KI für Anwendungen in IoT, Automotive oder Industrie?

| Autor / Redakteur: Markus Levy * / Sebastian Gerstl

KI, neuronale Netze und klassische Machine-Learning-Algorithmen gibt es schon seit Jahrzehnten, doch erst in den letzten drei Jahren wurden sie um ein Vielfaches weiterentwickelt.
KI, neuronale Netze und klassische Machine-Learning-Algorithmen gibt es schon seit Jahrzehnten, doch erst in den letzten drei Jahren wurden sie um ein Vielfaches weiterentwickelt. (Bild: Gerd Altmann auf Pixabay / Pixabay)

In den letzten drei Jahren hat die praktische Anwendbarkeit von künstlicher Intelligenz massive Fortschritte gemacht. Diese Entwicklung ist angetrieben durch die rasante Ausbreitung in IoT, Industrie und Automotive. Edge-KI-Technologien sind dabei insbesondere für Vision- und Voice-Anwendungen sowie die sensorgestützte Anomalie-Erkennung interessant.

Mehr als sechs Jahrzehnte lang war die KI im Bereich der Mathematik zuhause, ehe plötzlich das öffentliche Interesse erwachte. Das lag auch daran, dass Betrachtungen zu möglichen KI-Anwendungen lange rein theoretischer Natur waren, zumindest aber als „Science Fiction“ galten. Bevor Anwendungsfälle der Künstlichen Intelligenz in die Realität umgesetzt werden konnten, waren diese drei Voraussetzungen zu erfüllen:

  • Eine gute Abbildung der Eigenschaften und Funktionsweise biologischer Informationsverarbeitung
  • Sehr große reale Datensätze
  • Die Fähigkeit, diese riesigen Datenmengen in angemessener Zeit zu verarbeiten

Sie mag für viele noch wie Science Fiction anmuten, doch die Künstliche Intelligenz, wie wir sie heute kennen, ist real - und sie kann sich nachhaltig und positiv auf unser tägliches Leben auswirken. Die Cloud gilt zwar als Schwerpunkt der KI-Technologie, doch hält immer mehr Intelligenz Einzug in die Netzwerkperipherie (Edge), inklusive Anbindung an die physikalische Welt; hier spricht man von „Edge-KI“. Fachexperten assoziieren KI gerne mit der biologischen Abbildung des menschlichen Gehirns, doch der Weg dorthin ist immer noch weit. Trotzdem hat die KI dank hochentwickelter Trainings- und Lernmethoden dem menschlichen Gehirn sogar etwas voraus, beispielsweise eine quasi unbegrenzte Speicherkapazität.

Zusätzliche Treiber für dieses Edge-KI-Paradigma sind die Generierung nahezu unbegrenzter Datenmengen sowie die zunehmende Verfügbarkeit von Rechenressourcen, selbst auf Mikrocontroller-Ebene. Mithilfe von Edge-KI lassen sich Latenzen bei der Datenübertragung in die Cloud erheblich verringern oder sogar eliminieren und datenschutzrechtliche Bedenken ausräumen. Hochentwickelte Rechenressourcen mit KI-Beschleunigungstechniken unterschiedlicher Ausprägung spielen dabei eine wesentliche Rolle und sollten auch nicht als selbstverständlich betrachtet werden. Doch der Schlüssel zum vollen Potential der KI ist Software. Wenn genügend Rechenressourcen zur Verfügung stehen, ermöglichen optimierte Algorithmen, Softwaretools und Frameworks, die diese Technologien unterstützen, die praktische Umsetzung der Künstlichen Intelligenz.

Software – der Schlüssel zum Maschinellen Lernen am Edge

Um den großflächigen Einsatz über eine Vielzahl von Anwendungsbereichen zu ermöglichen, gilt es, die Edge-KI über ihren mathematischen Unterbau hinaus zu abstrahieren. Sie sollte über Cloud-Services vereinfacht werden, mit denen Modelle trainiert und Inferenzmaschinen über eine leicht bedienbare Webschnittstelle entwickelt und umgesetzt werden können; so muss der Entwickler keine komplexen mathematischen Algorithmen erzeugen. Es gibt bereits zahlreiche „Programmier“-Funktionen, und viele neue werden hinzukommen. Die Programmierung für KI – häufig als Software 2.0 bezeichnet – basiert jedoch nicht auf herkömmlichen Programmiermethoden, sondern vielmehr auf der Nutzung neuronaler Netze und klassischer ML-Bibliotheken (z.B. Google TensorFlow). Bei der Software 2.0 Programmierung geht es darum, Gewichtungen und Parameter zu bestimmen und zu optimieren (z.B. Trainingsmodelle).

Der immer größere Umfang an Funktionen (meist Open-Source) deutet darauf hin, dass Edge-KI auf dem Vormarsch ist. Auch die weitere Ausbreitung der Softwaretechnologien für Edge-KI geht unaufhaltsam voran. Diese Ausbreitung spiegelt sich auf verschiedenen Ebenen wider, z.B. Model-Frameworks, Inferenzmaschinen, Optimierung neuronaler Netze, Konvertierungstools und Data-Augmentation-Techniken (für Trainingszwecke).

Modell-Formate

TensorFlow hat in Sachen Popularität und Funktionalität die Nase vorne (und ist inzwischen ein Industriestandard), doch läuft ihm sein kleiner Bruder TensorFlow Lite besonders im Mobile- und Edge-Bereich allmählich den Rang ab. Inzwischen gibt es sogar Übersetzungstools für die Konvertierung von TensorFlow-Modellen in das TensorFlow Lite Format. Bei der Konvertierung ist jedoch Vorsicht geboten, denn die Lite-Version unterstützt nicht den gesamten Operationsumfang, was in einigen neuronalen Netzarchitekturen zu Funktionsstörungen führen kann.

Es gibt Konvertierungstools, die den Wechsel von nahezu allen anderen Frameworks unterstützen, z.B. MXNet, PyTorch, Caffe 2, Keras, etc. Anwender können mithilfe dieser Tools zu ihren bevorzugten Formaten wechseln, z.B. von TensorFlow zu ONNX (Open Neural Net Exchange Format) oder NNEF (Neural Network Exchange Format); beides sind Industrienormen und sollen die Fragmentierung reduzieren.

Inferenzmaschinen

Bild 1: Beispiel eines Toolkits für die Nutzung von KI in Edge-Geräten.
Bild 1: Beispiel eines Toolkits für die Nutzung von KI in Edge-Geräten. (Bild: NXP)

Auch bei Interferenzmaschinen gibt es je nach Zielapplikation zahlreiche Open-Source-Funktionen. Für Anwender, die mit ARM-basierten Plattformen arbeiten (mobil oder embedded), parst und übersetzt ARM NN Frameworks für neuronale Netze in eine leistungsstarke Inferenzmaschine und übernimmt mithilfe der ARM Compute Library (ebenfalls Open-Source) die optimierten Softwarefunktionen (siehe Bild 2).

Mit ARM NN lässt sich ein neuronales Netzmodell auf drei Arten umsetzen. Zum einen durch die Anbindung an ARM NN über High-Level-Frameworks (z.B. TensorFlow) - die Software parst das Modell zuerst in ein Grafikformat und zeigt die Netzwerkoperationen auf, die sich über die ARM Compute Library (ACL) umsetzen lassen. Zum anderen kann sich der Anwender auch mit einer vorhandenen Inferenzmaschine verbinden und dabei je nach Bedarf geeignete Bibliotheksfunktionen der ACL übernehmen. Oder die Anwendung ruft die ACL direkt auf; dies bedeutet jedoch etwas mehr Aufwand für den User.

Aspekte der Edge-KI-Hardware

Beim Entwurf von Edge-KI-Hardware sind drei Faktoren abzugleichen: Kosten, Entscheidungsgenauigkeit und Inferenzzeit. Bei einem Embedded-Design müssen sich Systementwickler in jedem Fall mit dem Kostenfaktor auseinandersetzen. Beim Entwurf von Edge-KI gibt es jedoch spezielle Faktoren, die sich gegenseitig bedingen - Genauigkeit und Inferenzzeit. Höhere Genauigkeit bezieht sich auf die „Entscheidung“, die das System treffen muss, und impliziert mehr Trainingszeit, die erforderlich ist, wenn mehr Daten für das Training verwendet werden müssen. Wenn höhere Genauigkeit gefordert ist, sind häufig auch komplexere KI-Modelle vonnöten. Dies treibt die Kosten in die Höhe, denn man braucht leistungsfähigere Geräte, mehr Speicher und letztlich mehr Energie. Die Inferenzzeit (d.h. User Experience) ist die Zeit, die das System für eine Entscheidung benötigt – je schneller diese getroffen werden soll, desto mehr Leistungsfähigkeit ist erforderlich.

Bild 2: ARM NN bietet drei Methoden zur Umsetzung eines trainierten neuronalen Netzmodells
Bild 2: ARM NN bietet drei Methoden zur Umsetzung eines trainierten neuronalen Netzmodells (Bild: ARM)

Bei KI-Anwendungen gilt es also, Kosten, Genauigkeit und Inferenzzeit aufeinander abzustimmen. Beispiel: Bei einer Anwendung zur Eintrittserkennung für Haustiere liegt eine Inferenzzeit zwischen 200 und 500 ms in einem akzeptablen Bereich; dies lässt sich gut über einen leistungsfähigen Mikrocontroller bewerkstelligen. Türklingel-Sicherheitssysteme - eine inzwischen weit verbreitete Anwendung – kommen mit Inferenzzeiten in derselben Größenordnung wie ein Mikrowellengerät aus. Hier erfasst eine Kamera das Gesicht einer Person; das Edge-KI-System erkennt das Gesicht in weniger als einer Sekunde und klassifiziert es als Freund oder Feind (bzw. unbekannt). Dabei spielt jedoch die Genauigkeit eine wichtige Rolle – keiner will letztlich aus seinen vier Wänden ausgesperrt werden oder gar den „Feind“ einlassen. Eine höhere Genauigkeit und mehr entscheidbare Klassifizierungen (z.B. bestimmte Lebensmittel, Gesichter, etc.) können nicht nur den Speicherbedarf erhöhen, sondern auch zu mehr Rechenvorgängen führen und somit einen leistungsfähigeren Anwendungsprozessor erfordern, um akzeptable Inferenzzeiten zu erzielen. Die Sicherheitstürklingel ist ein gutes Beispiel für ein Produkt, das in verschiedenen Ausprägungen (Low- und High-End) angeboten wird; der Unterschied liegt darin, wie viele Gesichter innerhalb des akzeptablen Zeitfensters erkannt werden.

Für bestimmte lebensentscheidende Szenarien sind die Anforderungen an Edge-KI wesentlich strikter (Anwendungen wie z.B. autonomes Fahren); hier müssen in jeder Sekunde viele präzise Entscheidungen gleichzeitig getroffen werden. Ein weiteres Edge-KI-Beispiel ist die Überwachung des Fahrers über dessen Auge – eine Echtzeitfunktion, die hochleistungsfähige Rechenvorgänge über einen Anwendungsprozessor erfordert. Edge-KI-Anwendungen haben also sehr unterschiedliche Anforderungen an die Rechenleistung, die sich mit verschiedenen Prozessoren erfüllen lassen – von MCUs bis hin zu High-End-Anwendungsprozessoren. Unter dem Strich ist und bleibt jedoch immer die Software der Schlüssel zum Machine Learning am Edge.

Immer mehr Möglichkeiten – obwohl wir erst am Anfang stehen

Das Problem für den Einsatz von KI in Edge-Devices ist nicht die Komplexität, doch es kommen täglich mehr und mehr Funktionen hinzu. Wir werden immer auf Mathematiker angewiesen sein, die sich um die komplexen Funktionen neuronaler Netze kümmern, z.B. das effiziente Optimieren hochentwickelter neuronaler Netze oder das Erstellen besserer und schnellerer Methoden zum präzisen Trainieren von Modellen. Bei der Entwicklung von Edge-KI-Produkten benötigen Embedded-Systementwickler Software 2.0 Tools, um eine umfassende ML-Entwicklungsumgebung zu schaffen (z.B. NXP eIQ). Solche Umgebungen sind individuell auszurichten, nicht nur was die Recheneinheiten angeht (z.B. Prozessorkerne, KI-Beschleuniger), sondern auch auf SoC-Architekturebene, um größtmöglichen Erfolg bei der Implementierung zu gewährleisten.

Uns stehen spannende Zeiten bevor – und immer mehr Entwickler erkennen, dass die Möglichkeiten des Machine Learnings einen erheblichen Mehrwert für ihre Produkte bedeuten.

Dieser Beitrag stammt aus dem Tagungsband des Embedded Software Engineering Kongress 2018 und wird hier mit freundlicher Genehmigung des Autors veröffentlicht. Übersetzung: Sabine Pagler.

* Markus Levy ist Director of Enabling Technologies bei NXP.

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45910382 / KI/Machine Learning)