Page cover

Entwicklungsleitfaden für TinyML

Um die Entwicklung und Implementierung von TinyML Modellen zu erleichtern, wurden hier Entwicklungsrichtlinien erstellt, an denen sich bei der Entwicklung orientiert werden kann. Diese Richtlinien sollen als Wegweiser durch den Entwicklungsprozess dienen – von der Hardwareauswahl bis hin zum Überwachen der Modelle.

Der folgende "Entwicklungsleitfaden für TinyML" ist dazu gedacht, Entwicklern einen umfassenden Überblick über den Entwicklungsprozess von TinyML-Projekten zu geben. Diese können als Checkliste verwendet werden, um Entwicklern das Vorgehen der einzelnen Schritte zu vereinfachen. Sie beschreiben die wichtigsten Schritte, Methoden und Werkzeuge, die es in jedem Schritt des TinyML-Entwicklungsprozesses zu beachten gilt und dienen als Fortsetzung der Entwicklungsleitfaden für ML. Darüber hinaus beleuchten sie potenzielle Herausforderungen und geben Hinweise, wie diese effektiv bewältigt werden können. Um weitere Informationen zu den einzelnen Schritten zu erhalten, wird an den jeweiligen Stellen, auf die Kapitel in TinyML verwiesen. Ziel dieser Leitlinien ist es, die Realisierung von TinyML-Anwendungen zu vereinfachen und dabei zu unterstützen.

Schritt 1: Software- und Framework-Auswahl

Die Auswahl der geeigneten Software und Frameworks für TinyML bildet das Fundament für erfolgreiche Implementierungen auf Edge-Geräten. In diesem Schritt werden verschiedene Optionen für die Software- und Frameworksauswahl betrachtet.

Input

Anforderungen (verfügbare Ressourcen, Hardwarebeschränkungen, gewünschte Leistungsfähigkeit)

Output

Ausgewählte Software und best-geeignetes Framework

Methoden

Mögliche Probleme

  • Fehlende Kompatibilität mit Hardware

  • Mangelnde Unterstützung in der Entwicklercommunity

  • Probleme mit der Integration in bestehende Systeme

Schritt 2: Hardwareauswahl

Die Auswahl der passenden Hardwareplattform für ein Projekt erfordert eine gründliche Analyse verschiedener Faktoren. Zunächst sollte überprüft werden, ob bestehende Hardware verwendet werden kann, bevor neue Hardware angeschafft wird. Basierend auf den Inputs wird der Auswahlprozess durchgeführt, um die am besten geeignete Hardwareplattform zu finden, die den Outputkriterien entspricht.

Input

  • Projektziel, Anforderungen, Zweckdefinition

  • Kostenkalkulation

  • ML-Framework-Kompatibilität

  • Hardwareanforderungen (Rechenleistung, Speicher, Energieeffizienz, Sensorik, Betriebssysteme)

Output

Ausgewählte Hardwareplattform

Methoden

Mögliche Probleme

  • Fehlende Kompatibilität mit ML-Frameworks

  • Mangelnde Unterstützung in der Entwicklercommunity

  • Budgetüberschreitungen

  • Probleme mit Power Management (Energieeffizienz und Batterielaufzeit)

  • Herausforderungen bei der Sensorintegration (Treiber- und Kompatibilitätsprobleme)

  • Schwierigkeiten bei der Skalierbarkeit und Erweiterung (Ressourcenmangel und Leistung)

Schritt 3: Modellkomprimierung

Ziel ist es, das Modell effizienter zu gestalten und an die Zielhardware anzupassen. Als Output wird ein für die Zielhardware optimiertes Modell erwartet. Der Output wird anhand des Inputs generiert, beispielsweise anhand der Trainingsdaten. Die Komprimierung ist häufig mit der Konvertierung des Modells in ein für die Zielhardware optimiertes Format verknüpft. Dieser Prozess umfasst nicht nur die Reduzierung der Modellgröße und -komplexität, sondern oft auch die Anpassung des Modells an spezifische Hardwareanforderungen.

