Machine Learning e IA: così gli smartphone si fanno più intelligenti

AndroidPIT Kirin chip 8658
© nextpit

Intelligenza artificiale (IA), Artificial Intelligence (AI) o Machine Learning: queste parole compaiono alle ufficializzazioni dei nuovi smartphone e sono uno dei trend principali del 2017/2018. Alcuni smartphone propongono i propri chip con IA che dovrebbero renderli più intelligenti, secondo quanto affermato dai produttori quantomeno. Ma è veramente così? Abbiamo osservato da vicino i campi di applicazione ed i chip con intelligenza artificiale integrata per marcare meglio la differenza tra realtà e promesse.

Quando Huawei ha presentato all'IFA il primo processore per smartphone con un'unità dotata di intelligenza artificiale, ha subito catturato l'attenzione del pubblico. La Neural Processing Unit (NPU) presente nel Kirin 970 è ciò che rende le funzioni legate all'IA più rapide e efficienti rispetto ad un tradizionale processore. Al momento si concentrano soprattutto su fotografia, riconoscimento ed elaborazione delle immagini.

Per iniziare, parlare di intelligenza artificiale è in realtà scorretto: il nucleo delle applicazioni IA di oggi è il machine learning. La cosiddetta Convolutional Neural Network (CNN) utilizza un gran numero di dati grezzi per imparare e riconoscere dei modelli e fa tutto in modo autonomo. Ciò avviene su ampi server perché richiede un numero spropositato di dati. Un'applicazione di apprendimento automatico è in grado di applicare i modelli appresi nella prima fase per ulteriori dati (questo processo prende il nome di inferenza). Per gli smartphone questo passaggio è rilevante: una rete neurale addestrata può riconoscere oggetti e volti presenti in un'immagine.

In generale i calcoli risultanti sono possibili anche con una classica CPU. Le singole operazioni aritmetiche sono piuttosto semplici ma così numerose da richiedere un processore ad otto nuclei. Un numero maggiore di nuclei è la chiave del successo; un chip con un gran numero di piccole unità aritmetiche può eseguire applicazioni machine learning in modo più efficiente rispetto ad un processore standard.

I chip grafici sono progettati per il machine learning

Dove si possono trovare così tanti nuclei? Nei chip grafici ovvero nelle GPU. Questi vengono utilizzati anche per gestire i task quotidiani. Per questo le NPU sono costruite come delle GPU extra: un numero elevato di nuclei computazionali gestiscono le operazioni in parallelo ottenendo importanti vantaggi in termini di prestazioni nella app machine learning.

Perché ne abbiamo bisogno sullo smartphone? Si potrebbe procedere con questi calcoli sui server nel data center e sfruttare il cloud. Si potrebbe, è vero, ma il cloud ha uno svantaggio che vale anche per il machine learning: necessita di una stabile connessione ad internet. Un esempio: l'app fotocamera dovrebbe caricare le anteprime sul server per poterne riconoscerne il contenuto e ciò potrebbe sollevare qualche dubbio circa la protezione dei dati tra gli utenti.

L'apprendimento automatico sul dispositivo non ha alternative per molte app.

Come gli smartphone attuali stanno utilizzando questi chip?

Diversi smartphone integrano una NPU e potreste avere uno di questi già in tasca: in molti chip Qualcomm attuali viene utilizzato il calcolo eterogeneo.

Ciò permette di gestire i task all'interno del componente più adatto. Ve ne sono diversi: la classica CPU, la GPU e il processore di segnale. Tutte queste unità hanno diversi vantaggi. La CPU si occupa dei calcoli complicati, la GPU accelera i calcoli che possono essere eseguiti contemporaneamente. Il processore di segnale è ottimizzato per i calcoli in tempo reale. Le app machine learning possono sempre essere elaborate dal miglior calcolatore.

Abbiamo già menzionato il Kirin 970 dotato di NPU. Dopo il suo arrivo, Apple ha presentato i nuovi iPhone dotati del chip A11 costituito anch'esso da una NPU che viene per esempio utilizzata con il FaceID. Oltre al riconoscimento del volto, non sono noti altri campi di utilizzo ma nel breve termine potrebbero esserci delle novità.

Nel Pixel 2 (e nella sua variante XL) prende il nome di Visual Core e vanta la capacità di eseguire tre trilioni di operazioni aritmetiche al secondo. Il Visual Core è una NPU classica ma il chip è stato attivato dall'arrivo di Android 8.1 e non viene utilizzato by default dall'app fotocamera: solo le app di terze parti possono sfruttarla con l'HDR+.

pixel visual core
Pixel Visual Core: una NPU pura per la seconda generazione di Pixel. / © Google

A partire da Android 8.1 è disponibile l'interfaccia Neural Networks APi (NN-API) che permette agli sviluppatori di app di accedere alle NPU senza conoscere le specifiche tecniche di ogni singola implementazione. Come ripiego viene utilizzata anche la CPU nel caso in cui sullo smartphone non sia presente una NPU. 

L'accesso è possibile solo tramite il know-how dei specifici produttori. Di fatto, la modalità NN-API esiste solo nei Pixel. Google ha svelato una libreria astratta che supporta completamente le NN-API, Tensorflow Lite. Questa libreria consente di configurare le reti neurali addestrate su smartphone e potrebbe presto diventare uno standard in molte app Android.

