Session systèmes 3/4 · Diapositives

Dimensionnement et optimisation du cache KV

1/18

Dimensionnement et optimisation du cache KV

Le cache qui rend le décodage rapide est aussi celui qui décide combien d’utilisateurs vous pouvez servir.

Notes du présentateur

Ouvrez sur l’arbitrage en une phrase : de la vitesse achetée avec de la mémoire. Promettez qu’à la fin chacun saura dimensionner un cache depuis une fiche de configuration.

2/18

Pourquoi le deuxième token coûte peu

Les tenseurs de clés et de valeurs de chaque token traité sont conservés, si bien que le décodage ne recalcule pas l’état d’attention de tout le préfixe.

Notes du présentateur

Dessinez le préfixe qui s’allonge token par token et grisez l’état réutilisé. Laissez ce schéma affiché pour le reste de la séance.

3/18

Trois unités de mémoire

Notes du présentateur

Insistez sur la troisième ligne. La plupart des erreurs de dimensionnement viennent d’un raisonnement par séquence qui oublie la concurrence.

4/18

L’estimation de dimensionnement

2 x couches x têtes KV x dimension de tête x tokens en cache x octets par élément, multiplié par le nombre de séquences actives quand les caches sont indépendants.

Notes du présentateur

Écrivez-la une fois, puis dites immédiatement ce qu’elle exclut : poids, activations, fragmentation, surcharge du moteur. C’est un ordre de grandeur.

5/18

D’où vient le facteur 2

Un tenseur pour les clés, un pour les valeurs — par couche et par tête KV.

Notes du présentateur

C’est une confusion fréquente. Posez la question à la salle avant de répondre ; quelqu’un proposera la précision ou la redondance.

6/18

Têtes KV, pas têtes de requête

Le cache croît avec les têtes KV, et c’est pourquoi les attentions à requêtes groupées ou multi-requêtes le réduisent sans guère changer le nombre de paramètres.

Notes du présentateur

Montrez les deux nombres sur les fiches de configuration imprimées. Exigez que le nombre de têtes KV soit entouré avant le début de l’atelier A.

7/18

Atelier A — dimensionner à la main

80 couches, 8 têtes KV, dimension de tête 128, éléments de 16 bits. Calculez par token, par séquence, par déploiement.

Notes du présentateur

25 minutes en binôme. Circulez et vérifiez les unités tôt : les glissements de l’octet au gibioctet sont la première source de résultats faux.

8/18

Ordre de grandeur, hypothèses énoncées

Contexte (tokens)Séquences concurrentesMémoire KV approx.
40961~1,3 Go
81921~2,7 Go
81928~21 Go
327688~86 Go
1310721~43 Go
Notes du présentateur

Hypothèses : 80 couches, 8 têtes KV, dimension de tête 128, 2 octets par élément. Énoncez l’hypothèse à voix haute chaque fois que vous montrez ce tableau.

9/18

Le doublement se comporte comme vous le craignez

Sous l’estimation linéaire, doubler le contexte actif ou doubler la concurrence double approximativement la mémoire KV.

Notes du présentateur

C’est la phrase à laisser au tableau pendant la pause. C’est l’enseignement pratique de l’arithmétique.

10/18

Où l’estimation cesse d’être linéaire

À forte concurrence, c’est le cache et non les poids qui épuise la mémoirePoids (payés une fois) — 14 GBCache KV x 8 séquences — 32 GBActivations et surcharge — 4 GBLes poids se paient une fois ; le cache se paie par séquenceTotal : 50 GB
À forte concurrence, c’est le cache et non les poids qui épuise la mémoire
Notes du présentateur

Dites explicitement que la formule est un outil de planification, pas un relevé comptable. Vérifiez toujours auprès du moteur réellement déployé.

11/18

Les leviers

Notes du présentateur

Annoncez les quatre, puis traitez-les un par un. Les apprenants veulent un classement : ne le donnez qu’après avoir exposé les coûts.

12/18

Borner le contexte d’abord

Les tokens en cache sont le terme que vous contrôlez au niveau applicatif, et il entre linéairement dans l’estimation.

Notes du présentateur

Faites le lien avec la séance 04 : l’extrait qui répond à la question est en général bien plus court que le document joint.

13/18

Attention paginée

Allouer le cache par blocs de taille fixe supprime la réservation contiguë du pire cas par séquence, donc davantage de séquences tiennent.

Notes du présentateur

Lisez ici la page de documentation du moteur plutôt que de la paraphraser. Le vocabulaire des blocs compte pour lire les tableaux de bord ensuite.

14/18

La précision du cache est une décision à part

Un cache de précision réduite n’est pas le même arbitrage que des poids de précision réduite, et il exige sa propre évaluation.

Notes du présentateur

Nommez le mode de défaillance : la dégradation apparaît d’abord sur les contextes longs et les échanges multi-tours, que les bancs d’essai courts manquent.

15/18

La réutilisation de préfixe a des préalables

Notes du présentateur

Imposez une comparaison octet par octet de deux prompts réels à l’atelier B. Deux gabarits qui diffèrent d’une ligne système ne partagent rien.

16/18

Mesurer le service

MesureCe qu’elle révèleÀ lire en
Temps jusqu’au premier tokenCoût de préremplissage et mise en filep50 et p95
Latence inter-tokensSanté de la boucle de décodagep50 et p95
Occupation du cacheMarge avant évictionSur toute l’exécution
Taux d’éviction / recalculPréremplissage perdu sous pressionSur toute l’exécution
Notes du présentateur

Demandez quelle mesure bougerait la première si la distribution des contextes s’allongeait. La réponse est le premier token, et c’est celle que l’on surveille le moins.

17/18

Mesurez ce que vous servirez vraiment

Une seule longueur de prompt à un seul niveau de concurrence ne prédit rien du comportement en production.

Notes du présentateur

Exigez une distribution de longueurs de contexte et au moins deux niveaux de concurrence avant d’accepter un plan de mesure à l’atelier B.

18/18

Le cache de prompt du fournisseur n’est pas votre cache KV

Notes du présentateur

Terminez en lisant la page du fournisseur à voix haute et en ne listant que les règles qu’elle énonce réellement. Ne laissez pas la salle combler les vides de mémoire.