Input

  • Modellarchitektur

  • Trainingsdaten

  • Modellparameter

  • ML-Modelle

Output

  • Identifizierte rechenintensive Schichten

  • Quantisierte und beschnittene Modelle

  • Übertragenes Wissen und verbessertes Schülermodell

  • Optimiertes Modell für die Zielhardware

Methoden

Mögliche Probleme

Informationsverlust und potentielle Rechenungenauigkeit durch Komprimierung

Schritt 4: Konvertierung und Deployment

In diesem Schritt steht die Umwandlung und Integration des optimierten Modells in die Zielplattform im Mittelpunkt. Dabei werden das optimierte Modell, die Zielplattform und die Testdaten als Inputs benötigt. Das Ziel dieses Schrittes ist es, ein konvertiertes Modell im Zielformat zu erhalten, dieses in die Zielplattform zu integrieren und sicherzustellen, dass es effizient auf dieser läuft.

Input

  • Optimiertes Modell

  • Zielplattform

  • Testdaten

Output

  • Konvertiertes Modell im Zielformat

  • Integriertes Modell in die Zielplattform

  • Getestetes und validiertes Modell

  • Effiziente Modellausführung auf der Zielhardware

Methoden

  • Modellkonvertierung

    • Auswahl eines kompatiblen Formats für die Zielhardware

    • Verwendung von Konvertierungstools, bspw. bereitgestellt von ML-Frameworks

  • Softwareintegration in C++ oder Python

    • Einbindung des konvertierten Modells in die Softwarestruktur des Zielgeräts

  • Testen und Validieren

    • Testen und Validieren des Modells, um Leistungs- und Genauigkeitsanforderungen zu erfüllen

Mögliche Probleme

  • Inkompatibilität bei der Modellkonvertierung

  • Modellkomplexität

  • Komplexität der Softwareintegration

  • Herausforderungen beim Testen und Validieren

  • Kompatibilität der Modellschichten, bspw. werden nicht alle Schichten von TensorFlow Lite unterstützt

Schritt 5: MLOps für TinyML

MLOps (Machine Learning Operations) spielt eine Rolle bei der Verwaltung, Integration und Optimierung von Machine-Learning-Modellen in Produktionsumgebungen. Es kombiniert bewährte Praktiken aus der Softwareentwicklung und dem Operations Management, um den gesamten Lebenszyklus von ML-Modellen zu unterstützen. In diesem Abschnitt wird der Einsatz von MLOps im Kontext von TinyML erläutert, wobei insbesondere die speziellen Anforderungen an Edge-Geräte berücksichtigt werden.

Input

  • Metriken durch Projektziele

  • Machine-Learning-Modell

  • Entwicklungs- und Betriebsumgebungen (Edge- und IoT-Plattformen)

Output

  • Erfolgreich integriertes und optimiertes ML-Modell in der Produktionsumgebung

  • Kontinuierlich überwachte und skalierbare ML-Anwendung

  • Vorhersagen, erkannte Datendrifts und Benachrichtigungen

  • Verbesserte und aktualisierte Modelle

Methoden

  • Data Versioning, verwaltet Datensatzversionen für Reproduzierbarkeit

  • Feature Storing, speichert und verwaltet Features für Konsistenz

  • Model Versioning, verfolgt verschiedene Modellversionen

  • Experiment Tracking, verfolgt Experimente für Vergleichbarkeit

  • CI/CD, automatisiert Modellintegration und Bereitstellung

  • Continuous Monitoring, überwacht Modellleistung in Produktion

Mögliche Probleme

  • Komplexe CI/CD-Automatisierung für ML-Modelle

  • Unzureichende Überwachung führt zu Modellverschlechterung in Produktion

  • Einhaltung von Datenschutz- und Sicherheitsstandards

  • Herausfordernde interdisziplinäre Zusammenarbeit zwischen Teams

  • Komplexität beim Experiment Tracking und Modellmanagement

Last updated