Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Dosificación continua

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.

Distinguir conceptos relacionados

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:

  • Tamaño del lote: se refiere al número fijo de muestras procesadas simultáneamente durante el entrenamiento o la inferencia. Los flujos de trabajo de procesamiento por lotes tradicionales se basan en tamaños estáticos, mientras que el procesamiento por lotes continuo permite que el tamaño efectivo del lote fluctúe dinámicamente en función del tráfico entrante.
  • Inferencia en tiempo real: Este concepto se centra en minimizar la latencia de la inferencia para obtener predicciones inmediatas, procesando las entradas individuales a medida que llegan. El procesamiento por lotes continuo salva la distancia entre el procesamiento por lotes estático de alto rendimiento y la inferencia en tiempo real de baja latencia, ya que mantiene un alto rendimiento sin obligar a las solicitudes rápidas a esperar a las más lentas .

Aplicaciones en el mundo real

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:

  1. Generación de texto de alto rendimiento: al utilizar modelos de lenguaje grandes (LLM), generar respuestas para diferentes usuarios lleva un tiempo variable dependiendo de la longitud de la salida. Los marcos que aprovechan el procesamiento por lotes continuo, como vLLM en Ray Serve, pueden transmitir de forma continua los tokens recién generados e intercambiar inmediatamente las conversaciones terminadas por nuevas indicaciones. Este método, popularizado originalmente por la investigación sobre la programación a nivel de iteración, mejora drásticamente el rendimiento de la generación de texto.
  2. Análisis de vídeo asíncrono: en tareas de comprensión de vídeo, como el seguimiento de vehículos a través de la red de cámaras de tráfico de una ciudad, los fotogramas llegan a intervalos diferentes. El procesamiento por lotes continuo permite a los modelos de seguimiento de objetos procesar dinámicamente los fotogramas de vídeo entrantes en el milisegundo en que se liberan los recursos, optimizando las canalizaciones de aceleración de hardware para los paneles de control de las ciudades inteligentes.

Procesamiento continuo en tareas de visió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.

Potencia con Ultralytics YOLO

Obtenga visión artificial avanzada para sus proyectos. Encuentre la licencia adecuada para sus objetivos hoy mismo.

Explore las opciones de licencia