Avec les progrès rapides de l’intelligence artificielle (IA), les grands modèles de langage (LLM) sont devenus une pierre angulaire du traitement du langage naturel (NLP). Ces modèles démontrent des capacités remarquables en génération et compréhension du langage, ce qui les rend indispensables pour des applications telles que la traduction automatique, les systèmes conversationnels et la génération de texte. Cependant, à mesure que la taille de ces modèles continue de croître, leur efficacité d’inférence et leur consommation de ressources restent des goulots d’étranglement majeurs pour un déploiement à grande échelle.
Ces dernières années, les chercheurs ont proposé diverses techniques d’optimisation pour améliorer l’efficacité de l’inférence des LLM. Dans nos travaux précédents, nous avons obtenu une accélération de 1,5x de l’inférence en utilisant une compression dynamique du cache KV basée sur le framework très grand modèle de langage (vLLM), posant ainsi une base solide pour l’optimisation des performances des LLM.
Cet article explore deux autres stratégies d’optimisation : le décodage spéculatif et la quantification basse précision. Ces approches visent à maximiser les capacités de calcul du matériel standard, à réduire les coûts d’inférence et à améliorer la vitesse. En employant ces techniques, nous cherchons à offrir de nouvelles perspectives et des solutions pratiques pour améliorer l’efficacité de l’inférence des LLM, répondant ainsi aux défis du déploiement scalable de l’IA.
Décodage spéculatif
Principes techniques
Le décodage spéculatif est une technique qui accélère l’inférence en introduisant un modèle plus petit pour générer plusieurs tokens candidats, qui sont ensuite validés par le modèle plus grand, permettant un décodage parallèle pour améliorer la vitesse. La faisabilité de cette approche repose sur deux facteurs clés :
Goulot d’étranglement mémoire
Dans le matériel GPU moderne, la bande passante d’accès mémoire est souvent plus lente que la vitesse de calcul nécessaire à l’inférence, ce qui rend le processus fortement limité par la mémoire. Le trafic mémoire GPU pendant la phase d’inférence des grands modèles de langage est principalement déterminé par la taille du modèle, alors que les GPU disposent souvent d’une capacité de calcul excédentaire. En exploitant cet excédent via une inférence parallèle avec un petit modèle, l’efficacité globale peut être améliorée.
Précision de prédiction du petit modèle
Les modèles de génération de langage courants actuels sont généralement des modèles autorégressifs basés sur l’architecture Transformer. Les petits modèles présentent une grande précision dans la prédiction des motifs linguistiques courants (par exemple, les collocations d’expressions ou les expressions standard). Lorsque le petit modèle prédit avec succès le token suivant, le grand modèle peut directement réutiliser ce résultat, réduisant ainsi considérablement le coût de calcul.
Méthode de mise en œuvre
La méthode de décodage spéculatif comprend principalement les étapes suivantes :
-
Génération de candidats en plusieurs tours
- Utiliser un petit modèle spécialement entraîné pour une inférence rapide, générant plusieurs tokens candidats de haute qualité pour chaque position.
- Adopter de manière innovante un mécanisme d’ajustement dynamique du seuil de probabilité pour contrôler adaptativement le nombre de candidats.
- Introduire un mécanisme de cache contextuel pour améliorer la précision de prédiction du petit modèle lors de la génération continue de texte.
-
Stratégie de validation efficace
- Concevoir un mécanisme de validation par lots pour regrouper plusieurs tokens candidats et les envoyer au grand modèle pour un processus de notation unique.
- Implémenter une stratégie d’arrêt précoce pour retourner rapidement les résultats lorsqu’une correspondance de haute confiance est trouvée.
- Activer le traitement asynchrone des résultats de validation pour réduire le temps d’attente inactif du GPU.
-
Système d’ordonnancement intelligent
- Équilibrer dynamiquement l’allocation des ressources de calcul entre la prédiction du petit modèle et la validation du grand modèle.
- Utiliser une prédiction adaptative basée sur des statistiques historiques pour optimiser les stratégies de génération de tokens candidats.
- Implémenter un partitionnement et un ordonnancement fin des tâches pour maximiser l’utilisation du matériel.

Fig.1. Décodage spéculatif avec longueur de brouillon dynamique
Résultats expérimentaux
Basé sur le framework d’inférence vLLM leader de l’industrie, nous avons effectué une personnalisation et un développement approfondis, obtenant des améliorations de performances significatives. Nous avons mené des expériences en utilisant le modèle LLaMA-3.1-70B-Instruct sur un GPU H20 et testé des scénarios avec des longueurs de contexte variables. De plus, nous avons comparé les performances avec vLLM sans décodage spéculatif, en nous concentrant sur le débit pour différentes tailles de lots ; les résultats expérimentaux sont présentés dans la Figure 2.
-
Améliorations des performances
- Obtention d’une accélération globale de l’inférence de 1,4x tout en maintenant la qualité de la sortie.
- Compatibilité totale avec les fonctionnalités existantes de vLLM et intégration transparente dans les systèmes actuels.
- Prise en charge de modèles de langage de différentes tailles, avec des améliorations particulièrement significatives pour les grands modèles.

