Modelli e dati: i limiti delle intelligenze artificiali

Nel campo dell’intelligenza artificiale, così come nella scienza, il ruolo del concetto di modello è cruciale. Capire cosa può fare un modello, e come questo sia profondamente influenzato dai dati con i quali lo facciamo interagire, è di fondamentale importanza se vogliamo provare a immaginare i limiti di questa tecnologia. Ma è anche un modo per capire qualcosa in più su noi esseri umani e sul nostro cervello.

In questo articolo farò una panoramica di cosa sia un modello nella scienza e nel machine learning (l’apprendimento automatico alla base dell’intelligenza artificiale), passando poi ad una introduzione di come le moderne tecnologie di reti neurali artificiali riescano, dai dati di addestramento, ad estrarre informazioni utili a fare predizioni. Infine esplorerò i limiti teorici di questa estrazione di informazione e alcune delle sorprendenti abilità emergenti delle intelligenze artificiali.

Il modello nella scienza

Nella scienza moderna un modello è un insieme di teorie che descrive un fenomeno. Si tratta quindi di una rappresentazione concettuale, necessariamente semplificata, dell’Universo o di una sua parte. Chiaramente, un modello descriverà il fenomeno in maniera più concisa ed espressiva di quanto potrebbe fare un semplice elenco dei dati raccolti relativi al fenomeno.

Prendiamo come semplice esempio la caduta di un oggetto: scrivere l’equazione della coordinata verticale, che descrive l’altezza di un sasso lanciato sulla Terra, è molto più conciso che scrivere una tabella di tutte le posizioni assunte dal sasso in ogni istante di tempo:

\(y = y_0 + v_0 t – \frac{1}{2}g t^2\)

Il contenuto di informazione rilevante è però lo stesso. Abbiamo anche eliminato tutti quegli errori, chiamiamoli rumore, che inevitabilmente sono presenti quando si raccolgono dati: dall’incertezza degli strumenti di misura alle perturbazioni dovute al vento che modifica leggermente la traiettoria. L’estrazione di informazione, che permette di scrivere una equazione, è un modo per eliminare quel rumore dai dati, rumore che talvolta può addirittura arrivare a mascherare le regolarità che vogliamo cogliere. L’equazione risultante non è solo più concisa dell’insieme dei dati originale, ma permette anche di fare previsioni sulle posizioni assunte nel futuro dal sasso lanciato, oltre che a generalizzare su vari tipi di oggetti lanciati in un campo gravitazionale, non solo sassi.

Il modello nel machine learning

Facciamo quindi ora un parallelo con il machine learning. In questo contesto, un modello è definito come una rappresentazione matematica o computazionale che è in grado di apprendere informazioni basandosi su dati di addestramento. I modelli di machine learning addestrati possono fare generalizzazioni e previsioni su nuovi dati di test. Può essere realizzato sia con semplici algoritmi di regressione lineare, sia con complesse reti neurali dove una moltitudine di neuroni artificiali viene calibrata modificandone i parametri.

Anche qui, l’obiettivo è costruire una rappresentazione semplificata ma efficace della realtà, per fare previsioni o per comprendere meglio i dati. Invece di avere un Isaac Newton che, dopo anni di istruzione ed esperimenti, si spreme le meningi per riuscire a generalizzare il comportamento di sassi, palle di cannone e mele, al fine di creare l’ottima astrazione della legge di Gravitazione Universale, qui chiediamo tipicamente ad una rete neurale profonda di generalizzare e di riuscire a fare previsioni a partire da un insieme di dati di addestramento, che sono le traiettorie di oggetti in caduta sulla Terra.

Concettualmente non c’è molta differenza. L’architettura tecnologica che usiamo per estrarre informazioni da un insieme di dati è, idealmente, irrilevante. Se la gravità esiste in natura, allora è la legge di Gravitazione che otteniamo dai dati. Non importa se usiamo un cervello gelatinoso o uno di silicio. L’importante è che sia sufficientemente complesso da esibire l’abilità della generalizzazione e poter fare previsioni.

L’unica ma importante differenza è l’espressività. L’equazione della traiettoria di un sasso in caduta ci permetterebbe di fare previsioni anche se non sapessimo cosa rappresenta il simbolo g, ma sapere che si tratta dell’accelerazione di gravità ci consente di capire cosa significhi quella formula, da cose deriva la forza di gravità, di comprendere meglio il fenomeno, di spiegarlo.

