Auf Endgeräten am Rande des Internets Maschinelles Lernen – überall

Algorithmen für maschinelles Lernen werden zukünftig statt in der Cloud auf Endgeräten ausgeführt – um kurze Reaktionszeiten zu erzielen und um die Netzwerke zu entlasten. Dafür werden Prozessoren mit niedriger Leistungsaufnahme und entsprechende Werkzeuge benötigt, die eine Portierung vereinfachen.

In Science-Fiction-Büchern und -Filmen sind Maschinen seit langem mit vollständiger Autonomie und auch mit Intelligenz ausgestattet, welche die ihrer menschlichen Schöpfer bei weitem übertreffen. Das ist spannend und wirft grundlegende Fragen auf. Wie lange dauert es dann noch, bis diese von Schriftstellern erfundene Vision real funktioniert?

Genauso wie in jedem guten Film macht die Technik Fortschritte, wenn nämlich ein zwingendes Interesse besteht, die Grundlagen vorhanden sind, Aussicht auf Gewinn besteht und gute Leute zusammenarbeiten, um den Plan umzusetzen. All diese Ingredienzien sind heute gegeben, und so entwickelt sich das maschinelle Lernen weiter – für eine breite Palette von Anwendungen wie Spracherkennung und -steuerung, Gesichts- und auch Personenerkennung, Gestenerkennung und -steuerung, Objekt- und Anomalieerkennung sowie Augmented Reality rasant weiter.

Leistung und Kosten ins Gleichgewicht bringen

Die Forschung und Entwicklung für maschinelles Lernen (ML) nahm auf den leistungsstärksten Computern der Welt ihren Anfang, und ein Großteil des Trainings und der Schlussfolgerungen erfolgen immer noch auf Supercomputern und Serverfarmen in der Cloud. Die Technik ist jedoch mittlerweile so weit fortgeschritten, dass es nun möglich ist, ML aus der Cloud an den Rand des Internets zu verlagern, wo es viel nützlicher sein kann.

Was soll maschinelles Lernen am Rand des Internets bewirken? Hauptgrund für die Anwendung ist die Verbesserung der Interaktion mit dem Anwender. Die Benutzer möchten nicht lange warten, bis ein Gerät sie erkennt und ihre Befehle befolgt. Wenn die Erkennung und Reaktion irgendwo in der Cloud erfolgt, kann dies zu Verzögerungen, verringerter Zuverlässigkeit und einem höheren Potenzial für falsche Reaktionen führen.

In Bewegung befindliche Maschinen wie Serviceroboter, Drohnen und auch autonome Fahrzeuge haben einen noch größeren Bedarf an maschinellem Lernen am Rande des Internets, da sie kontinuierlich Sensorsignale erfassen, den Status ableiten und innerhalb von Millisekunden über ihre nächsten Aktionen entscheiden müssen. Die Gesetze der Physik unterstützen eine derart intensive Datenerfassung und Echtzeitreaktionen über eine Funkverbindung zu einem entfernten Cloud-Dienst nicht. Einfach ausgedrückt: Autonome Maschinen, die in Bewegung sind, erfordern ein permanentes, zuverlässiges Lernen und eine Entscheidungsfindung an Bord.

Für die meisten Menschen und Maschinen ist es wichtig, die Privatsphäre zu schützen, wertvolle Daten und Kommunikationen zu sichern und vor Hacker-Angriffen und Klon-Vorgängen zu schützen. Immer öfter erhält zum Beispiel NXP Anfragen, um die unbefugte Verwendung von Sprach-, Video- und Sensordaten zu verhindern. Sicherheit und Datenschutz sind einfacher zu gewährleisten, wenn die Rohdaten auf dem lokalen Computer verbleiben – am Rand des Internets (Edge) – und nur minimale oder gar keine Daten per Internet in die Cloud übertragen werden.

Und schließlich sind die Kosten für die Technik so weit gesunken, dass ein Teil der ML-Verarbeitung auf Edge-Geräte in Gebäuden, Wohnungen und Fahrzeugen verlagert werden kann. Die daraus resultierende Reduzierung oder völlige Eliminierung der laufenden Gebühren für die Cloud-Nutzung – Datenübertragung, Verarbeitung und Speicherplatz – kann die Kosten der Migration von ML-Diensten aus der Cloud auf die unterschiedlichen Edge-Geräte oder Sensorknoten kompensieren.

