ML-Software-Stacks und Mikrocontroller mit AI-Hardware vereinfachen die Implementierung des maschinellen Lernens. Damit sind selbst Bilderkennung oder Sensorfusion auf »kleinen« Systemen möglich. Doch wie wählt man den passenden Prozessors und geeignete Algorithmen aus?
Das Software- und Systemdesign eines eingebetteten IoT- und ML-Geräts kann in zwei Phasen gegliedert werden:
Maschinelles Lernen wird passenderweise mit einem MLOps-Workflow implementiert. MLOps besteht aus einer Reihe von Schritten für die Entwicklung, den Einsatz und die Wartung von Modellen für maschinelles Lernen in Produktionsgeräten. Bild 2 zeigt die wichtigsten Phasen eines MLOps-Entwicklungsprozesses:
Modelle für maschinelles Lernen werden normalerweise in isolierten Systemen getestet und entwickelt. Das Training des ML-Modells findet meist in der Cloud statt, da sowohl ein umfangreicher Datensatz als auch eine hohe Rechenleistung Voraussetzung sind. Die Ausführung des Algorithmus auf der Grundlage des ML-Modells kann dann direkt auf dem IoT-Endgerät erfolgen.
So wie der Mensch aus Erfahrungen lernt, verbessern auch die Algorithmen des maschinellen Lernens ihre Leistung adaptiv, wenn die Zahl der für das Lernen verfügbaren Daten steigt. Richtige Entscheidungen können nur in Bereichen getroffen werden, in denen Trainingsdaten vorhanden sind [4]. »Lernen« bedeutet also, dass ML-Algorithmen auf der Grundlage neuer Daten, die neue »Erfahrungen« liefern, neu trainiert werden. In Bereichen, in denen nicht genügend Trainingsdaten vorhanden sind, können keine korrekten Entscheidungen getroffen werden. Wenn zum Beispiel eine Bilderkennungsanwendung das Bild einer Katze nie »gesehen« hat, kann sie nicht korrekt erkannt werden. Es ist also zu erwarten, dass Systeme mit KI- und ML-Technologie regelmäßig aktualisiert werden müssen.
sammen mit seinen Partnern aus dem Ökosystem bietet Arm einen umfangreichen Satz von Softwarekomponenten für die Erstellung und Verifizierung von ML-Anwendungen an:
Dieser ML-Software-Stack kann auf verschiedenen Zielsystemen ausgeführt werden. Für das Prototyping mit neuer Prozessortechnologie bietet Arm die Referenz-SoC-Designs Corstone-300 und Corstone-310 an. Dies sind Prozessor-Subsysteme, die einen Cortex-M55- oder Cortex-M85-Prozessor zusammen mit einer Ethos-U55 microNPU enthalten.
Für den effektiven Einsatz von ML-Algorithmen ist ein umfangreicher Satz an Trainingsdaten erforderlich. ML-Algorithmen können schrittweise eingeführt werden, wobei zunächst ein klassischer Algorithmus eingesetzt wird, mit dem Trainingsdaten erfasst werden. Der Einsatz einer größeren Menge von IoT-Geräten, die solche Daten erfassen, ist daher von unschätzbarem Wert.
Um reale Daten von Sensoren und Audioquellen zu erfassen, entwickelte Arm das Synchronous Data Stream (SDS) Framework [6]. Es besteht aus mehreren Komponenten:
Die SDS-Recorder-Schnittstelle ist für die Aufzeichnung von Daten aus der realen Welt in SDS-Datendateien konzipiert (Bild 3). Der SDS-Recorder ist ein integraler Bestandteil der Zielanwendung und ermöglicht das Daten-Streaming über verschiedene Schnittstellen wie TCP/IP über Ethernet, UART oder USB. Er kann auch dazu verwendet werden, Daten in einem eingesetzten IoT-Endgerät zu erfassen, um Situationen zu melden, in denen das aktuelle ML-Modell Lücken in den Trainingsdaten aufweist.
Die SDS-Metadaten-Datei liefert Informationen über den Inhalt der SDS-Datendateien (Bild 4). Diese Metadaten werden verwendet, um dem Benutzer aussagekräftige Informationen anzuzeigen. Sie identifiziert auch die Datenströme für Eingaben in DSP-Design-Dienstprogramme, MLOps-Entwicklungs-Workflows oder AVH-Datenwiedergabe. Die SDS-Datendateien haben mehrere Verwendungszwecke wie zum Beispiel:
Arm Virtual Hardware (AVH) ist in mehreren Formen verfügbar: GitHub, TDK Qeexo AutoML, Keil Studio Cloud und AWS AMI für flexiblen Cloud-Zugriff. In der Desktop-Version von Keil MDK unterstützt sie die Entwicklung von Testfällen und die Verifikation von Algorithmen.
Mit DevOps-Systemen [7] wie GitHub-Aktionen unterstützt es kontinuierliche Integrations-Workflows für Build- und Testautomatisierung. SDS-Dateien können als Input für Validierungstests verwendet werden (Bild 5). AVH unterstützt auch A/B-Vergleiche von ML-Algorithmen und hilft somit bei der Auswahl des besten passenden Algorithmus für eine Anwendung. Da es Teil einiger MLOps-Systeme ist, hilft es bei der Validierung von ML-Modellen, bevor diese auf physischen Hardware-Geräten eingesetzt werden.
Das SDS-Framework ist so konzipiert, dass es auch Sensorfusion unterstützt, bei der die Daten mehrerer Quellen kombiniert werden. So könnte es beispielsweise sinnvoll sein, ein Audiosignal mit den Informationen eines MEMS-Sensors zu kombinieren, um eine bessere Vorhersage von Maschinenausfällen zu bekommen. Bei der Kombination von Daten aus mehreren Quellen sollten jedoch die Toleranzen der unabhängigen Taktquellen berücksichtigt werden (Bild 6). Das SDS-Framework enthält Mechanismen, um solche Situationen zu bewältigen, und stellt unabhängige Taktinformationen für mehrere Datenströme bereit.