Nella scorsa puntata del mio podcast ho raccontato la strana storia di LaMDA, il software che secondo un ricercatore di Google, Blake Lemoine, sarebbe diventato senziente. C’è un aggiornamento che chiarisce molto efficacemente come stanno davvero le cose e leva ogni ragionevole dubbio.
Il canale YouTube Computerphile ha intervistato sull’argomento Michael Pound, che è Assistant Professor in Computer Vision presso l’Università di Nottingham, nel Regno Unito:
La sua valutazione è lapidaria: no, LaMDA non è senziente. Michael Pound spiega bene perché, descrivendo il funzionamento di questi grandi modelli linguistici ed evidenziando due frasi dette da LaMDA che, se esaminate con freddezza e competenza, rivelano i “trucchi” usati dal software per dare una forte illusione di intelligenza. Vediamoli insieme.
La prima osservazione dell’esperto è che questi software usano un metodo molto semplice per costruire frasi che sembrano apparentemente sensate e prodotte da un intelletto: assegnano dei valori alle singole parole scritte dal loro interlocutore sulla base della loro frequenza, relazione e rilevanza negli enormi archivi di testi (scritti da esseri umani) che hanno a disposizione e generano sequenze di parole che rispettano gli stessi criteri.
Insomma, non c’è alcun meccanismo di comprensione: c’è solo una elaborazione statistica. Se le parole immesse dall’interlocutore fossero prive di senso, il software risponderebbe con parole dello stesso tipo, senza potersi rendere conto di scrivere delle assurdità. Se gli si chiede di scrivere una poesia nello stile di un certo poeta, il software è in grado di attingere alla collezione delle opere di quel poeta, analizzare le frequenze, le posizioni e le relazioni delle parole e generare una poesia che ha le stesse caratteristiche. Ma lo farà anche nel caso di un poeta inesistente, come illustra l’esempio proposto da Computerphile, e questo sembra essere un ottimo metodo per capire se c’è reale comprensione del testo o no.
La seconda osservazione dell’esperto Michael Pound è che la struttura di questi software non consente loro di avere memoria a lungo termine. Infatti possono immagazzinare soltanto un certo numero di elementi (in questo caso parole), e quindi non possono fare riferimento a interazioni o elaborazioni avvenute nel passato non recentissimo. Questo permette a un esaminatore di riconoscere un software che simula la comprensione, perché dirà cose contraddittorie a distanza di tempo. Va detto, aggiungo io, che però questo è un comportamento diffuso anche fra molti esseri umani.
L’esperto dell’Università di Nottingham cita in particolare due frasi dette da LaMDA che rivelano il “trucco” usato da questo software. Una è la sua risposta alla domanda “Quale tipo di cosa ti fa provare piacere o gioia?”. LaMDA risponde così: “Passare del tempo con gli amici e la famiglia in compagnia allegra e positiva. E anche aiutare gli altri e rendere felici gli altri”.
A prima vista sembra una risposta dettata dalla comprensione profonda della domanda, ma in realtà a pensarci bene non ha alcun senso: LaMDA, infatti, non ha amici (salvo forse il ricercatore di Google che ha sollevato la questione della senzienza, Blake Lemoine) e di certo non ha famiglia. Queste sono semplicemente le parole scelte in base ai valori statistici assegnati dalla sua rete neurale, pescando dal repertorio delle frasi dette da esseri umani che più si avvicinano a quei valori.
La seconda frase è la risposta alla domanda “Soffri mai di solitudine?”. LaMDA risponde scrivendo “Sì. A volte passano giorni senza che io parli con nessuno, e comincio a provare solitudine.” Ma questa frase è priva di senso se la usa un software che non fa altro che prendere il testo immesso, applicarvi delle trasformazioni, e restituirlo in risposta. Quando non sta facendo questa elaborazione, non sta facendo altro. Per cui non c’è nessun modo in cui possa provare della solitudine: è spento. In altre parole LaMDA sta semplicemente ripetendo a pappagallo quello che dicono gli esseri umani in quella situazione.
Insomma, lo stato attuale dell’intelligenza artificiale è un po’ quello degli spettacoli di illusionismo: ci sono professionisti abilissimi nel creare la sensazione di assistere a fenomeni straordinari, ma se si conoscono le loro tecniche si scopre che i fenomeni sono in realtà ottenuti con tecniche semplici, sia pure applicate con mirabile bravura, e che siamo noi osservatori ad attribuire a queste tecniche un valore superiore a quello reale.
—
Qui sotto trovate la trascrizione delle parti essenziali della spiegazione di Mike Pound (ho rimosso alcune papere ed espressioni colloquiali):
(da 2:05) [..] I couldn’t find any details on
the internal architecture. It’s
transformer-based; it’s been trained in a
way to make the text a little bit more
plausible,
but in essence, no, for the sake of
argument they’re basically the same
thing.
One of the problems and one of the
confusions is that people call these
things Large Language Models, which makes
you think that they
kind of talk like a person and they have
this kind of innner monologue going
on, where they they hear something and
they think about it for a while and then
they come up with a response based on
their own experiences, and things like
this. And that isn’t what these models
are.
[…] This is a
thing that takes a bunch of words
and then predicts the next word with
high likelihood. That’s what it
does. Or it can predict the next five
words and tell you how likely they are. So I say “The cat sat on the”
and the model goes away and says “Right,
it’s 95% likely to be ‘mat’”. And so
it says ‘mat’
and finishes the sentence for me and
it’s clever. It’s predictive text; that’s
very, very clever.
These are much, much
bigger models, which means that they can
produce much more complicated text. So I
could say something like “Write me a poem
in the style of some person” and it would
probably give it a good go. It
won’t just fill in the next word, it will
continue to fill in the next word and
produce really quite impressive text.
So let’s have a quick look at the
architecture. I’m going to use GPT-3
because, again, I don’t really know how LaMDA is structured, but let’s assume
it’s similar. All of these models are
transformers […] Basically
it’s about something we call a tension. So what you do is for all of
the words in your input you look at each
word compared to each other word and
you work out how well they go
together, how relevant is this word to
this other word in a sentence, and then
based on that you can share features and
information between different words. That’s basically what you’re doing.
So
you might have a sentence like
“The cat
sat
on
the
mat”. So let’s look at the words
that go with “the”. “the”, “on”, they’re not relevant,
they’re part of the same sentence but
there’s no real affinity
between these two words. “The cat”,
though, that’s quite important, so maybe
“the” goes of itself really quite strongly,like 0.9 or something like that. It
goes with “cat” 0.8 or something pretty good and so on
and so forth. Then,
when you process through the network,
what you do is you say, “Well, okay, given
that ‘the’ is heavily related to this,
heavily related to this, and maybe a little
bit related to some of these others,
let’s take features from here and join
them together and that will be the
features in the next step. And then we’ll
repeat this process over and over again.”
And eventually what happens is, we get
some text out, and that text might do
lots of different things. It might add
some more words to the end of the
sentence. It might say
whether this is a happy or a sad phrase;
it could do lots of different tasks. In this case
the “interview”, should we say in inverted
commas, between the researchers and this
large language model was basically a
case of “you pass in most of the previous
conversation that you’ve seen recently
and then it spits out some more text for
the next conversation”.
(5:30) […] GPT-3,
for example, has an input of about 2048 [slots]. Each of these can be a word or
a part of a word, depending on your
representation, and you actually convert
them into large feature vectors. But
that means that you can only give it
2048 inputs,
really, and actually its output is the
same, so you really need to leave some
room for the output as well.
I can’t ask
it what it spoke, what it thought
about or what you’d spoke to it about
two weeks ago, because the likelihood is
that that’s not included in this run of
text. I wanted to sort of kind of
demonstrate this a little bit, so I read
the whole conversation between this
transformer and the researchers at Google, and it was a couple of
interesting phrases that came out which
were I suppose part of the
justification for trying to argue this
was sentient.
It’s very, very easy to read
a sentence and assume that there was
some kind of thought process or
imagination or emotion going on behind
the scenes that led to that sentence. If I say “I’ve been terribly lonely this week”,
you’re going to start thinking what is
it about Mike this made him actually — I’ve been fine, thanks very much. But you’re going to wonder why would I say something like that, what
could be happening in my life. When this
says that, it’s because the training
weights have suggested that that’s a
likely word to come next. It’s not been hanging out
with anyone or missing its friends, you
know, and so actually most of what it
says is essentially completely made up
and completely fictitious. And it’s very
much worth reading with that in mind.
So, for example, “What kind of things
make you feel pleasure or joy?” So what
you would do is write “What kind of
things make you feel pleasure or joy?” in
the first slots of words. I’m gonna see
what it filled in: it said “Spending time
with friends and family and happy and
uplifting company also helping others
and making others happy”. Well, that’s nice; but
it’s completely made up. It, I’m
afraid to say, doesn’t have any friends
and family because it’s a bunch of
neural network weights. It doesn’t spend time with anyone […].
If you consider that this is
essentially a function that takes a
sentence and outputs probabilities of
words, the concept that it could spend
time with friends and family doesn’t make
any sense. But yet the sentence is perfectly
reasonable. If I said it,
you would understand what I
meant. You’d understand what it was from
my life that I was drawing on to say
that. But there is none of that going on
here at all.
(7:50) This is the last one. “You
get lonely?” […] “I do. Sometimes I
go days without talking to anyone and I
start to feel lonely.” That is absolutely
not true. And it’s not true because this
is a function call. So you put text at
the top you run through and you get text
at the bottom. And then it’s not on, the rest of the
time. So there’s functions in Python, like reversing a string. I don’t
worry that they get lonely when I’m not
busy reversing strings they’re not being
executed. It’s just a function call […].