Un modello di rete neurale, invece, non ci dice come arriva a compiere le sue predizioni, né scrive una legge semplice e chiara come quella di Newton: si comporta praticamente come una scatola nera. In linea di principio sarebbe possibile scrivere una megaformula algebrica che descriva tutti i passaggi matematici (singolarmente relativamente semplici) che, attraversando ogni strato di neuroni artificiali, portano al risultato finale, ovvero l’output della rete neurale. Ma considerando che attualmente le più avanzate intelligenze artificiali hanno migliaia di miliardi di parametri, all’atto pratico questa megaformula sarebbe totalmente incomprensibile e non ci farebbe capire nulla sul fenomeno descritto. Cionondimeno, racchiuderebbe tutte le informazioni contenute nelle relazioni trovate fra i dati con i quali il modello è stato addestrato, e per questo sarebbe in grado di fare previsioni affidabili.

I modelli reali e la loro dimensione

Ho detto che la megaformula mostrerebbe le informazioni contenute “nelle relazioni trovate” perché un modello che possa trovarle proprio tutte sarebbe solamente una idealizzazione. Unicamente un modello perfetto sarebbe in grado di estrarre davvero tutte le informazioni contenute in un insieme di dati. I modelli reali ci si possono avvicinare, ma rimane molto difficile valutare quanto distanti effettivamente siano dall’obiettivo. Tale modello ideale non sarebbe necessariamente più vasto e la sua rete neurale, con la quale è realizzato, provvista cioè del più grande numero di parametri (tra i quali i pesi dei vari neuroni artificiali che la compongono). Invece che misurare la grandezza di una rete neurale usando solo il numero di neuroni artificiali, è più corretto considerare la dimensione di Vapnik–Chervonenkis, che è una grandezza messa in relazione alla quantità e qualità del dataset di addestramento. Essenzialmente, si tratta di un limite superiore sul numero di dati che il modello può etichettare correttamente in ogni possibile modo, indipendentemente dalla loro distribuzione. Questo significa che se una VC dimension di un modello è troppo piccola, allora non sarà in grado di apprendere granché dai dati di addestramento (situazione chiamata underfitting) e non sarà in grado di classificare correttamente i dati di test, che non ha mai visto prima. Una VC dimension troppo grande, invece, andrebbe incontro al problema opposto dell’overfitting, dove il modello si adatterebbe troppo ai dati di training e perderebbe la capacità di generalizzare, ovvero di fare previsioni su i dati di test. La dimensione VC deve quindi essere adeguata, in un certo senso calibrata sulla dimensione e complessità del dataset di addestramento. La dimensione VC, inoltre, varia sia al variare del numero di neuroni, ma anche al variare del numero di strati della rete, al numero di neuroni per strato, del tipo di connessioni tra i neuroni, i loro pesi, del tipo di funzioni di attivazione e dei loro bias, tutti parametri che definiscono l’architettura della rete neurale.

È importante notare che, qualora uno modello di intelligenza artificiale dovesse davvero estrarre tutte le informazioni esistenti in un dataset, non importerebbe più quale tecnologia si sta utilizzando per estrarre informazione, proprio come per il caso del lancio di un sasso nel campo gravitazionale illustrato all’inizio. Perché a quel punto il risultato finale, il modello addestrato, dipenderebbe solo dall’insieme di dati, dalle informazioni in esso contenuto. Anzi, coinciderebbe esattamente con esso, perché le sta estraendo tutte, non una di meno né una di più.

Non sarebbe infatti per niente interessante o utile una intelligenza artificiale che restituisse informazioni non presenti nel dataset di addestramento, perché questo significherebbe che le sta inventando di sana pianta, senza alcun sostegno dei dati. Una AI evoluta potrebbe sì trovare informazioni che noi non saremmo mai in grado di trovare da soli, ma non certo trovare informazioni che non sono già presenti da principio nel dataset.

