Rivoluzione in corso nel settore del calcolo ad alte prestazioni. Sempre più centrale per sostenere lo sviluppo dell’innovazione, in particolare quella connessa all’intelligenza artificiale.
E dato che l’AI regge la quarta rivoluzione industriale e la prossima grande trasformazione digitale, si può dire che i nuovi super computer sono le fondamenta tecnologiche alla base del futuro che stiamo costruendo.
C’era una volta il supercomputer
Fino a qualche anno fa molti Cio di imprese e decisori politici o della PA non ritenevano nemmeno necessario dotarsi di una strategia ad hoc. Non è più così. L’Internet of Things e il 5G stanno ponendo le basi per modelli di Intelligenza Artificiale eseguiti su architetture HPC. E il ruolo del quantum computing sarà determinante. Il calcolo ad alte prestazioni (High Performance Computing o HPC) è uno dei settori storici dell’informatica. I primi high performance computer (o “supercomputer”) furono introdotti già negli anni Sessanta, un decennio in cui predominarono le architetture HPC basati su parallelismo simmetrico. Le macchine ad alte prestazioni di allora montavano più processori uguali che eseguivano in parallelo istruzioni diverse di uno stesso programma.
Negli anni Settanta si affermarono i processor vettoriali in grado di eseguire in parallelo una stessa istruzione su diverse unità di dati, ad esempio sulle righe di una matrice di numeri. I supercomputer vettoriali, adatti a eseguire le analisi agli elementi finiti tipiche dei modelli metereologici o dell’ingegneria civile, sono rimasti l’architettura HPC dominante per tutti gli anni Novanta.
Nei primi anni Duemila, la rapida evoluzione dei processori tradizionali (a cui sono state aggiunte istruzioni di tipo vettoriale) e della tecnologia multicore, che è in grado di inserire più copie del layout di un processore nello stesso chip VLSI, ha favorito lo sviluppo dei cosiddetti supercomputer a parallelismo massivo, composti da decine di migliaia di processori standard.
Parallelamente all’evoluzione delle architetture hardware, la ricerca in HPC ha messo a punto strumenti software, soprattutto sistemi operativi, librerie e compilatori parallelizzanti, in grado di sfruttare al meglio le loro potenzialità. Non si è trattato di un lavoro semplice. Dato un compito di calcolo da eseguire, ad esempio la moltiplicazione tra due matrici, per ogni architettura occorre trovare la scomposizione del problema in blocchi di istruzioni o di dati che massimizza il parallelismo esecutivo e quindi minimizza il tempo di calcolo.
5G e IoT spingono l’HPC
Fino a qualche anno fa, il settore HPC era considerato una nicchia di interesse solo per alcuni settori applicativi (ad esempio, la scienza dei materiali o l’Oil & Gas). Oggi la situazione è profondamente cambiata: l’IoT e la quinta generazione delle tecnologie di trasmissione mobile (5G) stanno creando infinite possibilità di streaming da dispositivi periferici – dagli orologi alle auto autonome – verso forme di Intelligenza Artificiale che saranno eseguiti su architetture HPC.
La relazione tra AI e HPC
I carichi computazionali relativi all’addestramento (training) e all’operatività (inference) dei modelli di Machine Learning (ML) stanno crescendo, rendendo la definizione di una strategia HPC vitale per la competitività delle organizzazioni (e dei Paesi) che intendono adottare l’Intelligenza Artificiale. Nel contempo, la natura dei carichi computazionali per l’AI ha cambiato radicalmente i requisiti per le future architetture HPC.
Nell’ultimo anno, sempre più ricercatori hanno lanciato l’allarme per l’esplosione dei costi del deep learning. La crescita delle potenze di calcolo impiegate è stata di 300 mila volte in sette anni. A giugno, un’analisi dei ricercatori dell’Università del Massachusetts, ad Amherst, ha mostrato come questi crescenti costi di calcolo si traducono direttamente in emissioni di carbonio.
HPC per il training
Vediamo di capire i motivi di questa crescita partendo dal primo problema: l’addestramento dei modelli ML supervisionati. Consideriamo due “killer application” come il riconoscimento dei volti e la comprensione del linguaggio naturale che hanno rivoluzionato il mercato dei dispositivi e dei servizi in tutto il mondo. Queste applicazioni si basavano originariamente su un ciclo di apprendimento semplice: (i) sottoporre ad un modello ML (inizializzato con una configurazione casuale) un insieme di dati per cui le risposte corrette sono note (un batch di dati), (ii) misurare ed accumulare l’errore (come somma lineare o quadratica delle differenze tra le risposte corrette e le risposte del modello sul batch di dati) e (iii) modificare la configurazione del modello in una direzione che possa diminuire l’errore.
La ricerca in AI ha via via introdotto dei miglioramenti, ad esempio calcolando l’errore come differenza tra parametri interni del modello (invece che tra le risposte) in modo da ottenere una funzione più regolare e seguirne meglio l’andamento; ma le implementazioni software del ciclo di apprendimento hanno continuato ad accumulare l’errore relativamente a batch di dati di dimensioni medio-grandi, in modo da eseguire con parsimonia la costosa operazione di aggiustamento della configurazione del modello ML, che consiste in un’operazione di algebra lineare molto simile a un prodotto matriciale.
I modelli ML “profondi” (Deep Learner), che hanno rivoluzionato il mercato garantendo un’accuratezza senza precedenti, sono caratterizzati da configurazioni interne molto complesse. Questa complessità strutturale rende indispensabile eseguire la modifica della configurazione del modello ML accumulando l’errore su batch piccoli (micro-batch) o addirittura riconfigurare il modello ML ogni volta che si calcola l’errore. La conseguenza di queste riconfigurazioni ripetute è la crescita dei carichi computazionali di training (ed anche del consumo di energia elettrica da parte dei centri HPC).
Crescita delle potenze di calcolo, i problemi “politici”
Nell’articolo dell’Università del Massachusetts, i ricercatori hanno anche notato come la tendenza alla crescita delle potenze di calcolo esacerbasse la privatizzazione della ricerca sull’IA perché mina la capacità dei laboratori accademici di competere con quelli privati, che sono molto più ricchi di risorse.
In risposta a questa crescente preoccupazione, diversi gruppi industriali hanno formulato raccomandazioni. L’Allen Institute for Artificial Intelligence, una società di ricerca senza fini di lucro di Seattle, ha proposto ai ricercatori di pubblicare sempre i costi finanziari e computazionali della formazione dei loro modelli insieme ai risultati delle loro prestazioni, ad esempio.
Nel suo blog, OpenAI ha suggerito ai responsabili delle politiche di aumentare i finanziamenti ai ricercatori accademici per colmare il divario di risorse tra i laboratori accademici e quelli del settore.
HPC, come si muove il mercato
Sul mercato, il training ha colpito a morte le soluzioni HPC a parallelismo massivo basate su processori standard, perché gli algoritmi disponibili per eseguire le operazioni di algebra lineare come prodotti matriciali o tensoriali sono lenti sulle CPU tradizionali (sia pure dotate di qualche istruzione vettoriale).
Per fortuna, l’industria della computer graphics e dei videogiochi aveva giù sviluppato le cosiddette GPU (Graphical Processing Units), co-processori ottimizzati per eseguire prodotti matriciali o tensoriali trattando in parallelo le righe e le colonne delle matrici coinvolte. Le operazioni di algebra lineare infatti sono anche alla base delle trasformazioni che si eseguono contemporaneamente su tutti i pixel di schermate ad alta risoluzione ad esempio, per cambiare la prospettiva di osservazione di una scena.
I requisiti di carichi computazionali elevati per l’AI hanno portato a un successo senza precedenti i fornitori di GPU come nVIDIA, e le architetture a paralellismo asimmetrico CPU-GPU, in cui la CPU calcola l’errore del modello e la GPU esegue la riconfigurazione del modello per cercare di minimizzarlo.
La ricerca non si è fermata qui: quale sia l’implementazione ottima di un operatore di algebra lineare dipende infatti anche dal valore degli operandi. Ad esempio, si possono moltiplicare tra loro due matrici sparse (formate quasi tutte da zeri), molto più rapidamente se si è al corrente di questa sparsità. Per questo, molti ricercatori ed alcuni fornitori come IBM hanno proposto di usare dei circuiti variabili sulla base dei dati (le Field Programmable Base Array o FPGA) al posto dei coprocessori per calcolare le riconfigurazioni dei modelli ML tenendo conto della sparsità della loro struttura.
Oggi, molte organizzazioni hanno radicalmente cambiato il loro budget HPC per dotarsi di sistemi multi-GPU; in alternative, questi sistemi (ad anche le FPGA) sono disponibili come servizio cloud da parte di fornitori come Amazon. Ma la sostenibilità energetica dei grandi carichi di training è ancora tutta da studiare.
Carichi computazionali di inferenza
Passiamo al secondo problema: l’utilizzo operativo dei modelli Machine Learning in produzione. Il termine inferenza si usa proprio per indicare l’elaborazione dei dati di produzione da parte di un modello ML pre-addestrato. I carichi computazionali di inferenza sono meno pesanti di quelli di training ma hanno un requisito specifico difficile da soddisfare: garantire una latenza limitata, ovvero limitare il tempo dal momento dell’arrivo dell’input al momento in cui viene reso disponibile il risultato. Quando parliamo con un agente capace di riconoscimento vocale, vogliamo che la risposta sia corretta ma ancora di più che arrivi in tempo utile, diciamo entro 100 ms.
Il requisito della latenza limitata rende impossibile eseguire l’inferenza nello stesso luogo dove si esegue il training, ovvero in cloud. Occorre invece che il modello ML in produzione sia spostato in periferia, ovvero il più vicino possibile al punto (o ai punti) di acquisizione del dato.
Per eseguire modelli ML in periferia, è possibile usare CPU tradizionali come quelle disponibili negli smartphone; ma spesso è preferibile optare per microcontrollori periferici specializzati in gradi di usare automaticamente la corretta rappresentazione del modello ML, ad esempio usando la miglior rappresentazione in virgola fissa dei parametri numerici di configurazione del modello a seconda della potenza computazionale e della batteria disponibili in quel momento.
Inferenza, lo stato della ricerca
Oggi, la ricerca sulle architetture hardware per il calcolo dell’inferenza si sta orientando verso la realizzazione e la messa in opera rapida di hardware periferico personalizzato per il calcolo delle inferenze, attraverso componenti di memoria attiva in grado di eseguire operazioni semplici (come i memristor recentemente ri-proposti da IBM), o persino attraverso la modifica interattiva delle proprietà di struttura dei materiali, che in futuro dovrebbe permetter il calcolo dell’inferenza irradiando con un segnale (che rappresenta l’input) un materiale la cui struttura interna è stata modificata per renderla simile alla configurazione del modello ML che sostituisce.
La disruption del Quantum
Le tecnologie e le innovazioni di cui abbiamo parlato sono dietro l’angolo, e non c’è dubbio che Stati Uniti e Cina dispongano giù di fornitori HPC “champion” posizionati molto favorevolmente sul mercato e dotati di imponenti portafogli di brevetti. L’Europa ha una posizione più defilata, ma può contare su aziende con esperienza di grandi applicazioni ML in settori verticali chiave (ad esempio, Atos per il Fintech) e anche su un champion con grande esperienza sull’hardware per AI, ST Microelectronics; quest’ultima può vantare punti di eccellenza anche in Italia.
La disruption del Quantum Computing
Per concludere, non va dimenticata che la possibilità di innovazione “disruptive” viene dal mondo del Quantum Computing. Il training di un modello ML, come abbiamo visto, consiste nel modificare progressivamente i parametri di configurazione del modello per fargli percorrere un cammino “sulla superficie dell’errore”, alla ricerca di un punto di minimo.
Il Quantum Computing prevede la possibilità che sistemi quantistici si trovino contemporaneamente in una molteplicità di stati; secondo alcuni ricercatori, si potrebbero quindi usare i dati di training per impostare un modello ML come un sistema quantistico che compie allo stesso momento tutti i cammini d’errore possibile, e poi estrarne in un colpo solo quello corrispondente all’errore minimo, con prestazioni superiori ai sistemi HPC più avanzati. Una prospettiva di “Intelligenza Artificiale Quantistica” ancora nebulosa ma su cui sembra proprio sia già al lavoro il venture capital internazionale.