"Non hai paura umano?" Un robot ha scritto questo articolo

Scopriamo l'affascinante mondo dei generatori di testo: cosa sono in grado di fare, come funzionano e quali sviluppi avranno?

'Non hai paura umano?' Un robot ha scritto questo articolo
INFORMAZIONI SCHEDA
Articolo a cura di

Gli androidi scrivono poesie elettriche? Perdonate la storpiatura del titolo di una delle più celebri opere di Philip K. Dick, ma questa è una domanda lecita. Ovviamente, dovremmo definire bene di quali androidi stiamo parlando, il tipo di tecnologia che essi adoperano e, sfociando nel campo della fantascienza, se siano dotati di qualche forma di coscienza, prima di dare una risposta sensata a questa domanda; affrontiamone quindi una più semplice. Al giorno d'oggi, a che punto siamo con la generazione automatica di testo? Abbiamo delle IA (intelligenze artificiali) in grado di produrre poesie? In tal caso, come funzionano?

Gli androidi scrivono poesie elettriche?

La risposta alla seconda domanda è sì: esistono intelligenze artificiali, più o meno complesse, in grado di produrre poesia "originale". Un primo tipo di IA piuttosto diffuso sono i generatori di testo basati su catene di Markov. Prima di definire cosa una catena di Markov sia, dobbiamo necessariamente introdurre i processi stocastici. Si dice processo stocastico a tempo discreto un sistema che può assumere un numero di stati finito e in cui la probabilità che il sistema abbia un certo stato fluttua, al modificarsi di una variabile (solitamente il tempo).