L’idealizzazione però non sta solo nel modello ma anche rispetto al modo con il quale questo dataset è stato costruito, che sicuramente contiene errori e bias dovuti a come le misure sono state prese, e che potrebbero aver cancellato alcune delle informazioni presenti nella realtà fisica del fenomeno osservato, che il dataset non riuscirebbe a catturare. È impensabile che il modo con il quale conduciamo la raccolta dati non abbia alcun impatto sulle informazioni in esso contenute, o almeno in una parte di esse. Questo limite rende ancora più distanti le performance di un modello reale da uno ideale.

Cosa vuol dire estrarre informazione

Ma immaginiamo ugualmente che un dataset di addestramento sia uno specchio perfetto, senza rumore, del fenomeno di studio: cosa significherebbe allora esattamente estrarne l’informazione in esso contenuta?

Una analogia interessante per capire questo concetto è quella della compressione dati senza perdita. Prendiamo ad esempio un classico file ZIP. Questo occupa meno spazio del file originale che è stato compresso, ma deve poterlo generare esattamente. Questo vuol dire che tutto il contenuto di informazione del file originale è conservato anche nel file compresso. Si può dire, infatti, che la compressione diminuisca la ridondanza dei dati iniziali, riducendo lo spazio necessario a immagazzinare le informazioni che ha estratto. Non è detto che sia in grado di estrarre tutte le informazioni, il che ridurrebbe il file alla dimensione minima possibile, ma ci si può avvicinare.

Nella teoria dell’informazione, in un file con la massima entropia (e quindi estremamente disordinato) è impossibile prevedere il bit successivo osservandone i precedenti, proprio perché non ci sono regolarità. Sfruttando questo concetto, facciamo un semplice esempio.

Come comprimiamo la seguente sequenza di numeri?

[2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4]

Qui riconosciamo subito alcune evidenti regolarità e quindi potremmo usarle per inventare un algoritmo che semplicemente riconosca i numeri ripetuti e scriva

[(2, 5), (3, 3), (4, 7)]

Che significa 2 ripetuto 5 volte, 3 ripetuto volte 3 e 4 ripetuto 7 volte. Ci sono serviti solo 6 numeri per rappresentare una sequenza di 15 numeri. Abbiamo quindi compresso del 60%, conservando al contempo tutte le informazioni iniziali. Non abbiamo inventato niente, perché questa codifica esiste già (si chiama Run-length encoding), ma abbiamo comunque fatto un ottimo lavoro. Se scriviamo un programma di decompressione, questo dovrebbe leggere la sequenza compressa e tradurla nella sequenza originale. Ma anche se riusciamo a ricostruire la sequenza originale, non vuol dire che abbiamo trovato il modo di estrarre tutta l’informazione possibile.

Supponiamo infatti ora di notare che la sequenza ha un incremento regolare nel numero che viene ripetuto: prima il 2, poi il 3 e infine il 4. Sfruttiamo questa ulteriore osservazione per una compressione ancora più avanzata. La codifica seguente

(2, 5, -2, 4)

significa che si parte dal numero 2, ripetuto 5 volte, poi si passa al successivo numero (il 3) che viene ripetuto 2 volte in meno (cioè 3 volte), e poi al numero ancora successivo che viene ripetuto 4 volte in più (cioè 7 volte).

Questo criterio di compressione ci porta a ridurre la sequenza a soli 4 numeri, arrivando ad una compressione del 73% circa. Questo ulteriore step dimostra che la prima compressione non era in grado di estrarre tutta l’informazione contenuta nella sequenza iniziale, proprio perché non eliminava tutta la ridondanza. Nemmeno la seconda metodologia ci garantisce che abbiamo estratto tutta l’informazione, perché potrebbe esistere un metodo ancora più efficiente che ottiene una compressione ancora più spinta. L’importante è che non si arrivi all’estremo opposto nel quale il programma di decompressione è estremamente complesso e cucito su misura del file compresso, perché in pratica avremmo trasferito del decompressore tutta l’informazione contenuta del file originale.

Fruttando all’estremo questa considerazione, infatti, esiste un altro modo per valutare la compressibilità di una sequenza di dati, che è quello di scrivere proprio quel programma che la descriva completamente, e di conseguenza ne catturi tutta l’informazione contenuta. Prendiamo come esempio le seguenti due sequenze di caratteri, ciascuna di lunghezza 32 tra lettere minuscole e numeri:

abcdabcdabcdabcdabcdabcdabcdabcd

e

