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
informatica a scuola (was Re: R: C'e' cascato pure Benanti...)
by 380°
Buongiorno,
chiedo scusa se arrivo tardi ma ho una perplessità
Paolo Atzeni <paolo.atzeni(a)uniroma3.it> writes:
> Credo che la questione non sia saper programmare (né tantomeno saper
> programmare a livello professionale), ma conoscere i principi
> dell'informatica, magari (chissà se noi lo vedremo mai),
d'accordo ma come si fa a conoscere i "principi dell'informatica" se non
si capisce come funziona /dentro/ una macchina programmabile e si impara
cos'è il software (sorgente) e come da quello si ottiene un eseguibile
(binario) dalla macchina programmabile... magari sperimentandolo un
pochino (laboratorio di sistemistica :-O )?
perché già alle elementari i bimbi non devono essere costretti a
_vedere_ cosa succede dentro una "macchina programmabile" così che non
gli venga in mente nemmeno per scherzo di sviluppare il /pensiero
magico/ che _aleggia_ attorno a tali macchine?!?
si può cominciare con divertenti giochi con rudimentali circuiti logici
e via via fino arrivare al termine della scuola dell'obbligo (16 anni)
con i primi rudimenti di programmazione (magari con un linguaggio
funzionale [1])? Se lo facevo io col Commodore64 nel 1981 (OK, col
BASIC, ma vabbè...) perché non dovrebbero riuscirci i ragazzi di oggi?
poi chiaro, non tutti gli studenti diventeranno programmatori così come
non tutti gli studenti diventeranno interpreti linguistici, chirurghi o
astrofisici... però almeno _in teoria_ tutti lo possono diventare... /in
potenza/
...e tutti, ma proprio tutti tutti, avranno le conoscenze di base per
confutare il terrapiattismo, per fare un esempio eclatante
invece a me pare che di "infopiattisti" ce ne siano un po' troppi... e
non ce lo dovremmo permettere
non ci sarebbe così tanto (bel) lavoro da fare?!? Dove sono le risorse?
> attraverso l'introduzione dell'informatica nella scuola, come
> disciplina curriculare autonoma, con i suoi principi (ovviamente di
> volta in volta adeguati al livello scolastico).
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 da https://www.leviseregno.edu.it/pagine/liceo-scientifico-opzione-scienze-app…)
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
[...]
saluti, 380°
[1] magari meno "spaventoso" di Haskell :-D
[2] tipo insegnare "trattamento testi" (si usa ancora?!?) con "MS Word"
e non con LaTeX perché "mica possiamo pretendere che...!"
--
380° (Giovanni Biscuolo public alter ego)
«Noi, incompetenti come siamo,
non abbiamo alcun titolo per suggerire alcunché»
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about <https://stallmansupport.org>.
Sept. 11, 2024
Re: [nexa] AI Training is Copyright Infringement
by 380°
Ciao Giacomo,
scusa ma faccio fatica a stare dietro a questo thread, mi sono "messo in
pari" solo ora.
Giacomo Tesio <giacomo(a)tesio.it> writes:
[...]
>> Il software (programmato statisticamente) è un'opera derivata dei
>> testi (dati?) utilizzati per il "machine learning": ho capito bene?
>
> Sì.
>
> Esattamente come un binario eseguibile dall'architettura x86_64 è
> un'opera derivata dai sorgenti usati per compilarlo, una matrice
> eseguibile dall'architettura GPT-4 è un'opera derivata dei testi
> usati per realizzarla.
OK grazie Giacomo, ora che ho compreso che a tuo giudizio l'"AI
Training" implica violazione di copyright perché il "software
programmato statiticamente impropriamente detto modello" (per usare le
tue definizioni) è un'opera derivata dai testi protetti usati per
realizzarlo...
...non te lo chiederò mai più :-)
Quello in oggetto è un argomento ricorrente in questa lista, per esempio
quasi un anno fa esatto ci fu questo thread:
https://server-nexa.polito.it/pipermail/nexa/2023-September/051648.html
nel quale tu, Giancarlo Frosio et al (io compreso) avete già
_ampiamente_ esposto le vostre posizioni in merito; questo thread non
sposta di una virgola quanto già detto all'epoca.
Rileggendolo mi rendo conto che anche io comincio a essere un disco
rotto, e me ne scuso: è inutile che io ripeta quanto già sostenuto più
volte.
Quello che ci tengo a ripetere, invece, è il quadro generale, direi
folosofico, del copyright:
https://server-nexa.polito.it/pipermail/nexa/2023-September/051674.html
«The promise of a post-copyright world»
Cioè: il copyright è una abberrazione giuridica e gli argomenti usati per
sostenere che "AI Training is Copyright Infringement" non fanno altro
che aumentare il livello di abberrazione.
Ciao, 380°
--
380° (Giovanni Biscuolo public alter ego)
«Noi, incompetenti come siamo,
non abbiamo alcun titolo per suggerire alcunché»
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about <https://stallmansupport.org>.
Sept. 11, 2024
Re: [nexa] Database di accordi commerciali tra aziende AI e piattaforme ed editori per l'uso di contenuti
by 380°
Buongiorno Antonio,
molto interessante, grazie!
"Antonio Vetro'" <antonio.vetro(a)polito.it> writes:
> Un database che riporta gli accordi che le aziende di AI hanno
> stipulato con piattaforme ed editori per utilizzare i loro contenuti
> per l'addestramento di Large Language Models (LLM)
dove c'è scritto che gli accordi sono stati siglati per avere il
permesso degli editori di usare i contenuti nell'addestramento degli
LLM?
la pagina dice:
--8<---------------cut here---------------start------------->8---
How many AI deals have technology companies made?
Listed below are details of 51 confirmed AI deals involving platforms
and publishers. Details of reported discussions about a further 17 deals
are also included where press reports identified both parties involved
in talks.
--8<---------------cut here---------------end--------------->8---
...ma per capire se riguardano il permesso di usare i contenuti per
l'addestramento bisognerebbe verificare i dettagli, accordo per accordo
> https://petebrown.quarto.pub/pnp-ai-partnerships/
>
> Sviluppato da ricercatori della Columbia Journalism School, non ci
> sono però le fonti usate.
Mi pare che le fonti siano citate nelle schede che compaiono "cliccando"
sulle frecce che mostrano il dettaglio di ciascun accordo elencato nella
sezione
https://petebrown.quarto.pub/pnp-ai-partnerships/#which-companies-have-stru…
Cioè: dubito seriamente che i ricercatori abbiano potuto esaminare nel
dettaglio gli accordi commerciali per effettuarne una _analisi_
giuridica e "classificarli" (giuridicamente) in base al loro contenuto.
Per esempio:
--8<---------------cut here---------------start------------->8---
OpenAI 🤝 Conde Nast
Date: 20 August, 2024
Platform: OpenAI
Partner: Conde Nast
Brands included: 23
Status: Confirmed
Reported Details: "OpenAI's statement suggests the deal with Condé Nast is similar in structure to the search deals struck with The Atlantic and News Corp." (axios.com) "It’s crucial that we meet audiences where they are and embrace new technologies while also ensuring proper attribution and compensation for use of our intellectual property." (condenast.com)
Press Release(s): Conde Nast [1] | OpenAI [2]
[1] https://www.condenast.com/news/conde-nast-openai-partnership
[2] https://openai.com/index/conde-nast/
--8<---------------cut here---------------end--------------->8---
Nella press release [2] citata sopra, OpenAI scrive:
--8<---------------cut here---------------start------------->8---
With the introduction of our SearchGPT prototype, we’re testing new
search features that make finding information and reliable content
sources faster and more intuitive. We’re combining our conversational
models with information from the web to give you fast and timely answers
with clear and relevant sources. SearchGPT offers direct links to news
stories, enabling users to easily explore more in-depth content directly
from the source. We plan to integrate the best of these features
directly into ChatGPT in the future.
We're collaborating with our news partners to collect feedback and
insights on the design and performance of SearchGPT, ensuring that these
integrations enhance user experiences and inform future updates to
ChatGPT.
--8<---------------cut here---------------end--------------->8---
I dettagli sono scarsi, perché occorrerebbe avere a disposizione almeno
la documentazione tecnica (e fidarsi sia veritiera) dell'architettura di
SearchGPT... ma conoscendo "i polli", a naso sarei pronto a scommettere
che si tratta di /altro/ (filtri sull'output?) e non del processo di
"apprendimento" degli LLM.
Grazie! 380°
--
380° (Giovanni Biscuolo public alter ego)
«Noi, incompetenti come siamo,
non abbiamo alcun titolo per suggerire alcunché»
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about <https://stallmansupport.org>.
Sept. 11, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Giacomo Tesio
Grazie Guido,
On Tue, 10 Sep 2024 17:01:25 +0200 Guido Vetere wrote:
> l'apprendimento automatico (e l'intelligenza artificiale *at large*)
> non esiste [...] e una rete neurale non è altro che la compilazione
> dei dati di training
non davvero avrei saputo dirlo meglio! ;-)
E sì, essere costretti ad usare continuamente locuzioni fuorvianti
come "allucinazioni", "intelligenza artificiale", "apprendimento
automatico", "reti neurali" etc... genera continui equivochi
linguistici, provocando anfibolie in coloro che non si tengono
saldo in mente il funzionamento effettivo di questi software.
Non mi sarei mai spinto a descrivere la favola dell'intelligenza
artificiale come un'anfibolia sostenuta da meri argomenti "ad nauseam"
su paper e riviste "scientifiche", ma... come contraddirti?
Giacomo
Sept. 10, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Enrico Nardelli
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
======================================================
--
Sept. 10, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Guido Vetere
Se stiamo parlando del fatto che l'apprendimento automatico (e
l'intelligenza artificiale *at large*) non esiste perché non esiste la
distinzione tra dato e programma, e una rete neurale non è altro che la
compilazione dei dati di training, io francamente mi chiamo fuori. Più che
un argomento tecnico mi sembra un'anfibolia [1], cioè un equivoco
linguistico.
Per me l'apprendimento automatico (cioè degli automi) è la capacità di
costruire funzioni da varie e complesse procedure di calcolo sui dati,
annotati o meno. La differenza con la programmazione, imperativa o
dichiarativa, è *striking,* come dimostra il fatto che fare debugging di
una rete neurale è arduo ai limiti dell'impossibile, mentre correggere un
programma C o Prolog è cosa normalissima.
L'*argumentum ad nauseam* [1] (noto anche come argomento per ripetizione) è
la fallacia logica secondo cui qualcosa diventa vero se viene ripetuto
abbastanza volte. È una sottocategoria dell'argomento per asserzione ed è
una fallacia informale. Cerchiamo di evitarlo. Ciascuno può rimanere della
propria opinione e cercare di portare qualcosa di utile alla discussione
nel rispetto delle opinioni altrui.
Cheers,
G.
[1]
https://www.treccani.it/enciclopedia/anfibolia_(Dizionario-di-filosofia)/
[2] https://rationalwiki.org/wiki/Argumentum_ad_nauseam
On Tue, 10 Sept 2024 at 15:59, Giacomo Tesio <giacomo(a)tesio.it> wrote:
> Scusate, ovviamente intendevo canzonare supervised e unsupervised
> "learning", non "training". Riformulo dunque l'ultimo paragrafo.
>
> Nessuna AI "impara da sola", 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).
>
>
> Giacomo
>
Sept. 10, 2024
per i non programmatori
by alessandro marzocchi
Prendo spunto da alcune parole di Giacomo Tesio a Giuseppe Attardi
non stiamo solo chiacchierando fra noi e questo scambio ... può
> essere di interesse per molti iscritti alla lista Nexa, se riusciamo
> a mantenerlo intellegibile anche ai non programmatori.
>
Non programmatore ed invecchiato nell'ignoranza STEM, mi avete insegnato e
mi fate faticare molto, non pretendo che tutto sia reso comprensibile anche
ai non tecnici ma se ci provate non posso che ringraziare.
Cordialmente
Duccio (Alessandro Marzocchi)
Sept. 10, 2024
Re: [nexa] "pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Giacomo Tesio
Scusate, ovviamente intendevo canzonare supervised e unsupervised
"learning", non "training". Riformulo dunque l'ultimo paragrafo.
Nessuna AI "impara da sola", 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).
Giacomo
Sept. 10, 2024
"pogrammazione statistica" o "intelligenza artificiale"? [era: AI Training is Copyright Infringement]
by Giacomo Tesio
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).
Sept. 10, 2024
Re: [nexa] AI Training is Copyright Infringement
by Fabio Alemagna
Il giorno mar 10 set 2024 alle ore 01:14 Giacomo Tesio <giacomo(a)tesio.it>
ha scritto:
> Salve Fabio,
>
> On Mon, 9 Sep 2024 12:45:09 +0200 Fabio Alemagna wrote:
>
> > Quando un essere umano studia da un libro [...]
> >
> > La domanda conseguente dunque è: un essere umano viola il copyright
> > apprendendo dai testi da cui studia?
>
> Anzitutto, un essere umano è soggetto di diritti, un software no.
>
Gli umani che scrivono il software hanno diritti, e doveri. Del resto,
suppongo tu non ritenga che sia il software responsabile dell'eventuale
violazione del copyright, ma gli umani che lo hanno scritto, dico bene?
>
> Dunque, in un ragionamento giuridico, paragonarlo ad un software
> è "not even wrong", oltre che alienante ed offensivo.
>
"alienante e offensivo" sono tue valutazioni strettamente personali che
fanno leva su emozioni e esulano l'ambito del discorso. Qui parliamo in
punta di diritto, e diritto, non di cosa ti offenda.
Restando sulla questione del copyright, la domanda resta: se l'umano può
liberamente citare passaggi di libri, consapevolmente o meno, senza essere
accusato di aver violato il copyright *durante l'apprendimento*, per quale
ragione se a farlo è un algoritmo le cose cambiano? Puoi motivarlo
tecnicamente, in punta di diritto?
> In qualunque caso GPT-4 non ha appreso nulla dai testi usati per la sua
> programmazione. [...]
"nulla" significa zero, assenza completa.
> Contrary to many positive reports in the media about GPT-4 and
> ChatGPT's exam-solving abilities (a potential case of selection bias),
> their overall mathematical performance is well below the level of a
> graduate student.
Lì c'è scritto "below the level", ma non c'è scritto "zero". Non puoi
affermare che non ha appreso niente, per la semplice ragione che qualcosa
la sa fare, anche se non abbastanza. 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.
Mi sembra, del resto, esattamente quello che succede quando qualcuno vuole
insegnare a te a saper far di conto: ti spiega come si fa, un certo numero
di volte, e così tu, poco a poco, impari, non per questo evitando errori
tutte le volte, a meno che tu non ti trovi all'estremità destra della
gaussiana. Ti dirò di più: una buona porzione di esseri umani in esistenza
sa far di conto meno di quanto riesca a ChatGPT, nonostante gli sia stato
spiegato come fare, più e più volte.
> > 1) Non solo gli umani apprendono, bensì tutti gli esseri viventi.
>
> Cosa che un software non è.
È irrilevante. Si sta parlando del termine "antropomorfizzazione", che si
applica esclusivamente agli umani. È quindi semanticamente errato parlare
di "antropomorfizzazione" se si vuole criticare l'uso del termine
"apprendere" quando riferito agli algoritmi.
>
>
> 2) Esistono definizioni di "apprendimento" [...]
>
> Non ne dubito!
>
> Ridefinire termini di uso comune è fondamentale per generare il genere
> di profonda confusione che spinge qualcuno a credere di parlare con
> "intelligenze artificiali".
>
Non c'è un complotto atto a voler confondere la gente e spingerla a
credere di parlare con intelligenze artificiali, è la semplice e naturale
ricerca di astrazione, il ricavare generiche, eleganti e semplici regole
che siano minimamente sufficienti a descrivere la realtà. Se posso
descrivere "apprendimento" senza far riferimento a concetti indefinibili
come "coscienza" e "umanità", allora vuol dire che "coscienza" e "umanità"
non sono necessari per definire "apprendimento". Rasoio di Occam.
> > A tal proposito, questo è quel che ne pensa Creative Commons:
>
> Indignor quandoque bonus dormitat Homerus!
> Nunquam non miror: https://creativecommons.org/support-cc/
Sorry, ma devi fare di più che provare a gettare discredito
sull'interlocutore, per smentirne le tesi, esposte tecnicamente e in punta
di diritto.
Fabio
Sept. 10, 2024