Un coprocessore Tensor è un componente hardware progettato per accelerare le operazioni di elaborazione sui tensori, strutture matematiche utilizzate in molte applicazioni di intelligenza artificiale, per il machine learning e in generale nell’ambito del deep learning. Grazie ai Tensor, è possibile eseguire, ad esempio, operazioni di moltiplicazione e somma su tensori in modo efficiente e veloce, con un notevole incremento prestazionale rispetto alle classiche CPU.
reichelt elektronik è uno dei più grandi distributori di tecnologie IT ed elettronica. Sven Pannewitz, Product Manager Single Board PCs e Developer Boards dell’azienda, ha analizzato per noi il tema dei coprocessori Tensor e le loro relazioni con le applicazioni per l’intelligenza artificiale.
Pannewitz osserva che le applicazioni di intelligenza artificiale sono particolarmente adatte per il riconoscimento di pattern e consentono un processo decisionale flessibile, ad esempio per i sistemi di assistenza alla guida nelle automobili o per applicazioni industriali come il controllo qualità. La disponibilità di coprocessori Tensor specializzati e la loro integrazione nei computer single-board e nelle schede Computer on Module (COM) consentono l’esecuzione di operazioni di intelligenza artificiale ad alta intensità di calcolo quando necessario.
L’intelligenza artificiale non è più solamente un concetto per pochi, ma si estende ormai a molti ambiti. Sebbene essa non conferisca ai dispositivi e alle macchine la capacità di pensare, consente loro di trovare analogie sulla base di informazioni pregresse e di apprendere metodi di raccolta delle informazioni basati su statistiche avanzate, come appunto il machine learning e il deep learning.
Di seguito il punto di vista di Pannewitz, che ci è stato offerto in esclusiva da reichelt elektronik.
Il ruolo dei coprocessori Tensor per migliorare le capacità di apprendimento
La capacità di apprendimento che può essere trasferita a una macchina, presenta oggi diversi vantaggi, continua Pannewitz. In primo luogo, i dispositivi e le macchine sono in grado di reagire a situazioni operative impreviste senza che il software debba mappare in dettaglio ogni eventualità di funzionamento fin dall’inizio.
Ciò consente il collaudo con una programmazione di base e l’auto-ottimizzazione durante il funzionamento. Nelle applicazioni industriali, gli algoritmi ai quali fa riferimento Pannewitz possono essere utilizzati, ad esempio, al fine del posizionamento predittivo degli utensili o dei pezzi.
D’altra parte, l’uso del machine learning e del deep learning rende i processi di sviluppo del software più gestibili, in quanto una parte della messa a punto può essere svolta durante la fase di addestramento delle funzionalità operative. Non è assolutamente necessario che ciò avvenga durante il funzionamento.
Il training, soprattutto quello relativo alle funzionalità generali più astratte, può avvenire in anticipo tramite una simulazione computerizzata, in modo sicuro e con un numero di cicli di addestramento di molto superiore a quelli che sarebbero altrimenti possibili.
Elaborazione sofisticata delle informazioni
Le applicazioni di intelligenza artificiale spaziano dal riconoscimento vocale all’identificazione di persone o al rilevamento di oggetti partendo dalla loro posizione, dimensioni e caratteristiche, fino alla garanzia di qualità. Le reti neurali artificiali sono particolarmente adatte ad analisi approfondite di grandi quantità di dati, ad esempio per il riconoscimento di modelli comuni presenti in un set di dati composti da contenuti audio, video e immagini.
Per via dell’elevata potenza di calcolo richiesta per queste elaborazioni, gli sviluppatori ricorrevano spesso a piattaforme offerte come prodotti SaaS (Software-as-a-Service) sul cloud. A causa della limitata larghezza di banda, però, l’elaborazione spesso non riusciva ad avvenire in tempo reale.
I vantaggi derivanti dall’utilizzo di coprocessori Tensor, tuttavia, non si fermano qui.
Sistemi decentralizzati
La digitalizzazione e l’Industria 4.0 esigono infatti un cambiamento di sistema, passando da strutture centralizzate a un’elaborazione decentralizzata dei dati, osserva ancora Pannewitz.
Anziché sviluppare l’hardware da zero, oggi i produttori integrano spesso single-board computer, controller o computer-on-module: l’ampia varietà di prodotti è disponibile anche in versioni più robuste, in grado ad esempio di resistere a temperature impegnative (aspetto particolarmente apprezzato in ambito industriale).
Non da ultimo, grazie al costo e alle dimensioni ridotte, l’embedded computing consente di risolvere singoli compiti di controllo o di elaborazione dei dati direttamente nel punto di azione.
Le schede embedded comunicano in ambito Internet delle Cose (IoT) sia tra loro che con servizi di livello superiore e sempre più spesso con servizi cloud. Si assiste così a un allontanamento dai processi di elaborazione strettamente centralizzati, fa notare ancora Pannewitz.
Diversi approcci all’intelligenza artificiale
Per rimanere indipendenti dalla larghezza di banda di trasmissione, le operazioni particolarmente critiche dal punto di vista temporale, come i calcoli di inferenza dell’intelligenza artificiale, vengono sempre più spesso eseguite a livello di dispositivo, sul cosiddetto edge ovvero fisicamente molto vicino al punto in cui i dati servono davvero.
I più noti produttori di semiconduttori offrono già potenti processori con funzioni direttamente integrate per l’elaborazione dedicata delle applicazioni di intelligenza artificiale. Poiché i calcoli di inferenza presentano alcune analogie con l’elaborazione delle immagini, i potenti processori grafici (GPU) sono ancora più adatti delle classiche CPU per l’elaborazione di molti compiti legati all’intelligenza artificiale.
Recentemente, sono arrivati sul mercato speciali acceleratori IA, le cosiddette Tensor Processing Unit (TPU). La più famosa è senza dubbio il SoC Google Tensor che sta subendo significative migliorie generazione dopo generazione. Ancor più delle GPU, le unità TPU esonerano i processori principali dalle operazioni di IA particolarmente intensive dal punto di vista computazionale. Alcuni acceleratori, come Hailo-8 AI (26 TOPS), sono particolarmente veloci grazie alla presenza di memorie integrate.
Indipendenza grazie all’intelligenza artificiale locale
Il grande cambiamento che si sta registrando nell’ultimo periodo riguarda lo spostamento delle elaborazioni dal cloud, all’edge o addirittura a livello di singolo dispositivo: sono infatti sempre di più i prodotti che arrivano con un chip TPU integrato. Ciò significa che anche macchine e dispositivi molto compatti possono essere dotati di funzionalità di machine learning e deep learning senza più doversi appoggiare a servizi esterni raggiungibili attraverso la rete.
Pannewitz evidenzia che la decentralizzazione dell’intelligenza artificiale apre possibilità di applicazione inimmaginabili appena fino a poco tempo fa. Consente agli sviluppatori di dispositivi e macchine di progettarli in modo tale che la loro gamma di funzioni aumenti durante la fase operativa.
I sistemi che si progettano, quindi, possono assumere una portata non realizzabile con la programmazione classica, o raggiungibile solamente adoperando una capacità computazionale elevatissima.
Inoltre, la decentralizzazione supporta e facilita anche la modularizzazione di macchine di dimensioni superiori. I singoli moduli e “assiemi” semi-autonomi possono utilizzare le funzionalità di intelligenza artificiale integrate per coordinarsi tra loro. In questo modo, possono essere risolti alcuni dei problemi associati all’interazione tra le diverse parti del sistema. In sintesi, ciò consente l’ottimizzazione funzionale della macchina o del sistema complessivo attraverso il coordinamento reciproco delle singole parti.
Ripensare i requisiti
Matt Welsh diceva di recente che la programmazione informatica è morta o comunque sul viale del tramonto proprio per via dell’intelligenza artificiale. Un po’ diversa è l’opinione di Pannewitz: “l’intelligenza artificiale non rende affatto superflui gli sviluppatori di software, ma anzi consente loro di adottare soluzioni differenti e più convenienti per la risoluzione di problemi complessi“.
Tuttavia, la gestione di queste nuove strategie deve essere appresa, ben soppesata e messa in pratica: va infatti adottato uno schema che permetta di superare l’approccio sequenziale, ancora molto diffuso, le attività di controllo, la regolazione e l’automazione.