AI generativa e non-determinismo

“I confini del mio linguaggio sono i confini del mio mondo.”
– Ludwig Wittgenstein
Sentiamo spesso dire che l’AI generativa è non deterministica perché, a parità di prompt, ci risponde ogni volta in modo diverso. Il suo non determinismo sarebbe al tempo stesso l’aspetto affascinante, perché per certi versi creativo, ma anche problematico, perché sfugge al nostro controllo in contesti dove la precisione e la prevedibilità sono necessari.
Ma è davvero non determinismo quello che si cela dietro alle elaborazioni di un LLM?
Che cos’è il non determinismo?
Per capire che cos’è il non determinismo dobbiamo far ricorso alla teoria della computazione.
Immaginate di essere in un labirinto. In un sistema deterministico, siete un esploratore solitario. Arrivate a un bivio, scegliete la destra. Se la strada è chiusa, dovete tornare indietro (il caro vecchio backtracking) e provare la sinistra.
In un sistema non deterministico, invece, voi possedete il dono dell'ubiquità. Arrivati al bivio, vi sdoppiate. Un voi va a destra, l’altro a sinistra.
Secondo Michael Sipser, autore del libro Introduction to the Theory of Computation, questo processo è un parallelismo perfetto: basta che un solo clone trovi l’uscita perché l’intera macchina abbia successo. L’elaborazione di una macchina non deterministica non viene espressa come la transizione da uno stato ad un altro, ma come la transizione da uno stato ad un insieme di stati. È una super-capacità teorica usata per risolvere problemi complessi (la famosa classe NP).
Nella teoria informatica, il non determinismo è un modello di perfezione logica. Se una soluzione esiste, la macchina non deterministica la trova perché percorre ogni ramo possibile senza mai sbagliare strada. Ma attenzione: non esiste un computer fisico puramente non deterministico.
I diversi volti del non determinismo
Prima di tornare alla nostra AI generativa, dobbiamo fare ordine tra i diversi concetti di non determinismo che il linguaggio comune tende a sovrapporre. Infatti, il termine cambia significato profondamente in base al contesto in cui ci troviamo.
Come abbiamo visto, in informatica il non determinismo è un'astrazione logica: un virtuale parallelismo perfetto che consente di trovare una soluzione ad un problema in tempi ragionevoli.
In fisica il non determinismo, o più correttamente l’indeterminismo, è quel principio per cui non è possibile conoscere simultaneamente due proprietà coniugate di una particella, come ad esempio posizione e quantità di moto.
Anche in biologia abbiamo il concetto di indeterminismo, che è però legato all’intervento del caso nell’evoluzione degli esseri viventi. Caso che sembrerebbe essere presente in altri aspetti della natura difficilmente prevedibili e quindi apparentemente non deterministici, come ad esempio il meteo. In realtà, in questi casi non si tratta di sistemi non deterministici, ma di sistemi deterministici molto complessi, come ci spiega la teoria del caos.
L'AI generativa spesso viene definita non deterministica proprio per via dell'effetto caos: piccole variazioni dell’input producono output diversi. Ma, come vedremo, la sua natura è un'altra.
AI e probabilità
Quando chiedete a un LLM di rispondere ad una domanda o di scrivere del codice, il sistema non applica un approccio non deterministico per trovare la soluzione. Semplicemente l’LLM… tira ad indovinare.
Gli LLM sono macchine probabilistiche, non sono macchine non-deterministiche. Il loro intero universo si riduce ad assegnare una percentuale di verosimiglianza al token successivo. Se scrivete "Il gatto è sul...", il modello non sta pensando allo spazio fisico; sta calcolando che:
tappeto ha l'80% di probabilità.
prato ha il 15% di probabilità.
A differenza della macchina non deterministica di Sipser, l'LLM non percorre tutti i rami logici. Ne sceglie uno in base a una distribuzione statistica. Questa è una differenza sostanziale!
Una macchina non deterministica darebbe virtualmente sempre la soluzione corretta. Essa esplorerebbe tutti i rami possibili della computazione per individuare quello corretto. Se una soluzione non è corretta, quel ramo di calcolo semplicemente muore. Non può esistere un output che non sia una soluzione valida del problema.
L'LLM segue la verosimiglianza, non la verità. Può generare una frase perfetta grammaticalmente ma falsa nei fatti perché quelle parole suonano bene insieme statisticamente. Per esempio, l'LLM potrebbe scrivervi che la capitale del Brasile è Rio de Janeiro perché nei suoi dati di addestramento Rio è associata al Brasile molto più spesso di Brasilia. Statisticamente, Rio è una risposta più probabile, anche se logicamente è falsa.
Perché è utile una AI imprecisa?
Ma se l'AI è fallibile e imprecisa, perché sta rivoluzionando il mondo? Perché sta permeando la nostra vita quotidiana?
Il software tradizionale e deterministico è come un treno che viaggia sui binari. Fa solo quello per cui è stato programmato, non prende decisioni al di fuori da quelle previste dal programmatore, non evolve autonomamente. Un software tradizionale si aspetta un input in uno specifico formato. Non sa gestire l’ambiguità e l’imprecisione. Se vuoi spostare un appuntamento da oggi a domani, lo puoi fare seguendo uno dei possibili modi prefissati dal programmatore.
Se chiedi ad un chatbot “Sposta l’appuntamento di oggi a domani”, oppure “L’appuntamento di oggi, spostalo a domani” o anche “L’apuntamento di oggi va a doomani”, esso usa la sua natura probabilistica per intuire, correttamente nella maggior parte dei casi, quello che gli viene richiesto.
Questa capacità di gestire dati non strutturati, come analizzare il sentiment di una mail, riassumere un documento, tradurre un testo non è trasferibile in semplici regole rigide. Qui la flessibilità probabilistica è l'unica via.
Navigare l’incertezza
Il non determinismo rimane, per ora, un ideale logico di massima efficienza. Quello che abbiamo tra le mani è invece uno straordinario strumento probabilistico che non si presenta come un sostituto del software tradizionale deterministico, ma come un suo potenziamento.
Come sviluppatori e tecnici, il nostro compito non è eliminare l'imprevedibilità dell'AI, ma imparare a incanalarla. Dobbiamo essere i progettisti che costruiscono binari deterministici attorno a un motore probabilistico, creando sistemi che sanno quando intuire e immaginare e quando, invece, devono essere precisi come un orologio svizzero.



