Probabilità e verosimiglianza:

qual è la differenza e perché è importante negli LLM?

Capire questa distinzione è importante perché permette di comprendere meglio come un LLM genera testo e, soprattutto, come viene addestrato.


1. Probabilità: “quanto è probabile che accada?”

Partiamo dalla probabilità.

La probabilità risponde, in generale, a una domanda di questo tipo:

Dato un certo modello, quanto è probabile osservare un determinato evento?

Immaginiamo, per esempio, una moneta con probabilità di ottenere testa pari a 0.70.7.

La probabilità di ottenere testa è:P(testa)=0.7P(\text{testa})=0.7

Se lanciamo la moneta tre volte, la probabilità di ottenere tre teste consecutive è:P(T,T,T)=0.7×0.7×0.7=0.343P(T,T,T)=0.7 \times 0.7 \times 0.7=0.343

In questo caso il parametro della moneta, p=0.7p=0.7, è considerato fissato. Stiamo chiedendo quanto siano probabili determinati dati.

In forma generale:P(D∣θ)P(D|\theta)

dove:

  • DD rappresenta i dati osservati;
  • θ\theta rappresenta i parametri del modello.

La domanda è:

“Se il modello ha parametri θ\theta, quanto è probabile osservare i dati DD?”


2. Probabilità condizionata: il concetto fondamentale per gli LLM

Gli LLM, però, non considerano i token in maniera completamente indipendente.

La probabilità di un token dipende dal contesto che lo precede.

Consideriamo la frase:

“Il gatto mangia”

Supponiamo, per semplicità, che sia composta da tre token:x1=“Il”x_1=\text{“Il”}x2=“gatto”x_2=\text{“gatto”}x3=“mangia”x_3=\text{“mangia”}

Quando l’LLM deve prevedere il terzo token, non calcola semplicemente:P(“mangia”)P(\text{“mangia”})

ma qualcosa di simile a:P(“mangia”∣“Il gatto”)P(\text{“mangia”}|\text{“Il gatto”})

cioè:

“Qual è la probabilità che il prossimo token sia mangia, dato che prima ho visto Il gatto?”

Questa è una probabilità condizionata.

Ed è uno dei concetti fondamentali alla base del funzionamento di un language model.


3. La probabilità congiunta di una sequenza

A questo punto possiamo fare un passo ulteriore.

Non vogliamo più sapere soltanto quanto è probabile il prossimo token. Vogliamo sapere:

Quanto è probabile l’intera sequenza di token?

Questa è la probabilità congiunta.

Per la sequenza:

“Il gatto mangia”

possiamo scrivere:P(x1,x2,x3)P(x_1,x_2,x_3)

Grazie alla regola della catena della probabilità, possiamo scomporla:P(x1,x2,x3)=P(x1)P(x2∣x1)P(x3∣x1,x2)P(x_1,x_2,x_3) = P(x_1) P(x_2|x_1) P(x_3|x_1,x_2)

Quindi:P(“Il gatto mangia”)=P(“Il”)×P(“gatto”∣“Il”)×P(“mangia”∣“Il gatto”)P(\text{“Il gatto mangia”}) = P(\text{“Il”}) \times P(\text{“gatto”}|\text{“Il”}) \times P(\text{“mangia”}|\text{“Il gatto”})

Il modello assegna una probabilità a ciascun token condizionatamente al contesto precedente, e la probabilità dell’intera sequenza deriva dal prodotto di queste probabilità.

Per apprezzare appieno questo passaggio, è importante considerare che gli LLM non adottano necessariamente un approccio greedy durante il processo di inferenza, ovvero nella fase di next-token prediction. Esistono infatti diverse strategie utilizzate per determinare quale token selezionare, a ogni passo, tra quelli disponibili nel vocabolario.

Tra le più comuni possiamo citare:

  • Top-K
  • Top-P (nucleus sampling)
  • Temperature

L’analisi dettagliata di queste tecniche esula dagli scopi di questo articolo, ma è sufficiente ricordare che possono modificare il modo in cui viene campionata la distribuzione di probabilità associata ai possibili token successivi.

