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 :
- On calcule le produit scalaire entre Query et Key pour chaque paire de positions.
- Le résultat est mis à l’échelle (habituellement divisé par la racine de la dimension des clés) pour stabiliser les gradients.
- On applique softmax pour obtenir une distribution de probabilité sur les poids.
- 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
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.