Descubra cómo el procesamiento por lotes continuo optimiza GPU y reduce la latencia. Descubra cómo utilizar Ultralytics para maximizar la eficiencia en las tareas de aprendizaje automático en producción.
El procesamiento por lotes continuo es una técnica avanzada de optimización de la programación y la inferencia que se utiliza en el aprendizaje automático (ML) para maximizar la utilización del hardware y el rendimiento. En el procesamiento por lotes estático tradicional, un motor de inferencia espera a que se acumule un número predeterminado de solicitudes antes de procesarlas simultáneamente. Esto suele provocar ineficiencias, ya que el sistema debe esperar a que finalice la solicitud de mayor duración del lote antes de liberar los recursos. El procesamiento por lotes continuo, también conocido como procesamiento por lotes dinámico o a nivel de iteración, resuelve este problema inyectando nuevas solicitudes en el lote de cálculo tan pronto como se completa una solicitud activa, lo que reduce significativamente el tiempo de inactividad de las GPU y mejora la eficiencia general.
Para comprender mejor cómo se procesan los datos durante la implementación del modelo, resulta útil diferenciar el procesamiento por lotes continuo de otros términos relacionados del glosario:
El procesamiento por lotes continuo es fundamental para los sistemas de producción que gestionan grandes volúmenes de solicitudes impredecibles. A continuación se muestran dos ejemplos concretos de su aplicación:
Al gestionar prácticas de implementación de modelos con mucho tráfico , la transmisión iterativa de inferencias puede simular las ventajas del procesamiento por lotes dinámico, ya que garantiza que la memoria se libere progresivamente en lugar de bloquearse. El siguiente Python muestra cómo utilizar el patrón generador con la API de predicción de modelos para gestionar de forma eficiente un flujo continuo de imágenes .
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 gestión de la programación de recursos a nivel de sistema requiere un equilibrio entre la velocidad bruta y el coste operativo. Los equipos que implementan modelos masivos de visión artificial (CV) y lenguaje dependen cada vez más de marcos de servicio avanzados para gestionar estos lotes dinámicos. Para los equipos empresariales que buscan optimizar su infraestructura, la Ultralytics ofrece herramientas robustas para entrenar, supervisar y exportar modelos a entornos de producción altamente optimizados.