Progettare applicazioni auto-adattive a risparmio energetico
Un metodo per creare app che bilanciano consumo energetico e prestazioni.
― 10 leggere min
Indice
- La necessità di efficienza energetica
- Contributi di questo lavoro
- Scenario motivazionale: Sicurezza dei pedoni
- Progettare applicazioni auto-adattive orientate all'energia
- Valutazione empirica dell'approccio
- Osservazioni sulle applicazioni auto-adattive
- Conclusione e lavoro futuro
- Fonte originale
- Link di riferimento
L'uso crescente di piccoli dispositivi in grado di effettuare compiti di machine learning ha reso possibile l'esecuzione di applicazioni che possono elaborare e ordinare in modo efficiente i dati provenienti da varie fonti collegate all'Internet delle Cose (IoT). Queste applicazioni sono fondamentali in molte situazioni, come il monitoraggio della sicurezza nelle smart city. Tuttavia, c'è una forte necessità di garantire che questi sistemi usino anche l'energia in modo saggio.
Questo articolo presenta un metodo focalizzato sulla progettazione e il lancio di applicazioni che possono adattarsi in base all'energia che consumano e ai compiti che devono svolgere. L'obiettivo è trovare i migliori set-up per queste applicazioni che raggiungano un equilibrio tra quanto bene funzionano (come la rilevazione accurata degli oggetti e l'elaborazione veloce dei frame) e quanta energia utilizzano. Il metodo di cui discutiamo prevede l'uso di un processo di ricerca intelligente che richiede solo pochi campioni per trovare le migliori opzioni.
Per dimostrare come funziona questo metodo, esaminiamo un'applicazione specifica per la rilevazione dei pedoni. I nostri risultati rivelano che questa applicazione auto-adattiva può risparmiare molta energia-fino all'81%-riducendo solo leggermente l'accuratezza di circa il 2% al 6%.
La necessità di efficienza energetica
Ricercatori e aziende sono sempre più preoccupati per l'enorme quantità di energia utilizzata dai vari servizi digitali e per l'aumento dei costi energetici. Ridurre il Consumo Energetico è diventata una priorità assoluta, specialmente considerando le risorse limitate. Creare applicazioni sostenibili alimentate da intelligenza artificiale (AI) è quindi una sfida significativa oggi.
Le applicazioni basate su AI vengono spesso eseguite su dispositivi situati dove l'approvvigionamento elettrico potrebbe non essere costante. Questi includono dispositivi a batteria e quelli che si affidano a fonti di energia rinnovabile come i pannelli solari o le turbine eoliche. Tali applicazioni richiedono spesso molte risorse, rendendo l'uso efficiente dell'energia un aspetto critico da considerare quando si utilizza l'AI in questi contesti.
Ad esempio, i servizi di monitoraggio utilizzati nelle smart city per rilevare pedoni o analizzare il traffico, così come le applicazioni ambientali come la rilevazione di incendi boschivi, richiedono tutti un'elaborazione rapida dei dati e alta precisione, assicurando allo stesso tempo che il consumo energetico sia conveniente.
Questi scenari generano grandi quantità di dati dai sensori IoT, che possono presentarsi in molte forme, come serie temporali o flussi video, e potrebbero richiedere modelli di machine learning che consumano molta energia. Per le applicazioni che si affidano alla batteria, è cruciale minimizzare il consumo energetico per prolungare la vita della batteria.
Per affrontare queste esigenze, i ricercatori hanno esplorato vari metodi per progettare sistemi che possano bilanciare qualità, efficienza e uso dell'energia in modo intelligente.
La maggior parte degli sforzi per il risparmio energetico si è concentrata su compiti di basso livello come la pianificazione, il routing e l'ottimizzazione dei modelli di machine learning. Tuttavia, limitare l'attenzione a questi aspetti potrebbe portare a prestazioni imprevedibili delle applicazioni. Questo rende difficile bilanciare obiettivi contrastanti, come accuratezza, uso dell'energia ed efficienza, se si considerano solo le caratteristiche di basso livello.
Alcune strategie hanno indagato l'ottimizzazione del codice delle applicazioni, l'analisi energetica del software e diversi metodi architettonici per controllare e ridurre il consumo energetico. Tuttavia, analizzare l'uso dell'energia dopo che è avvenuto per apportare correzioni può essere complesso e costoso nel lungo periodo.
In questo articolo, vediamo come configurare applicazioni basate su AI per raggiungere un equilibrio tra la gestione dell'uso dell'energia e il raggiungimento degli obiettivi applicativi. Sebbene questo sia un problema comune per le applicazioni al confine, ci concentriamo sulle applicazioni basate su AI a causa della loro natura esigente.
Anche se potrebbe sembrare logico controllare a fondo ogni possibile configurazione per un'applicazione, ci sono sfide significative: esplorare ogni configurazione può essere molto costoso e raramente esiste un'unica configurazione che ottimizza tutti gli obiettivi contemporaneamente.
Il compito di controllare diverse configurazioni per le applicazioni AI è costoso a causa del gran numero di configurazioni possibili e del tempo necessario per campionare e misurare quanto bene queste configurazioni soddisfano gli obiettivi energetici e applicativi. Questo costo aumenta in ambienti grandi e variegati dove diversi dispositivi potrebbero necessitare di adattamenti individuali delle configurazioni.
Inoltre, le condizioni che cambiano spesso richiedono configurazioni diverse per essere efficaci. Ad esempio, rilevare i pedoni di notte quando sono meno frequenti è molto diverso dal detectarli in una zona affollata dopo un evento.
Poiché non esiste una soluzione unica per tutti, le applicazioni devono adattarsi ai cambiamenti nel loro ambiente per funzionare bene.
Per affrontare queste sfide, presentiamo un metodo che guida gli sviluppatori a creare applicazioni auto-adattive che possono cambiare i loro modi operativi in base alle condizioni in tempo reale, bilanciando in definitiva l'uso dell'energia con i requisiti dell'applicazione.
Contributi di questo lavoro
Questo articolo fornisce diversi contributi importanti:
Approccio di design orientato all'energia: L'articolo introduce un metodo per costruire applicazioni AI auto-adattive che possono bilanciare automaticamente le esigenze di prestazione e il consumo energetico basandosi su un modello costruito dai dati raccolti.
Procedura di ricerca intelligente: Delineiamo una strategia di ricerca intelligente che aiuta a trovare configurazioni utili per queste applicazioni campionando solo una piccola parte dell'intero spazio di ricerca.
Implementazione di prototipo: Viene mostrato un prototipo di un'applicazione auto-adattiva per la rilevazione dei pedoni per dimostrare l'applicazione pratica del metodo.
Evidenza di efficacia: L'articolo presenta risultati di test e analisi, indicando che l'applicazione auto-adattiva può superare le applicazioni tradizionali che non si adattano, risparmiando energia mantenendo livelli simili di accuratezza.
Scenario motivazionale: Sicurezza dei pedoni
Secondo i rapporti sulla sicurezza stradale, le fatalità tra pedoni sono aumentate, sottolineando la necessità di sistemi di monitoraggio efficaci. Sviluppare sistemi di Monitoraggio del Traffico Intelligente (STM) capaci di tracciare digitalmente il traffico in tempo reale è vitale per prevenire incidenti.
Un sistema STM rivede continuamente il traffico per identificare pericoli potenziali, come pedoni in posizioni non sicure, utilizzando flussi video e avvisando i veicoli vicini tramite reti di comunicazione avanzate. Tali sistemi possono coinvolgere numerose telecamere e sensori nelle aree urbane e rurali.
I dispositivi edge che elaborano questi flussi video funzionano continuamente e possono essere alimentati a batteria o con energia rinnovabile, rendendo essenziali le misure di risparmio energetico. Queste applicazioni di sicurezza richiedono uno standard minimo di servizio per funzionare efficacemente. Devono monitorare continuamente il loro budget energetico e il carico di lavoro, adattando le configurazioni hardware e software quando necessario.
Nel nostro scenario STM, le applicazioni possono operare in diversi modi a seconda dei livelli di traffico pedonale. Un'applicazione auto-adattiva può automaticamente bilanciare il consumo energetico con la necessità di elaborazione rapida e accuratezza passando tra questi modi.
Progettare applicazioni auto-adattive orientate all'energia
Il primo passo per utilizzare il nostro approccio richiede la definizione del modello di comportamento dell'applicazione auto-adattiva. Questo viene fatto utilizzando una macchina a stati finiti (FSM) che mappa i modi operativi alle condizioni che attivano i cambiamenti.
Ogni modo ha caratteristiche specifiche riguardo all'uso dell'energia, all'accuratezza della rilevazione e alla velocità di elaborazione, che guidano l'identificazione delle configurazioni necessarie.
Trovare configurazioni di alta qualità per questi modi operativi può essere complicato, specialmente poiché le applicazioni AI hanno numerosi parametri che portano a uno spazio di esplorazione vasto. L'esplorazione completa è impraticabile e le simulazioni spesso forniscono risultati inaccurati per le applicazioni nel mondo reale.
Per affrontare questo, definiamo un Problema di Ottimizzazione Multi-Obiettivo (MOOP), che aiuta a trovare set-up adatti che soddisfano obiettivi specifici, come massimizzare l'accuratezza nella rilevazione e minimizzare il consumo energetico.
Utilizzando un algoritmo popolare, esploriamo lo spazio di ricerca in modo efficace, ottenendo buoni risultati controllando solo una piccola porzione delle configurazioni totali. Durante questa ricerca, registriamo tutti i risultati delle prestazioni valutate ed estraiamo le migliori opzioni.
Una volta che abbiamo queste configurazioni, possiamo determinare quelle che soddisfano i modi operativi necessari dell'applicazione auto-adattiva. Per affinare questo processo, utilizziamo un metodo chiamato analisi relazionale grigia pesata (WGRA), che semplifica il processo decisionale combinando obiettivi in un singolo valore che può essere facilmente confrontato.
Assicuriamo che gli ingegneri possano estrarre stati che soddisfano le esigenze per diversi modi operativi applicando set di pesi variabili per dare priorità a certi obiettivi rispetto ad altri.
Una volta identificate le configurazioni idonee, gli ingegneri possono implementare l'applicazione auto-adattiva. Trasformiamo la macchina a stati finiti astratta in una concreta definendo condizioni specifiche e collegandole ai modi operativi.
Valutazione empirica dell'approccio
Per validare il nostro metodo, abbiamo esaminato due domande di ricerca principali:
La nostra metodologia di ricerca può trovare soluzioni buone quanto quelle di una ricerca praticamente esaustiva? Questa domanda valuta se campionare una parte più piccola dello spazio di ricerca possa fornire risultati simili all'esplorazione completa.
Un'applicazione auto-adattiva può raggiungere un miglior equilibrio tra obiettivi competitori rispetto a un'applicazione non adattiva? Questa domanda valuta se la configurazione auto-adattiva possa performare meglio riguardo l'uso energetico e la qualità applicativa rispetto alle applicazioni tradizionali.
Per i nostri esperimenti, abbiamo utilizzato un set di test che includeva un Raspberry Pi dotato di una telecamera e un acceleratore hardware per eseguire compiti di rilevazione pedonale.
Nella nostra prima domanda di ricerca, abbiamo scoperto che il nostro metodo di ricerca riusciva a ottenere risultati comparabili a quelli ottenuti tramite un'ampia esplorazione dello spazio dei parametri. Ciò è stato confermato analizzando le soluzioni ottenute da entrambi i metodi.
Per quanto riguarda la nostra seconda domanda, abbiamo confrontato un'applicazione auto-adattiva con varie configurazioni non adattive in diversi scenari di traffico pedonale separati tra giorni feriali e weekend.
I risultati hanno indicato che la soluzione auto-adattiva è riuscita a risparmiare energia mantenendo un livello simile di accuratezza. Ha performato meglio rispetto alla maggior parte delle applicazioni tradizionali in termini di velocità di elaborazione e uso energetico, dimostrando come potesse adattarsi efficacemente a condizioni variabili.
Osservazioni sulle applicazioni auto-adattive
I risultati mostrano che le applicazioni auto-adattive possono rispondere a cambiamenti ambientali mantenendo un equilibrio tra le esigenze di prestazione e l'efficienza energetica. Questo conferma che il nostro metodo proposto può guidare efficacemente gli sviluppatori nella creazione di applicazioni che soddisfano sia gli obiettivi operativi sia le limitazioni energetiche.
L'approccio sottolinea l'importanza di progettare sistemi che non solo mirano a elevate prestazioni, ma considerano anche l'aspetto sostenibile del loro uso energetico. Dato il crescente focus sulle energie rinnovabili e sulle soluzioni ecologiche, sviluppare applicazioni auto-adattive orientate all'energia offre una via praticabile per il futuro sia in ambito industriale che accademico.
Conclusione e lavoro futuro
In sintesi, la nostra esplorazione delle applicazioni auto-adattive orientate all'energia rivela come metodi efficaci possano consentire una migliore gestione dell'energia senza compromettere le prestazioni. Abbiamo dimostrato l'applicabilità del nostro approccio attraverso esperimenti approfonditi e evidenziato il suo potenziale per ridurre significativamente il consumo energetico, garantendo nel contempo prestazioni affidabili delle applicazioni nel mondo reale.
Andando avanti, ci sono affascinanti possibilità per futuri sviluppi. Intendiamo affinare ulteriormente i metodi per automatizzare la progettazione delle macchine a stati finiti e ampliare le capacità delle applicazioni auto-adattive per gestire gruppi di dispositivi che possono adattarsi simultaneamente.
Puntiamo anche a testare il nostro approccio in set-up più grandi e complessi, coinvolgendo dispositivi a batteria connessi a fonti di energia rinnovabile, per vedere come questi sistemi possano incorporare metriche in tempo reale per ottimizzare le loro strategie di consumo energetico.
Titolo: An Energy-Aware Approach to Design Self-Adaptive AI-based Applications on the Edge
Estratto: 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.
Autori: Alessandro Tundo, Marco Mobilio, Shashikant Ilager, Ivona Brandić, Ezio Bartocci, Leonardo Mariani
Ultimo aggiornamento: 2023-08-31 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2309.00022
Fonte PDF: https://arxiv.org/pdf/2309.00022
Licenza: https://creativecommons.org/licenses/by-sa/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- 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