GUIDE Technique

Traitement par lots continu

Le traitement par lots continu est une technique de service qui ajoute et supprime des demandes d'un lot en cours d'exécution, jeton par jeton, au lieu d'attendre la fin d'un lot fixe entier.

Aperçu

Le traitement par lots continu est une technique de service qui ajoute et supprime des demandes d'un lot en cours d'exécution, jeton par jeton, au lieu d'attendre la fin d'un lot fixe entier. Cela maintient le GPU constamment occupé et augmente considérablement le nombre d’utilisateurs qu’un modèle d’IA peut servir à la fois.

Le traitement par lots continu est un élément technique qui affecte la qualité du modèle, le coût de l'infrastructure, la latence et la fiabilité à grande échelle.

Plongée profonde

Les GPU sont les plus rapides lorsqu’ils traitent plusieurs requêtes ensemble par lots. L'approche naïve, le traitement par lots statique, regroupe un ensemble fixe de requêtes, les exécute toutes jusqu'à leur achèvement, puis démarre le lot suivant. Le problème : la longueur des sorties du modèle de langage varie énormément, de sorte que les requêtes courtes se terminent plus tôt et leurs emplacements restent inactifs pendant que le lot attend la plus longue, gaspillant les cycles GPU et retardant les nouveaux arrivants. Le traitement par lots continu (également appelé traitement par lots en vol ou au niveau itération, popularisé par l'article Orca et utilisé dans vLLM, TensorRT-LLM et TGI) fonctionne à la granularité d'une seule étape de décodage. Une fois chaque jeton généré, les séquences terminées quittent le lot et les demandes fraîchement arrivées sont immédiatement intégrées. Cela maintient le lot plein et le GPU saturé, augmentant souvent le débit plusieurs fois avec une latence plus faible pour les utilisateurs en attente.

Aperçu technique

Le changement clé consiste à passer du regroupement de requêtes entières au regroupement d’itérations individuelles. À chaque étape de décodage, le planificateur construit l'ensemble actif : il exécute une passe avant sur toutes les séquences en vol, émet un jeton chacune, expulse celles qui atteignent un jeton de fin de séquence ou une limite de longueur, et admet les demandes en file d'attente pour remplir les emplacements libérés. L'association à cela avec la mémoire KV flexible de PagedAttention rend l'insertion et la suppression de séquences en cours de vol peu coûteuses, puisque le cache de chaque séquence réside dans des blocs indépendants.

Maîtriser le traitement par lots continu

Le traitement par lots continu est une technique de service qui ajoute et supprime des demandes d'un lot en cours d'exécution, jeton par jeton, au lieu d'attendre la fin d'un lot fixe entier. Cela maintient le GPU constamment occupé et augmente considérablement le nombre d’utilisateurs qu’un modèle d’IA peut servir à la fois. Le traitement par lots continu est un élément technique qui affecte la qualité du modèle, le coût de l'infrastructure, la latence et la fiabilité à grande échelle. Pour acquérir une compréhension approfondie, considérez le traitement par lots continu comme un modèle opérationnel et non comme une fonctionnalité unique : définissez les résultats souhaités, clarifiez les hypothèses et séparez ce que le système peut faire de manière fiable de ce qui nécessite encore un jugement d'expert.

Dans la pratique, des équipes solides utilisant le traitement par lots continu optimisent les choix d'architecture, de données et d'infrastructure en fonction de la fiabilité et des coûts. Ils documentent des critères de réussite explicites, testent par rapport à des données et des flux de travail réalistes et itèrent en fonction des modèles d'échec observés plutôt que des victoires de référence ponctuelles. C’est là que la compréhension théorique se transforme en capacité durable au niveau des produits, des politiques et des opérations.

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années. Dans le même temps, l’optimisation d’un benchmark peut masquer des faiblesses plus larges du système. L'approche la plus résiliente consiste à combiner vitesse d'expérimentation et discipline de gouvernance : exécuter des projets pilotes, capturer des preuves, publier des journaux de décision et mettre à jour en permanence les protections à mesure que le comportement du modèle, les attentes des utilisateurs et les exigences réglementaires évoluent.

Impact stratégique

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

L'avenir du traitement par lots continu

Le traitement par lots continu est désormais la norme dans le service LLM de production. Les travaux futurs affinent le planificateur : séparation de la phase de pré-remplissage lourde en calcul de la phase de décodage plus légère (désagrégation), pré-remplissage fragmenté pour éviter de bloquer le décodage, politiques de priorité et d'équité pour les charges de travail mixtes et couplage plus étroit avec le décodage spéculatif afin que plusieurs brouillons de jetons soient validés par étape. L’objectif est de réduire le nombre maximum de jetons par seconde par GPU tout en gardant une latence de réponse individuelle faible et prévisible.

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

Modèles de mise en œuvre

Le batching continu en pratique

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

Une API de chat admet 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. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, conservent un chemin d'escalade humaine pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le batching continu en pratique

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.

Expulser une courte réponse complète au milieu du lot et remplir son emplacement afin que le GPU ne reste jamais inactif en attendant une longue génération. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, maintiennent un chemin d'escalade humaine pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le batching continu en pratique

Combiner 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.

En 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, les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, conservent un chemin d'escalade humain pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le batching continu en pratique

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

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. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, maintiennent un chemin d'escalade humain pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Risques et garde-fous

!

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.

Feuille de route de mise en œuvre

1

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

2

Benchmark dans des conditions de charge et de données réalistes.

Benchmark dans des conditions de charge et de données réalistes. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

3

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

4

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

Continuez à explorer