Zukunft des Edge Computing TinyML: Deep Learning auf Mikrocontrollern

Autor / Redakteur: Ali Osman Ors * / Michael Eckstein

Maschinelles Lernen auf im Vergleich zu „echten“ Prozessoren schwachbrüstigen Mikrocontrollern – das galt bislang als kaum realisierbares Vorhaben. Heute sind mit dem TinyML-Ansatz jedoch schon erstaunliche Applikationen realisierbar.

Firmen zum Thema

Knotenpunkte: Beim TinyML-Ansatz übernehmen die Mikrocontroller in den Sensoren umfangreiche Inferenzierungsaufgaben, so dass die Kommunikation mit der Cloud auf ein Minimum reduziert wird.
Knotenpunkte: Beim TinyML-Ansatz übernehmen die Mikrocontroller in den Sensoren umfangreiche Inferenzierungsaufgaben, so dass die Kommunikation mit der Cloud auf ein Minimum reduziert wird.
(Bild: metamorworks/Shutterstock.)

Noch vor wenigen Jahren ging man davon aus, dass maschinelles Lernen (ML) – und selbst Deep Learning (DL) – nur auf High-End-Hardware möglich sei, wobei Training und Inferenzierung an der Netzwerk-Edge durch Gateways, Edge-Server oder Rechenzentren erfolgen würden. Zu der Zeit war diese Annahme durchaus berechtigt, denn der Trend, Rechenressourcen zwischen der Cloud und der Edge zu verteilen (Fog Computing), hatte gerade erst begonnen. Dieses Szenario hat sich jedoch dank intensiver Forschungs- und Entwicklungsarbeiten von Wirtschaft und Wissenschaft grundlegend gewandelt.

Das Ergebnis: Heute sind für das maschinelle Lernen keine Prozessoren erforderlich, die viele Billionen Operationen pro Sekunde (TOPS) vollziehen können. Immer häufiger machen die neuesten Mikrocontroller, einige mit integrierten ML-Beschleunigern, maschinelles Lernen in Edge-Geräten möglich.

Diese Geräte sind nicht nur ML-fähig, sie liefern auch gute Ergebnisse, sind kostengünstig und verbrauchen nur sehr wenig Strom, denn die Geräte verbinden sich nur mit der Cloud, wenn es absolut notwendig ist. Kurzum, Mikrocontroller mit integrierten ML-Beschleunigern sind der nächste Schritt, wenn es darum geht, Sensoren wie Mikrofone, Kameras und solche zur Umgebungsüberwachung mit Rechenleistung auszustatten. Diese Sensoren erzeugen die notwendigen Daten, um alle Vorteile des IoT auszuschöpfen.

Was ist an der Edge möglich?

Der Netzwerkrand, die so genannte Edge, gilt allgemein als der äußerste Bereich in einem IoT-Netzwerk. Viele verstehen darunter ein fortschrittliches Gateway oder einen Edge-Server. Allerdings endet die Edge dort noch nicht. Sie endet bei den Sensoren – also dort, wo physikalische Größen in analoge und schließlich digitale (Mess-)Werte gewandelt werden. Daher liegt es nahe, genau hier auf möglichst viel leistungsstarke Analysefunktionalität zugreifen zu können – eine Aufgabe, für die Mikrocontroller ideal geeignet sind.

Man könnte argumentieren, dass beispielsweise Einplatinencomputer auch für Edge-Processing verwendet werden können, da sie sich durch eine beachtliche Leistungsfähigkeit auszeichnen und in Clustern mit einem kleinen Supercomputer mithalten können.

TinyML: Maschinelles Lernen auf Mikrocontrollern

Aber sie sind immer noch zu groß, zu kostspielig – und letztlich zu energiehungrig, um sie zu Hunderten oder Tausenden einzusetzen, so wie es für Anwendungen in großem Maßstab erforderlich wäre. Außerdem benötigen sie eine externe Gleichstromquelle, die mitunter nicht zur Verfügung steht, während ein MCU nur wenige Milliwatt verbraucht und mit Knopfzellenbatterien oder sogar ein paar Solarzellen betrieben werden kann.

