批处理推理的吞吐优化

举报
yd_295824913 发表于 2026/10/25 01:20:05 2026/10/25
【摘要】 做离线推理时,很多人第一反应是把 batch size 拉大。但吞吐上不去,往往不是 batch 不够大,而是下面几项没配对:序列长度分布。 一个 batch 里混着 50 token 和 4000 token 的请求,padding 会浪费大量算力。按长度分桶,比盲目加大 batch 更有效。动态批处理窗口。 窗口太短,batch 拼不满;窗口太长,延迟上升。要看业务能接受的最大等待时间,...

做离线推理时,很多人第一反应是把 batch size 拉大。但吞吐上不去,往往不是 batch 不够大,而是下面几项没配对:

序列长度分布。 一个 batch 里混着 50 token 和 4000 token 的请求,padding 会浪费大量算力。按长度分桶,比盲目加大 batch 更有效。

动态批处理窗口。 窗口太短,batch 拼不满;窗口太长,延迟上升。要看业务能接受的最大等待时间,而不是只看吞吐。

KV cache 管理。 长上下文场景下,KV cache 可能比权重更吃显存。限制最大长度、及时释放、分页管理,都会影响并发数。

量化与精度。 INT8/FP8 能提升吞吐,但要评估对任务指标的影响,尤其是抽取和数值推理。

CPU 预处理。 tokenizer、图像解码、后处理如果拖后腿,GPU 利用率会卡在 60% 上不去。

调度策略。 短请求优先还是 FIFO,会影响 P99。离线任务也要看尾延迟,不然整体完成时间被长尾拖住。

我现在的顺序是:先看 GPU 利用率和显存瓶颈,再看序列长度分布,最后才调 batch size。顺序反了,很容易调了半天只优化了 benchmark。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。