Continuous Batching
了解连续批处理如何优化 GPU 吞吐量并降低延迟。发现如何使用 Ultralytics YOLO26 在生产 ML 任务中实现效率最大化。
连续批处理是一种在 机器学习 (ML) 中使用的高级调度和推理优化技术,旨在最大化硬件利用率和吞吐量。在传统的静态批处理中,推理引擎 需要等待预定数量的请求积累后才能同时进行处理。这通常会导致效率低下,因为系统必须等待批次中耗时最长的请求完成后才能释放资源。连续批处理(也称为动态或迭代级批处理)通过在活跃请求完成后立即将新请求注入计算批次来解决此问题,从而显著减少 GPU 的空闲时间并提高整体效率。
Link to this section区分相关概念#
为了更好地理解数据在模型部署期间是如何处理的,将连续批处理与词汇表中的其他相关术语区分开来会有所帮助:
- 批大小 (Batch Size):指在训练或推理过程中同时处理的固定样本数量。传统的 批处理工作流 依赖于静态大小,而连续批处理允许有效批大小根据传入流量动态波动。
- 实时推理 (Real-Time Inference):此概念侧重于最小化 推理延迟 以实现即时预测,并在单个输入到达时对其进行处理。连续批处理通过保持高吞吐量且不强制要求快速请求等待慢速请求,填补了高吞吐量静态批处理与低延迟实时推理之间的空白。
Link to this section实际应用#
连续批处理对于处理大量不可预测请求的生产系统至关重要。以下是其应用的两个具体示例:
-
高吞吐量文本生成:在服务 大型语言模型 (LLMs) 时,根据输出长度的不同,为不同用户生成响应所需的时间也各不相同。利用连续批处理的框架(例如 Ray Serve 上的 vLLM)可以持续流式传输新生成的 token,并立即用新提示替换已完成的对话。这种最初由 迭代级调度研究 推广的方法,极大地提高了文本生成的吞吐量。
-
异步视频分析:在 视频理解 任务中,例如跟踪城市交通摄像头网络中的车辆,帧的到达间隔各不相同。连续批处理允许 对象跟踪 模型在资源空闲的毫秒级内动态处理传入的视频帧,从而为智慧城市仪表板优化 硬件加速 管道。
Link to this section视觉任务中的连续处理#
在管理高流量 模型部署实践 时,迭代式流式推理可以通过确保内存被逐步释放而不是被阻塞,来模拟动态批处理的优势。以下 Python 示例演示了如何使用生成器模式配合 模型预测 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.")管理系统级 资源调度 需要在原始速度和运营成本之间取得平衡。部署大规模 计算机视觉 (CV) 和语言模型的团队越来越依赖先进的服务框架来管理这些动态批次。对于寻求精简基础设施的企业团队,Ultralytics Platform 提供了强大的工具,用于在高度优化的生产环境中进行模型训练、监控和导出。






