Sobes.tech
Middle — Senior

Explique en détail l'attention multi-tête : qu'est-ce que Q/K/V, comment sont calculés les poids d'attention, pourquoi plusieurs têtes.

sobes.tech IA

Réponse de l'IA

L’attention multi-tête — est un mécanisme clé dans les transformateurs, qui permet au modèle de se concentrer simultanément sur différentes parties de la séquence d’entrée.

  • Q (Requête), K (Clé), V (Valeur) — ce sont trois matrices obtenues à partir des données d’entrée via des transformations linéaires entraînables. Chaque position dans la séquence est transformée en trois vecteurs :

    • Requête — la requête pour laquelle on cherche une information pertinente.
    • Clé — la clé avec laquelle la requête est comparée.
    • Valeur — la valeur renvoyée en réponse à la requête.
  • Calcul des poids d’attention :

    1. On calcule le produit scalaire entre Query et Key pour chaque paire de positions.
    2. Le résultat est mis à l’échelle (habituellement divisé par la racine de la dimension des clés) pour stabiliser les gradients.
    3. On applique softmax pour obtenir une distribution de probabilité sur les poids.
    4. Les poids sont multipliés par les valeurs correspondantes, et les résultats sont sommés — c’est la sortie de l’attention.
  • Pourquoi plusieurs têtes (multi-head) ? Plusieurs têtes permettent au modèle de voir l’information sous différents "angles de vue", c’est-à-dire que chaque tête apprend à mettre en évidence différentes dépendances et motifs dans les données. Cela augmente la expressivité et la qualité du modèle.

Exemple simplifié :

# Pour chaque tête :
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

# Combiner les sorties de toutes les têtes
output = concat(output_1, ..., output_h) * W_O

W_Q_i, W_K_i, W_V_i, W_O sont des matrices entraînables, d_k la dimension des clés, et h le nombre de têtes.