深圳Yolo 视觉
深圳
立即加入
词汇表

连续批处理

了解连续批处理如何优化 GPU 吞吐量并减少延迟。探索如何使用 Ultralytics YOLO26 在生产 ML 任务中最大化效率。

连续批处理是一种先进的调度和推理优化技术,用于机器学习 (ML)中,以最大限度地提高硬件利用率和吞吐量。在传统的静态批处理中,推理引擎会等待预定数量的请求累积,然后才同时处理它们。这通常会导致效率低下,因为系统必须等待批处理中最长的请求完成才能释放资源。连续批处理,也称为动态或迭代级批处理,通过在活动请求一完成就将新请求注入计算批处理来解决此问题,从而显著减少 GPU 的空闲时间并提高整体效率。

区分相关概念

为了更好地理解模型部署期间数据是如何处理的,区分连续批处理与词汇表中其他相关术语会很有帮助:

  • 批量大小:这指的是在训练或推理期间同时处理的固定样本数量。传统的批量处理工作流依赖静态大小,而连续批处理允许有效批量大小根据传入流量动态波动。
  • 实时推理:该概念侧重于最小化推理延迟以实现即时预测,并在输入到达时处理单个输入。连续批处理通过在保持高吞吐量的同时,不强制快速请求等待较慢请求的方式,弥合了高吞吐量静态批处理和低延迟实时推理之间的差距。

实际应用

连续批处理对于处理大量不可预测请求的生产系统至关重要。以下是其应用的两个具体示例:

  1. 高吞吐量文本生成:在服务大型语言模型(LLM)时,为不同用户生成响应所需的时间因输出长度而异。利用连续批处理的框架——例如 vLLM on Ray Serve——可以持续流式传输新生成的 token,并立即将已完成的对话替换为新的提示。这种方法最初由迭代级调度研究推广,极大地提高了文本生成吞吐量。
  2. 异步视频分析:在视频理解任务中,例如追踪城市交通摄像头网络中的车辆,帧以不同间隔到达。连续批处理允许目标追踪模型在资源一释放就立即动态处理传入的视频帧,从而优化智慧城市仪表板的硬件加速管道。

视觉任务中的连续处理

在管理高流量的模型部署实践时,迭代地流式传输推理可以通过确保内存逐步释放而不是被阻塞来模拟动态批处理的优势。以下 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 提供了强大的工具,用于在高度优化的生产环境中训练、监控和导出模型。

让我们一起共建AI的未来!

开启您的机器学习未来之旅