So kommt die Revolution des maschinellen Lernens zum Laufen

NXP arbeitet mit allen seinen Partnern kontinuierlich daran, integrierte Schaltungen, Software und Werkzeuge anzubieten, mit denen erschwingliche und praktische ML-Anwendungen für die reale Welt verwirklicht werden können. Grundlage dafür ist die skalierbare Prozessorplattform von ARM (Bild 1). Damit lässt sich jede Entwicklung so skalieren, dass sie für den jeweiligen Anwendungsfall hinsichtlich Kosten und Energiebedarf ein Optimum ergibt. Sowohl Plattform als auch Software können zu einem hohen Grad wiederverwendet werden, wodurch sich geringere Wartungs- und Betriebskosten ergeben.

Zu Beginn generieren viele neuronale Netze (NN) ein trainiertes Modell oder eine Inferenzmaschine auf einem zentralen Computer. Beides kann dann später auf einem kleineren Endgerät, am Rand des Internets, ausgeführt werden. Ein trainiertes Modell oder eine Inferenzmaschine sind ein Satz mathematischer Gleichungen, die Objekte, Sprache oder Änderungen des erwarteten Verhaltens erkennen. TensorFlow und Caffe sind Beispiele für Frameworks, die APIs (Application Programming Interfaces) verwenden, um die komplexe Mathematik zu abstrahieren und es einfacher zu machen, trainierte Modelle und Anwendungen auf verschiedene Plattformen und unterschiedliche Hardware-Ressourcen zu portieren.

Der nächste Schritt besteht darin, das trainierte Modell auf eine Plattform zu portieren, die aus einem breiten Spektrum verfügbarer Optionen ausgewählt wurde. ML für Sensoreingänge mit geringer Bandbreite kann häufig auf sehr kostengünstigen Mikrocontrollern verarbeitet werden, die auf Cortex-M4 oder Cortex-M7 von ARM basieren, z.B. den i.MX-RT-Prozessoren von NXP.

Typische Funktionen sind das Erkennen eines akustischen Schlüsselwortes, eines charakteristischen Geräusches oder einer Anomalie wie etwa einer Vibration oder einer Abweichung der Umgebung vom Normalen. Für eine begrenzte Anzahl von Personen oder Wörtern können Gesichts- und Spracherkennung auch auf Prozessoren der Cortex-M-Familie ausgeführt werden.

Mit zunehmender Komplexität, insbesondere bei Eingängen für Kamerasensoren, kann die Anwendung auch auf einen Mikrocontroller mit mehreren Prozessorkernen umgestellt werden, z.B. auf den Applikationsprozessor i.MX 8M Nano mit einem bis vier Prozessorkernen Cortex-A53, einem Cortex-M7-Kern und einer GPU mit OpenCL-Funktion. Er verfügt über einen MIPI-CSI-Kameraeingang und weitere integrierte Funktionen.

Für nur 149 US-Dollar können Entwickler das komplette Coral-Entwicklungsmodul [1] von Google für ML-Inferenzen mit hoher Geschwindigkeit und geringer Stromaufnahme erwerben. Mit diesem Entwicklungsmodul lassen sich Projekte rasch vom Prototypen bis zur Produktionsreife entwickeln, und zwar mit einem kompakten, nur 40 × 48 mm2 großen, sofort einsatzbereiten SoC (System-on-Chip). Es basiert auf einem Applikationsprozessor i.MX 8M Quad von NXP mit Linux-Betriebssystem, eMMC-Speicher, LPDDR4-RAM, WiFi- und Bluetooth-Transceivern sowie dem leistungsfähigen Coprozessor Edge-TPU (Tensor Processing Unit) von Google.

Die Edge-TPU ist ein kleiner, von Google entwickelter ASIC, der bei geringer Leistungsaufnahme – 4 TOPS bei 2 W – leistungsstarke Inferenzberechnungen für ML ermöglicht und Bilderkennungsmodelle wie MobileNet v2 mit mehr als 100 Bildern pro Sekunde ausführen kann.

