
Hardwareauswahl
Die Auswahl der Hardware ist ein entscheidender Schritt bei der Entwicklung von TinyML-Anwendungen. Verschiedene Hardwareplattformen bieten unterschiedliche Vor- und Nachteile. Im Folgenden sind einige Kriterien für die Hardwareauswahl, die berücksichtigt werden sollten:
Rechenleistung: Edge-Geräte verfügen normalerweise über begrenzte Rechenleistung im Vergleich zu leistungsstarken Servern oder Cloud-Plattformen. Dies bedeutet, dass Modelle auf diesen Geräten effizient und optimiert sein müssen, um akzeptable Inferenzgeschwindigkeiten zu gewährleisten.
Speicher: Der verfügbare Speicher auf Edge-Geräten ist oft begrenzt. Dies betrifft sowohl den Speicherplatz für das Modell selbst als auch den Arbeitsspeicher, der während der Inferenz benötigt wird. Die Modellgröße und die Ressourcenanforderungen sind daher wichtige Überlegungen.
Energieeffizienz: Viele Edge-Geräte sind batteriebetrieben, und die Energieeffizienz ist entscheidend. Das Modell muss so konzipiert sein, dass es mit minimalem Energieverbrauch arbeitet, um die Batterielebensdauer zu verlängern.
Sensorik: Edge-Geräte nutzen oft Sensoren, um Daten aus ihrer Umgebung zu sammeln. Die Qualität und Genauigkeit dieser Sensoren kann variieren, und das Modell sollte in der Lage sein, mit unterschiedlichen Dateneingaben umzugehen.
Betriebssysteme: Edge-Geräte verwenden oft spezielle Betriebssysteme, die möglicherweise weniger Ressourcen zur Verfügung stellen als Standard-PCs oder Server. Die Integration des Modells in das spezifische Betriebssystem ist wichtig.
In der folgenden Tabelle werden Geräte hinsichtlich der ausgewählten Faktoren miteinander verglichen, wobei diese mit einer Skala von 1 (sehr gut) bis 5 (mangelhaft) bewertet werden.
Computer
5
3 - 4
1
TensorFlow, PyTorch, AutoML, etc.
1
1
Handys / Tablets
4
2 - 3
1
TensorFlow Lite
3
2
Einplatinencomputer
3
1 - 2
1
TensorFlow, PyTorch, AutoML, etc.
2
3
Mikrocontroller
2
1
4
TensorFlow Lite, STM32Cube.AI, AIfES
5
5
SoC/ FPGA/ ASIC
1
1 - 5
5
FINN, Caffeinated FPGA
4
4
In Abbildung 40 sind die Eigenschaften von Computer, Einplatinencomputer, Mikrocontroller und AISC/FPGA zu sehen. Während der Computer volle Leistung, Handhabbarkeit und Flexibilität bietet, spart der Einplatinencomputer an Leistung, bietet aber eine etwas kleinere Bauform und hat einen geringeren Energieverbrauch. Der Mikrocontroller übertrifft den Einplatinencomputer in diesen Eigenschaften, bietet jedoch weniger Flexibilität und Handhabbarkeit, sowie Leistung. Der ASIC/FPGA hingegen hat eine vergleichbare Leistung wie der Einplatinencomputer, weniger Handhabbarkeit und Flexibilität wie der Mikrocontroller, aber bietet den wenigsten Energieverbrauch und die kleinste Bauform.
Echtzeitbedingungen und Herausforderungen
Die Echtzeitfähigkeit ist in vielen Edge-Anwendungen entscheidend. Hier sind einige der Herausforderungen und Einschränkungen im Zusammenhang mit Echtzeit-Edge-Systemen:
Echtzeitverarbeitung: In Echtzeitanwendungen müssen Modelle innerhalb eines bestimmten Zeitfensters Inferenzentscheidungen treffen. Dies erfordert effiziente Modelle und Algorithmen, um die geforderte Latenz einzuhalten.
Energieeffizienz: Die Energieeffizienz ist in batteriebetriebenen Edge-Geräten von entscheidender Bedeutung. Modelle müssen so optimiert sein, dass sie mit minimalem Energieverbrauch arbeiten.
Datenübertragung: In Echtzeitanwendungen kann die Übertragung von Daten an zentrale Server oder die Cloud zu lange dauern oder aus Datenschutzgründen nicht gewollt sein. Die Verarbeitung muss in diesen Fällen daher direkt auf dem Edge-Gerät erfolgen. Die generierten Ergebnisse oder relevanten Informationen können dann an zentrale Server oder die Cloud übermittelt werden, um darauf entsprechend zu reagieren, weitere Analysen durchzuführen oder für zukünftige Referenzzwecke gespeichert zu werden.
Fehlererkennung und -toleranz: Echtzeitanwendungen erfordern oft Mechanismen zur Fehlererkennung und -toleranz, um unvorhergesehene Situationen zu bewältigen und einen stabilen Betrieb zu gewährleisten.
Mehr erfahren: Linkedin - Aniket Kumar/TinyML: Empowering Edge AI for Resource-Limited Devices, unite.ai/TinyML: Applications, Limitations, and It’s Use in IoT & Edge Devices
Hardwarebeschleuniger
Hardwarebeschleuniger sind spezielle Hardwarekomponenten, die entwickelt wurden, um bestimmte Berechnungen zu beschleunigen. In Bezug auf TinyML können sie eine entscheidende Rolle spielen, um die Leistung von Modellen auf Edge-Geräten zu steigern. Hier sind einige Beispiele für Hardwarebeschleuniger und wie sie in TinyML genutzt werden können:
GPU (Graphics Processing Unit): GPUs sind leistungsstarke Hardwarebeschleuniger, die ursprünglich für Grafikberechnungen entwickelt wurden. GPUs sind besonders gut für parallelisierbare Aufgaben geeignet, wodurch sie in der Lage sind, viele einfache Berechnungen gleichzeitig durchzuführen. Im Vergleich zu anderen Hardwarebeschleunigern bieten GPUs eine breitere Palette von Anwendungen, einschließlich grafischer und rechenintensiver Aufgaben, was ihre Vielseitigkeit in Edge-Geräten unterstreicht.
Mehr erfahren: NVIDIA/Why GPUs Are Great for AI, Analytics Vidhya/CPU vs GPU: Why GPUs are More Suited for Deep Learning?
TPU (Tensor Processing Unit): TPUs sind, von Google entwickelt, speziell für TensorFlow-basierte Workloads optimiert und zeichnen sich durch ihre hohe Effizienz bei der Verarbeitung von Tensoroperationen aus. Im Vergleich zu GPUs und NPUs bieten TPUs eine höhere Leistung pro Watt für KI-Aufgaben, was sie besonders für energieeffiziente Anwendungen in der TinyML-Umgebung auszeichnet.
Mehr erfahren: GoogleCloud/Einführung in Cloud TPU, OpenMetal/TPU vs GPU: Pros and Cons
NPU (Neural Processing Unit): NPUs sind darauf ausgerichtet, speziell für neuronale Netze optimierte Berechnungen durchzuführen. Im Unterschied zu GPUs und TPUs, die oft breiter einsetzbar sind, bieten NPUs eine spezialisierte Architektur, die auf die Anforderungen von KI-Anwendungen zugeschnitten ist. Dies ermöglicht eine höhere Energieeffizienz und Leistung für TinyML-Modelle.
Mehr erfahren: Digital Trends/What is an NPU?
FPGA (Field-Programmable Gate Array): FPGAs bieten eine flexible und programmierbare Hardwarearchitektur. Im Vergleich zu festen Hardwarebeschleunigern wie GPUs, TPUs und NPUs ermöglichen FPGAs eine maßgeschneiderte Anpassung an die spezifischen Anforderungen von TinyML-Modellen. Ihre Programmierbarkeit erlaubt eine optimale Nutzung für verschiedene Aufgaben und Szenarien auf Edge-Geräten.
Mehr erfahren: intel/FPGA vs. GPU for Deep Learning
Die Integration von Hardwarebeschleunigern erfordert oft spezielle Optimierungen und Anpassungen in der Modellentwicklung, um die Vorteile dieser Hardware voll auszuschöpfen.
Last updated