Come funziona un modello


Capire come funziona un modello, anche per sommi capi, ci rende consapevoli dei rischi e ci permette di utilizzare al meglio questa tecnologia.

Saperlo spiegare ci permette di trasmettere ai ragazzi vantaggi e svantaggi, sapendo spiegare loro anche “perchè”.


Un modello di intelligenza artificiale è un modello matematico estremamente complesso i cui componenti sono costantemente aggiornati e migliorati. Per avere un’idea grafica di come funziona internamente un modello possiamo utilizzare il progetto Transformer Explainer (https://poloclub.github.io/transformer-explainer/).


Fasi di elaborazione


Tokenizzazione

  • Il testo viene convertito in token. Ad ogni parola possono corrispondere uno o più token.
  • Solitamente la punteggiatura costituisce token singoli.

  • Vengono utilizzati algoritmi di Byte-Pair-Encoding (BPE). Questi algoritmi spezzano le parole meno comuni in gruppi di token. Questo permette di gestire più facilmente le coniugazioni dei verbi ad esempio.

  • I token vengono appresi in fase di allenamento.
  • Durante l’allenamento vengono analizzati un gran numero di testi. Inizialmente ogni carattere costituisce un token. Alla fine vengono creati i token sulla base di associazione di caratteri che appaiono più spesso.

  • La maggior parte dei modelli viene addestrata su materiale prevalentemente scritto in inglese. Questo spiega la maggior efficienza di richieste fatte al modello in inglese.

Per visualizzare come una parola viene suddivisa in token:

Qui si può trovare il dizionario di GPT-2


Embeddings

  • Alla fine delle tokenizzazione si ottiene per ogni token un semplice numero privo di significato. Il numero è staticamente associato a quel token attraverso il dizionario del modello.

  • All’interno dell’architettura del modello esiste una gigantesca matrice di pesi chiamata Embedding Matrix
    • le righe sono i token del dizionario
    • le colonne rappresentano caratteristiche astratte o tratti semantici (appresi durante l’addestramento per singolo token)

  • Implementano il concetto di vicinanza tra parole (o meglio vicinanza tra token)
  • In questa fase nascono alcuni bias dovuti alla vicinanza di parole nelle fonti usate nella fase di addestramento

  • Ad ogni embedding viene sommata la posizione in cui si trova il token associato nella frase (Positional Encoding)

Si può visualizzare questi embeddings qui Una ricerca più approfondita qui


Transformers

Transformer = Multi Head Attention + Multi Layer Percepton

Il vettore d’ingresso passa in sequenza attraverso decine di blocchi [Attention + MLP] sovrapposti, diventando sempre più denso di significato.


Self Attention

  • Il meccanismo di attention serve a legare tra loro le parole della frase.
  • Prima: il significato di un token è statico e dipende al massimo dalla sua posizione.
  • Dopo: il token è messo in relazione con tutti gli altri token. Questo permette ad ogni token di assumere il corretto significato in ogni contesto.

Per ogni token nella frase, il modello genera tre vettori differenti moltiplicando l’embedding iniziale per tre matrici di pesi (apprese durante l’addestramento).


  1. Query (QQ) – “Cosa sto cercando?”: Rappresenta la domanda che il token pone agli altri token.
  2. Key ($K$) – “Chi sono io?”: Rappresenta l’etichetta/identità che il token offre agli altri.
  3. Value ($V$) – “Quali informazioni porto?”: Contiene l’informazione reale del token che verrà trasferita se c’è un’affinità.

Ogni token ottiene i propri vettori $Q$, $K$ e $V$ individuali.


I Transformer non usano una sola Self-Attention, ma la Multi-Head Attention eseguendo il processo più volte in parallelo.


MPL (Multy Layer Percepton)

  • Lavora su ogni singolo token in modo del tutto indipendente dagli altri
  • Durante il pre-addestramento, è proprio nei pesi del MLP che vengono memorizzate le nozioni, la grammatica, i fatti storici e le associazioni concettuali del modello
  • Formato da una rete neurale ad alta densità

L’MLP all’interno di un Transformer è composto da due trasformazioni lineari (moltiplicazioni di matrici) separate da una funzione di attivazione non lineare (come GELU o SwiGLU).


Ultimi passi

  • Normalizzazione (RMSNorm / LayerNorm): Stabilizza i valori numerici all’uscita dell’ultimo blocco.
  • Proiezione sul Vocabolario (LM Head): Il vettore finale viene moltiplicato per una matrice che lo proietta su tutti i token del vocabolario, assegnando a ciascuno un punteggio grezzo (Logit).
  • Softmax: Trasforma i logits in probabilità percentuali la cui somma è $100%$.

Parametri di Generazione

  • Temperatura
  • Top-K
  • Top-P

Temperatura ($T$)

  • Temperatura Bassa: Amplifica le differenze. Il token con la probabilità più alta domina nettamente sugli altri.
  • Temperatura Alta: Appiattisce la curva di probabilità, rendendo i token meno probabili molto più vicini a quelli più probabili. Risposte più varie, creative e inaspettate

Top-K

  • “Considera soltanto i $K$ token più probabili e scarta tutti gli altri.”
  • Il modello prende solo le prime $K$ parole con la percentuale più alta, azzera la probabilità di tutte le altre e sceglie tra quelle.

Top-P (Nucleus Sampling)

  • “Ordina i token dal più probabile al meno probabile e seleziona il gruppo più piccolo la cui somma delle probabilità raggiunge la percentuale $P$.”
  • Quando il modello è molto sicuro, restringe la scelta a pochissimi token; quando è incerto, espande la scelta a più opzioni.

Esempio con $P = 0.90$ (90%):

  • Se la prima parola ha da sola il $92%$ di probabilità, il gruppo conterrà solo 1 parola.
  • Se la prima parola ha il $30%$, la seconda il $25%$, la terza il $20%$ e la quarta il $15%$, il gruppo conterrà 4 parole (somma $= 90%$).