什么是 连续批处理(Continuous Batching)?

连续批处理(Continuous Batching)是一种 LLM 服务技术,它在推理期间动态组合活跃请求,在不等待固定批次结束的情况下加入新请求并移除已完成请求。

工作原理

连续批处理通过避免静态批处理的僵硬行为来提升 LLM 服务的 GPU 利用率。在静态批处理中,所有请求都要等待最慢序列;在连续批处理中,调度器可以在其他请求完成时插入新请求,并按 token 步调度工作。这对提示词和输出长度差异很大的聊天负载尤其重要。代价是调度复杂度上升:服务引擎必须在保持加速器忙碌的同时管理 KV Cache 显存、公平性、延迟目标和准入控制。

主要特点

  • 动态调度请求,而不是等待固定批次边界
  • 在提示词和输出长度变化较大时提升 GPU 利用率
  • 与 KV Cache 分配和解码调度紧密相关
  • 可提升聚合吞吐量,但会带来单请求延迟权衡
  • 常见于 vLLM 风格的现代 LLM 服务引擎

常见用途

  1. 服务大量输出长度不一的并发聊天用户
  2. 提升流式 LLM API 的 GPU 利用率
  3. 减少短请求提前完成造成的空闲时间
  4. 在生产推理中平衡延迟和吞吐量
  5. 用真实流量混合评估服务引擎

示例

loading...
Loading code...

常见问题

连续批处理和静态批处理有什么区别?

静态批处理等待固定请求组完成;连续批处理会随着生成推进动态加入和移除请求。

连续批处理会降低延迟吗?

它可能降低排队并提升利用率,但延迟影响取决于调度策略、负载和公平性设置。

为什么连续批处理适合聊天场景?

聊天请求的输入和输出长度不均,动态调度可避免短请求和长请求共同浪费加速器时间。

连续批处理对内存管理有什么要求?

它需要高效 KV Cache 分配和回收,让活跃序列增长和结束时不造成严重内存碎片。

相关工具

相关术语

相关文章