当前位置: 首页 > article >正文

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 的设计哲学 基于上述背景,本次升级聚焦四大核心目标:

  1. 构建简洁、模块化、易扩展的代码架构
  2. 实现接近零CPU开销的高效推理
  3. 将关键优化技术整合至统一架构
  4. 默认启用核心功能,实现零配置体验

这种设计思路体现了软件工程中的"高内聚低耦合"原则,通过架构重构打破功能孤岛,为后续技术迭代奠定基础。


技术亮点全解析

1. 优化执行循环 & API 服务器

随着 GPU 计算速度的跃升(如 Llama-8B 在 H100 上的单步推理时间已缩短至5ms),传统架构中 API 服务器、调度器、输入预处理等CPU密集型操作逐渐成为性能瓶颈。

V1 创新性地引入:

  • 隔离式 EngineCore 执行核心:专注调度与模型执行
  • 多进程深度整合:通过 ZeroMQ 实现 CPU 任务并行化
  • 异步流水线:将 tokenization、多模态处理等操作与核心推理重叠执行

这种架构类似于CPU的乱序执行设计,最大化硬件资源利用率。


2. 统一调度器革新

突破性采用"无阶段"调度设计

  1. 统一处理用户提示词(prompt tokens)和模型生成词(output tokens)
  2. 动态调度字典:{request_id: num_tokens} 实现灵活资源分配
  3. 支持分块预填充(chunked-prefill)、前缀缓存(prefix caching)等高级特性

 

示例场景:在固定token预算下,调度器可智能分配不同请求的处理量,如图示动态分配策略。


3. 零开销前缀缓存

相较于 V0 版本存在的缓存命中率敏感问题,V1 实现三大突破:

  1. 哈希前缀缓存 + LRU 淘汰算法优化
  2. 恒定时间复杂度数据结构
  3. Python 对象创建开销最小化

 

实测数据显示:即便缓存命中率为0%,吞吐量损失<1%;高命中率时性能提升可达数倍,因此默认启用该功能。


4. 张量并行推理新范式

重构分布式推理架构:

  1. 消除 Worker 0 的特殊地位,实现对称架构
  2. 增量更新传输机制:仅传递状态差异(diffs)
  3. 统一单卡/多卡执行路径,抽象分布式逻辑

 

这种设计类似于分布式系统中的最终一致性模型,通过状态缓存降低通信开销


5. 持久化批次处理

在vLLM V0中,模型的输入张量和元数据在每一步都会重新创建,这通常会导致显著的CPU开销。为了优化这一点,V1版本实现了创新性 Persistent Batch 技术:该技术缓存了输入张量,并在每一步仅对它们应用差异(diffs)。

 

此外,V1通过广泛使用Numpy操作而非Python的原生操作,基于 numpy 的差异更新机制,最大限度地减少了更新张量时的CPU开销。


6. 编译优化双剑客

  1. torch.compile自动优化:覆盖多种模型架构,减少定制内核开发
  2. 分段式 CUDA Graphs:突破传统 CUDA Graphs 的限制

7. 多模态模型专项优化

将视觉语言模型(VLMs)支持提升至新高度:

  1. 异步预处理流水线:图像转码/裁剪等操作offload至独立进程
  2. 多模态前缀缓存:支持图像哈希的 KV 缓存
  3. 编码器缓存(encoder cache):实现视觉特征跨步复用

8. FlashAttention 3 集成

动态批处理场景下,新一代注意力机制 FlashAttention 3 带来:

  1. 混合预填充/解码批处理支持
  2. 灵活的特征组合能力
  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带来了更大的速度提升,这主要归功于两项关键改进:

  1. 将输入处理卸载到单独的进程
  2. 为多模态查询实现了更灵活的调度

(看图类比之前的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 版本在性能、灵活性和可扩展性上都实现了显著提升。以下是本次升级的核心要点:

  1. 性能飞跃:通过优化执行循环、统一调度器和零开销前缀缓存等技术,V1 在吞吐量和延迟上实现了高达1.7倍的性能提升,尤其在视觉语言模型(VLMs)上的表现更为突出。
  2. 架构革新:V1 引入了简洁、模块化的代码架构,支持动态调度和持久化批次处理,显著降低了CPU开销,并为未来的功能扩展奠定了坚实基础。
  3. 多模态支持:V1 将视觉语言模型(VLMs)通过异步预处理、多模态前缀缓存和编码器缓存等技术,大幅提升了多模态模型的推理效率。
  4. 易用性提升:用户只需设置环境变量即可无缝切换到 V1,完全兼容现有 API,实现了零配置体验。
  5. 未来展望:虽然 V1 目前仍处于 alpha 阶段,部分功能尚未完全覆盖,但其架构设计为快速迭代和新功能开发提供了强大支持。开发团队正在积极完善对更多模型架构、功能特性和硬件后端的支持。

vLLM V1 不仅是一次技术升级,更是对未来大模型推理生态的一次重要布局。我们期待与开发者社区共同探索更多可能性,推动大模型技术的边界不断扩展。立即体验 V1,感受新一代推理引擎的强大性能!


http://www.kler.cn/a/539160.html

相关文章:

  • 数据集成实例分享:金蝶云星空对接旺店通实现库存管理自动化
  • C++ STL容器之vector的使用及复现
  • 996引擎-问题处理:三职业改单职业
  • 使用sunshine和moonlight串流时的音频输出问题
  • 电脑重启后vscode快捷方式失效,找不到code.exe
  • redis底层数据结构——简单动态字符串
  • DeepSeek结合Langchain的基本用法
  • 卷积神经网络CNN如何处理语音信号
  • 2025年物联网相关专业毕业论文选题参考,文末联系,选题相关资料提供
  • 学生管理系统
  • Qt元对象系统
  • C++排序算法的优劣及应用
  • 通过cad中块获取块的略缩图——cad c# 二次开发
  • C++ 继承(1)
  • 常用线程池
  • 【安当产品应用案例100集】037-强化OpenVPN安全防线的卓越之选——安当ASP身份认证系统
  • ASP.NET Core数据校验FluentValidation
  • 车联网技术在智能交通系统中的设计与实现(论文+源码)
  • “图像识别分割算法:解锁视觉智能的关键技术
  • 【c++】面向过程 面向对象
  • 苍穹外卖-菜品分页查询
  • C# 多线程应用(同步异步)
  • 《 C++ 点滴漫谈: 二十六 》控制流艺术:如何在 C++ 中驾驭程序逻辑
  • 深入讲解MyBatis
  • 启用MFA增强安全性防范勒索病毒
  • [AI]Mac本地部署Deepseek R1模型 — — 保姆级教程