7g9k3m1n5f2h8q4j0sx6p9vb3tcyrdwl

Per la prima sequenza, una breve descrizione potrebbe essere “scrivi abcd 8 volte”, che utilizza solo 18 caratteri. Per la seconda sequenza, essendo completamente casuale, quindi con l’entropia massima, non ci sono dati ridondanti, l’informazione è massima e quindi non esiste una descrizione più breve della sequenza stessa. Anzi, usando la stessa sintassi della descrizione precedente, bisogna usare qualche carattere in più, come “scrivi 7g9k3m1n5f2h8q4j0sx6p9vb3tcyrdwl” che utilizza 38 caratteri. Questo mostra come la prima sequenza sia meno complessa della seconda. Infatti, se un dato ha bassa varianza (come la prima sequenza), generalmente presenta anche bassa entropia, indicando che una grande parte dei suoi dati può essere derivata, o predetta, da una parte molto più piccola (la sotto-sequenza “abcd”).

La lunghezza del più breve programma informatico che riproduca il dato in input è chiamata Complessità di Kolmogorov, e corrisponde alla quantità totale di informazione contenuta in una sequenza. Se quindi un programma ancora più breve non può esistere, questo vuol dire che qualunque bit tolto dal programma è un bit di sola informazione. E non vogliamo certo perderla.

Si può quindi definire compressore di Kolmogorov il più piccolo programma che riesca a estrarre tutta l’informazione contenuta in un dataset. Sappiamo che esiste, ma non è computabile, ovvero non possiamo determinarne esattamente il codice, ma solo avvicinarci per tentativi. Chiaramente possiamo arrivare all’estrazione di tutta l’informazione, come farebbe il compressore di Kolmogorov, tramite un algoritmo oppure una rete neurale, che sotto certi aspetti può simulare e approssimare l’algoritmo di questo compressore. Sapere però quanto dovrebbe essere complessa tale rete neurale per catturare la complessità di un dataset, è un grosso problema. Infatti, la complessità di Kolmogorov, benché utile teoricamente, non è calcolabile in modo esatto, limitando così la possibilità di determinare con precisione quanto un dataset possa essere ridotto e quanta informazione esso contenga.

Trovare la rappresentazione migliore

Estrarre informazioni può essere complicato anche a causa di come i dati sono raccolti nei dataset, anche se in assenza di rumore. Questi possono essere molto ingarbugliati e solo trovandone una rappresentazione più conveniente si può riuscire a rilevarne le regolarità e le relazioni in tempi ragionevoli per un computer.

Si osserva empiricamente che i modelli giovino nell’avere le informazioni organizzate in uno spazio (detto spazio delle rappresentazioni) dove le relazioni semantiche e concettuali tra i dati di input sono conservate ma possono essere manipolate più facilmente, perché necessitano solo di operazioni lineari semplici, come somme vettoriali e moltiplicazioni scalari.

Immaginiamo ad esempio un dataset che includa diverse caratteristiche della frutta, come il peso, il colore e il grado di dolcezza. Ogni frutto è identificabile con una sequenza dei tre valori. Questi valori possono essere discreti, dove il colore è classificato da 1 a 7 secondo i colori dell’arcobaleno e la dolcezza in categorie arbitrarie; oppure continui, usando la lunghezza d’onda della luce e il potere dolcificante.

In ogni caso, una rappresentazione lineare banale di questi dati, ma utile ai fini di questo esempio, potrebbe essere una trasformazione che posiziona ogni frutto in un punto di un grafico tridimensionale, dove ogni asse rappresenta ognuna delle proprietà. In questo spazio, frutti simili (per esempio, quelli simili per dolcezza o colore) saranno vicini l’uno all’altro, mentre quelli molto diversi saranno distanti. Ecco che allora un semplice piano ad una fissata dolcezza permetterebbe di separare istantaneamente i frutti classificandoli facilmente fra dolci e non dolci. Oppure si potrebbe scoprire che il peso moltiplicato la dolcezza è un valore proporzionale al contenuto totale in zuccheri, utile a raggruppare la frutta per classi di produzione zuccherina. Anche questa nuova rappresentazione potrebbe semplificare parecchio la classificazione della frutta. Il tempo di calcolo per una rete neurale diventa quindi drasticamente inferiore quando i dati sono rappresentati in maniera conveniente. Chiaramente, spessissimo le rappresentazioni sono molto più complesse di così e più difficili da trovare.

