Sfide e soluzioni per lo sviluppo di applicazioni di Edge Machine Learning

AI periferica, Embedded ML, Edge ML, TinyML sono tutti sinonimi dello stesso concetto: abilitare algoritmi di Deep Learning su dispositivi embedded a bassissima potenza, aprendo la strada all'analisi e all'elaborazione periferica dei dati. In questo articolo, discutiamo le principali sfide e gli abilitatori tecnologici che dirigono l'espansione di questo campo. TinyML aprirà le porte a nuovi tipi di servizi e applicazioni edge non più basati su elaborazione cloud ma su inferenza periferica distribuita e autonomia decisionale.

Introduzione

Emersa negli ultimi anni come una nuova tecnologia all'intersezione tra apprendimento automatico, piattaforme embedded e software, TinyML si concentra sulla distribuzione di modelli di Machine Learning e di reti neurali profonde su dispositivi con risorse limitate (MCU), offrendo così soluzioni per applicazioni con vincoli di bassa latenza e limitata larghezza di banda. Diversi framework, che forniscono software per creare modelli TinyML e velocizzare la distribuzione dell'applicazione, sono attualmente in fase di sviluppo. I framework discussi in questo articolo (TensorFlow Lite, ELL, ARM-NN) si concentrano principalmente sulla distribuzione di modelli di rete neurale su microcontrollori. Essi integrano tutti un flusso di lavoro simile, dove un modello di rete neurale viene prima convertito in un tipo di formato comune e quindi ottimizzato internamente per la distribuzione sulla specifica piattaforma hardware. Questi framework vengono aggiornati regolarmente per supportare nuovi algoritmi di apprendimento automatico e nuove piattaforme hardware.

Dal cloud all'edge

Negli ultimi decenni, la produzione di dati è aumentata a ritmi senza precedenti. Questa tendenza è stata supportata anche dall'aumento delle capacità di elaborazione e archiviazione dei dati fornite dalle tecnologie cloud. L'aumento delle risorse di calcolo ha accelerato la ricerca e lo sviluppo di reti neurali profonde, che ha continuato a crescere nel tempo in termini di complessità e risorse. Oggi il cloud computing elabora i modelli AI più grandi con milioni di parametri che richiedono gigabyte di memoria ed elaborazione ultraveloce. Questi modelli di reti neurali di grandi dimensioni si concentrano principalmente su precisione e velocità, poiché hanno accesso a risorse di calcolo e memoria illimitate o quasi (Tabella 1).

Tabella 1: Comparazione delle caratteristiche delle tecnologie abilitanti ML
Tecnologia Cloud ML (∼2006) Mobile ML (∼2016) Tiny ML (∼2019)
Caratteristiche -DNN

-Modelli grandi (16-32GB)

-Milioni di parametri

-TFLOPs

-Focus su accuratezza

-Hardware: GPU,TPU,FPGA

-AlexNet, ResNet

-Dati: storage, scambio (1%)

-Algoritmi ottimizzati, CNN leggere

-Risorse limitate: 8GB RAM, limite a dimensione applicazione

-GFLOPs

-Focus sul compromesso tra accuratezza ed efficienza

-Hardware: SoC, NPU

-MobileNet_v1, ShuffleNet

-Dati: pic, audio, GPS (5%)

-CNN-micro

-Risorse molto limitate

-100KB RAM

-MCU con accelerazione hardware

-Svariati sensori

-Dati: rilevare il mondo intorno (95%)

L'emergere di dispositivi mobili come laptop, smartphone e tablet, ha dato origine all'elaborazione su mobile. Piattaforme di mobile computing hanno iniziato ad essere utilizzate in molti campi che richiedono l'elaborazione in tempo reale, senza fare affidamento sulla potenza di calcolo fornita dalla tecnologia cloud (Tabella 1). Questo spostamento verso piattaforme mobili ha avviato lo sviluppo di una nuova generazione di reti neurali di dimensioni più compatte e focalizzate sull'efficienza del modello, oltre che sulla sua precisione. Parallelamente a questa espansione, anche il campo dell'IoT si è allargato, potenziato dai progressi nella connettività e dall'abbondanza di soluzioni disponibili. Oggi, il numero di dispositivi distribuiti basati su microcontrollore cresce in modo esponenziale. Tuttavia, in molti casi, i dispositivi embedded non elaborano i dati raccolti, che vengono invece trasmessi a una posizione remota per l'archiviazione e l'ulteriore elaborazione. In alcune applicazioni, questo può causare problemi indesiderati di latenza, perdita e riservatezza dei dati.

