27 septembre 2026•2 min

Épisode 2 : Q, K, V — Pourquoi 3 matrices et pas une seule ?

m
mayo

La question qui tue

Dans l'épisode précédent, on a dit qu'on "copie 3 fois les embeddings". Mais est-ce toujours le cas ? Et pourquoi 3 copies ?

La réponse courte

Non. Dans les vrais modèles, on utilise 3 matrices de projection différentes (Wq, Wk, Wv) apprises pendant l'entraînement.

Les 3 rôles

Q (Query) = La question

Le modèle projette chaque mot dans un espace où il formule sa "requête". "Banque" génère un Q qui signifie "je cherche des infos sur l'argent".

K (Key) = L'étiquette

Le même mot est projeté dans un AUTRE espace pour créer son étiquette. Cette étiquette répond : "Je suis un mot qui parle d'argent".

V (Value) = La connaissance

C'est ce qu'on transporte réellement. Une 3ème projection indépendante où le réseau stocke ce qui est utile à transmettre.

Pourquoi cette séparation permet d'apprendre ?

Si Q et K étaient identiques, le mot ne saurait pas faire la différence entre chercher et être cherché. Concrètement, la matrice des scores deviendrait symétrique : "volé" donnerait exactement le même score à "pomme" que "pomme" à "volé". Et chaque mot obtiendrait souvent son meilleur score avec lui-même, puisque le produit scalaire d'un vecteur avec lui-même est grand : il se regarderait lui-même plutôt que les autres. En les séparant, le modèle peut ajuster finement ces espaces via la rétropropagation.

Exemple : "Le banquier a volé une pomme"

  • "volé" (Q) interroge "pomme" (K) → fort pourcentage d'attention
  • Dans V de "pomme", le réseau a stocké "fruit, rouge, comestible"
  • Résultat : "volé" comprend qu'il a volé un objet comestible

Un peu de Rust

// Version pédagogique : Q = K = V
let q = embeddings.clone();
let k = embeddings.clone();
let v = embeddings.clone();

// Version réelle : 3 projections
// let q = mat_mul(&embeddings, &w_q);
// let k = mat_mul(&embeddings, &w_k);
// let v = mat_mul(&embeddings, &w_v);

Ce qu'il faut retenir

  • Q = cherche, K = répond, V = transporte
  • Les vecteurs capturent plusieurs nuances simultanément
  1. Étape 4 sur 7•3 min
    Épisode 3 : Embeddings — Absolus au départ, contextuels à l'arrivée

    Un embedding, c'est le mot dans l'absolu ou dans son contexte ? Les deux, à des moments différents. Plus les trois détails d'ingénierie autour de l'attention : multi-head, masking et position encoding.

  2. Étape 5 sur 7•2 min
    Épisode 4 : Le Transfer Learning — Réutiliser un savoir existant
  3. Étape 6 sur 7•2 min
    Épisode 5 : Les concepts clés autour du Transfer Learning
Retour au blog
Partager ::