Come fanno ChatGPT & Co. a "capire"? Un’introduzione agli embedding

Ғылым және технология

Una delle applicazioni più iconiche dell’AI è sicuramente la generazione di testo, come testimoniato dal recente successo di Large Language Models (LLM) quali GPT, Gemini e LLaMA. Ma come fanno questi modelli a “capire” il contesto della domanda che gli si pone in input e a produrre risposte convincenti, praticamente indistinguibili, da quelle fornite da un essere umano?
In questo episodio, insieme a Fabio Stefanini e Luca Ducceschi, mostriamo come funzionano gli embedding per rappresentare l'informazione testuale in un formato numerico manipolabile dalle reti neurali. Vediamo inoltre qualche esempio di bias linguistico introdotto da questa codifica.
Conduce Luca Mariot.
Luca Ducceschi ha un background da linguista teorico, ma dopo il dottorato si è specializzato in linguistica computazionale. Si è occupato di ricerca, soprattutto lavorando presso l'università di Trento come Post-Doc e come docente a contratto. Attualmente insegna diversi corsi, tra cui linguistica computazionale e interfacce linguistiche, presso le Università di Trento e di Bolzano.
Twitter/𝕏 di Luca » x.com/DucceschiLuca
Fabio Stefanini è un Ricercatore in Meta nel campo dell'interazione uomo-macchina, esperto AR/VR/ML e neuroscienze computazionali, laurea in Fisica alla Sapienza sul comportamento collettivo, PhD a ETHZ su ingegneria neuromorfa, ricercatore a Columbia University e UCSF su ippocampo e memoria.
Twitter/𝕏 di Fabio » x.com/faffofratello
Riferimenti:
- Il libro citato da Luca Ducceschi sulla natura dell'informazione è: J. Gleick, "The Information: A History, a Theory, a Flood", Pantheon Books, 2011 (disponibile anche in italiano sotto il titolo "L'informazione. Una storia. Una teoria. Un diluvio", edito da Feltrinelli nel 2015)
- La demo mostrata da Luca Ducceschi durante la puntata è un notebook eseguibile in Google Colab (colab.research.google.com/). Il sorgente del notebook è disponibile sul repository Github di Liberi Oltre STEM al seguente link: github.com/rymoah/loli-stem
Capitoli
0:00 Introduzione
2:12 Parole come vettori in uno spazio n-dimensionale
4:45 Esempio in due dimensioni, cosine similarity
9:00 Semantica come co-frequenza di parole
11:50 Come si costruisce un embedding?
16:08 Tokenizzazione e analisi delle frequenze
18:28 Trasversalità della modellazione matematica del linguaggio
23:00 Rappresentazione compatta del linguaggio
27:20 Demo di word2vec
32:30 Esempio di embedding in 300 dimensioni
35:38 Bias linguistici negli embedding
41:40 Gli embedding sono "intelligenti"?
46:17 Conclusioni
▔▔▔▔▔
SUPPORTA LIBERI OLTRE!
»» www.liberioltreleillusioni.it...
Vuoi contribuire? ASSOCIATI!
»» www.liberioltreleillusioni.it...
▔▔▔▔▔
Un luogo Aperto, Plurale, non Ideologico e non Identitario. Cerchiamo di diffondere i principi del Merito, della Competenza, della Responsabilità Individuale, della Trasparenza Decisionale e Informativa, della Sussidiarietà, della Tutela delle Libertà Individuali, dell’Economia di Mercato, della Concorrenza e della Solidarietà Individuale e Collettiva... Questa è Liberi Oltre!
▔▔▔▔▔
Seguici sui nostri social:
Twitter/𝕏 » / liberioltre
Instagram » / liberioltre
Sito » www.liberioltreleillusioni.it/
Telegram » t.me/liberioltre

