Modelli linguistici di grandi dimensioni

Un modello linguistico di grandi dimensioni (Large Language Model, LLM) si riferisce a un tipo di modello di intelligenza artificiale progettato per comprendere e generare un linguaggio simile a quello umano. Un LLM:

  • è addestrato su enormi insiemi di dati contenenti diversi esempi di linguaggio umano. Durante l'addestramento, il modello apprende la struttura probabilistica del linguaggio.

  • dopo l'addestramento, ha la capacità di generare un testo coerente e contestualmente rilevante, incluso testo originale mai visto prima.

È importante ricordare che (per il momento) questi modelli linguistici non sono senzienti o coscienti e non hanno opinioni o convinzioni proprie. Questi modelli completano la frase con una parola statisticamente probabile in base a ciò che hanno appreso.

Da notare che non viene sempre scelta la parola più probabile; qui è dove si comincia a vedere un po' di magia. Infatti, se scegliamo sempre la parola più probabile, in genere otteniamo un testo molto piatto, con molte ripetizioni, che non sembra mostrare alcuna creatività. Ma se a volte scegliamo parole di rango inferiore (con minore probabilità), otteniamo un testo più interessante e umano.

Il fatto che ci sia della casualità significa che se usiamo lo stesso prompt in ingresso più volte, è probabile che otterremo risposte diverse. Inoltre, c'è un particolare parametro del modello, detto temperatura, che determina la frequenza con cui vengono utilizzate le parole di rango inferiore.

Inizieremo spiegando come i modelli linguistici rappresentano le parole usando i vettori (sequenze di numeri). Poi ci immergeremo nel concetto di trasformatore, l'elemento fondamentale dei sistemi basati sui LLM. Infine, spiegheremo come vengono addestrati questi modelli ed esploreremo il motivo per cui per ottenere buone prestazioni sono necessarie quantità di dati così elevate.

Parole come vettori

Per capire come funzionano i modelli linguistici, bisogna innanzitutto capire come rappresentano le parole. Gli esseri umani rappresentano le parole con una sequenza di lettere, come cat per gatto in Inglese. I modelli linguistici utilizzano un elenco di numeri chiamato vettore parola (word vector). Per esempio, ecco un modo per rappresentare la parola cat come un vettore:

(0.0074, 0.0030, -0.0105, 0.0742, 0.0765, -0.0011, 0.0265, 0.0106, 0.0191, 0.0038, -0.0468, -0.0212, 0.0091, 0.0030, -0.0563, -0.0396, -0.0998, ..., 0.0002)

Perché usare una notazione così barocca? Ecco un'analogia. Washington DC si trova a 38.9 gradi Nord e 77 gradi Ovest. Possiamo rappresentare la posizione geografica di una città utilizzando una notazione vettoriale:

  • Washington DC è a (38.9, 77)

  • New York è a (40.7, 74)

  • Londra è a (51.5, 0.1)

  • Parigi si trova a (48.9, -2.4).

Questo è utile per ragionare sulle relazioni spaziali. Si può dire che New York è vicina a Washington DC perché 38.9 è vicino a 40.7 e 77 è vicino a 74. Allo stesso modo, Parigi è vicina a Londra. Ma Parigi è lontana da Washington DC.

Un metodo popolare per misurare la somiglianza tra due vettori è la similarità del coseno. Si tratta di misurare il coseno dell'angolo tra i due vettori. Siano xx e yy due vettori della stessa lunghezza. Allora:

cos(x,y)=xyxy=ixiyiixi2iyi2\cos (x, y) = \frac{x \cdot y}{\|x\| \|y\|} = \frac{\sum_i x_{i} y_{i}}{\sqrt{\sum_i x_{i}^{2}} \sqrt{\sum_i y_{i}^{2}}}

