Il linguaggio naturale è un sistema estremamente complesso che coinvolge numerosi processi cerebrali. Il tentativo di riprodurlo tramite agenti artificiali rappresenta uno degli obiettivi principali dell’intelligenza artificiale sin dai suoi esordi. Da oltre cinquant’anni, linguisti e informatici si sono cimentati nel far comprendere il linguaggio umano ai computer, lottando contro la sua natura affascinante e fuorviante: implicito, altamente contestuale, ambiguo, spesso impreciso e contingente ai processi biologici.
Il dualismo tra calcolo e linguaggio
Effettivamente, il linguaggio appare soggetto ai capricci dell’evoluzione e del cambiamento culturale da un lato, e basato su regole rigide che vincolano le possibili sequenze di fonemi o parole dall’altro. È difficile negare che la produzione e la comprensione linguistica si basino su un sistema di regolarità formali e che alcune di queste regolarità abbiano un comportamento stabile in un dato momento dell’evoluzione storica di una determinata lingua.
Queste regolarità legittimano l’uso del termine “sistema” (o “modello”) quando si parla di linguaggio. Queste idee sono ben spiegate da una citazione di De Mauro (1990) che riporta: “Da un lato ci sono, ben fondate, le ragioni che assimilano il linguaggio a un calcolo. Dall’altro, non meno forti, ci sono le ragioni che precludono tale assimilazione. Teorici e filosofi hanno generalmente optato per l’accentuazione dell’una o dell’altra. (…) Sembra che una buona teoria del linguaggio debba tener conto di queste e delle altre ragioni”.
Il ruolo rivoluzionario dei Large Language Models
Nonostante non sia stata ancora sviluppata una teoria del linguaggio definitiva e universalmente accettata, il piano sperimentale e applicativo dei modelli del linguaggio, più precisamente dei Large Language Model (LLM), sta offrendo contributi significativi e spunti concreti. Piuttosto che risolvere la tradizionale dicotomia di calcolo vs. non-calcolo nel linguaggio, la stessa che ha diviso per anni lo sviluppo di sistemi basati su regole esplicite e sistemi probabilistici, gli LLM sembrano superare queste questioni precedentemente considerate centrali.
Attraverso l’uso di vasti dataset e reti neurali, questi modelli trattano le sfide del linguaggio umano in modi che bypassano le tradizionali barriere tra i diversi compiti di elaborazione del linguaggio. Non solo unificano compiti precedentemente gestiti separatamente —come l’analisi morfologica, il riconoscimento di entità nominative, e l’analisi sintattica e semantica— ma li integrano efficacemente all’interno di un unico framework complesso. In tal modo, gli LLM offrono nuove strade per comprendere la complessità e versatilità del linguaggio naturale e aprono nuove frontiere nella comunicazione uomo-macchina in cui le macchine non solo modellano il linguaggio, ma lo comprendono e partecipano attivamente con noi nella complessa tessitura del nostro ‘mondo linguistico’.”
Dalla biologia all’IA: il ponte delle reti neurali nel linguaggio
In fondo, non c’è da stupirsi se i modelli di linguaggio di grande scala basati su reti neurali mostrano capacità così spiccate nella gestione del linguaggio naturale. Le reti neurali artificiali, pur non replicando esattamente la struttura e i meccanismi specifici delle loro controparti biologiche, tentano di mappare le interazioni complesse e a volte non lineari tra input e output (cioè, la relazione tra ciò che il modello riceve e ciò che restituisce può cambiare in modo imprevedibile a seconda delle variazioni, anche minime, negli input). Grazie alle loro capacità di generalizzazione e apprendimento da vasti volumi di dati, riflettono in qualche modo la dinamica dei processi naturali e per questo sono intrinsecamente adatte a modellare la complessità del linguaggio.
Generazione di testo e perplessità: funzioni chiave dei LLM
Oggi, quando si parla di modelli del linguaggio, spesso ci si riferisce implicitamente a modelli auto-regressivi, ovvero in cui ogni nuova parola viene “predetta” in sequenza, utilizzando le informazioni (o il contesto) fornite dalle parole già generate. In pratica, il modello “guarda indietro” a ciò che è stato già detto per decidere quale parola (o sotto parola, “token”) viene dopo, costruendo il testo in modo incrementale.
Un aspetto particolarmente interessante di questi modelli è la loro capacità di svolgere due compiti: generare testo e valutare la probabilità, o “bontà”, di una sequenza di parole. Quest’ultima è comunemente misurata attraverso la perplessità, una metrica che valuta quanto un modello è “sorpreso” dal successivo token (ad esempio, parola o carattere) in una sequenza, quantificando quindi quanto bene un modello riesce a prevedere un campione di testo e viceversa di quanta incertezza il modello percepisce nel predire il testo. Queste due funzioni, di generazione e di valutazione, emergono direttamente dal modo in cui il modello di linguaggio viene addestrato. L’addestramento avviene tramite un approccio di ‘apprendimento auto-supervisionato’: durante questo processo, alcune parole del testo da cui imparare vengono mascherate (nascoste) e il modello è sfidato a prevederle basandosi solamente sul contesto fornito dalle parole visibili.
Questo metodo affina via via la capacità del modello di predire la parola corretta, potenziando la sua competenza sia nella generazione di testo che nella valutazione delle sequenze di parole. Attraverso questo processo, i modelli apprendono non solo le regole grammaticali e sintattiche della lingua, ma anche le complessità semantiche e contestuali che caratterizzano il linguaggio naturale. Più un modello raggiunge una bassa perplessità durante la fase di addestramento più questo indica che è in grado di assegnare probabilità elevate alle sequenze di parole effettivamente osservate.
Mentre l’utilità della generazione del testo è davanti ai nostri occhi, letteralmente, il compito di calcolare la perplessità sembra essere più sfuggente ma le sue applicazioni pratiche sono fin maggiori dell’uso generativo (che a seconda del modello usato può risultare fin troppo fantasioso). Facendo un passo indietro, si pensi che questa misurazione era fondamentale -e per molti versi lo è tutt’ora- per lo sviluppo di sistemi di riconoscimento del parlato (ad esempio, aiutando il sistema a decidere se l’utente ha detto “anno” o “hanno” in italiano, basandosi sul contesto della frase), nella traduzione automatica, aiutando a scegliere tra varie opzioni di traduzione quella che suona più naturale, correzione ortografica e grammaticale, identificando errori principalmente ortografici o grammaticali.
Oggi, se dovessimo valutare se un testo è ben o mal scritto, sarebbe quasi automatico rivolgerci al nostro LLM preferito per una consulenza, attendendoci in cambio un’analisi approfondita e consapevole dello stile, piuttosto che cercare noi stessi di interpretare i vari punteggi mistici parola per parola. Se necessitassimo di una traduzione, ci rivolgeremmo direttamente al GPT di turno, aspettandoci una traduzione di qualità, unendo praticamente i compiti di generazione del testo e misurazione della perplessità, che in fondo rappresentano aspetti complementari dello stesso processo.
Dai modelli basati su n-grammi alle architetture avanzate
Non è sempre stato così facile. Prima della rivoluzione dei Transformers, ossia l’architettura neurale alla base del GPT (Generative Pre-Trained Transformer), la generazione di testo era una capacità intrigante da un punto di vista di ricerca scientifica ma non sfruttabile praticamente, vista l’incapacità di quei modelli di generare testi lunghi e coerenti che fossero sensati, anche solo grammaticalmente.
Questo limite è da ricercare all’origine dei modelli di linguaggio, che hanno radici che risalgono agli anni ’50 e ’60, quando furono esplorati e sviluppati in modo significativo. Essi non erano basati su ‘reti neurali’ e avevano una nozione di contesto estremamente limitata. Si basavano sulla premessa che la probabilità di una parola in un testo dipende solo dalle `n-1` precedenti. I primi modelli si basavano sui bigrammi, cioè coppie di parole consecutive, che rappresentavano il modo più semplice per catturare le dipendenze tra le parole in una sequenza. Questa tecnica venne estesa ai trigrammi e poi agli n-grammi, dove ‘n’ rappresentava il numero di parole consecutive considerate dal modello per fare le sue previsioni.
Con il tempo, l’approccio basato sugli n-grammi si è dimostrato limitato a causa della ‘maledizione della dimensionalità’, ovvero la crescita esponenziale della complessità del modello con l’aumentare di ‘n’. Questo aumento di ‘n’ è necessario per catturare le dipendenze a lunga distanza nel testo, che sono fondamentali per comprendere il contesto completo e la struttura del linguaggio. Ad esempio, in una frase lunga, il significato di una parola può dipendere da un’altra parola che si trova molto lontano nella sequenza.
Senza un adeguato valore di ‘n’, tali dipendenze non vengono catturate, portando a interpretazioni e previsioni meno accurate. Tuttavia, man mano che questo ‘n’ aumenta, il numero di combinazioni possibili di parole cresce esponenzialmente, rendendo il modello sostanzialmente impossibile da trattare con le risorse hardware attuali (e non c’è GPU che tenga). Inoltre, l’approccio basato sugli n-grammi è per definizione letterale e limitato, in quanto si concentra esclusivamente su una sequenza esatta di parole, trascurando il contesto più ampio e i significati impliciti.
La sfida di gestire parole raramente usate—un fenomeno descritto dalla legge di Zipf—si rivela particolarmente ardua per l’approccio basato sugli n-grammi e per qualsiasi altro modello in cui la rappresentazione lessicale è “sparsa”, ovvero dove ogni parola identifica soltanto se stessa senza una nozione più estesa di significato. Questi modelli infatti incontrano difficoltà nel riconoscere parole o sequenze completamente nuove per via della ricerca di corrispondenza letterale, un problema noto come “zero probability”. Questo limite porta ad una ‘lettura’ superficiale del testo e impedisce loro di catturare le sfumature semantiche e le inferenze necessarie per un’elaborazione del linguaggio naturale efficace. Nonostante gli sforzi per migliorare questi modelli, le tecniche sottostanti a questi approcci continuano a ostacolare la loro capacità di interpretare e generare linguaggio naturale in modo efficace e realistico.
Parallelamente allo sviluppo degli n-grammi, vennero esplorati altri modelli come le Hidden Markov Models (HMM), utilizzate inizialmente e con discreto successo soprattutto nel riconoscimento del parlato. Le HMM, pur offrendo nuove prospettive nella modellazione delle sequenze attraverso “stati nascosti” e transizioni probabilistiche tra questi, affrontano problemi simili agli n-grammi, in particolare nella gestione delle dipendenze a lungo termine e nella complessità crescente con l’ampliamento del contesto considerato. Questi modelli, sebbene più espressivi, continuavano quindi a scontrarsi con limitazioni sostanziali nella modellazione del linguaggio umano.
La rivoluzione delle architetture basate sui Transformer
Facendo un balzo nel presente e non trattando per brevità tutta l’enorme ricerca scientifica che ha permesso di arrivare dove siamo oggi, lo sviluppo di modelli di linguaggio basati su reti neurali ha segnato l’inizio di una nuova era. I primi modelli del linguaggio neurali – e sorprendentemente anche diversi nuovi (come ad esempio, RWKV, Mamba, xLSTM) – sono basati su reti neurali ricorrenti in grado di catturare relazioni a lungo raggio tra le parole, grazie alla loro capacità di mantenere uno “stato” che evolve attraverso la sequenza di input. È fondamentale menzionare la LSTM (Long Short-Term Memory), che ha dominato la scena poco prima dell’avvento di BART, il primo modello di linguaggio non ricorrente (e non auto-regressivo, dettaglio che qui tralasciamo) che usa un’architettura Transformer.
La vera risoluzione dei Language Model si deve proprio a quest’ultima architettura neurale, il cui principio di funzionamento è nientemeno che imparare ad individuare e pesare con “attenzione” gli elementi del testo più importanti in un dato momento dell’elaborazione, avendo sempre a disposizione l’intera sequenza di parole e quindi risolvendo in gran parte il problema delle dipendenze a lunga distanza mantenendo la coerenza e il contesto lungo intere frasi, paragrafi o interi libri nei modelli più sofisticati.
L’ascesa degli embedding
Negli ultimi 5 anni, abbiamo assistito a un’esplosione nella scala di questi modelli neurali, con il numero di parametri (o connessioni neurali) che è cresciuto di ordini di magnitudo, segnando una vera e propria rivoluzione nella capacità di modellare e generare contenuti con una naturalezza senza precedenti -tale da lasciarsi alle spalle il Test di Turing. Questi modelli hanno mirato a superare le limitazioni delle controparti non neurali, spostando il focus dalla mera analisi letterale del testo alla comprensione della sua “sostanza semantica”, incarnata in una rappresentazione matematica sofisticata. Il termine di questa rappresentazione, in cui ogni parola porta con sé il suo valore semantico, si chiama “embedding”.
Derivato dal verbo inglese `to embed`, che significa “incastonare” o “incorporare”, il termine “embedding” esprime proprio l’idea di una parola che viene “incastonata” in un contesto più ampio, facendo sì che il suo significato sia definito non solo in isolamento, ma in relazione alle parole che la circondano, offrendo una lettura più dinamica e contestualizzata del linguaggio. Il bello di questi sistemi è che non hanno bisogno di dizionari preconfezionati per capire il significato delle parole: imparano tutto da zero durante il loro addestramento, analizzando enormi quantità di testi. Gli embedding sono quindi rappresentazioni dense di significato, elaborate attraverso il contesto d’uso. C’è di più: ignorando ogni fondamento della linguistica computazionale, le parole sono scomposte in porzioni più piccole, i “token” senza corrispondere necessariamente a criteri di suddivisione morfologica come per radici o desinenze. I “token” stessi vengono definiti durante la fase di addestramento, secondo criteri unicamente statistici, e permettono ai modelli del linguaggio di adattarsi a nuove parole, catturare sfumature e imprecisioni del linguaggio in modo molto più fine e dettagliato.
il ruolo emergente dell’IA generativa
Sebbene questi modelli del linguaggio trovino impiego in compiti classici di classificazione, come la determinazione del tema di un documento o l’identificazione del “sentiment” di una recensione, la visione contemporanea degli LLM ha trasceso queste applicazioni iniziali (anche se spesso più efficaci ed efficienti). Il passaggio da modelli che essenzialmente “decodificano” il linguaggio a quelli che lo “producono” ha aperto nuovi orizzonti per l’intelligenza artificiale, la cosiddetta Intelligenza Artificiale Generativa.
I modelli del linguaggio più avanzati come ad esempio GPT4, Claude3, Gemini, Mixtral, LLAMA 3, hanno infatti raggiunto un’abilità straordinaria nella comprensione e nella generazione di testi che risultano naturali e coerenti, trasformandosi in strumenti imprescindibili per un’ampia gamma di applicazioni, dalla creazione di contenuti e la conversazione interattiva alla traduzione automatica e molto altro.
Siamo di fronte ad una forma di intelligenza sintetica che si distanzia nettamente dal mero concetto di “super pappagallo”, come venivano definiti fino a non molto tempo fa.
Essi non si limitano infatti a riprodurre meccanicamente le informazioni, ma dimostrano di poter comprendere e manipolare le sfumature del linguaggio a livelli morfologici, sintattici, semantici e, per la prima volta, anche pragmatici. Questa capacità non è trascurabile, perché sebbene ci sia la tendenza a memorizzare e ripetere informazioni — come spesso viene richiesto anche agli esseri umani — gli LLM riescono ad andare oltre, sviluppando le cosiddette “abilità emergenti” riuscendo a svolgere compiti non presenti in modo esplicito nel dataset di addestramento.
Le sfide attuali e future dei Large Language Models
È fondamentale però essere consapevoli dei limiti degli LLM: questi modelli non solo imitano sorprendentemente bene lo stile e il tono umano, ma sembrano aver ereditato anche alcune delle nostre limitazioni. Tale fenomeno è talmente accentuato che, a volte, il computer sembra perdere la sua intrinseca capacità di calcolo, avvicinandosi a quello che potrebbe essere considerato un’aberrazione della sua funzione primaria. Interagire con un LLM non è equivalente a parlare con un computer tradizionale: questi modelli, ad esempio, non gestiscono operazioni matematiche con affidabilità costante, sia nei problemi complessi che in quelli elementari.
Un altro limite, meno umano (?), è che per loro natura possono generare (qui nel senso di riportare) informazioni inesatte o ‘allucinazioni’, termini spesso usati per descrivere errori che possono sembrare delle vere e proprie bufale. Di conseguenza, esiste una resistenza legittima ad accettare una forma di intelligenza che, nonostante sia indiscutibilmente avanzata, è suscettibile di errori e, in diversi casi, può distorcere la realtà. Questo può accadere perché il modello, lavorando su basi puramente statistiche e probabilistiche, può talvolta seguire percorsi di generazione che sembrano logici ma che non sono ancorati a una realtà concreta o a una logica argomentativa precisa.
La sfida della “conoscenza” nei LLM
Il loro “sapere” è dunque una questione di calcolo probabilistico, non di consapevolezza o intenzionalità nel senso umano. Per esempio, nonostante si abbia spesso l’impressione che gli LLM “sappiano” fin dall’inizio cosa intendono dire alla fine, ovvero di costruire risposte che sembrano risolvere o concludere il loro ragionamento solo nelle ultime parole, pur iniziando dalla prima parola, in realtà non “sanno” dove andranno a parare quando iniziano a generare una risposta. Tecnicamente, quando un LLM inizia la generazione, utilizza la sua capacità di anticipazione per formare una frase che sia logica e coerente con il contesto dato: in un certo senso, il modello ha una “intuizione” su come potrebbero svilupparsi le frasi o gli argomenti, basandosi su ciò che ha visto più frequentemente nei dati di addestramento. Questo da l’impressione che esso operi in modo simile al modo in cui un umano potrebbe pianificare una risposta, pensando a cosa dire all’inizio, sviluppando l’idea e poi concludendo. Tuttavia, a differenza degli umani che possono pianificare la loro risposta in anticipo, il modello fa tutto ciò in modo iterativo e incrementale, parola per parola.
Questo rappresenta sia la potenza che il limite di questi strumenti di intelligenza artificiale oltre che sollevare un interrogativo cruciale: come dovremmo gestire un’intelligenza che può sbagliare o mentire, e lo fa in modo inconsapevole? Socrate, con la sua affermazione che “il sapere è il saper di non sapere”, pone l’accento sull’importanza di riconoscere i limiti della propria conoscenza, un principio che trova eco anche nel mondo moderno dell’intelligenza artificiale.
Nonostante le direzioni promettenti della ricerca, vi è un consenso comune sul fatto che esista un divario considerevole tra le capacità di questi modelli artificiali e la competenza umana nel riconoscere i limiti della propria conoscenza. Gli LLM attuali non comprendono cosa non sanno, e questa mancanza di “autoconsapevolezza” riflette una sfida fondamentale nell’evoluzione dell’intelligenza artificiale. Se viene a mancare questo paradosso socratico, considerato il fondamento del pensiero del filosofo greco perché basato su un’ignoranza intesa come consapevolezza di non conoscenza definitiva, si perde anche il movente fondamentale del desiderio di conoscere, che rischia di ridurre significativamente l’efficacia e la profondità dell’intelligenza artificiale.
La capacità di comprendere le proprie limitazioni rispetto a ciò che è sconosciuto, definita come autoconoscenza, è di fondamentale importanza per il progresso verso un’intelligenza artificiale più matura e consapevole.
Strategie per potenziare l’efficienza e l’affidabilità degli LLM
In un’altra analogia con l’essere umano, un LLM adeguatamente addestrato e configurato può utilizzare strumenti esterni ad esso per verificare i propri calcoli, quasi come se impiegasse una calcolatrice, o accedere a fonti di conoscenza esterne per fornire risposte aggiornate ai quesiti posti. Questo sottolinea un aspetto fondamentale della ‘conoscenza’ di un LLM, finora considerata parte integrante del fenomeno linguistico stesso. La conoscenza di un LLM risiede nei suoi parametri, anche noti come ‘pesi’, che si sviluppano durante la fase di apprendimento e si cristallizzano nella fase di utilizzo, detta inferenza.
Una strategia per ampliare la conoscenza del LLM e la rilevanza della risposta in fase di generazione consiste nell’utilizzo delle architetture RAG (Retrieval-Augmented Generation) grazie alle quali il processo di generazione del testo viene supportato da un meccanismo di ricerca che attinge da una vasta base di dati o documenti esterni. A fronte di una domanda, il sistema prima cerca informazioni pertinenti che possono arricchire la risposta esternamente al modello, eventualmente usando un motore di ricerca. Queste informazioni vengono poi sintetizzate e integrate nel flusso del testo generato, permettendo al modello di produrre risposte più informate e contestualmente appropriate. Sebbene non sia un aggiornamento vero e proprio del modello questa tecnica risulta empiricamente efficace sia per correggere informazioni errate finite nella base di addestramento sia ridurre la generazione di informazioni non corrette.
Se da un punto di vista amatoriale questi strumenti sono già ottimi così, per una Entreprise che intende integrare un LLM nel proprio stack tecnologico, diventano fondamentali i criteri di riproducibilità della generazione, che se senza accortezze specifiche vanno a farsi benedire: di default, i testi generati possono variare ogni volta anche a fronte dello stesso input, perché la ‘temperatura’ del modello (intesa come un termostato, ovvero un controllo che regola -in questo contesto- la casualità nelle scelte linguistiche durante la generazione del testo), se impostata sopra l’uno, introduce un elemento di casualità.
Tuttavia, impostando la temperatura a uno, si riducono queste variazioni, avvicinando i risultati a una produzione più deterministica e prevedibile. Per non parlare di un controllo rigoroso e una definizione formale del comportamento del software che ingloba il LLM, per evitare i rischi di interpretazioni erronee, arbitrarie o casuali. L’idea portata avanti da centinaia di progetti di disporre di un LLM come agente autonomo che orchestri intere applicazioni è affascinante, ma la realtà richiede che tali modelli debbano invece integrati all’interno di sistemi più ampi, opportunamente riconosciuti come componenti probabilistici e controllati da principi rigorosi e capaci di garantire integrità e sicurezza.
Conclusioni
Le AI generative continuano a sorprendere con le loro proprietà emergenti nella creazione di contenuti e nella somiglianza di ragionamento che esibiscono. Il dibattito tra l’IA “soft” (sistemi che imitano soltanto l’intelligenza) e l’IA “hard” (sistemi che possiedono realmente un’intelligenza simile a quella umana) si sta facendo sempre più sfumato con le capacità degli LLM. Questi modelli manifestano tratti simili alla “sindrome del savant”, dove abilità eccezionali coesistono con certe importanti limitazioni. L’intelligenza è profondamente intrecciata con la memoria, il linguaggio e l’esperienza, ambiti in cui gli LLM eccellono. La loro capacità di memorizzare vasti dataset e di utilizzare queste informazioni per generare risposte rende sempre più difficile distinguere tra un’intelligenza artificiale avanzata e le funzioni cognitive umane, ampliando i confini di ciò che consideriamo autentica “intelligenza”.