Energieeffiziente selbstanpassende Anwendungen entwerfen
Eine Methode, um Anwendungen zu erstellen, die Energieverbrauch und Leistung ausbalancieren.
― 9 min Lesedauer
Inhaltsverzeichnis
Die zunehmende Nutzung kleiner Geräte, die maschinelles Lernen durchführen können, hat es möglich gemacht, Anwendungen zu betreiben, die Daten aus verschiedenen Quellen, die mit dem Internet der Dinge (IoT) verbunden sind, effizient verarbeiten und sortieren können. Solche Anwendungen sind in vielen Situationen entscheidend, wie zum Beispiel bei der Überwachung der Sicherheit in Smart Cities. Allerdings besteht ein grosser Bedarf, sicherzustellen, dass diese Systeme auch energieeffizient arbeiten.
Dieser Artikel präsentiert eine Methode, die sich auf die Entwicklung und den Start von Anwendungen konzentriert, die sich basierend auf dem Energieverbrauch und den Aufgaben, die sie erledigen müssen, anpassen können. Wir wollen die besten Konfigurationen für diese Anwendungen finden, die ein Gleichgewicht zwischen der Leistung (zum Beispiel Objekterkennung und schnelle Verarbeitung von Bilddaten) und dem Energieverbrauch schaffen. Die Methode, die wir besprechen, beinhaltet einen intelligenten Suchprozess, der nur wenige Proben benötigt, um die besten Optionen zu finden.
Um zu zeigen, wie diese Methode funktioniert, betrachten wir eine spezielle Anwendung zur Erkennung von Fussgängern. Unsere Ergebnisse zeigen, dass diese selbstadaptierende Anwendung viel Energie sparen kann – bis zu 81% – während die Genauigkeit nur geringfügig um etwa 2% bis 6% gesenkt wird.
Der Bedarf an Energieeffizienz
Sowohl Forscher als auch Unternehmen sind zunehmend besorgt über die grosse Menge an Energie, die von verschiedenen digitalen Diensten verbraucht wird, und die steigenden Energiekosten. Der Energieverbrauch zu reduzieren, hat höchste Priorität, besonders da die Ressourcen begrenzt sind. Daher stellt die Schaffung nachhaltiger Anwendungen, die von künstlicher Intelligenz (KI) betrieben werden, eine grosse Herausforderung dar.
KI-basierte Anwendungen laufen häufig auf Geräten, bei denen die Stromversorgung nicht konstant sein kann. Dazu gehören batteriebetriebene Geräte und solche, die auf erneuerbare Energien wie Solarpanels oder Windturbinen angewiesen sind. Solche Anwendungen benötigen oft viele Ressourcen, was die effiziente Nutzung von Energie zu einem kritischen Aspekt macht, wenn KI in diesen Umgebungen eingesetzt wird.
Beispielsweise erfordern Überwachungsdienste in Smart Cities, die Fussgänger erkennen oder den Verkehr analysieren, sowie Umweltanwendungen wie die Erkennung von Waldbränden, eine schnelle Datenverarbeitung und hohe Genauigkeit, während gleichzeitig die Energiekosten im Auge behalten werden müssen.
Diese Szenarien erzeugen grosse Mengen an Daten von IoT-Sensoren, die in vielen Formen kommen, wie Zeitreihen oder Videostreams, und energieintensive maschinelle Lernmodelle erfordern könnten. Für Anwendungen, die auf Batteriestrom angewiesen sind, ist es entscheidend, den Energieverbrauch zu minimieren, um die Batterielebensdauer zu verlängern.
Um diesen Bedürfnissen gerecht zu werden, haben Forscher verschiedene Methoden untersucht, um Systeme zu entwickeln, die Qualität, Effizienz und Energieverbrauch intelligent ausbalancieren können.
Die meisten Energiesparmassnahmen konzentrierten sich auf niedrigere Aufgaben wie Planung, Routing und Optimierung von maschinellen Lernmodellen. Allerdings könnte die Fokussierung auf diese Aspekte die Anwendungsleistung unvorhersehbar machen. Das erschwert es, sich auf widersprüchliche Ziele wie Genauigkeit, Energieverbrauch und Effizienz zu konzentrieren, wenn nur niedrige Merkmale berücksichtigt werden.
Einige Strategien haben die Optimierung von Anwendungscode, die Energieanalyse von Software und verschiedene architektonische Methoden untersucht, um den Energieverbrauch zu steuern und zu reduzieren. Doch die Analyse des Energieverbrauchs, nachdem er erfolgt ist, um Korrekturen vorzunehmen, kann langfristig komplex und kostspielig sein.
In diesem Artikel betrachten wir, wie man KI-basierte Anwendungen so konfiguriert, dass ein Gleichgewicht zwischen dem Management des Energieverbrauchs und dem Erreichen der Anwendungsziele hergestellt wird. Obwohl dies ein häufiges Problem für Anwendungen am Rand ist, liegt unser Fokus auf KI-basierten Anwendungen aufgrund ihrer anspruchsvollen Natur.
Obwohl es logisch erscheinen mag, jede mögliche Konfiguration einer Anwendung gründlich zu überprüfen, gibt es erhebliche Herausforderungen: Jede Konfiguration zu erkunden, kann sehr teuer sein, und es gibt selten eine einzige Konfiguration, die alle Ziele gleichzeitig optimiert.
Die Aufgabe, verschiedene Konfigurationen für KI-Anwendungen zu überprüfen, ist kostspielig, weil es eine grosse Zahl möglicher Konfigurationen gibt und Zeit benötigt wird, um zu testen und zu messen, wie gut diese Konfigurationen den Energie- und Anwendungszielen entsprechen. Diese Kosten steigen in grossen, vielfältigen Umgebungen, in denen verschiedene Geräte möglicherweise individuell angepasst werden müssen.
Zusätzlich erfordern sich ändernde Bedingungen oft unterschiedliche Konfigurationen, um effektiv zu sein. Zum Beispiel ist das Erkennen von Fussgängern nachts, wenn sie seltener sind, sehr unterschiedlich von der Erkennung in einem belebten Bereich nach einer Veranstaltung.
Da es keine universelle Lösung gibt, müssen Anwendungen sich an Veränderungen in ihrer Umgebung anpassen, um gut zu funktionieren.
Um diese Herausforderungen anzugehen, präsentieren wir eine Methode, die Entwickler anleitet, selbstadaptierende Anwendungen zu erstellen, die ihre Betriebsmodi basierend auf Echtzeitbedingungen ändern können, um letztendlich den Energieverbrauch mit den Anwendungsanforderungen ins Gleichgewicht zu bringen.
Beiträge dieser Arbeit
Dieser Artikel bietet mehrere wichtige Beiträge:
Energiebewusster Entwurfansatz: Der Artikel stellt eine Methode zum Bau selbstadaptiver KI-Anwendungen vor, die automatisch Leistungsanforderungen und Energieverbrauch basierend auf einem aus gesammelten Daten aufgebauten Modell ausbalancieren können.
Intelligentes Suchverfahren: Wir skizzieren eine intelligente Suchstrategie, die hilft, nützliche Konfigurationen für diese Anwendungen zu finden, indem nur ein kleiner Teil des gesamten Suchraums beprobt wird.
Prototyp-Implementierung: Ein Prototyp einer selbstadaptiven Anwendung zur Fussgängererkennung wird gezeigt, um die praktische Anwendung der Methode zu demonstrieren.
Nachweis der Effektivität: Der Artikel präsentiert Testergebnisse und Analysen, die zeigen, dass die selbstadaptive Anwendung besser abschneiden kann als traditionelle Anwendungen, die sich nicht anpassen, indem sie Energie sparen und gleichzeitig ähnliche Genauigkeitsniveaus beibehalten.
Motivationsszenario: Fussgängersicherheit
Laut Verkehrssicherheitsberichten sind die Fussgängerunfälle gestiegen, was die Notwendigkeit effektiver Überwachungssysteme unterstreicht. Die Entwicklung von Systemen zur digitalen Echtzeitüberwachung des Verkehrs ist entscheidend, um Unfälle zu vermeiden.
Ein solches System überprüft kontinuierlich den Verkehr, um potenzielle Gefahren wie Fussgänger an unsicheren Orten zu erkennen, indem es Videoübertragungen nutzt und nahegelegene Fahrzeuge über fortschrittliche Kommunikationsnetze alarmiert. Solche Systeme können zahlreiche Kameras und Sensoren in städtischen und ländlichen Gebieten beinhalten.
Edge-Geräte, die diese Videostreams verarbeiten, arbeiten kontinuierlich und können batteriebetrieben oder auf erneuerbare Energien angewiesen sein, was Energiesparmassnahmen unerlässlich macht. Diese Sicherheitsanwendungen erfordern einen Mindeststandard an Service, um effektiv zu funktionieren. Sie müssen kontinuierlich ihr Energiebudget und ihre Arbeitslast überwachen und sowohl Hardware- als auch Softwarekonfigurationen bei Bedarf anpassen.
In unserem STM-Szenario können Anwendungen in verschiedenen Modi funktionieren, je nach Fussgängeraufkommen. Eine selbstadaptierende Anwendung kann automatisch den Energieverbrauch mit der Notwendigkeit für schnelle Verarbeitung und Genauigkeit ausgleichen, indem sie zwischen diesen Modi wechselt.
Energiebewusste selbstadaptive Anwendungen entwerfen
Der erste Schritt in unserem Ansatz erfordert die Definition des Verhaltensmodells der selbstadaptiven Anwendung. Dies geschieht mithilfe einer endlichen Zustandsmaschine (FSM), die Betriebsmodi mit Bedingungen verknüpft, die Änderungen auslösen.
Jeder Modus hat spezifische Merkmale in Bezug auf Energieverbrauch, Erkennungsgenauigkeit und Verarbeitungsgeschwindigkeit, die die Identifizierung notwendiger Konfigurationen vorantreiben.
Hochwertige Konfigurationen für diese Betriebsmodi zu finden, kann knifflig sein, besonders da KI-Anwendungen zahlreiche Parameter haben, die zu einem riesigen Erkundungsraum führen. Eine vollständige Erkundung ist unpraktisch, und Simulationen liefern oft ungenaue Ergebnisse für reale Anwendungen.
Um dem entgegenzuwirken, definieren wir ein Multi-Objective Optimization Problem (MOOP), das hilft, geeignete Setups zu finden, die spezifische Ziele erfüllen, wie maximale Erkennungsgenauigkeit bei minimalem Energieverbrauch.
Mit einem beliebten Algorithmus erkunden wir den Suchraum effektiv und erzielen gute Ergebnisse, indem wir nur einen kleinen Teil der gesamten Konfigurationen überprüfen. Während dieser Suche protokollieren wir alle bewerteten Leistungsergebnisse und extrahieren die besten Optionen.
Sobald wir diese Konfigurationen haben, können wir diejenigen bestimmen, die die notwendigen Betriebsmodi der selbstadaptiven Anwendung erfüllen. Um diesen Prozess zu verfeinern, verwenden wir eine Methode namens gewichtete graue Beziehung Analyse (WGRA), die die Entscheidungsfindung vereinfacht, indem sie Ziele in einen einzigen Wert kombiniert, der leicht verglichen werden kann.
Wir stellen sicher, dass Ingenieure Zustände extrahieren können, die Anforderungen für verschiedene Betriebsmodi erfüllen, indem wir unterschiedliche Gewichtungen verwenden, um bestimmten Zielen Priorität vor anderen zu geben.
Sobald geeignete Konfigurationen identifiziert sind, können Ingenieure die selbstadaptive Anwendung implementieren. Wir transformieren die abstrakte endliche Zustandsmaschine in eine konkrete, indem wir spezifische Bedingungen definieren und sie mit den Betriebsmodi verknüpfen.
Empirische Bewertung des Ansatzes
Um unsere Methode zu validieren, haben wir zwei Hauptforschungsfragen untersucht:
Kann unsere Suchmethode Lösungen finden, die so gut sind wie die aus einer nahezu vollständigen Suche? Diese Frage bewertet, ob das Beproben eines kleineren Teils des Suchraums ähnliche Ergebnisse wie eine umfassende Erkundung liefern kann.
Kann eine selbstadaptive Anwendung ein besseres Gleichgewicht zwischen konkurrierenden Zielen erreichen als eine nicht adaptive Anwendung? Diese Frage bewertet, ob das selbstadaptive Setup in Bezug auf Energieverbrauch und Anwendungsqualität besser abschneiden kann als traditionelle Anwendungen.
Für unsere Experimente verwendeten wir ein Testsetup, das einen Raspberry Pi mit einer Kamera und einem Hardwarebeschleuniger zur Durchführung von Fussgängererkennungsaufgaben umfasste.
In Bezug auf unsere erste Forschungsfrage fanden wir heraus, dass unsere Suchmethode vergleichbare Ergebnisse erzielen konnte wie die, die durch umfangreiche Erkundung des Parameterraums gewonnen wurden. Dies wurde durch die Analyse von Lösungen bestätigt, die aus beiden Methoden gewonnen wurden.
In Bezug auf unsere zweite Frage verglichen wir eine selbstadaptive Anwendung mit verschiedenen nicht-adaptiven Konfigurationen über unterschiedliche Fussgängerverkehrsszenarien, die nach Wochentagen und Wochenenden getrennt waren.
Die Ergebnisse zeigten, dass die selbstadaptive Lösung es schaffte, Energie zu sparen, während sie ein ähnliches Genauigkeitsniveau beibehielt. Sie schnitt besser ab als die meisten traditionellen Anwendungen in Bezug auf Verarbeitungsgeschwindigkeit und Energieverbrauch und spiegelte wider, wie sie sich effektiv an unterschiedliche Bedingungen anpassen konnte.
Beobachtungen zu selbstadaptiven Anwendungen
Die Ergebnisse zeigen, dass selbstadaptive Anwendungen auf sich ändernde Umgebungen reagieren können, während sie ein Gleichgewicht zwischen Leistungsanforderungen und Energieeffizienz aufrechterhalten. Dies bestätigt, dass unsere vorgeschlagene Methode Entwickler effektiv anleiten kann, Anwendungen zu schaffen, die sowohl betriebliche Ziele als auch Energieeinschränkungen erfüllen.
Der Ansatz unterstreicht die Bedeutung der Gestaltung von Systemen, die nicht nur hohe Leistung anstreben, sondern auch den Nachhaltigkeitsaspekt ihres Energieverbrauchs berücksichtigen. Angesichts des zunehmenden Fokus auf erneuerbare Energien und umweltfreundliche Lösungen bietet die Entwicklung energiebewusster selbstadaptiver Anwendungen einen gangbaren Weg in industriellen und akademischen Bereichen.
Fazit und zukünftige Arbeiten
Zusammenfassend zeigt unsere Untersuchung zu energiebewussten selbstadaptiven Anwendungen, wie effektive Methoden ein besseres Energiemanagement ermöglichen können, ohne die Leistung zu beeinträchtigen. Wir haben die Anwendbarkeit unseres Ansatzes durch umfassende Experimente demonstriert und sein Potenzial hervorgehoben, den Energieverbrauch signifikant zu reduzieren, während eine zuverlässige Anwendungsleistung in realen Umgebungen sichergestellt wird.
In Zukunft gibt es spannende Möglichkeiten für die Weiterentwicklung. Wir planen, die Methoden weiter zu verfeinern, um das Design endlicher Zustandsmaschinen zu automatisieren und die Fähigkeiten selbstadaptiver Anwendungen zu erweitern, um Cluster von Geräten zu verwalten, die gleichzeitig anpassbar sind.
Wir wollen auch unseren Ansatz in grösseren und komplexeren Setups testen, die batteriebetriebene Geräte umfassen, die mit erneuerbaren Energiequellen verbunden sind, um zu sehen, wie diese Systeme Echtzeitmetriken nutzen können, um ihre Energieverbrauchsstrategien zu optimieren.
Titel: An Energy-Aware Approach to Design Self-Adaptive AI-based Applications on the Edge
Zusammenfassung: The advent of edge devices dedicated to machine learning tasks enabled the execution of AI-based applications that efficiently process and classify the data acquired by the resource-constrained devices populating the Internet of Things. The proliferation of such applications (e.g., critical monitoring in smart cities) demands new strategies to make these systems also sustainable from an energetic point of view. In this paper, we present an energy-aware approach for the design and deployment of self-adaptive AI-based applications that can balance application objectives (e.g., accuracy in object detection and frames processing rate) with energy consumption. We address the problem of determining the set of configurations that can be used to self-adapt the system with a meta-heuristic search procedure that only needs a small number of empirical samples. The final set of configurations are selected using weighted gray relational analysis, and mapped to the operation modes of the self-adaptive application. We validate our approach on an AI-based application for pedestrian detection. Results show that our self-adaptive application can outperform non-adaptive baseline configurations by saving up to 81\% of energy while loosing only between 2% and 6% in accuracy.
Autoren: Alessandro Tundo, Marco Mobilio, Shashikant Ilager, Ivona Brandić, Ezio Bartocci, Leonardo Mariani
Letzte Aktualisierung: 2023-08-31 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2309.00022
Quell-PDF: https://arxiv.org/pdf/2309.00022
Lizenz: https://creativecommons.org/licenses/by-sa/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://labists.com/products/raspberry-pi-4-case-kit
- https://www.gwinstek.com/en-GB/products/detail/GPM-8213
- https://coral.ai/products/accelerator
- https://coral.ai/models/object-detection/
- https://optuna.readthedocs.io/en/stable/reference/samplers/generated/optuna.samplers.NSGAIISampler.html
- https://optuna.readthedocs.io/en/stable/reference/samplers/generated/optuna.samplers.RandomSampler.html
- https://docs.voxel51.com/user_guide/evaluation.html
- https://pysm.readthedocs.io/
- https://gitlab.com/sustainable-continuum-monitoring/self-adaptive-moop/-/tree/ASE_2023?ref_type=tags