文章预览
在实际的模型部署场景中,我们一般会先优化模型的性能,这也是最直接提升模型服务性能的方式。但如果从更全局方面考虑的话,除了模型的性能,整体的调度和pipeline优化对服务的性能影响也是很大。 比如LLM中提的很多的 `Continuous batching` [1] ,对整体LLM推理的性能影响就很大,这个不光光是提升kernel性能能够解决的问题。 这里总结下各种batching策略,以及各种batch策略对整体性能的影响,可能不够全面,也希望能够抛砖引玉,一起交流。 单batch 单batch就是不组batch,也就是一个图片或者一个sentence传过来,直接送入模型进行推理。 对于普通CV模型来说,我们的输入tensor大小可以是 [1,3,512,512] ,以NCHW维度举例子,这里的N是1,即 batch=1 。对于LLM来说,可能是一个input_ids,维度是 [1,1] ,比如: input_ids tensor([[ 0, 376, 1366, 338, 263, 3017, 77
………………………………