Continuous Batching
Узнай, как непрерывная пакетная обработка (continuous batching) оптимизирует пропускную способность GPU и снижает задержки. Открой для себя способы использования Ultralytics YOLO26 для максимизации эффективности в производственных ML-задачах.
Continuous batching — это передовой метод планирования и оптимизации инференса, используемый в machine learning (ML) для максимизации использования аппаратного обеспечения и пропускной способности. При традиционном статическом батчинге inference engine ожидает накопления заданного числа запросов для их одновременной обработки. Это часто приводит к неэффективности, так как системе приходится ждать завершения самого долгого запроса в батче перед освобождением ресурсов. Continuous batching, также известный как динамический батчинг или батчинг на уровне итераций, решает эту проблему, добавляя новые запросы в вычислительный батч сразу после завершения активного запроса, что значительно сокращает время простоя на GPUs и повышает общую эффективность.
Разграничение похожих концепций#
Чтобы лучше понять, как данные обрабатываются во время развертывания модели, полезно отличить непрерывную пакетную обработку от других связанных терминов в глоссарии:
- Batch Size: Это фиксированное число сэмплов, обрабатываемых одновременно во время обучения или инференса. Традиционные batch processing workflows опираются на статические размеры, тогда как continuous batching позволяет эффективному размеру батча динамически меняться в зависимости от входящего трафика.
- Real-Time Inference: Эта концепция сфокусирована на минимизации inference latency для мгновенных предсказаний, обрабатывая единичные входные данные по мере их поступления. Continuous batching заполняет разрыв между высокопроизводительным статическим батчингом и низкозадержечным инференсом в реальном времени, поддерживая высокую пропускную способность без принуждения быстрых запросов ждать более медленные.
Реальные приложения#
Непрерывная пакетная обработка критически важна для производственных систем, обрабатывающих большие объемы непредсказуемых запросов. Вот два конкретных примера ее применения:
-
High-Throughput Text Generation: При обслуживании Large Language Models (LLMs) генерация ответов для разных пользователей занимает разное время в зависимости от длины вывода. Фреймворки, использующие continuous batching, такие как vLLM на Ray Serve, могут непрерывно передавать потоком вновь сгенерированные токены и сразу заменять завершенные диалоги новыми промптами. Этот метод, изначально популяризированный research on iteration-level scheduling, кардинально улучшает пропускную способность генерации текста.
-
Asynchronous Video Analytics: В задачах video understanding, таких как отслеживание транспортных средств по сети дорожных камер города, кадры поступают с разными интервалами. Continuous batching позволяет моделям object tracking динамически обрабатывать поступающие видеокадры в ту же миллилищину, как только освобождаются ресурсы, оптимизируя конвейеры hardware acceleration для информационных панелей умного города.
Непрерывная обработка в задачах компьютерного зрения#
При управлении model deployment practices с высоким трафиком итеративный потоковый инференс может имитировать преимущества динамического батчинга, гарантируя поэтапное высвобождение памяти, а не ее блокировку. Следующий пример на Python демонстрирует, как использовать шаблон генератора с model prediction API для эффективной обработки непрерывного потока изображений.
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.")Управление resource scheduling на системном уровне требует баланса между чистой скоростью и операционными затратами. Команды, развертывающие масштабные модели computer vision (CV) и языковые модели, все больше полагаются на продвинутые фреймворки обслуживания для управления этими динамическими батчами. Для корпоративных команд, желающих оптимизировать свою инфраструктуру, Ultralytics Platform предлагает надежные инструменты для обучения, мониторинга и экспорта моделей в высокооптимизированные производственные среды.






