🚀 功能、动机和宣传
目前,在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设置为多步操作,还有其他需要注意的问题吗?
备选方案
- 无响应*
附加上下文
- 无响应*
1条答案
按热度按时间zynd9foi1#
我认为如果将CUDA Graph集成到多解码步骤运行器中,它应该会带来更多的好处。