TinyML

Was ist TinyML?

Tiny Machine Learning (TinyML) ist ein Teilbereich des Machine Learning, der sich auf die Modellbereitstellung auf Microcontrollern und anderen stromsparenden Edge-Geräten konzentriert. Die Technologie ermöglicht die Nutzung von KI auf Endgeräten eines vernetzten Systems, indem sie latenzzeitarme, energieeffiziente und Echtzeit-Inferenzen direkt auf dem Gerät ermöglicht, ohne auf eine Cloud-Konnektivität angewiesen zu sein. Im Gegensatz zur breiteren Edge-KI, die leistungsstarke Edge-Server und IoT-Geräte umfassen kann, zielt TinyML auf Geräte am kleinsten Ende des Spektrums ab, die oft mit einem Energiebudget von wenigen Milliwatt arbeiten. Die Ingenieure in diesem Bereich befassen sich in erster Linie mit der Optimierung von Algorithmen und Modellen, um die Performance zu gewährleisten und gleichzeitig den Stromverbrauch und den Platzbedarf zu minimieren, was intelligente Funktionen in kleinsten Geräten und Sensoren ermöglicht.

Die wichtigsten Schritte innerhalb des TinyML-Workflows umfassen:

  • Modellentwicklung und Training: Trainieren Sie das von Ihnen gewählte Modell mithilfe von vorverarbeiteten Daten, indem Sie Techniken wie Transfer Learning oder Data Augmentation anwenden, um die gewünschte Genauigkeit zu erreichen und gleichzeitig die Einschränkungen des Zielgeräts zu berücksichtigen.
  • Optimierung und Bewertung der Modelle: Optimieren Sie das trainierte Modell für mehr Ressourceneffizienz, indem Sie Techniken wie Quantisierung, Pruning, Projektion und Datentypkonvertierung einsetzen. So reduzieren Sie die Speicher- und Rechenanforderungen ohne die Genauigkeit wesentlich zu beeinträchtigen.
  • Bereitstellung: Stellen Sie das optimierte Modell auf dem Zielgerät bereit und stellen Sie sicher, dass es Inferenzen in Echtzeit mit geringer Latenzzeit durchführen kann.
  • Tests und Validierung: Testen und validieren Sie das bereitgestellte Modell auf dem Zielgerät mithilfe repräsentativer Daten, um seine Leistung in realen Szenarien zu verifizieren und mögliche Probleme oder Einschränkungen zu ermitteln.
Eine mobile Roboter-Manipulator-Plattform, die KI-gestützte Echtzeit-Entscheidungen auf Edge-Geräten trifft, die möglicherweise durch den TinyML-Workflow ermöglicht werden.

MATLAB und Simulink unterstützen den gesamten TinyML-Workflow und ermöglichen so die Entwicklung, Tests und Bereitstellung von KI-basierten Systemen im Grenzbereich.

Ein Deep-Learning-Simulink-Block mit generiertem Code, der über ein imaginäres Kabel mit einem Microcontroller verbunden ist und den Prozess der Implementierung von TinyML-Anwendungen darstellt.

Automatische Codegenerierung von MATLAB und Simulink ermöglicht Rapid Prototyping und die Bereitstellung von TinyML-Anwendungen auf Embedded-Geräten, um die Kluft zwischen Theorie und Praxis zu überbrücken.

TinyML mit MATLAB und Simulink

MATLAB® bietet eine Programmierumgebung auf hoher Abstraktionsebene für das Prototyping und Experimentieren mit Machine-Learning-Algorithmen. Mit Simulink® steht eine Blockdiagrammumgebung für die Entwicklung und Simulation von Systemmodellen zur Verfügung, die die Iteration und Validierung vor dem Wechsel zur Hardware erleichtert. Im Folgenden werden einige Funktionen von MATLAB und Simulink beschrieben, die den TinyML-Workflow ermöglichen.

  1. Modellentwicklung und Training

    Zum Entwickeln und Trainieren von TinyML-Netzen können Sie MATLAB und Simulink verwenden, die über Apps und eine Hochsprache sowie eine Blockdiagramm-Modellierungsumgebung das Machine Learning und Deep Learning ermöglichen. Sie können den Netzimport aus TensorFlow™, PyTorch® und ONNX mit der Deep Learning Toolbox™ durchführen, um Ihre Netzentwicklung und Ihr Training zu beschleunigen.

  2. Modelloptimierung

    Mit der Deep Learning Toolbox können Sie Ihre Machine-Learning-Modelle für ressourcenbeschränkte Edge-Geräte optimieren. In MATLAB und Simulink stehen Ihnen verschiedene Tools zur Quantisierung, Projektion und zum Pruning von Modellen sowie zur Datentypkonvertierung zur Verfügung, mit denen Sie den Speicherbedarf und die Rechenanforderungen Ihrer Modelle reduzieren und gleichzeitig eine akzeptable Genauigkeit gewährleisten können. Dadurch wird eine effiziente Ausführung auf Geräten mit geringem Stromverbrauch ermöglicht, ohne die Leistung des Modells zu beeinträchtigen.

  3. Codegenerierung und -bereitstellung

    Sie können mithilfe des Embedded Coder® optimierten C/C++ Code aus Ihren trainierten Modellen generieren. Der generierte Code kann prozessorspezifische Optimierungen und Gerätetreiber umfassen, die direkt auf Microcontrollern oder Embedded Systems eingesetzt werden können, wodurch eine effiziente Bereitstellung von TinyML ermöglicht wird. MathWorks arbeitet mit seinen Partner-Halbleiterunternehmen zusammen, um eine breite Palette gängiger Microcontroller-Plattformen zu unterstützen, sodass es ein Leichtes ist, Ihre spezifische Hardware zu verwenden.

  4. Tests und Verifikation in Echtzeit

    Mit der Hardware-in-the-Loop-Simulation (HIL) können Sie Ihre TinyML-Modelle in Echtzeit simulieren und testen. Auf diese Weise können Sie die Performance Ihrer Modelle in einer virtuellen Echtzeitumgebung validieren, die Ihr physisches System abbildet, bevor Sie es auf der Hardware bereitstellen. MATLAB und Simulink ermöglichen die Simulations- und Implementierungsintegration, die durch gezielte Hardware Support Packages (HSPs) für zuverlässige und genaue Ergebnisse sorgt.

Siehe auch: AutoML, Embedded Systeme, Verifikation, Validierung und Test, Machine-Learning-Modelle, Deep-Learning-Modelle, MATLAB-Codegenerierung