Fig.2. Diagramme du ratio d’accélération du décodage spéculatif.
-
Avantages techniques
- Stratégie d’échantillonnage dynamique basée sur la probabilité pour une rédaction et une validation efficaces des tokens.
- Mécanisme d’ordonnancement intelligent stable garantissant des effets d’accélération constants.
- Rentable avec une faible surcharge de ressources.
Quantification basse précision
Principes techniques
- Aperçu de la quantification
La quantification est une technique largement adoptée qui réduit les coûts de calcul et de mémoire des grands modèles de langage (LLM) en convertissant les poids et les activations du modèle de représentations à haute largeur de bits vers des représentations à plus faible largeur de bits. Plus précisément, de nombreuses méthodes consistent à quantifier les tenseurs FP16 en tenseurs entiers à faible nombre de bits, comme illustré ci-dessous :

- Quantification post-entraînement (PTQ)
La PTQ quantifie les modèles pré-entraînés sans nécessiter de réentraînement, évitant ainsi des coûts de réentraînement élevés. Cependant, l’application de méthodes de quantification traditionnelles aux LLM introduit des défis uniques :
-
- Les LLM présentent une fréquence plus élevée de valeurs aberrantes dans les poids et les activations, ainsi que des plages de distribution plus larges par rapport aux modèles plus petits.
- Par conséquent, une quantification efficace des LLM exige des techniques d’optimisation spécialisées pour minimiser la perte de précision tout en maintenant l’efficacité.
Méthode de mise en œuvre
- Optimisation des valeurs aberrantes
La présence de valeurs aberrantes dans les poids et les activations des grands modèles de langage constitue un défi important lors du processus de quantification. Les méthodes traditionnelles traitent généralement les valeurs aberrantes par écrêtage ou mise à l’échelle simple, ce qui peut bien fonctionner pour les modèles plus petits, mais affecte souvent considérablement les performances des LLM.
Notre approche améliore le traitement des valeurs aberrantes grâce à une analyse détaillée et à des stratégies d’optimisation. Elle affine non seulement le calcul des valeurs aberrantes, mais optimise également les structures de données associées, garantissant que le modèle conserve une puissance de calcul efficace tout en minimisant la perte de précision. Par exemple, nous adoptons une stratégie de distribution de plage dynamique plus flexible pour traiter les valeurs aberrantes de manière hiérarchique, capturant ainsi les caractéristiques du modèle avec plus de précision.
- Opérateurs améliorés et fusion de couches
Nous avons conçu une série d’opérateurs améliorés capables de traiter plus efficacement les structures de données quantifiées. Par exemple, grâce à des techniques de fusion de couches, nous combinons plusieurs opérateurs consécutifs en un seul opérateur lors du calcul direct afin de réduire les surcharges de calcul et les transferts de données intermédiaires.
De plus, pour les opérations courantes telles que la multiplication matricielle combinée à des fonctions d’activation, nous avons conçu des opérateurs à faible nombre de bits efficaces pour accélérer l’inférence du modèle. Cette amélioration réduit non seulement considérablement les besoins en bande passante au niveau matériel, mais améliore également l’efficacité globale du calcul.
- Schéma de quantification FP8 unique
Alors que les méthodes de quantification courantes dans l’industrie utilisent généralement une conversion de FP16 en INT8, cette approche peut ne pas convenir aux scénarios nécessitant une précision plus faible. Notre schéma de quantification FP8 introduit un facteur d’échelle adaptatif pour réduire davantage la largeur de bits tout en conservant l’expressivité numérique du modèle. Dans la mise en œuvre, nous ajustons le rapport entre l’exposant et la mantisse en FP8 pour mieux adapter les caractéristiques de distribution des LLM, garantissant ainsi que le modèle maintienne sa précision même avec des largeurs de bits très faibles.
- Quantification du cache KV
Dans les scénarios prenant en charge l’inférence à grande échelle, l’efficacité de stockage et d’accès du cache KV est cruciale. Les méthodes traditionnelles appliquent souvent des techniques de quantification standard sans optimiser les caractéristiques spécifiques des structures de stockage du cache KV.
Nous proposons une technique spécialisée de quantification du cache KV qui minimise les besoins en ressources de calcul en appliquant des stratégies de quantification spécifiques aux requêtes et aux paires clé-valeur. Plus précisément, nous optimisons les mises à jour dynamiques et la densité de stockage du cache KV, en combinant des méthodes de quantification par morceaux et de stockage de matrices clairsemées pour améliorer considérablement l’utilisation du cache pendant le processus d’inférence.
- Optimisation du processus d’inférence
Les poids du modèle en FP16 sont quantifiés au format FP8 pour l’inférence. Les tokens d’entrée traversent la couche d’embedding et le module Transformer, incluant les mécanismes d’attention et les réseaux feed-forward.
En utilisant FP8 TensorCore et le cache KV optimisé, le système stocke et met à jour efficacement les paires clé-valeur.
Les transformations linéaires et la couche Softmax génèrent la distribution de probabilité de sortie, produisant le token final.
Cette approche exploite l’efficacité de calcul de FP8 TensorCore pour offrir une inférence plus rapide à des coûts de calcul réduits. Dans la Figure 3, les poids du modèle, initialement au format FP16, sont quantifiés en FP8 pour l’inférence, réduisant considérablement les surcharges d’accès aux données et améliorant la vitesse. Pendant le processus d’inférence du LLM, des opérations telles que la projection QKV, l’attention flash et les couches feed-forward subissent des multiplications matricielles au format FP8. Ces calculs sont accélérés à l’aide de Tensor Cores, entraînant une augmentation substantielle de la vitesse d’inférence. Pour atténuer la perte de précision, une petite quantité de données supplémentaires est utilisée pour la PTQ, garantissant que la précision d’inférence du modèle reste intacte. Dans les scénarios de texte long, les surcharges liées à l’accès aux données KV peuvent ralentir la vitesse d’inférence. Pour y remédier, les données KV sont également quantifiées en FP8, optimisant ainsi davantage les performances d’inférence du modèle.