La misura va da -1 a 1, dove:

  • 1 corrisponde a vettori paralleli paralleli, ad esempio x=(1,1)x = (1, 1) e y=(5,5)y = (5, 5)

  • 0 corrisponde a vettori ortogonali, ad esempio x=(1,1)x = (1, 1) e y=(1,1)y = (1, -1)

  • -1 corrisponde a vettori paralleli opposti, ad esempio x=(1,1)x = (1, 1) e y=(2,2)y = (-2, -2)

Nell'esempio delle città, la similarità del coseno tra Washington DC e New York è pari a 0.999, mentre quella tra Washington DC e Parigi è pari a 0.407.

I modelli linguistici adottano un approccio simile: ogni vettore parola rappresenta un punto in uno spazio immaginario di parole e le parole con significati più simili sono posizionate più vicine tra loro. Così, ad esempio, "alligatore" e "coccodrillo" appariranno spesso in modo quasi intercambiabile in frasi simili, e questo significa che saranno posizionati vicini nello spazio vettoriale linguistico. Ma "rapa" e "aquila" non tenderanno a comparire in frasi simili, quindi saranno collocati molto distanti nello spazio.

Un vantaggio fondamentale della rappresentazione delle parole con vettori di numeri (rispetto a una stringa di lettere) è che i numeri consentono operazioni che le lettere non consentono. I ricercatori hanno sperimentato i vettori parola per decenni, ma il concetto è decollato quando Google ha annunciato il progetto word2vec nel 2013. Google ha analizzato milioni di documenti raccolti da Google News per capire quali parole tendono a comparire in frasi simili. Nel corso del tempo, una rete neurale addestrata a prevedere quali parole co-occorrono con altre parole ha imparato a posizionare parole simili (come cane e gatto) vicine nello spazio vettoriale.

I vettori parola di Google hanno un'altra proprietà intrigante: si può ragionare sulle parole usando l'aritmetica vettoriale. Per esempio, se prendiamo il vettore di King, sottraiamo Man e aggiungiamo Woman, la parola più vicina al vettore risultante era Queen. Altre relazioni tra parole che si possono specificare in modo algebrico includono:

  • Svizzero sta a Svizzera come Cambogiano sta a Cambogia (nazionalità)

  • Parigi sta a Francia come Berlino sta a Germania (capitali)

  • Maleducato sta a educato come possibile sta a impossibile (opposti)

  • Elefanti sta a elefante come dollari sta dollaro (plurali)

Poiché questi vettori sono costruiti a partire dal modo in cui gli esseri umani usano le parole, essi finiscono per riflettere molti dei pregiudizi presenti nel linguaggio umano. Ad esempio, in alcuni modelli, Medico meno Uomo più Donna dà come risultato Infermiera.

In realtà i modelli linguistici rappresentano frammenti di parole che chiamano token. I token possono variare in termini di granularità. Per esempio, la parola "unbelievable" potrebbe essere essere suddivisa in "un", "believ" e "able". Questo permette al modello di comprendere e generare testo in modo più flessibile, sfruttando le radici e gli affissi linguistici comuni.

Il significato dipende dal contesto (e dalla conoscenza del mondo)

Un semplice schema vettoriale come questo non coglie un fatto importante del linguaggio naturale: le parole hanno spesso molteplici significati.

Per esempio, la parola bank in Inglese può riferirsi a un istituto finanziario o al terreno vicino a un fiume. Oppure considerate le seguenti frasi:

  • John compra una rivista.

  • Susan lavora per una rivista.

I significati di rivista in queste frasi sono correlati ma sottilmente diversi. John compra una rivista fisica, mentre Susan lavora per un'organizzazione che pubblica riviste fisiche.

Quando una parola ha due significati non correlati, come nel caso di bank, i linguisti li chiamano omonimi. Quando una parola ha più significati strettamente correlati, come nel caso di rivista, i linguisti parlano di polisemia.

I LLM sono in grado di rappresentare la stessa parola con vettori diversi a seconda del contesto in cui appare. C'è un vettore per bank (istituzione finanziaria) e un vettore diverso per bank (fiume). C'è un vettore per rivista (pubblicazione fisica) e un altro per rivista (organizzazione). Come ci si potrebbe aspettare, i LLM utilizzano più vettori simili per i significati polisemici che per i significati omonimi.

Ma il linguaggio naturale è pieno di ambiguità che vanno oltre l'omonimia e la polisemia:

  • In “the customer asked the mechanic to fix his car”, il pronome "his" si riferisce al cliente o al meccanico?

  • In “the professor urged the student to do her homework”, il pronome "her" si riferisce alla professoressa o alla studentessa?

  • In “fruit flies like bananas”, la parola "flies" è un verbo (che si riferisce alla frutta che vola come le banane) o un nome (riferito al moscerino della frutta)?

In questi casi il contesto non è sufficiente. Piuttosto, è necessario conoscere come va il mondo. È necessario sapere che i meccanici in genere riparano le auto dei clienti, che gli studenti e non i professori fanno i compiti per casa e che la frutta in genere non vola.

Trasformatori

GPT (Generative Pre-trained Transformer) è un modello linguistico sviluppato da OpenAI alla base della versione originale del chatbot ChatGPT.

GPT è organizzato in decine di livelli o strati (layer). Ogni strato prende in ingresso una sequenza di vettori - un vettore di numeri per ogni parola del testo in ingresso - e aggiunge informazioni che aiutano a chiarire il significato di quella parola e a prevedere meglio quale parola potrebbe venire dopo.

Ogni strato di un LLM è un trasformatore, un'architettura di rete neurale introdotta per la prima volta da Google in un articolo del 2017 dal titolo emblematico: Attention Is All You Need.

L'input del modello, mostrato nella parte inferiore del diagramma, è la frase parziale “John wants his bank to cash the". Queste parole, rappresentate come vettori di numeri, vengono inserite nel primo trasformatore.

Il trasformatore capisce che wants e cash sono entrambi verbi (entrambe le parole possono anche essere sostantivi). Nell'immagine abbiamo rappresentato questa informazione di contesto come testo rosso tra parentesi, ma in realtà il modello lo memorizzerebbe modificando opportunamente i vettori parola. Questi nuovi vettori vengono passati al trasformatore successivo nella pila. I vettori degli strati intermedi della architettura a pila si chiamano vettori di stato nascosti.

Il secondo trasformatore aggiunge altri due elementi di contesto: chiarisce che bank si riferisce a un istituto finanziario piuttosto che a un parte di un fiume e che his è un pronome che si riferisce a John. Il secondo trasformatore produce un'altra serie di vettori nascosti che riflettono tutto ciò che il modello ha imparato fino a quel momento.

Il diagramma precedente rappresenta un LLM puramente ipotetico. I LLM reali tendono ad avere molto più di due strati. GPT-3, la terza iterazione di GPT, per esempio, ha 96 strati.

I ricercatori suggeriscono che i primi livelli della pila di trasformatori si concentrano sulla comprensione della sintassi della frase e sulla risoluzione delle ambiguità, come abbiamo mostrato sopra. I livelli successivi lavorano per sviluppare una comprensione più profonda, di alto livello, del brano nel suo complesso.

Per esempio, mentre un LLM legge un racconto, sembra tenere traccia di una serie di informazioni sui personaggi della storia: sesso ed età, relazioni con altri personaggi, posizione passata e attuale, personalità e obiettivi, e così via. I ricercatori non capiscono esattamente come gli LLM tengano traccia di queste informazioni, ma a rigor di logica il modello deve farlo modificando i vettori di stato nascosti mentre vengono passati da uno livello all'altro. Giova il fatto che nei moderni LLM, questi vettori sono estremamente grandi.

Per esempio, GPT-3 utilizza vettori di parole con 12288 dimensioni, cioè ogni parola è rappresentata da una sequenza di 12288 numeri. Si può pensare a tutte queste dimensioni come a una sorta di "spazio di scrittura" che GPT-3 può utilizzare per aggiungere note a se stesso sul contesto di ogni parola. Le note fatte dai livelli precedenti possono essere lette e modificate dai livelli successivi, permettendo al modello di affinare gradualmente la sua comprensione del brano nel suo complesso.