Пікірлер: 30

  • @vsmaldino
    @vsmaldino4 ай бұрын

    Permettetemi un commento egocentrico. Ho scritto il mio primo programma a 16 anni perforando schede di cartoncino e da allora non ho mai smesso di lavorare e formarmi. Il modello formativo era quello dell’informatico tuttologo che doveva conoscere tutto quello che girava nel mondo IT (S.O. , linguaggi, architetture, …) e fino a 15-20 anni fa, sia pure con grande fatica via via crescente, sembrava funzionare; l’AI è la dimostrazione definitiva che non si può star dietro a tutto sigh. Infine in questo video, ho potuto toccare con mano l’utilità di due degli esami universitari più odiati dalla mia generazione: algebra e geometria 😊

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    la fama di algebra e geometria come esami universitari più odiati tra gli informatici è ancora viva e vegeta (assieme ad analisi, ovviamente :) )

  • @trollolotommy

    @trollolotommy

    4 ай бұрын

    In realta' e' il contrario, se non sei full stack dalla business mission/matematica alla implementazione su GPU hai le strade molto vincolate. In molto stiamo studiando CUDA perche' innovazione senza kernel low level e' troppo lenta. Google cuda mode

  • @MarioMolinari-ds4ko
    @MarioMolinari-ds4ko4 ай бұрын

    Interessante, penso che lo rivedrò.

  • @maurogalliano
    @maurogalliano4 ай бұрын

    bravi, molto interessante e utile

  • @ManuelFae
    @ManuelFae4 ай бұрын

    dopo gatto-culo non ho capito più nulla perchè sto ancora ridendo 😀 Bellissima puntata, complimenti per la chiarezza

  • @matteorossi6747

    @matteorossi6747

    4 ай бұрын

    Perché nessuno si è accorto che c'era 'blonde' vicino ad 'ass'

  • @matteogarzetti
    @matteogarzetti4 ай бұрын

    Puntata tonica

  • @matteorossi6747
    @matteorossi67474 ай бұрын

    Da non esperto in materia ascoltando altri video mi sono incuriosito al concetto di "comportamento emergente". Vale la pena farci una puntata dedicata? Come si capisce se un output è un comportamento atteso o qualcosa di inatteso? Ci sono studi a riguardo? Questi comportamenti emergenti sono alla base dell'AGI? Come stabilire se un comportamento è emergente o un bias?

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Faremo sicuramente una puntata dedicata al concetto di comportamento emergente, che viene troppo spesso frainteso.

  • @domesimonetti
    @domesimonetti4 ай бұрын

    Interessante 👆👆👆

  • @onegeko
    @onegeko4 ай бұрын

    Scusate le domande ma ho passato quarant’anni a modellare dati numerici e sono incuriosito dalla modellazione del linguaggio.

  • @giuseppe_piro
    @giuseppe_piro4 ай бұрын

    19:55 potete scrivere il libro citato?

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Aggiunto adesso in descrizione :)

  • @onegeko
    @onegeko4 ай бұрын

    Perché non si considera la distanza nello spazio n-dimensionale (ad es. distanza euclidea) come in una cluster analysis?

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Bella domanda. In linea di principio, si potrebbe utilizzare qualsiasi metrica su uno spazio vettoriale, per esempio la distanza euclidea che citi tu. Da quel che so, la preferenza per la cosine similarity è dovuta al fatto che è più robusta rispetto alla lunghezza delle parole, e soprattutto è normalizzata per essere compresa tra -1 e 1. La distanza euclidea invece dipende fortemente dalla lunghezza dei vettori, e questo potrebbe introdurre una rappresentazione sbilanciata. Esempio in 2 dimensioni: supponiamo che "gatto" per qualche ragione venga mappato sul vettore (0,1), mentre "cane" viene assegnato al vettore (100,100). Se calcoliamo la distanza euclidea tra i due vettori ci esce circa 140. Se calcoliamo invece la cosine similarity esce circa 0.70, perché l'angolo tra i due vettori è di 45 gradi. Nota che se "cane" fosse stato mappato a (1,1), (10,10), (20,20), oppure (1000,1000) avremmo avuto distanze euclidee completamente diverse. La cosine similarity invece sarebbe stata sempre la stessa di 0.70, perché essendo tutti vettori che giacciono sulla bisettrice del primo quadrante, l'angolo sotteso con "gatto" a (0,1) sarebbe stato sempre di 45 gradi.

  • @matteogarzetti
    @matteogarzetti4 ай бұрын

    4:54 quindi capire la parola senza frase?

  • @matteogarzetti
    @matteogarzetti4 ай бұрын

    9:11 semantica è sinonimo di sì sinonimia?

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Non proprio. Parole come "gatto" e "cane" non sono sinonimi, però il loro significato è in qualche modo collegato (per es., perché sono entrambi animali). Il collegamento lo si determina statisticamente, andando a vedere in fase di addestramento quanto le due parole compaiono insieme all'interno di una stessa porzione di testo. L'assunzione è che più frequentemente queste due parolle appaiono insieme, più il loro significato è simile.

  • @francescodarin8100

    @francescodarin8100

    4 ай бұрын

    @@lucamariot5689 ma cane è gatto sono simili solo nell'insieme degli animali domestici. Nella scienza il gatto è un felino più vicino a un leopardo che ad un cane. Vero è solo che probabilisticamente in un testo qualsiasi cane e gatto compaiano più spesso come copia che gatto e leopardo. Inoltre non nominate mai la sintassi per cui più vicino del cane al gatto sarebbe "il" o "un" o "quel" o "è" ecc. ecc. . Sembrerebbe che Wittgenstein avesse ragione: il significato della parola è il suo uso dentro il linguaggio. In Ricerche filosofiche - Einaudi pag 33.

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    @scodarin8100 Esatto, ho citato il fatto che "sono entrambi animali" non perché sia una relazione semantica assoluta, ma semplicemente perché, su miliardi di esempi di testi su cui un embedding viene addestrato, la correlazione "generalista" è più probabile che sovrasti ogni altra semantica di domini più specifici, come quello della zoologia che hai citato tu. Questo per una pura questione numerica: quanti sono i testi che trattano di cani e gatti da un punto di vista zoologico, e quanti invece quelli che menzionano cani e gatti nell'uso quotidiano? La sintassi è completamente irrilevante in questo approccio: nel momento in cui si finisce per avere un modello accurato della distribuzione di un linguaggio, la sintassi può essere riprodotta correttamente su pura base probabilistica. Nota finale, negli LLM non interessa adottare una nozione di semantica che sia accurata dal punto di vista filosofico o linguistico: come abbiamo discusso alla fine del video, l'intento è molto più pragmatico, ed è quello di creare un artefatto che si comporti come un generatore realistico di testi.

  • @francescodarin8100

    @francescodarin8100

    4 ай бұрын

    @@lucamariot5689 Ti ringrazio. Il video era già chiaro. Volevo capire se io avessi capito. La questione filosofica è anch'essa un chiarimento interpretativo rispetto all'enigmatico assunto di W. Solo che lui parte al contrario: cos'è il primo significato di un oggetto? Il suo uso. Di un martello il significato è il suo uso. Poi trasla questo concetto nel linguaggio. Usa le parole come fossero oggetti. A me pare che ci sia attinenza.

  • @orfeopezzotti
    @orfeopezzotti4 ай бұрын

    Mio commento tattico 👍

  • @onegeko
    @onegeko4 ай бұрын

    Come si fa a ridursi a sole 300 variabili numeriche, dato che le parole sono molto più numerose?

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Attenzione che le 300 variabili numeriche non sono usate per rappresentare singole parole. In realtà indicizzano le dimensioni dello spazio vettoriale dell'embedding. Quindi, *ogni* parola viene rappresentata da un vettore di 300 numeri. E considerando che lo spazio vettoriale è euclideo (e quindi infinito), di spazio per rappresentare tutte le parole che vogliamo ne abbiamo in abbondanza.

  • @onegeko

    @onegeko

    4 ай бұрын

    Supponiamo che il dataset contenga 100000 parole; la matrice ha 100000 righe, non dovrebbe avere 100000 colonne? Riempita la matrice, si utilizzerebbe qualche tecnica per ridurne la dimensione a 100000 X 300. C’entrano forse autovalori e principal components? In ogni caso grazie per le risposte: il fatto è che mi vengono moltissime domande.

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    @o No: non è necessario che la matrice di tutto il dataset sia quadrata. Il numero di colonne (cioè la dimensione dell'embedding) è un parametro indipendente. Semplicemente, lo si sceglie in base all'applicazione specifica e a risultati preliminari di tuning, guardando come performano embedding con numeri di dimensioni differenti. Inoltre, il dataset di per sé non è una lista di parole (altrimenti si avrebbe un dizionario e non sarebbe possibile stabilire le probabilità di co-occorrenza di coppie di parole). Piuttosto, è un corpus di testo, per esempio tutto il contenuto di Wikipedia è un dataset comune per costruire un embedding

  • @onegeko
    @onegeko4 ай бұрын

    Però l’aspetto interessante è come si popola il vettore di dati numerici associato alla parola.

  • @lucamariot5689

    @lucamariot5689

    4 ай бұрын

    Su questo abbiamo glissato un po' perché ci interessava mostrare più la rappresentazione delle parole come vettori che il modo in cui questa rappresentazione viene costruita. Se ti interessano questi dettagli, ti consiglio per esempio di guardare la voce Wikipedia di word2vec (di base, si tratta di una rete neurale che fa da autoencoder).

  • @onegeko

    @onegeko

    4 ай бұрын

    @@lucamariot5689 non ho potuto resistere: ho chiesto notizie su Word2vec a ChatGPT!🙂

Келесі