Le traitement par lots continu est une méthode d’ordonnancement dynamique du côté serveur des grands modèles : le système n’a pas besoin d’attendre que toutes les requêtes du même lot soient générées avant de remplacer le lot suivant ; au lieu de cela, après chaque étape de génération, il supprime les requêtes terminées et en ajoute de nouvelles. Cela améliore principalement l’utilisation du GPU et le débit global, ciblant l’efficacité du service lorsque plusieurs personnes appellent le modèle simultanément.
Pourquoi le traitement statique par lots est sujet à l’attente vide
Les processeurs batch traditionnels assemblent d’abord un ensemble de requêtes puis les exécutent ensemble. Mais la durée d’entrée et de sortie des tâches de génération varie beaucoup : certains répondent avec seulement quelques dizaines de jetons, tandis que d’autres doivent faire des centaines d’étapes. Après qu’une requête courte est terminée, sa position peut rester vide, tandis que les requêtes ultérieures ne peuvent attendre que dans la file d’attente que la fin de tout le lot.
Le traitement par lots continu réduit la granularité de l’ordonnancement de « requête complète » à « itération de génération courante ». Après chaque cycle de génération de jetons, l’ordonnanceur examine quelles séquences se terminent et lesquelles peuvent être saisies, puis forme ensemble le lot suivant. Les membres du lot changent continuellement, c’est pourquoi on parle souvent d’ordonnancement itératif ou de traitement dynamique par lots.
Une répartition nécessite de gérer trois tâches simultanément
- Débit : Essayez de remplir les ressources informatiques disponibles pour permettre à davantage de requêtes d’avancer ensemble.
- Latence : Il ne s’agit pas seulement d’attendre de plus gros lots, mais de faire attendre les utilisateurs déjà arrivés dans de longues files d’attente.
- Mémoire vidéo : Chaque séquence active doit conserver son état contextuel. Plus le lot est grand, plus la pression mémoire sur le cache KV est élevée.
Par conséquent, la limite de lots n’est pas toujours meilleure autant que possible. Le cadre de service traite également du comblement des déchets de différentes durées, des stratégies préemptives, de la priorisation, de l’équité, ainsi que du pré-bourrage des entrées et du décodage jeton par jeton nécessitant des exigences variables en puissance de calcul.
Que ressentiront les utilisateurs ?
Dans les services en ligne simultanés et stables, le traitement par lots continu réduit souvent les écarts de file d’attente et permet à plus d’utilisateurs de servir le même ensemble de GPU. Cependant, un débit accru ne signifie pas que chaque requête est plus rapide : si le planificateur suit des conditions de surcharge, les requêtes de faible priorité peuvent attendre plus longtemps, et la latence d’une requête unique peut même augmenter.
Lors de l’évaluation, le délai du premier jeton, l’intervalle entre les jetons suivants, le nombre total de jetons par seconde et la latence de haut rang doivent être observés séparément. Des déploiements locaux personnels à faible concurrence peuvent difficilement produire des lots dynamiques, ce qui pourrait limiter les bénéfices ; Qu’il s’agisse d’API, de plateformes de chat ou de clusters d’inférence multi-locataires, c’est l’infrastructure centrale qui détermine le coût et l’expérience.