Continuous Batching
了解连续批处理如何优化 GPU 吞吐量并降低延迟。发现如何使用 Ultralytics YOLO26 在生产级 ML 任务中最大限度地提高效率。
持续批处理是一种先进的调度和推理优化技术,用于机器学习 (ML) 中,以最大限度地提高硬件利用率和吞吐量。在传统的静态批处理中,推理引擎会等待预定数量的请求积累完成后再同时进行处理。这通常会导致效率低下,因为系统必须等待批次中运行时间最长的请求完成后才能释放资源。持续批处理(也称为动态批处理或迭代级批处理)通过在活跃请求完成时立即将新请求注入计算批次来解决此问题,从而显著减少 GPU 的空闲时间并提高整体效率。
Link to this section区分相关概念#
为了更好地理解数据在模型部署期间是如何处理的,区分持续批处理与词汇表中的其他相关术语会很有帮助:
- 批次大小:指在训练或推理期间同时处理的固定样本数量。传统的批处理工作流依赖于静态大小,而持续批处理允许有效批次大小根据传入流量动态波动。
- 实时推理:这一概念侧重于最大限度地减少推理延迟以实现即时预测,并在单个输入到达时对其进行处理。持续批处理通过保持高吞吐量且无需强制快速请求等待较慢请求,弥合了高吞吐量静态批处理与低延迟实时推理之间的差距。
Link to this section实际应用#
持续批处理对于处理大量不可预测请求的生产系统至关重要。以下是其应用的两个具体示例:
-
高吞吐量文本生成:在为大语言模型 (LLM) 提供服务时,根据输出长度的不同,为不同用户生成响应所需的时间也各不相同。利用持续批处理的框架(例如 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 提供了强大的工具,用于在高度优化的生产环境中训练、监控和导出模型。