Für eine noch bessere Objekterkennung kann ein Applikationsprozessor wie der i.MX 8QuadMax eingesetzt werden, auf dem zwei Cortex-A72, vier Cortex-A53, zwei Cortex-M4, zwei GPUs mit OpenCL- und OpenVX-Vision-Erweiterungen, ein DSP und acht Kanäle für MIPI-CSI (Mobile Industry Processor Interface – Camera Serial Interface) integriert sind. Damit lassen sich Videosignale von bis zu acht Kameras, die jeweils einen Übertragungskanal verwenden, oder andere Kombinationen von Kameras, die mehrere Übertragungskanäle nutzen, verarbeiten. Die beiden Unternehmen Basler (Deutschland) und Congatec (Deutschland) haben ihr kombiniertes System für die industrielle Bildverarbeitung und Objekterkennung für den i.MX 8QuadMax vorgestellt und portieren es zur weiteren Kostenoptimierung auf die i.MX-8M-Familie [2].

Um diese Skalierbarkeit (Bild 2) auch umsetzen zu können, werden dann solche Tools benötigt, mit denen sich der Leistungsdurchsatz maximieren, die Systemkosten senken, die Reaktionszeit und Genauigkeit erhöhen und die Art und Weise optimieren lassen, in der jedes trainierte Modell bzw. jede Inferenzmaschine die auf dem Chip integrierten Ressourcen nutzen kann.

Software-Entwicklungsumgebungen für maschinelles Lernen

Bei der Migration von ML in die Randbereiche des Internets besteht eine der größten Herausforderungen darin, die ML-Anwendung auf Geräten mit eingeschränkten Ressourcen bereitzustellen, insbesondere wenn ML-Anwendungen in der Cloud erstellt wurden. Um direkt auf Edge-Geräten ausgeführt zu werden, müssen diese Modelle optimiert und an eine Inferenzmaschine angepasst werden, die den spezifischen Prozessortyp wie CPU, GPU, DSP oder ML-Beschleuniger unterstützt.

Au-Zone Technologies Inc. beispielsweise bietet zahlreiche ML-Demos mit Tools zur Optimierung für eine Vielzahl von Bausteinen an. Mit dem DeepView Machine Learning Toolkit und der RunTime Inference Engine können Entwickler schnell DL-Netzwerke auf einer Vielzahl von Embedded-Mikrocontrollern, CPUs, GPUs und ML-Beschleunigern entwickeln, trainieren und bereitstellen. Aufbauend auf dem ML Toolkit bietet das Intelligent IoT Dev Kit von Au-Zone eine Auswahl bewährter Sensoren, Prozessoren und Modellkombinationen und ermöglicht damit ein extrem rasches Durchlaufen der Phasen Prototypenerstellung, Anpassung und kommerzieller Bereitstellung [3].

Die Softwareentwicklungsumgebung für Maschinelles Lernen, eIQ [4], von NXP, unterstützt ML-Algorithmen mit Inferenzmaschinen, Compilern für Neuronale Netzwerke und optimierten Bibliotheken, die speziell auf Mikrocontroller, i.MX-RT-Crossover-Prozessoren und die i.MX-Applikationsprozessoren von NXP ausgerichtet sind (Bild 3). Sie basiert auf Open-Source-Techniken und ist vollständig in das MCUXpresso Software Development Kit (SDK) von NXP und die Yocto-Entwicklungsumgebung integriert. Dadurch werden alle ML-Software-Abhängigkeiten berücksichtigt, einschließlich der erforderlichen Hardware-Abstraktionsschichten, die die komplexe Technik des maschinellen Lernens mit den darunter liegenden Rechenmodulen verbinden. Dadurch gestaltet sich die Entwicklung kompletter Anwendungen auf Systemebene deutlich einfacher [5].

Die eIQ Softwareentwicklungsumgebung wächst rasant [4]. Implementiert sind optimierte Techniken wie CMSIS-NN, TensorFlow, TensorFlow Lite, OpenCV und Arm NN. Die eIQ-Software wird von Beispielanwendungen zur Objekt- und Spracherkennung begleitet, um einen Einstiegspunkt für den Einsatz von maschinellem Lernen im Edge-Computing zu eröffnen. Die Weiterentwicklung ist noch nicht abgeschlossen, Weiteres ist geplant:

  • Richtlinien für den Import von vortrainierten Modellen, die auf gängigen NN-Frameworks wie TensorFlow, Caffe und ONNX basieren.
  • Projektübergreifende Beispielanwendungen zur Demonstration typischer Anwendungsfälle wie z.B. eine Kamera-Inferenzmaschine.
  • Unterstützung für neuere Compiler für Neuronale Netze wie GLOW.
  • Eine Reihe klassischer ML-Algorithmen wie Support Vector Machine (SVM) und Random Forest.

