
Tiny Machine Learning (TinyML) è una tecnologia che appartiene alla più grande famiglia edge AI e che consente lo sviluppo di dispositivi autonomi e sicuri in grado di raccogliere, elaborare e fornire risultati senza trasferire dati a entità esterne. La tecnologia mira a democratizzare l’Intelligenza Artificiale per renderla disponibile a più settori e contribuire alla rivoluzione digitale dei dispositivi intelligenti. Sul sito web di Elettronica Open Source abbiamo descritto spesso applicazioni riguardanti questa tecnologia. In questo articolo, invece, viene presentata una panoramica delle schede di sviluppo e dei software per l'implementazione di applicazioni TinyML.
Introduzione
L'edge AI è una tecnologia che combina la potenza dell'Intelligenza Artificiale (AI) con i vantaggi dell'edge computing, consentendo l'elaborazione dei dati e l'esecuzione di algoritmi AI direttamente sui dispositivi ai margini della rete, anziché fare affidamento sui sistemi basati su servizi cloud centralizzati. Avvicinando l’Intelligenza Artificiale alla sorgente dei dati, edge AI consente un processo decisionale più efficiente e reattivo in un’ampia gamma di applicazioni.
Alcuni dei vantaggi derivanti dallo sfruttamento dell'Intelligenza Artificiale edge sono:
- Elaborazione in tempo reale - l'elaborazione e l'analisi dei dati avviene direttamente sui dispositivi periferici senza fare affidamento sul cloud computing o su server remoti per consentire tempi di risposta più rapidi e un processo decisionale immediato.
- Privacy e sicurezza dei dati - riducendo la necessità di trasmettere informazioni sensibili, si riduce il rischio di violazioni dei dati.
- Latenza ridotta - eliminando la necessità di inviare dati a server remoti per l'elaborazione, si riduce di conseguenza la latenza laddove i tempi di risposta rapidi sono fondamentali.
- Ottimizzazione della larghezza di banda - eseguendo calcoli localmente viene ottimizzato l'utilizzo della larghezza di banda e ridotta la congestione della rete.
- Scalabilità - l'elaborazione distribuita su più dispositivi edge consente architetture scalabili e decentralizzate.
I sistemi edge AI possono essere distribuiti in varie configurazioni e su molti tipi diversi di dispositivi. Ad esempio, esistono applicazioni che implementano modelli di Machine Learning all’interno di sistemi embedded, come i dispositivi IoT. Tali configurazioni rientrano nell'ambito dell'apprendimento automatico integrato (embedded ML). I sistemi integrati fanno generalmente parte di un altro dispositivo ed eseguono funzioni specializzate all'interno di tali prodotti. L’apprendimento automatico integrato può quindi migliorare l’intelligenza di tali funzioni.
TinyML
TinyML è la classe di sistemi di Machine Learning integrato che implementa modelli di Intelligenza Artificiale su microchip e microcontrollori (MCU) per consentire analisi dei dati su dispositivi a consumo estremamente basso. Un MCU che sfrutta il TinyML è una piattaforma hardware che consuma meno di 1 mW e dispone di pochi kilobyte di RAM, in genere con la stessa quantità di memoria flash per l'archiviazione dei dati. Al giorno d'oggi, la maggior parte degli MCU è passata alle CPU a 32 bit, grazie ad ARM. Gli MCU non sempre hanno un sistema operativo, sono a thread singolo ed evitano l'uso di funzioni di localizzazione dinamica. Dispositivi di questo tipo possono essere alimentati da batterie che si prevede abbiano una lunga durata.
Su tali dispositivi è possibile eseguire sofisticati modelli di Machine Learning come le reti neurali profonde (DNN); ciò consente una varietà di casi d'uso innovativi con dispositivo sempre attivo, come il riconoscimento delle immagini, il tracciamento degli oggetti e il rilevamento degli eventi in tempo reale per applicazioni di sicurezza. Per riuscire ad implementare modelli ML su dispositivi hardware con forti vincoli in termini di risorse, sono stati impiegati vari framework e tecniche. Questi strumenti cercano di ottimizzare ed eseguire in modo efficiente i modelli ML, considerando la memoria e la potenza limitate dei microcontrollori a basso consumo.
Software per il TinyML
Lo sviluppo e l'implementazione dei sistemi TinyML richiedono una varietà di componenti e strumenti software, inclusi framework, librerie, sistemi operativi e ambienti di sviluppo che consentono di progettare, implementare e ottimizzare algoritmi di Intelligenza Artificiale per dispositivi periferici, tenendo conto dei vincoli e dei requisiti unici degli ambienti di edge computing.
Il software disponibile può essere classificato in base alla funzionalità principale o allo scopo di ciascun framework/strumento, come mostrato in Figura 1.

Figura 1: Frameworks e strumenti software per lo sviluppo di applicazioni TinyML
I Frameworks tutto in uno sono caratterizzati dal fatto di integrare in un unico ambiente software tutte le funzionalità necessarie allo sviluppo di un'applicazione TinyML: addestramento, ottimizzazione e distribuzione dei modelli ML negli MCU. TensorFlow Lite for Microcontrollers è un port di TensorFlow Lite di Google sviluppato appositamente per l'esecuzione di modelli DL su dispositivi embedded con pochi kilobyte di memoria. La Embedded Learning Library (ELL) consente lo sviluppo e l'implementazione di modelli ML su piattaforme con risorse limitate. Un prerequisito è un computer con risorse sufficienti per generare il codice macchina che verrà eseguito dal dispositivo incorporato. Edge Impulse è un framework basato su cloud che offre una pipeline completa per integrare modelli ML su MCU. Per cominciare, consente all'utente di raccogliere dati direttamente dal dispositivo, etichettarli e creare un set di dati sul cloud. Edge Impulse dispone di blocchi ML precostruiti che possono essere addestrati sul set di dati fornito o addirittura creare nuovi blocchi ML in base alle esigenze del progetto. L'utente ha la possibilità di testare le prestazioni del modello su una simulazione virtuale prima di distribuirlo su un dispositivo fisico. Inoltre, mentre valutano le prestazioni del modello sui dispositivi, gli utenti possono accedere ai dati di classificazione per verificare se il modello si comporta come previsto in tempo reale. Un'altra grande caratteristica di questo framework è il supporto versatile di schede e MCU. I Frameworks all-in one rappresentano l’opzione migliore per coloro che sono alle prime armi nel campo TinyML e dei dispositivi edge.
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2148 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.