Alcuni ricercatori sono propensi a pensare che questa rappresentazione lineare esista sempre, anche se può essere difficile trovarla. Ad ogni modo, non c’è ancora una spiegazione convincente del perché questo dovrebbe accadere sempre, se è vero che accade.

Trovare una rappresentazione lineare sembra quindi non solo che un modo per organizzare i dati in maniera più comoda per la rete neurale, ma in sostanza una prima estrazione di informazione, che precedere l’addestramento, allo scopo di velocizzarlo.

Le tecniche di addestramento dei modelli

Esiste uno standard de facto per l’addestramento di grandi reti neurali affinché possano estrarre la quantità maggiore possibile di informazione da un dataset, al meglio della tecnologia attuale. È l’accoppiata Stochastic Gradient Descent e Backpropagation, dove il primo aggiorna i pesi della rete in modo iterativo, usando un sottoinsieme casuale di dati anziché l’intero dataset di addestramento, e il secondo è il meccanismo attraverso il quale l’errore viene propagato all’indietro nella rete per aggiornare questi pesi. Questi metodi di addestramento, ampiamente riconosciuti per la loro efficacia, possono essere paragonati alla ricerca del migliore algoritmo di compressione per un dataset, che riduce gli errori al minimo, estrae più informazione possible e ottimizza le previsioni. Tale analogia si applica tanto nell’addestramento supervisionato –dove ad ogni input, come la foto di una mela, corrisponde un output desiderato, ossia l’etichetta “mela”– quanto in quello non supervisionato, in cui il sistema apprende autonomamente la struttura del dataset, ad esempio la grammatica dei testi in esso contenuti, senza output predefiniti.

L’uso dei Transformer, introdotto da Google nel 2017, ha ulteriormente migliorato l’apprendimento profondo, grazie al cosiddetto meccanismo dell’attenzione, che permette al modello di ponderare l’importanza di differenti parti di un input in funzione delle altre parti e che aumenta la velocità di addestramento e la capacità di generalizzazione su dataset ampi e complessi. Un esempio ormai famoso è GPT (che significa proprio Generative Pre-trained Transformer) di OpenAI, un modello che viene pre-addestrato in modo non supervisionato per apprendere una rappresentazione generale del linguaggio, e poi affinato (con il fine-tuning) su compiti specifici. I modelli basati su Transformer si stanno rilevando i più performanti anche nel riconoscimento di oggetti in immagini complesse o nei video.

Queste ed altre tecniche mostrano come l’intelligenza artificiale stia progredendo verso modelli sempre più efficaci e versatili, in grado di apprendere da quantità enormi di dati in modo più efficiente, con una estrazione di informazioni più profonda, e una capacità di previsioni sempre maggiore. Questo progresso sposta sempre più in là i confini di ciò che l’AI può realizzare.

Le tecniche descritte rappresentano oggigiorno il fulcro delle principali applicazioni pratiche dell’intelligenza artificiale. È stato osservato come diversi modelli, addestrati similmente e per lo stesso scopo, raggiungano performance che paiono dipendere solo dal loro dataset di addestramento. Ne consegue che tendano ad avere comportamenti simili con dataset simili, pur non essendo né modelli ideali e neanche avendo utilizzato dataset perfetti. Ma come è possibile?

Questo in realtà non dovrebbe sorprendere se si considera che i vari competitor nell’industria usano tutto sommato architetture simili con iperparametri (cioè i parametri non sottoposti ad apprendimento automatico, come numero di neuroni e di strati, il tempo di addestramento, eccetera) ottimizzati per lo stesso obiettivo, utilizzando tecniche di addestramento simili (come la tokenizzazione e il fine-tuning). Le poche, seppur lievi, differenze fra i dataset emergono, diventando in sostanza le uniche variabili che possano rendere diversi gli output. C’è da dire che comunque anche i dataset di addestramento paiono ormai abbastanza simili e sicuramente in parte sovrapponibili (dal momento che ad esempio condividono l’uso di diversi corpora). Tutti i modelli probabilmente si stanno avvicinandosi asintoticamente, e in modo simile, al compressore ideale di Kolmogorov, tentando tutti di estrarre quanto più succo di informazione possibile dal dataset. Un tipo leggermente diverso di spremiagrumi non può certo cambiare drasticamente la quantità e la qualità di succo estratto. Questo però non implica necessariamente che siamo vicini ad estrarre tutta l’informazione possibile, approssimando perfettamente il dataset stesso, e che queste performance simili dipendano da questo.

