批处理

批处理是提高推理吞吐量的关键技术,通过同时处理多个请求充分利用GPU算力。

推理加速·阅读时间:约12分钟

01静态批处理

基本概念

静态批处理将多个请求组成固定大小的批次,等凑够一批后一起处理。

优点

实现简单

容易理解和实现

吞吐量高

充分利用GPU并行能力

缺点

  • 等待凑批增加延迟
  • 不同请求生成长度差异大时效率低
  • 尾部等待问题(短板效应)
  • 不适合在线实时场景

适用场景

  • 离线批量推理
  • throughput优先,延迟不敏感
  • 请求长度相对均匀

02动态批处理

核心思想

动态批处理在每个Token生成步骤动态组合请求,而不是等待整个请求完成。

工作原理

  1. 维护一个请求队列
  2. 每个推理步骤选择一批活跃请求
  3. 同时生成这些请求的下一个Token
  4. 完成的请求退出,新请求加入

优势

  • 更高的GPU利用率:几乎一直保持忙碌
  • 更好的延迟:不需要等整个批次完成
  • 灵活:可随时加入新请求
  • 公平:不同长度请求都能及时处理

vLLM和Text Generation Inference

现代推理框架广泛采用动态批处理技术。

03高级策略

连续批处理(Continuous Batching)

特点

也称为迭代级调度,每个Token生成步骤都可以调整批次

优势

最大化吞吐量,最小化等待时间

批处理调度策略

策略说明适用
FIFO先来先服务简单公平
优先级按优先级排序重要请求优先
最短优先短请求优先处理高吞吐
贪心打包最大化批次利用率资源最优

批大小优化

  • 动态调整:根据负载自动调整批大小
  • 上限设置:避免过大的批次导致OOM
  • 超时机制:等待超时后即使不满也执行
  • 分组策略:相似长度的请求分到一组

最佳实践

  • 优先使用现代推理框架(vLLM、TGI等)
  • 监控批处理效率和GPU利用率
  • 根据业务特点调整调度策略
  • 做好过载保护和流量控制
----