Per avere più intelligenza dobbiamo consumare più elettricità? E’ davvero inevitabile o possiamo fare qualcosa per creare un’IA altrettanto capace, ma molto più frugale?
Diciamo spesso, anche recentemente su questa rivista, che l’IA ha un problema con la sostenibilità: costruiamo modelli che sono sì sempre più potenti, ma anche sempre più costosi e che richiedono risorse crescenti. Per quale motivo succede questo? Perché per avere più intelligenza dobbiamo consumare più elettricità? E soprattutto, è davvero inevitabile o possiamo fare qualcosa per creare un’IA altrettanto capace, ma molto più frugale?
L’evoluzione delle reti neurali
Il viaggio delle reti neurali nell’IA inizia negli anni ’50 con il percettrone di Rosemblat, un modello molto semplice (per gli standard attuali), ma capace di apprendere semplici compiti di classificazione. Negli anni ’80 e ’90, le reti neurali imparano a trattare problemi più complessi, e con l’algoritmo Backpropagation, introdotto da Hinton nel 1986, imparano ad apprendere rappresentazioni dalla semplice esposizione a dati di esempio. Negli anni 2000, con le architetture convoluzionali profonde, le reti imparano a vedere e con le reti Long Term Short Term a trattare input sequenziali (come il linguaggio naturale). La vera svolta, almeno per come stiamo usando le reti neurali oggi, è arrivata nel 2017 con l’introduzione dei Transformers.
L’architettura Transformer è un modello di rete neurale introdotto da Vaswani et al. nel 2017 nel paper intitolato “Attention is All You Need.” È progettato per gestire compiti di elaborazione del linguaggio naturale (NLP), come la traduzione automatica, il riassunto di testi, e altre applicazioni che richiedono comprensione del contesto e generazione di testo. I Transformers, che funzionano bene perché sono capaci di processare sequenze di dati (testo, audio, immagini) in modo parallelo, catturando relazioni complesse tra gli elementi di queste sequenze, hanno cambiato il modo in cui le macchine comprendono e generano il linguaggio.
La magia dei Transformers
Un Transformer è composto da due componenti, due reti multi-strato che hanno compiti complementari. La prima rete, chiamata encoder, analizza l’input, un insieme di frasi (o in versioni più recenti un insieme di frasi, immagini, audio, video) e cerca di estrarne una rappresentazione, attraverso un processo di auto-addestramento in cui la rete è esposta a input variamente modificati (per esempio nascondendo alcuni elementi) e impara a indovinarne la sequenza originale.
Al termine del processo di addestramento, che è complesso e richiede molti dati e molto tempo, l’encoder avrà creato una rappresentazione compressa dei dati di input (quello che si chiama lo spazio latente) che contiene informazioni significative estratte induttivamente durante l’addestramento. La seconda rete, il decoder, impara a decodificare le informazioni codificate dall’encoder e sulla base di uno stimolo, ad esempio un prompt, produrrà un testo che completa quello stimolo (o un’immagine, o un audio).
Da un punto di vista architetturale, non è nemmeno tanto complicato. Ma la vera magia risiede nel modo in cui il transformer tratta il dato di input, che non è analizzato in maniera sequenziale, come parrebbe naturale, ma in maniera più complessa. Questo meccanismo, chiamato Attention, consente al modello di focalizzarsi su diverse parti dell’input in modo simultaneo, cogliendo le relazioni tra le parole indipendentemente dalla loro distanza nel testo e di pesare diversamente parti di un input in base alla loro rilevanza, migliorando la capacità di gestire e interpretare le dipendenze tra diverse parti dei dati. Il risultato è un modello che può imparare e rappresentare in modo compresso una vasta quantità di informazioni, e in particolare le relazioni semantiche tra le parole di una frase.
Grazie a questo macchinario, i Transformer si sono rivelati bravissimi nella traduzione automatica (il compito per cui sono stati originariamente inventati), nella classificazione automatica, nella generazione del testo e, con alcune significative aggiunte e complicazioni, nella generazione delle immagini. I modelli attualmente di successo, da GPT-4 (e tutta la famiglia GPT) a Claude a Llama e Mistral, sono tutti variazioni sul tema.
Scaling law: il bene e il male
L’architettura basata su attention e sulla coppia di reti encoder-decoder si sta rivelando un’architettura molto generale, applicabile a domini e modalità diverse, dalla visione artificiale alle serie temporali fino alla pianificazione delle azioni di un robot autonomo. Possiamo pensare che la sua invenzione sia stata un vero breakthrough nell’evoluzione delle reti neurali e che ne sentiremo parlare ancora a lungo, anche perché i Transformer manifestano una caratteristica notevole: le loro prestazioni aumentano all’aumentare delle risorse computazionali, dei dati di addestramento e della dimensione del modello, secondo una progressione che ha la natura di una scaling law. Le osservazioni che abbiamo al momento sembrano indicare che, con sufficiente capacità computazionale e dati, i modelli Transformer possono continuare a migliorare le loro prestazioni in modo prevedibile e consistente.
Questa scaling law (ricordiamolo: sia chiama impropriamente “legge”, in realtà è un’osservazione empirica basata su pochi anni di dati), che correla capacità e dimensioni del modello, è la causa della corsa allo sviluppo di modelli sempre più grandi e potenti, che sfruttano enormi e crescenti quantità di dati e di potenza di calcolo. I Transformer e le scaling laws hanno segnato un cambiamento di paradigma, mostrando che l’aumento delle risorse può portare a progressi significativi nell’IA, spingendo i confini di ciò che le macchine possono realizzare.
Quindi: con l’aumento delle dimensioni dei modelli e dei dataset, le prestazioni dei modelli basati su Transformers migliorano significativamente. Tuttavia, c’è un problema.
In informatica si studia la complessità degli algoritmi, una misura delle risorse necessarie per eseguire il programma che implementa l’algoritmo in esame. Le risorse comunemente considerate sono il tempo (tempo di esecuzione) e lo spazio (memoria utilizzata). La complessità è importante, perché aiuta a comprendere l’efficienza di un algoritmo e a confrontare diversi algoritmi per risolvere lo stesso problema. La complessità può essere costante (il tempo di esecuzione o lo spazio utilizzato non dipende dalla dimensione dell’input), lineare (il tempo o lo spazio cresce linearmente con la dimensione dell’input), logaritmica (il tempo o lo spazio cresce logaritmicamente con la dimensione dell’input), quadratica (il tempo o lo spazio cresce proporzionalmente al quadrato della dimensione dell’input), esponenziale (il tempo o lo spazio raddoppia con l’aumento di un’unità della dimensione dell’input). E’ evidente che le prime tre (costante, lineare, logaritmica) sono più scalabili delle seconde due (quadratica e esponenziale), che consumano risorse molto velocemente all’aumentare della dimensione dell’input, fino a rendere l’algoritmo non utilizzabile in pratica, se non al prezzo di un aumento altrettanto veloce delle risorse impiegate per il calcolo.
Ed ecco il problema: per come è fatta, l’attention, la chiave del successo dei transformer, ha complessità computazionale quadratica, O(n2) in gergo. Ovvero: l’aumento della dimensione dell’input si porta dietro una crescita esponenziale (con esponente 2) della complessità computazionale. Quindi siamo in una situazione particolare: da una lato, la scaling law ci dice che più dati usiamo, meglio la rete apprende. Dall’altro, la complessità dell’attention ci dice che più grande è l’input, più risorse dobbiamo usare e il fabbisogno cresce velocemente, con il quadrato della dimensione dell’input.
Ma di che risorse abbiamo bisogno? Semplice: di energia elettrica. Una rete neurale, alla fine (e con grande semplificazione), è per lo più algebra lineare e moltiplicazione di matrici. Per questo le GPU funzionano così bene: sono architetture studiate per fare efficacemente e velocemente operazioni algebriche in virgola mobile. Nel mondo dei microprocessori si parla di FLOPS (Floating Point Operations Per Second), una misura standard della quantità di operazioni che un certo processore è in grado di compiere in un secondo. Nei 70 anni di vita dei calcolatori digitali siamo passati dalle migliaia di FLOPS del IBM 704 (1954) ai milioni e poi miliardi e miliardi di miliardi di FLOPS, una crescita esponenziale che segue un’altra famosa scaling law, la legge di Moore. Questa disponibilità enorme, e fino ad ora sempre crescente, di computazione è stata una delle condizioni abilitanti per l’attuale evoluzione delle capacità dei sistemi basati su reti neurali. Non sappiamo esattamente quanta computazione, misurata in FLOPS, sia necessaria per l’addestramento e l’utilizzo di modelli di grandi dimensioni, come GPT-4 o Claude 3, ma si stima che per l’addestramento siamo nell’ordine di 1024 FLOPS. Il regolamento europeo sull’IA, il cosiddetto AI Act, ritiene che la soglia critica, oltre la quale il modello presenta “rischi sistemici” sia 1025 FLOPS (AI Act, Articolo 51), quindi siamo molto vicini. Ma torniamo all’elettricità. Le GPU consumano, per funzionare, parecchia energia. Un NVIDIA H-100, la GPU più performante oggi sul mercato, secondo alcune analisi, in una configurazione reale di data center, considerando CPU, memoria, switch e quant’altro, ha un consumo di circa 1,3kW. Proviamo a dare un senso a questo numero: se usiamo per un anno una H-100 al 60%, consumiamo circa 3.800 kWh. Una famiglia italiana di tre persone secondo una valutazione standard di ISTAT, ha un consumo medio annuo di 2.700 kWH. Questo è il livello di consumi.
Meta, per l’addestramento della famiglia di modelli Llama 2, dichiara di avere utilizzato 1,3 milioni di kWh, il consumo annuale di 480 famiglie italiane. E’ tanto o poco? Non è semplice valutare. Così come non è semplice valutare se ce lo possiamo permettere.
Esistono varie proiezioni, anche molto diverse tra loro, sul consumo futuro dei datacenter e sull’impatto, al rialzo, che subirà a causa dell’IA. Partendo da una stima dei consumi di energia elettrica dei data center mondiali nel 2010 di circa 100 TWh, è stato stimato che, entro il 2030, i data center potrebbero consumare fino al 4,5% dell’energia totale prodotta sul pianeta, un valore paragonabile al consumo energetico della Germania. E naturalmente, oltre all’energia, l’IA richiede anche altre risorse come acqua, materiali e terre rare, aumentando l’impatto ambientale complessivo. Questo è male. Potrebbe volere dire che rischiamo di non poterci permettere le nuove fabbriche dell’intelligenza promesse dall’IA, e sarebbe un peccato.
Quindi, che fare?
Soluzioni per un’IA sostenibile
Di fronte a questo problema, abbiamo tre tipi di soluzioni.
La prima soluzione è non fare assolutamente nulla, sperando che vada tutto bene. Questo significa considerare inevitabile l’aumento dei consumi (perché i transformer con attention funzionano così, hanno quella complessità computazionale) e magari cercare una soluzione che garantisca l’energia elettrica necessaria. AWS, la società di Amazon specializzata in servizi digitali, ad esempio, ha da poco acquistato un data center da 1.000 megawatt in Pennsylvania, alimentato da una vicina centrale nucleare.
La seconda soluzione è l’ottimizzazione dell’hardware, ovvero cercare di sviluppare chip non soltanto sempre più evoluti e adattati specificamente per le reti neurali, ma anche più efficienti. Questo progresso è in corso, come testimoniato, ad esempio, dai nuovi processori NVIDIA della famiglia Blackwell, però è una soluzione che ha un costo elevato, perché la progettazione e realizzazione di queste tipologie di chip hanno complessità crescente.
La terza soluzione è l’ottimizzazione del software, ovvero delle reti neurali stesse. L’idea è provare a creare modelli che non soltanto siano performanti nell’eseguire il loro compito, ma che lo facciano nel modo più efficiente possibile, tenendo conto delle limitazioni e delle specificità dell’ambiente di esecuzione. Rendere l’IA un po’ meno affamata di risorse, un po’ più frugale, per così dire, inizia a diventare un obiettivo di almeno una parte della comunità IA mondiale. Per esempio, è di poco tempo fa l’annuncio dell’acquisizione da parte di NVIDA di Deci, una startup israeliana che lavora proprio sull’ottimizzazione delle reti neurali. Anche in Italia, le cose si muovono in questa direzione: il premio nazionale per l’innovazione è stato assegnato a Focoos AI, una startup che lavora per una IA meno energivora.
La buona notizia, per certi versi, è che c’è tanto da ottimizzare. Le reti neurali, in particolare quelle con architettura transformer, sono circuiti molto grandi (miliardi di neuroni) e complessi (centinaia di livelli) che sono stati costruiti per un approccio a forza bruta. Il risultato è che molte connessioni non contribuiscono significativamente alle prestazioni del modello, aumentando, forse inutilmente, la complessità e portando ad un uso inefficiente della memoria e delle risorse computazionali. La domanda, ed è una domanda su cui, come abbiamo visto, la ricerca è in corso, è se sia possibile ottimizzare questi circuiti, senza perdere in prestazioni.
Le strategie adottabili sono principalmente tre.
La prima è il pruning (la potatura): una tecnica di ottimizzazione che riduce la dimensione della rete neurale eliminando le parti meno importanti, rimuovendo interi neuroni o solo connessioni specifiche, in modo da ridurre la complessità computazionale e la memoria richiesta dalla rete, mantenendo (o a volte migliorando) le prestazioni del modello.
La seconda è la quantizzazione, che riduce la precisione dei numeri usati per rappresentare i pesi e le attivazioni di una rete neurale. Ad esempio, si può passare da una rappresentazione che usa 32 bit a una che usa 8 bit. Questo riduce notevolmente le risorse necessarie per l’esecuzione e lo storage del modello, accelerando le inferenze e riducendo il consumo.
La terza è la distillazione (knowledge distillation), una tecnica in cui si trasferisce la conoscenza acquisita da un modello grande e complesso (insegnante) a uno più piccolo e leggero (studente). Durante l’addestramento, il modello studente impara a imitare il comportamento dell’insegnante, raggiungendo prestazioni simili a quelle dell’insegnante con minore complessità computazionale.
Sono tecniche non semplici, ma la posta in gioco è alta: diminuire il costo energetico dell’IA mitiga alcuni rischi che stiamo iniziando a considerare seriamente: quello ambientale, di cui abbiamo parlato, ma anche quello economico e, per certi versi, politico. Un’IA muscolare richiede enormi capitali e porta a una progressiva concentrazione verso pochi player di grandi dimensioni, come in effetti sta accadendo in questo momento.
Inoltre, esiste un ampio spazio di applicazione dell’IA che richiede l’utilizzo di modelli a basso consumo energetico, per poter essere integrati in oggetti fisici come robot o satelliti. C’è quindi anche una grande opportunità di crescita economica nell’ottimizzare le reti, non soltanto un’occasione di risparmio.
Verso un futuro sostenibile
L’ottimizzazione dell’IA è un campo in continua evoluzione. Storicamente, i sistemi tecnologici nascono poco efficienti e lo diventano via via nella loro maturazione. E’ successo recentemente, ad esempio per la compressione video, che è migliorata esponenzialmente negli ultimi vent’anni, rendendo possibile la diffusione di piattaforme come YouTube e Netflix. Vale la pena provarci anche con l’IA, con l’obiettivo di ridurre il consumo energetico senza compromettere le prestazioni.
Siamo forse giunti al momento di ragionare su un possibile impegno collettivo per trovare soluzioni più sostenibili, un impegno che coinvolga governi, aziende e ricercatori. In questo ambito, visto che siamo in cerca di una via italiana all’IA, la neonata fondazione AI4Industry potrebbe rappresentare un’opportunità per concentrare gli sforzi in questa direzione, promuovendo un’IA sostenibile e ottimizzata, in grado di sfruttare al meglio le risorse disponibili senza compromettere il futuro del pianeta.
Vittorio Di Tomaso ha un background in Natural Language Processing ed è imprenditore nel campo dell’Intelligenza Artificiale, oggi Managing Director di Maize – A Jakala Company e Presidente Gruppo aziende Digital Technologies dell’Unione Industriali di Torino.