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.mzph.cn/news/895130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook自动保存失败等问题的解决

一、未生成配置文件 需要在命令行中&#xff0c;执行下面的命令自动生成配置文件 jupyter notebook --generate-config 执行后会在 C:\Users\用户名\.jupyter目录中生成文件 jupyter_notebook_config.py 二、在网页端打开Jupyter Notebook后文件保存失败&#xff1b;运行代码…

使用wpa_supplicant和wpa_cli 扫描wifi热点及配网

一&#xff1a;简要说明 交叉编译wpa_supplicant工具后会有wpa_supplicant和wpa_cli两个程序生产&#xff0c;如果知道需要连接的wifi热点及密码的话不需要遍历及查询所有wifi热点的名字及信号强度等信息的话&#xff0c;使用wpa_supplicant即可&#xff0c;否则还需要使用wpa_…

【真一键部署脚本】——一键部署deepseek

目录 deepseek一键部署脚本说明 0 必要前提 1 使用方法 1.1 使用默认安装配置 1.1 .1 使用其它ds模型 1.2 使用自定义安装 2 附录&#xff1a;deepseek模型手动下载 3 脚本下载地址 deepseek一键部署脚本说明 0 必要前提 linux环境 python>3.10 1 使用方法 1.1 …

5.2Internet及其作用

5.2.1Internet概述 Internet称为互联网&#xff0c;又称英特网&#xff0c;始于1969年的美国ARPANET&#xff08;阿帕网&#xff09;&#xff0c;是全球性的网络。 互连网指的是两个或多个不同类型的网络通过路由器等网络设备连接起来&#xff0c;形成一个更大的网络结构。互连…

“图像识别分割算法:解锁视觉智能的关键技术

嘿&#xff0c;各位朋友&#xff01;今天咱们来聊聊图像识别分割算法。这可是计算机视觉领域里特别厉害的一项技术&#xff0c;简单来说&#xff0c;它能让机器“看懂”图像中的不同部分&#xff0c;并把它们精准地分出来。想象一下&#xff0c;机器不仅能识别出图里有猫还是狗…

AJAX项目——数据管理平台

黑马程序员视频地址&#xff1a; 黑马程序员——数据管理平台 前言 功能&#xff1a; 1.登录和权限判断 2.查看文章内容列表&#xff08;筛选&#xff0c;分页&#xff09; 3.编辑文章&#xff08;数据回显&#xff09; 4.删除文章 5.发布文章&#xff08;图片上传&#xff0…

html转PDF文件最完美的方案(wkhtmltopdf)

目录 需求 一、方案调研 二、wkhtmltopdf使用 如何使用 文档简要说明 三、后端服务 四、前端服务 往期回顾 需求 最近在做报表类的统计项目&#xff0c;其中有很多指标需要汇总&#xff0c;网页内容有大量的echart图表&#xff0c;做成一个网页去浏览&#xff0c;同时…

示例:JAVA调用deepseek

近日&#xff0c;国产AI DeepSeek在中国、美国的科技圈受到广泛关注&#xff0c;甚至被认为是大模型行业的最大“黑马”。在外网&#xff0c;DeepSeek被不少人称为“神秘的东方力量”。1月27日&#xff0c;DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜&#xff0c;在…

.NET周刊【2月第1期 2025-02-02】

国内文章 dotnet 9 已知问题 默认开启 CET 导致进程崩溃 https://www.cnblogs.com/lindexi/p/18700406 本文记录 dotnet 9 的一个已知且当前已修问题。默认开启 CET 导致一些模块执行时触发崩溃。 dotnet 使用 ColorCode 做代码着色器 https://www.cnblogs.com/lindexi/p/…

AES200物理机部署DeepSeek-R1蒸馏模型

AES200物理机部署DeepSeek-R1模型 华为官方官宣自己的NPU支持DeepSeek-R1模型部署&#xff0c;华为的大模型推理部署依托于其大模型推理引擎&#xff1a;MindIE&#xff0c;但是根据MindIE的文档&#xff0c;其只支持以下硬件&#xff1a; 表1 MindIE支持的硬件列表 类型配置…

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops&#xff0c;Git与CICD&#xff0c;云服务与云原生&#xff0c;Linux&#xff0c;安全性&#xff0c;案例研究&#xff08;30张图详解&#xff09; 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么&#xff1f;什么是k8s&#xff08;Ku…

正泰中间电磁继电器【8脚10A】DC24V 待机功率

需求&#xff1a;继电器能耗测试。 1.连接24V2A的电源&#xff0c; 2. 稳定功率为 1.4W 3. 正泰中间电磁继电器【8脚10A】直流DC24V 注&#xff1a;联通时电磁继电器会轻微发热 4.电磁继电器的工作原理基于电流的磁效应 电磁激励&#xff1a;电磁继电器主要由线圈、铁芯、衔…

npm无法加载文件 因为此系统禁止运行脚本

安装nodejs后遇到问题&#xff1a; 在项目里【node -v】可以打印出来&#xff0c;【npm -v】打印不出来&#xff0c;显示npm无法加载文件 因为此系统禁止运行脚本。 但是在winr&#xff0c;cmd里【node -v】,【npm -v】都也可打印出来。 解决方法&#xff1a; cmd里可以打印出…

JVM春招快速学习指南

1.说在前面 在Java相关岗位的春/秋招面试过程中&#xff0c;JVM的学习是必不可少的。本文主要是通过《深入理解Java虚拟机》第三版来介绍JVM的学习路线和方法&#xff0c;并对没有过JVM基础的给出阅读和学习建议&#xff0c;尽可能更加快速高效的进行JVM的学习与秋招面试的备战…

认识Electron 开启新的探索世界一

一、Electron轻松入门 1.搭建开发环境&#xff1a; 一般情况下开发者会使用node.js来创建electron项目&#xff0c;node.js是一个基于Chrome V8引擎的javascript运行环境&#xff0c;所以首先需要到官网去下载安装node.js 下载链接&#xff1a;https://nodejs.org/enhttps://no…

MySQL下载过程

MySQL Enterprise Edition Downloads | Oracle mysql官方下载网址&#xff08;9.2版本&#xff09; 下面的示例是5.7的包&#xff0c;过程是一样的 port&#xff1a;3308&#xff08;默认的是3306&#xff0c;笔者下了一个占用了该端口&#xff09; root&#xff1a;123456 问题…

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网&#xff1a;www.cnsse.org 时间&#xff1a;2025年2月21-23日 地点&#xff1a;中国-青岛 简介 第五届计算机网络安全与软件工程&#xff08;CNSSE 2025&#xff09;将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…

Qt:QWidget核心属性

目录 QWidget核心属性 enab geometry WindowFrame的影响 windowTitle windowIcon qrc文件管理资源 windowOpacity cursor font toolTip focusPolicy styleSheet QWidget核心属性 在Qt中使用QWidget类表示"控件"&#xff0c;如按钮、视图、输入框、滚动…

Linux TCP 编程详解与实例

一、引言 在网络编程的领域中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff09;协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下&#xff0c;使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…

论文笔记:Rethinking Graph Neural Networks for Anomaly Detection

目录 摘要 “右移”现象 beta分布及其小波 实验 《Rethinking Graph Neural Networks for Anomaly Detection》&#xff0c;这是一篇关于图&#xff08;graph&#xff09;上异常节点诊断的论文。 论文出处&#xff1a;ICML 2022 论文地址&#xff1a;Rethinking Graph Ne…