Daher ist es nicht verwunderlich, dass das Interesse an Mikrocontrollern für die Durchführung von ML am Netzwerkrand ein viel beforschter Entwicklungsbereich geworden ist. Er hat sogar einen Namen – TinyML. Mit TinyML soll Inferenzierung und letztendlich Training auf kleinen Geräten mit begrenzten Ressourcen und geringem Stromverbrauch, und vor allem auf Mikrocontrollern durchgeführt werden können, anstatt auf größeren Plattformen oder in der Cloud.

Voraussetzung für TinyML sind verkleinerte Neuronale Netzwerke

Das erfordert eine Verkleinerung der neuronalen Netzwerkmodelle, um den vergleichsweise bescheidenen Verarbeitungs-, Speicher- und Bandbreitenressourcen dieser Bauteile gerecht zu werden, ohne die Funktionalität und Genauigkeit wesentlich zu verringern.

Diese ressourcenoptimierten Modelle ermöglichen es den Geräten, genügend Sensordaten für ihren Zweck aufzunehmen, bei gleichzeitiger Feinabstimmung der Genauigkeit und Verringerung der Ressourcenanforderungen. Es werden zwar immer noch Daten an die Cloud gesendet (oder vielleicht zunächst an ein Edge-Gateway und dann an die Cloud), aber in viel geringerem Umfang, da die MCUs detaillierte Analysen bereits selbst durchführen.

Ein beliebtes Beispiel für TinyML ist ein kamerabasiertes Objekterkennungssystem, das zwar hochauflösende Bilder erfassen kann, aber lediglich über begrenzten Speicherplatz verfügt und damit eine Reduzierung der Bildauflösung erforderlich macht. Verfügt die Kamera jedoch über eine geräteinterne Analyse, werden nur die Objekte von Interesse anstatt des gesamten Umfeldes erfasst, und da die Anzahl der relevanten Bilder geringer ist, kann die höhere Auflösung beibehalten werden. Dieses Anwendungsbeispiel ist in der Regel in Verbindung mit größeren, leistungsfähigeren Geräten bekannt, die TinyML-Technologie ermöglicht dies jedoch auf Mikrocontrollern.

MCUs: Klein, aber leistungsstark

Obwohl TinyML ein relativ neues Paradigma ist, liefert es bereits erstaunliche Ergebnisse bei der Inferenzierung (selbst mit relativ einfachen Mikrocontrollern) und beim Training (mit leistungsfähigeren Varianten) mit minimalem Genauigkeitsverlust. Jüngste Beispiele sind die Sprach- und Gesichtserkennung, Sprachbefehle und die Verarbeitung natürlicher Sprache und sogar die parallele Ausführung mehrerer komplexer Bildverarbeitungsalgorithmen.

In der Praxis bedeutet das: Ein Mikrocontroller für weniger als zwei US-Dollar mit einem 500-MHz-Arm-Cortex-M7-Kern und einem 28- bis 128-KByte-Speicher kann ausreichend Leistung bereitstellen, um Sensoren intelligent zu machen.

Selbst auf diesem Preis- und Leistungsniveau verfügen diese Mikrocontroller über mehrere Sicherheitsfunktionen – einschließlich AES-128 – sowie über Unterstützung für mehrere externe Speichertypen, Ethernet, USB und SPI. Außerdem enthalten oder unterstützen die Mikrocontroller verschiedene Arten von Sensoren sowie Bluetooth, Wi-Fi und SPDIF- und I2C-Audioschnittstellen. Und für einen etwas höheren Preis verfügen die Chips oft über einen 1-GHz-Arm Cortex-M7, 400-MHz-Cortex-M4, 2 MByte RAM und Grafikbeschleunigung. Die Stromaufnahme beträgt normalerweise nicht mehr als ein paar Milliampere aus einer 3,3-V-Gleichstromversorgung.

TOPS ist als alleinige Leistungskennzahl unzureichend

Nicht nur die Verbraucher definieren die Leistung anhand einer einzigen Kennzahl; auch Entwickler tun dies ständig, und auch Marketingabteilungen favorisieren diese Vorgehensweise, da sich mit Hilfe einer einzelnen Spezifikation Bauteile einfach voneinander unterscheiden lassen – so scheint es zumindest. Ein klassisches Beispiel ist die CPU, die viele Jahre lang über ihre Taktrate definiert wurde, was zum Glück für Entwickler und Kunden nicht mehr der Fall ist.

