Les coulisses des moteurs d’exécution pour grands modèles de langage

En 2024, la performance des grands modèles de langage dépend moins de l’entraînement que de l’efficacité des moteurs d’exécution. Six solutions majeures se distinguent par leurs compromis sur la gestion des requêtes, la latence et la mémoire GPU.

La montée en puissance des grands modèles de langage (LLM) en 2024 met en lumière un enjeu crucial : la rapidité et le coût de traitement des tokens en conditions réelles. Plus que l’entraînement, c’est désormais la capacité des moteurs d’exécution à gérer efficacement les requêtes qui détermine la performance. Six moteurs se démarquent dans les infrastructures de production, chacun adoptant des stratégies différentes pour optimiser la latence, le débit et l’usage mémoire.

Les moteurs d’exécution au cœur de la performance des LLM

La vitesse à laquelle un modèle génère du texte dépend de trois facteurs techniques : la manière dont le moteur regroupe les requêtes (batching), la superposition des phases de pré-remplissage et de décodage, ainsi que la gestion du cache des clés-valeurs (KV cache). Ces éléments influencent directement le nombre de tokens traités par seconde, la latence médiane et au 99e percentile, ainsi que la consommation de mémoire GPU.

Parmi les moteurs les plus utilisés figurent vLLM, TensorRT LLM, Hugging Face Text Generation Inference (TGI v3), LMDeploy, SGLang et DeepSpeed Inference / ZeRO Inference. Chacun propose des compromis spécifiques sur ces axes, adaptés à différents cas d’usage et contraintes techniques.

vLLM : une gestion innovante du cache pour réduire la fragmentation

vLLM se distingue par son architecture basée sur PagedAttention. Contrairement aux approches classiques qui stockent le cache KV dans un grand tampon contigu, vLLM segmente ce cache en blocs de taille fixe. Une couche d’indirection permet à chaque séquence de pointer vers une liste de ces blocs, ce qui réduit considérablement la fragmentation mémoire. Cette méthode améliore l’efficacité du stockage et la réutilisation du cache, contribuant à une meilleure performance globale.

À lire