TinyML
TinyML führt maschinelles Lernen auf Mikrocontrollern mit wenigen Kilobyte Speicher und Milliwatt Leistung aus. Erfahre, wie Modelle auf diese Geräte zugeschnitten werden, wo sie zum Einsatz kommen und welche Werkzeuge es gibt.
TinyML (kleines maschinelles Lernen) bezeichnet den Betrieb von Modellen des maschinellen Lernens auf Mikrocontrollern und anderen Chips mit extrem niedrigem Stromverbrauch. Diese verfügen typischerweise über einige Hundert Kilobyte Speicher, kein Betriebssystem und ein Leistungsbudget im Milliwattbereich. Wenn Schlussfolgerungen direkt auf einem Chip neben dem Sensor ausgeführt werden, können batteriebetriebene Geräte ihre Umgebung monatelang oder jahrelang kontinuierlich abhören, beobachten oder ertasten und nur Ergebnisse wie „Schlüsselwort erkannt“ oder „Maschine vibriert ungewöhnlich“ statt Rohdaten senden. Das hält die Latenz niedrig, schützt die Privatsphäre der Daten und spart den Strom, den eine Funkübertragung benötigen würde. Die Branchenorganisation EDGE AI FOUNDATION hieß früher tinyML Foundation.
Wie Modelle auf einen Mikrocontroller passen#
Ein Mikrocontroller speichert die Gewichte eines Modells zusammen mit dem Programm im Flash-Speicher und hält die gerade berechneten Aktivierungen im SRAM, das meist die engere Beschränkung darstellt. Eine Modellquantisierung auf 8-Bit-Ganzzahlen verkleinert die Gewichte auf ein Viertel ihrer FP32-Größe und ersetzt Gleitkommarechnung durch Ganzzahlarithmetik, die kleine Rechenkerne effizient ausführen. Kompakte Architekturen mit tiefenweise separierbaren Faltungen, Modellbeschneidung und geringeren Eingabeauflösungen verkleinern den Rest. Eine neuronale Architektursuche kann Netzwerke auf den Speicher eines bestimmten Chips zuschneiden. MCUNet kombinierte eine solche Suche mit einer speicherbewussten Laufzeitumgebung und erreichte auf einem handelsüblichen Mikrocontroller eine Top-1-Genauigkeit von über 70 % auf ImageNet. Das fertige Modell wird in die Firmware kompiliert und von einem kleinen Interpreter oder als kompilierter Code ausgeführt:
Das Speicherbudget lässt sich bereits vor dem Einsatz von Hardware abschätzen. Dieses Netzwerk zur Erkennung von Schlüsselwörtern ist ein tiefenweise separierbares CNN, wie es zur Erkennung gesprochener Befehle anhand von Audiomerkmalen verwendet wird. Für den Flash-Speicher wird ein Byte pro INT8-Gewicht angesetzt, für den SRAM-Speicher das größte Paar aus Eingabe- und Ausgabeaktivierungen:
import torch
from torch import nn
# A depthwise-separable CNN for keyword spotting on 49x10 MFCC audio features
model = nn.Sequential(
nn.Conv2d(1, 64, (10, 4), stride=2, padding=(5, 1)),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.AdaptiveAvgPool2d(1),
nn.Flatten(),
nn.Linear(64, 12),
)
# At INT8, flash stores one byte per weight and SRAM holds activations in flight
weights = sum(p.numel() for p in model.parameters())
x, peak = torch.randn(1, 1, 49, 10), 0
for layer in model:
y = layer(x)
peak = max(peak, x.numel() + y.numel()) # a layer's input and output coexist
x = y
print(f"Flash: {weights / 1024:.1f} KB, peak SRAM: {peak / 1024:.1f} KB")Die Ausgabe beträgt 12,7 KB Flash-Speicher und 15,6 KB maximalen SRAM-Speicher. Das ist nur ein kleiner Teil der 1 MB Flash-Speicher und 256 KB RAM des nRF52840-Mikrocontrollers auf einem Arduino Nano 33 BLE Sense, sodass Platz für die Audioverarbeitung und die Laufzeitumgebung selbst bleibt.
Laufzeitumgebungen und Hardware#
- LiteRT für Mikrocontroller: Der Interpreter von Google, früher TensorFlow Lite for Microcontrollers, benötigt weder ein Betriebssystem noch eine Standardbibliothek oder dynamische Speicherzuweisung. Seine zentrale Laufzeitumgebung passt auf einem Arm Cortex-M3 in 16 KB.
- ExecuTorch: Die Laufzeitumgebung von PyTorch für Geräte, deren Arm-Ethos-U-Backend quantisierte Modelle auf Ethos-U-NPUs von Arm ausführt. Diese befinden sich in vielen Chips mit niedrigem Stromverbrauch neben Cortex-M-Rechenkernen.
- Arm Cortex-M: Die Prozessorfamilie in den meisten Mikrocontrollern für TinyML. Sie reicht von Cortex-M0+-Bauteilen mit wenigen Kilobyte RAM bis hin zu Cortex-M55 und Cortex-M85 mit Vektoranweisungen für maschinelles Lernen.
- Coral-NPU: Ein quelloffener RISC-V-Beschleunigerentwurf von Google, der im Oktober 2025 für ständig aktive tragbare Geräte angekündigt wurde. Er zielt auf etwa 512 Milliarden Operationen pro Sekunde bei einem Stromverbrauch von wenigen Milliwatt ab.
TinyML im Vergleich zu Edge AI#
Edge AI umfasst alle Schlussfolgerungen auf dem Gerät, auf dem die Daten erzeugt werden. Dazu gehören Smartphones, Einplatinencomputer wie der Raspberry Pi und eingebettete GPU-Module wie NVIDIA Jetson, die über Gigabyte an Speicher verfügen und mehrere Watt verbrauchen. TinyML ist die kleinste Kategorie, in der Modelle in Kilobyte gemessen werden. Die Grenze verschiebt sich ständig, wenn Mikrocontroller Beschleuniger erhalten: STs STM32N6 kombiniert einen Cortex-M55 mit einer neuronalen Verarbeitungseinheit mit 600 GOPS und 4,2 MB RAM. Der kleinste Ultralytics YOLO26-Detektor hat 2,4 Millionen Parameter und benötigt bei INT8 etwa 2,4 MB. Sein INT8-LiteRT-Export (format="litert", quantize=8) zielt daher auf die nächsthöhere Kategorie über dem klassischen TinyML ab: Smartphones, Einplatinencomputer und Platinen mit Beschleuniger.
Anwendungen von TinyML#
- Erkennung von Schlüsselwörtern: Ständig aktive Erkennungsmodelle für Aktivierungswörter in Smartphones, Ohrhörern und intelligenten Lautsprechern lauschen auf einen bestimmten Ausdruck auf einem stromsparenden Rechenkern und wecken den Hauptprozessor erst auf, wenn sie ihn hören.
- Vorausschauende Wartung: An Motoren und Pumpen befestigte Vibrations- und Audiosensoren lernen den normalen Betrieb und erkennen Anomalien, die Ausfällen vorausgehen. Die Sensoren können jahrelang mit einer Batterie laufen.
- Überwachung von Wildtieren und Umwelt: Solar- oder batteriebetriebene akustische Sensoren erkennen in abgelegenen Wäldern Tierlaute oder Kettensägen und senden kurze Warnmeldungen über Funk mit großer Reichweite.
- Visuelle Aktivierungswörter: Kameras mit niedriger Auflösung auf Mikrocontrollern erkennen, ob eine Person im Bild ist, und aktivieren ein größeres System nur dann, wenn dies der Fall ist.
MLPerf Tiny, der Benchmark von MLCommons für diese Hardwareklasse, misst Genauigkeit, Latenz und Energieverbrauch bei Aufgaben aus diesen Anwendungsbereichen. Dazu zählen die Erkennung von Schlüsselwörtern und visuelle Aktivierungswörter, die Bildklassifizierung mit CIFAR-10 sowie die Anomalieerkennung anhand von Maschinengeräuschen.