Cosa può fare un modello?

Un modello può quindi dirci, al massimo, tutto e solo ciò che è contenuto nei dati, e questo pone dei limiti intrinseci su ciò che può effettivamente fare: la qualità e la completezza dei dati nella costruzione di modelli efficaci è cruciale. Nonostante questo però, abbiamo capito che non sappiamo quanta informazione ci sia effettivamente in un dataset. Per seguire la metafora precedente, non sappiamo quanto succo ci sia nell’arancia. E quindi non abbiamo idea di cosa un modello possa fare un con dataset finché qualcuno o qualcosa non ce lo mostra.

Non solo. In realtà non sappiamo nemmeno come funziona esattamente lo spremiagrumi e cosa è in grado di fare oltre che a spremere gli agrumi.

Se infatti un algoritmo sarebbe relativamente semplice da analizzare completamente, e di conseguenza il suo output perfettamente prevedibile, una grande rete neurale non solo è praticamente non analizzabile (per la sua vastità) ma supera anche il limite di un sistema complesso, ed esibisce, per questo motivo, comportamenti emergenti non prevedibili a priori.

Un esempio sorprendente è quello emerso addestrando una rete neurale a riconoscere oggetti come animali e veicoli. Usando un dataset di più di un milione di immagini scopriamo che, oltre a catalogare correttamente le immagini di test, i neuroni artificiali rispondono alla numerosità degli oggetti rilevati, ovvero forniscono un output diverso a seconda del numero di oggetti presenti in una immagine, senza alcun esplicito conteggio interno e senza alcun addestramento relativamente al numero. Mostrando, tra l’altro, tutte le caratteristiche della già conosciuta discriminazione numerica umana e animale (dimostrata ad esempio in scimmie e corvi) che, seguendo la legge di Weber-Fechner, fornisce maggiore precisione con le piccole numerosità piuttosto che con le grandi, nonostante un conteggio effettivo sia sempre e comunque assente. Una abilità emergente che trascende il tipo di rete neurale che la esibisce, probabilmente perché alcune proprietà fondamentali sono automaticamente presenti in grandi e piccoli cervelli animali, così come in alcune reti neurali.

Se invece addestriamo un Large Language Model (una AI come ChatGPT, per intendersi) con una enorme quantità di testi provenienti da molte fonti diverse, e lo addestriamo per proporre un insieme probabile di parole successive, rileviamo l’incredibilmente sorprendente abilità di scrivere frasi di senso compiuto, così come la capacità di tradurre bene da una lingua a l’altra, perché ha appreso molte delle rappresentazioni universali del linguaggio. Questo forse non ci sorprende più perché ormai ci siamo (piuttosto velocemente) abituati usando spesso queste nuove tecnologie, ma non è per niente scontato a partire dal funzionamento del singolo neurone artificiale.

Per fare un parallelo, sarebbe come –erroneamente– non sorprendersi che un gruppo di storni comuni in volo esibisca i movimenti e le forme complicatissime del cosiddetto murmuring, nel quale gli esemplari interagiscono tra loro osservando e rispondendo al comportamento dei loro vicini, ma dove nessun singolo uccello ha una conoscenza globale della forma o della direzione del gruppo. Per quanto ora si abbia un’ottima conoscenza di questo interessante fenomeno, nessuno che non lo avesse mai osservato prima saprebbe prevederlo a partire solo dallo studio di ognuno delle migliaia di esemplari di storni. Almeno finché questi non si mettano a volare tutti insieme.

La natura è piena di sistemi complessi che esibiscono comportamenti emergenti, imprevedibili e non riducibili alla semplice somma delle proprietà dei singoli componenti, e quindi parzialmente spiegabili a posteriori. Come ad esempio il funzionamento degli ecosistemi, il clima atmosferico globale, le colonie di formiche. Oppure il cervello umano stesso, dove la coscienza emerge dall’attività collettiva dei neuroni e dalle loro interazioni, pur non essendo una proprietà specifica di alcun neurone singolo.

