刚看到 vLLM 时,我以为它是另一种大模型,或者是调用 Qwen 时必须经过的一层。后来才弄清楚:Qwen 是模型,vLLM 是运行和提供模型服务的工具。能不能直接调用 Qwen?当然可以。如果用的是云服务商提供的 API,通常直接按它的接口调用就行,不一定需要 vLLM。
那 vLLM 解决什么问题?
假设我把一个开源模型放在自己的服务器上,做成一个问答网站。刚开始只有我自己使用,模型能正常回答,似乎就够了。但如果很多人同时提问,服务器还要处理请求排队、显卡内存怎么分配,以及怎样让空闲的计算资源及时服务下一批请求。模型本身会回答问题,并不代表它已经适合直接服务一群用户。
vLLM 关注的正是这部分工作。项目介绍了连续批处理,以及用 PagedAttention 管理模型生成答案时使用的注意力缓存。可以把它们粗略理解成两类调度:一类安排哪些请求一起使用计算资源;另一类更灵活地安排显存中的临时数据。目标是让模型服务在并发请求下更有效率。vLLM 项目仓库
不过,“服务更多请求”不等于“每个人的回答都一定更快”。如果大家都在排队,更高的吞吐量能让单位时间内完成更多请求;但单个请求要等多久,还和模型大小、问题长度、显卡性能及同时到来的请求有关。效率提升也不会凭空出现:自己部署模型,仍然需要准备硬件、配置环境,并观察资源使用情况。
所以我现在会这样理解 vLLM:它不是调用模型的必经环节,而是在自己运行模型时,用来处理服务效率和并发问题的一种选择。如果只是试用 Qwen 或通过云 API 做一个小功能,直接调用 API 往往更简单;如果要在自己的机器或服务器上长期托管模型,并且有多个请求同时到来,才更值得研究 vLLM。
让我觉得有意思的是,模型部署的问题并不会在“模型能回答”时结束。真正把它交给用户使用后,排队、显存、响应时间和运行成本都会变成产品体验的一部分。vLLM 解决的是其中一段基础设施问题,也提醒我:AI 应用不只是选一个够强的模型,还要想清楚它将怎样稳定地服务真实的人。