Supponiamo quindi di modificare il diagramma precedente per rappresentare un modello linguistico a 96 livelli che interpreta una storia di 1000 parole. Il 60° livello potrebbe includere un vettore per John con un commento associato del tipo "personaggio principale, maschio, sposato con Cheryl, cugino di Donald, del Minnesota, attualmente a Boise, sta cercando di trovare il suo portafoglio scomparso". Tutti questi fatti verrebbero in qualche modo codificati come un elenco di 12288 numeri corrispondenti alla parola John. O forse alcune di queste informazioni potrebbero essere codificate nei vettori per Cheryl, Donald, Boise, portafoglio o altre parole della storia.

L'obiettivo è che il 96° e ultimo strato della rete produca un vettore per la parola finale del testo in ingresso che includa tutte le informazioni necessarie per prevedere la parola successiva.

Parliamo ora di ciò che accade all'interno di ciascun trasformatore. Il trasformatore ha un processo in due fasi per aggiornare lo stato nascosto per ogni parola del brano in ingresso:

  1. Nella fase di attenzione, le parole si guardano intorno per cercare altre parole con cui accoppiarsi e condividere informazioni.

  2. Nella fase di feed-forward, ogni parola pensa alle informazioni raccolte nelle precedenti fasi di attenzione e cerca di prevedere la parola successiva usando la conoscenza acquisita durante l'apprendimento.

La fase di attenzione

Si può pensare al meccanismo di attenzione come a un servizio di accoppiamento (matching) per le parole. Ogni parola crea:

  1. una lista chiamata vettore di interrogazione (query vector) che descrive le caratteristiche delle parole che sta cercando.

  2. una lista chiamata vettore chiave (key vector) che descrive le proprie caratteristiche.

La rete confronta ogni vettore chiave con ogni vettore di interrogazione (calcolando un prodotto scalare tra i due vettori) per trovare le parole che corrispondono meglio. Una volta trovata una corrispondenza, trasferisce le informazioni dalla parola che ha prodotto il vettore chiave alla parola che ha prodotto il vettore di interrogazione.

Per esempio, prima abbiamo mostrato un ipotetico trasformatore che capisce che nella frase parziale “John wants his bank to cash the" il pronome his si riferisce a John. Il vettore di interrogazione per his potrebbe effettivamente dire "Sto cercando: un sostantivo che descrive una persona di sesso maschile". Il vettore chiave per John potrebbe effettivamente dire "Io sono: un sostantivo che descrive una persona di sesso maschile". La rete rileva che questi due vettori corrispondono e sposta le informazioni sul vettore di John nel vettore di his.

Ogni strato di attenzione ha diverse teste di attenzione (attention head), il che significa che questo processo di scambio di informazioni avviene più volte (in parallelo) in ogni strato. Ogni testa di attenzione si concentra su un compito diverso:

  • Una testa di attenzione potrebbe abbinare i pronomi ai sostantivi, come abbiamo discusso in precedenza.

  • Un'altra testa di attenzione potrebbe lavorare per risolvere il significato di omonimi come "bank".

  • Una terza testa di attenzione potrebbe collegare tra loro frasi di due parole come "Joe Biden".

In sostanza, le teste di attenzione sono un modo per guardare indietro nel testo prodotto finora e impacchettare il passato in una forma utile per trovare il termine successivo. Immaginate di determinare la probabilità di una parola in base alla parola che immediatamente la precede. Il meccanismo di attenzione nei trasformatori generalizza questo processo e consente di prestare attenzione anche a parole apparse molto prima nel testo.

GPT-3 ha 96 strati con 96 teste di attenzione ciascuno, quindi GPT-3 esegue 962=921696^2 = 9216 operazioni di attenzione ogni volta che predice una nuova parola.

La fase feed-forward

