Was ist TinyML?
- TinyML bezeichnet den Einsatz von Machine Learning auf Mikrocontrollern.
- Im Gegensatz zu Systemen, die in traditionellem ML verwendet werden, kommt es auf Systemen mit sehr wenig CPU und RAM zum Einsatz, deren Stromverbrauch im Milli- oder Mikrowatt-Bereich liegt.
- Dabei werden große Modelle verkleinert, damit sie auf Geräten mit sehr knappen Ressourcen und auf Mikrocontrollern eingesetzt werden können.
- Die offizielle Website der TinyML Foundation ist https://www.tinyml.org/
- Es gibt eine Reihe von drei kostenlosen Kursen der Harvard University:
- Grundlagen von TinyML (was man baut, warum man es baut und welche Probleme es gibt)
- Anwendungen von TinyML (datengetrieben, Bias usw.)
- Bereitstellung von TinyML (wo ein Modell bereitgestellt wird, Sicherheit und Datenschutz)
Grundprinzipien von TinyML
- Eingebettete Systeme mit Mikrocontrollern verfügen über höchstens 256 kB Speicher und können daher keine großen Modelle ausführen.
- Einige Beispiele für Betriebssysteme, die mit Mikrocontrollern verwendet werden können:
- FreeRTOS
- Mbed OS
- Machine Learning besteht aus Algorithmen, die Muster in Daten finden.
- Bei TinyML werden diese Algorithmen komprimiert, damit sie Muster in Daten effizient erkennen können.
- Im IoT werden pro Tag 5 Quintillionen Byte an Daten erzeugt, von denen weniger als 1 % analysiert werden.
Verfahren zur Algorithmuskomprimierung
-
Pruning
- Synapsen-Pruning: Entfernt Netzwerkverbindungen aus dem Modell. Manchmal kann die Genauigkeit dadurch sinken.
- Neuronen-Pruning: Entfernt ganze Neuronen aus dem Modell und reduziert so den Rechenaufwand des Netzwerks.
-
Quantisierung
- Werte werden innerhalb eines kleineren Bereichs diskretisiert. Wenn man beispielsweise Gleitkommazahlen in den Bereich von -128 bis 127 diskretisiert, müssen nur 256 Werte betrachtet werden.
- Wenn ein Gleitkommawert, der in 4 Byte gespeichert wird, in einen Integerwert umgewandelt wird, der in 1 Byte gespeichert wird, verringert sich die Größe um das Vierfache.
- Aufgrund der begrenzten Ressourcen ist Quantisierung in TinyML besonders wichtig.
-
Knowledge Distillation
- Durch Wissen und Know-how wird das Modell verkleinert.
Werkzeuge
- Verwendung von TensorFlow Lite.
- TensorFlow richtet sich an ML-Forschende, während TensorFlow Lite für Anwendungsentwickler gedacht ist.
Einsatz von TinyML
- Anwendungsfälle von TinyML speziell für die DIY-, Maker- und Hacker-Welt finden sich auf dieser Website.
Einsatz von TinyML in der Industrie
- In der Industrie wird TinyML in der Wartung eingesetzt, um Effizienz zu steigern und Kosten zu senken, indem bei auftretenden Vibrationen vor möglichen Ausfällen gewarnt wird.
- Aufgrund von Genauigkeitsproblemen kann es zu Fehlalarmen kommen, und die Verantwortung für diese Fehlalarme liegt beim Betreiber oder beim System.
TinyML in der Umwelt
- Statt Daten erst zu sammeln und danach zu verarbeiten, kann TinyML Echtzeitreaktionen auf Umweltveränderungen liefern. So lassen sich zum Beispiel Veränderungen im Leben von Wildtieren in Echtzeit erkennen.
TinyML für Menschen
- Hilft Menschen mit Behinderungen, mehr Aufgaben zu erledigen, ohne ihre Hände zu benutzen.
- Verbessert UI und UX von Anwendungen und macht sie dadurch einfacher nutzbar.
- Technologie wird geschaffen, um die menschliche Erfahrung zu verbessern. Sie sollte Menschen helfen.
Risiken und Nachteile
- Funktioniert es für alle Bevölkerungsgruppen gut?
- Ist der Datenschutz der Daten gewährleistet?
- Können diese Daten geschützt werden?
- Technologie sollte auf menschenzentrierter KI basieren. Das muss in Design, Entwicklung und Bereitstellung berücksichtigt werden.
Meinung von GN⁺
- TinyML ist eine innovative Technologie, die Machine Learning auch in ressourcenbeschränkten Umgebungen ermöglicht und die Effizienz sowie Intelligenz von IoT-Geräten deutlich verbessern kann.
- Verfahren zur Algorithmuskomprimierung wie Pruning, Quantisierung und Knowledge Distillation sind Schlüsselelemente, um Machine-Learning-Modelle so zu verkleinern, dass sie auch auf stromsparenden Geräten lauffähig sind.
- Der Einsatz von TinyML kann in vielen Bereichen wie industrieller Wartung, Umweltmonitoring und Unterstützung von Menschen mit Behinderungen zur Verbesserung des menschlichen Lebens beitragen und ist ein gutes Beispiel für den positiven gesellschaftlichen Einfluss von Technologie.
1 Kommentare
Hacker-News-Kommentare
Entwicklung eines Rust-TinyML-Compilers
predict()-Funktion erzeugt, die Inferenz für das gegebene Modell ausführt.Die Attraktivität des TinyML-Bereichs
Mit LLMs gezielte Viren für Infrastruktur
Erklärung von TinyML / Edge ML bei Edge Impulse
Beispiel für den Einsatz von ESP32, TensorFlow Lite und Edge Impulse bei Hacker Box
Gegenwart und Zukunft von TinyML
Verschiedene Meinungen zu TinyML