Pourquoi la mémoire d’attention dépasse-t-elle le nombre de paramètres des modèles d’IA domestiques ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

La mémoire requise par l’attention peut dépasser celle des paramètres du modèle, car les poids restent fixes tandis que les caches, les activations et les espaces de travail dépendant des jetons augmentent avec le contexte et la concurrence.

Un modèle quantifié peut tenir aisément dans la RAM ou la VRAM d’un serveur domestique, mais les longs prompts, plusieurs utilisateurs du foyer, les entrées multimodales ou les gros lots peuvent tout de même provoquer une pression mémoire. Le fichier du modèle décrit les poids persistants, et non l’ensemble de travail nécessaire à l’inférence. L’attention crée un état spécifique à chaque requête pour chaque jeton conservé et peut nécessiter des tampons temporaires dont le pic dépend de l’environnement d’exécution. Les sections ci-dessous distinguent la mémoire fixe des paramètres de la mémoire dépendante de la séquence et indiquent à quel moment cette dernière devient la véritable limite de capacité.

Les paramètres du modèle constituent une base fixe après le chargement

Les poids du modèle occupent une quantité de mémoire prévisible une fois leur nombre et leur format numérique connus. Un modèle sur quatre bits utilise moins d’espace pour ses paramètres qu’une version sur huit bits ou en virgule flottante, même si les métadonnées d’exécution et les facteurs d’échelle ajoutent une certaine surcharge.

L’architecture Transformer utilise les mêmes paramètres appris pour un prompt court et pour un prompt long. L’empreinte des paramètres ne double pas simplement parce que l’utilisateur ajoute davantage de contexte.

Cette base fixe explique pourquoi la taille du fichier du modèle est utile pour une première vérification de compatibilité. Elle ne fournit toutefois pas une estimation complète de la mémoire d’inférence maximale.

L’attention complète peut créer un travail intermédiaire proportionnel au carré de la séquence

L’auto-attention conventionnelle compare les positions des jetons entre elles. Si une implémentation matérialise de grandes matrices de scores et de probabilités d’attention, leurs dimensions augmentent avec le carré de la longueur de la séquence.

FlashAttention identifie la mémoire quadratique de l’attention comme un problème majeur des longues séquences et évite de stocker la matrice complète en calculant l’attention par blocs.

Les noyaux d’inférence modernes optimisés peuvent donc utiliser beaucoup moins de mémoire temporaire que ne le suggère la formule naïve. Le travail d’attention sous-jacent reste plus complexe avec les séquences longues, mais le choix de l’implémentation détermine si la matrice complète proportionnelle au carré de la séquence apparaît dans la mémoire de l’appareil.

L’espace de travail maximal peut également varier selon la version du noyau, la forme du lot, la dimension des têtes et le recours éventuel de l’environnement d’exécution à un chemin d’attention moins efficace.

Le cache KV ajoute un état persistant pour chaque jeton conservé

Le décodage autorégressif stocke les clés et les valeurs des jetons précédents afin que le modèle n’ait pas à recalculer l’intégralité du préfixe avant de générer chaque jeton suivant.

PagedAttention considère la croissance du cache KV comme une contrainte majeure de la mémoire nécessaire au service. Sa capacité augmente avec le nombre de jetons conservés, les couches qui produisent le cache, les dimensions clé-valeur, la précision et le nombre de séquences actives.

Contrairement à une matrice d’attention temporaire, cet état doit rester disponible pendant toute la conversation active. Un contexte long peut donc continuer à consommer de la mémoire alors même que le modèle ne produit qu’un nouveau jeton à la fois.

L’explication de ZimaSpace sur la marge mémoire nécessaire à l’IA distingue le stockage du modèle de la capacité supplémentaire requise par le contexte et les utilisateurs simultanés.

-15% OFF

Les requêtes simultanées multiplient l’état dynamique de l’attention

Plusieurs utilisateurs peuvent partager une même copie des poids du modèle, mais leurs prompts privés, leurs jetons générés et leurs branches de cache KV restent généralement séparés.

vAttention utilise une allocation physique dynamique, car la longueur des requêtes et leur durée d’exécution ne sont pas connues au début du service.

Un serveur capable de gérer une conversation de 32 000 jetons peut ne pas pouvoir en gérer quatre simultanément. La taille du lot et le nombre d’utilisateurs multiplient l’état dépendant du nombre de jetons, même si le nombre total de paramètres du modèle reste inchangé.

Le partage de préfixes peut réduire les duplications lorsque les requêtes possèdent un préfixe mis en cache identique, mais les conversations distinctes du foyer nécessitent toujours un état de continuation indépendant.

Les activations et les réservations de l’environnement d’exécution augmentent encore le pic

Le préremplissage du prompt, la projection multimodale, le décodage spéculatif, la capture de graphes, la conversion temporaire de tenseurs et les espaces de travail des bibliothèques peuvent allouer de la mémoire au-delà des poids et du cache KV.

FlashAttention-2 indique que l’attention reste un goulot d’étranglement pour les longues séquences, même lorsque de meilleurs noyaux éliminent les grands intermédiaires matérialisés.

Les allocateurs de mémoire avec mise en cache des frameworks peuvent conserver les blocs libérés afin de les réutiliser. Les outils de suivi de l’appareil peuvent donc afficher une empreinte importante du processus après la fin d’une requête ayant atteint un pic. Cette réservation diffère de la mémoire occupée par les tenseurs actifs, mais elle limite tout de même un autre processus.

La mémoire maximale observée peut donc être atteinte pendant le préremplissage ou le changement de modèle plutôt que pendant un décodage stable à raison d’un jeton.

Les optimisations de l’attention déplacent la limite sans la supprimer

L’attention Flash réduit les entrées-sorties temporaires et le stockage des matrices, l’allocation paginée réduit la fragmentation du KV, une précision plus faible du cache réduit le nombre d’octets par jeton et l’attention à requêtes groupées utilise moins de têtes clé-valeur.

L’attention à requêtes groupées réduit la mémoire des têtes clé-valeur tout en conservant davantage de capacité qu’une seule tête à requêtes multiples.

Les fenêtres glissantes, l’éviction du cache, le déportement et la recherche documentaire peuvent plafonner ou déplacer l’état de l’attention, mais chacun modifie la latence, le contexte accessible ou le comportement des réponses.

Évaluez la charge de travail complète prévue : précision du modèle, longueur réelle des prompts, limite de sortie, taille du lot, nombre d’utilisateurs, jetons visuels et autres services locaux. La mémoire de l’attention a dépassé celle des paramètres lorsque la réduction de l’état lié aux jetons ou de la concurrence rétablit la stabilité sans modifier les poids du modèle.

FAQ

La mémoire de l’attention dépasse-t-elle toujours celle des poids du modèle ?

Non. Les prompts courts utilisés par un seul utilisateur laissent souvent les poids comme composant dominant. L’état de l’attention ne devient dominant qu’une fois qu’un seuil propre au modèle et à l’environnement d’exécution est franchi en matière de contexte, de traitement par lots ou de concurrence.

FlashAttention élimine-t-il la mémoire du cache KV ?

Non. Il réduit le calcul de l’attention et le trafic mémoire temporaire. Le service autorégressif doit toujours conserver l’état des clés et des valeurs, sauf si l’environnement d’exécution le recalcule, l’expulse ou le déporte.

La RAM système peut-elle résoudre un manque de mémoire lié à l’attention ?

Elle peut prendre en charge l’inférence sur processeur ou le déportement dans les environnements d’exécution compatibles, mais le déplacement de l’état actif sur une liaison plus lente peut augmenter la latence et réduire la vitesse de sortie.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.