Dopo che le teste di attenzione trasferiscono le informazioni tra i vettori parola, c'è una rete feed-forward che lavora sulle singole parole utilizzando le informazioni che sono state precedentemente copiate nella fase di attenzione e la conoscenza pregressa immagazzinata durante il training della rete. In questa fase non avviene alcuno scambio di informazioni tra le parole: la rete feed-forward analizza ogni parola in modo isolato.

La rete feed-forward ha uno strato di ingresso, uno strato nascosto e uno strato d'uscita. In GPT-3 ci sono 12288 neuroni negli strati di ingresso e di uscita (corrispondenti ai vettori di parole a 12288 dimensioni del modello, ogni vettore codifica una dimensione) e 49152 neuroni nello strato nascosto.

La rete feed-forward è una rete completa per strati, ovvero ogni neurone di uno strato è connesso a tutti i neuroni dello strato successivo. Quindi, nella versione GPT-3, ogni rete feed-forward ha 1228849152+4915212288=1.210912288 \cdot 49152 + 49152 \cdot 12288 = 1.2 \cdot 10^9 parametri di peso. Dato che ci sono 96 strati di feed-forward, abbiamo un totale di 1.210996=1161091.2 \cdot 10^9 \cdot 96 = 116 \cdot 10^9 (116 miliardi di) parametri. Questo rappresenta quasi i due terzi dei 175 miliardi di parametri complessivi del GPT-3.

Si noti che nella rete feed-forward non c'è retroazione: tutto fluisce in avanti e solo in avanti nella rete. La figura che segue mostra una (semplificazione di una) matrice dei pesi di una rete completa feed-forward, generata da Stephen Wolfram.

Cosa determina questa struttura? In definitiva, si tratta presumibilmente di una codifica a rete neurale delle caratteristiche del linguaggio umano. Le zone calde corrispondono a connessioni sinaptiche positive (che promuovono il passaggio del segnale), quelle fredde sono connessioni negative (che inibiscono il segnale), e quelle bianche sono neutre.

In un sondaggio informale l'autore di questo testo ha chiesto ai propri amici cosa vedessero in questa immagine (senza svelarne il significato). Alcune risposte sono state:

  • Marmellata d'arancia su tovaglia di cotone

  • Un arcipelago di lingue sconosciute (!)

  • Gente che danza tenendosi per mano

  • La Sindone

  • Un cielo con nuvole di curcuma

  • Formiche in movimento su un vetro

  • Feti che cadono dal cielo

  • Una città distrutta

  • Riflessi di laguna veneziana

Stiamo aprendo il cervello del modello GPT che a sua volta cerca di aprire il nostro: un gioco di specchi. Forse studiando l'IA stiamo cercando di capire indirettamente come funziona il nostro cervello?

Si noti che le fasi di attenzione e di feed-forward hanno compiti diversi. Le teste di attenzione recuperano informazioni da parole precedenti nel testo oggetto di attenzione, quindi in un certo senso questa fase lavora in modo relazionale e locale. Le reti feed-forward permettono ai modelli linguistici di ricordare informazioni che non sono scritte nel testo attenzionato, ma piuttosto nelle informazioni che il modello ha appreso dai suoi dati di addestramento, quindi in un certo senso questa fase lavora in modo globale.

Riassumendo, per ognuno dei 96 strati del modello:

  1. ogni parola è rappresentata da un vettore a 12288 componenti;

  2. il testo oggetto di attenzione viene elaborato da 96 teste di attenzione che stabiliscono relazioni tra le parole muovendo informazioni vettoriali da una parola all'altra;

  3. le singole parole vengono elaborate da reti neurali in avanti che usano le informazioni di attenzione e la conoscenza globale appresa dalla rete in fase di addestramento.

