giovedì, Novembre 21, 2024
HomeAZIENDESTMicroelectronics integra il supporto per Deeply Quantized Neural Network nel software di...

STMicroelectronics integra il supporto per Deeply Quantized Neural Network nel software di sviluppo STM32Cube.AI

STMicroelectronics ha rilasciato la versione 7.2.0 di STM32Cube.AI, il primo strumento di sviluppo di intelligenza artificiale (AI) per microcontroller in grado di supportare Deeply Quantized Neural Network (reti neurali profonde quantizzate) ultra efficienti.

STM32Cube.AI converte le reti neurali pre-addestrate in codice C ottimizzato per i microcontrollori (MCU) STM32. È uno strumento essenziale per lo sviluppo di soluzioni di intelligenza artificiale all’avanguardia che sfruttano al meglio le dimensioni limitate della memoria e la potenza di calcolo dei prodotti embedded. Spostare l’IA all’edge, lontano dal cloud, offre vantaggi sostanziali all’applicazione. Questi includono privacy by design, risposta deterministica e in tempo reale, maggiore affidabilità e minor consumo energetico. Aiuta anche a ottimizzare l’utilizzo del cloud.

Ora, con il supporto per formati di input di quantizzazione profonda come qKeras o Larq, gli sviluppatori possono ridurre ulteriormente le dimensioni della rete, l’ingombro di memoria e la latenza. Questi vantaggi liberano più possibilità dall’IA all’edge, comprese applicazioni minimali e sensibili ai costi. Gli sviluppatori possono quindi creare dispositivi perimetrali, come endpoint IoT autoalimentati che offrono funzionalità e prestazioni avanzate con un’autonomia della batteria più lunga. La famiglia STM32 di ST fornisce molte piattaforme hardware adatte. Il portafoglio si estende dagli MCU Arm Cortex-M0 a bassissima potenza ai dispositivi ad alte prestazioni che sfruttano i core Cortex-M7 , -M33 e i Cortex-A7.

STM32Cube.AI versione 7.2.0 aggiunge anche il supporto per i modelli TensorFlow 2.9, miglioramenti delle prestazioni del kernel, nuovi algoritmi di apprendimento automatico scikit e nuovi operatori ONNX (Open Neural Network eXchange).

Ulteriori informazioni su STM32Cube.AI v7.2.0 e sul download gratuito sono disponibili sul sito www.st.com



Lanciato nel 2019, STM32Cube.AI converte le reti neurali in codice ottimizzato per MCU STM32. La soluzione si basa su STM32CubeMX, che assiste gli sviluppatori nell’inizializzazione dei dispositivi STM32. STM32Cube.AI utilizza anche X-CUBE-AI, un pacchetto software contenente librerie per convertire reti neurali pre-addestrate. Gli sviluppatori possono utilizzare la Guida introduttiva di ST per iniziare a lavorare con X-CUBE-AI dall’interno di STM32CubeMX e provare la nuova funzionalità. Il supporto aggiuntivo per reti neurali profonde quantizzate è già stato inserito in un’applicazione per il conteggio delle persone creata con Schneider Electric.

Come funziona STM32Cube.AI

Nella sua forma più semplice, una rete neurale è semplicemente una serie di strati. C’è un livello di input, un livello di output e uno o più livelli nascosti tra i due. Il deep learning si riferisce a una rete neurale con più di tre livelli, la parola “deep” indica appunto più livelli intermedi. Ogni livello contiene nodi e ogni nodo è interconnesso con uno o più nodi nel livello inferiore. Le informazioni entrano nel sistema neurale dal livello di input, viaggiano attraverso i livelli nascosti ed escono da uno dei nodi di output.

Per determinare come le informazioni viaggiano attraverso la rete, gli sviluppatori utilizzano pesi e bias, parametri all’interno di un nodo che influenzeranno i dati mentre si spostano attraverso la rete. I pesi sono coefficienti. Più intricato è il peso, più precisa è una rete, ma più diventa computazionalmente intensiva. Ciascun nodo utilizza anche una funzione di attivazione per determinare come trasformare il valore di input. Pertanto, per migliorare le prestazioni, gli sviluppatori possono utilizzare reti neurali quantizzate, che utilizzano pesi di precisione inferiori. La rete neurale quantizzata più efficiente sarebbe una rete neurale binarizzata (BNN), che utilizza solo due valori come peso e attivazione: +1 e -1. Di conseguenza, un BNN richiede pochissima potenza di calcolo ma è anche il meno accurato.

La sfida del settore è quella di trovare un modo per semplificare le reti neurali per eseguire operazioni di inferenza sui microcontrollori senza sacrificare l’accuratezza al punto da rendere la rete inutile. Per risolvere questo problema, i ricercatori della ST e dell’Università di Salerno in Italia hanno lavorato su reti neurali profondamente quantizzate. I DQNN utilizzano solo pesi piccoli (da 1 bit a 8 bit) e possono contenere strutture ibride con solo alcuni livelli binarizzati mentre altri utilizzano un quantizzatore a virgola mobile con larghezza di bit maggiore. Il documento di ricerca di ST e dei ricercatori universitari ha mostrato quale struttura ibrida potrebbe offrire il miglior risultato ottenendo il minor footprint di RAM e ROM.

La nuova versione di STM32Cube.AI è il risultato diretto di questi sforzi di ricerca. In effetti, la versione 7.2 supporta reti neurali profonde quantizzate per beneficiare dell’efficienza dei livelli binarizzati senza distruggere l’accuratezza. Gli sviluppatori possono utilizzare framework di QKeras o Larq, tra gli altri, per pre-addestrare la propria rete prima di elaborarla tramite X-CUBE-AI. Il passaggio a un DQNN aiuterà a risparmiare l’utilizzo della memoria, consentendo così agli ingegneri di scegliere dispositivi più convenienti o utilizzare un microcontrollore per l’intero sistema invece di più componenti. STM32Cube.AI continua quindi a portare capacità di inferenza più potenti alle piattaforme di edge computing.

Un esempio pretico

ST e Schneider Electric hanno collaborato a una recente applicazione per il conteggio delle persone che ha sfruttato un DQNN. Il sistema ha eseguito l’inferenza su un STM32H7 elaborando le immagini del sensore termico per determinare se le persone hanno attraversato una linea immaginaria e in quale direzione, per comprendere se stavano entrando o uscendo. La scelta dei componenti è notevole perché ha promosso una distinta base relativamente contenuta. Invece di passare a un processore più costoso, Schneider ha utilizzato una rete neurale profonda quantizzata per ridurre significativamente la memoria e l’utilizzo della CPU, riducendo così l’ingombro dell’applicazione e aprendo la porta a una soluzione più conveniente. Entrambe le società hanno presentato la demo durante la conferenza TinyML lo scorso marzo 2022.