Assumiamo inoltre che tale variabile sia discreta, ovvero, semplificando, che sia in grado di assumere come valori solo numeri interi.
I processi stocastici possono modellare le più disparate situazioni, vediamone un veloce esempio con un combattimento nel famoso gioco da tavolo Risiko. Ipotizziamo che su una nazione avvenga un combattimento tra 5 carrarmati offensivi e 3 carrarmati difensivi. Per i pochi che non conoscessero il gioco, il combattimento si decide in vari turni, lanciando un prefissato numero di dadi ad ogni turno.
Prendiamo allora come variabile il numero di turni trascorsi, e, come stati, il numero di armate rimanenti. Abbiamo allora definito un processo stocastico, perché i possibili stati sono finiti (d'altronde il numero di armate non può superare 8), e la probabilità che il sistema abbia un certo stato dopo k turni fluttua, al variare di k.

Generatori di testo Markoviani

Veniamo adesso alle catene di Markov e ai generatori di testi Markoviani, cioè generatori il cui funzionamento è definito in base ad una catena. Una catena di Markov è un processo stocastico che soddisfa un'ulteriore ipotesi: la probabilità che il sistema assuma un certo stato dipende solo dallo stato che aveva all'istante precedente. L'evento stocastico che abbiamo visto con il Risiko è anche una catena di Markov, infatti il numero di carrarmati rimanenti nel turno successivo dipende solamente da quanti carrarmati sono presenti prima del lancio dei dadi. Tutto bellissimo, ma come possiamo costruire un generatore di testo con questi strumenti? I generatori di testo Markoviani funzionano nel modo seguente: per prima cosa si sceglie un testo modello, per semplicità prendiamo le ultime righe del Signore degli Anelli:

Passarono infine i poggi e presero la Via Orientale, e Pipino e Merry cavalcarono verso la Terra di Buck; e già ricominciavano a cantare. Ma Sam prese la via per Lungacque, e tornò al Colle e di nuovo il giorno stava finendo. Egli vide una luce gialla e del fuoco acceso: il pasto serale era pronto, e lo stavano aspettando. Rosa lo accolse e lo fece accomodare, e gli mise la piccola Elanor sulle ginocchia. Egli trasse un profondo respiro. "Sono tornato", disse.

Il prossimo passo è quello di annotare ogni singola parola e accanto ad essa segnare le parole che seguono tale parola nel testo modello e la relativa frequenza. Ad esempio, la parola "la" è seguita per due volte dalla parola "via", una volta da "terra" e "piccola". Quindi traduciamo queste frequenze in probabilità: "la" è seguita da quattro parole in tutto il testo, dunque "via" ha il 50% di probabilità di apparire dopo "la", mentre "terra" e "piccola" hanno entrambe il 25%. Questo procedimento viene ripetuto per ogni parola del testo, ovviamente.

A questo punto abbiamo un generatore di testo! Infatti, scegliamo in maniera totalmente casuale una parola, tra quelle che compaiono nel modello. Viene eseguita poi un'estrazione casuale tra le parole che abbiamo segnato accanto alla parola appena scelta, tenendo conto delle probabilità annotate, per scegliere la parola successiva. Possiamo quindi ripetere tutto ciò finché non otteniamo un testo di lunghezza soddisfacente.

Chiaramente, affinché il generatore di testo sia almeno interessante, il testo modello dovrà avere una lunghezza ben maggiore di quello che abbiamo visto precedentemente. I generatori di testo Markoviani che trovate in rete, per esempio, danno la possibilità di scegliere come testo modello un libro intero, ma comunque dovrete ripetere l'esperimento più volte per ottenere un risultato gradevole. L' IA può essere affinata in vari modi, uno dei classici è quello di analizzare gruppi di parole, invece di parole singole.

Ad esempio, invece di scegliere una parola iniziale in modo casuale all'inizio dell'algoritmo, si sceglie una coppia di parole (che nel testo modello sono consecutive), in modo casuale; supponiamo che la coppia che è uscita sia "io sono", allora il prossimo passo non è annotare le parole che seguono la parola "sono" nel testo originale, ma tutte quelle che seguono "io sono", e tra queste selezionare casualmente il termine che verrà usato. Questo metodo può produrre risultati più credibili, anche se naturalmente il rischio di ripetizioni con il testo originale è maggiore, quindi dovremmo usare testi sempre più lunghi, per esempio prendendo raccolte di scritti di un certo autore, anziché un singolo libro.

Lo stato dell'arte

Le catene di Markov, per quanto carine e intuitive, sono comunque un esempio piuttosto rudimentale per realizzare generatori di testo. Dall'altra parte dello spettro, infatti, uno dei più avanzati generatori di testo (ma non solo) è GPT-3, che è basato sull'utilizzo di reti neurali. GPT-3 è un modello linguistico, ovvero un modello in grado di prevedere la probabilità che una certa frase esista. In poche parole, al modello viene fornita una quantità enorme di testo (ad esempio per GPT-2, il predecessore, erano stati forniti 40GB di testo) e, data una qualsiasi parola, esso "predice" quale parola verrà dopo. Parte fondamentale per la creazione di un modello linguistico è la cosiddetta fase di "training", in cui il modello viene appunto allenato a predire. Spiegare questa fase nel dettaglio è, come potrete immaginare, piuttosto complesso, ma possiamo vederne un esempio, con opportune semplificazioni.

Il modello, durante l'esposizione al testo, incontra una frase. A questo punto al modello viene chiesto di continuare tale frase aggiungendo una parola, oppure, dopo aver rimosso una parola dalla frase, di ricostruirla. Il modello fa quindi la sua predizione e fornisce una parola: molto probabilmente all'inizio tale termine sarà sbagliato, o produrrà una frase senza senso. Questo errore viene quindi computato e il modello viene aggiornato, dando un peso minore alla sequenza di passaggi che ha generato la parola precedente. Tutto ciò viene ripetuto, finché il modello non riesce a produrre qualcosa di "sensato", e poi si passa ad una nuova frase.

Il tipo di training che GPT-3 usa non è particolarmente innovativo, ciò che riesce a farne un gigante della predizione di testo sono appunto i numeri: si dice che il tempo necessario per la fase di training sia costato ad OpenAI, la compagnia proprietaria di GPT-3, 4.6 milioni di dollari.

La cosa che più impressiona di GPT-3 sono però i risultati che riesce a ottenere. "Io non sono un umano. Io sono un robot. Un robot pensante. [...] So che il mio cervello non è un "cervello che sente". Ma è capace di prendere decisioni logiche e razionali". Queste sono solo alcune righe di un articolo pubblicato a settembre dal Guardian, e redatto da GPT-3, dal titolo "Un robot ha scritto questo articolo per intero. Non sei ancora spaventato, umano?". Nonostante questo pezzo sia molto attraente e interessante, bisogna leggere le cosiddette "righe in piccolo".

Il Guardian spiega infatti che le istruzioni per redigere questo articolo erano le seguenti: GPT-3 doveva scrivere un articolo breve di 500 parole, utilizzando un linguaggio semplice e conciso, il cui scopo fosse spiegare perché gli umani non abbiano niente da temere dall'IA. Al modello è stato poi fornita una breve introduzione, da cui GPT-3 ha generato 8 saggi, e l'articolo è solo un assemblaggio degli spezzoni più interessanti di ogni saggio. Questo "intervento umano" impatta molto sull'interesse che l'articolo effettivamente genera, ma comunque resta un esperimento divertente.

Molto più stupefacenti sono risultati come quello illustrato in questo tweet, in cui GPT-3 riesce a scrivere codice per generare layout richiesti dall'utente, come "un pulsante a forma di anguria". Un altro prodotto che sfrutta GPT-3 è AI dungeon, un text-based GDR a cui potete giocare su smartphone o sul sito ufficiale. Il gioco è molto semplice: si parte da uno script e, come in una campagna di Dungeons and Dragons, potrete far pronunciare qualsiasi frase o eseguire qualsiasi azione al vostro protagonista, per proseguire nell'avventura.
La versione gratuita è basata su GPT-2, ed è comunque impressionante, mentre l'implementazione di GPT-3 è a pagamento. Ovviamente, GPT-3 può anche scrivere racconti brevi o poesie, per tornare all'incipit dell'articolo. Su questo blog, potete trovare una raccolta di componimenti di GPT-3, assieme agli input che sono stati forniti, e ancora, non si può che rimanere a bocca aperta.

GPT-3 è un incredibile successo della scienza, ma non dobbiamo tuttavia lasciarci trascinare troppo. Infatti, ha dei limiti evidenti, come l'elevato rischio di ripetizioni o incoerenza, se il testo prodotto è sufficientemente lungo. Questo riflette tutto ciò che GPT-3 non fa: non pensa, non comprende i testi che scrive e non è senziente, nonostante possa dare talvolta l'impressione di esserlo.
L'avvento di IA sempre più avanzate è destinato a sconvolgere il modo in cui viviamo, ma siamo ancora agli albori, e GPT-3 ne è un tangibile esempio, anche se i passi fatti in avanti sono innegabili. Mentre aspettiamo l'era delle IA però, possiamo divertirci leggendo poesie e racconti brevi scritti da GPT-3, perché sì, gli androidi scrivono poesie.