面向语言模型服务开发者的 vLLM 新版本扩大了节省内存的缓存支持范围,并新增解析模型响应的通用解析器。迁移现有服务时,除了性能改进,还需检查浏览器访问限制和请求处理方式的变化。
1. 扩展 NVFP4 缓存支持及性能条件
缓存是保存并复用先前已处理 token 信息的空间。以较少比特存储这些信息的 NVFP4 格式扩大了支持范围。
GPU 架构系列 SM8x 和 SM12x 也可使用这一格式。
SM90 也获得支持;在 SM12x 上,该格式还适用于利用已处理内容生成下一个 token 的解码阶段专用路径。不能将支持范围扩大理解为所有硬件的默认值都已改变。
GLM-5.x 在 SM100 上默认使用 8 位浮点缓存。发行说明报告吞吐量提升了 2.3~5.5%([#60140](https://github.com/vllm-project/vllm/pull/60140)、[#60281](https://github.com/vllm-project/vllm/pull/60281))。
SM90 新增了 fp8_ds_mla 缓存路径。
据报告,在这一路径上,GLM-5.3-Flash 的输出吞吐量最多提升了 31%([#59246](https://github.com/vllm-project/vllm/pull/59246))。原文未给出两项吞吐量数据的具体比较基准和负载条件,因此只能视为各自模型与硬件路径上报告的改进幅度。
AMD GPU 运行环境 ROCm 新增了名为 ultraquant_4bit 的 4 位缓存。其存储密度约为 8 位浮点缓存的 2 倍([#57057](https://github.com/vllm-project/vllm/pull/57057))。前述吞吐量数据因模型和路径不同而不能相互比较,存储密度也不同于处理速度指标。
2. 结构化决策与通用解析器
新增的 POST /v1/systemone 是基于结构化状态回答选择或评分等问题的 API,默认提供。发行说明未给出请求与响应示例。
hf 解析器读取已保存模型文件中的 response_template。这相当于随模型一并获取响应格式说明,提供该说明的模型无需专用解析器来解析工具调用和推理内容。
Python 和 Rust 前端均支持。工具调用可通过 --tool-call-parser hf 选项选择该解析器,推理则使用 --reasoning-parser hf。
3. 安全修复与输入限制
此次回应了三项安全通告。聊天模板会在执行前接受检查,并限制执行时间,以应对资源耗尽问题([Security #50300](https://github.com/vllm-project/vllm/pull/50300))。
控制浏览器跨源访问的 CORS 不再默认允许所有来源。连接浏览器客户端时,必须另行指定允许的来源([Security #61009](https://github.com/vllm-project/vllm/pull/61009))。
不受信任的图像仅允许使用以像素表示的光栅格式。因此,EPS 和 WMF 格式会被拒绝([Security #60022](https://github.com/vllm-project/vllm/pull/60022))。
处理图像、音频等多种输入的共享内存多模态缓存,会为引用信息附加用于检测伪造的签名,并拒绝伪造引用([Security #59357](https://github.com/vllm-project/vllm/pull/59357))。
用于结构化输出的 JSON 模式嵌套深度超过 64 层时,会返回 HTTP 400。这意味着会拒绝输出格式规则堆叠过深的请求([Security #60036](https://github.com/vllm-project/vllm/pull/60036))。
缓存密度提升和通用解析器有助于改善内存利用,并减轻逐个模型进行对接的负担。另一方面,更严格的访问与输入限制可能带来修改现有浏览器连接和图像处理路径的成本。
4. 安装环境与移除的功能
Python 3.10 支持已终止,最低版本变为 3.11。
CUDA 源码构建需要 GCC 13,不满足要求时会在构建初期失败。
预构建包以 CUDA 13.0 为基准,安装方式如下。
pip install vllmtorch.compile 编译过程中通过拆分序列来优化并行处理的功能已被移除。不过,模型自身拆分序列进行处理的并行化功能仍然保留。
5. 请求与响应的兼容性变化
max_tokens 不再是在上下文窗口中预留的值,而是输出上限。这消除了因预留输出空间而拒绝长输入的行为,并不意味着模型可接受的总长度变为无限([#57035](https://github.com/vllm-project/vllm/pull/57035))。
根据 Responses API 推理事件名称进行分支处理的客户端,需要检查接收代码([#59652](https://github.com/vllm-project/vllm/pull/59652))。
开始事件由 response.reasoning_part.added 改为 response.content_part.added。
结束事件由 response.reasoning_part.done 改为 response.content_part.done。
此时通过 part.type="reasoning_text" 区分推理内容。
此次升级应视为一次在利用缓存和解析器支持扩展的同时,也要检查安全默认值与现有请求兼容性的迁移。
