nexa
By thread
nexa@server-nexa.polito.it
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
September 2024
- 45 participants
- 214 messages
Re: [nexa] AI Training is Copyright Infringement
by abregni
Salve.
Mi considero un (quasi) esperto di apprendimento umano (di gruppo, che
accelera quello individuale).
Mi permetto di darvi alcune categorie, che potrebbero forse aiutare.
Apprendimento di gruppo:
- Si lavora in gruppo senza particolare apprendimento, quando ciascuno
porta il suo contributo (gruppo di lavoro / falso team);
- Si lavora apprendendo gli unici dagli altri, quando esiste un
obbiettivo di performance condiviso, individuale, di gruppo, e reciproco
(vero team);
- Si lavora eliminando principalmente dal proprio pensiero (vecchi)
errori e "superstizioni" (apprendimento per sottrazione / eliminazione),
quando esiste -- oltre a quanto sopra -- anche un obbiettivo personale
di favorire la crescita e il successo di altri (team eccezionale).
Le categorie di apprendimento individuale sono diverse:
1.
Apprendimento "additivo" (come a scuola): si aggiungono nuove nozioni in
uno schema mentale in evoluzione / crescita, ma sostanzialmente stabile;
2.
Cambio di paradigma (alla Kuhn): quando nuove informazioni mettono in
crisi il proprio schema mentale (o quello scientifico corrente), allora
è lo schema mentale a variare (relatività, quantistica e complessità --
le tre principali teorie del XX secolo -- sono esempi di come la
mentalità scientifica è dovuta cambiare, anche in modo "massiccio");
3.
Mente "plastica": quando si è capito che il vero apprendimento è il
secondo, ...allora lo si favorisce rendendo "sistematico" il cambio di
paradigma, aprendosi a modificare il proprio schema mentale non come
processo traumatico o rivoluzionario, ma come fatto quasi "normale".
"Apprendimento" informatico:
personalmente ritengo che il vero apprendimento, che -- sempre ritengo
-- è la caratteristica principale della vera intelligenza, richiederebbe
per quanto sopra, e in primis, una base dati "plastica", ...che è cosa a
cui gli informatici ritengo non abbiano ancora pensato.
Considerazione a latere:
una rete neurale, che "apprende" a riconoscere gatti o semafori in una
foto, si "cristallizza" alla fine in un algoritmo altamente
specializzato, che è proprio l'opposto dei concetti di cui sopra.
Non mi pronuncio sulla capacità di "apprendere" della AI "statistica",
ma mi sembra molto più simile a un ragazzino delle elementari
estremamente dotato, che aggiunge ed aggrega (e l'aggregare non è cosa
banale...), che non a uno scienziato con animo "esplorativo".
Finisco con una citazione:
“A human being should be able to change a diaper, plan an invasion,
butcher a hog, conn a ship, design a building, write a sonnet, balance
accounts, build a wall, set a bone, comfort the dying, take orders, give
orders, cooperate, act alone, solve equations, analyze a new problem,
pitch manure, program a computer, cook a tasty meal, fight efficiently,
die gallantly. Specialization is for insects.”
― Robert A. Heinlein
Sept. 12, 2024
Re: [nexa] AI Training is Copyright Infringement
by alessandro marzocchi
Se la mia insistenza sul tema annoia o disturba, per favore avvisatemi e
continuo in privato con chi è disponibile.
***
rif: vol 185, Issue 42 - Date: Thu, 12 Sep 2024 00:06:38 +0000 - From:
Giacomo Tesio <giacomo(a)tesio.it>
***
Grazie Giacomo ma non sono convinto. In calce si trova il testo integrale
del tuo ultimo intervento, ne estrapolo alcuni passi.
---
> GT: Nessuna macchina lo saprà mai fare.
> AM: Su questo non ho dubbi ma equivale a dire che tu ed io non saremo mai
uguali.
Chiamerei "human learning" il processo che hai descritto
Chiameresti "intelligente" il comportamento acquisito.
---
> GT: Nessun altro prende la tua testa, la apre e scrive nel tuo cervello
una serie di dati a caso,
misura quanto il tuo comportamento si discosta da quanto desidera e
modifica un pochino
quei dati, poi misura quanto il tuo comportamento si discosta da quanto
desidera e modifica di nuovo un pochino
quei dati, e ripete il procedimento milioni o
miliardi di volte fin quando il tuo comportamento non si discosta più di un
ε trascurabile
da quanto desidera.
> AM: Il comportamento del bambino che comincia a parlare è analogo, anche
se non identico ai significati letterali delle tue parole. Si veda "mamma",
da mmm fino alla corrispondenza (quasi) totale delle emissioni vocali di
bambino e mamma. (Quasi) perchè è probabile che le impronte vocali
resteranno differenti.
---
> GT: La scelta di termini più appropriati è oggetto di un altro thread,
puoi star certo che
non c'è alcuna intelligenza dentro un LLM.
Si tratta di un software progettato per _sembrare_ intelligente, ma solo
a chi non sa come funziona.
> AM: Intelligenza: prima definiamola nel modo univoco il più possibile,
quest'ultima precisazione è una parte della prima affermazione: nessuno
sarà mai uguale a nessun altro, si vedano gemelli monovulari.
Sul "sembrare" intelligenti ricordo un film di Hal Ashby, fra gli ultimi di
Peter Sellers: Oltre il giardino, tutto un gioco fra non essere / essere
percepito, sembrare / forse essere? Da vedere, un paio d'ore godibilisseme.
---
> GT: La natura del nostro apprendimento non è statistica: posso spiegarti
come contare
fino a 31 sulle dita di una mano senza fartelo vedere nemmeno una volta.
... ... ...
> AM: Come "insegni" al tuo allievo "dito", "sollevare", "combinazione"
...?
Come "insegni" al tuo allievo 0, 1, 2 eccetera?
Come gli "insegni" potenza?
---
> GT: non solo non ti fornisco nemmeno un esempio (niente statistica), ma
non ti
sto insegnando come fare, ti ho solo detto come fare ad imparare.
> AM: Sicuro? Vedi sopra, resta fermo il tuo diritto ad affermare che (io)
sbaglio ma sono convinto che le cose non avvengono come (tu) le hai
descritte, questo penso per il cd mondo vivente, per le macchine tu e tutti
gli altri siete i miei maestri e per questa opera continuo a ringraziarvi.
... se posso, invito a leggere Chalmers (Could a Large Language Model Be
Conscious?
https://www.bostonreview.net/articles/could-a-large-language-model-be-consc…)
---
Sintesi telegrafica: quanto, come, dove noi umani siamo diversi dalle
macchine? (io) credo molto meno di quanto Giacomo ed altri affermano,
propongo di esaminare la questione " da fuori" non dal punto di vista
umano, ritengo che l'uomo misura tutte le cose ma NON E' la misura, la dico
brutta che non piace neppure a me: siamo oggetto, non soggetto.
Chiudo con una domanda: sarebbe possibile, ed anche facile, riordinare
alcuni temi con tutti gl'interventi evitando ripetizioni e con una
presentazione grafica ordinata, tale considerata a giudizio insindacabile
dell'uomo? Come scrive Giacomo, ed umilmente concordo, non siamo uguali
alle macchine :-). Ad esempio, trovo questa discussione molto interessante,
spero di riuscire a fare il riordino di cui sopra ma ... se lo facesse una
macchina ...
Infinitamente grazie e cordialità.
Duccio (Alessandro Marzocchi)
Message: 2
> Date: Thu, 12 Sep 2024 00:06:38 +0000
> From: Giacomo Tesio <giacomo(a)tesio.it>
> To: nexa(a)server-nexa.polito.it
> Subject: Re: [nexa] AI Training is Copyright Infringement
> Message-ID: <10D4C32B-0FBA-4F95-B96D-DB44AEE2AD27(a)tesio.it>
> Content-Type: text/plain; charset=utf-8
>
> Caro Duccio,
> Quando tu impari, tu (soggetto) impari (verbo).
>
> Nessun altro prende la tua testa, la apre e scrive nel tuo cervello una
> serie di dati a caso,
> misura quanto il tuo comportamento si discosta da quanto desidera e
> modifica un pochino
> quei dati, poi misura quanto il tuo comportamento si discosta da quanto
> desidera e modifica di nuovo un pochino
> quei dati, e ripete il procedimento milioni o
> miliardi di volte fin quando il tuo comportamento non si discosta più di
> un ε trascurabile
> da quanto desidera.
>
> In un tale ipotetico processo, tu saresti un oggetto che subisce l'azione,
> non un soggetto che la compie.
>
> Chiameresti il processo che ho descritto "human learning"?
> Chiameresti "intelligente" il comportamento acquisito in questo modo?
> (ovvero tale che non si discosti statisticamente più ε da quello
> prestabilito)
>
> Se no, non hai ragione di chiamare "machine learning" il processo di
> sviluppo di un LLM
> come non hai ragione di chiamare "intelligenza artificiale" il risultato
> di tale processo.
>
> La scelta di termini più appropriati è oggetto di un altro thread, puoi
> star certo che
> non c'è alcuna intelligenza dentro un LLM.
>
> Si tratta di un software progettato per _sembrare_ intelligente, ma solo
> a chi non sa come funziona.
>
> La natura del nostro apprendimento non è statistica: posso spiegarti come
> contare
> fino a 31 sulle dita di una mano senza fartelo vedere nemmeno una volta.
>
> Il tuo pugno chiuso significa zero.
> Ad ogni dito associamo una potenza di due:
> - pollice = 1
> - indice = 2
> - medio = 4
> - anulare = 8
> - mignolo = 16
>
> Solleva una qualsiasi combinazione di dita e somma i valori associati a
> ciascun dito:
> otterrai un numero fra 0 e 31.
>
> Ora, senza che io ti dica altro o ti mostri alcun esempio, puoi imparare
> da solo come
> mettere le varie combinazioni in ordine dal valore complessivo più
> piccolo, al più grande.
>
> Nota bene: non solo non ti fornisco nemmeno un esempio (niente
> statistica), ma non ti
> sto insegnando come fare, ti ho solo detto come fare ad imparare.
>
> Tu (soggetto) impari (verbo).
> Se vuoi.
>
> Nessuno ti butta conoscenza dentro il cervello.
>
> Nessuna macchina lo saprà mai fare.
>
> Giacomo
>
>
> Il 11 Settembre 2024 22:50:58 UTC, alessandro marzocchi ha scritto:
> > Sun, 08 Sep 2024 23:25:19 +0000 Giacomo Tesio <giacomo(a)tesio.it Subject:
> > Re: [nexa] AI Training is Copyright Infringement
> >
> > > Direi piuttosto che fiumi di inchiostro sono stati versati per
> > > giustificare la ridefinizione di termini come "imparare" e "apprendere"
> > > affinché possano essere applicati alle macchine.
> > >
> >
> > *****
> > E' autorevole, diffusa e prevalente la convinzione che noi uomini non
> siamo
> > confrontabili con queste macchine.
> > Eppure non mi convince, mi pare che il nostro modo di imparare è
> anch'esso
> > statistico, da pappagallo: ad esempio impariamo a dire mamma -
> > probabilmente è la nostra prima parola - perchè alla stessa associamo una
> > persona specifica ed arriviamo a questa associazione persona-parola dopo
> > una serie più o meno lunga di esperienze.
> > Dunque, secondo la mia convinzione personale, quando critichiamo la
> > macchina per il fondamento statistico basiamo la nostra critica su una
> > modalità che è anche umana.
> > Un'altra riflessione, sulla quantità di tempo e di esperienze prima di
> > arrivare alle capacità attuali di noi umani: credo nessuno abbia una
> > risposta, ma certamente abbiamo impiegato moltissimi anni, molte e molte
> > generazioni.
> > *David Chalmers* non afferma la coscienza delle macchine ma neppure la
> nega
> > per principio, in sintesi ritiene che esse hanno una qualche coscienza e
> > che progrediscono (Could a Large Language Model Be Conscious?
> >
> https://www.bostonreview.net/articles/could-a-large-language-model-be-consc…
> > ).
> > Sulla parola, *Ludwig Wittgenstein* aveva scritto opinioni interessanti
> > riferendole anche ad Agostino: The individual words in language name
> > objects—sentences are combinations of such names.——In this picture of
> > language we find the roots of the following idea: Every word has a
> meaning.
> > This meaning is correlated with the word. It is the object for which the
> > word stands. (Philosophical Investigations, I,1, Basil Blackwell Ltd,
> > 1986).
> > Insomma, quel che conta è la realtà, non il modo con cui la si
> rappresenta.
> > Vedo anch'io tante differenze fra noi e le macchine, sono meno ottimista
> > sulla invincibilità della nostra fortezza e sull'ipotesi che la realtà
> non
> > esisterebbe senza noi, siamo una parte della realtà, non la realtà (in
> > tutta umiltà: Protagora ci ha fregato).
> > Cordialmente.
> > Duccio (Alessandro Marzocchi)
>
>
> ------------------------------
>
> Message: 3
> Date: Thu, 12 Sep 2024 03:33:51 +0200
> From: Giacomo Tesio <giacomo(a)tesio.it>
> To: nexa(a)server-nexa.polito.it
> Subject: Re: [nexa] AI Training is Copyright Infringement
> Message-ID: <20240912033351.4cf2ff98(a)hermes.development.it>
> Content-Type: text/plain; charset=UTF-8
>
> Caro Fabio,
>
> ho riflettuto a lungo se risponderti, perché non mi piace perdere tempo
> e non mi sembri interessato a comprendere come funzionano i software di
> cui parliamo. Non so perché, ma mi sembra evidente.
>
> Tuttavia, rispondendo a Duccio, mi sono reso conto che subite
> la stessa confusione ("anfibolia"? :-D) e la lettura del paper
> potrebbe svelare ad entrambi la dinamica dell' "imitation game"
> che OpenAI & friends stanno "giocando".
>
> On Tue, 10 Sep 2024 12:07:53 Fabio Alemagna <falemagn(a)gmail.com> wrote:
>
> > Io trovo che sia scientificamente interessante e persino
> > strabiliante che un algoritmo che non è stato esplicitamente
> > istruito per saper far di conto, riesca a far di conto entro
> > una certa misura, semplicemente per essere stato allenato
> > su tomi che spiegano come si fa di conto.
>
> Commentavi questo articolo: https://arxiv.org/pdf/2301.13867
>
> Leggiamo come è composto il dataset con cui hanno testato le
> "competenze matematiche" dei LLM di OpenAI (pagina 4):
>
> - books that are widely used in universities to teach upper
> undergraduate or first-year graduate courses in a degree in
> mathematics
> - math.stackexchange.com, a collection of books, and the
> MATH dataset
> - the book Problem-Solving Strategies, that is often used
> to prepare for mathematical competitions
> - il dataset di https://arxiv.org/abs/1912.01412 che contiene
> decine di esercizi... e le soluzioni.
>
>
> Leggi con calma e rifletti: non noti niente?
>
>
> Questi ricercatori NON hanno sottoposto a ChatGPT e GPT-4 problemi
> inediti, ma problemi tratti da eserciziari disponibili in rete.
>
>
> Ora, se immagini una qualche "intelligenza artificiale" alle prese con
> tutti questi problemi, è ragionevole trovare i risultati sintetizzati
> nell'abstract che avevo citato "strabilianti" [1].
>
> Ma se hai chiaro il processo di compilazione / compressione dei testi
> sorgente che produce il LLM, trovi quei risultati piuttosto ovvi: il
> LLM ha prodotto in output le soluzioni codificate nelle matrici
> eseguibili.
>
>
> Quale delle due spiegazioni passa il rasoio di Occam?
>
> 1. ChatGPT "è intelligente ma non si impegna"
>
> 2. ChatGPT è un archivio compresso eseguibile che contiene i problemi
> che gli sono stati sottposti ed ha "autocompletato" i problemi,
> con le soluzioni che li seguivano?
>
>
> Che tu, Duccio e molti altri che non comprendono come funzionano questi
> software programmati staticamente, vi facciate ingannare da questo
> "imitation game" è purtroppo prevedibile e previsto.
>
> L'enorme quantità di testi compressi dentro GPT-4 (alcuni dei quali
> mai pubblicati, come quelli prodotti dai giornalisti che fanno i
> "chatbot helper" per arrotondare) rende estremamente improbabile
> che un estratto venga servito a qualcuno che lo possa riconoscere.
>
>
> In questo caso però, questo è proprio ciò che è successo!
>
> E che 8 ricercatori universitari non si siano accorti di aver
> dimostrato il plagio [2] di decine di manuali sotto copyright [3]
> rende _evidente_ quanti DANNI la favola della "intelligenza
> artificiale", del "machine learning", delle "allucinazioni"
> e stronzate varie stia facendo alla ricerca informatica
> e al progresso dell'umanità.
>
>
> E nota che non si tratta di persone impreparate.
>
> Ma le parole che usiamo per descrivere la realtà determinano
> il nostro modo di intepretarla.
>
>
> Non fatevi ingannare: l'intelligenza artificiale non esiste.
> Le macchine non imparano, non hanno allucinazioni
> e non funzionano assolutamente come un essere umano.
>
> Urge cambiare linguaggio.
>
>
> Giacomo
>
> [1] non potevi scegliere un termine più appropriato! :-D
> https://www.etimo.it/?term=strabiliare
>
> [2] spacciando ChatGPT come una "intelligenza artificiale _generativa_"
> si/gli intesta la paternità delle soluzioni, sottraendola agli
> autori https://it.wikipedia.org/wiki/Plagio_(diritto_d'autore)
>
> [3] per altro, in un modo che esclude l'applicabilità del fair
> use negli USA, come ci ha spiegato benissimo Giancarlo qui
>
> https://server-nexa.polito.it/pipermail/nexa/2024-September/053236.html
> perché ChatGPT diventa un surrogato gratuito di quegli stessi testi,
> riducendone il valore di mercato
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> nexa mailing list
> nexa(a)server-nexa.polito.it
> https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
>
>
> ------------------------------
>
> End of nexa Digest, Vol 185, Issue 42
> *************************************
>
Sept. 12, 2024
Re: [nexa] AI Training is Copyright Infringement
by Stefano Quintarelli
<https://blog.quintarelli.it/2023/08/intelligenza-artificiale-e-copyright-sb…>
grande è la confusione
il momento è propizio per la più grande appropriazione della storia da John Locke in poi
<https://blog.quintarelli.it/2024/06/llms-and-content-appropriation-echos-fr…>
imho
Il 11 settembre 2024 22:50:58 UTC, alessandro marzocchi <alemarzoc(a)gmail.com> ha scritto:
>Sun, 08 Sep 2024 23:25:19 +0000 Giacomo Tesio <giacomo(a)tesio.it Subject:
>Re: [nexa] AI Training is Copyright Infringement
>
>> Direi piuttosto che fiumi di inchiostro sono stati versati per
>> giustificare la ridefinizione di termini come "imparare" e "apprendere"
>> affinché possano essere applicati alle macchine.
>>
>
>*****
>E' autorevole, diffusa e prevalente la convinzione che noi uomini non siamo
>confrontabili con queste macchine.
>Eppure non mi convince, mi pare che il nostro modo di imparare è anch'esso
>statistico, da pappagallo: ad esempio impariamo a dire mamma -
>probabilmente è la nostra prima parola - perchè alla stessa associamo una
>persona specifica ed arriviamo a questa associazione persona-parola dopo
>una serie più o meno lunga di esperienze.
>Dunque, secondo la mia convinzione personale, quando critichiamo la
>macchina per il fondamento statistico basiamo la nostra critica su una
>modalità che è anche umana.
>Un'altra riflessione, sulla quantità di tempo e di esperienze prima di
>arrivare alle capacità attuali di noi umani: credo nessuno abbia una
>risposta, ma certamente abbiamo impiegato moltissimi anni, molte e molte
>generazioni.
>*David Chalmers* non afferma la coscienza delle macchine ma neppure la nega
>per principio, in sintesi ritiene che esse hanno una qualche coscienza e
>che progrediscono (Could a Large Language Model Be Conscious?
>https://www.bostonreview.net/articles/could-a-large-language-model-be-consc…
>).
>Sulla parola, *Ludwig Wittgenstein* aveva scritto opinioni interessanti
>riferendole anche ad Agostino: The individual words in language name
>objects—sentences are combinations of such names.——In this picture of
>language we find the roots of the following idea: Every word has a meaning.
>This meaning is correlated with the word. It is the object for which the
>word stands. (Philosophical Investigations, I,1, Basil Blackwell Ltd,
>1986).
>Insomma, quel che conta è la realtà, non il modo con cui la si rappresenta.
>Vedo anch'io tante differenze fra noi e le macchine, sono meno ottimista
>sulla invincibilità della nostra fortezza e sull'ipotesi che la realtà non
>esisterebbe senza noi, siamo una parte della realtà, non la realtà (in
>tutta umiltà: Protagora ci ha fregato).
>Cordialmente.
>Duccio (Alessandro Marzocchi)
Sept. 12, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Giuseppe Attardi
> Date: Wed, 11 Sep 2024 21:53:58 +0000
> From: Giacomo Tesio <giacomo(a)tesio.it>
>
> Ciao Giuseppe,
>
> Il 11 Settembre 2024 16:38:55 UTC, Giuseppe Attardi <attardi(a)di.unipi.it> ha scritto:
>> Mi spiace dover dissentire da Enrico.
>
> Dissenti anche da me o solo da Enrico?
>
> Ti ho proposto una semplice dimostrazione dell'equivalenza fra dato e programma:
>
> ```
> Ogni dato è software eseguibile da almeno una macchina programmabile.
>
> Puoi infatti facilmente costruire una macchina programmabile che avanza il proprio
> program counter se riceve in input il byte corrente del proprio programma e si ferma altrimenti.
> ```
> (qui <https://server-nexa.polito.it/pipermail/nexa/2024-September/053214.html>)
>
> Non ti convince?
>
>
> Te ne propongo un'altra: ho qui una macchina programmabile che ad ogni ciclo legge
> un nuovo bit dal programma caricato e chiude un circuito se il bit vale 1, mentre lo
> apre se vale 0.
>
>
> Ho provato a caricargli un binario ARM e l'ha eseguito senza problemi.
> Ho provato con un COFF e un ELF e li ha eseguiti senza problemi.
> Allora ho provato con una foto, e ha continuato ad accendere e spegnere una lampadina
> esattamente secondo l'ordine dei bit forniti.
> Infine ho provato a caricare la tua mail, e la macchina (me ne scuso)
> ne ha eseguito ogni bit, dal primo all'ultimo.
>
> Perché la mia macchina irriverente continua ad eseguire qualsiasi dato che io gli carico
> senza distinguere fra istruzioni e non?
>
Il tuo programma esegue istruzioni che leggono dei dati qualunque, non eseguono quei dati. Il fatto che quei dati siano una *rappresentazione* in un certo formato di istruzioni non li fa eseguire dalla tua macchina, perché non passano dal suo interprete (CPU), ma dalla sua ALU.
L’architettura Von Neumann e la MTU prevedono che i programmi vengano rappresentati nella stessa forma, per comodità nel primo caso (in alternativa alla Harvard architecture) e per generalità la seconda (una singola macchina anziché infinite), ma c’è un passo ineludibile passaggio di trasformazione prr ottenere larappresentazione come dato di un programma, tipicamente un compilatore.
>
>> In altri termini, qualunque istruzione può essere rappresentata come dato, ma non
>> ogni dato può essere interpretato come istruzione...
>
> Perché questo predicato diventi vero è necessario aggiungere "da una qualsiasi macchina programmabile"
No, qualunque sia la macchina, esiste un dato (anzi infiniti) che non sono interpretabili da quella macchina, o, se vuoi, che danno errore se eseguiti. L’insieme delle rappresentazioni dei programmi è un sottoinsieme stretto di quello dei dati.
>
> La verità di tale predicato però non esclude in alcun modo che possano esistere infinite
> macchine programmabili in grado di eseguire un qualsiasi dato.
>
>
>> Ossia la semantica di un’istruzione è strettamente legata al suo interprete, quella di un dato no.
>
> Anche qui, perché il predicato diventi vero dobbiamo sostiire "dato" con "quasiasi dato":
> molte macchine infatti possolo eseguire solo certe sequenze di bit e non altre.
>
> Un x86 non eseguirà correttamente un eseguibile ARM o JVM.
>
> D'altto canto ogni Vector Reducing Machine è in grado di eseguire solo le matrici numeriche
> la cui dimensionalità è compatibile
>
> Sono macchine programmabili diverse, ma pur sempre macchine il cui comportamento
> dipende esclusivamente dal programma fornito.
>
>
> Mi puoi spiegare dove sbaglio?
L’errore sta nel verbo “eseguire”: si eseguono istruzioni, sui dati si opera.
Le Vector Reducing Machine effettuano operazioni matriciali su vettori e matrici, le matrici non eseguono alcunché. C’è una circuiteria apposta nelle GPU per operare su matrici, seguendo le *istruzioni* fornite tramite la libreria CUDA; se le matrici eseguissero, potresti fare a meno delle GPU e di CUDA.
>
>
> Giacomo
Sept. 12, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Alfredo Bregni
Salve.
Non so perché un tema così "alto" -- "pRogrammazione statistica" o "intelligenza artificiale"? -- sia sceso così "in basso" a parlar di dati e istruzioni.
Appena avrò un attimo di tempo, ripercorrerò il thread e cercherò di capire...
A parte che sono uno che vuole debellare gli strati, e con essi l'interpretazione del mondo che (non sempre consapevolmente) ha scelto chi ha costruito ciascun strato, vi do qui la mia versione (operativa) di come vedo le cose.
Ogni memoria, e ogni canale trasmissivo, contiene o trasporta dati.
Che diventano informazioni (o istruzioni) se il ricevente (o interprete) riesce a leggerci uno straccio si semantica (molto legata a chi il ricevente o l'interprete sia).
"Istruzione" (più correttamente, "inizio di istruzione") è PER DEFINIZIONE solo la cella di memoria a cui punta il program counter (e l'interprete è vincolato a prendere la sua prima istruzione da lì).
Cosa poi ne faccia dipende dalla sua decodifica da dato-istruzione a semantica esecutiva:
- Può avere un set di istruzioni molto ...permissivo, come quell'interprete che ha istruzioni di un solo bit, e accende o spegne una lampadina;
- Può avere un'esecuzione molto permissiva, che quando non riconosce un'istruzione ...va avanti a veder cosa trova;
- Può essere un interprete "tradizionale" più serio, che quando non interpreta ...si ferma.
E le "istruzioni" saranno sempre e soltanto quelle a cui via via punterà il program caounter ("mosso" a modo suo dall'interprete).
Scusate la banalità.
----- Original Message -----
From: Enrico Nardelli
To: nexa(a)server-nexa.polito.it
Sent: Thursday, September 12, 2024 7:42 AM
Subject: Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
Grazie Beppe per la risposta, temo che il nostro disaccordo rimanga perché è su un livello direi "filosofico" o "ermeneutico".
L'interpretazione di una "rappresentazione" (cioè di una sequenza di bit) come "dato" (elemento passivo) o "istruzione" (elemento attivo) non è intrinseca ma è strettamente dipendente dall'automa a cui la facciamo manipolare. In astratto qualunque sequenza di bit può essere interpretata in un modo o nell'altro.
È la stessa osservazione che ha fatto anche Giacomo nel suo ultimo messaggio di risposta a te.
A seconda di come uno definisce l'automa alcune rappresentazioni diventano "istruzioni" e sono quindi eseguibili altre no, ma non esiste una distinzione intrinseca, "a priori".
Il mio intervento aveva lo scopo di mettere in luce questa dualità delle "rappresentazioni".
Ho parlato della Macchina Universale di Turing (MUT) perché in essa questa dualità è chiaramente evidente. Questo unico automa, quello appunto definito dalla matrice di transizione della MUT (l'interprete, usando la tua terminologia), permette di replicare qualunque altra Macchina di Turing semplicemente sfruttando la natura duale delle rappresentazioni. In questo senso le uniche vere "istruzioni" sono quelle della matrice di transizione della MUT, che sono del tutto generiche. Ciò che fa la differenza è quale "rappresentazione" la MUT elabori.
Analogamente, in un automa X realizzato con l'architettura di von Neumann, l'interprete equivalente alla matrice di transizione della MUT è realizzato con un semplice automa a stati finiti che esegue ad libitum il ciclo decodifica-esecuzione-caricamento. Le uniche vere "istruzioni a priori" sono quindi quelle di questo automa a stati finiti. Ciò che accade quando una "rappresentazione" viene decodificata dipende da come è stato definito l'automa X, ovvero da come è stato definito il "set di istruzioni" che l'automa X deve essere in grado di eseguire.
In altre parole, una "rappresentazione" è un dato o un'istruzione solo "a posteriori", avendo definito qual è l'automa di riferimento da considerare.
Ciao, Enrico
Il 11/09/2024 18:38, Giuseppe Attardi ha scritto:
Mi spiace dover dissentire da Enrico.
La Macchina di Turing dispone di istruzioni completamente distinte dai dati, si tratta degli stati e della matrice di transizione tra essi, e che nulla hanno a che vedere con i dati letti/scritti sul nastro della sua working memory.
Quando si introduce la Macchina di Turing Universale TMU si effettua un’operazione di codifica della macchina M in una rappresentazione alpha che viene fornita in input alla TMU, insieme ai dati di input per la stessa, in modo che TMU(alpha, x) = M((x).
La macchina TMU svolge il compito di interpreter del codice della macchina M. La macchina M stessa è un interprete del suo linguaggio macchina.
Nelle macchine moderne microprogrammate, la CPU è l’interprete del linguaggio macchina, che è a sua volta implementato come interprete del linguaggio di microcodice.
La struttura a livelli si ripete, con linguaggi come l’assembler, intepretati da un interprete di assembler o tradotti in linguaggio macchina da un assembler. Per i linguaggi a più alto livello, si usano sia interpreti del linguaggio ad alto livello, oppure compilatori in linguaggio macchina o una soluzione intermedia, ossia compilazione su macchina virtuale (es. JVM) che viene a sua volta interpretata. Poi vi sono ulteriori livelli, implementati attraverso librerie o una combinazione di librerie e hardware, come nel caso delle GPU.
Quindi nei sistemi moderni esistono diversi livelli di macchine, ognuno col suo proprio linguaggio macchina, in quello che David Patterson chiama the wheel of reincarnation.
Il fatto che le istruzioni di un livello possano essere rappresentate come dati per il livello superiore non ne cambia la natura.
In alcuni linguaggi la rappresentazione è possibile nello stesso livello: ad esempio in Lisp i programmi sono espressi come S-espressioni e questo consente di scrivere in Lisp dei macro-processori per estendere il linguaggio. In Java il meccanismo della Reflection consente di manipolare i metodi di una classe e analogamente in Python.
In altri termini i programmi possono essere codificati come dati e questo consente di fare su di essi tante operazioni utili: interpretazione, compilazione, trasformazioni, ottimizzazioni, linking, ecc. Ma ciò non ne cambia la natura di istruzioni, perché solo se rispettano il formato dell’interprete a cui vanno forniti possono essere eseguiti.
Provate a caricare un eseguibile 386 su un ARM, o anche solo un COFF su un ELF (formati binari diversi per 386).
In altri termini, qualunque istruzione può essere rappresentata come dato, ma non ogni dato può essere interpretato come istruzione. Ossia la semantica di un’istruzione è strettamente legata al suo interprete, quella di un dato no.
On 10 Sep 2024, at 17:25, nexa-request(a)server-nexa.polito.it wrote:
From: Enrico Nardelli <nardelli(a)mat.uniroma2.it>
To: nexa(a)server-nexa.polito.it
Subject: Re: [nexa] "pogrammazione statistica" o "intelligenza
artificiale"? [era: AI Training is Copyright Infringement]
Message-ID: <b6ea2a4e-5645-4f80-8949-e684f34e66a5(a)mat.uniroma2.it>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Scusate, intervento nell'interessante discussione in corso tra Giacomo e
Beppe per fare chiarezza in termini semplici, per chi magari sa meno di
informatica, su come funziona un'architettura di von Neumann (detta
anche di Turing - von Neumann per motivi che saranno chiari nel seguito).
L'architettura di von Neumann viene anche detta "a programma
memorizzato" perché il programma viene scritto (cioè caricato) nella
memoria. Nella realizzazione più semplice possibile di tale
architettura, il programma viene scritto in memoria a partire un
indirizzo prefissato e l'hardware su cui viene mandato in esecuzione il
programma viene realizzato in modo tale che all'accensione venga portata
nella CPU per l'esecuzione esattamente l'istruzione a tale indirizzo
prefissato.
Essa viene decodificata ed eseguita e poi si carica la nuova istruzione,
che per default è quella all'indirizzo successivo di memoria, e si
riesegue il ciclo decodifica - esecuzione - caricamento. Questo processo
si ripete per eseguire in sequenza tutte le istruzioni del programma, a
meno che l'istruzione appena eseguita non sia un'istruzione di salto,
che ha l'effetto di far sì che la nuova istruzione da eseguire sia
invece quella a un altro indirizzo. Con questo meccanismo basta riuscire
a portare nella CPU un'istruzione diversa da quelle che il programmatore
originale ha predisposto per far deviare completamente il corso
dell'esecuzione e iniziare a eseguire come "istruzioni" ciò che c'è in
celle di memoria che in teoria dovrebbero avere solo "dati".
Quindi, non c'è vera distinzione da programma e dati nell'informatica.
Questo natura intrinsecamente duale delle "rappresentazioni" (termine
che uso per fondere la valenza di "dato" e di "istruzione") era stata
messa in luce anche da Alan Turing quando descrisse la MUT (Macchina
Universale di Turing). Essa è un caposaldo culturale dell'informatica,
analogo alla doppia valenza del DNA in biologia, come elenco delle
istruzioni per un organismo in sviluppo e contemporaneamente come dati
per tali istruzioni.
(piccolo spazio pubblicità - INIZIO)
A quelli che ne vogliono sapere di più sull'architettura di von Neumann
suggerisco il paragrafo 4.2.2 del mio libro
https://themiscrime.com/it/edizioni-themis/digitale-societa/item/547-la-riv…
in cui faccio vedere attraverso un semplice esempio a passo a passo come
una macchina a registri (una possibile implementazione dell'architettura
di von Neumann) esegue un piccolo programma. L'intera sezione 4.2
(Automa e linguaggio) discute come si realizza, concettualmente, una
"macchina" che calcola.
A quelli che vogliono sapere di più sulla natura duale delle
rappresentazioni suggerisco la sezione 4.6 sempre del mio libro
https://themiscrime.com/it/edizioni-themis/digitale-societa/item/547-la-riv…
.
(piccolo spazio pubblicità - FINE)
Ciao, Enrico
Il 10/09/2024 15:31, Giacomo Tesio ha scritto:
On Tue, 10 Sep 2024 10:13:10 +0200 Giuseppe Attardi wrote:
Si può riassumere dicendo che...
Sì, ma non stiamo solo chiacchierando fra noi e questo scambio sul
crinale fra informazione e dato, fra matematica e informatica, può
essere di interesse per molti iscritti alla lista Nexa, se riusciamo
a mantenerlo intellegibile anche ai non programmatori.
Il codice che calcola f fa uso di theta, ma non è theta che esegue
alcun calcolo e non può essere chiamato software.
[...]
L’architettura Von Neuman distingue tra istruzioni e dati: le prime
sono caricate nella CPU, i secondi nella ALU.
Anzitutto io ho parlato di macchine programmabili, non specificatamente
dell'architettura von Neumann che rappresenta solo **una**
delle architetture possibili per tali macchine.
Inoltre anche nell'architettura von Neumann nessuna istruzione "esegue
alcun calcolo": è l'unità di calcolo all'interno della CPU ad
azionare la circuiteria associata a ciascuna istruzione.
Le Vector Reducing Machines costituiscono una classe di architetture
diverse (ciascuna caratterizzata dalla rispettiva topologia), ma
ciascuna esegue programmi codificati come matrici di dimensionalità
appropriata che rappresentano funzioni fra spazi vettoriali distinti.
ma rimangono istruzioni, se caricate nella CPU.
In realtà no: quando vengono caricate nelle CPU moderne, le istruzioni
definite nella ISA vengono trasformate in microcodice proprietario
(come 380° ricorda spesso): dunque sono trattate come dato
_ANCHE_ dalla CPU.
Quindi, se theta "non può essere chiamato software", non possono essere
chiamati software nemmeno Windows, Linux o Android.
Semmai le istruzioni, che sono conservate in memoria, possono essere
trattate come dati, in programmi che si automodificano
Mica solo in programmi che si automodificano!
Ogni compilatore, ogni interprete e ogni macchina virtuale tratta le
istruzioni come dati. Ogni sistema operativo le tratta come dati mentre
le salva sul filesystem o le carica in RAM ad ogni page fault.
Per non parlare dei molti compilatori JIT (just in time) che caricano in
memoria le istruzioni di un eseguibile RISC-V, le traducono al volo
in istruzioni x86 e per poi farle eseguire alla CPU, trattando sia le
istruzioni RISC-V che quelle x86 come dati. [1]
Gli esempi sono innumerevoli senza nemmeno nominare LiSP!
(ops! :-D)
Perché?
Perché gli eseguibili _sono_ dati. Come lo è il codice sorgente.
Sono rappresentazioni trasferibili di informazioni.
Infatti, come ho provato a spiegare nella mail precedente, per ogni
sequenza di byte (foto, film, audio, testo, /dev/random etc...) puoi
costruire infinite macchine programmabili che eseguono quella
sequenza di byte per determinare il proprio comportamento.
Ne consegue che qualsiasi dato è eseguibile esattamente come qualsiasi
eseguibile è dato. [2]
Ma c'è di più: poiché puoi sempre scrivere un compilatore che trasformi
qualunque sequenza di byte in una diversa sequenza eseguibile per una
qualche macchina programmabile, ogni dato è anche codice sorgente.
Ne consegue che l'insieme dei dati, l'insieme degli eseguibili e
l'insieme dei codici sorgente coincidono. [3]
Q.E.D. :-D
La distinzione è puramente colloquiale, legata all'uso che stiamo
facendo della sequenza di byte in un certo momento, ma è indipendente
da qualsiasi caratteristica intrinseca della sequenza di byte.
una rete neurale calcola una funzione f(theta, x) = y
Proviamo a sostituire i termini antropomorfici:
"una Vector Reducing Machine implementa una funzione f(theta, x) = y"
Se invece di una "rete neurale" che "calcola" mettiamo una macchina
che implementa, la frase è meno evocativa ma descrive più precisamente
ciò che effettivamente accade.
La funzione f infatti appartiene all'insieme delle informazioni nelle
nostre menti, esperienze soggettive di pensiero comunicabile, ma
fintanto che rimane lì dentro, non può avere effetti sul mondo esterno.
Se vogliamo che abbia effetti dobbiamo esprimerla, imprimendola sui
componenti di una macchina che la implementa. Questa macchina può
essere fisica o virtuale: il già citato llama.cpp è un esempio di
macchina virtuale che implementa la funzione f.
theta sono i parametri del modello
Utilizzare il termine "modello" è errato e fuorviante perché richiama
un modello statistico che per definizione fornisce informazioni
intellegibili sul campione statistico da cui viene calcolato.
Matematicamente, theta è la prima variabile indipendente di f.
Ma dal punto di vista informatico, theta è l'eseguibile che determina
in modo preciso e deterministico il comportamento della Vector Reducing
Machine che implementa f.
Ossia non bastano i dati (theta) per modificare f.
Stai confondendo la funzione f : t -> x -> y, con la funzione
g : x -> y ottenuta attraverso l'applicazione parziale di un
particolare theta a f.
Chiudere f su un theta' diverso è sufficiente ad ottenere una
funzione g' diversa, senza alterare in alcun modo f.
Questo perché f descrive una macchina programmabile e theta uno dei
possibili programmi che tale macchina può eseguire.
Infatti, come tu stesso osservi,
Theta è del tutto inutile senza f.
esattamente come un binario x86 (o ARM o RISC-V etc...) è del tutto
inutile senza una macchina che lo esegua.
____
Passiamo ora alle minuzie da nerd:
- ne si codifica gli elementi come vettori numerici attraverso
una analisi statistica
Nel caso dei testi si fa una tokenizzazione (ad esempio con le regole
di Porter)
Porter descrive il suo algoritmo come:
"""
a process for removing the commoner morphological and inflexional
endings from words in English. Its main use is as part of a term
normalisation process...
""" https://tartarus.org/martin/PorterStemmer/ Nota le parole "commoner" e "normalization": si tratta di (e si basa su)
una analisi _statistica_ del testo.
Nessuno di questi lo chiamerei un’analisi statistica.
Nel caso della compilazione della matrice degli embedding (l'eseguibile
della VRM) a partire dai testi sorgente, sono d'accordo.
Non è una _analisi_ statistica ma un processo di _compilazione_
statistica (parte di un più ampio processo di _programmazione_
statistica che parte dalla ricerca e selezione dei testi sorgente).
Tale processo NON produce infatti un _modello_ statistico delle
relazioni presenti nel dataset utilizzato, ma un eseguibile per
una specifica Vector Reducing Machine.
Si tratta di un processo statistico di compilazione perché, sia ad ogni
batch che complessivamente, le variazioni applicate all'eseguibile
dipendono esclusivamente dalla frequenza delle coppie di vettori
input + next token presenti nel data set.
Al termine del processo, la matrice risultante è contemporaneamente
- un eseguibile per tutte le Vector Reducing Machines con quella
topologia
- una compressione lossy di TUTTI i testi utilizzati durante il
processo di compilazione (come dimostra l'utilizzo di filtri
anti plagio sull'output prodotto dal LLM per nascondere le
prove del plagio avvenuto il processo di compilazione.
Nota poi come smettere di usare una terminologia antropomorfa e
riconoscere la compilazione dell'eseguibile per una VRM come
parte di un processo di programmazione statistica, fa venir
meno alcune distinzioni utili soltanto a deresponsabilizzare
chi realizza questi software come quella fra supervised e
unsupervised "training".
Nessuna AI fa "training" unsupervised, semplicemente esistono
metodologie diverse di programmazione statistica applicabili
a contesti diversi, in alcuni dei quali è possibile valutare
automaticamente l'errore contenuto nell'output prodotto dalla
VRM (ricorderai ad esempio AlphaGo).
A presto!
Giacomo
[1] i primi che mi vengono in mente:
https://michaeljclark.github.io/
https://github.com/libriscv/libriscv
[2] se preferisci una dimostrazione equivalente ma dotata di pedigree
accademico, la trovi a pagina 23 di questo manuale:
https://theory.cs.princeton.edu/complexity/book.pdf
[3] naturalmente non tutte le macchine programmabili sono in grado di
eseguire qualsiasi sequenza di byte: per ottenere eseguibili
supportati da una specifica macchina programmabile che insista
su un sottoinsieme di tale universo, scriviamo compilatori che
rappresentano funzioni da un sottoinsieme di nostra scelta (i cui
elementi chiamiamo "sorgenti") e l'insieme contenente gli eseguibili
di quella macchina (e i possibili messaggi di errore :-D).
--
-- EN
https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html
======================================================
Prof. Enrico Nardelli
Past President di "Informatics Europe"
Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
Dipartimento di Matematica - Università di Roma "Tor Vergata"
Via della Ricerca Scientifica snc - 00133 Roma
home page: https://www.mat.uniroma2.it/~nardelli
blog: https://link-and-think.blogspot.it/
tel: +39 06 7259.4204 fax: +39 06 7259.4699
mobile: +39 335 590.2331 e-mail: nardelli(a)mat.uniroma2.it
online meeting: https://blue.meet.garr.it/b/enr-y7f-t0q-ont
--
-- EN
https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html ======================================================
Prof. Enrico Nardelli
Past President di "Informatics Europe"
Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
Dipartimento di Matematica - Università di Roma "Tor Vergata"
Via della Ricerca Scientifica snc - 00133 Roma
home page: https://www.mat.uniroma2.it/~nardelli
blog: https://link-and-think.blogspot.it/
tel: +39 06 7259.4204 fax: +39 06 7259.4699
mobile: +39 335 590.2331 e-mail: nardelli(a)mat.uniroma2.it
online meeting: https://blue.meet.garr.it/b/enr-y7f-t0q-ont
======================================================
--
Sept. 12, 2024
Re: [nexa] AI Training is Copyright Infringement
by Enrico Nardelli
A questo proposito
Il 12/09/2024 03:33, Giacomo Tesio ha scritto:
> Commentavi questo articolo:https://arxiv.org/pdf/2301.13867
>
> Leggiamo come è composto il dataset con cui hanno testato le
> "competenze matematiche" dei LLM di OpenAI (pagina 4):
>
> - books that are widely used in universities to teach upper
> undergraduate or first-year graduate courses in a degree in
> mathematics
> - math.stackexchange.com, a collection of books, and the
> MATH dataset
> - the book Problem-Solving Strategies, that is often used
> to prepare for mathematical competitions
> - il dataset dihttps://arxiv.org/abs/1912.01412 che contiene
> decine di esercizi... e le soluzioni.
>
>
> Leggi con calma e rifletti: non noti niente?
>
>
> Questi ricercatori NON hanno sottoposto a ChatGPT e GPT-4 problemi
> inediti, ma problemi tratti da eserciziari disponibili in rete.
>
>
> Ora, se immagini una qualche "intelligenza artificiale" alle prese con
> tutti questi problemi, è ragionevole trovare i risultati sintetizzati
> nell'abstract che avevo citato "strabilianti" [1].
>
> Ma se hai chiaro il processo di compilazione / compressione dei testi
> sorgente che produce il LLM, trovi quei risultati piuttosto ovvi: il
> LLM ha prodotto in output le soluzioni codificate nelle matrici
> eseguibili.
ritengo utile segnalare quanto ha scritto recentemente Francois Chollet
in una serie di post su X (a partire da qua
https://x.com/fchollet/status/1800577565717148143)
Here's the thing: what current AI (e.g. LLMs) is really doing is
memorizing millions of patterns seen in human-generated data, and
reapplying them on new inputs. That works great when you're dealing with
a well-known problem – until you introduce any amount of novelty.
But the nature of intelligence is precisely to adapt to things you don't
expect. To figure out what to do when you don't have a solution already
memorized.
If your AI can't adapt to novelty, it will never be able to deal with
the variability and fluidity of the real world.
And that's why LLMs aren't on the path to AGI. They cannot reason – they
recite. They by-pass the need for intelligence by leveraging
memorization instead – on a scale that boggles the mind.
Come "palestra" per misurare davvero l'intelligenza Chollet ha proposto
lo "ARC Prize" http://arcprize.org cioè la risoluzione di problemi che
sono semplici per gli esseri umani ma sono resistenti alla
memorizzazione (quindi difficili per le LLM). Con le sue parole
(https://x.com/fchollet/status/1800577423853195451)
ARC tasks are easy for humans. They aren't complex. They don't require
specialized knowledge – a child can solve them. But modern AI struggles
with them.
Because they have one very important property: they're designed to be
resistant to memorization.
And ARC is like a flashing red light reminding you that we're missing
something (intende per l'AGI = Artificial General Intelligence)
Spero contribuisca a far capire meglio quanto Giacomo sta argomentando.
Ciao, Enrico
--
-- EN
https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html
======================================================
Prof. Enrico Nardelli
Past President di "Informatics Europe"
Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
Dipartimento di Matematica - Università di Roma "Tor Vergata"
Via della Ricerca Scientifica snc - 00133 Roma
home page: https://www.mat.uniroma2.it/~nardelli
blog: https://link-and-think.blogspot.it/
tel: +39 06 7259.4204 fax: +39 06 7259.4699
mobile: +39 335 590.2331 e-mail: nardelli(a)mat.uniroma2.it
online meeting: https://blue.meet.garr.it/b/enr-y7f-t0q-ont
======================================================
--
Sept. 12, 2024
Re: [nexa] AI Training is Copyright Infringement
by Giuseppe Attardi
> From: Giacomo Tesio <giacomo(a)tesio.it>
>
> Caro Duccio,
>
> Quando tu impari, tu (soggetto) impari (verbo).
>
>
> Nessun altro prende la tua testa, la apre e scrive nel tuo cervello una serie di dati a caso,
> misura quanto il tuo comportamento si discosta da quanto desidera e modifica un pochino
> quei dati, poi misura quanto il tuo comportamento si discosta da quanto
> desidera e modifica di nuovo un pochino
> quei dati, e ripete il procedimento milioni o
> miliardi di volte fin quando il tuo comportamento non si discosta più di un ε trascurabile
> da quanto desidera.
>
> In un tale ipotetico processo, tu saresti un oggetto che subisce l'azione,
> non un soggetto che la compie.
>
> Chiameresti il processo che ho descritto "human learning"?
> Chiameresti "intelligente" il comportamento acquisito in questo modo?
> (ovvero tale che non si discosti statisticamente più ε da quello prestabilito)
>
>
> Se no, non hai ragione di chiamare "machine learning" il processo di sviluppo di un LLM
> come non hai ragione di chiamare "intelligenza artificiale" il risultato di tale processo.
>
>
> La scelta di termini più appropriati è oggetto di un altro thread, puoi star certo che
> non c'è alcuna intelligenza dentro un LLM.
>
>
> Si tratta di un software progettato per _sembrare_ intelligente, ma solo
> a chi non sa come funziona.
>
>
> La natura del nostro apprendimento non è statistica: posso spiegarti come contare
> fino a 31 sulle dita di una mano senza fartelo vedere nemmeno una volta.
>
> Il tuo pugno chiuso significa zero.
> Ad ogni dito associamo una potenza di due:
> - pollice = 1
> - indice = 2
> - medio = 4
> - anulare = 8
> - mignolo = 16
>
> Solleva una qualsiasi combinazione di dita e somma i valori associati a ciascun dito:
> otterrai un numero fra 0 e 31.
>
> Ora, senza che io ti dica altro o ti mostri alcun esempio, puoi imparare da solo come
> mettere le varie combinazioni in ordine dal valore complessivo più piccolo, al più grande.
>
> Nota bene: non solo non ti fornisco nemmeno un esempio (niente statistica), ma non ti
> sto insegnando come fare, ti ho solo detto come fare ad imparare.
>
> Tu (soggetto) impari (verbo).
> Se vuoi.
>
>
> Nessuno ti butta conoscenza dentro il cervello.
>
> Nessuna macchina lo saprà mai fare.
>
>
> Giacomo
>
Ho fornito le tue istruzioni a ChatGPT:
Il tuo pugno chiuso significa zero.
Ad ogni dito associamo una potenza di due:
- pollice = 1
- indice = 2
- medio = 4
- anulare = 8
- mignolo = 16
Sollevando una qualsiasi combinazione di dita e sommando i valori associati a ciascun dito si ottiene un numero fra 0 e 31.
Che numero ottengo sollevando pollice e medio?
ChatGPT:
Se sollevi pollice e medio, ottieni la somma dei valori associati a questi due dita:
- Pollice = 1
- Medio = 4
La somma è:
1 + 4 = 5
Quindi, il numero ottenuto è 5.
Sept. 12, 2024
Re: [nexa] informatica a scuola (was Re: R: C'e' cascato pure Benanti...)
by Enrico Nardelli
Ciao Giovanni
Il 11/09/2024 13:08, 380° via nexa ha scritto:
> ma l'informatica non è già stata introdotta a scuola da 'mo?
> tipo dal 1985?https://it.wikipedia.org/wiki/Piano_nazionale_informatica
>
> cosa non ha funzionato e continua a non funzionare nell'insegnamento
> dell'informatica oggi?
>
>> L'introduzione alla programmazione può e deve essere una componente di
>> questa formazione, ma non la esaurisce.
> il fatto è che, invece, insegnare l'informatica oggi ad uno studente di
> liceo scientifico significa questo:
>
> --8<---------------cut here---------------start------------->8---
>
> - utilizzare gli strumenti informatici in relazione all’analisi dei dati
> e alla modellizzazione di specifici problemi scientifici e individuare
> la funzione dell’informatica nello sviluppo scientifico;
>
> --8<---------------cut here---------------end--------------->8---
> (tratto dahttps://www.leviseregno.edu.it/pagine/liceo-scientifico-opzione-scienze-applicate-1)
>
> l'insegnamento del'informatica, nelle scuole di ogni ordine e grado, si
> _riduce_ all'insegnamento sull'/utilizzo/ degli strumenti, tra l'altro
> strumenti scelti perché chi li insegna sa usare solo quelli [2] e li
> sceglie seguendo le mode e il marketing
>
No, l'informatica non c'è, in generale, nella scuola italiana. Il fatto
che ci sia il termine "informatica" non implica che ne vengano insegnati
i concetti. (immagino comunque che la tua affermazione fosse ironica...)
Il documento di riferimento per l'insegnamento nei licei sono le
indicazioni nazionali pubblicate in Gazzetta Ufficiale qua
https://www.gazzettaufficiale.it/eli/gu/2010/12/14/291/so/275/sg/pdf
Per chi non avesse voglia di scandire il documento cercando il termine
"informatica" e costruendo la sua visione riporto più sotto le "Linee
Generali e Competenze" del Liceo Scientifico Opzione Scienze Applicate,
che è l'unico percorso liceale dove si fa davvero Informatica. Qui non
si può essere, tutto sommato, scontenti. Come poi un singolo istituto
presenti questo insegnamento nel suo sito web o come il singolo docente
insegni la disciplina sono aspetti difficilmente controllabili. Nel
Liceo Scientifico "generico" l'informatica è presente come uno delle
aree didattiche all'interno della materia "Matematica" ma di fatto quasi
nessun docente la fa. Ovviamente, poi, gli istituti tecnici sono un caso
a parte perché esiste l'indirizzo informatico.
Chi volesse avere un panorama della situazione in Europea
sull'insegnamento dell'informatica nella scuola può leggere il rapporto
dell'Unione Europea "Informatica a scuola in Europa" pubblicato nel
2022, che ho curato come esperto scientifico. Lo potete scaricare qua
https://op.europa.eu/it/publication-detail/-/publication/c2fcfd3c-438e-11ed…
Ciao, Enrico
=================================
Liceo Scientifico Opzione Scienze Applicate
---
Linee generali e competenze per INFORMATICA
-------------------------------------------
L’insegnamento di informatica deve contemperare diversi obiettivi:
comprendere i principali fondamenti teorici delle scienze
dell’informazione, acquisire la padronanza di strumenti
dell’informatica, utilizzare tali strumenti per la soluzione di problemi
significativi in generale, ma in particolare connessi allo studio delle
altre discipline, acquisire la consapevolezza dei vantaggi e dei limiti
dell’uso degli strumenti e dei metodi informatici e delle conseguenze
sociali e culturali di tale uso. Questi obiettivi si riferiscono ad
aspetti fortemente connessi fra di loro, che vanno quindi trattati in
modo integrato. Il rapporto fra teoria e pratica va mantenuto su di un
piano paritario e i due aspetti vanno strettamente integrati evitando
sviluppi paralleli incompatibili con i limiti del tempo a disposizione.
Al termine del percorso liceale lo studente padroneggia i più comuni
strumenti software per il calcolo, la ricerca e la comunicazione in
rete, la comunicazione multimediale, l'acquisizione e l'organizzazione
dei dati, applicandoli in una vasta gamma di situazioni, ma soprattutto
nell'indagine scientifica, e scegliendo di volta in volta lo strumento
più adatto. Ha una sufficiente padronanza di uno o più linguaggi per
sviluppare applicazioni semplici, ma significative, di calcolo in ambito
scientifico. Comprende la struttura logico-funzionale della struttura
fisica e del software di un computer e di reti locali, tale da
consentirgli la scelta dei componenti più adatti alle diverse situazioni
e le loro configurazioni, la valutazione delle prestazioni, il
mantenimento dell'efficienza.
L'uso di strumenti e la creazione di applicazioni deve essere
accompagnata non solo da una conoscenza adeguata delle funzioni e della
sintassi, ma da un sistematico collegamento con i concetti teorici ad
essi sottostanti.
Il collegamento con le discipline scientifiche, ma anche con la
filosofia e l'italiano, deve permettere di riflettere sui fondamenti
teorici dell'informatica e delle sue connessioni con la logica, sul modo
in cui l'informatica influisce sui metodi delle scienze e delle
tecnologie, e su come permette la nascita di nuove scienze.
E’ opportuno coinvolgere gli studenti degli ultimi due anni in percorsi
di approfondimento anche mirati al proseguimento degli studi
universitari e di formazione superiore. In questo contesto è auspicabile
trovare un raccordo con altri insegnamenti, in particolare con
matematica, fisica e scienze, e sinergie con il territorio, aprendo
collaborazioni con università, enti di ricerca, musei della scienza e
mondo del lavoro.
Dal punto di vista dei contenuti il percorso ruoterà intorno alle
seguenti aree tematiche: architettura dei computer (AC), sistemi
operativi (SO), algoritmi e linguaggi di programmazione (AL),
elaborazione digitale dei documenti (DE), reti di computer (RC),
struttura di Internet e servizi (IS), computazione, calcolo numerico e
simulazione (CS), basi di dati (BD).
=================================
--
-- EN
https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html
======================================================
Prof. Enrico Nardelli
Past President di "Informatics Europe"
Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
Dipartimento di Matematica - Università di Roma "Tor Vergata"
Via della Ricerca Scientifica snc - 00133 Roma
home page: https://www.mat.uniroma2.it/~nardelli
blog: https://link-and-think.blogspot.it/
tel: +39 06 7259.4204 fax: +39 06 7259.4699
mobile: +39 335 590.2331 e-mail: nardelli(a)mat.uniroma2.it
online meeting: https://blue.meet.garr.it/b/enr-y7f-t0q-ont
======================================================
--
Sept. 12, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Enrico Nardelli
Grazie Beppe per la risposta, temo che il nostro disaccordo rimanga
perché è su un livello direi "filosofico" o "ermeneutico".
L'interpretazione di una "rappresentazione" (cioè di una sequenza di
bit) come "dato" (elemento passivo) o "istruzione" (elemento attivo) non
è intrinseca ma è strettamente dipendente dall'automa a cui la facciamo
manipolare. In astratto qualunque sequenza di bit può essere
interpretata in un modo o nell'altro.
È la stessa osservazione che ha fatto anche Giacomo nel suo ultimo
messaggio di risposta a te.
A seconda di come uno definisce l'automa alcune rappresentazioni
diventano "istruzioni" e sono quindi eseguibili altre no, ma non esiste
una distinzione intrinseca, "a priori".
Il mio intervento aveva lo scopo di mettere in luce questa dualità delle
"rappresentazioni".
Ho parlato della Macchina Universale di Turing (MUT) perché in essa
questa dualità è chiaramente evidente. Questo unico automa, quello
appunto definito dalla matrice di transizione della MUT (l'interprete,
usando la tua terminologia), permette di replicare qualunque altra
Macchina di Turing semplicemente sfruttando la natura duale delle
rappresentazioni. In questo senso le uniche vere "istruzioni" sono
quelle della matrice di transizione della MUT, che sono del tutto
generiche. Ciò che fa la differenza è quale "rappresentazione" la MUT
elabori.
Analogamente, in un automa X realizzato con l'architettura di von
Neumann, l'interprete equivalente alla matrice di transizione della MUT
è realizzato con un semplice automa a stati finiti che esegue ad libitum
il ciclo decodifica-esecuzione-caricamento. Le uniche vere "istruzioni a
priori" sono quindi quelle di questo automa a stati finiti. Ciò che
accade quando una "rappresentazione" viene decodificata dipende da come
è stato definito l'automa X, ovvero da come è stato definito il "set di
istruzioni" che l'automa X deve essere in grado di eseguire.
In altre parole, una "rappresentazione" è un dato o un'istruzione solo
"a posteriori", avendo definito qual è l'automa di riferimento da
considerare.
Ciao, Enrico
Il 11/09/2024 18:38, Giuseppe Attardi ha scritto:
> Mi spiace dover dissentire da Enrico.
> La Macchina di Turing dispone di istruzioni completamente distinte dai dati, si tratta degli stati e della matrice di transizione tra essi, e che nulla hanno a che vedere con i dati letti/scritti sul nastro della sua working memory.
>
> Quando si introduce la Macchina di Turing Universale TMU si effettua un’operazione di codifica della macchina M in una rappresentazione alpha che viene fornita in input alla TMU, insieme ai dati di input per la stessa, in modo che TMU(alpha, x) = M((x).
>
> La macchina TMU svolge il compito di interpreter del codice della macchina M. La macchina M stessa è un interprete del suo linguaggio macchina.
> Nelle macchine moderne microprogrammate, la CPU è l’interprete del linguaggio macchina, che è a sua volta implementato come interprete del linguaggio di microcodice.
> La struttura a livelli si ripete, con linguaggi come l’assembler, intepretati da un interprete di assembler o tradotti in linguaggio macchina da un assembler. Per i linguaggi a più alto livello, si usano sia interpreti del linguaggio ad alto livello, oppure compilatori in linguaggio macchina o una soluzione intermedia, ossia compilazione su macchina virtuale (es. JVM) che viene a sua volta interpretata. Poi vi sono ulteriori livelli, implementati attraverso librerie o una combinazione di librerie e hardware, come nel caso delle GPU.
> Quindi nei sistemi moderni esistono diversi livelli di macchine, ognuno col suo proprio linguaggio macchina, in quello che David Patterson chiama the wheel of reincarnation.
> Il fatto che le istruzioni di un livello possano essere rappresentate come dati per il livello superiore non ne cambia la natura.
> In alcuni linguaggi la rappresentazione è possibile nello stesso livello: ad esempio in Lisp i programmi sono espressi come S-espressioni e questo consente di scrivere in Lisp dei macro-processori per estendere il linguaggio. In Java il meccanismo della Reflection consente di manipolare i metodi di una classe e analogamente in Python.
>
> In altri termini i programmi possono essere codificati come dati e questo consente di fare su di essi tante operazioni utili: interpretazione, compilazione, trasformazioni, ottimizzazioni, linking, ecc. Ma ciò non ne cambia la natura di istruzioni, perché solo se rispettano il formato dell’interprete a cui vanno forniti possono essere eseguiti.
> Provate a caricare un eseguibile 386 su un ARM, o anche solo un COFF su un ELF (formati binari diversi per 386).
>
> In altri termini, qualunque istruzione può essere rappresentata come dato, ma non ogni dato può essere interpretato come istruzione. Ossia la semantica di un’istruzione è strettamente legata al suo interprete, quella di un dato no.
>
>> On 10 Sep 2024, at 17:25,nexa-request@server-nexa.polito.it wrote:
>>
>> From: Enrico Nardelli<nardelli(a)mat.uniroma2.it>
>> To:nexa@server-nexa.polito.it
>> Subject: Re: [nexa] "pogrammazione statistica" o "intelligenza
>> artificiale"? [era: AI Training is Copyright Infringement]
>> Message-ID:<b6ea2a4e-5645-4f80-8949-e684f34e66a5(a)mat.uniroma2.it>
>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>
>> Scusate, intervento nell'interessante discussione in corso tra Giacomo e
>> Beppe per fare chiarezza in termini semplici, per chi magari sa meno di
>> informatica, su come funziona un'architettura di von Neumann (detta
>> anche di Turing - von Neumann per motivi che saranno chiari nel seguito).
>>
>> L'architettura di von Neumann viene anche detta "a programma
>> memorizzato" perché il programma viene scritto (cioè caricato) nella
>> memoria. Nella realizzazione più semplice possibile di tale
>> architettura, il programma viene scritto in memoria a partire un
>> indirizzo prefissato e l'hardware su cui viene mandato in esecuzione il
>> programma viene realizzato in modo tale che all'accensione venga portata
>> nella CPU per l'esecuzione esattamente l'istruzione a tale indirizzo
>> prefissato.
>>
>> Essa viene decodificata ed eseguita e poi si carica la nuova istruzione,
>> che per default è quella all'indirizzo successivo di memoria, e si
>> riesegue il ciclo decodifica - esecuzione - caricamento. Questo processo
>> si ripete per eseguire in sequenza tutte le istruzioni del programma, a
>> meno che l'istruzione appena eseguita non sia un'istruzione di salto,
>> che ha l'effetto di far sì che la nuova istruzione da eseguire sia
>> invece quella a un altro indirizzo. Con questo meccanismo basta riuscire
>> a portare nella CPU un'istruzione diversa da quelle che il programmatore
>> originale ha predisposto per far deviare completamente il corso
>> dell'esecuzione e iniziare a eseguire come "istruzioni" ciò che c'è in
>> celle di memoria che in teoria dovrebbero avere solo "dati".
>>
>> Quindi, non c'è vera distinzione da programma e dati nell'informatica.
>>
>> Questo natura intrinsecamente duale delle "rappresentazioni" (termine
>> che uso per fondere la valenza di "dato" e di "istruzione") era stata
>> messa in luce anche da Alan Turing quando descrisse la MUT (Macchina
>> Universale di Turing). Essa è un caposaldo culturale dell'informatica,
>> analogo alla doppia valenza del DNA in biologia, come elenco delle
>> istruzioni per un organismo in sviluppo e contemporaneamente come dati
>> per tali istruzioni.
>>
>> (piccolo spazio pubblicità - INIZIO)
>>
>> A quelli che ne vogliono sapere di più sull'architettura di von Neumann
>> suggerisco il paragrafo 4.2.2 del mio libro
>> https://themiscrime.com/it/edizioni-themis/digitale-societa/item/547-la-riv…
>> in cui faccio vedere attraverso un semplice esempio a passo a passo come
>> una macchina a registri (una possibile implementazione dell'architettura
>> di von Neumann) esegue un piccolo programma. L'intera sezione 4.2
>> (Automa e linguaggio) discute come si realizza, concettualmente, una
>> "macchina" che calcola.
>>
>> A quelli che vogliono sapere di più sulla natura duale delle
>> rappresentazioni suggerisco la sezione 4.6 sempre del mio libro
>> https://themiscrime.com/it/edizioni-themis/digitale-societa/item/547-la-riv…
>> .
>>
>> (piccolo spazio pubblicità - FINE)
>>
>> Ciao, Enrico
>>
>> Il 10/09/2024 15:31, Giacomo Tesio ha scritto:
>>>>> On Tue, 10 Sep 2024 10:13:10 +0200 Giuseppe Attardi wrote:
>>>> Si può riassumere dicendo che...
>>> Sì, ma non stiamo solo chiacchierando fra noi e questo scambio sul
>>> crinale fra informazione e dato, fra matematica e informatica, può
>>> essere di interesse per molti iscritti alla lista Nexa, se riusciamo
>>> a mantenerlo intellegibile anche ai non programmatori.
>>>> Il codice che calcola f fa uso di theta, ma non è theta che esegue
>>>> alcun calcolo e non può essere chiamato software.
>>>> [...]
>>>> L’architettura Von Neuman distingue tra istruzioni e dati: le prime
>>>> sono caricate nella CPU, i secondi nella ALU.
>>> Anzitutto io ho parlato di macchine programmabili, non specificatamente
>>> dell'architettura von Neumann che rappresenta solo **una**
>>> delle architetture possibili per tali macchine.
>>> Inoltre anche nell'architettura von Neumann nessuna istruzione "esegue
>>> alcun calcolo": è l'unità di calcolo all'interno della CPU ad
>>> azionare la circuiteria associata a ciascuna istruzione.
>>> Le Vector Reducing Machines costituiscono una classe di architetture
>>> diverse (ciascuna caratterizzata dalla rispettiva topologia), ma
>>> ciascuna esegue programmi codificati come matrici di dimensionalità
>>> appropriata che rappresentano funzioni fra spazi vettoriali distinti.
>>>> ma rimangono istruzioni, se caricate nella CPU.
>>> In realtà no: quando vengono caricate nelle CPU moderne, le istruzioni
>>> definite nella ISA vengono trasformate in microcodice proprietario
>>> (come 380° ricorda spesso): dunque sono trattate come dato
>>> _ANCHE_ dalla CPU.
>>> Quindi, se theta "non può essere chiamato software", non possono essere
>>> chiamati software nemmeno Windows, Linux o Android.
>>>> Semmai le istruzioni, che sono conservate in memoria, possono essere
>>>> trattate come dati, in programmi che si automodificano
>>> Mica solo in programmi che si automodificano!
>>> Ogni compilatore, ogni interprete e ogni macchina virtuale tratta le
>>> istruzioni come dati. Ogni sistema operativo le tratta come dati mentre
>>> le salva sul filesystem o le carica in RAM ad ogni page fault.
>>> Per non parlare dei molti compilatori JIT (just in time) che caricano in
>>> memoria le istruzioni di un eseguibile RISC-V, le traducono al volo
>>> in istruzioni x86 e per poi farle eseguire alla CPU, trattando sia le
>>> istruzioni RISC-V che quelle x86 come dati. [1]
>>> Gli esempi sono innumerevoli senza nemmeno nominare LiSP!
>>> (ops! :-D)
>>> Perché?
>>> Perché gli eseguibili _sono_ dati. Come lo è il codice sorgente.
>>> Sono rappresentazioni trasferibili di informazioni.
>>> Infatti, come ho provato a spiegare nella mail precedente, per ogni
>>> sequenza di byte (foto, film, audio, testo, /dev/random etc...) puoi
>>> costruire infinite macchine programmabili che eseguono quella
>>> sequenza di byte per determinare il proprio comportamento.
>>> Ne consegue che qualsiasi dato è eseguibile esattamente come qualsiasi
>>> eseguibile è dato. [2]
>>> Ma c'è di più: poiché puoi sempre scrivere un compilatore che trasformi
>>> qualunque sequenza di byte in una diversa sequenza eseguibile per una
>>> qualche macchina programmabile, ogni dato è anche codice sorgente.
>>> Ne consegue che l'insieme dei dati, l'insieme degli eseguibili e
>>> l'insieme dei codici sorgente coincidono. [3]
>>> Q.E.D. :-D
>>> La distinzione è puramente colloquiale, legata all'uso che stiamo
>>> facendo della sequenza di byte in un certo momento, ma è indipendente
>>> da qualsiasi caratteristica intrinseca della sequenza di byte.
>>>> una rete neurale calcola una funzione f(theta, x) = y
>>> Proviamo a sostituire i termini antropomorfici:
>>> "una Vector Reducing Machine implementa una funzione f(theta, x) = y"
>>> Se invece di una "rete neurale" che "calcola" mettiamo una macchina
>>> che implementa, la frase è meno evocativa ma descrive più precisamente
>>> ciò che effettivamente accade.
>>> La funzione f infatti appartiene all'insieme delle informazioni nelle
>>> nostre menti, esperienze soggettive di pensiero comunicabile, ma
>>> fintanto che rimane lì dentro, non può avere effetti sul mondo esterno.
>>> Se vogliamo che abbia effetti dobbiamo esprimerla, imprimendola sui
>>> componenti di una macchina che la implementa. Questa macchina può
>>> essere fisica o virtuale: il già citato llama.cpp è un esempio di
>>> macchina virtuale che implementa la funzione f.
>>>> theta sono i parametri del modello
>>> Utilizzare il termine "modello" è errato e fuorviante perché richiama
>>> un modello statistico che per definizione fornisce informazioni
>>> intellegibili sul campione statistico da cui viene calcolato.
>>> Matematicamente, theta è la prima variabile indipendente di f.
>>> Ma dal punto di vista informatico, theta è l'eseguibile che determina
>>> in modo preciso e deterministico il comportamento della Vector Reducing
>>> Machine che implementa f.
>>>> Ossia non bastano i dati (theta) per modificare f.
>>> Stai confondendo la funzione f : t -> x -> y, con la funzione
>>> g : x -> y ottenuta attraverso l'applicazione parziale di un
>>> particolare theta a f.
>>> Chiudere f su un theta' diverso è sufficiente ad ottenere una
>>> funzione g' diversa, senza alterare in alcun modo f.
>>> Questo perché f descrive una macchina programmabile e theta uno dei
>>> possibili programmi che tale macchina può eseguire.
>>> Infatti, come tu stesso osservi,
>>>> Theta è del tutto inutile senza f.
>>> esattamente come un binario x86 (o ARM o RISC-V etc...) è del tutto
>>> inutile senza una macchina che lo esegua.
>>> ____
>>> Passiamo ora alle minuzie da nerd:
>>>>> - ne si codifica gli elementi come vettori numerici attraverso
>>>>> una analisi statistica
>>>> Nel caso dei testi si fa una tokenizzazione (ad esempio con le regole
>>>> di Porter)
>>> Porter descrive il suo algoritmo come:
>>> """
>>> a process for removing the commoner morphological and inflexional
>>> endings from words in English. Its main use is as part of a term
>>> normalisation process...
>>> """ https://tartarus.org/martin/PorterStemmer/ Nota le parole "commoner" e "normalization": si tratta di (e si basa su)
>>> una analisi _statistica_ del testo.
>>>> Nessuno di questi lo chiamerei un’analisi statistica.
>>> Nel caso della compilazione della matrice degli embedding (l'eseguibile
>>> della VRM) a partire dai testi sorgente, sono d'accordo.
>>> Non è una _analisi_ statistica ma un processo di _compilazione_
>>> statistica (parte di un più ampio processo di _programmazione_
>>> statistica che parte dalla ricerca e selezione dei testi sorgente).
>>> Tale processo NON produce infatti un _modello_ statistico delle
>>> relazioni presenti nel dataset utilizzato, ma un eseguibile per
>>> una specifica Vector Reducing Machine.
>>> Si tratta di un processo statistico di compilazione perché, sia ad ogni
>>> batch che complessivamente, le variazioni applicate all'eseguibile
>>> dipendono esclusivamente dalla frequenza delle coppie di vettori
>>> input + next token presenti nel data set.
>>> Al termine del processo, la matrice risultante è contemporaneamente
>>> - un eseguibile per tutte le Vector Reducing Machines con quella
>>> topologia
>>> - una compressione lossy di TUTTI i testi utilizzati durante il
>>> processo di compilazione (come dimostra l'utilizzo di filtri
>>> anti plagio sull'output prodotto dal LLM per nascondere le
>>> prove del plagio avvenuto il processo di compilazione.
>>> Nota poi come smettere di usare una terminologia antropomorfa e
>>> riconoscere la compilazione dell'eseguibile per una VRM come
>>> parte di un processo di programmazione statistica, fa venir
>>> meno alcune distinzioni utili soltanto a deresponsabilizzare
>>> chi realizza questi software come quella fra supervised e
>>> unsupervised "training".
>>> Nessuna AI fa "training" unsupervised, semplicemente esistono
>>> metodologie diverse di programmazione statistica applicabili
>>> a contesti diversi, in alcuni dei quali è possibile valutare
>>> automaticamente l'errore contenuto nell'output prodotto dalla
>>> VRM (ricorderai ad esempio AlphaGo).
>>> A presto!
>>> Giacomo
>>> [1] i primi che mi vengono in mente:
>>> https://michaeljclark.github.io/
>>> https://github.com/libriscv/libriscv
>>> [2] se preferisci una dimostrazione equivalente ma dotata di pedigree
>>> accademico, la trovi a pagina 23 di questo manuale:
>>> https://theory.cs.princeton.edu/complexity/book.pdf
>>> [3] naturalmente non tutte le macchine programmabili sono in grado di
>>> eseguire qualsiasi sequenza di byte: per ottenere eseguibili
>>> supportati da una specifica macchina programmabile che insista
>>> su un sottoinsieme di tale universo, scriviamo compilatori che
>>> rappresentano funzioni da un sottoinsieme di nostra scelta (i cui
>>> elementi chiamiamo "sorgenti") e l'insieme contenente gli eseguibili
>>> di quella macchina (e i possibili messaggi di errore :-D).
>> --
>>
>> -- EN
>>
>> https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html
>> ======================================================
>> Prof. Enrico Nardelli
>> Past President di "Informatics Europe"
>> Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
>> Dipartimento di Matematica - Università di Roma "Tor Vergata"
>> Via della Ricerca Scientifica snc - 00133 Roma
>> home page:https://www.mat.uniroma2.it/~nardelli
>> blog:https://link-and-think.blogspot.it/
>> tel: +39 06 7259.4204 fax: +39 06 7259.4699
>> mobile: +39 335 590.2331 e-mail:nardelli@mat.uniroma2.it
>> online meeting:https://blue.meet.garr.it/b/enr-y7f-t0q-ont
--
-- EN
https://www.hoepli.it/libro/la-rivoluzione-informatica/9788896069516.html
======================================================
Prof. Enrico Nardelli
Past President di "Informatics Europe"
Direttore del Laboratorio Nazionale "Informatica e Scuola" del CINI
Dipartimento di Matematica - Università di Roma "Tor Vergata"
Via della Ricerca Scientifica snc - 00133 Roma
home page: https://www.mat.uniroma2.it/~nardelli
blog: https://link-and-think.blogspot.it/
tel: +39 06 7259.4204 fax: +39 06 7259.4699
mobile: +39 335 590.2331 e-mail: nardelli(a)mat.uniroma2.it
online meeting: https://blue.meet.garr.it/b/enr-y7f-t0q-ont
======================================================
--
Sept. 12, 2024
Re: [nexa] AI Training is Copyright Infringement
by Giacomo Tesio
Caro Fabio,
ho riflettuto a lungo se risponderti, perché non mi piace perdere tempo
e non mi sembri interessato a comprendere come funzionano i software di
cui parliamo. Non so perché, ma mi sembra evidente.
Tuttavia, rispondendo a Duccio, mi sono reso conto che subite
la stessa confusione ("anfibolia"? :-D) e la lettura del paper
potrebbe svelare ad entrambi la dinamica dell' "imitation game"
che OpenAI & friends stanno "giocando".
On Tue, 10 Sep 2024 12:07:53 Fabio Alemagna <falemagn(a)gmail.com> wrote:
> Io trovo che sia scientificamente interessante e persino
> strabiliante che un algoritmo che non è stato esplicitamente
> istruito per saper far di conto, riesca a far di conto entro
> una certa misura, semplicemente per essere stato allenato
> su tomi che spiegano come si fa di conto.
Commentavi questo articolo: https://arxiv.org/pdf/2301.13867
Leggiamo come è composto il dataset con cui hanno testato le
"competenze matematiche" dei LLM di OpenAI (pagina 4):
- books that are widely used in universities to teach upper
undergraduate or first-year graduate courses in a degree in
mathematics
- math.stackexchange.com, a collection of books, and the
MATH dataset
- the book Problem-Solving Strategies, that is often used
to prepare for mathematical competitions
- il dataset di https://arxiv.org/abs/1912.01412 che contiene
decine di esercizi... e le soluzioni.
Leggi con calma e rifletti: non noti niente?
Questi ricercatori NON hanno sottoposto a ChatGPT e GPT-4 problemi
inediti, ma problemi tratti da eserciziari disponibili in rete.
Ora, se immagini una qualche "intelligenza artificiale" alle prese con
tutti questi problemi, è ragionevole trovare i risultati sintetizzati
nell'abstract che avevo citato "strabilianti" [1].
Ma se hai chiaro il processo di compilazione / compressione dei testi
sorgente che produce il LLM, trovi quei risultati piuttosto ovvi: il
LLM ha prodotto in output le soluzioni codificate nelle matrici
eseguibili.
Quale delle due spiegazioni passa il rasoio di Occam?
1. ChatGPT "è intelligente ma non si impegna"
2. ChatGPT è un archivio compresso eseguibile che contiene i problemi
che gli sono stati sottposti ed ha "autocompletato" i problemi,
con le soluzioni che li seguivano?
Che tu, Duccio e molti altri che non comprendono come funzionano questi
software programmati staticamente, vi facciate ingannare da questo
"imitation game" è purtroppo prevedibile e previsto.
L'enorme quantità di testi compressi dentro GPT-4 (alcuni dei quali
mai pubblicati, come quelli prodotti dai giornalisti che fanno i
"chatbot helper" per arrotondare) rende estremamente improbabile
che un estratto venga servito a qualcuno che lo possa riconoscere.
In questo caso però, questo è proprio ciò che è successo!
E che 8 ricercatori universitari non si siano accorti di aver
dimostrato il plagio [2] di decine di manuali sotto copyright [3]
rende _evidente_ quanti DANNI la favola della "intelligenza
artificiale", del "machine learning", delle "allucinazioni"
e stronzate varie stia facendo alla ricerca informatica
e al progresso dell'umanità.
E nota che non si tratta di persone impreparate.
Ma le parole che usiamo per descrivere la realtà determinano
il nostro modo di intepretarla.
Non fatevi ingannare: l'intelligenza artificiale non esiste.
Le macchine non imparano, non hanno allucinazioni
e non funzionano assolutamente come un essere umano.
Urge cambiare linguaggio.
Giacomo
[1] non potevi scegliere un termine più appropriato! :-D
https://www.etimo.it/?term=strabiliare
[2] spacciando ChatGPT come una "intelligenza artificiale _generativa_"
si/gli intesta la paternità delle soluzioni, sottraendola agli
autori https://it.wikipedia.org/wiki/Plagio_(diritto_d'autore)
[3] per altro, in un modo che esclude l'applicabilità del fair
use negli USA, come ci ha spiegato benissimo Giancarlo qui
https://server-nexa.polito.it/pipermail/nexa/2024-September/053236.html
perché ChatGPT diventa un surrogato gratuito di quegli stessi testi,
riducendone il valore di mercato
Sept. 12, 2024