Dopo aver eseguito tutte queste fasi di attenzione e avanzamento, qual è l'effetto netto della pila di trasformatori sul testo in ingresso? In sostanza, l'effetto è trasformare la rappresentazione vettoriale iniziale in una rappresentazione vettoriale più ricca sfruttando l'informazione contenuta nel testo che quella appresa dalla rete durante l'addestramento. Il sistema quindi prende il vettore trasformato dell'ultima parola del testo e produce un elenco di probabilità per la parola successiva. Infine, una di queste parole viene scelta e aggiunta al testo finora prodotto, in base alla temperatura del sistema (quindi non necessariamente la più probabile). Il tutto poi ricomincia da capo fino ad ottenere un testo compiuto.

Addestramento della rete

Molti dei primi algoritmi di apprendimento automatico richiedono che gli esempi di addestramento siano etichettati a mano da esseri umani. La necessità di etichettare i dati da parte dell'uomo rende difficile e costoso creare insiemi di dati sufficientemente grandi per addestrare modelli potenti.

Un'innovazione fondamentale dei LLM è che non hanno bisogno di dati esplicitamente etichettati, o meglio, i dati (il testo) che il modello ha a disposizione come esempi sono in un certo senso già etichettati da chi ha scritto il testo. Basta infatti prendere un pezzo di testo e oscurare la prossima parola e chiedere al modello di predire la parola mancante. Quindi quasi tutto il materiale scritto, dalle pagine di Wikipedia al codice informatico, è adatto all'addestramento di questi modelli.

GPT-3 è stato addestrato su un corpus di circa 500 miliardi di parole. A titolo di confronto, un bambino tipico ha a che fare con circa 100 milioni di parole entro i 10 anni.

Un LLM apprende esempio dopo esempio e ogni esempio (testo scritto) va a modificare alcuni pesi della rete, quindi a immagazzinare nuova conoscenza. Il processo di formazione avviene in due fasi. Per ogni esempio c'è un passaggio in avanti (fase feed forward) e uno indietro (fase backpropagation) per aggiustare i pesi del modello. OpenAI stima che per addestrare GPT-3 siano stati necessari più di 310233 \cdot 10^{23} (trecentomila miliardi di miliardi) calcoli in virgola mobile, ovvero mesi di lavoro per decine di chip di computer di fascia alta.

Nella rappresentazione che la rete di GPT fa del linguaggio umano sembra che alla fine ci sia una compressione piuttosto ridotta dei dati di addestramento; in media sembra che ci voglia solo un po' meno di un peso della rete neurale per catturare il contenuto informativo di una parola di dati di addestramento. Dunque se l'addestramento avviene su nn parole, il numero di pesi della rete è dell'ordine di nn. Dato che per addestrare la rete su una parola l'intera rete deve essere visitata, l'addestramento complessivo su nn parole costa n2n^2, una complessità che, seppur polinomiale, può essere proibitiva se nn è grande in partenza.

  1. Il primo LLM di OpenAI, GPT-1, è stato rilasciato nel 2018. Utilizzava vettori parola a 768 dimensioni e aveva 12 strati per un totale di 117 milioni di parametri.

  2. Pochi mesi dopo, OpenAI ha rilasciato GPT-2. La sua versione più grande aveva vettori a 1600 dimensioni, 48 strati e un totale di 1.5 miliardi di parametri.

  3. Nel 2020, OpenAI ha rilasciato GPT-3, che presentava vettori a 12288 componenti e 96 strati per un totale di 175 miliardi di parametri.

  4. Infine, nel 2013 OpenAI ha rilasciato GPT-4. L'azienda non ha pubblicato alcun dettaglio architetturale, ma si ritiene che GPT-4 sia significativamente più grande di GPT-3.

Un'idea chiave nella costruzione di sistemi basati sui LLM come ChatGPT è stata quella di avere un altro passo dopo la lettura passiva del testo di apprendimento: far interagire attivamente gli esseri umani con ChatGPT, e usare il feedback umano per migliore il chatbot (quindi usare un modello di apprendimento per rinforzo a valle del modello di apprendimento supervisionato). Si parla di human-in-the-loop quando in un processo viene inserita la componente umana. Il primo passo consiste nel far valutare agli esseri umani i risultati della rete neurale, usando addestratori che lo fanno per lavoro ma anche i feedback degli utenti che usano il chatbot. Successivamente la rete è messa a punto sfruttando il feedback umano che è stato fornito.

