一句话定义:连续批处理(Continuous Batching)是一种 LLM 推理调度策略:每个解码步都重新看一遍批次,谁生成完了就退出,排队的新请求立刻补位,而不是等整批全部结束才换下一批。
原理:LLM 生成文本分两段——预填充(Prefill)把提示词算一遍,解码(Decode)逐 token 输出。不同请求的输出长度差很多:有人只要一句话,有人要写长文。静态批处理(Static Batching)像拼桌吃饭:人到齐才开桌,必须等最慢的吃完才翻台,快的人只能干等。GPU 的算力就这样空转在“等最慢”上。连续批处理则像公交车站:每到一站都能上下客,谁到站谁下车,等位的人马上补上。于是 GPU 几乎每一步都在算有效 token,吞吐显著提升。
它常和显存管理配合。比如 KV 缓存(KV Cache)会随对话变长而膨胀,分页注意力(PagedAttention)负责把显存切块管理;连续批处理负责“怎么安排请求一起算”。两者互补,但别混为一谈:前者是内存管理,后者是调度策略。
| 维度 | 静态批处理 | 连续批处理 |
|---|---|---|
| 换批时机 | 整批全部结束 | 每个解码步都可换 |
| 短请求 | 等长请求,槽位空转 | 生成完立即退出 |
| 长请求 | 拖累整批 | 继续跑,不阻塞空位 |
| 吞吐表现 | 受最长序列限制 | GPU 空转更少 |
| 实现难度 | 较低 | 较高,依赖调度与显存管理 |
对 AI 从业者:这是推理服务提升吞吐、摊薄单位成本的关键技巧。主流推理框架大多支持,但默认策略、开关和上限以官方页面为准。对普通职场人:你用的 AI 产品能同时服务更多人、高峰期少排队,背后可能就有它。
最后提醒:连续批处理主要优化吞吐,不保证单条延迟一定更低;延迟还受模型大小、排队长度、输出长度和硬件影响。吞吐与延迟要按业务目标调平衡,上线前用真实流量压测,别只看单一跑分。
