Qu'est-ce que Cache KV ?
Mémoire qui conserve, lors de l'inférence d'un grand modèle de langage, les Key et Value de l'attention des tokens déjà traités. Elle évite les recalculs mais grandit proportionnellement à la longueur du texte et à la taille du lot.
Nom japonais: KVキャッシュ
« Cache KV » apparaît dans 4 questions d'entraînement réparties sur 1 thèmes, dont Pile matérielle et logicielle de l'IA.
Domaine: Pile matérielle et logicielle de l'IA
Quelle taille atteint le cache KV
La taille du cache vaut 2 (clés et valeurs) × nombre de couches × dimension clé/valeur par couche × nombre de tokens × taille du lot × octets par élément. À titre d'exemple, un modèle de 32 couches, avec une dimension cachée de 4096 et une attention multi-têtes standard, nécessite environ 0,5 Mo par token en FP16. Un contexte de 4096 tokens occupe alors environ 2 Go par séquence, et un lot de huit séquences de ce type nécessite environ 16 Go, plus que les quelque 14 Go qu'occupent les poids d'un modèle FP16 de 7 milliards de paramètres.
Questions fréquentes
Qu'est-ce que le cache KV dans les grands modèles de langage ?
C'est la mémoire qui conserve les clés et valeurs d'attention des tokens déjà traités ; ainsi, pour chaque nouveau token généré, seules ses propres clés et valeurs doivent être calculées, sans recalculer toute la séquence.
Pourquoi le cache KV utilise-t-il autant de mémoire ?
Sa taille croît linéairement avec le nombre de couches, la largeur de l'attention, la longueur du contexte et la taille du lot ; des contextes longs ou de nombreuses requêtes simultanées peuvent donc le rendre plus volumineux que les poids du modèle.
Le cache KV affecte-t-il la qualité des réponses ?
Mettre en cache les clés et valeurs exactes est mathématiquement équivalent à les recalculer ; seules des approximations comme le stockage du cache en faible précision ou l'abandon des anciens tokens peuvent modifier les sorties.