Was ist TinyML? – Grundlagen und ein Praxisbeispiel

TinyML (Tiny Machine Learning) bezeichnet die Ausführung von Machine-Learning-Modellen auf sehr ressourcenbeschränkten Mikrocontrollern – also genau auf der Hardware, mit der wir im Embedded-Bereich täglich arbeiten. Statt Cloud-Servern oder leistungsfähigen Linux-Systemen laufen die Modelle direkt auf einem MCU mit wenigen 10–100 kB RAM und einigen 100 kB Flash.

Meine Empfehlung

Das Ziel:
👉 KI-Funktionalität mit minimalem Stromverbrauch, niedriger Latenz und ohne Cloud-Anbindung.


Warum TinyML?

Für klassische Machine-Learning-Anwendungen werden oft Systeme wie ein Raspberry Pi 4 oder leistungsstarke PCs verwendet. In vielen Embedded-Anwendungen ist das jedoch:

  • zu teuer
  • zu energiehungrig
  • zu groß
  • nicht echtzeitfähig genug
  • oder aus Datenschutzgründen ungeeignet

TinyML bringt ML-Modelle auf typische Mikrocontroller wie:

  • ESP32
  • STM32F4
  • Arduino Nano 33 BLE Sense

Typische Anwendungsfälle

TinyML eignet sich besonders für:

  • Keyword-Spotting („Hey Gerät“)
  • Vibrationsanalyse (Predictive Maintenance)
  • Gestenerkennung mit IMU
  • Anomalieerkennung
  • Einfache Bildklassifikation (z. B. 96×96 Pixel)

Wie funktioniert TinyML?

Der typische Workflow:

  1. Datensammlung
    Sensordaten aufnehmen (z. B. Beschleunigung, Audio, Temperatur)
  2. Training am PC/Cloud
    Das Modell wird nicht auf dem Mikrocontroller trainiert, sondern z. B. mit:
    • TensorFlow
    • Edge Impulse
  3. Quantisierung & Konvertierung
    Das trainierte Modell wird in ein kompaktes Format umgewandelt (meist INT8).
  4. Deployment mit TensorFlow Lite for Microcontrollers
    Hier kommt TensorFlow Lite for Microcontrollers ins Spiel.
    Es erlaubt die Inferenz auf Systemen mit < 100 kB RAM.

Technische Grundlagen

1. Speicheranforderungen

Ein typisches TinyML-Modell benötigt:

  • 10–50 kB Flash
  • 2–20 kB RAM
  • Keine dynamische Speicherverwaltung
  • Keine FPU zwingend erforderlich

2. Quantisierung

Statt 32-bit-Floats werden oft 8-bit-Integer verwendet.

Vorteile:

  • 4× weniger Speicher
  • Schnellere Inferenz
  • Geringerer Stromverbrauch

3. Inferenz statt Training

Wichtig:
Auf dem Mikrocontroller läuft nur die Inferenz, also die Anwendung eines bereits trainierten Modells.


Mini-Praxisbeispiel: LED-Helligkeit per TinyML vorhersagen

Wir erstellen ein extrem einfaches Modell:

Aufgabe:
Das Modell soll lernen:

y = 2x

Später soll der Mikrocontroller einen ADC-Wert einlesen und daraus eine PWM-Helligkeit berechnen – aber nicht per Formel, sondern per TinyML-Modell.


Schritt 1 – Modell in Python trainieren


Schritt 2 – Integration in Mikrocontroller-Projekt

Das .tflite-Modell wird in ein C-Array konvertiert:

xxd -i model.tflite > model_data.cc

Schritt 3 – Inferenz-Code (stark vereinfacht)


Typische Stolperfallen

  • Tensor Arena zu klein → HardFault
  • Falsche Quantisierung → schlechte Ergebnisse
  • Zu große Modelle → Flash voll
  • Floating Point ohne FPU → langsam

Welche Boards eignen sich besonders?

Sehr beliebt im TinyML-Bereich:

  • Arduino Nano 33 BLE Sense – viele Sensoren integriert
  • ESP32-S3 – KI-Beschleunigung
  • STM32H7 – viel RAM

Vorteile von TinyML

✅ Keine Cloud nötig
✅ Sehr niedriger Stromverbrauch
✅ Echtzeitfähig
✅ Datenschutzfreundlich
✅ Offline-Betrieb


Grenzen von TinyML

❌ Kein Training auf dem Device
❌ Stark begrenzte Modellgröße
❌ Debugging teils komplex
❌ Nicht geeignet für große CNNs oder LLMs


Fazit

TinyML bringt Machine Learning dorthin, wo klassische KI bisher nicht praktikabel war:
Direkt auf Mikrocontroller.

Gerade für Embedded-Entwickler eröffnet das spannende Möglichkeiten:

  • Intelligente Sensoren
  • Selbstüberwachende Systeme
  • Energieeffiziente Edge-Geräte

Wenn du bereits mit MCUs arbeitest, ist TinyML kein Hype-Thema – sondern die logische Weiterentwicklung moderner Embedded-Systeme.

Kommentar hinterlassen