Guide du professeur — Cache KV, mémoire récurrente, MLA et bas rang
Durée: 120 minutes
Positionnement: Comparer trois budgets mémoire et distinguer compression par token, état fixe et factorisation bas rang.
Preuve attendue: Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source.
Résultats observables et préparation
- Calculer la croissance d’un cache KV.
- Comparer MLA et état fixe.
- Distinguer bas rang architectural et LoRA.
Avant la séance, le formateur exécute lui-même le cas guidé et le laboratoire, imprime le paquet d’exercices, prépare un tableau à quatre colonnes — hypothèse, prédiction, observation, écart — et vérifie que chaque notation mathématique est accompagnée de ses dimensions. La démonstration ne doit pas devenir une lecture de slides.
Diagnostic
- Expliquez en une phrase: Cache KV standard. Quelle observation rendrait votre explication fausse ?
- Expliquez en une phrase: État récurrent fixe. Quelle observation rendrait votre explication fausse ?
- Expliquez en une phrase: MLA. Quelle observation rendrait votre explication fausse ?
Décision pédagogique: si deux réponses sur trois restent nominales ou sans condition de validité, reprendre le vocabulaire avec un exemple numérique avant toute formule. Une réponse fluide mais non falsifiable n’est pas considérée comme acquise.
Plan minuté
| Temps | Activité | Preuve observable |
|---|---|---|
| 0–10 min | Diagnostic individuel, puis comparaison en binôme | Trois réponses et une incertitude nommée |
| 10–25 min | Mise en situation et vocabulaire | Schéma entrée → état → sortie annoté |
| 25–55 min | Développement du mécanisme au tableau | Formes, hypothèses et calcul intermédiaire visibles |
| 55–75 min | Cas guidé, erreurs volontairement introduites | Correction argumentée, pas seulement le bon nombre |
| 75–95 min | Laboratoire causal : prédire, modifier une variable, exécuter | Tableau prédiction / observation / écart |
| 95–112 min | Exercices 1 et 2, correction croisée | Production conservée et barème appliqué |
| 112–120 min | Ticket de sortie et transfert | Mécanisme, frontière, prochaine expérience |
Notes pédagogiques
Chapitre 13 — Enregistrements complets contre mémoire compressée
13.1 Deux stratégies de mémoire
But : comparer les enregistrements exacts aux résumés. Le cache clés-valeurs standard conserve des données par jeton. La mémoire linéaire récurrente compresse de nombreux jetons dans un état de taille fixe.
Une archive vidéo conserve chaque image ; un compte rendu conserve un résumé compact. Chacun répond mieux à certaines questions.
Étape par étape
-
Cache par jeton : grandit avec le contexte ; préserve un accès plus direct aux jetons individuels.
-
État fixe : ne grandit pas avec le nombre de jetons ; risque l’interférence et la perte d’information.
-
Les conceptions hybrides peuvent employer les deux mécanismes dans des couches ou rôles différents.
Exemple détaillé : Pour 1 000 jetons, une méthode par jeton conserve 1 000 enregistrements par couche concernée. Une méthode à état fixe conserve un état de forme prédéterminée. Cela ne prouve pas qu’elle utilise toujours moins de mémoire au total, mais explique la différence d’échelle.
Pourquoi c’est important : L’architecture est un compromis entre fidélité, vitesse, trafic mémoire et facilité d’entraînement.
Vérification rapide : quelle stratégie est la plus susceptible de retrouver un ancien jeton précis ? Réponse : l’enregistrement par jeton, même si la qualité dépend toujours de l’attention apprise.
13.2 Compression latente et MLA
But : réduire la taille du cache sans condenser toute l’histoire dans une seule matrice récurrente. Un vecteur latent est une représentation apprise plus petite. Multi-head Latent Attention, abrégé MLA, stocke une information latente comprimée et reconstruit les clés ou valeurs propres aux têtes lorsque nécessaire.
Stocke un dossier compressé au lieu de plusieurs copies déployées, puis décompresse la vue nécessaire à chaque travailleur.
Étape par étape
-
Comprimer la représentation cachée x en c = xW_down.
-
Mettre en cache le latent plus petit c.
-
Utiliser des projections apprises vers le haut pour créer les formes de clés/valeurs nécessaires aux têtes d’attention.
-
Une tête est un sous-espace d’attention parallèle ; plusieurs têtes peuvent apprendre des relations différentes.
Exemple détaillé : Exemple de formes : x possède 8 coordonnées. La compression à 2 donne c avec 2 coordonnées. Ré-étendre c en une clé à 8 coordonnées ne préserve pas magiquement tous les vecteurs 8-D possibles ; la clé est limitée aux motifs apprenables à travers le goulot de 2 dimensions.
Pourquoi c’est important : MLA est une mémoire comprimée par jeton, pas un unique état récurrent fixe pour tout le passé.
Vérification rapide : le cache MLA reste-t-il normalement constant lorsque le nombre de jetons augmente ? Réponse : non. Il peut être plus petit par jeton, mais grandit encore avec le nombre de jetons.
13.3 Factorisation de faible rang et LoRA
But : comprendre les espaces intermédiaires étroits. Une matrice complète 8×8 contient 64 nombres. La remplacer par une matrice 8×2 suivie d’une matrice 2×8 utilise 16+16=32 nombres dans ce comptage simplifié.
Un couloir étroit limite le nombre de flux indépendants pouvant passer en même temps.
Étape par étape
-
Projeter vers le bas : h = xA.
-
Projeter vers le haut : y = hB.
-
La transformation combinée AB a un rang au plus égal à la largeur étroite.
-
Low-Rank Adaptation, LoRA, ajoute généralement une mise à jour de faible rang entraînable à un poids de base gelé ; les mathématiques sont liées, mais l’usage n’est pas automatiquement identique à la compression architecturale.
Exemple détaillé : Cette distinction évite une confusion fréquente : toute factorisation de faible rang n’est pas nécessairement un adaptateur LoRA de spécialisation.
Pourquoi c’est important : Le faible rang échange une partie de la flexibilité contre moins de paramètres, de stockage ou de calcul, selon son emplacement.
Vérification rapide : combien de nombres contiennent des matrices 10×3 et 3×10 ensemble ? Réponse : 30+30=60.
Conduite du cas guidé
Avec 32 couches, 8 têtes KV, d_head=128, BF16 et 4 096 tokens, le cache brut simplifié vaut 4 096×32×2×8×128×2 octets = 536 870 912 octets = 512 Mio (0,5 Gio). Diviser la largeur latente par quatre réduit le terme par token, pas sa croissance linéaire.
Ne révélez pas le résultat en une fois. Faites annoncer la prochaine opération, sa forme et le signe attendu. Après chaque ligne, demandez : « Qu’est-ce qui a changé ? Qu’est-ce qui est resté fixe ? Quelle hypothèse avons-nous utilisée ? » Une erreur de calcul corrigée avec une chaîne causale vaut davantage qu’un résultat deviné.
Protocole du laboratoire
- Écrire une prédiction qualitative et, si possible, numérique avant de toucher le contrôle.
- Modifier une seule variable; garder une capture ou relever les valeurs initiales et finales.
- Expliquer l’écart avec le mécanisme, pas avec « l’outil a fait cela ».
- Tester une valeur limite et dire où la maquette cesse de représenter un système réel.
Idées fausses
| # | Idée fausse observable | Correction ancrée | Relance |
|---|---|---|---|
| 1 | « Cache KV standard suffit à garantir le résultat, sans hypothèse ni mesure. » | Le cache conserve clés et valeurs de chaque token passé, par couche : bytes ≈ tokens × couches × 2 × têtes × d_head × octets. La lecture est fidèle — attention exacte sur tout le passé — et le calcul se refait facteur par facteur, sans calculatrice. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
| 2 | « État récurrent fixe suffit à garantir le résultat, sans hypothèse ni mesure. » | L’état S — 32 couches × 128 × 128 × BF16 = 1 Mio — résume tout le passé : 4 096 ou 524 288 tokens, toujours 1 Mio. La croissance disparaît ; c’est l’aboutissement des mémoires des sessions précédentes. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
| 3 | « MLA suffit à garantir le résultat, sans hypothèse ni mesure. » | Multi-head Latent Attention compresse chaque token en un vecteur latent c_t (512 valeurs) — la seule chose mise en cache — puis reconstruit K et V via W_UK et W_UV au moment de lire. Largeur ÷ 4 ⇒ 32 Kio/token, 4 Gio à 131 072 tokens. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
Frontière à maintenir: Les formules simplifiées omettent alignement, quantification, buffers et détails de partage. Elles servent à comparer des tendances, pas à promettre une empreinte réelle.
Questions de relance
- Si nous supprimons ou inversons Cache KV standard, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons État récurrent fixe, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons MLA, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Factorisation bas rang, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons MLA n’est pas mémoire fixe, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Bas rang n’est pas LoRA, quelle sortie change en premier, et quelle observation le montrerait ?
Évaluation
| Niveau | Critère |
|---|---|
| 0 | Répète des termes sans relier entrée, transformation et sortie. |
| 1 | Décrit la chaîne mais ne vérifie ni forme ni hypothèse. |
| 2 | Exécute le cas, explique le résultat et nomme une limite. |
| 3 | Transfère sur un cas inédit, compare une alternative et propose une mesure qui pourrait invalider son choix. |
Seuil de sortie : niveau 2 sur le cas guidé et au moins un exercice; une formule mémorisée sans interprétation reste niveau 1.
Protocole d’observation et de reprise
Pendant les échanges, le formateur relève des preuves et non des impressions. Une preuve de compréhension contient un objet nommé, une transformation justifiée et une conséquence vérifiable. Si un apprenant donne le bon résultat sans chaîne, demander de reconstruire la ligne précédente. S’il donne une chaîne cohérente avec un résultat faux, conserver la chaîne et isoler l’erreur de calcul. S’il emploie le vocabulaire d’un autre concept, faire comparer les deux mécanismes dans un tableau entrée, état, sortie, coût et limite. La reprise se fait sur la première rupture seulement : vocabulaire, formes, opération, interprétation ou portée de l’affirmation. Après correction, proposer un cas voisin avec une valeur différente; la réussite sur le même exemple ne prouve pas le transfert. Pour le travail en binôme, attribuer les rôles « opérateur » et « vérificateur », puis les inverser. Le vérificateur ne donne pas la réponse : il exige une hypothèse, contrôle la forme et demande quelle observation pourrait contredire le raisonnement. Le formateur conserve le ticket de sortie et classe la rupture dominante. La séance suivante commence par un problème de trois minutes ciblant cette rupture, plutôt que par une répétition générale du cours.
Différenciation
- Soutien: fournir les formes et la première transformation; laisser l’apprenant compléter l’interprétation et la limite.
- Parcours nominal: cas guidé sans résultat, laboratoire avec une variable imposée, exercice de diagnostic.
- Prolongement: changer une hypothèse, comparer deux mécanismes et définir la métrique qui déciderait entre eux.
Suivi après la séance
Dans les vingt-quatre heures, renvoyer à chaque apprenant son ticket annoté avec une seule priorité, la ressource précise à rouvrir et un mini-cas différent du cas guidé. La reprise demande trois éléments : une prédiction écrite, une trace conservée et une phrase expliquant l’écart. Au cours suivant, échantillonner deux productions : une qui a réparé la rupture et une qui reste ambiguë. Les discuter sans nommer les auteurs, puis faire expliciter le critère qui distingue les deux. Ne pas utiliser le taux de complétion comme preuve de maîtrise. La preuve de reprise est une chaîne correcte sur un cas nouveau, accompagnée d’une limite. Si la même rupture apparaît chez plus d’un tiers du groupe, corriger le support ou la démonstration avant d’attribuer le problème aux apprenants.
Le suivi est clos seulement lorsque la nouvelle production montre la chaîne causale, la vérification et la frontière, et non lorsque le fichier a simplement été rendu.
Sources et frontière de preuve
- Dossier de cours bilingue fourni par le propriétaire, chapitre 13.
- DeepSeek-AI, “DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model” (introduces Multi-head Latent Attention), arXiv:2405.04434 (2024).
- Hu et al., “LoRA: Low-Rank Adaptation of Large Language Models”, ICLR (2022).
- Dossier source fourni par le propriétaire; les détails sur des produits nommés restent attribués à cette source jusqu’à vérification primaire.
Portée: Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source. Ces références soutiennent le cadre de la session; elles ne transforment pas un choix de produit rapporté en résultat indépendant.
Ticket de sortie
En six lignes maximum : mécanisme; calcul ou trace; observation; frontière; niveau de preuve; prochaine expérience. Le formateur annote une seule rupture causale prioritaire pour la reprise.