vllm [特性]:多步骤的model_runner?

j2cgzkjk  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(37)

🚀 功能、动机和宣传

目前,在GPUExecutorAsync的execute_model_async中,它使用make_async,这会带来一些调度成本。

小型模型会更加受到影响,例如0.5B可能需要20%的成本,而14B-int4模型大约需要5%。

所以我在想我们是否可以有类似解码突发模式的东西?这样我们可能输出的不仅仅是单个令牌,而是>1个?我认为解码需要分步进行的原因之一是LLM的自回归性质,另一个原因是KV缓存在块内管理,调度器需要在一个块填满时参与分配新的块。

但是如果我们能确保所有未来的令牌都在同一个块中,那么也许不使用调度器是一个好选择?就像当前spec_decode的multi_step_worker所做的那样,它可以简单地多次运行model_runner的execute_model。如果将model_runner设置为多步操作,还有其他需要注意的问题吗?

备选方案

  • 无响应*

附加上下文

  • 无响应*
zynd9foi

zynd9foi1#

我认为如果将CUDA Graph集成到多解码步骤运行器中,它应该会带来更多的好处。

相关问题