Tecnologia

Quanto è intelligente il vostro smartphone?

Smartphone

Quanto è intelligente il vostro smartphone?

(Agf creative)
(Agf creative)

Su molti degli smartphone di ultima generazione top di gamma sono presenti dei processori, o meglio dei Soc, System on a Chip, che utilizzano core di intelligenza artificiale (Ai). Ci riferiamo per esempio al Kirin 970 presente nello Huawei Mate10, agli iPhone 8 e X con il processore A11, agli Snapdragon di Qualcomm di ultima generazione(tutti basati su architettura ARM), utilizzati da diversi produttori. Ma che significa “intelligenza artificiale”? E a cosa serve, nella pratica?

Per iniziare, sfatiamo un luogo comune. L'intelligenza artificiale non ha niente a che fare con scenari apocalittici alla 2001 Odissea nello spazio. In pratica, allo stato attuale delle implementazioni (e delle ricerche anche teoriche), AI significa semplicemente che il nostro telefono –o qualsiasi altro device che utilizzi l'intelligenza artificiale, sia al suo interno sia sul cloud- è in grado di fare rapidamente delle scelte e di prendere delle decisioni in base alle informazioni a disposizione, con una complessità e una efficienza molto maggiori di quanto sia in grado di fare una tradizionale unità di calcolo che non usi questa logica.

Questo viene ottenuto strutturando la struttura interna dei core dedicati all'intelligenza artificiale in modo che possano utilizzare una logica simile a quella delle reti neuronali, dove i singoli processi non vengono svolti in ordine sequenziale, ma in parallelo. Ciascun processo può quindi influire sul percorso generale dell'informazione, che può prendere strade diverse e arrivare a risultati finali differenti (ed essere ricordata e riutilizzata in compiti futuri, il cosiddetto “machine learning”), con una velocità e una efficienza altrimenti molto difficili da ottenere con un percorso quasi unicamente sequenziale. Intendiamoci però bene sulle differenze fondamentali di “funzionamento” dell'intelligenza artificiale rispetto a quella del cervello umano, che sono essenzialmente due. Innanzitutto, tutti i chip di intelligenza artificiale lavorano secondo principi binari e con la cara, vecchia, algebra di Boole, la stessa quindi usata dalle Cpu fin dall'alba dell'era informatica, mentre la logica utilizzata dal cervello umano è tuttora pressoché sconosciuta. La seconda differenza è che nessun chip di intelligenza artificiale è in grado di modificare la propria struttura hardware interna, mentre le strutture neuronali biologiche hanno la capacità di modificarsi fisicamente.

Per essere chiari, le possibilità logiche dei core di intelligenza artificiale utilizzati attualmente sono del tutto alla portata di un chip “old style” senza unità AI, ma con tempi di calcolo, efficienza e consumi di energia decisamente peggiori. Per quanto riguarda l'ultimo punto, cruciale per l'utilizzo su device mobili, i produttori di SoC con unità AI stanno cercando di ottimizzare al meglio le unità, che possono garantire sì un risparmio energetico quando vengono usate per i compiti a loro destinati, ma che, di loro, consumano comunque parecchia corrente. Parlare di “rivoluzione” è quindi sbagliato: siamo nell'ottica di un miglioramento.

L'intelligenza artificiale viene da tempo utilizzata nel cloud. Per esempio, le Cloud Vision Api di Google (), consentono di “rintracciare” i singoli elementi di cui è composta un'immagine per poi operare delle scelte, che possono andare dalla categorizzazione, al miglioramento di singoli soggetti presenti nella scena etc. Ma l'utilizzo nel cloud ha dei limiti. Innanzitutto, ovviamente, bisogna essere connessi. Poi, ci sono i problemi dovuti alla velocità di trasferimento delle informazioni tra il device e il cloud che, soprattutto quando le informazioni da scambiarsi sono tante (immagini, audio, video, realtà virtuale e aumentata, e proprio questi sono le tipologie di dati dove le capacità dell'AI sono più interessanti), rendono impossibile raggiungere il tempo reale. Infine, lo scambio di informazioni con il cloud pone dei problemi, come è facile intuire, a livello di privacy. I sottosistemi di intelligenza artificiale presenti nei nostri smartphone di ultima generazione ovviano proprio a queste limitazioni, elaborando i dati senza la necessità di alcuna comunicazione in remoto.

Facciamo qualche esempio pratico. La rilevazione del soggetto di una fotografia è un elemento fondamentale per la buona riuscita di uno scatto. Se il nostro soggetto non è centrato nell'immagine, è in controluce oppure si muove velocemente, dobbiamo operare di solito dei cambiamenti nei parametri di scatto per far sì che la nostra foto venga buona. Le unità di intelligenza artificiale sono in grado di fare questo per noi in tempo reale, distinguendo quale è il soggetto, l'esposizione, il fuoco e il tempo di posa corretti, e di ricordare in scatti futuri ritenuti simili eventuali modifiche operate manualmente. Questo è, evidentemente, un compito che non può essere svolto né dal cloud né da device che non possiedono la particolare potenza e organizzazione delle unità di intelligenza artificiale presenti “on chip”. Stessa cosa per il riconoscimento facciale, quello audio etc.

Il maggiore limite attuale? Come quasi sempre accade quando una tecnologia “fresca” viene utilizzata in nuovo prodotti, non esistono delle specifiche comuni a disposizione dei programmatori per l'utilizzo dell'intelligenza artificiale. Questo, se ha poco impatto su un sistema come quello Apple/iOS, dato l'unico produttore e l'unico SoC che implementa funzioni di AI, diventa invece ben più serio su sistemi Android, dove i produttori usano SoC differenti con Api diverse. In parole povere, se uno sviluppatore realizza una app per esempio per selezionare tutte le foto dove c'è un soggetto che sorride, deve cambiare parte del codice per adattarlo a un singolo device, o quantomeno ai device che utilizzano un certo SoC.

© Riproduzione riservata