Lediglich eine Kennzahl für die Bewertung einer CPU heranzuziehen, ist etwa so, als würde man die Leistung eines Autos anhand der Drehzahl des Motors beurteilen. Sie ist nicht bedeutungslos, hat aber wenig damit zu tun, wie stark der Motor ist oder wie gut das Auto fährt, da ein Zusammenspiel vieler anderer Faktoren entscheidend ist.

Leider gilt dasselbe auch zunehmend für neuronale Netzwerkbeschleuniger, einschließlich derjenigen in Hochleistungs-MPUs oder Mikrocontrollern, die mit Milliarden oder Billionen von Operationen pro Sekunde spezifiziert werden. Auch in diesem Bereich ist das eine eingängige Kennzahl. In der Praxis sind GOPS und TOPS allein jedoch relativ bedeutungslose Indikatoren und stellen eine (zweifellos optimale) Messung in einer Laborumgebung dar, repräsentieren jedoch keine reale Betriebsumgebung.

Auch Speicherbandbreite, CPU-Overhead und mehr sind entscheidend

Der TOPS-Wert berücksichtigt zum Beispiel nicht die Speicherbandbreitenbeschränkungen, den erforderlichen CPU-Overhead, den Bedarf an Vor- und Nachbearbeitung oder andere Faktoren. Wenn alle diese Faktoren berücksichtigt werden, kann sich die tatsächliche Leistung auf Systemebene auf 50 % oder 60 % des TOPS-Wertes im Datenblatt verringern.

Die TOPS-Zahl ist lediglich die Anzahl der Rechenelemente in der Hardware multipliziert mit der Taktfrequenz, und sagt nichts darüber aus, wie häufig die Daten zur Verfügung stehen, wenn sie es müssen. Wenn die Daten immer sofort verfügbar wären, der Stromverbrauch kein Thema wäre, es keine Speicherbeschränkungen gäbe und der Algorithmus nahtlos auf die Hardware abgebildet wäre, wäre der TOPS-Wert aussagekräftiger. In der realen Welt existieren solche idealen Umgebungen jedoch nicht.

Auf ML-Beschleuniger in Mikrocontrollern angewandt, ist der TOPS-Wert als Kennzahl noch weniger nützlich. Diese winzigen Bauteile haben für gewöhnlich einen Wert von 1 bis 3 TOPS und bieten dennoch Inferenzfähigkeiten, die für viele ML-Anwendungen ausreichen. Neben der Unterstützung von Ganzzahl- und Gleitkomma-Operationen und den vielen anderen Funktionen des Mikrocontrollers wird deutlich, dass weder TOPS noch eine andere einzelne Metrik ausreicht, um die Leistung auf Stand-alone- oder Systemebene zu definieren.

Vor dem TinyML-Einsatz steht das Vorlernen und Optimieren

Der Wunsch nach Inferenzierung auf Mikrocontrollern, die direkt auf oder an Sensoren wie z. B. Standbild- und Videokameras angebracht sind, rührt daher, dass die IoT-Domäne so viel Datenverarbeitung wie möglich an den Netzwerkrand verlegt. Die Entwicklung von Anwendungsprozessoren und neuronalen Netzwerkbeschleunigern in Mikrocontrollern schreitet schnell voran, und es werden immer leistungsfähigere Lösungen angeboten. Der Trend geht dahin, mehr KI-zentrierte Funktionen wie die neuronale Netzverarbeitung zusammen mit einem Anwendungsprozessor im Mikrocontroller zu konsolidieren, ohne den Stromverbrauch oder die Größe drastisch zu erhöhen.

Heutzutage können Modelle auf einer leistungsfähigeren CPU oder GPU trainiert und dann auf einem Mikrocontroller implementiert werden. Dabei kommen Inferenz-Engines wie TensorFlow Lite für Mikrocontroller mit Größenreduktion zum Einsatz, um die Ressourcenanforderungen des Mikrocontrollers zu erfüllen. Für höhere ML-Anforderungen kann problemlos skaliert werden. Bald sollte es möglich sein, nicht nur Inferenzierung, sondern auch Training auf diesen Geräten durchzuführen, und das macht den Mikrocontroller schlussendlich zu einer oft ausreichenden Alternative für größere und teurere Computing-Lösungen.

* Ali Osman Ors ist Director, AI and Machine Learning Strategy and Technologies, Edge Processing, NXP Semiconductors

(ID:47527844)