Künstliche Intelligenz

Machine Learning auf Edge-Geräten

20. Juli 2023, 11:00 Uhr | Von Reinhard Keil und Matthias Hertel
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Entwicklungsprozess im MLOps-Workflow

Das Software- und Systemdesign eines eingebetteten IoT- und ML-Geräts kann in zwei Phasen gegliedert werden:

  • Die klassische eingebettete IoT-Software, die effiziente Gerätetreiber mit Schnittstellen zu Peripheriegeräten, einen Kommunikationsstack mit Sicherheitsfunktionen und Firmware-Aktualisierungsdienste erfordert.
  • Den Systemteil, der den maschinellen Lernalgorithmus implementiert. Der ML-Teil wird häufig unter Verwendung von Software-as-a-Service(SaaS)-Cloud-Umgebungen entwickelt, die auf die Entwicklung von ML-Algorithmen spezialisiert sind.

passend zum Thema

Schlüsselphasen eines MLOps-Entwicklungsprozesses. (*) kennzeichnet die Phasen, die die endgültige Hardware oder ein Hardwaremodell betreffen
Bild 2. Schlüsselphasen eines MLOps-Entwicklungsprozesses. (*) kennzeichnet die Phasen, die die endgültige Hardware oder ein Hardwaremodell betreffen.  
© Arm

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:

  • Data Collection: Die Daten sind die Grundlage für den Lernvorgang. Sie müssen so viele Szenarien wie möglich abdecken und so genau wie möglich sein, um ein leistungsfähiges Modell zu erhalten.
  • Data Analysis: Sie erfordert ein Verständnis der Szenarien, die in der Datenerfassung aufgezeichnet wurden. Es kann erforderlich sein, die Daten zu reduzieren oder zu bereinigen, bevor man zum nächsten Schritt übergeht, da die erfassten Daten eine Mischung von Szenarien enthalten können.
  • Data Labeling: Die Kategorisierung der gesammelten und bereinigten Daten. Die Daten eines Fitness-Trackers könnten beispielsweise mit »Gehen«, »Laufen« und »Ruhen« kategorisiert werden, um die Aktivität zu beschreiben.
  • Data Preparation: Die gesammelten Daten werden für das Modelltraining aufbereitet. Die Daten können auch in Testdaten (für erste Tests), Validierungsdaten und Trainingsdaten unterteilt werden, die in der Regel den größten Datensatz darstellen.
  • Model Training: Bei diesem Prozess werden ein oder mehrere Algorithmen für maschinelles Lernen mit Trainingsdaten gespeist, aus denen sie lernen können.
  • Model Evaluation: Bei diesem iterativen Prozess stehen mehrere Algorithmen zur Auswahl, um den besten ML-Algorithmus für ein bestimmtes Problem zu ermitteln.
  • System Validation: Der ML-Algorithmus wird zusammen mit den Modelldaten auf dem Zielsystem getestet. Die Überprüfung des ML-Algorithmus kann mit einem reduzierten Satz von Validierungsdaten durchgeführt werden.
  • Model Deployment: die Integration des ML-Algorithmus zusammen mit den Modelldaten in das endgültige Zielsystem, das in unserem Fall eine eingebettete IoT-Anwendung ist.

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.

ML-Softwarekomponenten nutzen

sammen mit seinen Partnern aus dem Ökosystem bietet Arm einen umfangreichen Satz von Softwarekomponenten für die Erstellung und Verifizierung von ML-Anwendungen an:

  •  TensorFlow Lite – wurde entwickelt, um ML-Algorithmen auf Mikrocontrollern und anderen anderen Geräten mit wenigen Kilobytes Speicher auszuführen [5].
  • CMSIS-NN – stellt Kernel für neuronale Netze bereit, die für Cortex-M-Prozessorkerne optimiert sind [6].
  • Ethos-U-Treiber beschleunigen die Algorithmen, wenn der Mikrocontroller über eine Ethos-U55/65 micro Neural Processing Unit (microNPU) verfügt.
  • Der »Model Zoo« ist eine Sammlung von Machine-Learning-Modellen, die für Arm-IP optimiert sind und als Grundlage für ML-Beispiele dienen.

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.

