文章预览
提前祝大家五一快乐!节前我们就来学习vllm v1中一个不怎么复杂,但又比较重要的操作:KV Cache的初始化。 在Vllm V1系列2中,我们以MultiprocExecutor为例(这种类型的Executor适用于单机多卡且不使用ray的场景),详细介绍了Executor->Workers架构,如下图所示: 简单回顾几个重要信息: Executor广播数据到各个workers上,各个workers处理数据,并将结果返回给Executor。 数据在这里是一个广泛的概念,它可以被抽象理解成 (method, data) 的形式 。其中,data是待处理的数据本身,method表示你期望各个worker调用什么样方法来处理这份数据。 所以广泛上说,这里的数据并不单指要被送去做推理的数据,理论上当你想要所有的workers共同执行某个方法,并且将执行后的结果收集到Executor上时,你都可以通过该操作来完成 。例如我们本文要讨论的在各个workers上做kv cache的初始
………………………………