什么是 连续批处理(Continuous Batching)?
连续批处理(Continuous Batching)是一种 LLM 服务技术,它在推理期间动态组合活跃请求,在不等待固定批次结束的情况下加入新请求并移除已完成请求。
工作原理
连续批处理通过避免静态批处理的僵硬行为来提升 LLM 服务的 GPU 利用率。在静态批处理中,所有请求都要等待最慢序列;在连续批处理中,调度器可以在其他请求完成时插入新请求,并按 token 步调度工作。这对提示词和输出长度差异很大的聊天负载尤其重要。代价是调度复杂度上升:服务引擎必须在保持加速器忙碌的同时管理 KV Cache 显存、公平性、延迟目标和准入控制。
主要特点
- 动态调度请求,而不是等待固定批次边界
- 在提示词和输出长度变化较大时提升 GPU 利用率
- 与 KV Cache 分配和解码调度紧密相关
- 可提升聚合吞吐量,但会带来单请求延迟权衡
- 常见于 vLLM 风格的现代 LLM 服务引擎
常见用途
- 服务大量输出长度不一的并发聊天用户
- 提升流式 LLM API 的 GPU 利用率
- 减少短请求提前完成造成的空闲时间
- 在生产推理中平衡延迟和吞吐量
- 用真实流量混合评估服务引擎
示例
loading...
Loading code...常见问题
连续批处理和静态批处理有什么区别?
静态批处理等待固定请求组完成;连续批处理会随着生成推进动态加入和移除请求。
连续批处理会降低延迟吗?
它可能降低排队并提升利用率,但延迟影响取决于调度策略、负载和公平性设置。
为什么连续批处理适合聊天场景?
聊天请求的输入和输出长度不均,动态调度可避免短请求和长请求共同浪费加速器时间。
连续批处理对内存管理有什么要求?
它需要高效 KV Cache 分配和回收,让活跃序列增长和结束时不造成严重内存碎片。