Negli ultimi anni abbiamo assistito ad un crescente interesse per i sistemi LLM (Large Language Models) per la generazione di contenuti sempre più verosimili e “umanizzati”. Il loro funzionamento è stato abbastanza mitizzato dai mezzi di comunicazione generalisti, e troppo spesso si dimentica che si tratta di algoritmi che lavorano su base statistica, e che sfruttano abilmente alcuni teoremi del campo.
Sono in tanti che parlano, discutono e litigano con ChatGPT, al giorno d’oggi, e che forse potrebbero essere interessati a conoscere il meccanismo di “replica” verbale (o se preferite di generazione del testo) che li caratterizza. Al netto di certe descrizioni miracolistiche e “pop”, in effetti, ben pochi conoscono i dettagli del funzionamento degli LLM, se non per sommi capi, e questo naturalmente non aiuta a comprenderne l’effettività, l’efficacia e i limiti. Limiti che sono presenti, ovviamente, perchè non si tratta delle tecnologie “onnipotenti” di cui parlano certe cronache forzosamente catastrofiste. I risultati sulla generazione condizionata di linguaggio sono impressionanti almeno dal 2020, e hanno finito per essere chiamate in causa in numerosi ambiti, dalla medicina alle scienze sociali.
Transformers!
Le IA generative sono in grado di produrre testi (più o meno originali) sulla base di un suggerimento fornito in ingresso dall’utente. Ovviamente possono auto-alimentarsi da ciò che hanno prodotto, anche se generalmente una base la fornisce l’operatore al fine di far loro sviluppare contenuti sempre più pertinenti. D’altro canto, almeno nelle prime versioni, le IA generative (prenderemo il caso di HuggingFace come esempio) si basano sulla tecnologia dei trasformatori, o transformers (si preferisce lasciare in italiano la nomenclatura dato che trasformatori ha un altro significato nell’ambito elettrico).
Ricerca greedy
Possiamo immaginare che le stringhe di testo siano acquisite in un corpus e vengano suddivise a diversi gradi di granularità: ad esempio lettere, parole, frasi e così via. A livello base (cosiddetta ricerca greedy o golosa) l’algoritmo di IA generativa lavora su un albero, una struttura dati in cui è possibile costruire vari “discorsi” seguendo un percorso, come se ogni ramo fosse un bivio. La scelta avviene di base su un criterio di probabilità, per cui verrà prodotto sempre il “discorso” composto dal percorso con maggiore probabilità. Questo algoritmo ovviamente non fornisce grande varietà di frasi, e tende a ripetere periodicamente le stesse generazioni per ogni corpus o dizionario scelto.
Se parto da
Mi piace passeggiare con il mio simpatico cane.
la IA sarà in grado di generare una sorta di “flusso di coscienza” per associazione di idee:
Mi piace passeggiare con il mio adorabile cane, ma non sono sicuro se potrò mai camminare con il mio cane. Non sono sicuro che potrò mai camminare con il mio cane. Non sono sicuro
È una base comune agli algoritmi pre-IA che venivato usati per popolare in modo cheap i testi dei siti web anni novanta: le cosiddette spintax, un formato di testo utilizzato per la generazione di contenuti variabili, a volte impiegato in ambiti come il SEO (Search Engine Optimization) e il content marketing per creare versioni leggermente diversificate di un testo. Si definiscono dei pattern del tipo:
{Ciao|Salve|Buongiorno}, {come stai?|come va?|tutto bene?}
e da qui si seleziona, sempre in modo probabilistico, una delle opzioni separate dal simbolo pipe |, ottenendo:
- Ciao, come va?
- Ciao, tutto bene?
- Buongiorno, come stai?
È chiaro che questi sono tutti algoritmi probabilistici che già conferiscono di per sé un minimo di credibilità al testo che viene generato. Del resto già negli anni 70 l’informatico Weizenbaum aveva creato un Chatbot in grado di emulare uno psicoterapeuta rogersiano, in grado di dialogare con l’utente semplicemente rielaborando in modo prefissato le sue risposte, o per meglio dire realizzarne una credibile parodia della stessa (non dovrebbe servire ribadirlo, ma è bene ricordare che la complessa pratica della psicoterapia molto difficilmente potrà essere soppiantata da un algoritmo statistico).
Ecco un test fatto da ChatGPT che emula ELIZA.
Algoritmo Beam Search
Tornando alla nostra intelligenza artificiale abbiamo visto che le tecniche golose sono veloci da realizzare ma non sono molto efficienti, perché tendono a realizzare dei testi poco fantasiosi e ripetitivi. Per ovviare a questo fatto viene introdotta la Beam search, un algoritmo ben noto in letteratura che viene utilizzato – ad esempio – da alcuni traduttori automatici online. In questo caso si assume che l’albero debba essere esplorato e che debbano essere scelti i tragitti migliori: per fare questo si stabilisce quale debba essere l’ampiezza di ricerca e si va ad esplorare la parte di albero in cui è più plausibile che si trovino le frasi migliori. Naturalmente questo non dà alcuna garanzia del fatto che venga effettivamente scelta la frase migliore e che la stessa sia generata in output.
Rimanendo sull’esempio del cane, il risultato non sarà troppo diverso dal precedente:
Mi piace passeggiare con il mio adorabile cane, ma non sono sicuro se potrò mai camminare di nuovo con lui. Non sono sicuro che potrò mai più camminare con lui. Non sono sicuro
N-grammi
Se si introduce il concetto di N gramma – ovvero una sequenza di parole dotata di lunghezza predefinita N – è possibile impostare gli algoritmi di generazione in modo tale che non ripetono più di un certo numero di volte la stessa frase. Motivo per cui possiamo fare in modo che la frase precedente diventi
Mi piace passeggiare con il mio adorabile cane, ma non sono sicura se potrò mai camminare di nuovo con lui. Ci sto pensando da un po' ormai, e penso che sia giunto il momento di farlo
Sicuramente è un miglioramento considerevole, perché è un po’ quello che ci insegnano anche a scuola quando ci invitano a non ripetere in un discorso troppe volte la stessa cosa, e si tratta anche di una strategia indiretta per distribuire meglio gli elementi sintattici all’interno della frase.
Come funziona GPT-2
Ma non è ancora abbastanza, perché il nostro testo risulta poco naturale o, come spesso si sente dire, si capisce che è generato da una IA (questa affermazione dovrebbe in teoria mentire l’ipotesi di Turing secondo cui – a determinate condizioni – non è possibile distinguere con certezza un testo scritto dalla macchina da uno scritto da un essere umano, e in realtà si tratta di una mistificazione che spiegherò a stretto giro). Si possono fare ulteriori miglioramenti nell’algoritmo (che è open source, in questo caso, e lo trovate qui) introducendo ulteriori sotto campionamenti casuali per rendere varie le generazioni, tra cui vale la pena citare l’algoritmo Top-K, in cui le K parole successive più probabili vengono escluse e la probabilità viene ri-distribuita solo tra quelle K parole rimanenti. GPT2 ha adottato questo schema di campionamento, ed è stato uno dei motivi del suo successo nella generazione di storie. Aldilà dei dettagli tecnici che fanno funzionare l’algoritmo, è interessante che la produzione di questi testi ponga il problema del plagio, della credibilità oltre che naturalmente della potenziale violazione di diritto d’autore.
Il corpus di questi software dovrebbero essere addestrati su dei dizionari, in effetti, ma farlo in questi termini toglierebbe loro moltissima potenza espressiva: del resto ci vogliamo imparare bene le lingue è meglio leggere dei libri scritti bene che leggere tutte le pagine del dizionario di quella lingua. e qui esce fuori il paradosso di cui sopra: il Test di Turing” già nel 1950 avrebbe dovuto valutare se una macchina può dimostrare intelligenza equivalente a quella umana. L’idea di base è quella di avere un umano (giudice) che interagisce con una macchina e un altro essere umano senza sapere chi è chi, e deve determinare quale dei due sia l’umano e quale la macchina. Apparentemente non c’è un modo sicuro per farlo, a meno di ricorrere a informazioni contestuali e uscire dalla camera chiusa in cui immaginava di mettersi lo scienziato. Del resto l’esperienza di ogni giorno ci conferma che se iniziamo a parlare con una persona senza sapere che è un Chatbot è molto probabile che non riusciremo ad assegnare una probabilità più marcata al fatto che sia un chatt o che sia una persona. Se invece ci troviamo su un’applicazione di cui non ci fidiamo oppure nell’assistenza tecnica di primo livello è chiaro che siamo propensi a pensare ad un Chatbot, ma si tratta comunque di ipotesi che devono essere verificate e che – per inciso – ancora una volta afferiscono al mondo della statistica.
Nel blog del software LLM che stiamo usando come riferimento – non tutti funzionano così, ovviamente, ma come caso studio sembrava adeguato – viene riportata questa evocativa immagine che rappresenta la differenza, considerando lo stato dell’arte è preso in considerazione fino a qui, tra un testo scritto con un algoritmo probabilistico come la beam search e uno scritto da un essere umano. Il primo è in giallo il secondo è blu, e questo dovrebbe rendere l’idea visivamente della differenza in termini probabilistico-matematici di un testo scritto in modo naturale rispetto a uno generato da un range di probabilità molto più stretto, ovvero con più ripetizioni.
Non sono mai sicuro di essermi spiegato adeguatamente, ma ho ribadito più volte che l’intelligenza artificiale sono algoritmi probabilistici e e come tali andrebbero trattati: umanizzarli o attribuire loro qualità che non hanno (e non possono avere, in molti casi) pone la questione dell’etica delle IA come un aspetto prettamente astratto. Cosa che non è, a mio avviso, perchè l’astrazione non deve mai prescindere dalla tecnica: un conto infatti è stabilire una legge o una regolamentazione che riguarda un software che funziona come un cervello umano, altro conto è ragionare (o accusare di plagio o altre nefandezze) una tecnologia che si limita a replicare alla meglio, con piccole variazioni, testi già scritti da altri. Nulla di diverso da ciò che un giornalista con poca esperienza o pochissime competenze farebbe per scrivere uno dei suoi primi articoli, imparando a scrivere meglio con l’esperienza.
Ingegnere per passione, consulente per necessità; ho creato Lipercubo.it. – Mastodon