← Torna allo scaffale

Sunday Latte · Italiano

Sunday Latte: Perché l’intelligenza artificiale richiede tanta capacità di calcolo

Perché addestramento e inferenza richiedono tanti calcoli, movimenti di dati e coordinamento, e perché più risorse non garantiscono né verità né valore.

Pubblicato
Durata
19:52

Exact published script

Trascrizione

Trascrizione in testo semplice

Introduzione del Café

Benvenuti all'Andy's Café, dove le macchine preparano e le persone assaporano. Oggi serviamo un Sunday Latte. Mettetevi comodi e buon ascolto.

Una domanda leggera

Scriviamo una domanda di poche parole. Dopo qualche secondo compare una risposta intera. Dal nostro punto di vista, il gesto sembra quasi privo di peso: una tastiera, uno schermo, una breve attesa. Eppure, dietro quella risposta, ci sono acceleratori costosi, grandi quantità di memoria e, talvolta, intere sale di calcolo. Da dove nasce questa sproporzione?

La prima cosa da chiarire è che non tutta l'intelligenza artificiale funziona allo stesso modo. Un piccolo sistema che riconosce un difetto in una fotografia non ha necessariamente le esigenze di un grande modello linguistico. Qui parleremo soprattutto dei modelli che generano testo una parola alla volta, o più precisamente un token alla volta. Un token è una piccola unità in cui il testo viene suddiviso.

Per capire il loro fabbisogno di calcolo, conviene separare due spese. La prima arriva durante l'addestramento: il modello deve imparare milioni o miliardi di valori numerici, chiamati pesi. La seconda arriva ogni volta che lo usiamo: quei pesi devono essere applicati alla domanda e a ogni nuova parte della risposta.

Il modello, in sostanza, è una funzione numerica enorme che ha imparato dai dati. Non consulta una copia segreta di Internet a ogni richiesta e non compie un unico, misterioso atto di pensiero. Esegue molte operazioni semplici, organizzate in una struttura molto grande. Il punto decisivo non è la difficoltà di una singola operazione. È quante volte viene ripetuta, quanti dati devono essere spostati e quanto bene l'intero sistema riesce a lavorare senza aspettare.

Il lavoro delle matrici

Quando una frase entra nel modello, i suoi token vengono trasformati in vettori, cioè liste di numeri. Quei numeri non corrispondono a definizioni scritte in un dizionario. Sono coordinate apprese, utili al modello per rappresentare relazioni e regolarità. Attraversando molti strati, ogni vettore viene trasformato più volte fino a contribuire alla previsione del token successivo.

Una parte centrale di questo percorso è il meccanismo di attenzione. In forma semplificata, il modello crea diverse rappresentazioni di ogni token e le confronta per stabilire quali parti del contesto siano rilevanti. Un pronome può dipendere da un nome comparso prima. Una conclusione può dipendere da una premessa distante. Dopo l'attenzione arrivano altre trasformazioni numeriche, applicate a ogni posizione del testo.

Gran parte del lavoro assume la forma di moltiplicazioni tra matrici, grandi tabelle di numeri. Una singola moltiplicazione e somma è minuscola. Ma l'operazione viene eseguita per molti elementi, in molti strati, per molti token e per molte richieste. È come osservare una sola goccia e chiedersi perché serva un acquedotto. La risposta non è nella goccia, ma nel flusso complessivo.

I normali processori sono costruiti per affrontare compiti molto diversi. I processori grafici e gli acceleratori dedicati, invece, dispongono di moltissime unità capaci di svolgere operazioni numeriche in parallelo. Questa architettura si adatta bene alle matrici. Non significa che un acceleratore sia più veloce in qualunque situazione. Lo diventa quando il lavoro può essere organizzato in grandi blocchi regolari e quando i dati arrivano abbastanza in fretta da tenerlo occupato.