C’è però un’ulteriore considerazione importante. Anche adottando una strategia greedy, quindi scegliendo a ogni passo il token con la probabilità condizionata più alta, non è detto che si ottenga la sequenza complessivamente più probabile.

Il motivo è che la probabilità di una sequenza non dipende esclusivamente dalla scelta effettuata al passo corrente, ma dal prodotto delle probabilità condizionate di tutti i token che la compongono. Di conseguenza, la scelta apparentemente migliore in un determinato punto della sequenza può condurre, nei passi successivi, a una continuazione molto meno probabile.

In altre parole, può verificarsi una situazione in cui il token A sia più probabile del token B al passo corrente, ma la scelta di A conduca successivamente a una sequenza complessivamente meno probabile rispetto a quella ottenuta scegliendo B.

Si crea quindi una sorta di bivio: una scelta inizialmente meno probabile può portare, nel complesso, a una sequenza più probabile. Questo è uno dei motivi per cui la semplice selezione del token più probabile a ogni singolo passo non garantisce necessariamente la generazione della sequenza globalmente più probabile.


4. Un esempio numerico

Supponiamo, per semplicità, che il modello assegni:P(“Il”)=0.02P(\text{“Il”})=0.02P(“gatto”∣“Il”)=0.10P(\text{“gatto”}|\text{“Il”})=0.10P(“mangia”∣“Il gatto”)=0.30P(\text{“mangia”}|\text{“Il gatto”})=0.30

La probabilità congiunta della sequenza sarà:P(“Il gatto mangia”)=0.02×0.10×0.30P(\text{“Il gatto mangia”}) = 0.02\times0.10\times0.30

quindi:P(“Il gatto mangia”)=0.0006P(\text{“Il gatto mangia”})=0.0006

Ovviamente, in un LLM reale le cose sono molto più complesse: i token possono essere sotto-parole, punteggiatura o altri elementi, e le probabilità vengono prodotte dalla rete neurale.

Il principio matematico, però, rimane questo.


5. E allora cos’è la verosimiglianza?

Qui arriviamo al punto più importante.

La verosimiglianza (likelihood) utilizza matematicamente la stessa quantità della probabilità, ma cambia il punto di vista.

Consideriamo:P(D∣θ)P(D|\theta)

Se consideriamo θ\theta come fissato e ci chiediamo quanto siano probabili i dati DD, stiamo parlando di probabilità.

Se invece osserviamo i dati DD e facciamo variare θ\theta, chiedendoci:

“Quale valore di θ\theta rende questi dati più plausibili?”

stiamo parlando di verosimiglianza.

Possiamo quindi scrivere la likelihood come:L(θ∣D)L(\theta|D)

che, concettualmente, deriva dalla stessa quantità:L(θ∣D)=P(D∣θ)L(\theta|D)=P(D|\theta)

La differenza non è quindi necessariamente nella formula, ma nel ruolo delle variabili.


6. Un esempio con una moneta

Supponiamo di lanciare una moneta tre volte e ottenere:

Testa, Testa, Testa

Ora non conosciamo la probabilità pp di ottenere testa.

La probabilità dei dati, dato pp, è:P(D∣p)=p3P(D|p)=p^3

Possiamo calcolare questo valore per diversi valori di pp:

| pp | P(D∣p)P(D|p) |
|—:|—:|
| 0.2 | 0.008 |
| 0.5 | 0.125 |
| 0.7 | 0.343 |
| 0.9 | 0.729 |

Se abbiamo osservato tre teste, possiamo quindi chiederci:

Quale valore di pp rende più plausibili i dati che abbiamo osservato?

Questa è la domanda della verosimiglianza.

In questo caso, aumentando pp, aumenta la likelihood dei dati osservati.


7. La differenza in una frase

Una maniera semplice per ricordare la differenza è questa:

La probabilità parte dal modello e chiede quanto sono probabili i dati. La verosimiglianza parte dai dati osservati e chiede quali parametri del modello li spiegano meglio.