Fig.3. Aperçu du pipeline de quantification de précision FP8.
Résultats expérimentaux
- La Figure 4 montre le ratio d’accélération après application de la quantification basse précision à Llama3-8B-BF16, avec différentes longueurs d’entrée-sortie (10000-1000, 5000-500, 2000-200) et tailles de lots (Batch Size). Plus la longueur d’entrée-sortie est longue, plus l’effet d’accélération est significatif, en particulier lors de l’inférence par lots de grande taille. Sur un seul GPU 4090 exécutant Llama3-8B-FP8-KV8, avec ttft (time-to-first-token) limité à moins de 2 secondes, la taille du lot est d’environ 4, et le ratio d’accélération est de 1,4x.

Fig.4. Ratio d’accélération par quantification FP8.
- Notre méthode réduit considérablement l’impact des valeurs aberrantes lors du traitement de longues longueurs d’entrée-sortie et améliore l’efficacité du calcul et du transfert grâce à des optimisations telles que la fusion de couches. Les méthodes PTQ industrielles traditionnelles ont souvent du mal à gérer de longues longueurs d’entrée-sortie dans les grands modèles, mais notre solution est spécifiquement conçue pour résoudre ce problème, garantissant des performances de modèle stables.
- Les expériences montrent que sur un GPU 4090, notre méthode présente une accélération supérieure lors du traitement de longues longueurs d’entrée-sortie et de tailles de lots moyennes, tout en maintenant une latence d’inférence (ttft) inférieure à 2 secondes, répondant aux exigences d’inférence en temps réel.
Évaluation de la qualité
Pour tester différentes API de modèles (telles que openrouter.ai) sur l’ensemble de test mmlu_pro (5-shot) à l’aide de l’outil lm-evaluation-harness, suivez ces étapes pour l’inférence avec la configuration par défaut de l’outil. Les résultats sont présentés dans la Figure 5.

Fig.5. Comparaison des taux de correspondance exacte entre Meta-Liama-3.1-8B-Instruct-FP8 et Meta-Liama-3.1-8B-Instruct.
Conclusion
Cet article présente le décodage spéculatif et la quantification basse précision comme des techniques complémentaires visant à améliorer l’efficacité de l’inférence des grands modèles de langage (LLM). Le décodage spéculatif accélère le processus d’inférence en exploitant un modèle plus petit pour générer des tokens candidats, qui sont ensuite validés en parallèle par le plus grand modèle, offrant une accélération de 1,4x.
À l’inverse, la quantification basse précision atténue les surcharges de calcul et de mémoire en transformant les poids du modèle en représentations à plus faible largeur de bits, tout en maintenant les performances du modèle. Collectivement, ces méthodologies offrent de nouvelles perspectives et des solutions pratiques pour parvenir à une inférence à haute efficacité, complétant des techniques existantes telles que la compression dynamique du cache KV.
Publié à l’origine sur Novita AI
Novita AI est une plateforme cloud d’IA qui offre aux développeurs un moyen simple de déployer des modèles d’IA via notre API simple, tout en fournissant un cloud GPU abordable et fiable pour construire et passer à l’échelle.
Lectures recommandées
