vLLM发布原生速度Transformers建模后端
速览
vLLM宣布推出原生速度的Transformers建模后端,旨在让用户以最高效的方式运行Hugging Face Transformers模型。该后端无需额外转换步骤,直接利用vLLM的CUDA内核和优化,实现低延迟、高吞吐量的推理。这一更新将简化AI模型的部署流程,尤其利好大规模语言模型应用。
AI 深度解读
背景
transformers 库已成为机器学习领域的事实标准建模库,支持 450 多种架构,并通过统一的 API 设计保证每个模型实现独立、易于理解。开发者通过阅读 transformers 代码可以快速学习某种架构的工作原理,然后将其移植到其他推理框架,如 vLLM、SGLang、MLX、llama.cpp 等。为了进一步降低生态门槛,Hugging Face 在去年将 transformers 作为 vLLM 的一个建模后端(modeling backend)集成进来。这样,模型作者无需手动移植代码,就能直接在 vLLM 中运行 transformers 中的模型(包括 LLM 和 VLM),由 transformers 提供建模代码,vLLM 提供连续批处理、自定义注意力内核等极致优化的推理技术。现在,这一集成得到了重大升级。
核心内容
最新更新:原生速度的 transformers 建模后端
新版本通过动态运行时层融合,使 transformers 建模后端在兼容架构上达到与 vLLM 原生手写实现相同的推理速度。运行任何 Hugging Face 模型只需增加一个参数 --model-impl transformers,并且与常规的并行选项完全兼容。
实测展示
文章使用 Qwen3 系列三个差异很大的模型进行了对比:
- Qwen3-4B(密集模型):单 GPU 运行
- Qwen3-32B(密集模型):张量并行(tensor parallelism)
- Qwen3-235B-A22B-FP8(MoE 混合专家模型):数据并行 + 专家并行,在同一个 8×H100 节点上
每种模型在三种条件下对比,只有代码路径不同:
- native:
--model-impl vllm,vLLM 手写模型(基线) - after:
--model-impl transformers且包含本次 PR 的新逻辑 - before:
--model-impl transformers但不包含本次 PR
实测结果(图中数据)显示,新版本下 transformers 后端的吞吐量(tokens/s)与 vLLM 原生实现非常接近,甚至在某些场景持平,远超旧版本性能。
如何工作
旧版 transformers 建模后端仅关注注意力计算这个瓶颈,通过运行时替换 vLLM 的注意力实现来让 transformers 模型高效运行。但部署中还涉及 GPU 并行化、编译、融合内核等多个维度,只有定制移植才能榨取极致性能。因此模型作者仍需编写 vLLM 自定义实现。
新版本通过以下技术实现动态优化:
- 静态图分析:使用
torch.fx对模型的计算图进行静态分析,搜索可优化的已知模式。 - 源代码重写:识别到模式后,利用 Python 的
ast(抽象语法树)直接操作源代码,在原始位置重写某些操作。
实现的效果
- 融合操作:将多个操作映射到 vLLM 高度优化的内核(例如 MoE 模型中用于专家并行
Expert Parallelization的融合内核)。 - 自动推断并行方案:通过
MergedColumnParallelLinear和QKVParallelLinear等融合块,自动推断张量并行(TP)的计划;如果解码器块列表易识别,还可推断流水线并行(PP)计划。 - 完全可编译:被修改后的模型依然可在
torch.compile和 CUDA Graphs 下编译运行,等同于专用 vLLM 模型实现。 - 复用训练代码:与 vLLM 模型实现不同,transformers 模型实现可用于训练。因此同一份模型代码可同时用于训练、评估、强化学习 rollout,无需再维护两套实现。
注意:使用线性注意力的模型暂时不支持,但很快会支持。存放在 Hugging Face Hub 仓库中的自定义模型(非 transformers 原生架构)很可能无法工作,因为其代码未按规范编写。
关键要点
- 零成本迁移:任何基于 transformers 的 Hugging Face 模型(LLM/VLM)只需一个参数
--model-impl transformers即可在 vLLM 中运行,无需编写任何移植代码。 - 速度对标原生:新版本通过运行时动态层融合,使兼容架构的推理速度与 vLLM 手写原生实现持平,实测 Qwen3-4B、32B、235B MoE 模型均表现一致。
- 核心技术:使用
torch.fx进行静态图分析 +ast进行源代码重写,自动识别并融合 vLLM 优化内核。 - 并行自动推断:自动推断张量并行(TP)和专家并行(EP)计划,兼容数据并行和流水线并行。
- 全链路兼容:推理优化不影响训练能力,同一套 transformers 代码可同时用于训练和推理。
- 持续开源:完整可复现的基准测试脚本已以 gist 形式公开(benchmark.sh)。
意义与影响
这次升级极大地降低了模型作者部署最新或自定义架构的壁垒。此前,在 vLLM 中获得最佳性能几乎必须手动编写 vLLM 专属的模型实现,这是一项耗时且容易出错的工作。现在,只要模型是用 transformers 标准 API 实现的,就可以直接享受到 vLLM 先进推理引擎的全部性能,无需二次开发。这将加速新模型从研究到生产部署的转化,同时也让 transformers 作为建模库的生态角色更加稳固——它不仅是学习的参考实现,更是高性能推理的起点。对于社区而言,这代表了一种趋势:通过自动化的代码分析和优化,让复用现有建模库而非重写实现成为可能,从而提升整个机器学习工程化的效率。
