Machine Learning auf Mini-Geräten TinyML – das nächste kleine, große Ding?

Autor / Redakteur: Mirco Lang / Stephan Augsten

Mit Tiny Machine Learning, kurz TinyML, erobert ein neues Buzzword das Internet. Aber anders als sonst, will es nicht das Next Big Thing werden, sondern im Kleinen die Welt verändern.

Firma zum Thema

TinyML-Hardware von Arduino.
TinyML-Hardware von Arduino.
(Bild: https://store.arduino.cc/)

Zugegeben, der Name von Tiny Machine Learning ist schon ein Spoiler: es geht um maschinelles Lernen, und zwar im Kleinen. Tiny bezieht sich dabei schlicht auf die Geräte, auf denen ML-Anwendungen laufen.

Das klingt zunächst trivial, ist aber gleich in zweierlei Hinsicht spannend: Zum einen ist es eine Abkehr von den schier endlosen Kapazitäten des Cloud Computing, zum anderen nötigt es Software-Entwickler, sich näher mit Hardware zu beschäftigen. Aber auch Themen am Rand sind interessant, beispielsweise verantwortungsbewusste Entwicklung oder wie TinyML gerade in die Welt getragen wird.

Machine Learning ist eines der großen IT-Themen unserer Zeit, wird noch einige Jahre im Fokus bleiben und sich vermutlich als Standardtechnik in mehr und mehr Produkten festsetzen. Oft geht es dabei um riesige Datenmengen, die an riesige Cloud-Cluster weitergeleitet und dort von riesigen ML-Modellen verarbeitet werden, gespeist durch ebenso riesige Mengen an Strom.

Tiny Machine Learning setzt hingegen auf kleine Geräte, etwa Microcontroller wie die Arduino-Familie, IoT-Geräte jeglicher Art, Mini-Drohnen und so weiter. Harvard-Doktorand Matthew Stewart (Schwerpunkt Drohnen-basierte Sensorik) spricht etwa von Geräten mit maximal rund einem Kilobyte Arbeitsspeicher und einem Milliwatt Stromverbrauch – ohne diese Werte als fixe Dogmen zu betrachten.

Machine Learning auf Kleinstgeräten

Damit ist auch schnell klar, was nicht gemeint ist: Geräte wie der Raspberry Pi oder Steuerungssysteme in Automobilen sind bereits deutlich zu leistungsstark und stromhungrig, um im Sinne von TinyML noch als „tiny“ zu gelten. Die eigentliche Herausforderung ist also: maschinelles Lernen soll mit möglichst wenigen Ressourcen auskommen.

Pete Warden und Daniel Situnayake erörtern in der Einführung zu ihrem Buch „TinyML“ aus dem O'Reilly-Verlag die Erkennung von Aktivierungskommandos wie „Okay Google“ des Google Assistant – ein Modell, das mit gerade mal 14 Kilobyte Speicherbedarf klein genug für Microcontroller ist. Der Assistent lauscht 24 Stunden täglich auf diese Kommandos.

Würde man dies mit der Smartphone-CPU erledigen, müsste die ML-Software zwar nicht so drastisch auf Größe und Effizienz optimiert werden, dafür würde der Akku wohl nur noch wenige Stunden Betriebsdauer erlauben. Stattdessen überwacht ein eigenständiges System auf kleinstem Raum den Mikrofoneingang auf bestimmte Signale und aktiviert nur bei Bedarf die geballte Rechenleistung des Smartphones.

Einige konkrete Anwendungsbeispiele abseits der Sprachassistenten nennt etwa Harvard-Professor Vijay Janapa Reddi in einem kurzen Einführungsvideo zu einem TinyML-Kurs. So etwa Überwachungsgeräte, die Einbrüche anhand von beispielsweise Geräuschen brechenden Glases erkennen können; und so sparsam im Energieverbrauch, dass sie mit einer Knopfzelle über viele Jahre dauerhaft in Betrieb bleiben könnten.

Hierzulande ließe sich das etwa in den obligatorischen Rauchmeldern denken: Eine intelligente Unterscheidung von Rauch durch echte Gefährdungen und Rauch durch leicht angebranntes Spiegelei allein könnte schon allerlei Fehlalarme unterbinden und so äußerst nützlich sein.

Verarbeitung möglichst datennah

Reddi bringt an dieser Stelle noch einen weiteren guten Punkt ins Spiel: Datenschutz und -transfer. TinyML findet nah am Sensor statt, nah an den Daten und mit minimalem Strombedarf. Ein solches System muss also weder am Stromnetz hängen, noch verstopft es Glasfaser- und Kupferkabel mit einem ständigen Datenfluss – ein Aspekt, der dank der enormen und wachsenden Zahl an IoT-Geräten nicht zu unterschätzen ist.

Nah an den Daten und nah am Sensor heißt aber eben auch, dass möglicherweise vertrauliche, kritische Daten nicht so leicht Dritten in die Hände fallen können. Nun, auch lokale unabhängige Überwachungsstationen für die Landwirtschaft werden gerne als Szenario genannt, Geräte, die etwa den Zustand von Boden, Luft und Getreide analysieren, um den perfekten Erntezeitpunkt zu ermitteln. Und freilich müssen Daten auch auf derlei in der Landschaft herumstehenden Dingen geschützt werden!

Sowohl Reddi als auch die Buchautoren Warden (Technical lead of TensorFlow Mobile and Embedded, Google) und Situnayake (Gründer der Entwicklungsplattform Edge Impulse) bringen auch schnell ganz konkrete Produkte für die Entwicklung von TinyML-Anwendungen ins Spiel: Arduino und TensorFlow.

TinyML-Hardware von Arduino.
TinyML-Hardware von Arduino.
(Bild: https://store.arduino.cc/)

Arduino bietet mittlerweile ein TinyML-Kit mit Arduino Nano, Kameramodul und speziellem TinyML-Shield für 42 Euro an. Als Software soll natürlich auch hier TensorFlow Lite Micro zum Einsatz kommen Interessant ist im Arduino-Shop aber noch etwas, nämlich ein Zitat:

The Future of Machine Learning is Tiny and Bright. We’re excited to see what you’ll do!

Prof. Vijay Janapa Reddi, Harvard University und Pete Warden, Google

Warum das von Interesse ist? Nun, Reddi erwähnt im verlinkten Video auch kurz das Thema verantwortungsbewusste Entwicklung von TinyML-Anwendungen, also Aspekte wie Fairness, Interpretierbarkeit, Sicherheit und Privatssphäre, die im Online-Kurs näher behandelt werden. Das entsprechende und weitere TinyML-Kurs-Videos gibt es hier bei Youtube.

In diesem Kontext sollte man nun auch erwähnen, dass sich das recht junge Thema TinyML bislang vor allem aus dieser recht kleinen Quelle nährt: Der TinyML-Kurs von HarvardX via edX und das TinyML-Buch von O'Reilly. Buch, Kurs, TensorFlow und Arduino zeichnen sich als Urquell für die Thematik ab und beeinflussen die heutige und wohl auch zukünftige Rezeption.

Ein vielversprechendes Projekt

Bei der Beschäftigung mit TinyML schadet es nicht, diese Verbindungen und recht kleine Urheberschaft zu berücksichtigen. Auch der oben erwähnte Matthew Stewart ist in Harvard beheimatet und spricht bei TinyML von einer „proto-engineering“-Disziplin, in Anlehnung an Protowissenschaft.

Das Projekt befindet sich also noch in einem sehr frühen, experimentellen Stadium und entsprechend bleibt noch Raum, das Thema zu deuten, Schwerpunkte zu setzen, Richtlinien zu finden und so weiter. Auch ist es derzeit noch schwierig, wissenschaftliche Werke zu Tiny Machine Learning zu finden. Bei arXiv.org gibt es bisweilen Veröffentlichungen im Bereich Hardware-Architektur.

Die vielleicht beste Quelle für weiterführende Informationen und wissenschaftliche Abhandlungen ist die Website des tinyML Summit, der eine ganze Reihe Experten aufführt, was weitere Recherchen ermöglicht. Zudem finden sich alle Materialien und Vorträge der 2021'er Veranstaltung im Bereich „Schedule“ direkt unter den einzelnen Vorträgen. Und bei Youtube gibt es im tinyML-Account über 270 Videos rund um Tiny Machine Learning.

TinyML ist definitiv ein spannendes Thema und jetzt ist ein guter Zeitpunkt, sich damit zu beschäftigen – in spätestens einem Jahr dürfte die Menge an Artikeln, Werbung, Veranstaltungen und Produkten, die sich erfahrungsgemäß an neue Buzzwords heften so groß sein, dass die Einarbeitung deutlich schwieriger sein wird.

Böse Zungen könnten hier natürlich auch eine kleine Analogie zum Cloud Computing wähnen: Im Grunde ist Cloud Computing nie neu gewesen, vorher lief es unter SAAS, davor unter ASP und ganz früher mal war es einfach Standard – ein Supercomputer im Bunker und Thin Clients für die Nutzer. Und auch bei TinyML kommt ein altes Thema wieder zu Tage und zwingt junge Entwickler, sich mit etwas zu beschäftigen, das alte Hasen garantiert noch aus ihrer Jugend kennen: Optimierung auf Hardware.

Noch nicht allzu lange ist es her, da mussten selbst „normale“ Computer-Nutzer Systeme optimieren, um unter DOS noch ein paar Kilobyte Speicher an den passenden Stellen freizuräumen, um endlich mal zocken zu können. Und warum sich Software-Entwickler mit Hardware beschäftigen sollten, haben wir auch früher schon beleuchtet.

(ID:47780062)