> > Sto semplicemente dicendo che quei testi sono in gran parte presenti nel
> > LLM seppure
> > codificati con perdita di informazione.
...
> OK, su cosa succede tecnicamente, ovvero sul tipo di elaborazione e
> immagazzinamento dei testi _elaborari_, credo sia tutto sufficientemente
> chiaro.
No, aspettate, forse mi sono perso qualche puntata precedente.
I testi non sono per nulla presenti nell'LLM, neanche in forma "compressa".
Il "model" non è altro che un enorme contenitore di "numeri". Nel caso di
GPT3-175B, 175 miliardi di numeri, fine.
Questi numeri si chiamano "pesi" ma sempre numeri sono.
Provo con qualche esempio.
Prompt: Quante lune ha Giove?
La prima operazione che fa un LLM è la tokenizzazione, nel caso dell'esempio:
Token array: Array
(
[Qu] => 4507
[ante] => 12427
[Ġl] => 300
[une] => 1726
[Ġha] => 387
[ĠGi] => 8118
[ove] => 659
[?] => 30
)
Il dizionario usato da OpenAI è pubblico e contiene 50257 token, quindi i
numeri qui sopra sono quelli che realmente entrano nel processo di "inferenza"
di ChatGPT.
Quello che ChatGPT fa non è altro che aggiungere UN numero a quella sequenza
(ovviamente sulla base di migliaia di calcoli che non sto qui a dettagliare).
Il numero trovato (su una versione mininale di ChatGPT) è 33704.
ChatGPT prende questo numero e lo accoda a 30, e così via ...
Alla fine, la sequenza completa di ChatGPT sarà: 33704, 659, 387, 334, 2108,
498, 434, 68, 9225, 300, 1726, 1013, 7780, 378, che "detokenizzato", diventa:
"Giove ha ufficialmente 79 lune confermate".
Ciao,
Antonio
_______________________________________________
nexa mailing list
[email protected]
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa