我看到vLLM进行连续批处理,想知道我们是否可以将打包融入连续批处理。
我脑海中的想法是使用用户定义的最大序列长度和最大令牌数,我们实际上可以将输入令牌连接/打包在一起(以相同的连续方式)。
给定:
- 要打包的输入序列数量(
amt_input_seq
) - 最大序列长度(
max_seq_len
) - 要生成的最大令牌数(
max_tokens
) - 总输入令牌数(
total_input_tokens
),其中total_input_tokens
是从不同输入序列一起打包的总令牌数(amt_input_seq
)
优化打包的条件:(amt_input_seq
* max_tokens
) + total_input_tokens
<= max_seq_len
基本上,与其进行连续批处理和填充,我们可以进行连续批处理和打包,以充分利用gpu。你怎么看?
3条答案
按热度按时间368yc8dk1#
旧版本的LLM确实支持连续批处理,但在v0.2.2之后,需要填充以处理不同长度的提示,请参考#1985。
mitkmikd2#
旧的llama确实支持连续批处理中的填充,但在v0.2.2之后,需要填充以处理不同长度的提示,参考#1985。因此,如果bs=1,则无需考虑这一点。此外,对于与llama模型相关的调度,是否有任何自定义优化方向?
z4bn682m3#
旧版本的LLM确实支持连续批处理,但在v0.2.2之后,需要填充以处理不同长度的提示,参见#1985。
我们是否有一个版本之间的基准比较?