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 Embedded 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.
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.
- 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.
- 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.
- 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. - 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.
Beispiele und Erläuterungen
Software-Referenz
tinyML FAQs
tinyML ist ein Teilbereich des Machine Learning, der sich auf die Bereitstellung von Modellen auf Microcontrollern und anderen stromsparenden Edge-Geräten konzentriert und Echtzeit-, energieeffiziente Inferenz direkt auf dem Gerät ermöglicht, ohne auf Cloud-Konnektivität angewiesen zu sein. Es richtet sich an Geräte am kleinsten Ende des Spektrums, die häufig mit Milliwatt-Leistungsbudgets arbeiten.
tinyML bringt KI an den Rand eines vernetzten Systems, um Echtzeit- und latenzarme Inferenz auf energiearmen Geräten zu ermöglichen, während traditionelles Machine Learning typischerweise auf Cloud-Konnektivität und leistungsstarke Server angewiesen ist. Im Gegensatz zur weiter gefassten eingebetteten KI richtet sich tinyML speziell an die kleinsten Geräte mit Milliwatt-Leistungsbudgets.
Die wesentlichen Phasen umfassen Modellentwicklung und -training, Modelloptimierung und -bewertung mithilfe von Techniken wie Quantisierung und Pruning, die Bereitstellung auf dem Zielgerät sowie Tests und Validierung mit repräsentativen Daten, um die Leistung in der realen Welt zu überprüfen.
Gängige Optimierungstechniken umfassen Quantisierung, Pruning, Projektion und Datentypkonvertierung, um Speicher- und Rechenanforderungen zu reduzieren, ohne signifikante Genauigkeit zu opfern. Diese Techniken ermöglichen eine effiziente Ausführung auf energiearmen Geräten bei gleichzeitig akzeptabler Modellleistung.
Ja, MATLAB und Simulink unterstützen den gesamten tinyML-Workflow — von Modellentwicklung und -training über Optimierung und Codegenerierung bis hin zur Bereitstellung auf Embedded-Geräten. Sie ermöglichen die automatische Codegenerierung mit prozessorspezifischen Optimierungen für Mikrocontroller und eingebettete Systeme.
tinyML-Modelle laufen auf Microcontrollern und anderen stromsparenden Edge-Geräten am kleinsten Ende des Spektrums und arbeiten typischerweise mit Milliwatt-Leistungsbudgets. MATLAB und Simulink unterstützen durch Partnerschaften mit Halbleiterherstellern eine breite Palette populärer Mikrocontrollerplattformen.
Embedded Coder erzeugt aus trainierten Modellen optimierten C/C++-Code, einschließlich prozessorspezifischer Optimierungen und Gerätetreiber, die direkt auf Microcontrollern oder eingebetteten Systemen bereitgestellt werden können. Dies überbrückt die Lücke zwischen Theorie und Praxis für eine effiziente tinyML-Bereitstellung.
Ja, Hardware-in-the-Loop-Simulation (HIL) ermöglicht Echtzeit-Tests und Validierung von tinyML-Modellen in einer virtuellen Umgebung, die das physische System vor der Bereitstellung abbildet. MATLAB und Simulink ermöglichen die Integration zwischen Simulation und Bereitstellung durch gezielte Hardware-Support-Pakete.
Siehe auch: Embedded Systems, AutoML, Embedded Systems, Verifikation, Validierung und Test, Machine-Learning-Modelle, Deep-Learning-Modelle, MATLAB-Codegenerierung