Pappagalli stocazzici (pun intended)
*Language Models Use Trigonometry to Do Addition* Subhash Kantamneni, Max Tegmark MIT 2025 https://arxiv.org/abs/2502.00873 <https://arxiv.org/abs/2502.00873?fbclid=IwZXh0bgNhZW0CMTAAAR3eeuot_BGe0CySvn...> "We first discover that numbers are represented in these LLMs as a generalized helix, which is strongly causally implicated for the tasks of addition and subtraction, and is also causally relevant for integer division, multiplication, and modular arithmetic. We then propose that LLMs compute addition by manipulating this generalized helix using the “Clock” algorithm: to solve a + b, the helices for a and b are manipulated to produce the a + b answer helix which is then read out to model logits. " Imagine teaching a computer to do math, not by giving it step-by-step rules like a calculator, but by letting it figure things out on its own. Scientists have been trying to understand how large language models (LLMs)—the AI behind tools like ChatGPT—actually "think" when solving even basic math problems. In this study, researchers uncovered something fascinating: LLMs seem to use trigonometry to perform addition. Instead of treating numbers as simple values, these AI models represent them as points on a twisted spiral—like a helix. When the model needs to add two numbers, it doesn’t just line them up and sum them. Instead, it rotates and shifts these spiral representations using what the researchers call the "Clock" algorithm. Essentially, the AI aligns the spirals for two numbers in a way that lands it on the correct result. By tracking how different parts of the AI process these helical number patterns—from individual neurons to larger structures called attention heads—scientists confirmed that this method is not just a coincidence but a fundamental part of how the model handles math. This discovery provides the first detailed glimpse into how AI "sees" numbers and could help us design smarter, more reliable models in the future. ___ via Cecile Tamura: https://www.facebook.com/cecile.tamura/posts/pfbid0U7FwUxbXoB5CtPV3BgC7WoLcp...
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).
Scusate, On Thu, 13 Feb 2025 18:07:10 +0100 Giacomo Tesio wrote:
Dunque ci troviamo con 100 token diversi (da "0" a "99") corrispondenti a 100 punti diversi collocati più o meno lungo un ellisse.
naturalmente intendevo un'elica (helix), non un ellisse (ellipse). L'articolo comunque lo spiega chiaramente nei paragrafi 4.1 e 4.2 e in questa figura https://arxiv.org/html/2502.00873v1/x1.png Scusate per il refuso. Devo decisamente dormire di più. :-) Giacomo
participants (2)
-
Fabio Alemagna -
Giacomo Tesio