Hugging Face a récemment introduit le *batching continu asynchrone*, une avancée technique majeure visant à optimiser l’inférence des grands modèles de langage (LLM) et à améliorer significativement l’utilisation des unités de traitement graphique (GPU).
Traditionnellement, le *batching continu* permet de regrouper plusieurs requêtes pour une exécution simultanée sur le GPU, augmentant ainsi le débit. Cependant, cette méthode peut entraîner des périodes d’inactivité du GPU lorsque certaines requêtes sont en attente d’opérations d’entrée/sortie (I/O) ou de génération de tokens, réduisant l’efficacité globale.
La nouvelle approche asynchrone résout ce problème en permettant au GPU de basculer entre différentes requêtes. Lorsqu’une requête est bloquée par une opération non-calculatoire, le GPU peut immédiatement prendre en charge une autre requête prête à être traitée. Cette parallélisation est rendue possible grâce à l’utilisation de la bibliothèque `asyncio` de Python, qui sépare les tâches de calcul intensif des tâches d’E/S.
Les bénéfices sont multiples : une meilleure utilisation des ressources GPU, une latence réduite pour les utilisateurs et un débit global accru. Cette innovation est particulièrement pertinente pour les services d’IA à grande échelle, où l’efficacité et la réactivité des LLM sont primordiales pour une expérience utilisateur fluide.
L’intégration de cette technique dans des frameworks comme `text-generation-inference` (TGI) et `vLLM` promet d’améliorer la scalabilité et la performance des applications basées sur l’IA générative.
Source : HuggingFace Blog