Per questo il dato pubblicitario sulla velocità massima di un chip racconta solo una parte della storia. È un limite teorico, non una promessa. Se le operazioni sono troppo piccole, se la memoria non alimenta il chip o se il programma lascia inutilizzate molte unità, la prestazione reale resta molto più bassa. Il calcolo dell'intelligenza artificiale comincia nelle matrici, ma molto presto diventa un problema di sistema.

Imparare correggendo gli errori

Durante l'addestramento, il modello riceve una porzione di testo e prova a prevedere ciò che viene dopo. La previsione viene confrontata con il testo effettivo e produce una misura dell'errore. A quel punto l'errore viene propagato all'indietro attraverso gli strati, per calcolare in quale direzione modificare ciascun peso. Un algoritmo di ottimizzazione applica poi una piccola correzione.

Questa sequenza ha quattro momenti: previsione, errore, calcolo delle correzioni e aggiornamento dei pesi. Poi ricomincia con un'altra porzione di dati. Nessun passaggio, preso da solo, spiega la scala del progetto. È la ripetizione su quantità immense di testo a generare il conto. Per un modello denso, una buona intuizione è che il lavoro cresce sia con il numero dei parametri sia con il numero dei token usati per addestrarlo.

Anche la memoria richiesta è molto maggiore del semplice spazio occupato dal modello finito. Durante l'apprendimento bisogna conservare, oppure ricalcolare, molti risultati intermedi. Servono inoltre i gradienti, che indicano come cambiare i pesi, e lo stato dell'algoritmo di ottimizzazione. Un modello che può essere utilizzato su un certo insieme di macchine può richiederne molte di più mentre impara.

Qui compare una distinzione importante. I pesi contengono regolarità apprese, non frasi archiviate in modo ordinato. Quando risponde, il modello applica quelle regolarità al contesto ricevuto. Può ricordare indirettamente informazioni viste durante l'addestramento, ma non sta sfogliando l'intero corpus alla ricerca della riga giusta. Questa differenza spiega sia la capacità di formulare risposte nuove, sia il rischio di produrre affermazioni plausibili ma false.

Più dati, inoltre, non significano automaticamente dati migliori. Duplicazioni, errori, squilibri e materiale poco pertinente possono consumare calcolo senza insegnare ciò che serve. Anche l'obiettivo conta: il sistema migliora rispetto al criterio con cui viene addestrato, non rispetto a ogni qualità umana desiderabile. Il calcolo rende possibile l'apprendimento, ma non sceglie da solo che cosa valga la pena imparare.

Crescere con equilibrio

Per anni, una parte importante del progresso è arrivata aumentando la scala. Modelli più grandi, più dati e più calcolo hanno spesso ridotto l'errore medio in modo abbastanza regolare. Da queste osservazioni sono nate le leggi di scala: relazioni empiriche che descrivono come cambia la prestazione al crescere delle risorse, entro determinate famiglie di modelli e determinate condizioni.

La parola empiriche è essenziale. Non sono leggi della natura e non garantiscono che ogni capacità migliori nello stesso modo. Descrivono tendenze osservate. Possono smettere di valere quando cambiano l'architettura, la qualità dei dati, il tipo di compito o la misura usata per valutare il risultato.

Uno degli esperimenti più istruttivi ha confrontato modi diversi di spendere lo stesso bilancio di addestramento. Un modello chiamato Chinchilla aveva settanta miliardi di parametri, mentre un modello precedente ne aveva duecentottanta miliardi. Chinchilla vide circa quattro volte più dati e, nelle valutazioni riportate, ottenne risultati migliori usando una quantità simile di calcolo. Il messaggio non è che esista una proporzione eterna. È che ingrandire soltanto il modello può essere uno spreco se non lo si addestra abbastanza o se i dati diventano il vero limite.