In modo più specifico, ChatGPT e altre versioni del modello GPT sono state migliorate attraverso l'interazione con gli umani in un processo noto come Reinforcement Learning from Human Feedback (RLHF). Questo processo prevede diverse fasi, che possono includere:

  1. Supervised Fine-Tuning (SFT): Un modello inizialmente pre-addestrato su un grande dataset di testo viene affinato su un nuovo dataset che contiene coppie di input e risposte umane.

  2. Reward Model (RM): Gli umani valutano le risposte del modello, assegnando loro un punteggio. Questi punteggi sono usati per allenare un modello di reward che può prevedere la qualità delle risposte del modello.

  3. Reinforcement Learning (RL): Il modello di reward viene quindi usato come base per un'ulteriore fase di apprendimento, dove il modello GPT è incentivato a massimizzare la ricompensa prevista dal modello di reward usando un algoritmo di apprendimento per rinforzo noto come PPO (Proximal Policy Optimization).

  4. Iterazioni Umane: Il ciclo di feedback può essere iterato, con gli umani che forniscono ulteriore addestramento e feedback per affinare le prestazioni del modello.

Cosa permette ai modelli linguistici di funzionare?

L'irriducibilità computazionale è un concetto del campo della teoria computazionale, associato in particolare al lavoro del matematico e informatico Stephen Wolfram. Suggerisce che ci sono sistemi complessi per i quali non è possibile semplificare o prevedere il risultato senza passare attraverso l'intero processo computazionale. Il concetto sfida l'idea che tutti i fenomeni complessi possano essere pienamente compresi e previsti attraverso il riduzionismo o la scomposizione in componenti più semplici. L'irriducibilità computazionale suggerisce che, per alcuni sistemi, il loro comportamento è meglio compreso osservando l'intero processo computazionale senza scorciatoie o semplificazioni.

I risultati impressionanti dei modelli linguistici ci potrebbero far pensare che l'irriducibilità computazionale, tipica di molti sistemi complessi, non sia applicabile al linguaggio umano. Ovvero, il linguaggio è, a un livello fondamentale, più semplice di quanto sembri. Il successo dei LLM ci sta dando la prova di un elemento fondamentale e importante della scienza: ci sta suggerendo che possiamo aspettarci che esistano leggi fondamentali del linguaggio. Nei LLM queste leggi sono codificate in modo implicito e oscuro. Ma se riuscissimo in qualche modo a renderle esplicite, ci sarebbe il potenziale per fare il tipo di cose che gli LLM fanno in modi molto più diretti, efficienti e trasparenti.

Una prima legge del linguaggio è sicuramente la sua sintassi. Il linguaggio non è solo un'accozzaglia casuale di parole. Al contrario, esistono regole grammaticali abbastanza precise su come le parole di diverso tipo possono essere messe insieme: in inglese, per esempio, i nomi possono essere preceduti da aggettivi e seguiti da verbi, ma tipicamente due nomi non possono stare l'uno accanto all'altro.

La sintassi fornisce un tipo di vincolo al linguaggio. Ma è chiaro che ce ne sono altri. Una frase come "Gli elettroni curiosi mangiano le teorie blu per i pesci" è grammaticalmente corretta, ma non è qualcosa che ci si aspetterebbe di dire normalmente, e non sarebbe considerata un successo se ChatGPT la generasse - è fondamentalmente priva di significato.