Erfassung von Trainingsdaten

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:

  • SDS-Recorder Interface: bietet Methoden zur Aufzeichnung von Signalen und Daten in SDS-Datendateien zur Analyse und Entwicklung von DSP- und ML-Algorithmen.
  • SDS-Metadaten: beschreiben den Inhalt von SDS-Datendateien zusammen mit Skalierungs- und Formatierungsinformationen.
  • SDS-Utilities: Werkzeuge zur Aufzeichnung, Konvertierung und Anzeige von SDS-Datendateien.
  • SDS-Playback: Die Verwendung von Arm Virtual Hardware mit den Virtual Streaming Interfaces (VSI) ermöglicht es, einen in Entwicklung befindlichen Algorithmus mit realen Daten zu stimulieren.
Die SDS-Recorder-Schnittstelle wird verwendet, um Daten aus der realen Welt mit den Sensoren des endgültigen Hardware-Ziels zu erfassen. Sie wird über verschiedene Kanäle angeschlossen und kann auch in eingesetzte IoT-Endgeräte eingebettet werden
Bild 3. Die SDS-Recorder-Schnittstelle wird verwendet, um Daten aus der realen Welt mit den Sensoren des endgültigen Hardware-Ziels zu erfassen. Sie wird über verschiedene Kanäle angeschlossen und kann auch in eingesetzte IoT-Endgeräte eingebettet werden.
© Arm

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 von SDS-Daten-Dateien; sie wird verwendet, um aussagekräftige Informationen anzuzeigen und Kontext für MLOps-Systeme bereitzustellen
Bild 4. Die SDS-Metadaten-Datei liefert Informationen über den Inhalt von SDS-Daten-Dateien; sie wird verwendet, um aussagekräftige Informationen anzuzeigen und Kontext für MLOps-Systeme bereitzustellen.
© Arm

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:

  • Input für Entwicklungswerkzeuge für die digitale Signalverarbeitung (DSP), z. B. für Filterdesigner
  • Input für die Klassifizierung, das Training und die Leistungsoptimierung von Modellen des maschinellen Lernens (ML)
  • Verifizierung der Ausführung von DSP-Algorithmen auf Cortex-M-Targets mit Offline-Tools
  • Wiedergabe von realen SDS-Datendateien zur Validierung von Algorithmen mit Arm Virtual Hardware

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.

AVH bietet virtuelle Streaming-Schnittstellen, die zur Wiedergabe von SDS-Daten durch einen in Entwicklung befindlichen Algorithmus verwendet werden können – nützlich für iterative Validierungstests oder die Überprüfung von ML-Modellen
Bild 5. AVH bietet virtuelle Streaming-Schnittstellen, die zur Wiedergabe von SDS-Daten durch einen in Entwicklung befindlichen Algorithmus verwendet werden können – nützlich für iterative Validierungstests oder die Überprüfung von ML-Modellen.
© Arm

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.

Sensoren können unabhängige Taktquellen mit Toleranzen haben, die unterschiedlich große Datensätzen für blockorientierte Algorithmen hervorbringen
Bild 6. Sensoren können unabhängige Taktquellen mit Toleranzen haben, die unterschiedlich große Datensätzen für blockorientierte Algorithmen hervorbringen.
© Arm

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.


  1. Machine Learning auf Edge-Geräten
  2. Entwicklungsprozess im MLOps-Workflow
  3. MLOps mit TDK Qeexo AutoML

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ARM Germany GmbH

Weitere Artikel zu Künstliche Intelligenz (KI)

Weitere Artikel zu Machine Learning

Weitere Artikel zu Entwicklungswerkzeuge