Occorre quindi bilanciare dimensione, durata dell'addestramento, quantità e qualità dei dati. E bisogna considerare anche l'uso futuro. Un modello più piccolo, addestrato più a lungo, può costare meno ogni volta che risponde. Ma se verrà usato raramente, forse il maggiore investimento iniziale non si ripagherà. La scelta ottimale dipende dall'intera vita del sistema, non soltanto dal giorno in cui termina l'addestramento.

Le leggi di scala mostrano anche rendimenti decrescenti. Per ottenere un ulteriore piccolo miglioramento, spesso bisogna moltiplicare le risorse. Questo non significa che crescere abbia smesso di funzionare. Un guadagno modesto può avere grande valore in alcuni prodotti. Significa però che più calcolo non equivale a progresso gratuito, e che una curva regolare dell'errore medio non assicura verità, affidabilità o utilità in ogni singolo caso.

L'ingorgo dei dati

Immaginiamo un modello con settanta miliardi di pesi, conservati usando due byte ciascuno. I soli pesi occupano già circa centoquaranta gigabyte. Non abbiamo ancora contato i risultati intermedi, la memoria necessaria per servire più utenti o, durante l'addestramento, gradienti e stato dell'ottimizzazione. È facile capire perché un solo acceleratore possa non bastare.

Quando il modello viene diviso tra molte macchine, il problema cambia forma. Alcuni dispositivi elaborano dati diversi, altri custodiscono strati diversi, altri ancora condividono porzioni della stessa matrice. Devono scambiarsi risultati e, in certi momenti, aspettarsi a vicenda. Aggiungere acceleratori aumenta la capacità teorica, ma aumenta anche il traffico. Se un collegamento è lento o il lavoro è distribuito male, le unità più rapide restano ferme in attesa.

Lo stesso accade all'interno di un singolo acceleratore. Vicino alle unità di calcolo c'è una memoria piccola e rapidissima. Più lontano c'è una memoria molto più capiente, ma meno veloce. Pesi e risultati intermedi devono attraversare questa gerarchia. La capacità decide se il problema entra nella memoria. La larghezza di banda decide quanto rapidamente i dati possono arrivare. Sono due limiti diversi.

Una tecnica moderna per il meccanismo di attenzione ha reso evidente quanto conti questo traffico. Riorganizzando il calcolo per leggere e scrivere meno volte nella memoria esterna, ha accelerato l'elaborazione senza cambiare il risultato matematico. In una fase, può perfino convenire ricalcolare alcuni valori invece di conservarli. Si eseguono più operazioni aritmetiche, ma si spostano meno dati e si finisce prima.

È un risultato controintuitivo e molto utile: contare soltanto le operazioni non basta a prevedere la velocità. Un sistema può avere una potenza di calcolo enorme e usarla male perché aspetta la memoria o la rete. Per questo i grandi modelli non sono semplicemente programmi eseguiti su chip veloci. Sono sistemi distribuiti in cui calcolo, memoria, collegamenti e software devono avanzare allo stesso ritmo.

Dopo aver premuto Invio

Terminato l'addestramento, i pesi in genere restano fermi. Ma produrre una risposta richiede comunque di applicarli molte volte. La prima fase elabora la domanda e il contesto. In questa fase, gran parte dei token può essere trattata in parallelo. Un contesto lungo contiene più materiale da elaborare e quindi richiede più lavoro e più memoria prima ancora che appaia la prima parola della risposta.

Poi comincia la generazione. Il modello calcola quale token potrebbe venire dopo, ne sceglie uno e lo aggiunge al testo. Solo allora può calcolare il successivo, perché ogni nuovo passo dipende da ciò che è appena stato prodotto. Questa dipendenza rende la generazione in parte seriale. Possiamo accelerare molte operazioni dentro ogni passo, ma non possiamo conoscere il decimo token generato prima di aver scelto quelli che lo precedono.