Huawei utilizza il machine learning in 4 feature

Sia su Mate 10 Pro che su Honor View 10 la NPU viene utilizzata in diversi contesti. Il primo e più visibile agli utenti è il rilevamento delle scene quando si utilizza la fotocamera: i parametri vengono regolati automaticamente sulla base della scena. Una piccola icona mostra nell'app ciò che l'app fotocamera ha rilevato grazie al machine learning.

AndroidPIT HTC U11 LG V30 Galaxy Note8 Pixel2 plus Huawei Mate10 pro 1969
Non tutti i top di gamma integrano la tecnologia del machine learning. / © NextPit

Huawei utilizza poi le capacità della NPU del Kirin 970 per prevedere le azioni degli utenti. Ciò permette di allocare meglio le risorse e ottimizzare i consumi, sulla carta almeno visto che per verificare ciò occorrerebbe eseguire due test, uno dei quali con NPU disabilitata.

Il terzo contesto è l'app realizzata con la collaborazione di Microsoft. L'app di traduzione, preinstallata sui due smartphone, sfrutta l'NPU per offrire traduzioni offline in tempi brevi. 

E' stato provato che i CNN sono adatti per la riduzione del rumore nei segnali audio. Per fare un esempio, una rete neurale addestrata può fungere da filtro per i rumori in contesti caotici ottimizzando il riconoscimento dei comandi vocali. HiSilicon afferma che la sicurezza del rilevamento può passare dall'80 al 92% in ambienti rumorosi. 

Prestazioni dei chip di intelligenza artificiale a confronto

Alcuni smartphone sul mercato dispongono già di una Neural Processing Unit ed il numero crescerà considerando l'approccio di Qualcomm. La domanda è: quale NPU è la più veloce? Questa domanda va a braccetto con quella riguardante la NPU con il minor consumo energetico.

Considerando la natura delle NPU queste domande non hanno una facile risposta. Le prime indicazioni a riguardo si basano sui benchmark di Master Lu. Anandtec ha testato Mate 10 Pro, Google Pixel 2 XL e LG V30.

Sul Mate 10 Pro la NPU è stata utilizzata in modo regolare mentre il V30 è stato in grado di eseguire un calcolo eterogeneo sullo Snapdragon 845. Il Pixel 2 XL non supporta la tecnologia Qualcomm mentre il benchmark non supporta l'NN-API. Il Pixel 2 XL fornisce dei valori per le app di machine learning basati solo sulla CPU.

Master Lu riporta dei valori in fotogrammi al secondo. Mentre il Pixel 2 ha riportato nel primo test un risultato di 0,7fps, il V30 ha registrato un risultato di 5,3fps. Il Mate 10 Pro ha ottenuto invece 15,1fps. L'approccio di Huawei e quello di Qualcomm riportano dei risultati simili a livello di consumo energetico: il Mate 10 necessita di 106mj, il V30 poco più di 130mj. Il pixel ne consuma 5,847mj: tutti e tre i valori arrivano dalle misurazioni di Anandtech.

Calcolatori specializzati per il machine learning fanno la differenza durante l'uso. Riconoscimento delle immagini, riduzione del rumore e ottimizzazione del riconoscimento vocale: benefici che arrivano dalla NPU. Nonostante l'approccio di Qualcomm non sia allo stesso livello del Kirin 970, la situazione cambia con lo Snapdragon 845 che dovrebbe risultare tre volte più rapido .

NPU sugli smartphone: ne abbiamo bisogno?

Ammettiamolo: si può vivere bene senza il machine learning. Le funzioni che ottimizzano le prestazioni della NPU o l'approccio dei processori Snapdragon sono importanti ma gestibili. 

La situazione può tuttavia cambiare in breve tempo perché si tratta di funzioni che possono essere distribuite con aggiornamenti software sui dispositivi compatibili dal lato hardware. Gli sviluppatori di app saranno presto capaci di accedere a sistemi aritmetici in stile NPU utilizzando NN-API e Tensorflow Lite. Chi possiede già uno smartphone con NPU integrata sarà tra i primi ad utilizzare queste nuove funzionalità.

Cosa ne pensate del machine learning e della tanta chiacchierata intelligenza artificiale su smartphone?


Questo articolo è stato scritto in collaborazione con Hans-Georg kluge

Vai al commento (1)
Ti è piaciuto l'articolo? Per favore, condividilo!
Articolo successivo
1 Commento
Commenta la notizia:
Tutte le modifiche verranno salvate. Nessuna bozza verrà salvata durante la modifica
Commenta la notizia:
Tutte le modifiche verranno salvate. Nessuna bozza verrà salvata durante la modifica

  • 4
    Moreno Lupi 24 gen 2018 Link al commento

    Intrigante: l'IN, intelligenza naturale, umana, che s'impegna a creare, sviluppare, estendere l'IA, che se tanto dà tanto, prenderà il controllo del suo creatore. Già, perché sarà Lei a far si che che creatore sia costretto ad ubbidire, alla Sue esigenze, Ogni creatura autonoma non cerca altro. Un po' di filosofia del futuro, mica guasta