vLLM V1 重磅升级:核心架构全面革新
本文主要是 翻译简化+个人评读,原文请参考:vLLM V1: A Major Upgrade to vLLM’s Core Architecture
vLLM V1 开发背景
2025年1月27日,vLLM 开发团队推出 vLLM V1 alpha 版本,这是对框架核心架构的里程碑式升级。基于过去一年半的开发经验沉淀,vLLM 开发团队重新审视关键设计决策,整合多样化功能模块,并通过代码重构大幅提升框架的灵活性和可扩展性。
V1 版本在性能上已实现业界领先水平,且未来将持续优化。更令人振奋的是,用户可通过设置环境变量 VLLM_USE_V1=1
无缝启用新架构,完全兼容现有 API。经过数周的测试与反馈收集后,V1 将正式成为默认推理引擎。
架构升级的深层逻辑 从 V0 到 V1 的进化之路 vLLM 在过去18个月成功支持了多样化 模型架构、功能特性和硬件后端。但随着社区生态的横向扩展,vLLM 逐渐面临系统复杂度膨胀和纵向优化整合的挑战。各类功能模块的独立开发模式导致组合应用效率低下, 技术债务的积累促使 vLLM 重新审视底层 架构设计。
V1 的设计哲学 基于上述背景,本次升级聚焦四大核心目标:
- 构建简洁、模块化、易扩展的代码架构
- 实现接近零CPU开销的高效推理
- 将关键优化技术整合至统一架构
- 默认启用核心功能,实现零配置体验
这种设计思路体现了软件工程中的"高内聚低耦合"原则,通过架构重构打破功能孤岛,为后续技术迭代奠定基础。
技术亮点全解析
1. 优化执行循环 & API 服务器
随着 GPU 计算速度的跃升(如 Llama-8B 在 H100 上的单步推理时间已缩短至5ms),传统架构中 API 服务器、调度器、输入预处理等CPU密集型操作逐渐成为性能瓶颈。
V1 创新性地引入:
- 隔离式 EngineCore 执行核心:专注调度与模型执行
- 多进程深度整合:通过 ZeroMQ 实现 CPU 任务并行化
- 异步流水线:将 tokenization、多模态处理等操作与核心推理重叠执行
这种架构类似于CPU的乱序执行设计,最大化硬件资源利用率。
2. 统一调度器革新
突破性采用"无阶段"调度设计
- 统一处理用户提示词(prompt tokens)和模型生成词(output tokens)
- 动态调度字典:
{request_id: num_tokens}
实现灵活资源分配 - 支持分块预填充(chunked-prefill)、前缀缓存(prefix caching)等高级特性
示例场景:在固定token预算下,调度器可智能分配不同请求的处理量,如图示动态分配策略。
3. 零开销前缀缓存
相较于 V0 版本存在的缓存命中率敏感问题,V1 实现三大突破:
- 哈希前缀缓存 + LRU 淘汰算法优化
- 恒定时间复杂度数据结构
- Python 对象创建开销最小化
实测数据显示:即便缓存命中率为0%,吞吐量损失<1%;高命中率时性能提升可达数倍,因此默认启用该功能。
4. 张量并行推理新范式
重构分布式推理架构:
- 消除 Worker 0 的特殊地位,实现对称架构
- 增量更新传输机制:仅传递状态差异(diffs)
- 统一单卡/多卡执行路径,抽象分布式逻辑
这种设计类似于分布式系统中的最终一致性模型,通过状态缓存降低通信开销
5. 持久化批次处理
在vLLM V0中,模型的输入张量和元数据在每一步都会重新创建,这通常会导致显著的CPU开销。为了优化这一点,V1版本实现了创新性 Persistent Batch 技术:该技术缓存了输入张量,并在每一步仅对它们应用差异(diffs)。
此外,V1通过广泛使用Numpy操作而非Python的原生操作,基于 numpy 的差异更新机制,最大限度地减少了更新张量时的CPU开销。
6. 编译优化双剑客
torch.compile
自动优化:覆盖多种模型架构,减少定制内核开发- 分段式 CUDA Graphs:突破传统 CUDA Graphs 的限制
7. 多模态模型专项优化
将视觉语言模型(VLMs)支持提升至新高度:
- 异步预处理流水线:图像转码/裁剪等操作offload至独立进程
- 多模态前缀缓存:支持图像哈希的 KV 缓存
- 编码器缓存(encoder cache):实现视觉特征跨步复用
8. FlashAttention 3 集成
动态批处理场景下,新一代注意力机制 FlashAttention 3 带来:
- 混合预填充/解码批处理支持
- 灵活的特征组合能力
- 全场景性能优势
性能基准测试
文本模型:Llama 3.1 8B & Llama 3.3 70B
由于广泛的架构增强,vLLM V1 实现了最先进的吞吐量和延迟,与 V0 相比(无多步调度),吞吐量提升了高达 1.7 倍(但光是看图的话,高QPS下似乎提升不止1.7)。这些显著的性能提升源于整个堆栈中 CPU 开销的全面减少。
使用 ShareGPT 数据集在 Llama 3.1 8B 和 Llama 3.3 70B 模型上测量了 vLLM V0 和 V1 的性能:V1 在高 QPS 下表现出比 V0 更低的延迟,鉴于 V0 和 V1 使用的内核几乎相同,性能差异主要源于 V1 的架构改进(减少了 CPU 开销)。
视觉模型:Qwen2-VL
通过使用 VisionArena 数据集测试 Qwen2-VL 来评估VLMs(视觉语言模型)的性能。
得益于其改进的VLM支持,V1相比V0带来了更大的速度提升,这主要归功于两项关键改进:
- 将输入处理卸载到单独的进程
- 为多模态查询实现了更灵活的调度
(看图类比之前的LLM测试,似乎吞吐量提升达2.3倍,多轮对话延迟降低60%?)
未来路线图
当前alpha版暂不支持的特性:
- 模型架构:编码器-解码器模型(Multimodal Llama 3.2)、Mamba架构等
- 功能特性:Log概率输出、流水线并行等
- 硬件支持:TPU等非NVIDIA设备
当然,如果要用之前的功能,可以通过不设置 VLLM_USE_V1=1 来继续使用 V0 并保持向后兼容性。
快速上手指南
三步启用V1引擎:
pip install vllm --upgrade
export VLLM_USE_V1=1
vllm serve <model-name>
现有API完全兼容,基本只要设个环境变量就行了。
总结
vLLM V1 的发布标志着大模型推理引擎的一次重大飞跃。通过对核心架构的全面重构,V1 版本在性能、灵活性和可扩展性上都实现了显著提升。以下是本次升级的核心要点:
- 性能飞跃:通过优化执行循环、统一调度器和零开销前缀缓存等技术,V1 在吞吐量和延迟上实现了高达1.7倍的性能提升,尤其在视觉语言模型(VLMs)上的表现更为突出。
- 架构革新:V1 引入了简洁、模块化的代码架构,支持动态调度和持久化批次处理,显著降低了CPU开销,并为未来的功能扩展奠定了坚实基础。
- 多模态支持:V1 将视觉语言模型(VLMs)通过异步预处理、多模态前缀缓存和编码器缓存等技术,大幅提升了多模态模型的推理效率。
- 易用性提升:用户只需设置环境变量即可无缝切换到 V1,完全兼容现有 API,实现了零配置体验。
- 未来展望:虽然 V1 目前仍处于 alpha 阶段,部分功能尚未完全覆盖,但其架构设计为快速迭代和新功能开发提供了强大支持。开发团队正在积极完善对更多模型架构、功能特性和硬件后端的支持。
vLLM V1 不仅是一次技术升级,更是对未来大模型推理生态的一次重要布局。我们期待与开发者社区共同探索更多可能性,推动大模型技术的边界不断扩展。立即体验 V1,感受新一代推理引擎的强大性能!