Nvidia GTC 2023 si è tenuta tra Il 20 e il 23 Marzo. Focalizzata sugli sviluppi a breve e medio termine dell’azienda leader mondiale in processori grafici. Questi stanno rivoluzionando e rendendo possibile lo sviluppo vertiginoso dell’Intelligenza Artificiale nella prima parte del 2023.
Solo oggi riusciamo a fornire un primo resoconto dell’evento: si è trattato di una conferenza così densa di contenuti, così rivolta al possibile futuro che ci attende e così complessa, che assimilare i contenuti per persone “normali” richiede tempo.
Ci scusiamo, ma questo è sicuramente il primo di una serie di articoli, perché la quantità di contenuti e il valore di ciascuno di essi non possono essere riassunti in un solo post di blog.
I numeri di Nvidia GTC 2023
Quest’anno, i numeri presentati dal CEO di Nvidia, Jensen Huang, durante la sua lunga keynote (oltre un’ora di discorso coinvolgente), sono stati impressionanti. L’ecosistema che ruota attorno alla tecnologia Nvidia è composto da 4 milioni di sviluppatori, 40.000 aziende, 14.000 startup e tutte le più grandi aziende del mondo operanti nella tecnologia di altissimo livello sono tra gli sponsor dell’evento. La conferenza ha aperto le porte a un pubblico in gran parte virtuale di oltre 250.000 persone che hanno assistito a più di 650 interventi di ingegneri e scienziati collegati al mondo Nvidia. Oltre 70 conferenze sono state dedicate all’Intelligenza Artificiale generativa, quella di Chat GPT, per intenderci.
Gli sviluppi dell’Intelligenza Artificiale
Ma quello che ha aperto le porte alle meraviglie tecnologiche promesse dallo sviluppo dell’Intelligenza Artificiale è stato un breve video, che qui riproponiamo, “I am AI”. Un mix sapientemente amalgamato di musica, immagini, concetti, promesse e possibilità offerte dall’Intelligenza Artificiale. Un bellissimo video con un colpo di scena finale da non perdere. Consigliamo vivamente la visione!
Il dibattito in Italia
È certo che lo sviluppo di una tecnologia così potente comporta dei rischi, ma ciò accade con ogni progresso umano significativo. Fa parte della nostra natura cercare il lato negativo in ogni cosa, ma noi siamo fiduciosi nelle capacità umane di controllare, e non solo evitare, i lati oscuri, amplificando gli aspetti benefici di ogni tecnologia. Siamo convinti che lo stesso accadrà quando l’Intelligenza Artificiale uscirà dalla sua fase infantile in cui ci troviamo attualmente. Speriamo che le molte voci oscurantiste, spesso motivate dall’ignoranza, si estinguano, convinte che non stia per arrivare Skynet sulla terra.
Vi è una parentesi doverosa, legata al dibattito insensato che si legge ogni giorno sui giornali nazionali. Basta oltrepassare il confine del nostro piccolo paese per scoprire che il resto del mondo è un po’ più lungimirante di noi, popolo italiano.
Torniamo all’evento.
Accelerated Computing
Nvidia è l’azienda che ha introdotto il concetto di ‘calcolo accelerato’ o ‘elaborazione accelerata’ (accelerated computing, in inglese) nei computer, un approccio che utilizza processori specializzati come le GPU per accelerare notevolmente la velocità di elaborazione dei dati, necessario e indispensabile per la risoluzione di problemi che altrimenti non sarebbero stati risolti. Le sfide tecnologiche sono state e sono tutt’ora enormi per riuscire ad accelerare sempre di più il calcolo e quindi spingersi sempre più verso le sfide che il futuro ci presenta. Dall’hardware al software di controllo, dai materiali alle tecniche miniaturizzate di costruzione, ogni singolo dettaglio serve per spingersi più avanti. Ogni sistema completo di componenti, una volta accelerato, aumenta le prestazioni delle applicazioni che ne beneficiano e da esse beneficia il progresso di quel campo della conoscenza.
Così per la meccanica dei fluidi, delle particelle, per la fisica, per la medicina, per ogni campo del sapere umano, l’accelerated computing è fonte di aumento della conoscenza umana. Un ulteriore fattore che aumenta ancora di più le prestazioni è la capacità di distribuire il calcolo su reti immense di computer accelerati che rendono la velocità di questi sistemi qualcosa che fino a qualche anno fa non era nemmeno possibile immaginare.
Esempi concreti ce ne sono molti: problemi fino ad ora irrisolvibili sono stati risolti nell’ultimo decennio grazie a questi sistemi che hanno accelerato i calcoli necessari fino a un milione di volte.
2012: Nasce AlexNet
L’esempio più interessante è senza dubbio quello di AlexNet, un modello di rete neurale convoluzionale profonda che ha vinto la competizione ImageNet nel 2012. Questo evento è stato significativo perché ha dimostrato l’efficacia delle reti neurali convoluzionali nel campo della visione artificiale. AlexNet è stato addestrato su un insieme di 14 milioni di immagini e ha utilizzato due GPU per l’addestramento a causa delle limitazioni della memoria della GPU disponibile all’epoca. Al termine del processo di apprendimento, AlexNet era in grado di riconoscere e suddivere in tipologie ogni tipo di immagine in maniera autonoma.
La vittoria di AlexNet ha catalizzato l’interesse per l’apprendimento profondo e ha contribuito a rivitalizzare il campo dell’intelligenza artificiale. Tuttavia, sarebbe più preciso dire che AlexNet e lavori simili hanno innescato un aumento dell’interesse per le applicazioni dell’apprendimento profondo in vari settori, piuttosto che l’intero campo dell’intelligenza artificiale, che include molte altre tecniche e approcci oltre all’apprendimento profondo.
2022: Transformer e Chat GPT
Un decennio dopo, gli ideatori di AlexNet, utilizzano Transformer, un sistema largamente evoluto, nato dalle intuizioni di questo documento di Ashish Vaswani, il quale introduce un nuovo concetto di rete neuronale, basato sul “self-attention” piuttosto che sulle convoluzioni. Con le reti Transformer la potenza di calcolo esplode per arrivare a 323 trilioni di trilioni di operazioni al secondo, e cià consente l’addestramento del primo nucleo di Chat GPT che ha stupito il mondo per la sua capacità di interloquire con un perfetto linguaggio naturale. Oggi, vediamo ulteriori progressi con l’arrivo di GPT-4, e l’anticipazione cresce per GPT-5, che promette avanzamenti ancora più sorprendenti.
Nel mondo, si sono moltiplicati gli esempi più disparati di applicazioni di Intelligenza Artificiale.
Per un approfondimento sulle sostanziali differenze tra Reti Neuronali Convoluzionali (CNN) e Trasnformer potete guardare il box nell’articolo.
Reti Neurali Convoluzionali (CNN)
Come funziona una Rete Neuronale Convoluzionale (Convolutional Neural Network o CNN):
- Struttura: Le CNN sono composte da una serie di livelli, o strati, ciascuno dei quali contiene molti neuroni artificiali. Questi strati sono generalmente divisi in tre tipi: strati convoluzionali, strati di pooling (o sottocampionamento) e strati completamente connessi.
- Strati convoluzionali: Gli strati convoluzionali applicano un set di filtri alla matrice di input. Ogni filtro è un piccolo matrice che viene moltiplicata per una piccola sezione dell’input per produrre una nuova matrice chiamata mappa delle caratteristiche. Questo processo è ripetuto su tutta l’immagine, creando diverse mappe delle caratteristiche che rappresentano diverse caratteristiche dell’input.
- Strati di pooling: Gli strati di pooling riducono la dimensione delle mappe delle caratteristiche, mantenendo le caratteristiche più importanti. Questo viene fatto selezionando una finestra di pixel (ad esempio, 2×2) e mantenendo solo il pixel con il valore più alto (max pooling) o la media dei valori dei pixel (average pooling). Questo aiuta a ridurre l’overfitting e a migliorare l’efficienza computazionale.
- Strati completamente connessi: Gli strati completamente connessi fungono da classificatori finale della rete. Prendono tutte le mappe delle caratteristiche prodotte dagli strati convoluzionali e di pooling e le usano per determinare la classe dell’immagine input (ad esempio, se un’immagine contiene un gatto o un cane).
- Backpropagation e apprendimento: Durante l’allenamento, la CNN utilizza un algoritmo chiamato backpropagation per aggiornare i pesi dei filtri e dei neuroni nella rete. L’obiettivo è minimizzare la differenza tra l’output previsto della rete e l’output effettivo. Questo viene fatto attraverso un processo iterativo in cui la rete viene esposta a molti esempi di immagini e le risposte corrette corrispondenti.
Le CNN sono particolarmente efficaci nel riconoscimento di immagini e nel trattamento di dati con una topologia griglia, come i dati temporali e spaziali.
Modelli transformer
I transformer sono un tipo di modello di apprendimento profondo utilizzato principalmente per le attività di elaborazione del linguaggio naturale. Ecco una spiegazione generale su come funzionano:
- Struttura: I modelli transformer sono composti da un encoder e un decoder. Entrambi sono costituiti da una serie di strati, ciascuno con un insieme di operazioni di attenzione multi-testa e una rete di feed-forward.
- Encoder: L’encoder legge il testo di input, parola per parola (o piuttosto token per token), e genera una serie di vettori di parole, o embeddings. Questi embeddings contengono informazioni non solo sulla parola stessa, ma anche sul suo contesto all’interno della frase.
- Attenzione multi-testa: Questa è una parte fondamentale dei modelli transformer. L’idea è che, invece di concentrarsi su una sola parola alla volta, il modello dovrebbe essere in grado di prestare attenzione a diverse parole contemporaneamente, attribuendo a ciascuna un peso diverso a seconda della sua rilevanza.
- Decoder: Il decoder legge gli embeddings delle parole e genera il testo di output, anche questo un token alla volta. Ad ogni passaggio, si basa non solo sugli embeddings che ha ricevuto dall’encoder, ma anche su tutto ciò che ha generato fino a quel momento.
- Apprendimento e previsione: Durante l’allenamento, i modelli transformer utilizzano un approccio chiamato apprendimento supervisionato. Vengono alimentati con coppie di frasi, dove la seconda frase è una continuazione o una risposta alla prima, e imparano a generare queste seconda frasi dato l’input della prima frase. Una volta addestrati, possono generare testo libero producendo una parola alla volta e alimentando il proprio output come input successivo.
I modelli transformer sono particolarmente efficaci nell’elaborazione del linguaggio naturale grazie alla loro capacità di catturare relazioni a lungo termine all’interno del testo e di generare testo di alta qualità. Sono alla base di molti modelli di linguaggio moderni, come GPT-3 e BERT.
L’alba di una nuova era
Insomma, stiamo vivendo davvero l’alba di un mondo completamente nuovo e che è ormai già qui.
Ogni settore del sapere umano sta beneficiando dell’accelerazione dei calcoli introdotta grazie alle tecnologie di Nvidia. Il GTC di quest’anno ha visto numerosi annunci di nuove librerie e nuovi sistemi di interconnessione dei sistemi e di correzione degli errori che promettono di raggiungere i risultati attesi più velocemente.
In numerosi campi industriali e del sapere, l’Intelligenza Artificiale e il calcolo accelerato stanno portando innovazioni, sviluppo, miglioramento dei servizi ed efficienza nei processi, rendendoli ecosostenibili e riducendo l’impatto umano sull’ambiente. Tra questi ci sono:
- Automotive – Complessi calcoli di modelli matematici per lo studio evoluto della meccanica dei fluidi consentiranno di sviluppare veicoli con minore resistenza, di progettare abitacoli maggiormente resistenti agli impatti, di abbassare l’impatto ambientale dei motori e di aumentarne l’efficienza.
- Meccanica Quantistica – Il calcolo dei modelli di Fisica avanzata e di meccanica quantistica consentiranno agli scienziati più veloci progressi in ambito scientifico, di aprire la strada a nuove teorie, alla verifica di quelle in corso di verifica. Tutte operazioni che oggi richiedono decenni di analisi computazionali
- Logistica – L’Intelligenza Artificiale applicata alla logistica promette efficienza nei servizi ai cittadini, con tempistiche ridotte e minori sprechi di tempo in inefficienze. Magazzini intelligenti, gestione bagagli e servizi postali al massimo delle potenzialità
- Trasporti – Ciò che la logistica farà per gli oggetti, nel campo dei trasporti avverrà per le persone. Tragitti ricalcolati in funzione di eventi sempre sotto controllo, non più ritardi e inefficienze
- Database – In realtà nel campo del Big Data le cose si sono già smosse da diverso tempo, quantità sempre maggiori di dati analizzati, catalogati e ritrovabili in pochi milionesimi di secondo. A beneficio delle informazioni di ogni genere.
- Gaming – Anche nel gaming gli sviluppi sono immensi. Non solo grafica ormai realistica e autogenerata al momento, ma Intelligenza Artificiale applicata al gaming per sfide sempre più evolute
- Entertainment – In generale, servizi di streaming video, di musica con contenuti sempre ottimizzati per il gusto dell’individuo
Ma sarà soprattutto la medicina, grazie alle nuove librerie di accelerazione annunciate da Nvidia che vedrà le maggiori evoluzioni con il costo di esami complessi oggi dai costi elevatissimi scendere intorno ai 100€ per esempio, per l’analisi di un genoma che oggi richiede settimane e migliaia di euro. Questo aspetto, più di tutti gli altri, promette di accelerare in maniera incredibile i progressi in campo medico. Con la possibilità ora concreta di sviluppare medicinali in tempi record che fino a ieri sembravano fantascienza. Non solo: diagnosi assistite, operazioni chirurgiche da coadiuvatore o condotte autonomamente faranno la comparsa nella vita di ogni giorno
Dedicheremo un prossimo articolo per passare in rassegna gli annunci fatti durante il GTC in quanto sono davvero numerosi e meritevoli di un approfondimento maggiore.
Risultati finanziari di Nvidia
Vogliamo concludere il presente articolo con il recentissimo annuncio dei risultati finanziari di qualche giorno fa, che ha visto il prezzo dell’azione di Nvidia fare un balzo di circa il 30% in una sola seduta. L’andamento del prezzo storico è in costante crescita, segno che le politiche aziendali, ma soprattutto, la direzione data all’azienda sembra stia raccogliendo dei frutti importanti.
La rivoluzione copernicana del computing
Insomma, se fino a qualche anno fa il cuore dei nostri computer era la CPU con le lotte dei maggiori chip del settore, Intel e AMD in testa, adesso il vero protagonista del computing alla base dell’Intelligenza Artificiale è diventato ormai la GPU, passata da essere il cavallo di battaglia per i giochi ad altissimo consumo di risorse a protagonista imprescindibile del futuro del progresso umano.
Su cosa si basa questa rivoluzione copernicana? Principalmente nell’approccio al calcolo: Calcoli velocissimi di vario genere ma sequenziali (CPU) contro calcoli più semplici ma parallelizzati e quindi in numero enormemente maggiore (GPU). Vediamo un’analisi più approfondita nel box.
La CPU, o unità di elaborazione centrale, è spesso descritta come il “cervello” del computer perché esegue la maggior parte dei calcoli e delle operazioni logiche necessarie per far funzionare il sistema. Ecco come funziona in generale:
- Architettura: Le CPU sono composte da milioni o miliardi di transistor, componenti elettronici che possono essere attivati o disattivati per rappresentare lo stato di un bit (0 o 1). Questi transistor sono organizzati in circuiti più complessi chiamati porte logiche, che possono eseguire operazioni booleane di base (AND, OR, NOT, ecc.). A loro volta, le porte logiche formano componenti più complessi come sommatori, moltiplicatori, registri, ecc.
- Instruzioni: Le CPU eseguono codici di programmazione tramite un set di istruzioni, che possono includere operazioni come l’addizione o la sottrazione di numeri, il trasferimento di dati da una posizione di memoria a un’altra, il confronto tra valori, ecc. Queste istruzioni sono solitamente scritte in linguaggio macchina, una forma di codice binario che la CPU può interpretare direttamente.
- Ciclo di elaborazione: Le CPU eseguono le istruzioni seguendo un ciclo di elaborazione di base che include la lettura dell’istruzione successiva da eseguire dalla memoria (fetch), la decodifica dell’istruzione per determinare cosa fare (decode), l’esecuzione dell’istruzione (execute) e, infine, il salvataggio del risultato nell’architettura interna (store). Questo ciclo è ripetuto milioni o miliardi di volte al secondo.
- Multitasking e Multi-Core: Le moderne CPU sono spesso multi-core, il che significa che hanno più unità di elaborazione separate all’interno dello stesso chip che possono eseguire istruzioni indipendentemente l’una dall’altra. Questo consente un miglior multitasking, poiché diverse operazioni o programmi possono essere eseguiti simultaneamente.
A differenza delle GPU, le CPU sono progettate per eseguire un’ampia varietà di operazioni e per gestire compiti complessi e sequenziali, piuttosto che operazioni parallele su grandi quantità di dati. Questo le rende ideali per la maggior parte delle applicazioni di uso generale, compresi la maggior parte dei software di produttività, dei sistemi operativi, e così via.
Le GPU sono progettate per essere molto efficienti nel processamento di grafica e di operazioni matematiche parallele. Questo le rende ideali per i giochi, per la grafica 3D e per molte applicazioni scientifiche, tra cui l’intelligenza artificiale e l’apprendimento automatico.
Ecco come funzionano in generale:
- Calcolo parallelo: Una GPU è composta da centinaia o addirittura migliaia di piccoli core di calcolo che lavorano insieme per eseguire operazioni in parallelo. Questa è una differenza fondamentale rispetto alle CPU, che hanno un numero molto più limitato di core (tipicamente da 2 a 64), ma che sono progettati per eseguire operazioni complesse in sequenza.
- Pipeline di rendering: Le GPU hanno un processo di rendering in più passaggi che può includere la trasformazione di vertici, il rastering (la conversione di forme geometriche in pixel), l’applicazione di texture e la produzione del frame finale. Questo processo è altamente ottimizzato per le operazioni grafiche.
- Memoria: Le GPU hanno la propria memoria dedicata, chiamata VRAM (Video RAM), che è ottimizzata per le operazioni ad alta larghezza di banda necessarie per la grafica.
Nell’apprendimento automatico e nell’intelligenza artificiale, l’abilità delle GPU di eseguire calcoli paralleli le rende estremamente utili per il training di modelli di reti neurali, in cui milioni o miliardi di pesi devono essere aggiornati simultaneamente.