L’intelligenza è un concetto a cui non siamo ancora stati in grado di dare una definizione precisa. In modo generico, per intelligenza si intende la capacità di improvvisare: dato un problema che non abbiamo mai risolto prima, agire con intelligenza significa fare un passo verso la soluzione solo sulla base dei dati che possediamo in quel momento. Alla luce di questo, quindi, cos’è l’intelligenza artificiale? Anche in questo caso non c’è una unica definizione. Generalmente con intelligenza artificiale ci riferiamo agli strumenti che svolgono compiti spiccatamente umani e che sono sempre stati difficili da affrontare per un computer. Ad esempio, interpretare il linguaggio o generare frasi di senso compiuto. Per produrre questi strumenti ci sono voluti tentativi, fallimenti e avanzamenti in tanti campi della tecnologia.
Inizialmente abbiamo provato a trattare un computer come un bambino a scuola, insegnandogli le regole. La macchina aveva regole sintattiche da utilizzare per scomporre una frase nei verbi, sostantivi, aggettivi, specificando le desinenze, i generi, i tempi, in modo che analizzasse il testo ed estraesse un significato. Questi sistemi codificavano la conoscenza attuale e permettevano al computer di generare nuova conoscenza, ad esempio, scrivendo del nuovo testo. I risultati non furono troppo positivi perché il linguaggio è complesso, varia di continuo ed è difficile da catturare in regole formali. Di conseguenza era più il tempo che gli umani passavano a costruire questi cosiddetti “sistemi esperti” che il tempo che si guadagnava a usarli. Una citazione famosa attribuita a Frederick Jelinek (il direttore del laboratorio di riconoscimento del linguaggio dell’IBM negli anni 80), racchiude questa frustrazione: «Tutte le volte che licenzio un linguista la performance del nostro sistema migliora».
Abbiamo allora adottato una strategia diversa. Partendo da grandi quantità di dati abbiamo cercato delle correlazioni statistiche tra le parole identificando i costrutti più comuni (e quindi più probabilmente corretti) e distinguendoli da quelli meno comuni (e quindi più probabilmente sbagliati). Le regole non devono essere descritte e preparate da umani, ma emergono spontaneamente dai dati stessi. Quando oggi parliamo di intelligenza artificiale ci riferiamo quasi sempre a questo approccio, basato sulle cosiddette reti neurali e sul machine learning.
Prendiamo un semplice esempio, il correttore ortografico, e diamogli come compito la correzione degli accoppiamenti tra articolo e genere in un testo. Potremmo usare le regole della grammatica e specificare che tra gli articoli determinativi e indeterminativi ce ne sono alcuni che vengono usati con nomi maschili e altri con nomi femminili. A quel punto avremmo bisogno di una regola che ci fa capire se il nome è maschile o femminile e controllare che gli articoli siano correttamente accoppiati al nome. In Italiano, un nome con desinenza in -a è quasi sempre femminile, mentre uno con desinenza in -o è quasi sempre maschile. Il nostro correttore di testo quindi segnalerebbe come errori tutte le frasi in cui “il, lo, un, uno” viene seguito da una parola che termina con “-a”. Ovviamente, sbaglierebbe per tutte le eccezioni alla regola, come “il dramma”. Avremmo quindi bisogno di regole speciali per gestire tutte le eccezioni, che, oltre ad essere tante, devono sempre essere aggiornate al passare del tempo (la lingua cambia) e sarebbero specifiche per la lingua italiana.
Partendo invece dai dati, la macchina analizza tanti testi in italiano e ne estrae informazioni statistiche. Tutte le volte che appare “il, lo, un, uno” controlla la parola successiva, e osserva che statisticamente alcuni nomi appaiono spesso dopo uno di questi articoli, e mai dopo “la, una”. Non sa se sono nomi femminili o maschili, ma avendo abbastanza testi da analizzare il correttore troverà le associazioni articolo-nome sbagliate meglio che con le regole formali fatte da umani. Certo, ci saranno coppie articolo-nome molto rare su cui abbiamo poche o zero informazioni e in quel caso la macchina può sbagliare, ma il grande vantaggio di questo approccio è che non c’è bisogno di esperienza umana e che il suo addestramento può essere protratto per sempre, aggiornandosi al cambiamento della lingua.
Da qui a generare linguaggio, il passo sembra molto lungo, ma in realtà l’approccio è simile. ChatGPT è stato addestrato analizzando enormi quantità di testi pubblici trovati on-line, su cui sono state eseguite analisi statistiche molto elaborate. Ha quindi visto milioni di frasi in cui la parola “cane” appare insieme alla parola “colore”. Se io chiedo a chatGPT “Di che colore può essere un cane?” la risposta sarà data dalle parole che più di frequente sono state osservate insieme: marrone, nero, bianco, e mai da quelle parole che non sono mai state osservate: blu, viola ecc. Non ha infatti alcuna conoscenza semantica del testo, ma risponde con la sequenza di parole che più probabilmente è corretta in quel contesto. ChatGPT ha appreso le regole elaborando miliardi di testi e si è raffinato discutendo con gli umani, per questo dice spesso cose che riteniamo sensate. A volte invece dice cose insensate o inventate perché, come per il correttore, si trova a dover usare parole che erano molto rare nei testi usati per l’addestramento, e la statistica non dà delle risposte affidabili.
Attività:
Deriviamo delle regole sintattiche da questo testo appena letto. Prepariamo una tabellina con alcuni articoli singolari determinativi e indeterminativi, scritta a matita, come la seguente:
Articolo | Frequenza nomi maschili | Frequenza nomi femminili |
‘il’ | 0 | 0 |
‘lo’ | 0 | 0 |
‘un’ | 0 | 0 |
‘uno’ | 0 | 0 |
‘la’ | 0 | 0 |
‘una’ | 0 | 0 |
Scorrendo il testo di questo articolo, ogni volta che appare una parola della prima colonna controlliamo la parola successiva: se finisce con ‘-o’ aggiorniamo la colonna dei nomi maschili, aumentando di uno la frequenza, se finisce con ‘-a’ aggiorniamo la colonna dei nomi femminili. Ignoriamo tutti gli altri casi.
Alla fine dell’attività cerchiamo delle regole empiriche: se un articolo ha più del 90% delle occorrenze collegato ad un certo genere, possiamo dire che l’articolo vuole quel genere. Per quanti articoli si può stabilire una regola? Se dovessimo applicare la regola a questo testo, quante volte il correttore suggerirebbe che il testo è sbagliato? Avrebbe ragione?