O come, di nuovo nei Large Language Model, che una volta addestrati, oltre che con del semplice testo, anche con del codice di programmazione, riescono a creare ex-novo script (spesso) funzionanti e a spiegarli in linguaggio naturale. Nulla di tutto cioè è scontato e prevedibile. Così come non è scontato che, senza un addestramento specifico, un LLM riesca ad inferire il titolo di un film a partire da una breve sequenza di emoji. Il fatto che, ad esempio, ChatGPT riesca a capire che 🏢👮‍♂️💥 possa rappresentare il film “Die Hard” è sicuramente dovuto al fatto che nel dataset di addestramento questa informazione esiste, anche se però non troviamo mai la sequenza 🏢👮‍♂️💥 in nessuna sua parte. Il modello ha imparato a riconoscere e interpretare schemi e relazioni complesse nel testo, una informazione che noi umani potremmo anche non sapere essere presente nel dataset. L’abilità emergente è proprio quella di riuscire a fare un collegamento così complicato, imprevedibile a partire dalla conoscenza che abbiamo dell’architettura del modello e dall’analisi, anche approfondita, delle parti che lo compongono.

Certo, a posteriori possiamo provare ad indovinare il percorso che collega logicamente le informazioni sulle emoji, il loro legame con il linguaggio e i concetti che esse veicolano tramite la codifica ufficiale UNICODE, le trame dei film descritte sui siti specializzati e le discussioni sui forum e i social network, associando frequentemente le parole palazzo, poliziotto ed esplosione al film in questione. Ma non potevamo certo prevedere che un LLM sarebbe stato in grado di farlo con un miliardo di neuroni artificiali e avrebbe raggiungo un punto critico diventando improvvisamente bravissimo dopo la soglia di circa 100 miliardi di neuroni.

Al crescere della complessità di una rete neurale, e non solo come numero di neuroni artificiali, ci possiamo attendere un numero maggiore di abilità emergenti, anche se la loro natura ed efficienza rimangono giocoforza imprevedibili. Il limite di ciò che il modello può fare risiede certamente nell’informazione totale contenuta nel dataset di addestramento. Ma quando testiamo un modello, non possiamo misurare l’efficienza dell’estrazione di informazione se non abbiamo idea di quanta informazione ci sia realmente e di quali compiti sia in grado di svolgere il modello: possiamo solamente misurare le performance rispetto ad uno specifico compito che noi scegliamo di assegnarli. Esattamente come la misura del quoziente intellettivo misura la performance di un essere umano durante il test del quoziente intellettivo, non certo tutta l’intelligenza che il suo cervello può esprimere.

Queste due grandi incertezze, sulla quantità di informazioni e i compiti che un modello può portare a termine, ci costringono a procedere a tentoni, sapendo che ciò che chiediamo alle intelligenze artificiali potrebbe essere solo una piccola parte di ciò che sono in grado di fare con il dataset con il quale sono state addestrate.

Questo stesso limite è valido anche per il cervello umano, fisiologicamente identico a quello dei primi Homo sapiens, ma capace estendere notevolmente la proprie capacità di comprendere la realtà solo dopo l’invenzione del linguaggio simbolico riflessivo, la più straordinaria delle abilità emergenti che esibiamo. È come se avessimo imparato a usare meglio il nostro stesso cervello, dandogli gli input giusti. Ed è possibile che l’introduzione di nuove tecniche di estrazione dell’informazione dal mondo che ci circonda, come l’invenzione stessa delle reti neurali, possa far emergere dal nostro cervello ulteriori e sconosciute abilità. Tuttavia, anche il più avanzato cervello umano mai esistito, o anche l’intelletto idealizzato immaginato da Laplace nel suo famoso discorso sul determinismo, sarebbe comunque vincolato e limitato dalle leggi della fisica che governano lo stesso Universo di cui fa parte, e dal quale apprende informazioni. Non conosciamo tutti limiti delle abilità del cervello anche perché non sappiamo quanto vasto sia il dataset ideale di addestramento, che è l’intero Universo e le leggi che lo regolano.

Di conseguenza, non potremo mai definire esattamente, e con certezza, i limiti superiori delle abilità delle intelligenze umane. E artificiali.

Fonti:


Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *