连续批处理 continuous batching
2026/7/11 3:25:30 网站建设 项目流程

批处理

大模型推理引擎不会每个请求独立推理,会把一些请求组成一个batch进行批处理,这是推理引擎提升吞吐率的关键。

使用批处理后吞吐相比单请求会大幅提升,但还是有个问题,如下图,一个batch=4的批处理,开始推理后,会运行到所有序列推理都结束了才会结束,因此整个batch的推理时间取决于最慢的序列,在这里是第二行的序列,到T8才出现END符号

其他序列即使已经推理完了,也只能等着,并且在这个batch结束前不能安排下一个batch,在第二行结束前,计算资源被浪费了。这被称为request level的batch,必须等待batch内每个请求都结束推理才退出。这也被称为动态批处理,

在传统AI推理中,request level就是最好的方法,因为传统AI很多不是生成式模型,或者是生成式但是生成长度可控,那么可以控制一个batch内的生成长度全相同,这样能实现和连续批处理接近的吞吐,实现还更简单。比如一个CV模型的训练,每轮选出一个batch的图片计算梯度,batch内的图片如果像素相同,则处理时间都是完全相同的。

连续批处理

相对于前面的request level batch,另一种策略是iteration level,具体方法是每个batch都只让所有请求推理一个token,然后退出检查是否有序列输出的是END符号,这些序列的推理结束了,把他们从序列中换出,把新的待推理序列换入。

这样可以消除前面request level的浪费,从时间轴来看,每个时刻都是最大的batch size并行

如下图,最上面是单请求推理,中间是动态批处理,每次的批处理长度都不一样。最下面时连续批处理,每个时间片,都会检查batch内的序列是否结束,结束则填充新的序列,永远都是满batch并行,达到了最大的并行度

在连续批处理下,增大batch size能获得秩序提升的收益,而静态批处理,batch增大后更容易被少数长输出请求拖慢,收益并不明显

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询