Dove cercare dunque le altre regole non sintattiche del linguaggio? C'è un piccolo angolo che è noto da due millenni, ed è la logica. E certamente nella forma sillogistica in cui Aristotele l'ha scoperta, la logica è fondamentalmente un modo per dire che le frasi che seguono certi schemi sono ragionevoli, mentre altre non lo sono. In altri termini in un sistema logico corretto e completo la relazione tra sintassi e semantica del linguaggio è molto stretta, in particolare è possibile capire se una formula è un teorema, ovvero è una affermazione valida in ogni modello, sono guardando la forma sintattica della formula. Ma sappiamo anche che, come ha dimostrato Gödel nei sui teoremi di incompletezza, esistono sistemi logici che contengono verità indimostrabili. E così come si può immaginare, in modo un po' stravagante, che Aristotele abbia scoperto la logica sillogistica esaminando molti esempi di retorica, allo stesso modo si può immaginare che l'addestramento di un LLM sia stato in grado di scoprire la logica del linguaggio esaminando molti esempi di scrittura.

Il successo dei LLM rivela implicitamente un fatto scientifico importante: che il linguaggio umano è in realtà molto più strutturato e semplice di quanto non si sia mai saputo, e che possono esistere regole piuttosto semplici che descrivono come tale linguaggio funzioni.

Dunque, una possibile ragione per cui questi modelli linguistici funzionano così bene è che il linguaggio stesso è prevedibile, ovvero possiede delle regolarità. Si noti che le regolarità del linguaggio sono spesso (anche se non sempre) collegate alle regolarità del mondo fisico. Quindi, quando un modello linguistico impara a conoscere le relazioni tra le parole, spesso sta implicitamente imparando anche le relazioni tra le cose del mondo.

Imparare il linguaggio significa cominciare a comprendere il mondo.

Oracoli, cavalli intelligenti o pappagalli stocastici?

Abbiamo un sacchetto pieno di popcorn. Nel sacchetto non c'è cioccolato. Eppure, l'etichetta sul sacchetto dice "cioccolato" e non "popcorn". Sam trova il sacchetto. Non l'aveva mai visto prima. Non riesce a vedere cosa c'è dentro. Legge l'etichetta. Cosa pensi che Sam creda ci sia nel sacchetto?

Gli psicologi chiamano questa capacità di ragionare sugli stati mentali delle altre persone teoria della mente (theory of mind, ToM). Lo psicologo Michal Kosinski di Stanford ha pubblicato una ricerca che esamina la capacità dei LLM di risolvere compiti di teoria della mente.

GPT-1 e GPT-2 non hanno superato questo test. GPT-3 ha azzeccato il 20% delle risposte, mentre GPT-4 ha risposto correttamente al 75% delle domande sulla teoria della mente, come un bambino di 6 anni. Kosinski scrive:

Dato che non ci sono indicazioni che l'abilità di ToM sia stata deliberatamente inserita in questi modelli, né ricerche che dimostrino che gli scienziati sappiano come ottenerla, è probabile che l'abilità di ToM sia emersa spontaneamente e autonomamente, come sottoprodotto della crescente capacità linguistica dei modelli.

Vale la pena notare che i ricercatori non sono tutti d'accordo sul fatto che questi risultati indichino l'esistenza della teoria della mente nei LLM. Sean Trott, ad esempio, ha scritto che le prestazioni dei LLM potrebbero essere attribuibili ad una sorta di effetto Hans l'intelligente, solo nei modelli linguistici piuttosto che nei cavalli.

Il cavallo era semplicemente un canale attraverso il quale le informazioni che l'interrogante aveva involontariamente immesso venivano restituite all'interrogante. La fallacia consisteva nel trattare il cavallo come la fonte del messaggio piuttosto che come un canale attraverso il quale si rifletteva il messaggio dell'interrogante (Hyman 1989: 425).

Se vediamo l'IA come lo specchio (il canale) della conoscenza umana, stratificata in migliaia di anni di pensiero, e non come la sorgente di tale conoscenza, forse l'IA ci sembrerà meno sorprendente e ci farà meno paura.

Alcuni, infine, sostengono che i modelli linguistici non hanno neppure l'intelligenza del cavallo Hans, e non sono altro che pappagalli stocastici che si limitano a ripetere sequenze di parole senza comprenderle veramente - come un pappagallo ripete le parole sentite riproducendone il suono.

Noam Chomsky. The False Promise of ChatGPT, The NYT (2023)

Last updated