Definition Was ist uTensor?
uTensor ist ein Framework, mit dem sich Machine-Learning-Inferenz auf ressourcenbeschränkten Mikrocontrollern ausführen lässt. Das Framework besteht aus einer Runtime-Bibliothek und einem Offline-Tool. Mit dem Offline-Tool lassen sich trainierte Machine-Learning-Modell in lesbaren C++-Code konvertieren. Dieser Code eignet sich für die Verwendung auf Mbed-Plattformen und ARM-Mikrocontroller.
Anbieter zum Thema

uTensor (ausgesprochen: microTensor) ist der Name eines Open Source Frameworks, mit dem sich die Inferenz von zuvor erstellten und trainierten Machine-Learning-Modellen auf ressourcenbeschränkten Mikrocontrollern ausführen lässt. Das Framework ist eng mit der End-to-End-Open-Source-Plattform für maschinelles Lernen TensorFlow und Mbed (Plattform und Betriebssystem für ARM-Cortex-M-Mikrocontroller) verknüpft.
uTensor besteht aus einer Runtime-Bibliothek und einem Offline-Tool, mit dem sich mit TensorFlow erstellte und trainierte Machine-Learning-Modelle in lesbaren und effizient ausführbaren C++-Code für ARM-Prozessoren konvertieren lassen. Die Größe der Runtime-Umgebung beträgt nur wenige Kilobyte.
uTensor wird im TinyML-Umfeld eingesetzt. TinyML ist ein konzeptioneller Ansatz für maschinelles Lernen auf ressourcenbeschränkten Mikrocontrollern. Er sorgt für energieeffizient arbeitende und nur wenig Rechenleistung und Arbeitsspeicher benötigende ML-Algorithmen. Zu den weiteren im TinyML-Umfeld eingesetzten Frameworks zählen beispielsweise TensorFlow Lite oder CMSIS-NN. Mithilfe von uTensor und der Ausführung der Machine-Learning-Inferenz auf Mikrocontrollern und eingebetteten Systemen lassen sich vielfältige Anwendungen im Edge-Computing- und IoT-Umfeld realisieren. uTensor ist auch für das Rapid Prototyping einsetzbar.
Herausforderungen auf ressourcenbeschränkten Mikrocontrollern
Die üblichen Werkzeuge und Frameworks zum Erstellen, Trainieren und Ausführen der Machine-Learning-Inferenz eignen sich aufgrund des hohen Bedarfs an Rechenleistung und Arbeitsspeicher nicht für die Verwendung auf stark ressourcenbeschränkten Mikrocontrollern. Um ML-Modelle auf Kleinstgeräten und eingebetteten Systemen zu implementieren, müssen die Modelle ressourcenoptimiert und die verwendeten Algorithmen energieeffizient gestaltet werden. Dadurch wird es möglich, die Inferenz direkt auf den Mikrocontrollern auszuführen. Da keine Daten zu Inferenzzwecken in die Cloud übertragen und dort prozessiert werden müssen, werden ML-Anwendungen ohne die Notwendigkeit einer Netzwerkanbindung mit geringer Latenz lokal ausführbar.
Workflow von uTensor und Bestandteile der uTensor-Runtime
Der Workflow für die Konvertierung eines ML-Modells und die Ausführung der Inferenz auf einem Mikrocontroller ist in diese Schritte unterteilt:
Das Machine-Learning-Modell wird zunächst mit einem Framework wie TensorFlow erstellt und trainiert. TensorFlow ist ein ursprünglich von Google entwickeltes Framework und steht unter Apache-2.0-Open-Source-Lizenz zur Verfügung. Es stellt die mathematischen Operationen für maschinelles Lernen in Form von Graphen dar. Die Graphen bestehen aus Kanten und Knoten und bilden das mathematische Modell für das neuronale Netz. uTensor konvertiert mit dem bereitgestellten Offline-Tool das mit TensorFlow erstellte Modell und erzeugt einen lesbaren C++-Code, der die ressourcenoptimierte Ausführung des trainierten Modells und ML-Inferenz auf einem Mikrocontroller ermöglicht.
Die uTensor-Runtime besteht aus den zwei Hauptkomponenten uTensor Core und uTensor-Bibliothek. uTensor Core bildet das Herzstück der Runtime und ist kompiliert nur wenige Kilobyte groß. Die uTensor-Bibliothek stellt verschiedene auf uTensor Core aufsetzende Default-Implementierungen wie ErrorHandler, Allocator oder Tensors zur Verfügung.
Anwendungen von uTensor
Die mit uTensor geschaffene Möglichkeit der Machine-Learning-Inferenz auf ressourcenbeschränkten Mikrocontrollern und eingebetteten Systemen erschließt im IoT- und Edge-Computing-Umfeld zahlreiche ML-Anwendungsfelder. Kleinstgeräte lassen sich mit Künstlicher Intelligenz (KI) ausstatten. Sie sind in der Lage, die von Sensoren gelieferten Daten lokal zu verarbeiten, zu analysieren und daraus Aktionen abzuleiten. Die Intelligenz wandert quasi in die Endgeräte, da eine Übertragung der IoT-Daten zur Ausführung der ML-Inferenz in die Cloud hinfällig wird. Viele Aufgaben lassen sich in smarte Endgeräte auslagern. Die Geräte benötigen nur wenige Kilobyte Arbeitsspeicher und erledigen die ML-Inferenz energieeffizient mit niedriger Latenz. Mögliche Anwendungen sind:
- Spracherkennung und Ausführung von Sprachassistenzfunktionen in smarten Lautsprechern
- Objekt- und Bilderkennung für Überwachungsanwendungen intelligenter Kameras
- vorausschauende Wartung von Maschinen und Anlagen durch die lokale Auswertung von Sensordaten
- Realisierung intelligent navigierender Mikrodrohnen
- intelligente Sonden zur Erfassung und Auswertung von Boden- und Umweltdaten
Vorteile durch den Einsatz von uTensor
uTensor ermöglicht die energieeffiziente Ausführung der Machine-Learning-Inferenz auf Mikrocontrollern, eingebetteten Systemen und Kleinstgeräten mit wenig Prozessorleistung und Arbeitsspeicher. Die Inferenz findet lokal statt und benötigt keine Übertragung von Daten in die Cloud. Eingesetzte Geräte können mit Batterien oder Akkus über lange Zeiträume mit Energie versorgt werden. Die ML-Anwendungen arbeiten mit niedrigen Latenzzeiten und sind weniger störanfällig gegenüber äußeren Einflüssen und Netzwerkausfällen. Dank lokaler Datenverarbeitung sind kritische oder sensible Daten gegenüber unbefugten Zugriffen geschützt. Weitere Vorteile von uTensor sind:
- eng mit TensorFlow und Mbed verknüpft
- unter Open-Source-Lizenz (Apache 2.0) frei verfügbar
- Runtime-Umgebung benötigt nur wenige Kilobyte Arbeitsspeicher
- der aus den trainierten ML-Modellen generierte C++-Code ist lesbar und lässt sich leicht anpassen
- für verschiedenen Anwendungen und Plattformen flexibel erweiterbar
(ID:48085592)