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