Per evitare di rifare tutto da capo, il sistema conserva una memoria temporanea di alcuni risultati dell'attenzione, spesso descritti come chiavi e valori. Questa memoria appartiene alla conversazione corrente. Non è la conoscenza permanente del modello. Cresce con la lunghezza del contesto e con il numero di richieste gestite insieme, fino a diventare uno dei principali limiti del servizio.

I gestori cercano quindi di raggruppare più richieste. In questo modo l'acceleratore lavora su blocchi più grandi e viene utilizzato meglio. Ma esiste un compromesso. Aspettare che si formi un gruppo può aumentare il tempo percepito da una persona. Ottimizzare il numero totale di risposte prodotte in un minuto non è la stessa cosa che ridurre l'attesa della singola risposta.

Una conversazione può sembrare economica, ma un servizio risponde a moltissime persone, conserva contesti, genera testi di lunghezze diverse, ripete tentativi e talvolta usa strumenti esterni. L'addestramento è una grande spesa anticipata. L'uso è una spesa piccola che si ripete. Quale delle due domini nel corso degli anni dipende dal traffico, dalla durata delle risposte, dall'efficienza del servizio e da quanto a lungo il modello rimane utile. Non esiste una risposta valida per ogni sistema.

Più tempo per ragionare

Non tutte le domande meritano lo stesso bilancio di calcolo. Per una richiesta semplice può bastare una risposta breve e diretta. Per un problema difficile, il sistema può costruire un percorso più lungo, rivedere un passaggio, produrre più soluzioni candidate oppure usare un altro componente per valutarle. Tutte queste strategie aumentano il lavoro durante l'uso, non durante l'addestramento originario.

È ciò che spesso viene chiamato calcolo al momento della risposta. L'espressione può far pensare che basti lasciare il modello acceso più a lungo. In realtà conta come viene speso quel tempo. Generare molto testo senza direzione non garantisce un ragionamento migliore. Dieci tentativi quasi identici possono offrire meno valore di una sola revisione guidata da un controllo adatto.

Gli esperimenti mostrano che il metodo utile dipende dal problema. Alcune domande migliorano quando il modello esplora più strade. Altre richiedono un verificatore capace di riconoscere una soluzione corretta. Per i casi facili, un grande bilancio aggiuntivo può servire a poco. Un sistema ben progettato dovrebbe quindi stimare la difficoltà e assegnare il lavoro dove ha maggiori probabilità di cambiare il risultato.

Anche qui compaiono rendimenti decrescenti. Il primo controllo può correggere un errore evidente; il ventesimo potrebbe soltanto confermare ciò che già sappiamo. Inoltre, una risposta più lunga non è necessariamente più ragionata e una risposta più sicura nel tono non è necessariamente più vera. Il calcolo aggiuntivo è una manopola importante, ma non sostituisce fonti affidabili, obiettivi chiari e controlli appropriati.

Potenza, energia e prezzo

Quando si parla del costo ambientale o economico dell'intelligenza artificiale, termini diversi vengono spesso mescolati. La potenza indica il ritmo con cui viene usata l'energia in un dato istante. L'energia è quella potenza accumulata nel tempo. Un acceleratore più potente può assorbire di più mentre lavora e, tuttavia, consumare meno energia per completare un compito se termina molto prima.

Le emissioni sono un'altra cosa ancora. La stessa quantità di energia può avere conseguenze diverse a seconda di dove e quando viene prodotta, della composizione della rete elettrica e del modo in cui si attribuiscono le fonti. Il prezzo pagato a un fornitore comprende poi i chip, la memoria, la rete, il raffreddamento, gli edifici, il personale e anche capacità che rimane inutilizzata. Non si può trasformare automaticamente una bolletta in una misura delle emissioni, né una misura elettrica in un prezzo universale.

