GUIDE Technique

Traitement par lots continu

Le traitement par lots continu (continuous batching) met à jour l'ensemble des requêtes actives entre les cycles de génération au lieu de conserver un lot fixe jusqu'à ce que chaque requête soit terminée.

Écoutez ce guideNarré par l'IA · ~2 min

Sur cette page2 minutes de lecture
  1. Aperçu
  2. Plongée profonde
  3. Mise en œuvre dans le monde réel
  4. L'avenir du traitement par lots continu
  5. Le mettre en pratique
  6. Continuez à explorer
  7. Questions fréquemment posées

Aperçu

It can improve serving utilization, while capacity limits and scheduling policy still govern latency.

Plongée profonde

GPUs are fastest when they process many requests together in a batch. The naive approach, static batching, groups a fixed set of requests, runs them all to completion, then starts the next batch. The problem: language model outputs vary wildly in length, so short requests finish early and their slots sit idle while the batch waits for the longest one, wasting GPU cycles and delaying new arrivals. Continuous batching (also called in-flight or iteration-level batching, popularized by the Orca paper and used in vLLM, TensorRT-LLM, and TGI) operates at the granularity of a single decoding step. After each token is generated, finished sequences exit the batch and queued requests can be admitted when the scheduler has capacity. Iteration-level admission can improve utilization and reduce avoidable waiting compared with fixed batches; the measured effect depends on request lengths, capacity, and scheduling.

Mise en œuvre dans le monde réel

Une API de chat admettant immédiatement les messages utilisateur nouvellement arrivés dans le lot en cours d'exécution au lieu de les mettre en file d'attente pour le lot suivant

Expulser une courte réponse complétée au milieu du lot et remplir son emplacement afin que le GPU ne reste jamais inactif en attendant une longue génération

Combinant le traitement par lots continu avec PagedAttention de vLLM pour insérer et supprimer des séquences à moindre coût à chaque étape de décodage

Un service de complétion de code supportant un nombre élevé de jetons par seconde dans un trafic intense et de longueur variable en gardant le lot plein

L'avenir du traitement par lots continu

Serving teams balance throughput with time to first token and time between generated tokens. Long prefill work can delay decoding unless the scheduler splits or otherwise manages it. Capacity budgets, request priorities, and fairness policies determine which work is admitted. Continuous batching can be combined with paged caches, chunked prefill, and speculative decoding, but each combination should be measured on the actual traffic and hardware.

Le mettre en pratique

Pourquoi c'est important

  • Coût et budget. Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.
  • Décisions plus claires. La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.
  • Contrôle qualité. De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

Attention à

  • L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.
  • Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.
  • Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.

Prochaines étapes

  1. Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
  2. Benchmark dans des conditions de charge et de données réalistes.
  3. Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
  4. Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Continuez à explorer

Newsletter gratuite

Recevez le briefing quotidien sur l'IA

Trois histoires d'IA vérifiées chaque matin de la semaine, écrites dans un anglais simple. Gratuit pour toujours, sans publicité.

Un e-mail chaque jour de la semaine. Désabonnez-vous en un clic. Nous ne vendons ni ne partageons jamais votre adresse.

Testez-vous

Take the Continuous Batching quiz

Commentaires instantanés sur chaque réponse et un certificat partageable avec une pièce d'identité vérifiable une fois que vous avez réussi un cours.

Démarrer le quiz

Soutenez l’enseignement gratuit de l’IA. AI Understanding est une organisation à but non lucratif 501(c)(3) : pas de publicité, pas de paywall, jamais. Faire un don

Questions fréquemment posées

What is Continuous Batching?

Continuous batching updates the active request set between generation iterations instead of holding one fixed batch until every request finishes. It can improve serving utilization, while capacity limits and scheduling policy still govern latency.

Quelle est la principale faiblesse du traitement par lots statique (fixe) pour le service LLM ?

Étant donné que les longueurs de sortie varient, les séquences terminées restent inactives jusqu'à ce que la plus lente se termine, ce qui gaspille les cycles GPU et retarde les nouvelles requêtes.

À quelle granularité le traitement par lots continu ajoute-t-il et supprime-t-il des requêtes ?

Le traitement par lots continu (au niveau de l'itération) met à jour l'ensemble actif après chaque étape de décodage, de sorte qu'il fonctionne jeton par jeton plutôt que par requête entière.

A continuous-batching request finishes and frees capacity. What can the scheduler do next?

Iteration-level scheduling can refill available capacity subject to memory, token, and other limits.

Quelle technique s'associe naturellement au traitement par lots continu pour rendre l'insertion/suppression de séquences bon marché ?

PagedAttention stocke le cache KV de chaque séquence dans des blocs indépendants, de sorte que l'ajout ou la suppression d'une séquence en cours de vol ne perturbe pas la mémoire des autres.

Quel document de recherche est généralement reconnu pour avoir popularisé le traitement par lots au niveau itératif (continu) ?

L'article d'Orca a introduit la planification au niveau des itérations, et l'idée a été adoptée par des systèmes tels que vLLM, TGI et TensorRT-LLM.