Kombination mit der Cloud

Trotz der klaren Vorteile der Ausführung von ML-Modellen auf lokalen Computern darf nicht übersehen werden, welche Vorzüge bereits bewährte cloudbasierte ML-Software von führenden Dienstanbietern wie Amazon und Microsoft offerieren. Sie bieten Sprach- und Bildverarbeitungs- und andere ML-Dienste sowie robuste Entwicklungskits, die einfach zu verwenden, kostengünstig und mit minimalem Aufwand verbunden sind.

Mit den Referenzdesigns von Amazon können Entwickler interaktive Produkte mit integriertem Alexa Voice Service (AVS) realisieren. Diese Kits umfassen Chipsätze, Sprachverarbeitungstechniken und Client-Software, die alle für die Nutzung der AVS-Anwendungsprogrammierschnittstellen zertifiziert sind und auf einer Vielzahl von Prozessoren ausgeführt werden können.

Microsoft bietet Nutzern von Azure IoT mit seiner auf den i.MX-RT106C-Crossover-Prozessoren von NXP basierenden »Anomaly Detection Solution for Azure« Funktionen für künstliche Intelligenz und maschinelles Lernen. Sie enthält Sensoren sowie zugehörige Tools zur Erkennung von Anomalien, die auf ML-Algorithmen wie Random Forest und Simple Vector Machine (SVM) zurückgreift, um das normale Verhalten von Geräten zu modellieren und anormales Verhalten mithilfe einer Kombination aus lokalen und Cloud-Mechanismen zu erkennen. Damit werden deutlich geringere Anforderungen an die Übertragungsbandbreite zur Cloud gestellt, und das bei gleichzeitiger Aufrechterhaltung der vollständigen Online-Protokollierungs- und Verarbeitungsfunktionen für Anwendungen wie die vorausschauende Wartung rotierender Maschinenteile, Anwesenheits- und Sabotageerkennung.

Microsoft und NXP haben eine Zusammenarbeit angekündigt, um einen neuen Azure-Sphere-zertifizierten Applikationsprozessor zu realisieren, mit dem die Azure-Sphere-Sicherheitsplattform nahtlos auf einem Prozessor für Edge-Knoten ausgeführt werden kann, der heterogenes Multikern-Computing, ein umfassendes Grafikerlebnis und eine stromsparende Audiosignalverarbeitung unterstützt.

NXP arbeitet mit führenden Hard- und Softwareunternehmen, Forschern und Distributoren zusammen, um seine Kunden beim Entwickeln von ML-Anwendungen zu unterstützen, angefangen bei generischen Beispielcodes und Referenzdesigns bis hin zu vorgefertigten, projektspezifischen und zertifizierten Plattformen, die ausreichend Flexibilität bieten, um eigene benutzerdefinierte Funktionen hinzuzufügen.

Literatur

[1] Build intelligent ideas with our platform for local AI. Google, https://coral.withgoogle.com.

[2] Smart Retail AI Demo – NXP, Basler, Congatec and Irida Labs. NXP, Video, 6. März 2019, www.nxp.com/video/smart-retail-ai-demo-nxp-basler-congatec-and-irida-labs:EW_Shopping_AI.

[3] DeepView 2.0. Au Zone Technologies, www.embeddedml.com.

[4] eIQ ML Software Development Environment. NXP, www.nxp.com/design/software/development-software/eiq-ml-development-environment:EIQ.

[5] Steele, D.: AI Public Safety Detection Demo with Arcturus Networks. NXP, Video, 24. Juni 2019, www.nxp.com/video/arcturus-networks-application-demo:eIQDavidSteele.

 

Die Autorin

Alexandra Dopplinger, P. Eng.,
ist Global Industrial Marketing Manager für die Microcontroller Group von NXP. Sie hält ein Patent für eine redundante Netzwerktechnik, hat mehr als 16 Jahre Erfahrung in der Halbleiterindustrie und zehn Jahre Erfahrung in der Telekommunikation.

Nach dem Bachelor (B. Eng.) in Elektrotechnik, von der Memorial University of Newfoundland, in St. John‘s, Kanada, übernahm Dopplinger Aufgaben, die von Hardware- und Systementwicklung bis zum Produktmanagement und Marketing reichen. Heute nutzt sie ihr umfassendes Wissen in der industriellen Automatisierungs- und Steuerungstechnik, um das Industriegeschäft von NXP auszubauen.