Persino il costo energetico di una singola domanda dipende da dove tracciamo il confine. Contiamo soltanto l'acceleratore mentre genera il testo? Oppure anche il processore che prepara la richiesta, la memoria, la rete, il raffreddamento e una parte dei server in attesa? Una misurazione industriale recente ha ottenuto un valore più che doppio quando ha incluso l'intero sistema invece del solo calcolo principale. Non era la prova di un costo valido per ogni domanda. Era la prova che il metodo di misurazione cambia il risultato.

Anche la scala individuale e quella collettiva vanno separate. Una risposta breve può usare poca energia, mentre milioni di risposte, centri dati concentrati nella stessa regione e una domanda in rapida crescita possono avere effetti importanti sulla rete locale. Al contrario, non è corretto prendere il consumo complessivo di tutti i centri dati e dividerlo per un numero di domande, come se ogni attività fosse intelligenza artificiale e ogni richiesta fosse uguale.

Le domande utili sono quindi più precise. Quale modello? Quale lunghezza di contesto e di risposta? Quanti utenti contemporanei? Quale hardware, con quale utilizzo? Quale fonte elettrica e quale confine di misura? Senza queste informazioni, un numero molto preciso può creare soltanto un'illusione di certezza.

Abbastanza calcolo, usato bene

L'efficienza può migliorare in molti punti. Un modello più piccolo può occuparsi delle richieste semplici. La distillazione può trasferire parte delle capacità di un modello grande a uno più compatto. La quantizzazione rappresenta i pesi con meno precisione, riducendo lo spazio e il traffico di memoria, anche se una compressione eccessiva può compromettere la qualità e non ogni chip trae lo stesso vantaggio.

Alcune architetture attivano soltanto una parte dei loro parametri per ogni token. Altri metodi propongono rapidamente più token e lasciano al modello principale il compito di verificarli. Algoritmi migliori riducono gli spostamenti nella memoria, organizzano meglio le richieste o evitano calcoli ripetuti. Anche i nuovi acceleratori possono svolgere più lavoro per ogni unità di energia.

Nessuna di queste soluzioni elimina tutti i compromessi. Un modello che usa pochi esperti alla volta deve comunque conservare gli altri e instradare i dati. Raggruppare le richieste migliora la capacità complessiva, ma può aumentare l'attesa. Ridurre la precisione può aiutare la memoria e peggiorare un compito sensibile. Un'ottimizzazione può semplicemente spostare il limite dal calcolo alla rete, o dalla memoria alla generazione seriale.

E c'è un ultimo paradosso. Se una risposta diventa dieci volte più economica, non è detto che il consumo totale scenda. Potremmo servire più persone, usare contesti più lunghi, generare più alternative o rendere convenienti applicazioni che prima non esistevano. L'efficienza riduce il costo di un compito fissato. La domanda complessiva dipende da ciò che decidiamo di fare con il risparmio.

Torniamo alla domanda iniziale, quella digitata in pochi secondi. La risposta nasce da pesi appresi con innumerevoli correzioni, da matrici applicate più volte, da dati mossi tra memorie e macchine, e da una catena di decisioni su precisione, velocità e qualità. Il calcolo è indispensabile per i metodi attuali, ma non garantisce che l'obiettivo sia sensato, che i dati siano buoni o che la risposta sia vera.

La domanda migliore, allora, non è quanto calcolo possiamo accumulare. È quale combinazione di modello, dati, algoritmi e macchine raggiunga il risultato desiderato in modo affidabile. Non il massimo calcolo come fine in sé, ma abbastanza calcolo, usato bene.

Chiusura del Café

Per oggi è tutto. Il café è sempre aperto. A presto.

Fonti e correzioni

Una produzione editoriale di Andy's Café.

No separate public source-note page is listed for this episode.

Hai notato un errore, una fonte non disponibile o un problema nella trascrizione? Contatta hello@move37.app.

Edizioni in altre lingue

The transcript, description and original Andy's Café editorial text are available under CC BY 4.0. Credit Andy's Café, link this canonical page and indicate changes. The composed audio has a two-part rights note because its piano cues are third-party material.