Cosa possono fare i produttori di MCU per accelerare l’adozione dell’intelligenza artificiale?
Nel 2024, numerosi nuovi prodotti di intelligenza artificiale (IA) basati su LLM (Large Language Model) sono stati introdotti sul mercato da aziende come OpenAI e Google. Negli endpoint informatici e di consumo, come smartphone e personal computer, l’intelligenza artificiale non solo è entrata a far parte del mainstream, ma è ormai diventata il mainstream stesso.
Sorprende quindi che i produttori di dispositivi embedded non abbiano ancora adottato su larga scala l’intelligenza artificiale o l’apprendimento automatico (ML) nei dispositivi endpoint. Le ragioni sono molteplici, non da ultimo i vincoli in termini di risorse di elaborazione e di consumo energetico dei microcontrollori tradizionali, dei processori applicativi e dei sistemi su chip (SoC).
Ma l’esitazione dei progettisti di dispositivi nell’incorporare algoritmi ML ha rallentato lo slancio del ML nell’IoT e in altri tipi di dispositivi normalmente basati su MCU. Questa esitazione è comprensibile, ma il forte fascino e le nuove funzionalità del software AI nei dispositivi di consumo suggeriscono che un’adozione più rapida della tecnologia ML nell’IoT potrebbe offrire un enorme valore potenziale.
Quindi cosa dovrebbero fare i produttori di MCU per aiutare gli OEM a superare le barriere tecniche e operative che impediscono l’accettazione del software ML da parte dei progettisti di dispositivi embedded?
Il principio dell’indeterminazione: in che modo il machine learning porta i progettisti embedded fuori dalla loro zona di comfort
Se i progettisti di dispositivi embedded sono riluttanti a integrare algoritmi ML in dispositivi basati su MCU, questo è in parte dovuto al fatto che i loro metodi di formazione e sviluppo sono orientati verso un tipo di software completamente diverso, deterministico e programmatico.
Una classica funzione di controllo in tempo reale riceve un input come la misurazione della temperatura da un sensore ed esegue un’azione specifica, ad esempio spegnere un dispositivo se la temperatura supera una soglia di sicurezza. L’MCU si è evoluto fino a diventare la base hardware preminente per questo tipo di funzione di controllo deterministico, in tempo reale. Un MCU basato su una CPU RISC come un core Arm® Cortex-M fornisce la latenza garantita e l’esecuzione sequenziale ad alta velocità delle funzioni richieste nelle applicazioni: dal controllo del motore all’elaborazione dei dati dei sensori fino al controllo del display.
Per lo sviluppatore di applicazioni, la scrittura del tradizionale codice software programmatico “if/then” ha un filo logico e il suo funzionamento è limitato da condizioni conoscibili che possono essere definite esplicitamente. Una volta eseguito il debug, il codice genera un output del tutto prevedibile e affidabile in un dispositivo come una telecamera di sicurezza o un utensile elettrico: applicazioni classiche per il controllo basato su MCU. Oggi, tali dispositivi offrono nuove possibilità per aggiungere valore attraverso l’aggiunta di funzioni ML alle funzioni di controllo esistenti. E questo software ML può essere eseguito all’edge, direttamente nell’MCU.
Nelle telecamere di sicurezza, ad esempio, è possibile automatizzare il monitoraggio in tempo reale di potenziali intrusi: un potente software ML basato su cloud è in grado di rilevare e analizzare con precisione il comportamento delle persone nel campo visivo. Ma il costo e il consumo energetico di una telecamera di questo tipo possono essere drasticamente ridotti se il feed video viene pre-scansionato da un processore locale in grado di distinguere le forme umane da altri oggetti nel campo visivo. Ciò significa che la fotocamera attiverà il sistema per caricare fotogrammi sul cloud solo quando il feed video contiene informazioni potenzialmente rilevanti, anziché caricare continuamente l’intero feed.
ML offre un valore di trasformazione simile in un trapano elettrico. Dotato di una radio a banda ultra larga (UWB), il trapano può ricevere segnali RF che variano a seconda del materiale che sta perforando. Ciò consente al trapano di verificare che sia in uso il tipo corretto di punta e di rilevare possibili pericoli, come un tubo dell’acqua nascosto nella parete.
La scrittura di un software programmatico tradizionale per eseguire questo tipo di funzione in modo efficace potrebbe non essere possibile e richiederebbe sicuramente una quantità di sforzi e tempo di sviluppo spropositati. Ma addestrare un’adeguata rete neurale a riconoscere, ad esempio, il pattern dei riflessi da un tubo di rame interrato nel cemento in una trasmissione UWB è un compito relativamente banale. Allo stesso modo, grandi dataset di addestramento e reti neurali open source sono prontamente disponibili per i sistemi ML, consentendo di rilevare il movimento delle persone in uno stream video.
Ma l’approccio all’addestramento di un simile algoritmo ML è dissimile dall’approccio di uno sviluppatore di software programmatico per MCU o processori embedded che ha avuto una formazione “classica”. Invece di strutturare, scrivere ed eseguire il debug del codice, per gli algoritmi ML lo sviluppatore embedded deve pensare a:
- Come assemblare un adeguato dataset di addestramento
- Come valutare e selezionare una rete neurale idonea
- Come configurare e gestire un framework di deep learning, come TensorFlow Lite, compatibile con l’MCU di destinazione o altro hardware
Mentre il software programmatico può essere migliorato attraverso processi come il debugging e l’analisi dettagliata del codice, l’ottimizzazione del funzionamento dell’inferenza ML è un tipo di attività completamente diverso: implica l’analisi di fattori per migliorare l’accuratezza e la velocità dell’inferenza aumentando la dimensione del dataset di addestramento o migliorando la qualità dei campioni del dataset di addestramento.
E l’output di un algoritmo ML è anche qualitativamente diverso da quello di un software classico: è probabilistico, fornendo una risposta a una domanda (“C’è un tubo di rame nascosto nella parete?”) sotto forma di un’inferenza tracciata con un determinato grado di sicurezza. Non è deterministico: la risposta probabilmente è giusta, ma potrebbe essere sbagliata.
Pertanto, per ottenere il valore della funzionalità ML, i progettisti di dispositivi basati su MCU devono adottare un nuovo metodo di sviluppo e accettare un nuovo tipo di output: probabilistico anziché deterministico. Questo è un territorio poco familiare: non sorprende che il mondo embedded sia stato alquanto restio nell’implementare il machine learning.
Quindi, cosa possono fare i produttori di MCU per facilitare la transizione verso un mondo embedded incentrato sull’intelligenza artificiale e per rendere l’ambiente operativo favorevole al software ML?
Tre caratteristiche di un MCU compatibile con il machine learning
Per Alif Semiconductor, è una questione esistenziale, poiché la missione dell’azienda sin dalla sua fondazione nel 2019 è stata quella di fornire ai produttori di dispositivi embedded e IoT una nuova gamma di MCU e processori di fusione che offrano la migliore combinazione di AI e ML alla minima potenza. Il suo modello di business dipende dall’adozione diffusa del machine learning nel mondo embedded.
Secondo l’analisi di Alif, tre caratteristiche chiave di un MCU offrono ai produttori le migliori possibilità di successo con nuovi prodotti basati su ML.
- Offrire un ambiente hardware che aiuti, e non ostacoli, l’implementazione degli algoritmi di rete neurale. Una CPU RISC è al centro delle funzioni di controllo di un MCU, ma la sua modalità di funzionamento sequenziale è ostile all’esecuzione dei cicli MAC di una rete neurale. Un’unità di elaborazione neurale (NPU), invece, è ottimizzata per l’esecuzione MAC e altre operazioni di rete neurale. Un’architettura MCU, che dispone di una o più NPU che operano insieme a una o più CPU, offre la base migliore per l’inferenza veloce e a basso consumo richiesta per le applicazioni IA edge.
I test rispetto ai benchmark standard del settore per le funzioni ML come il rilevamento dell’attività vocale, la cancellazione del rumore, la cancellazione dell’eco e il riconoscimento vocale automatico, mostrano che una combinazione di una CPU Arm Cortex-M55 e una NPU Ethos-U55 offre un miglioramento nella velocità di inferenza pari a 50 volte rispetto a una sola CPU Cortex-M7 di fascia alta, con una riduzione del consumo energetico pari a 25 volte. - Consentire al team di progettazione del dispositivo di lavorare ad applicazioni ML in un ambiente di sviluppo familiare. Per le funzioni di controllo svolte da una CPU, il mercato degli MCU è riuscito a consolidare le scelte in un’unica architettura: la Cortex-M di Arm. Ma alcuni produttori di MCU integrano la CPU con una NPU proprietaria, costringendo gli utenti ad abbandonare il familiare ambiente Arm per l’implementazione di ML nei loro design.
Alla fine, è molto probabile che il mercato degli MCU converga su Arm per NPU e CPU. Un MCU con una NPU Arm Ethos insieme a una CPU Cortex-M consente agli sviluppatori di condividere gli stessi strumenti Arm e l’ecosistema software sia nella parte di controllo sia in quella ML dell’applicazione. - Abilitare la sperimentazione early-stage con i tipi di applicazioni ML più diffusi. La natura probabilistica dell’inferenza ML si presta a un approccio trial-and-error allo sviluppo proof-of-concept, basato sull’uso e il perfezionamento di modelli di reti neurali open source e dataset di addestramento.
Questo è il motivo per cui Alif Semiconductor fornisce il suo AI/ML AppKit, hardware di sviluppo preconfigurato per la raccolta di dati su vibrazioni, voce e visione, assieme a un’ampia serie di sistemi dimostrativi per vari casi d’uso dell’IA.
Il kit è dotato di un LCD a colori da 4”, un modulo telecamera integrato, microfoni PDM e I2S e sensori inerziali. I pacchetti di driver del dispositivo e del sistema operativo, nonché applicazioni dimostrative ed esempi, sono disponibili sulla piattaforma GitHub.
L’opportunità, oggi, di rendere i dispositivi integrati più utili e indispensabili
L’opportunità di portare la capacità trasformativa del ML nei dispositivi integrati è finalmente arrivata: la tecnologia è pronta per l’implementazione mainstream. Anche se in precedenza l’adozione è stata rallentata dalla mancanza di disponibilità di MCU nativi per il machine learning che operano in un ambiente di sviluppo Arm familiare, questo non è più un motivo per non implementare il machine learning. L’introduzione di prodotti come la famiglia Ensemble di MCU e processori di fusione di Alif Semiconductor, che offrono una selezione di CPU Arm Cortex-M55 single e multi-core e opzioni di prodotto basate su NPU Ethos-U55, ha offerto agli sviluppatori embedded una nuova piattaforma di sviluppo e hardware compatibile con il machine learning.
Con uno strumento di sviluppo come AI/ML AppKit, è ora possibile implementare soluzioni di machine learning all’edge.