Skip to content
Tech AI Wire
AI & LLMsDécryptage

Qwen3.5-9B dépense 32 Ko par jeton pour son cache KV

Qwen3.5-9B n'utilise l'attention complète que sur 8 de ses 32 couches, donc son cache KV coûte 32 Ko par jeton. Ce rapport décide s'il tient dans 8 Go.

Par Tech AI Wire Team

3 min de lecture

XLinkedIn
A GeForce graphics card with two fans standing on a plain gray studio backdrop, the GeForce logo on its shroud.

En chiffres

layers that use full attention
8 of 32
KV cache per token
32KB
native context length in tokens
262,144

Le Qwen3.5-9B d'Alibaba n'utilise l'attention complète que sur 8 de ses 32 couches. Les 24 autres emploient une méthode linéaire dont le coût en mémoire ne croît pas avec la conversation. C'est cette répartition qui permet à un modèle de 9 milliards de paramètres de tenir une longue discussion sur une carte graphique de 8 Go.

Le modèle est sorti en février 2026 sous licence Apache 2.0. La plupart des articles ont retenu ses résultats aux tests. VentureBeat a rapporté un score de 81,7 sur GPQA Diamond, un test de raisonnement scientifique de niveau doctoral, devant le gpt-oss-120b d'OpenAI à 80,1. Pour qui fait tourner le modèle sur sa propre machine, la disposition des couches compte plus que le score.

Ce qu'est un cache KV et pourquoi il grossit

Un modèle de langue relit toute la conversation avant d'écrire chaque nouveau mot. Refaire ce travail à chaque fois serait lent. Le modèle enregistre donc des valeurs intermédiaires, appelées clés et valeurs, dans une réserve nommée cache KV.

Les poids d'un modèle sont un coût fixe. Le cache KV, non. Il grossit avec chaque jeton de la conversation.

Sur une machine dotée de 8 Go de mémoire, cette différence décide beaucoup. Un fichier de modèle peut se charger sans problème et manquer quand même de place dès que la discussion s'allonge. Quand cela arrive, le logiciel déplace en général des couches vers le processeur principal au lieu d'échouer, et la vitesse chute fortement.

Comment Qwen3.5-9B répartit ses couches

La fiche du modèle Qwen3.5-9B décrit la pile comme 8 répétitions d'un bloc de 4 couches. Trois couches de chaque bloc utilisent Gated DeltaNet, une méthode d'attention linéaire. La quatrième utilise l'attention complète à porte.

L'attention linéaire conserve un état courant de taille fixe. Il ne grossit pas quand le texte s'allonge. Ces 24 couches coûtent donc autant à 4 000 jetons qu'à 200 000.

Seules les 8 couches à attention complète tiennent un cache qui grossit. La fiche du modèle donne leur forme : 4 têtes clé-valeur, chacune large de 256 dimensions.

Cela suffit pour calculer le coût par jeton. Multipliez les 8 couches par 2, car les clés et les valeurs sont toutes deux stockées, puis par 4 têtes, puis par 256 dimensions, puis par 2 octets par valeur. Le résultat est 32 768 octets, soit 32 Ko pour chaque jeton de la conversation.

Ce que cela coûte à des longueurs de contexte réelles

La fiche du modèle indique une longueur de contexte native de 262 144 jetons, extensible à environ 1 010 000. À 32 Ko par jeton, le coût du cache à chaque longueur relève de l'arithmétique simple.

La deuxième colonne ci-dessous montre ce que coûterait le même modèle si ses 32 couches utilisaient l'attention complète au lieu de 8. C'est une hypothèse, donnée pour montrer l'ampleur de l'économie.

Longueur de contexteCache KV de Qwen3.5-9BSi les 32 couches utilisaient l'attention complète
8 192 jetons0,25 Gio1,0 Gio
32 768 jetons1,0 Gio4,0 Gio
131 072 jetons4,0 Gio16,0 Gio
262 144 jetons8,0 Gio32,0 Gio

Cette conception économise quatre fois la mémoire de cache, à toutes les longueurs. Sur une carte de 8 Go contenant environ 6,6 Go de poids en 4 bits, c'est la différence entre une conversation de 32 000 jetons et une de 4 000.

Qwen a depuis poussé la même idée plus loin. Sa version Qwen3.8-Flash-Next utilise elle aussi Gated DeltaNet dans trois couches sur quatre, avec en plus une conception à experts creux.

Ce que cela signifie pour les développeurs

Le nombre de paramètres est un mauvais guide pour savoir si un modèle tient dans une quantité de mémoire donnée. Deux modèles de même taille peuvent différer d'un facteur quatre ou plus sur le seul coût du cache. Vérifiez la disposition des couches avant de faire confiance à une estimation de taille.

Les nombres à chercher figurent dans la configuration publiée du modèle : combien de couches utilisent l'attention complète, combien de têtes clé-valeur chacune possède, et quelle est la largeur de chaque tête. Ces trois nombres, multipliés par deux pour les clés et les valeurs et par deux pour un stockage en 16 bits, donnent le coût par jeton. Multipliez ensuite par la longueur de contexte que vous comptez réellement utiliser.

Prévoyez le cache avant de choisir une fenêtre de contexte. Une erreur fréquente consiste à régler le contexte au maximum du modèle simplement parce que ce maximum existe. La plupart des environnements locaux acceptent un réglage qui ne tient pas, puis déplacent discrètement du travail vers le processeur. Cela ressemble à un ralentissement mystérieux plutôt qu'à une erreur.

Diviser le cache par deux est aussi possible. La plupart des environnements peuvent stocker le cache en 8 bits au lieu de 16, ce qui réduit de moitié les chiffres du tableau ci-dessus pour une faible perte de qualité. Sur une machine de 8 Go, c'est souvent le réglage qui fait passer un modèle d'inutilisable à confortable.

Sources

  1. Qwen/Qwen3.5-9B model card - Hugging Face
  2. Alibaba's small, open source Qwen3.5-9B beats OpenAI's gpt-oss-120B and can run on standard laptops - VentureBeat

Articles liés