Possiamo riassumerla così:

ProbabilitàVerosimiglianza
Dati DDvariabili/possibiliosservati e fissati
Parametri θ\thetafissativariabili
Domanda“Quanto sono probabili questi dati?”“Quale parametro rende questi dati più plausibili?”
Espressione(P(D\theta))

Questo punto è particolarmente importante: probabilità e likelihood non sono necessariamente due formule diverse.

Spesso è la stessa funzione P(D∣θ)P(D|\theta), interpretata da due prospettive diverse.


8. Cosa c’entra tutto questo con gli LLM?

Arriviamo ora alla parte più interessante.

Un LLM è, semplificando molto, un modello che cerca di stimare:P(xt∣x1,…,xt−1)P(x_t|x_1,\ldots,x_{t-1})

cioè:

la probabilità del prossimo token dato tutto il contesto precedente.

Supponiamo di avere:

“Il gatto”

Il modello potrebbe produrre una distribuzione simile a:

Token successivoProbabilità
mangia0.30
dorme0.20
corre0.10
è0.05
……

Come anticipato L’LLM non sceglie necessariamente “il token più probabile” in ogni situazione: durante la generazione possono essere utilizzate diverse strategie di decoding e sampling.

Ma il cuore del modello è proprio la stima di queste probabilità condizionate.


9. Dalle probabilità dei token alla probabilità della frase

Supponiamo di avere una sequenza di TT token:x1,x2,…,xTx_1,x_2,\ldots,x_T

La probabilità congiunta dell’intera sequenza può essere scritta come:P(x1,…,xT)=∏t=1TP(xt∣x1,…,xt−1)P(x_1,\ldots,x_T) = \prod_{t=1}^{T} P(x_t|x_1,\ldots,x_{t-1})

Questa formula è fondamentale.

Dice che la probabilità di un’intera sequenza può essere ottenuta moltiplicando le probabilità condizionate dei singoli token.

Per esempio:P(x1,x2,x3)=P(x1)P(x2∣x1)P(x3∣x1,x2)P(x_1,x_2,x_3) = P(x_1) P(x_2|x_1) P(x_3|x_1,x_2)

Per una sequenza molto lunga, il prodotto continua fino all’ultimo token.


10. Ed è qui che entra la verosimiglianza nel training

Durante l’addestramento di un LLM abbiamo enormi quantità di testo.

Supponiamo di avere una sequenza osservata:x1,x2,…,xTx_1,x_2,\ldots,x_T

Questa sequenza è già nota: è il testo presente nei dati di training.

Quello che vogliamo imparare sono i parametri θ\theta della rete neurale.

Possiamo quindi chiederci:

“Quali parametri del modello fanno sì che il testo osservato abbia una probabilità elevata?”

La quantità che vogliamo massimizzare è:P(x1,…,xT∣θ)P(x_1,\ldots,x_T|\theta)

oppure, usando la regola della catena:P(x1,…,xT∣θ)=∏t=1TP(xt∣x1,…,xt−1;θ)P(x_1,\ldots,x_T|\theta) = \prod_{t=1}^{T} P(x_t|x_1,\ldots,x_{t-1};\theta)

A questo punto stiamo guardando questa quantità come una funzione dei parametri θ\theta.

Quindi stiamo parlando di verosimiglianza.

L’obiettivo può essere espresso come:θ∗=arg⁡max⁡θP(x1,…,xT∣θ)\theta^* = \arg\max_\theta P(x_1,\ldots,x_T|\theta)

In altre parole:

Trova i parametri del modello che rendono il testo osservato il più verosimile possibile.

Questo è il principio della Maximum Likelihood Estimation (MLE).


11. Un esempio intuitivo

Immaginiamo che il testo corretto sia:

“Il gatto dorme”

Durante il training, il modello viene addestrato a prevedere ciascun token dato il contesto precedente:

poi:P(mangia∣Il gatto)P(\text{mangia}\mid\text{Il gatto})

poi:P(il∣Il gatto mangia)P(\text{il}\mid\text{Il gatto mangia})

poi:P(pesce∣Il gatto mangia il)P(\text{pesce}\mid\text{Il gatto mangia il})

Ad esempio, se le probabilità assegnate ai token corretti fossero:

[0.8,0.7,0.9,0.6][ 0.8,\quad 0.7,\quad 0.9,\quad 0.6 ]

avremmo:

0.8×0.7×0.9×0.6=0.30240.8 \times 0.7 \times 0.9 \times 0.6 = 0.3024

È però importante sottolineare che questa probabilità congiunta non è ciò che il modello produce direttamente durante la next-token prediction. A ogni posizione, il modello produce una distribuzione di probabilità sul prossimo token, condizionata al contesto precedente.

Durante il training, la loss agisce invece sulle probabilità dei token corretti nei rispettivi contesti. In forma semplificata:

−∑tlog⁡P(xt|x<t)-\sum_t \log P(x_t \mid x_{<t})

A seguito dell’addestramento, supponiamo che il modello assegni al token corretto probabilità:

[0.8,0.7,0.9][ 0.8,\quad 0.7,\quad 0.9 ]

Le probabilità condizionate sono quindi aumentate nei rispettivi contesti. Di conseguenza, anche la probabilità congiunta della sequenza, che possiamo ricavare combinandole, aumenta:

0.8×0.7×0.9=0.5040.8 \times 0.7 \times 0.9 = 0.504

In questo senso possiamo dire che il modello ha imparato ad assegnare una maggiore probabilità a quella sequenza. Tuttavia, è più preciso dire che ha imparato a modellare meglio le distribuzioni condizionate dei token nei rispettivi contesti; la probabilità congiunta della sequenza deriva dalla loro combinazione secondo la fattorizzazione autoregressiva.


12. Attenzione: “probabilità” e “verosimiglianza” non sono sinonimi

È importante non concludere che probabilità e likelihood siano semplicemente la stessa cosa.

È più corretto dire:

La likelihood è una funzione di un parametro ottenuta a partire dalla probabilità dei dati osservati.

Consideriamo:P(D∣θ)P(D|\theta)

Se chiediamo:

“Quanto è probabile DD, dato θ\theta?”

stiamo ragionando in termini di probabilità.

Se invece diciamo:

“Ho osservato DD. Quale θ\theta rende DD più plausibile?”

stiamo usando P(D∣θ)P(D|\theta) come funzione di θ\theta, cioè come likelihood.

La matematica di base può essere la stessa, ma la domanda che stiamo ponendo è diversa.


Conclusione

La distinzione tra probabilità e verosimiglianza può sembrare inizialmente sottile, ma diventa molto intuitiva quando la si applica agli LLM.

Un LLM stima principalmente probabilità condizionate dei token:P(xt∣x<t)P(x_t|x_{<t})

Queste probabilità possono essere combinate attraverso la regola della catena per ottenere la probabilità congiunta di un’intera sequenza:P(x1,…,xT)=∏tP(xt∣x<t)P(x_1,\ldots,x_T) = \prod_tP(x_t|x_{<t})

Durante il training, però, la sequenza di testo è già osservata. Ciò che vogliamo determinare sono i parametri della rete neurale che rendono quei dati il più probabili possibile. La stessa quantità viene quindi interpretata come verosimiglianza:L(θ∣D)=P(D∣θ)L(\theta|D)=P(D|\theta)

Da qui nasce il principio della maximum likelihood, e la sua formulazione tramite la negative log-likelihood, strettamente legata alla cross-entropy utilizzata per addestrare i moderni language model.

In sintesi:

La probabilità ci dice quanto sono probabili i dati dato un modello; la verosimiglianza ci dice quanto un certo modello è compatibile con i dati osservati. Negli LLM, la probabilità dei singoli token viene combinata per ottenere la probabilità della sequenza e, durante il training, questa quantità viene ottimizzata rispetto ai parametri del modello.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *