Multi-Bin Batching for Increasing LLM Inference Throughput
Ce document propose le Multi-Bin Batching, une politique de contrôle qui regroupe les requêtes de LLM ayant des temps d'exécution prédits similaires dans des bacs prédéterminés afin de maximiser de manière prouvable le débit d'inférence sous un partitionnement statique, réduisant ainsi considérablement la sous-utilisation des ressources causée par la variation des longueurs de génération.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
À l'ère du numérique, les grands modèles de langage sont devenus les moteurs d'une nouvelle vague d'outils intelligents, capables d'écrire des histoires, de déboguer du code et de répondre à des questions complexes. Ces systèmes fonctionnent en prédisant le mot suivant dans une séquence, un jeton à la fois, un processus qui nécessite une puissance de calcul immense. Pour rendre ces systèmes utiles à de nombreuses personnes simultanément, les serveurs doivent gérer des milliers de requêtes en même temps. La méthode standard pour y parvenir est une technique appelée « batching » (traitement par lots), où l'ordinateur regroupe plusieurs requêtes et les traite toutes en même temps, un peu comme un bus transportant plusieurs passagers vers la même destination. Ce traitement parallèle est essentiel pour la vitesse, mais il introduit une inefficacité subtile : l'ensemble du groupe doit attendre que le passager le plus lent ait terminé avant que le bus ne puisse repartir pour le voyage suivant. Si une personne, dans un groupe de dix, a besoin de beaucoup de temps pour se préparer alors que les autres sont prêtes instantanément, l'ordinateur reste inactif, attendant cette seule requête lente, gaspillant ainsi un temps et une énergie précieux.
Les chercheurs cherchent depuis longtemps un moyen de corriger ce jeu de l'attente sans abandonner l'efficacité du batching. Une nouvelle étude propose une solution appelée « multi-bin batching » (traitement par lots multi-bacs), une méthode qui organise les requêtes entrantes en files d'attente distinctes basées sur la durée prévue de celles-ci. Au lieu de jeter chaque requête dans une seule file d'attente mixte, le système prédit la longueur de la réponse que chaque utilisateur souhaite et les trie dans différents « bacs ». Les requêtes qui sont susceptibles d'être courtes vont dans un bac, tandis que celles qui sont susceptibles d'être longues vont dans un autre. Les lots sont ensuite formés au sein de ces bacs, garantissant que les requêtes de n'importe quel groupe donné ont des durées similaires. Cela empêche les requêtes rapides d'être retenues par les plus lentes, permettant à l'ordinateur de terminer son travail sur un groupe beaucoup plus tôt et de commencer le suivant.
Les chercheurs ont testé cette idée en utilisant un cadre mathématique qui traite le serveur comme une machine unique traitant un flux constant de requêtes. Ils ont prouvé qu'en augmentant le nombre de bacs, le système peut se rapprocher d'une vitesse maximale théorique où aucun temps n'est perdu à attendre les retardataires. Dans leur analyse, ils ont montré que si les bacs sont configurés correctement, le temps que l'ordinateur passe à attendre la fin d'un groupe diminue considérablement. L'étude a également exploré comment cela fonctionne lorsque le temps nécessaire pour générer une réponse suit un modèle statistique spécifique, confirmant que la logique tient bon même lorsque le minutage est imprévisible. La conclusion fondamentale est que le simple fait de regrouper des tâches similaires, plutôt que de les traiter dans l'ordre de leur arrivée, peut réduire considérablement le temps d'inactivité qui frappe les systèmes actuels.
Pour voir si cette théorie fonctionne dans le monde réel, l'équipe a mené des expériences en utilisant un modèle open-source populaire sur une carte graphique haut de gamme. Ils ont comparé leur nouvelle méthode à la méthode standard de batching et à un système plus avancé appelé « continuous batching » (batching continu), qui permet aux nouvelles requêtes de s'insérer dans un groupe dès qu'une place se libère. Dans un test contrôlé où les chercheurs savaient exactement combien de temps chaque réponse prendrait, leur méthode de multi-bin avec seize bacs a surpassé l'approche standard de plus de 150 pour cent. Dans ce scénario spécifique, elle a même légèrement battu le système de batching continu, suggérant que si vous pouvez prédire parfaitement la durée d'une tâche, le tri en groupes serrés est une stratégie hautement efficace.
Cependant, le monde réel est rarement aussi prévisible. Lorsque les chercheurs ont appliqué la méthode à un ensemble de données de questions réelles d'utilisateurs, où ils devaient estimer la longueur de la réponse plutôt que de la connaître avec certitude, les résultats étaient toujours impressionnants mais plus modestes. En utilisant un outil léger pour deviner la longueur de la réponse, le système multi-bin a amélioré le débit de 150 pour cent par rapport à la méthode standard, un gain massif. Pourtant, il est resté en deçà du système de batching continu, qui demeurait le plus rapide globalement. L'écart entre les résultats estimés et les résultats de la « connaissance parfaite » a montré que la précision de la prédiction compte énormément ; lorsque le système devinait correctement la longueur, la performance bondissait de manière significative. Cela indique que si la stratégie de tri est puissante, son plein potentiel dépend de la capacité à avoir un très bon moyen de prédire la durée d'une tâche avant même qu'elle ne commence.
L'étude conclut que cette approche par bacs n'est pas un remplacement des systèmes sophistiqués déjà en usage, mais plutôt un outil puissant qui pourrait leur être ajouté. En agissant comme un mécanisme de tri intelligent avant que les requêtes n'atteignent la file de traitement principale, il pourrait aider les serveurs modernes à gérer le trafic plus efficacement. Les chercheurs ont constaté que le nombre de bacs agit comme un bouton de réglage : trop peu, et le système souffre encore de vitesses dépareillées ; trop nombreux, et le temps passé à trier les requêtes pourrait ralentir les choses. Le point d'équilibre dépend de la charge de travail spécifique et de la précision avec laquelle le système peut prédire la durée des tâches. En fin de compte, ce travail démontre qu'un changement simple dans la façon dont les requêtes sont regroupées — en traitant les tâches similaires comme des voisines plutôt que comme des étrangères — peut débloquer des améliorations de vitesse significatives pour les systèmes d'intelligence artificielle qui alimentent nos vies numériques quotidiennes.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.