Die Entwicklung von Edge-basierten Anwendungen für maschinelles Lernen wird jetzt viel einfacher
Die Entwicklung von maschinellem Lernen (ML) ist dank einer wachsenden Anzahl von ML-Entwicklungstools, insbesondere derjenigen von führenden Cloud-Service-Anbietern wie Amazon Web Services (AWS), Google und Microsoft, wesentlich leichter zugänglich geworden. Nun machen diese Tools die ML-Entwicklung zwar zugänglich, aber sie erleichtern nicht unbedingt die Implementierung von Edge-basierten Anwendungen für das Internet der Dinge (IoT), intelligente Häuser, industrielle Automatisierungssysteme und andere eingebettete Bereiche. Es gibt jedoch eine rasch wachsende Zahl von Hardware- und Software-Ressourcen, die sich mit den besonderen Anforderungen der Entwicklung von ML-Anwendungen für eingebettete Systeme befassen.
Ein Großteil des Schwerpunkts von „BigML“ liegt auf sehr großen Modellen und Anwendungen auf Unternehmensebene, die auf massiv skalierbaren Farmen von Grafikverarbeitungseinheiten (GPUs) und Servern laufen. Im Gegensatz dazu stellt „tinyML“ für Edge-Anwendungen eine ganz andere Problematik dar, die zum Teil auf die begrenzten Ressourcen von Mikrocontrollern (MCUs) und zum Teil auf die Echtzeitanforderungen der Anwendung zurückzuführen ist.
In der Vergangenheit wurden MCUs für relativ einfache Anforderungen an Speicher und Peripheriegeräte entwickelt. Für die meisten eingebetteten Anwendungen, bei denen die Zykluszeiten bestenfalls in Millisekunden gemessen wurden, war die Leistung oft kein großes Problem. Bei herkömmlichen eingebetteten Anwendungen sind die Anforderungen an robustere Ressourcen, Vernetzung und Leistung gestiegen. Darüber hinaus hat der wachsende Wunsch, ML-Algorithmen mit minimaler Latenzzeit in eingebetteten Anwendungen auszuführen, die Anforderungen und Erwartungen an moderne MCUs drastisch verändert. Die Halbleiterhersteller haben darauf mit fortschrittlichen MCUs wie den Crossover-MCUs i.MX RT1170 von NXP reagiert, die Funktionen und Fähigkeiten bieten, die vor nicht allzu langer Zeit noch als Merkmale der Serverklasse galten.
Eine leistungsfähige Hardwarebasis ist für die Implementierung einer ML-basierten eingebetteten Anwendung unerlässlich, aber die Bereitstellung einer solchen Anwendung hängt letztendlich von der Fähigkeit ab, die relativ umfangreiche Software, die für ML-basierte Edge-Lösungen erforderlich ist, erfolgreich zu entwickeln. Neben der Implementierung der Datenerfassungssoftware, die das Herzstück fast aller eingebetteten Systeme bildet, müssen die Entwickler auch ein geeignetes maschinelles Lernmodell erstellen, das auf repräsentativen Daten trainiert wird, und das entsprechende Inferenzmodell auf der MCU einsetzen (Abbildung 1).
Abbildung 1: Die Implementierung einer ML-basierten Anwendung für den Edge-Bereich fügt ML-spezifische Projektphasen hinzu, die die Entwicklung über die vertrauten Aufgaben hinaus erweitern, die für die Entwicklung sensorgestützter intelligenter Produkte erforderlich sind. (Bildquelle: NXP Semiconductors)
Für Embedded-Entwickler, die ML-basierte Anwendungen am Rande implementieren, lässt sich der zusätzliche Aufwand für die Erstellung von ML-Modellen auf vier Hauptaufgaben reduzieren:
- Definieren des Datensatzes: In diesem entscheidenden ersten Schritt entscheiden die Entwickler über die Datenquellen und die erforderlichen Merkmale, die für ihre Anwendung von Interesse sind.
- Definieren des Modells: Hier legen die Entwickler die Modelltopologie und die Hyperparameter fest, die für die Abstimmung des Modells erforderlich sind.
- Trainieren des Modells: Dieser rechenintensive Schritt wird normalerweise auf robusten Servern und GPU-Farmen durchgeführt.
- Generieren des Inferenzmodells: Vor dem eigentlichen Einsatz wandeln die Entwickler das Trainingsmodell in ein optimiertes Inferenzmodell (Schlussfolgerungsmodell) um, indem sie Modellmerkmale entfernen, die nur während des Trainings benötigt werden oder die nur wenig oder gar nichts zur Inferenz (Schlussfolgerung) beitragen.
Einzeln betrachtet, liegen diese Schritte durchaus im Rahmen der Möglichkeiten eines Embedded-Entwicklers. Bei der Implementierung der Sensoren und des Datenerfassungssystems weiß der Entwickler genug über die Daten, um die Rolle des Datenwissenschaftlers zu übernehmen, die bei ML-Anwendungen auf Unternehmensebene normalerweise erforderlich ist. Nach diesem ersten Schritt sind die Entwickler jedoch weitgehend auf sich allein gestellt, wenn es um Modelldefinition, Training und Konvertierung geht.
Frühe Anwender haben sich die Vorteile der schnell aufkommenden Technologie für die Erstellung von ML-Modellen, die für den Netzwerkrand (Edge) geeignet sind, schnell zunutze gemacht. Bibliotheken wie TensorFlow Lite bringen einen Großteil der Leistung von Googles Open-Source-TensorFlow-Ökosystem auf ressourcenbeschränkte mobile und Edge-Systeme. Entwicklungsbibliotheken wie der Common Microcontroller Software Interface Standard - Neural Network (CMSIS-NN) und das Software Development Kit (SDK) für neuronale Netze (NN) von Arm nutzen die Hardware-Fähigkeiten der Arm-GPUs und -CPUs (Central Processing Units). Tools wie der Glow ML Compiler von Facebook und der ONNX Runtime ML Optimizer von Microsoft unterstützen die Generierung von Inferenzmodellen. Für die Bereitstellung bietet spezialisierte Software wie die DeepViewRT-Inferenz-Engine von Au-Zone Technologies eine produktionsreife Inferenz-Engine, die die Modellkonvertierung vereinfacht.
Die hier erwähnte Software kratzt kaum an der Oberfläche der verfügbaren Softwarebibliotheken und -tools, die für die Entwicklung MCU-basierter ML-Anwendungen entwickelt wurden (oder an diese angepasst werden können). Einer der interessantesten Trends im Bereich Edge ML ist das Aufkommen von ML-Entwicklungslösungen direkt von MCU-Halbleiterherstellern.
Obwohl ML-Forscher vielleicht besser in der Lage sind, außergewöhnliche ML-Algorithmen zu entwickeln, ist der MCU-Anbieter in einzigartiger Weise qualifiziert, das technische Problem der Schaffung einer effektiven ML-Entwicklungsumgebung für ressourcenbeschränkte MCU-basierte Systeme zu lösen. Speziell für dieses Problem entwickelte Tools wie das eIQ Toolkit von NXP beschleunigen die Entwicklung von ML-Modellen, die auf MCUs laufen sollen (Abbildung 2).
Abbildung 2: Die Verfügbarkeit von Tools wie dem eIQ Toolkit von NXP hat die Entwicklung von MCU-basierten ML-Anwendungen für den Edge-Bereich drastisch vereinfacht. (Bildquelle: NXP Semiconductors)
Fazit
Aufgrund der besonderen Anforderungen von eingebetteten Geräten wird die Entwicklung von Edge-ML-Anwendungen vielleicht nicht die Art von schlüsselfertiger Bereitstellung erreichen, die für ML-Anwendungen auf Unternehmensebene angestrebt wird, aber sie erhält bereits die Art von Hardware- und Softwareunterstützung, die so viele intelligente Geräte ermöglicht hat.
Ich werde in einem kommenden Artikel auf die Edge-ML-Entwicklung und das ML-Ökosystem von NXP eingehen und zeigen, wie viel einfacher es geworden ist, ML-Anwendungen am Netzwerkrand einzusetzen. Es ist vielleicht noch nicht ganz schlüsselfertig, aber Edge ML wird immer zugänglicher und lässt sich leichter einsetzen.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum

