Futuristic Artificial intelligence AI power digital transformation abstract technology background. Innovative technology and big data concept. Vector illustration

ML-Software stattet Embedded-Geräte in der Edge mit Mehrwert aus. Eine MCU-Architektur mit einer oder mehreren CPUs und unterstützenden NPUs hat sich als vorteilhaft für KI-Edge-Anwendungen erwiesen. (Bild: Shutter2U - stock.adobe.com)

Das Jahr 2024 hat eine Flut von Ankündigungen zu Produkten mit künstlicher Intelligenz (KI) gebracht, die auf großen Sprachmodellen (Large Language Model, LLM) von Firmen wie OpenAI und Google aufbauen. In Consumer- und Computer-Endgeräten wie Smartphones und PCs ist die KI nicht nur im Mainstream angekommen, sondern selber längst Mainstream.  

Dabei fällt auf, dass Hersteller von Embedded-Geräten die KI oder das Maschinenlernen (ML) in ihren Endgeräten noch nicht in großem Umfang übernommen haben. Dafür gibt es verschiedene Gründe, nicht zuletzt die Einschränkungen bei der Rechenleistung und dem Energieverbrauch traditioneller Mikrocontroller (MCU), Anwendungsprozessoren und SoCs (Systems-on-Chip).

Aber das Zögern der Geräteentwickler beim Einbetten von ML-Algorithmen verlangsamt dessen Einsatz im IoT und anderen Gerätetypen, die normalerweise mit einer MCU arbeiten. Dabei könnte angesichts der neuen Fähigkeiten von KI-Software in Consumer-Geräten eine schnellere Einführung der ML-Technologie im IoT enorme Werte freisetzen.  

Wie verändert Maschinenlernen die Entwicklung von Embedded-Software?

Gründe für die zögerliche Integration von ML-Algorithmen in MCU-basierende Geräte sind unter anderem die Ausbildung und Methoden der Entwickler, die für eine deterministische und programmgesteuerte Software ausgelegt sind. Eine klassische Echtzeit-Steuerfunktion erhält eine Eingabe, zum Beispiel den Messwert eines Temperatursensors, und führt eine bestimmte Aktion durch, schaltet etwa ein Gerät aus, wenn die Temperatur einen Sicherheitsgrenzwert überschreitet. Mikrocontroller haben sich zu einer vorherrschenden Hardware für diese Art von Echtzeit- und deterministischen Steuerfunktionen entwickelt. Eine MCU, die auf einer RISC-CPU aufbaut, beispielsweise einem Arm-Cortex-M-Kern, bietet eine garantierte Latenz und eine schnelle sequentielle Ausführung von Funktionen in Anwendungen von der Motorsteuerung über die Verarbeitung von Sensordaten bis hin zur Displaysteuerung.

Für Anwendungsentwickler ist das Schreiben des traditionellen If/Then-Softwarecodes eine logische Abfolge und deren Ausführung folgt vorhersehbaren Bedingungen, die klar definierbar sind. Nach dem Debugging liefert dieser Code eine zuverlässige und absolut vorhersagbare Ausgabe in einem Gerät wie einer Überwachungskamera oder einem Elektrowerkzeug – klassische Anwendungen für eine MCU-basierende Steuerung. Heute können solche Geräte Mehrwert durch das Hinzufügen von ML-Funktionen zu den vorhandenen Steuerfunktionen schaffen. Und diese ML-Software kann an der Edge, direkt in der MCU laufen.

Zwischen Menschen und Objekten unterscheiden

Bei einer Überwachungskamera lässt sich beispielsweise die Überwachung auf potenzielle Einbrecher automatisieren. Dabei erkennt die ML-Software in der Cloud Menschen im Blickfeld der Kamera und analysiert deren Verhalten. Die Kosten und der Energieverbrauch einer solchen Kamera können erheblich sinken, wenn ein lokaler Prozessor, der menschliche Formen von anderen Objekten im Bild unterscheiden kann, das Videosignal vorverarbeitet. Denn statt ständig den gesamten Feed zu übertragen, veranlasst die Kamera das System nur dann dazu, Bilder in die Cloud hochzuladen, wenn das Videosignal potenziell relevante Informationen enthält.

ML bietet ähnlichen Nutzen in einer elektrischen Bohrmaschine. Mit einem UWB-Funkteil (Ultra-Wideband) kann die Bohrmaschine Hochfrequenz-Signale aussenden und empfangen, die unterschiedlich sind je nach Material, in dem gebohrt wird. So kann die Maschine überprüfen, ob der richtige Bohrer eingesetzt ist, und versteckte Gefahren erkennen, etwa eine Wasserleitung in der Wand.

Neurale Netzwerke trainieren

Diese Funktion mit herkömmlicher programmgesteuerter Software zu schreiben, wäre nicht nur fast unmöglich, sondern verursacht auch zu viel Aufwand und Zeit bei der Entwicklung. Ein geeignetes neurales Netzwerk zu trainieren, um beispielsweise das Reflexionsmuster einer UWB-Aussendung von einem Kupferrohr in Beton zu erkennen, ist eine vergleichsweise triviale Aufgabe. Ebenso sind große Open-Source-Datensätze zum Training und neurale Netzwerke für ML-Systeme zum Erkennen der Bewegung von Menschen in einem Videosignal ohne Weiteres verfügbar.

Der gesamte Ansatz zum Training eines solchen ML-Algorithmus ist klassisch ausgebildeten Entwicklern programmgesteuerter Software für MCU oder Embedded-Prozessoren jedoch fremd. Statt Code zu strukturieren, zu schreiben und zu debuggen, müssen Entwickler für ML-Algorithmen darüber nachdenken, wie ein geeigneter Datensatz zum Training aufgebaut, ein geeignetes neurales Netzwerk bewertet und ausgewählt und ein Framework zum Deep-Learning konfiguriert und betrieben wird, das zur gewünschten MCU oder anderen Hardware kompatibel ist

Probabilistische statt deterministische Ausgabe

Während sich programmgesteuerte Software durch Prozesse wie Debugging und detaillierte Codeanalyse verbessern lässt, gestaltet sich die Optimierung des Betriebs von ML-Inferenz völlig anders und umfasst die Analyse diverser Faktoren, um die Genauigkeit und Geschwindigkeit der Inferenz durch Vergrößern des Datensatzes zum Training oder durch Verbessern der Qualität der Samples im Datensatz zu erhöhen.

Auch die Ausgabe eines ML-Algorithmus unterscheidet sich qualitativ von der einer klassischen Software. Die Ausgabe ist probabilistisch und liefert eine Antwort auf eine Frage (Ist in der Wand ein Kupferrohr verborgen?) in Form einer Inferenz mit einem bestimmten Grad an Zuversicht. Diese Antwort ist nicht deterministisch – also wahrscheinlich richtig, könnte aber auch falsch sein.

Um also den Wert von ML-Funktionen zu nutzen, müssen sich Entwickler MCU-basierender Geräte eine neue Entwicklungsmethode aneignen und eine probabilistische statt einer deterministischen Ausgabe akzeptieren. Das ist unbekanntes Terrain und so überrascht es nicht, dass die Implementierung von ML in Embedded-Geräte etwas zögerlich vorgeht.

Was also können MCU-Hersteller tun, um den Übergang zu einer Welt mit KI-zentrischen Embedded-Geräten zu erleichtern und die Betriebsumgebung für ML-Software freundlicher zu gestalten?

Alif_AI-hesitancy_Ensemble-family_portfolio
MCUs der Ensemble-Familie und die Fusion-Prozessoren von Alif Semiconductor gibt es in mehreren Single- und Multicore-CPU und NPU-basierenden Optionen. (Bild: Alif Semiconductor)

Merkmale einer ML-freundlichen MCU

Alif Semiconductor versorgt Hersteller von Embedded- und IoT-Geräten mit MCU und Fusion-Prozessoren, die beste KI/ML bei niedrigster Leistungsaufnahme bieten. Dieses Geschäftsmodell hängt von der weitreichenden Übernahme des ML in der Embedded-Welt ab. Nach Alifs Analyse gibt es drei entscheidende Merkmale, damit Mikrocontroller in neuen ML-basierenden Produkten Erfolg haben.

  • Bereitstellen einer Hardwareumgebung, die den Betrieb neuraler Netzwerkalgorithmen fördert.

Zentrales Element für die Steuerfunktionen einer MCU ist eine RISC-CPU, aber deren sequentieller Betriebsmodus ist für die Ausführung der MAC-Zyklen neuraler Netzwerke eher nachteilig. Eine NPU (Neural Processing Unit) ist hingegen auf die Ausführung von MAC- und anderen Operationen neuraler Netzwerke zugeschnitten. Eine MCU-Architektur mit einer oder mehreren NPUs, die eine oder mehrere CPUs unterstützen, ist die beste Grundlage für schnelle Inferenz mit geringem Energieverbrauch wie in Edge-KI-Anwendungen gefordert.

Tests anhand von Standard-Benchmarks der Industrie für ML-Funktionen wie Sprachaktivitätserkennung, Störgeräuschunterdrückung, Echo-Unterdrückung und automatische Spracherkennung zeigen, dass Kombinationen aus einer Arm Cortex-M55 CPU und einer Ethos-U55 NPU bei der Inferenz eine 50-fache Geschwindigkeitssteigerung im Vergleich zu einer Highend-Cortex-M7-CPU allein und eine 25-fache Energieeinsparung bewirken.

  • In einer vertrauten Entwicklungsumgebung arbeiten lassen

Für die von einer CPU ausgeführten Steuerfunktionen hat der MCU-Markt die Auswahl auf eine Architektur eingrenzen können: Arms Cortex-M. Doch einige MCU-Hersteller stellen der CPU eine proprietäre NPU zur Seite und zwingen Anwender so, die vertraute Arm-Umgebung für den ML-Teil der Entwicklungen zu verlassen.

Letztlich wird der MCU-Markt wahrscheinlich auf Arm einschwenken, sowohl für die NPU als auch für die CPU. Eine MCU mit einer Ethos NPU in Verbindung mit einer Cortex-M CPU ermöglicht es, dieselben Arm-Werkzeuge und Software-Ökosysteme sowohl für die Steuerfunktionen als auch für den ML-Teil der Anwendungen zu nutzen.

Alif_AI-hesitancy_Image-of-AppKit
Mit einem Entwicklungswerkzeug wie dem KI/ML AppKit in der Hand ist es Zeit, den Sprung in die Welt des Maschinenlernens an der Edge zu wagen. (Bild: Alif Semiconductor)
  • Frühzeitig Experimente mit beliebten ML-Anwendungstypen ermöglichen.

Die probabilistische Natur der ML-Inferenz bietet sich für einen Trial-and-Error-Ansatz in Proof-of-Concept-Entwicklungen an, bei dem Open-Source-Modelle für neurale Netzwerke und Trainingsdatensätze eingesetzt und verfeinert werden. Hierfür bietet Alif das KI/ML AppKit, eine für das Erfassen von Vibrations-, Sprach- und Bilddaten vorkonfigurierte Entwicklungshardware, die mit einer großen Auswahl von Demonstrationssystemen für verschiedene KI-Anwendungsfälle kommt.

Das Kit umfasst ein 4-Zoll-Farb-LC-Display, ein integriertes Kameramodul, PDM und I2S-Mikrofone und Trägheitssensoren. Gerätetreiber und Betriebssystem-Packs sowie Demonstrationsanwendungen und Beispiele sind auf der Plattform GitHub veröffentlicht.

Henrik Flodell

Senior Marketing Director, Alif Semiconductor

Sie möchten gerne weiterlesen?