跳转至

Continuous Batching

Continuous Batching 在每个解码迭代边界重新组成 batch:完成的请求立即释放位置,新请求可以加入, 从而减少静态批处理中等待最长序列造成的空闲。

为什么有效

自回归生成每轮只前进一步,不同请求的输出长度差异很大。静态 batch 必须等待最慢请求,持续批处理 则让调度器不断填补空位,提高设备利用率和吞吐。

调度器要处理

  • Prefill 与 Decode 的资源冲突;
  • 不同长度 KV Cache 的内存分配;
  • 请求优先级、取消和超时;
  • 长 prompt 是否分块;
  • 为吞吐合批与满足延迟 SLA 的平衡。

持续批处理主要提升系统利用率,不会改变单个 token 的模型数学计算。批越大也不一定越好:排队、 尾延迟和显存压力可能随之增加。