BitDecoding-FP4 : décodage natif du KV cache FP4
Dans le service de LLM à long contexte, le KV cache consomme à la fois la capacité et la bande passante de la mémoire GPU. Les formats microscaling 4 bits comme NVFP4 et MXFP4 réduisent le cache et permettent d'exécuter l'attention sur les Tensor Cores FP4. Mais les systèmes FP4 KV actuels utilisent une quantification naïve et perdent beaucoup en précision, tandis que les méthodes 4 bits soucieuses de précision reposent sur des codebooks vectoriels dont les accès en table ralentissent le décodage. BitDecoding-FP4 comble cet écart par une conception conjointe algorithme-système. Côté algorithme, trois briques : la Dual-Residual Query Quantization scinde la query en deux tenseurs FP4 et ramène l'erreur de logit de 60 % à 1 % ; l'Underflow-Aware Probability Scaling empêche les scales E4M3 d'arrondir à zéro les probabilités en contexte long ; l'Outlier-Aware Key Quantization combine lissage statique, rotation de Hadamard et recherche de scale pour maîtriser les valeurs aberrantes des keys. Côté système, un softmax transposé, une quantification fusionnée des probabilités et un MMA à queries empilées pour les KV caches paginés suppriment le goulot d'étranglement du softmax. Sur des modèles denses et MoE, avec des architectures GQA et MLA, la précision NVFP4 reste à 0,5 point du KV BF16 et MXFP4 à 1 point, et le décodage suit le KV BF16 lors des rollouts d'entraînement RL. Pour Qwen3-4B et Qwen3-30B-A3B sur NVIDIA B300, le débit maximal est 2,4 à 3,0 fois supérieur à celui du KV BF16.
Contexte
Dans le service de LLM à long contexte, le KV cache figure parmi les plus gros consommateurs de ressources GPU. Il occupe une grande part de la capacité mémoire, et chaque étape de décodage en relit la totalité, ce qui sollicite aussi la bande passante. Plus le contexte s'allonge et plus les requêtes concurrentes se multiplient, plus ces deux coûts s'aggravent.
Comprimer le cache à 4 bits paraît la réponse naturelle. Les formats microscaling 4 bits comme NVFP4 et MXFP4 réduisent le volume du cache et permettent d'exécuter l'attention directement sur les Tensor Cores FP4, sans détour par la déquantification. Or l'article BitDecoding-FP4 relève un fossé entre la recherche algorithmique et l'ingénierie système. Les systèmes FP4 KV actuels recourent à une quantification naïve : ils gagnent en vitesse, mais perdent beaucoup en précision. Les méthodes 4 bits soucieuses de précision, elles, reposent sur des codebooks vectoriels, dont les accès en table ralentissent le débit de décodage. Aucune des deux voies ne réunit exactitude et efficacité.
BitDecoding-FP4 est proposé comme une conception conjointe algorithme-système, avec un objectif clair : un décodage FP4 natif du KV cache, à la fois précis et rapide. Les auteurs isolent d'abord les sources d'erreur, traitent ensuite la query, les probabilités et les keys, puis éliminent le goulot d'étranglement du softmax côté système. La méthode a été validée sur des modèles denses et MoE, avec des architectures d'attention GQA et MLA. L'implémentation est publiée en open source sur GitHub.
Analyse approfondie
La première brique est la Dual-Residual Query Quantization. Le calcul FP4 natif impose de quantifier aussi la query, et une seule passe en FP4 laisse une erreur importante sur les logits. Les auteurs scindent donc la query en deux tenseurs FP4. Le second compense le résidu laissé par le premier, de sorte que les deux représentations de faible précision, additionnées, se rapprochent de la valeur d'origine. Selon le résumé de l'article, l'erreur de logit de la query passe ainsi de 60 % à 1 %. La deuxième brique est l'Underflow-Aware Probability Scaling. En contexte long, chaque probabilité issue du softmax est minuscule. Le scale E4M3 utilisé pour quantifier ces probabilités peut alors être arrondi à zéro, et tout un bloc de probabilités s'effondre. La multiplication-accumulation avec les values perd cette information. La technique ajuste le facteur d'échelle des probabilités pour éviter ce dépassement par le bas. La troisième brique est l'Outlier-Aware Key Quantization. Les tenseurs de keys contiennent des valeurs aberrantes. Avec un scaling par token, une seule valeur aberrante élargit la plage de quantification de tout le token et dégrade la précision des autres canaux. Les auteurs combinent lissage statique, rotation de Hadamard et recherche de scale. Le lissage et la rotation répartissent l'énergie des valeurs aberrantes, puis la recherche de scale choisit un facteur mieux adapté à chaque groupe de valeurs.
Comment BitDecoding-FP4 supprime-t-il le goulot d'étranglement du softmax ? Il s'appuie sur trois techniques système. Un softmax transposé est associé à une quantification fusionnée des probabilités, si bien que cette quantification n'exige plus son propre aller-retour en mémoire. Pour les KV caches paginés, un MMA à queries empilées occupe mieux les unités de multiplication matricielle.
Impact sur l'industrie
Sur la précision, les résultats sont mesurés par rapport au KV BF16. Avec NVFP4, l'écart reste inférieur ou égal à 0,5 point. Avec MXFP4, il reste inférieur ou égal à 1 point. Le résumé ne nomme pas les benchmarks : cet article se limite donc aux écarts publiés. La méthode suit aussi le KV BF16 lors des rollouts d'entraînement RL, un test sensible, car un fort décalage de distribution dû à la quantification du KV pourrait perturber le signal d'apprentissage.
Sur la performance, les auteurs ont mesuré le service de bout en bout sur NVIDIA B300, avec Qwen3-4B, un petit modèle dense, et Qwen3-30B-A3B, un modèle MoE. Le débit maximal est 2,4 à 3,0 fois supérieur à celui du KV BF16. Pour un opérateur, un cache plus petit permet de loger un contexte plus long ou davantage de requêtes concurrentes sur une même carte, et un débit de pointe plus élevé devrait réduire le coût par token servi à matériel constant.
Le résultat déplace aussi la façon de poser le problème. Les approches précédentes acceptaient soit une précision moindre pour une quantification simple, soit un débit moindre pour la précision des codebooks. Ce travail montre qu'en séparant les sources d'erreur et en ajustant l'algorithme au chemin de données du matériel, on tient les deux objectifs. Il cible les Tensor Cores FP4 du B300, de génération Blackwell, et peut servir de référence pour l'attention à faible précision sur du matériel ultérieur. Les développeurs de moteurs d'inférence peuvent étudier directement le softmax transposé, la quantification fusionnée et le MMA à queries empilées.
Perspectives
Les preuves de l'article ont leurs limites. Le résumé ne rapporte des résultats de service que pour deux modèles Qwen3. Il ne donne aucune valeur d'ablation par technique : la contribution propre de chaque brique ne peut donc pas être chiffrée ici. Le comportement sur davantage de modèles et sur des contextes plus longs reste à confirmer par des travaux ultérieurs.
Trois points méritent l'attention. Premièrement, les écarts de 0,5 point pour NVFP4 et de 1 point pour MXFP4 tiennent-ils sur d'autres familles de modèles et sur toute la gamme de longueurs de contexte ? Deuxièmement, quelle part du gain de 2,4 à 3,0 fois vient du cache réduit, et quelle part des techniques système ? Troisièmement, le MMA à queries empilées et la quantification fusionnée des probabilités seront-ils repris par les moteurs d'inférence courants ?
Pour l'instant, BitDecoding-FP4 apporte un point de repère concret : un décodage FP4 natif du KV cache peut rester proche de la précision BF16 tout en augmentant le débit maximal sur B300. Les équipes qui partagent un cache à faible précision entre entraînement et inférence y trouvent aussi un souci de moins, grâce au comportement observé lors des rollouts RL.
Sources
FAQ
Qu'est-ce que BitDecoding-FP4 ?
BitDecoding-FP4 est une conception conjointe algorithme-système pour le décodage natif du KV cache FP4 dans le service de LLM à long contexte. Il traite séparément les erreurs de la query, des probabilités et des keys, puis supprime le goulot du softmax par un softmax transposé et une quantification fusionnée des probabilités. Le code est ouvert sur GitHub.
Pourquoi BitDecoding-FP4 est-il important pour le service de LLM ?
Avec un contexte long, le KV cache consomme à la fois la capacité et la bande passante de la mémoire GPU. Avec BitDecoding-FP4, la précision NVFP4 reste à 0,5 point du KV BF16 et MXFP4 à 1 point. Sur NVIDIA B300, pour Qwen3-4B et Qwen3-30B-A3B, le débit maximal est 2,4 à 3,0 fois supérieur à celui du KV BF16.
Que faut-il surveiller ensuite pour BitDecoding-FP4 ?
Pour BitDecoding-FP4, il faut vérifier que les résultats tiennent hors du cadre testé. L'article ne rapporte des résultats de service que pour Qwen3-4B et Qwen3-30B-A3B sur NVIDIA B300, et ne fournit aucune ablation chiffrée par technique. D'autres modèles et des contextes plus longs restent à valider, grâce au code ouvert sur GitHub.