Ciao Fabio,

grazie per la segnalazione.

On Tue, 4 Feb 2025 13:56:33 +0100 Fabio Alemagna wrote:

> *Language Models Use Trigonometry to Do Addition*
> Subhash Kantamneni, Max Tegmark
> MIT 2025
> https://arxiv.org/abs/2502.00873

l'articolo è effettivamente ma interessante, ma... non sembra che
Cecile Tamura, di cui hai copiato le parole su Facebook, abbia
compreso ciò che i ricercatori hanno scritto.

Sperando di far cosa gradita ai non informatici in lista, provo a
spiegare in parole semplici l'esperimento e le osservazioni.

L'esperimento rientra a buon titolo nell'ambito della ricerca
atta a spiegare il processo di calcolo dell'output dei software
programmati statisticamente (impropriamente detto "Explainable AI")


Dichiaratamente, i ricercatori collocano lo studio "in the spirit of
mechanistic interpretability, which attempts to reverse engineer the
functionality of ma- chine learning models" [1].

Si _presuppone_ cioè che la "rete neurale" esegua un processo ignoto ma
completamente meccanico e si cerca di identificarlo, permettendo così
una spiegazione comprensibile non solo del come, ma del perché sia
stato ottenuto un determinato output a fronte di un certo input.

In altri termini, si _presuppone_ che la "rete neurale" non sia in
alcun modo intelligente, ma riproduca meccanicamente una funzione
(multidimensionale) determinata durante la sua programmazione statistica
(impropriamente detta "training" o "learning") di cui si cerca di
studiare una zona (piuttosto limitata e ristretta).



I ricercatori hanno infatti provato a eseguire 3 LLM con input del tipo
"0 + 0 = ", "0 + 1 = "... "99 + 99 =". Se volessimo usare il linguaggio
antropomorfico che caratterizza il settore, diremmo che hanno "chiesto
agli LLM" di sommare tutte le possibili coppie di numeri da 0 a 99, una
coppia per prompt.

Si tratta di dieci mila possibili addizioni e

- GPT-J achieves 80.5% accuracy, 
- Pythia-6.9B achieves 77.2% accuracy
- Llama3.1-8B achieves 98.0% accuracy

Se credessimo che questi LLM "pensino" ("think"), "apprendano" ("learn")
o baggianate simili, dovremmo osservare che, di converso, Llama sbaglia
2 addizioni su 100, Pythia ne sbaglia quasi 23 e GPT-J quasi 20.

Insomma, non proprio studenti brillanti. :-D


Ma perché questi "errori"? [2]


I ricercatori lo spiegano così: questi LLM rappresentano ciascun
"numero" come un token a sé stante (invece, ad esempio, di distinguere
unità e decine come farebbe un bambino in prima elementare) e i vettori
dei numeri da 0 a 99 rappresentano punti che possono essere più o meno 
proiettati su un ellisse.

Dunque ci troviamo con 100 token diversi (da "0" a "99") corrispondenti
a 100 punti diversi collocati più o meno lungo un ellisse.

Sulla base di questo, i ricercatori _ipotizzano_ che il procedimento si
basi su identità trigonometriche, che però non sono riusciti ad
individuare.

Si giustificano dicendo, sostanzialmente, che è difficile.


Ma una spiegazione più semplice è che durante il processo di
programmazione statistica i vettori corrispondenti ai vari token
siano stati collocati, tutti insieme, in modo da minimizzare la
distanza fra l'output prodotto dal LLM a fronte di ciascuna sequenza
di token e il risultato corretto.

In altri termini, scommetterei un caffé che, la collocazione
"pseudo-ellittica" funziona è ottimale per memorizzare le sequenze

- "0" "+" "0" "=" "0"
- "0" "+" "1" "=" "1"
- "0" "+" "2" "=" "2"
...
- "99" "+" "99" "=" "198"

In termini ancora più semplici, l'LLM sta funzionando come una
una sorta complicatissima jump table compressa (con perdita di
informazione ed errori).



Nonostante il linguaggio inadeguato, l'articolo rimane interessante
perché dimostra chiaramente (per l'ennesima volta) che gli LLM non
comprendono in alcun modo la matematica, nonostante tutti i manuali
di matematica usati per programmarli.

L'approccio utilizzato per individuare una relazione fra i vettori
associati ai diversi token numerici è sicuramente interessante, ma
non sono certo che sia applicabile estensivamente a insiemi di token
caratterizzati da relazioni più complesse dei numeri fra 0 e 99.

E il paragrafo 5.5 [3], sui problemi e i limiti delle conclusioni
inferite dall'esperimento mi sembrano molto oneste, seppure un po'
ingenue e fantasiose quando tirano in ballo la trigonometria, senza
alcuna dimostrazione.

Ma si sa che nell'AI il wishfull thinking va molto di moda. :-D


Temo però di dover deludere chiunque creda che l'articolo dimostri una
qualche forma di intelligenza nei LLM utilizzati: al contrario,
dimostra la totale assenza di qualsiasi comprensione della matematica
o anche solo del concetto di numero e della sua rappresentazione
in base 10.


Giacomo


[1] per un'introduzione al concetto https://arxiv.org/pdf/2404.14082

[2] ovviamente, parlare di "errori" è sbagliato in questo caso, perché
    anche quando l'output corrisponde al risultato atteso, l'LLM non
    effettua una somma aritmetica, ma calcola (in modo approssimato) il
    più frequente token successivo nel corpus utilizzato per la sua
    programmazione statistica.

[3] Alla Tamura deve infatti essere sfuggita la sezione 5.5:

    There are several aspects of LLM addition we still do not
    understand. Most notably, while we provide compelling
    evidence that key components create helix(a + b) from
    helix(a, b), we do not know the exact mechanism they use
    to do so. We hypothesize that LLMs use trigonometric
    identities like cos(a + b) = cos(a) cos(b) − sin(a) sin(b)
    to create helix(a + b). 


Reply via email to