I dispositivi embedded di solito raccolgono dati da vari sensori (telecamere CMOS, camere IR, audio, IMU, sensori di temperatura, sensori chimici, accelerometri, etc.). Questi dispositivi sono spesso alimentati a batteria e operano in un intervallo di bassa potenza (1 mW o meno). In molti casi il microprocessore sul dispositivo rimane sottoutilizzato nel tempo, poiché di solito effettua semplici compiti di elaborazione. L'uso diffuso di dispositivi embedded basati su MCU, la loro vicinanza alle fonti fisiche delle informazioni attraverso sensori, e le capacità di elaborazione sottoutilizzate li rendono altamente adatti per la distribuzione di algoritmi di inferenza leggeri. Questa tendenza ha dato origine
al Tiny Machine Learning (TinyML), un campo di tecnologia embedded emergente che mira a distribuire algoritmi di apprendimento automatico su dispositivi con risorse limitate e basati su MCU. La Figura 1 mostra l'accuratezza di vari modelli di reti neurali profonde sviluppati nel decennio passato. La precisione dei modelli aumenta in funzione della loro complessità (rappresentata dalla dimensione della sfera) e della complessità computazionale. La sfida degli sviluppatori TinyML è quindi quella di trovare modi per adattare questi algoritmi di apprendimento profondo per essere usati su dispositivi con risorse limitate ma con una elevata precisione dei modelli.

Figura 1: Accuratezza di vari modelli di reti neurali. L'accuratezza aumenta con l'aumentare della complessità del modello e del costo computazionale

TinyML consentirà innovazioni in vari campi, come i sistemi cyber-fisici distribuiti, sistemi autonomi, sanità, elettronica di consumo e nel campo generale dell'Intelligenza Artificiale.

Apprendimento automatico su MCU

Ci sono diversi vantaggi derivanti dall'esecuzione dei modelli ML su MCU a bassa potenza (< 1mW), tra cui:

  • Latenza: la latenza è un requisito fondamentale per le applicazioni critiche nel tempo. La trasmissione dei dati verso il cloud in genere introduce una latenza più lunga rispetto all'elaborazione dei dati sul dispositivo stesso. Le applicazioni basate sull'esperienza utente e le applicazioni per la sicurezza automobilistica sono esempi in cui la latenza non può essere tollerata.
  • Riduzione dei dati trasmessi: quando la connettività di rete è inaffidabile o addirittura inesistente, l'elaborazione dei dati deve avvenire obbligatoriamente sul dispositivo periferico. Spesso non è pratico eseguire lo streaming di dati da sensori che generano grandi quantità di dati grezzi, come fotocamere, accelerometri o microfoni. Nelle applicazioni basate su eventi, l'analisi dei dati sul dispositivo periferico può filtrare i dati prima dell'invio delle informazioni.
  • Efficienza energetica: le MCU sono intrinsecamente progettate per eseguire calcoli a potenza estremamente bassa, in modo che possano funzionare a lungo con un budget energetico limitato. Le MCU possono funzionare con batterie o altri tipi di fonti di energia, come l'energy harvesting.
  • Basso costo:  l'espansione delle applicazioni IoT in molti segmenti industriali è stata aiutata dal basso costo e dai volumi elevati dei microprocessori e dell'hardware embedded di supporto, e questa tendenza è probabile che continui.
  • Privacy: la privacy è sempre una preoccupazione quando vengono gestiti dati personali o altri dati altamente sensibili. Ciò è particolarmente vero se i dati vengono inviati al cloud, poiché i dati possono essere persi o rubati. Pertanto, l'elaborazione dei dati sul dispositivo si traduce in una maggiore privacy e una migliore protezione dei dati.
  • Autonomia: i piccoli dispositivi embedded possono contribuire alla maggiore autonomia del sistema al quale appartengono, generando decisioni locali indipendenti e basate sui dati, che possono essere condivise solo all'interno del sistema.

Tuttavia, l'esecuzione di Machine Learning su processori embedded a 32 bit comporta molte sfide tecniche. Le sfide più importanti nella distribuzione di reti neurali su microcontrollori riguardano le ridotte dimensioni della memoria e la durata della batteria. La dimensione del modello di apprendimento automatico deve essere sufficientemente piccola da rientrare nei vincoli imposti dai dispositivi MCU. Come illustrato nella Tabella 2, i tipici microcontrollori sono estremamente limitati in termini di memoria su chip SRAM (192 - 512 KB) e memoria flash (256 KB - 2 MB). L'intero modello di rete neurale con i suoi pesi, connessioni neurali e codice di supporto deve adattarsi alla piccola memoria flash. La dimensione della SRAM limita il buffer di memoria temporaneo utilizzato per memorizzare l'input del modello e le attivazioni dell'output. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2145 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend