Sobes.tech
Middle — Senior

Spiega in dettaglio l'attenzione multi-testa: cosa sono Q/K/V, come vengono calcolati i pesi di attenzione, perché ci sono più teste.

sobes.tech AI

Risposta dell'AI

L'attenzione multi-testa — è un meccanismo chiave nei trasformatori, che permette al modello di concentrarsi contemporaneamente su diverse parti della sequenza di input.

  • Q (Query), K (Chiave), V (Valore) — sono tre matrici ottenute dai dati di input tramite trasformazioni lineari addestrabili. Ogni posizione nella sequenza viene trasformata in tre vettori:

    • Query — la richiesta per cui si cerca un'informazione rilevante.
    • Chiave — la chiave con cui viene confrontata la query.
    • Valore — il valore che viene restituito in risposta alla query.
  • Calcolo dei pesi di attenzione:

    1. Si calcola il prodotto scalare tra Query e Chiave per ogni coppia di posizioni.
    2. Il risultato viene scalato (solitamente diviso per la radice della dimensione delle chiavi) per stabilizzare i gradienti.
    3. Si applica softmax per ottenere una distribuzione di probabilità sui pesi.
    4. I pesi vengono moltiplicati per i Valori corrispondenti e i risultati vengono sommati — questa è l'uscita dell'attenzione.
  • Perché più teste (multi-head)? Diverse teste permettono al modello di vedere le informazioni da diversi "angoli di vista", cioè ogni testa impara a evidenziare diverse dipendenze e pattern nei dati. Questo aumenta l'espressività e la qualità del modello.

Esempio semplificato:

# Per ogni testa:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

attention_weights = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = attention_weights @ V_i

# Combiniamo le uscite di tutte le teste
output = concat(output_1, ..., output_h) * W_O

Dove W_Q_i, W_K_i, W_V_i, W_O sono matrici addestrabili, d_k è la dimensione delle chiavi, e h è il numero di teste.