Con Hybrid Loop e Project Volterra, Microsoft sdogana la NPU nelle architetture IT aziendali.
L’annuncio della disponibilità di Hybrid Loop e Project Volterra alla Microsoft Build 2022 riaccende i riflettori sulle NPU, Neural Processing Unit, ovvero i processori neurali. La casa di Redmond ha dichiarato che sarebbero pronti i primi mini computer desktop dedicati esclusivamente agli sviluppatori, e che quindi non saranno messi in commercio nel mercato consumer.
Secondo quanto dichiarato, i mini computer del Project Volterra saranno equipaggiati di un SoC Qualcomm Snapdragon che integra, appunto, una NPU, un chip progettato per sostenere i calcoli richiesti dagli algoritmi di intelligenza artificiale. Vediamo di cosa si tratta esattamente e perché i chip per l’AI sono destinate a cambiare l’elaborazione, anche nelle architetture IT aziendali.
Di NPU se ne parla da un bel po’ di anni, ma i primi a farli conoscere al grande pubblico sono stati i produttori di smartphone. Nel 2017, Huawei ha presentato il modello Mate10 che monta il chipset Kirin 970 prodotto da Cambricon Technologies e che integra un modulo GPU. Tutti i maggiori produttori di smartphone, compresa Apple con l’iPhone X, hanno seguito l’esempio esaltando nella comunicazione il nuovo traguardo tecnologico. Ma, se, all’inizio, enfatizzare la presenza di un chip AI poteva sembrare un vezzo del marketing, oggi la strada verso la diffusione in un mercato più ampio degli smartphone sembra tracciata.
Il prototipo del mini PC Project Volterra di Microsoft dedicato agli sviluppatori.
I Neural Processing Unit sono basati sul modello delle reti neurali artificiali e sono ideati per sostenere i complessi e numerosi calcoli richiesti dagli algoritmi di intelligenza artificiale in un tempo ridotto. Una rete neurale artificiale mira a realizzare un modello di elaborazione dei dati il più simile a come fa il nostro cervello. Si parte da un modello di calcolo matematico che simula una rete di neuroni (artificiali, i nodi) interconnessi che interagiscono scambiandosi informazioni in base a degli input, restituendo informazioni elaborate (output).
La rappresentazione teorica classica di una rete neurale prevede delle colonne parallele verticali di nodi (strati) comprese tra uno strato di input e uno di output chiamati strati H (hidden). Ogni nodo ha una sua capacità di elaborazione, espressa da un valore numerico reale compreso tra 0 e 1, e in tutti i livelli, ogni nodo ha l’incarico di esprimere una sua “valutazione” che sarà l’informazione che passerà a tutti gli altri con un’interazione e che ne influenzerà la successiva valutazione. L’ultima colonna di neuroni, l’output, ha l’incarico di fornire l’informazione finale derivante dall’elaborazione.
Negli smartphone, le NPU supportano la fotocamera e l’elaborazione delle immagini, anche per la realizzazione di ambienti di realtà aumentata. Un esempio concreto, che ci fa capire che l’intelligenza artificiale è presente nella tecnologia di tutti i giorni più di quanto ci si possa aspettare, riguarda lo sblocco dello smartphone con il riconoscimento facciale. Sappiamo che, per attivare la funzionalità, è necessario inquadrare il proprio volto ed eseguire alcune prove. Questa è l’attività di apprendimento che svolge la NPU. L’apprendimento è la fase cruciale per ogni algoritmo di intelligenza artificiale. Sia che si tratti di machine learning, di deep learning o di image recognition avanzata, ogni processo deve essere necessariamente supportato da una fase di apprendimento (training). Ed è esattamente ciò che fa la mente umana: impara dall’esperienza, altrui o personale.
Per sbloccare il telefono con il riconoscimento facciale, si inquadra il volto con la telecamera e si aspetta qualche istante affinché la rete neurale compia l’elaborazione e restituisca un risultato: sei tu, sblocco il telefono, non sei tu, non lo sblocco.
L’elaborazione avviene in contemporanea, in parallelo, tra tutti i nodi. Il livello di input acquisisce le informazioni che riceve dalla fotocamera, le passa ai livelli di elaborazione in cui ogni nodo esprime la valutazione che gli compete (per esempio un particolare pixel del volto che corrisponde a quello memorizzato) e la condivide con gli altri nodi del suo e degli altri livelli. In pochissimi secondi avviene il riconoscimento.
Ciò avviene anche se il contesto in cui è inquadrato il volto è diverso o se l’espressione non è esattamente la stessa. E ciò fa comprendere come i neuroni della rete neurale non compiano azioni banali e, anzi, eseguano milioni di operazioni al secondo, in parallelo. Inoltre, l’algoritmo auto apprende silenziosamente, per diventare sempre più preciso e riconoscere il volto anche in situazioni non standard, per esempio quando si è truccati.
Per sfruttare le reti neurali artificiali, si utilizzano chip multicore, che elaborano in calcolo parallelo, proprio per compiere più elaborazioni nello stesso momento. In verità, già le GPU – Graphic Process Unit – introdotte per supportare la grafica di qualsiasi dispositivo abbia uno schermo, lavoravano in quel modo, così come i chip FPGA. Ma, rispetto a queste tecnologie, gli NPU sono un ulteriore passo in avanti, visto che permettono un’elaborazione ancora più spinta con un minor consumo energetico. E questo è da sempre il Nirvana dei dispositivi portatili, ma anche dei server presenti in un data center.
Le applicazioni più tangibili per cui ha senso sfruttare una NPU sono le auto a guida autonoma, gli aeromobili a pilotaggio remoto come i droni, la diagnostica medica, l'elaborazione del linguaggio naturale e la traduzione in tempo reale. Oltre alla già citata image recognition: l’estrapolazione di dati e informazioni da un immagine o da un video.
Ha senso immaginare delle unità di elaborazione nei data center che integrino delle NPU? Per quanto detto, assolutamente sì. E gli annunci di Microsoft Build 2022 sono più di un indizio. L’obiettivo di un’integrazione (o comunicazione continua e in tempo reale) tra i clienti Windows e il cloud Azure potrebbe avvenire proprio grazie a SOC che contengono i chip neurali, per Microsoft in particolare si tratterebbe di quelli di Qualcomm e quindi di architetture ARM. E qui il pensiero va immediatamente all’IoT.
Le NPU, infatti, bilancerebbero efficacemente il carico della CPU e della GPU sui dispositivi Windows quando si connettono ai servizi di calcolo di Azure. In pratica, la NPU si occuperebbe dell’elaborazione più spinta in cui intervengono i servizi cloud, riservando alla CPU e alla GPU quella sul dispositivo locale.
Per fare in modo che il dispositivo locale e il cloud dialoghino sempre più intensamente, però, c’è bisogno del codice giusto. Ed è per questo che Microsoft ha lanciato Hybrid Loop. Si tratta di un modello di sviluppo multipiattaforma per la creazione di funzionalità di intelligenza artificiale che sfruttano risorse cloud e edge. Gli sviluppatori possono usarlo per eseguire l'inferenza degli algoritmi di intelligenza artificiale sui client locali o per usare i servizi di calcolo di Azure. Dove per inferenza dell’AI si intende prendere il risultato dell’elaborazione degli algoritmi – per esempio su cloud - e distribuirlo su un dispositivo che, a sua volta, elaborerà i dati in entrata secondo quanto imparato con l’autoapprendimento. E lo sviluppo e l’integrazione del nuovo codice in app e servizi avverrebbe sui mini computer del project Volterra.