Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Dosage continu

Découvrez comment le traitement par lots continu optimise GPU et réduit la latence. Découvrez comment utiliser Ultralytics pour maximiser l'efficacité des tâches de ML en production.

Le traitement par lots continu est une technique avancée d'optimisation de la planification et de l'inférence utilisée dans l' apprentissage automatique (ML) pour maximiser l'utilisation du matériel et le débit. Dans le traitement par lots statique traditionnel, un moteur d'inférence attend qu'un nombre prédéterminé de requêtes s'accumule avant de les traiter simultanément. Cela conduit souvent à des inefficacités, car le système doit attendre que la requête la plus longue du lot soit terminée avant de libérer les ressources. Le traitement par lots continu, également appelé traitement par lots dynamique ou au niveau de l'itération, résout ce problème en injectant de nouvelles requêtes dans le lot de calcul dès qu' une requête active est terminée, ce qui réduit considérablement le temps d'inactivité des GPU et améliore l'efficacité globale.

Distinguer les concepts apparentés

Pour mieux comprendre comment les données sont traitées lors du déploiement du modèle, il est utile de différencier le traitement par lots continu des autres termes connexes du glossaire :

  • Taille du lot: il s'agit du nombre fixe d'échantillons traités simultanément pendant l'entraînement ou l'inférence. Les flux de travail de traitement par lots traditionnels reposent sur des tailles statiques, tandis que le traitement par lots continu permet à la taille effective des lots de fluctuer de manière dynamique en fonction du trafic entrant.
  • Inférence en temps réel: ce concept vise à minimiser la latence d'inférence pour des prédictions immédiates, en traitant les entrées individuelles dès leur arrivée. Le traitement par lots continu comble le fossé entre le traitement par lots statique à haut débit et l'inférence en temps réel à faible latence en maintenant un débit élevé sans forcer les requêtes rapides à attendre les plus lentes .

Applications concrètes

Le traitement par lots en continu est essentiel pour les systèmes de production qui traitent des volumes élevés de demandes imprévisibles. Voici deux exemples concrets de son application :

  1. Génération de texte à haut débit: lors de l'utilisation de de grands modèles linguistiques (LLM), la génération de réponses pour différents utilisateurs prend plus ou moins de temps selon la longueur de la sortie. Les frameworks qui exploitent le traitement par lots en continu, tels que vLLM sur Ray Serve, peuvent diffuser en continu les nouveaux tokens générés et remplacer immédiatement les conversations terminées par de nouvelles invites. Cette méthode, initialement popularisée par la recherche sur la planification au niveau de l'itération, améliore considérablement le débit de génération de texte.
  2. Analyse vidéo asynchrone: dans les tâches de compréhension vidéo, telles que le suivi des véhicules sur le réseau de caméras de circulation d'une ville, les images arrivent à des intervalles différents. Le traitement par lots continu permet aux modèles de suivi d'objets de traiter de manière dynamique les images vidéo entrantes dès que les ressources se libèrent, optimisant ainsi les pipelines d'accélération matérielle pour les tableaux de bord des villes intelligentes.

Traitement continu dans les tâches de vision

Lors de la gestion de pratiques de déploiement de modèles à fort trafic , le streaming itératif des inférences peut simuler les avantages du traitement par lots dynamique en garantissant que la mémoire est libérée progressivement plutôt que bloquée. Python suivant montre comment utiliser le modèle générateur avec l' API de prédiction de modèle pour traiter efficacement un flux continu d'images .

from ultralytics import YOLO

# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")

# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)

# Process each result as soon as it completes
for result in results:
    print(f"Detected {len(result.boxes)} objects in this frame.")

La gestion de la planification des ressources au niveau du système nécessite un équilibre entre la vitesse brute et le coût opérationnel. Les équipes qui déploient des mod èles de vision par ordinateur (CV) et de langage à grande échelle s'appuient de plus en plus sur des cadres de service avancés pour gérer ces lots dynamiques. Pour les équipes d'entreprise qui cherchent à rationaliser leur infrastructure, la Ultralytics offre des outils robustes pour la formation, la surveillance et l'exportation de modèles vers des environnements de production hautement optimisés.

Boostez votre énergie avec Ultralytics YOLO

Bénéficiez d'une vision IA avancée pour vos projets. Trouvez la licence adaptée à vos objectifs dès aujourd'hui.

Explorer les options de licence