Quando parliamo di intelligenza artificiale parliamo in sostanza di metodologie che, se applicate in modo consapevole ai dati aziendali (numeri, immagini, suoni, testi), possono sicuramente velocizzare i processi, automatizzarli, incidere direttamente sulle voci dei ricavi, dei costi e sui rischi aziendali. Inoltre, la sempre più spinta democratizzazione degli strumenti cognitivi dell’AI e del machine learning permettono anche alle aziende più piccole di intraprendere un viaggio entusiasmante in questo ambito.Oggi più che mai, possiamo contare su concreti strumenti hardware e software che possono integrare le piattaforme aziendali tradizionali e farle evolvere verso livelli più elevati di performance, introducendo la tecnica della predizione statistica come strumento quotidiano oltre alla normale statistica descrittiva.Predire non significa indovinare. Significa usare metodi che razionalmente e matematicamente riducono al minimo l’errore tra una stima di probabilità che un evento accada o che un dato sia tale, rispetto all’osservazione dello stesso. Se l’errore è minimo, significa che con molta precisione si riuscirà a predire quale sarà il prossimo dato che il mio dispositivo mi fornirà, o la categoria a cui appartiene un’immagine o un suono, oppure le parole che con molta probabilità scriverò in questo articolo. È la “magia” dell’AI. Soltanto che per poter svolgere queste operazioni, il computer ha bisogno di fare calcoli numerosi e complessi, esigendo quindi una quantità di risorse hardware notevoli soprattutto se questi calcoli vengono effettuati sul nostro laptop o desktop. Infatti, quando si parla di intelligenza artificiale, si sta parlando praticamente di calcoli matriciali, ossia di operazioni matematiche, addizioni, moltiplicazioni, trasposizioni di matrici numeriche. Una normale CPU, seppure di ultima generazione, avrà una capacità di calcolo sempre limitata sia dalla sua potenza intrinseca di calcolo, sia dal fatto che una cpu deve gestire una molteplicità di processi insieme (deve permettere all’intera macchina di funzionare), per cui non potrà più di tanto essere saturata. Tantomeno sarebbe possibile mettere in parallelo tante cpu in un’architettura standard. Ovviamente questo diventa un limite. Ecco allora che vengono in aiuto il cloud e l’edge computing.
L’importanza delle GPU
In aiuto su questo task importante, ci sono le GPU, ossia le Graphic Process Unit: sono processori, come quelli costruiti da NVIDIA, progettati per gestire le elaborazioni complesse tipiche dei videogiochi (che alla fine sono sempre calcoli matriciali per la determinazione della posizione dei punti e delle facce dei poligoni nello spazio 3D). Per estensione, se una GPU può fare calcoli per il 3D lo fa anche facilmente per qualunque altro task che comporti l’elaborazione continua di dati numerici.
Inoltre, c’è da sottolineare che, come ha dichiarato Jensen Huang, CEO di Nvidia, la crescita della potenza di calcolo dei processori grafici aumenta in misura maggiore rispetto a quanto stabilisca la legge di Moore. Infatti, questa legge, che prende il nome dal cofounder di Intel Gordon Moore che l’ha enunciata nel 1965, stabilisce che i chip delle CPU avrebbero raddoppiato la loro potenza di calcolo ogni biennio. Huang, invece, ha evidenziato come la legge di Moore oggi sia sconfessata da una crescita annuale della potenza delle CPU di soli pochi punti percentuali l’anno, a differenza della crescita della potenza delle GPU che crescono notevolmente di più. Infatti, in un quinquennio la potenza delle GPU è cresciuta di oltre 25 volte, mentre per la legge di Moore le CPU sarebbero dovute crescere di solo 10 volte.
Inoltre, è possibile parallelizzare diverse CPU riuscendo, quindi, garantire la giusta potenza di calcolo per le nostre AI o per i nostri lavori in 3D.
Questo preambolo è necessario per comprendere che avere una dotazione hardware adeguata, comporta tuttavia non solo investimenti ingenti, ma anche la necessità di occupare le macchine 24/7 per recuperare i costi investiti. Non tutte le aziende hanno la possibilità e le competenze per dotarsi di una server farm proprietaria per questi scopi.
Inoltre, c’è da dire che l’AI occupa le macchine in due momenti ben distinti: il training, ossia il momento in cui noi insegniamo alla macchina a svolgere un determinato task e il momento dell’inferenza, ossia quando la macchina usa il modello predittivo per anticipare i futuri dati. La prima fase, il training appunto, consuma intensamente le risorse della macchina, svolgendo calcoli a volte lunghi anche giorni e restituendo poi un modello statistico che rappresenta la spiegazione matematica del task che noi abbiamo dato alla macchina da elaborare. Successivamente questo modello viene usato per la cosiddetta inferenza, ossia la vera attività di predizione che serve per fare nuovi task uguali a quelli del training ma su dati mai visti dall’algoritmo. Per fare un esempio, nel training insegniamo all’algoritmo a circoscrivere i contorni di un viso dandogli tanti esempi di volti e dei relativi perimetri di selezione, nella fase di inferenza gli mostriamo un viso che non ha mai visto e l’algoritmo riuscirà a prevederne i contorni come se fosse un essere umano a farlo.
Questa fase di predizione è meno pesante per la macchina ma comunque verrà svolta più spesso e quindi occuperà tanto la macchina in termini temporali.
Il cloud computing
Il cloud viene in aiuto delle aziende proprio per questi motivi: per alleggerire la parte di investimenti pluriennali in macchine, ottimizzando il TCO Total Cost of Ownership della struttura hardware traslando tutto il carico di elaborazione su macchine remote. Queste macchine possono essere opportunamente attivate o disattivate on demand, sono pagate quindi per utilizzo e non per device. I costi di utilizzo sostenuti dall’azienda poi diventano comprensivi anche una serie di servizi, alcuni essenziali come la cybersecurity, il Disaster recovery, la compliance al GDPR ecc. altri opzionali come modelli di machine learning ondemand già disponibili e pronti all’uso per utilizzi general purpose.
Il cloud computing, è decisamente una grande opportunità, sia per i fornitori che per i clienti. Amazon, ad esempio, genera più del 50% dei propri ricavi proprio dalla piattaforma AWS. Attraverso servizi come AWS, o Azure di Microsoft o Google Cloud, le aziende possono trasformare i propri prodotti software in vere piattaforme as a service (PaaS / Platform as a Service) per le quali le aziende pagano una fee ricorrente. Il vantaggio è poter eseguire funzioni anche complesse da remoto, poter scalare la configurazione delle macchine in funzione delle proprie necessità, anche qualora queste necessità non sono immediatamente conosciute in fase preliminare di progettazione. Con la semplicità di un clic si aggiungono schede video, si aumenta la Ram, si mettono nodi con nuove macchine. Ciò riduce drasticamente i tempi di setup del servizio o di upscale nel caso sia necessario sostenere un maggiore carico di richieste.
Alcuni provider, in aggiunta, offrono nei propri servizi di cloud anche speciali schede, le TPU, Tensor Processing Unit, che sono processori progettati ad hoc per gestire matrici multidimensionali di dati (i tensori appunto) che sono tipici degli algoritmi più complessi di AI. Questo permette di eseguire in cloud calcoli molto complessi in frazioni del tempo che una macchina locale riuscirebbe a fare.
Guardando invece i limiti del Cloud, c’è da dire che gestire i dati da e verso server remoti, comporta comunque un intenso uso della banda di rete, oltre a continue comunicazioni client/server verso i microservizi API (Application Program Interface). Questo perché l’attività di inferenza è di fatto traslata sul dispositivo remoto.
In funzione quindi del tipo di servizi che andiamo a creare, il server sarà più o meno caricato di operatività. Ad esempio, un continuo riconoscimento di oggetti (es. il volto), necessiterà di un back end strutturato per poter sostenere la domanda di segmentazione dei frame che verranno inviati in streaming.
Cosa fa l’Edge AI
Per ottimizzare alcune di queste attività, esiste l’Edge AI, ossia la possibilità di utilizzare dispositivi più prossimi all’utente per poter svolgere le stesse operazioni di inferenza in loco senza travaso di informazioni sulla rete.
In breve, Edge Ai significa dotare i dispositivi elettronici di una loro intelligenza con l’AI ed eventualmente anche con una propria connettività alla rete e tra i dispositivi stessi. Quali sono i vantaggi dell’Edge AI?
I vantaggi sono molteplici, basti pensare all’enorme utilità che questa modalità architetturale può portare all’efficacia del servizio in termini di latenza. Ad esempio. un riconoscimento facciale o la predizione di anomalie può essere fatta con maggiore efficacia sul device IOT (telecamera/sensore ecc.) eventualmente potenziato con i chip specifici per l’AI come Movidius o OpenVino ecc.
Inoltre, diminuisce il rischio per la privacy. Il dato, se viaggia in rete, potrebbe essere intercettato o corrotto. Elaborando la previsione localmente, invece, il dato rimane nel device e non necessita di essere trasportato altrove.
Sicuramente, poi, un’inferenza singola su un singolo dispositivo è un task meno oneroso che gestire più thread di elaborazione dell’inferenza in cloud per i dati provenienti da una molteplicità di dispositivi.
Per finire, è ovvio che avere meno dati che occupano la banda, permette la costruzione di servizi intelligenti utilizzando le infrastrutture di connessione ordinarie senza sostenere costi ulteriori per connessioni specifiche.
Si apre uno scenario di ampie potenzialità, soprattutto perché questi device intelligenti permettono un’elaborazione dei modello di AI quasi realtime.
Diventa possibile, con questa tecnologia, immaginare servizi di checkout freeflow senza code, perché la telecamera riconosce i cibi nel vassoio; oppure servizi di detection automatica delle dotazioni di sicurezza (come le mascherine per il COVID), o per l’individuazione delle intrusioni, ma anche per il monitoraggio e previsione dei consumi energetici o per la gestione automatizzata previsionale dei macchinari ecc.
Trasferire la potenza dell’intelligenza artificiale sull’ultimo miglio permette, in casi d’uso specifici, di diventare un moltiplicatore di potenza, portando una suddivisione dell’effort computazionale e un miglioramento dell’efficacia e dell’efficienza del servizio progettato.
Conclusioni
Concludiamo dicendo che, seppure non esista una scelta univoca, con il Cloud Ai e l’Edge AI, l’architettura diventa funzionale allo scopo per la quale viene usata e chi progetterà nuovi servizi intelligenti dovrà saper fare buon uso di entrambe le tecnologie sia per migliorare le performance intrinseche del servizio ma anche per far sì che le soluzioni software innovative abbiano una sempre migliore User Experience.