跳转到内容

连续批处理与 Chunked prefill 分别解决什么问题?

连续批处理在生成迭代之间调整成员:完成的请求退出,有资源时让新请求加入,不必等整批最长的请求结束。

Chunked prefill 则把长输入拆成较小的计算块,方便与正在 Decode 的请求一起调度。一个改变谁在这批里,另一个改变长输入每轮做多少工作。

Chunked prefill拆分输入计算长输入Prefill 块 1Prefill 块 2与已有 Decode按预算调度后续迭代继续调度连续批处理:换成员迭代 1:A、B、CA 完成退出迭代 2:B、CD 新加入

更大批量可能提高总吞吐,也可能增加排队和逐字延迟。调度同时受活跃序列数、每轮 token 预算和 KV 容量限制。

vLLM V1 当前文档中的 Chunked prefill 策略先安排 Decode,再用剩余 token 预算处理 Prefill。max_num_batched_tokens 控制每轮 token 工作量,max_num_seqs 控制序列数,不能互相当成同一个参数。

调参时固定模型和输入输出分布,一次改一个参数,同时看 TTFT、输出间隔、吞吐、排队和抢占。默认值与支持条件按部署版本核对。

PagedAttention 就是连续批处理吗?

Section titled “PagedAttention 就是连续批处理吗?”

不是。PagedAttention 管缓存怎样存,连续批处理管请求怎样参加生成迭代。两者能配合,解决的不是同一个问题。

可能选出吞吐高、用户却等得更久的配置。先确定延迟和成功率要求,再比较达标的吞吐。

资料

核对于 2026-10-13。依据:Orca、vLLM 优化文档、阿里云压测。请求长度与调参步骤为教学示例。延伸阅读:批处理与调度实验。